「需求工程」需求工程介绍(第1部分)功能性可靠性

这是一个简短的系列教程。我们会讲到:

可行性报告。

需求捕获和分析。

需求规范。

需求验证。

需求工程

我们之前已经讨论了需求工程的4个主要活动。

需求工程是一个收集和定义系统应该提供哪些服务的过程。

它侧重于评估系统是否对业务有用(可行性研究),发现需求(抽取和分析),将这些需求转换为一些标准格式(规范),并检查需求是否定义了客户想要的系统(验证)。

在实践中,需求工程不是顺序的过程,它是一个活动交错的迭代过程。

例如,您首先迭代用户需求;抽取、规范和验证,并对系统需求重复相同的步骤。

需求工程的过程

在流程的早期,大部分工作将花费在理解高级业务和用户需求上。在这个过程的后期,将花费更多的精力来引出和理解详细的系统需求。有些人认为需求工程是应用结构化分析方法(如面向对象分析)的过程。这包括分析系统和开发一组图形系统模型,例如用例模型,然后用作系统规范。尽管结构化方法在需求工程过程中扮演着重要的角色,但是这些方法所涵盖的需求工程还远远不止这些。

面向对象的分析和设计将在另一系列教程中讨论。

用户和系统要求

拥有不同级别的详细信息是有用的,因为它可以传递关于为不同类型的读者开发的系统的信息。

因此,最终用户将不关心细节,他们需要一个通用的、抽象的书面需求。

当参与开发的人,他们需要他们的系统到底应该做什么。

如果您没有对不同层次的细节进行清晰的区分,您可能会遇到很多问题和误解。

用户需求

它描述了系统应该提供的服务以及它必须在何种条件下运行的约束。我们不期望看到任何级别的细节,或者系统将做什么,它更多的是通用的需求。

它通常用自然语言编写,并由图表提供。

在本系列的后面,我们将讨论指定需求的不同方法。系统需求

系统需求意味着对系统服务和操作约束(如如何使用系统)以及开发约束(如编程语言)的更详细的描述。

这种级别的细节是那些参与系统开发的人所需要的,比如工程师、系统架构师、测试人员等等。

功能性和非功能性需求

软件需求分为功能性需求和非功能性需求。

功能需求

它涵盖了系统应该提供的主要功能。当表示为用户需求时,它们通常以抽象的方式描述。

但是,更具体的系统功能需求描述了系统的功能、它的输入、处理;它如何对特定的输入做出反应,以及期望输出是什么。

非功能性需求

这些是对系统所提供的功能的约束。

约束,比如系统可以处理多少进程(性能),系统需要处理哪些(安全)问题,比如SQL注入…

故障率(可靠性),将使用什么语言和工具(开发),你需要遵循什么规则来确保系统在组织的法律范围内运行(立法)。

非功能性需求通常比单个功能性需求更为关键。用户通常可以找到解决系统功能不能真正满足他们需求的方法。然而,未能满足非功能性需求可能意味着整个系统无法使用。

例如,如果一架飞机不能满足其可靠性要求,它就不能安全运行,或者如果嵌入式控制系统不能满足其性能要求,控制功能就不能正常运行。

非功能性需求应该是可度量的

只要有可能,我们就应该定量地编写非功能性需求,以便能够对它们进行测试。您可以在测试系统时测量它们,以检查系统是否满足其非功能需求。

非功能性需求的度量

在实践中,系统的客户经常发现很难将他们的目标转化为可度量的需求。他们不明白哪些数字定义了所需的速度或可靠性。对于某些目标,例如可维护性,没有可用的度量标准。

验证可测量的非功能性需求的成本可能非常高,客户可能认为这些成本是不合理的。

非功能性需求和功能性需求是相互依赖的

非功能性需求经常发生冲突、交互,甚至产生其他功能性或非功能性需求。

功能性和非功能性需求之间的区别

在实践中,很难区分功能性和非功能性需求。它们的定义表明,这种区别并不明确。

区分功能性和非功能性需求

如果非功能需求与功能需求分开陈述,它们之间的关系可能难以理解。

涌现属性是系统作为一个整体的属性,而不是从单个系统组件的属性衍生出来的属性。

可行性报告

可行性研究的输入资料是一套初步的业务需求、系统的大纲描述,以及该系统拟如何支援业务流程。

业务需求是客户或开发组织的需求;为什么要开发软件,必须实现一个高层次的目标。

