不论是自定向下的软件开发,还是自底向上的软件开发,正确定义问题,是解决问题的前提
除了过程规划和过程控制,系统工程的活动还包括:
需求分析(问题定义):通过分析分配给软件的那些系统需求,确定软件需求。
软件体系结构设计(解决方案分析):为软件需求及约束,确定一组解决方案,进行实例研究,分析可能的方案,并选择一个最佳的方案。
验证、确认及测试(产品评估):通过测试、演示、分析及审查等方式,评估最终产品和文档。
一、 需求与需求获取
一个需求是一个“要予构造”的陈述,描述了待开发产品(或项)功能上的能力、性能参数或者其他性质。
1、需求的基本性质:
(1)必要的(necessary),即该需求是用户所要求的;
(2)无歧义的(unambiguous),即该需求只能用一种方式解释;
(3)可测的(testable),即该需求是可进行测试的
(4)可跟踪的(traceable),即该需求可从一个开发阶段跟踪到另一个阶段
(5)可测量的(measurable),即该需求是可测量的
2、需求的分类
功能性需求
非功能性需求:性能需求、外部接口需求、设计约束、质量属性
(1) 功能型需求规约了系统或系统构建必须执行的功能。
除了对要执行的功能给出一个陈述外,需求还应该有如下内容:
1)关于该功能输入的所有假定,或为了验证该功能输入,有关检测的假定。
2) 功能内的任一次序,这一次序是与外部有关的
3)对异常条件的响应,包括所有内部或外部所产生的错误
4)需求的时序或优先程度
5)功能之间的互斥规则
6)系统内部状态的假定
7)为了该功能的执行,所需要的输入和输出次序。
8)用于转换或内部计算所需要的公式
一般来说,功能需求是整个需求的主体。但非功能需求可作用于一个或多个功能需求
(2)性能需求 performance requirement
规约了一个系统或系统构件必须具有的性能特性。性能需求隐含了一些满足功能需求的设计方案,经常对设计会产生一些关键的影响。
(3)外部接口需求 external interface requirement
规约了系统或系统构件必须与之交互的硬件、软件或数据库元素,其中也可能规约其格式、时间或其他因素等。
系统接口(system interfaces)
用户接口(user interfaces)
硬件接口(hardware interfaces)
软件接口(software interfaces)
通信接口(communications interfaces)
内存约束(memory constraints)
操作(operation)
地点需求(site adaptation reuirements)
(4) 设计约束
法律政策(regulatory policies)
硬件限制(hardware limitations)
与其他应用的接口(interfaces to other applications)
并发操作(parallel operations)
审计功能(audit functions)
控制功能(control funcitons)
高级语言需求(higher order language requirements)
握手协议(signal handshake protocols)
应用的关键程度(criticality of the application)
安全和保密(safety and security)
(5)质量属性 quality attribute
规约了软件产品必须具有的一个性质是否达到质量方面一个所期望的水平。
可靠性、存活性、可维护性、用户友好性
3 、需求发现技术
自悟introspection
交谈individual interviews
观察observation
小组会group session
提炼extraction
二、需求规格SRS及其格式
1、定义
需求规约是一个软件项/产品/系统所有需求陈述的正式文档,它表达了一个软件产品/系统的概念模型。
2、基本性质
重要性和稳定程度(Ranked for importance and stability)
可修改的(modifiable)
完整的(complete)
一致的(consistent)
3、需求规约(草案)格式
需求规约基本格式:
1、引言
1.1 目的
1.2 范围
1.3 定义,缩略语
1.4 参考文献
1.5 概述
2、总体描述
2.1 产品概述
2.2 产品功能
2.3 用户特性
2.4 约束
2.5 假设和依赖
3、特定需求
附录
索引
第三部分“特定需求”是文档的技术核心。应根据不同类型的系统来构造这一部分
4、表达需求规约(规格说明书)的三种风格
1、非形式化的规约
2、半形式化的规约
3、形式化规约
5、需求规约的作用
(1) 需求规约是软件开发组织和用户之间一份事实上的技术合同书,是产品功能及其环境的体现
(2) 对于项目的其余大多数工作,需求规约是一个管理控制点
(3)对于产品/系统的设计,需求规约是一个正式的、受控的起始点;
(4)需求规约是创建产品验收测试计划和用户指南的基础