软件需求( SOFTWARE REQUIREMENTS)
- 软件需求知识领域与软件需求的启发,分析,规范和验证以及软件产品整个生命周期中的需求管理有关。 在研究人员和行业从业人员,当与需求相关的活动执行不当时软件项目将非常脆弱。
- 软件需求表达了软件产品上的需求和约束,这些需求和约束有助于解决某些实际问题。
- 其知识领域涉及软件需求的提取、分析、细化和验证,以及软件产品整个生命周期的需求管理。
- 软件需求与软件设计,软件测试,软件维护,软件配置管理,软件工程管理,软件工程过程,软件工程模型和方法以及软件质量密切相关。
SWEBOK将软件需求分为以下知识域
1.软件需求基础
1.1.软件需求定义
软件需求通常情况下描述了解决现实世界中某些问题的内容,当然也有可能描述其他更多的抽象问题。
软件需求的基本属性是 “能够被验证”。同时他还包括优先级、完成进度、需求跟踪标识等属性。
1.2.产品与过程需求
产品需求用于描述,开发的功能应该满足什么样的要求。
而过程需求规定了开发过程中的约束(如软件需要采取那种方法论进行开发)
过程需求也可能不是产品经理提出,而是执行开发工作的技术人员提出。
1.3.功能与非功能需求
功能需求描述了软件要实现的功能,也有可能是一种测试流程。
非功能能需求也被称为约束或质量需求。他可能是 可维护性要求、安全要求、可靠性要求、操作性要求等。
1.4.衍生属性
一些需求代表了软件的衍生属性,即不能由单个组件解决的需求,但取决于所有软件组件如何互操作。例如 呼叫中心的吞吐量要求,取决于电话系统,信息系统和运营商在实际操作条件下的交互方式。 衍生属性的重要性取决于系统体系结构。
1.5.定量需求
需求应该避免含糊不清的要求,而需要提出清晰可验证的量化要求。
例如 “字体大小适中”这种就是模糊不清的需求,而“文字采用10pt大小”就是清晰量化的需求。
1.6.系统需求与软件需求
系统需求包含了软件需求,软件需求是系统需求的一部分。
系统需求阐述了整个项目的要求,如团队、资源、第三方等。
2.需求过程
2.1.过程模型
本主题的目的是提供对需求过程的理解 。
- 它不是软件生命周期中的一个独立的前端活动,而是一个在项目开始时启动的过程,在整个生命周期中都将继续引用该过程;
- 将软件需求识别为配置项,并使用与软件生命周期过程中其他产品相同的软件配置管理实践来管理它们;
- 需要适应组织和项目环境。
特别是,该主题涉及如何针对不同类型的项目和约束来配置启发,分析,指定和验证活动。 该主题还包括为需求过程提供输入的活动,例如市场营销和可行性研究。
2.2.过程参与者
本主题介绍了参与需求过程的人员的角色。 这个过程从根本上讲是跨学科的,需求专家需要在利益相关者的领域和软件工程的领域之间进行协调。 除了需求专家之外,通常还有很多人参与其中,他们每个人在软件中都有利害关系。 利益相关者在各个项目中会有所不同,但始终会包括用户/运营商和客户(他们不必相同)。
软件涉及角色的典型例子包括(但不限于)以下内容:
- 用户:软件的使用人。通常包括不同工作内容的一组人。
- 客户:通常是委托开发软件的人。
- 市场分析师:大众市场不会有明确的客户。所以需要营销人员来确定大众需要什么,来充当客户角色。
- 监管人: 许多应用行业都受到部门监管,如银行和公共交通。这些行业中的软件必须符合监管机构的要求。
- 软件工程师: 这些人对通过开发软件来获利,例如,通过重复使用其他产品中的组件或从其他产品中获利。 在这种情况下,如果特定产品的客户有特定的要求,这些要求损害了组件重用的潜力,则软件工程师必须仔细权衡自己和客户的利益。 特定的需求(尤其是约束)可能会对项目成本或交付产生重大影响,因为它们对工程师的技能设置有好有坏。 这些需求之间的重要权衡应予以确定。
完美地满足每一个参与者的需求是不可能的,产品经理的工作就是在主要参与者可以接受的范围内以及在预算、技术、法规和其他约束条件下进行权衡。
这样做的一个先决条件是所有的参与者都被识别出来,并根据他们的需求来权衡利害关系。
2.3.过程支持与管理
软件工程管理为过程模型建立了环境(启动和范围定义)。
它的主要目的是将2.1中提到的过程活动与成本、人力资源、培训和工具等问题联系起来。
本节介绍了需求过程所需和消耗的项目管理资源。 它为软件工程管理KA的第一个主题(启动和范围定义)建立了基础。 其主要目的是使2.1中确定的过程活动与成本,人力资源,培训和工具问题之间建立联系。
2.4.过程质量与改进
本主题涉及质量评估和需求过程的改进。 其目的是强调需求过程在软件需求1-5的成本和软件产品的及时性以及客户对其的满意度方面所起的关键作用。 这将有助于以软件和系统的质量标准以及流程改进模型来指导需求流程。
流程质量和改进与软件质量KA和软件工程流程KA密切相关,包括
- 通过过程改进标准和模型来要求过程覆盖;
- 需求过程措施和基准测试;
- 改进计划和实施&#x