可行性研究的结果应该是一份报告,建议是否继续进行下一个过程,否则你将根本无法实现软件。

我们已经讲过了有用的区别;用户和系统需求,功能性和非功能性需求。除了需求工程中的第一个活动之外;可行性研究。现在,让我们进入下一个。

【jiagoushi_pro】50000人社区,讨论:企业架构,云计算,大数据,数据科学,物联网,人工智能,安全,全栈开发,DevOps,数字化.

THE END
1.系统需求与功能需求有什么区别区别: 系统需求:系统需求的目的是通过对系统进行调查与研究,开发人员对系统的功能和实现目标有了清楚的理解与深刻的认识,并从中对系统进行一系列的约束。 功能需求:是基于用户级需求进一步拆分,完成功能列表的输出,即这一级需求可以导入到研发中为功能需求。 即系统需求是调查与研究,而功能需求是研发应用。爱问...https://m.edu.iask.sina.com.cn/jy/31LzjVuBirz.html
2.软件需求包括3个不同的层次――业务需求用户需求和功能需求除了功能需求外,SRS中还包含非功能需求,包括性能指标和对质量属性的描述。 质量属性(quality attribute)对产品的功能描述作了补充,它从不同方面描述了产品的各种特性。这些特性包括可用性、可移植性、完整性、效率和健壮性,它们对用户或开发人员都很重要。其他的非功能需求包括系统与外部世界的外部界面,以及对设计与实...https://www.cnblogs.com/Republic/p/3518854.html
3.软件需求分析——非功能性需求性能是系统或组件在给定的限制条件(如速度、精度或内存使用)内完成其指定功能的程度。性能表现是衡量软件质量的重要指标,在需求分析和系统设计阶段就必须充分考虑性能因素。性能指标主要包括响应时间、并发数、资源使用率等。简单地说,性能需求体现了系统如何“多快好省”地实现客户的功能需求。 http://csbmk.com/html/wenda/2022/0719/436.html
4.云原生时代,如何从0到1构建K8s容器平台的LB(Nginx)负载...2,业务需求 业务功能需求就在于,业务(开发)使用容器 LB 体系的时候,他们会需要哪些需求,包括怎么使用、需要哪些功能、需要哪些策略,作为容器 LB 建设的开发人员,我们需要能够站在业务方的角度去考虑,如下图所示,有这些业务需求: 详细说明如下: ? 体验需求 ...https://developer.aliyun.com/article/1295266
5.「软考高级」系统架构设计精华知识点汇总5. 统一场景:分析人员和测试人员关注系统的行为。 用例:描述功能需求。 质量场景:描述质量需求。 3. 实现阶段 这个阶段的研究主要包括3个方面: (1) 研究基于SA的开发过程支持:项目组织结构、配置管理。 (2) 寻求从SA模型向实现过渡的途径:模型映射、构件组装、复用中间件平台。 https://www.360doc.cn/article/82034739_1102776962.html
6.宜春市人民医院院内询价公告医院培训考试系统功能需求 1.登录信息展示 根据不同的登录者,显示对应该登录者的内容,包括: 1、?显示登录人姓名,工号,层级、学分。 2、?显示可填写的问卷调查。 3、?显示可阅读的规章制度。 4、?显示已发布的教学计划。 显示可以报名和参加的现场培训,可以点击进入报名。 http://www.ychospital.cn/ycsrmyy/tzgg/202307/933c0615487545ad9655d7b050e0dd9a.shtml
1.系统有哪些业务需求系统有哪些业务需求 系统业务需求包括: ###1、功能需求:系统需要具备基本的账号管理、权限设置、数据录入和查询、数据分析和报表生成等功能; ###2、性能需求:系统需要具备较高的稳定性和响应速度,能够支持大规模数据处理和多人同时访问; ###3、安全需求:系统需要采取严格的权限管理、数据加密和备份措施,确保数据...https://h.chanjet.com/ask/e782d39a893c6.html
2.[需求管理10]:功能规范内容与撰写流程功能开发规范类博客这取决于客户业务需求筛选流程,客户业务需求筛选流程已经标识了某一个业务需求对组织内的目标系统的哪些功能技术领域造成影响,基于这些信息,将组建功能规范撰团队。 为了组建功能规范撰写团队,组织内部需要预先把每个受影响技术领域进行分类,得到SFS(System Function Specfic)类别, 每个类别都有一组的技术专家组成。 https://blog.csdn.net/HiWangWenBing/article/details/126935895
3.一份完整的软件测试报告(软件测试报告包含哪些内容)实例:本测试报告为XXX项目的测试报告,目的在于总结测试阶段的测试以及分析测试结果,描述系统是否符合需求(或达到XXX功能目标)。预期参考人员包括用户、测试人员、、开发人员、项目管理者、其他质量管理人员和需要阅读本报告的高层经理。 提示:通常,用户对测试结论部分感兴趣,开发人员希望从缺陷结果以及分析得到产品开发质量的...https://cml244.51sole.com/companynewsdetail_256461298.htm
4.电子档案管理系统需求电子档案管理系统应包括哪些功能? 电子档案管理系统应包括以下功能:1. 档案分类与归档:系统应支持对档案进行分类和归档,可以按照组织的需求和标准建立分类体系,并将档案按照分类进行归档和存储。2. 档案检索与访问:系统应提供便捷的检索和访问功能,用户可以通过关键词、属性、日期等进行检索,快速找到所需的档案,并具备...https://www.danganj.com/news/21864.html
5.管理信息系统案例分析报告1、根据所述系统功能需求,开展实地调查或通过Internet查阅相关资料或结合个人经验,进行系统分析。 2、明确管理业务调查过程和方法,包括所选管理系统典型组织机构、管理功能及业务流程,优化并以图形建模。 3、明确数据流程的调查与分析过程,绘制数据流程图,编制数据字典。 https://www.jy135.com/guanli/2180139.html
6.校园电视台虚拟演播室解决方案二、功能需求 1.用于多档栏目制作 真三维无轨虚拟演播室系统可以使用不同类型的虚拟场景,如:新闻、访谈、体育、气象、课件制作、专题报道等。可以打破传统制作手段,自由创作真三维虚拟场景,充分发挥节目制作团队的无限创意。这样一来,势必减少演播室数量、面积的需求,减少对实景道具的制作需求。 https://www.douban.com/note/634195803/
7.软考高级软件架构师学习笔记四(错题重点知识)权衡点:是影响多个质量属性的特性,是多个质量属性的敏感点。如:更改系统加密的级别将对安全性和性能产生影响(一个质量属性会影响多个质量属性,是权衡点)。 3、UML2.0中一共定义了14种图 4、4+1视图中各个部分的情况如下: 逻辑视图:主要支持系统的功能需求,即系统提供给最终用户的服务。一般用类图、对象图,活动图...https://blog.51cto.com/u_15564034/6429914
8.汽车控制器子系统需求编制方法及模板子系统需求编制方法 依据车型的开发流程,需求的导出的顺序为:整车需求(VTS)、系统需求(STS)、子系统需求(SSTS)、软件需求(SRS)、硬件需求(HRS)。系统指的是:动力系统、地盘系统、车身系统、座舱系统、智驾系统。子系统指的是每个系统下的控制器,例如动力系统包括BMS、MCU、VCU。 https://www.dongchedi.com/article/7198133768815706685
9.基于JavaScript的餐厅点餐系统微信小程序的设计与实现退出登录功能 完成一系列操作后,管理员可以退出点餐系统后台。 系统用户需求 管理员 管理员进入点餐后台管理系统,在统计信息模块可以看到店铺的月收入及年收入;在餐厅人员模块,可以修改管理员登录信息,添加管理员或者员工,当以员工身份登录后台系统时,将没有权限访问此页面;在排号管理模块可以安排预约座位的顾客就座;在...https://cloud.tencent.com/developer/article/1951704
10.功能安全概述(FunctionalSafety)(一)术语“功能性”来自系统工程的一个分支,称为需求工程。系统工程将需求分为: 功能需求-您的系统应该做什么;换句话说,系统的功能。 非功能性需求-系统应如何运行:例如,系统的可靠性如何? 功能要求通常为X系统应为做什么。例如,“转向信号系统应打开指示灯,告知驾驶员系统已激活”。 https://www.yoojia.com/ask/17-12541797967617713004.html
11.管理信息系统的实验报告对该系统涉及到得组织部门及其之间的功能关系进行分析,绘制出组织结构图。 院长学生工作办公室教务科任课老师学生信息处理人员成绩统计人员成绩录入人员 二、系统需求分析 1、系统现有系统业务流程分析: 学生信息管理的过程是:当学生人员发生变动时,负责管理学生信息人员应对变动人员进行添加或修改。每年新生入学时,由学生...https://www.ruiwen.com/shiyanbaogao/8103110.html