需求工程需求工程需求工程需求工程李傲雷上海交通大学软件学院2010-04-111教学内容教学内容教学内容教学内容1软件需求基本理论和概念1.软件需求基本理论和概念2.软件需求工程过程3软件需求获取3.软件需求获取4.软件需求分析5软件需求规格说明5.软件需求规格说明6.软件需求验证7.软件需求管理7.软件需求管理8.软件需求实现9.软件需求工程新进展10.软件需求开发与需求管理工具11.其它上海交通大学软件学院2010-04-112软件需求规格说明软件需求规格说明软件需求规格说明软件需求规格说明需求规格说明技术和方法1.需求规格说明技术和方法2.需求规格说明模板数字典3.数据字典上海交通大学软件学院2010-04-11311需求规格说明技术和方法需求规格说明技术和方法1.1.需求规格说明技术和方法需求规格说明技术和方法关于需求规格说明关于需求规格说明软件需求规格说明,也称为功能规格说明、需求协议以及系统规格说明系统规格说明;它精确地阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件;所要考虑的限制条件;软件需求规格说明不仅是系统测试和用户文档的基础,也是所有子系列项目规划、设计和编码的基础;它应该尽可能完整地描述系统预期的外部行为和用户可视化行为;除了设计和实现上的限制软件需求规格说明不应该包括除了设计和实现上的限制,软件需求规格说明不应该包括设计、构造、测试或工程管理的细节。上海交通大学软件学院2010-04-11411需求规格说明技术和方法需求规格说明技术和方法1.1.需求规格说明技术和方法需求规格说明技术和方法编写软件需求规格说明的方法编写软件需求规格说明的方法可以用三种方法编写软件需求规格说明:用好的结构化和自然语言编写文本型文档用好的结构化和自然语言编写文本型文档;建立图形化模型,这些模型可以描绘转换过程、系统状态和它们之间的变化、数据关系、逻辑流或对象类和它们的和它们之间的变化、数据关系、逻辑流或对象类和它们的关系;编写形式化规格说明,这可以通过使用数学上精确的形式化逻辑语言来定义需求。上海交通大学软件学院2010-04-11511需求规格说明技术和方法需求规格说明技术和方法1.1.需求规格说明技术和方法需求规格说明技术和方法使用软件需求规格说明的目的使用软件需求规格说明的目的客户和营销部门依赖它来了解他们所能提供的产品;项目经理根据包含在软件需求规格说明中描述的产品来制项目经理根据包含在软件需求规格说明中描述的产品来制定规划并预测进度安排、工作量和资源;软件开发小组依赖它来理解他们将要开发的产品;软件开发小组依赖它来理解他们将要开发的产品;测试小组使用软件需求规格说明中对产品行为的描述制定测试计划、测试用例和测试过程;软件维护和支持人员根据SRS了解产品的某部分是做什么的;上海交通大学软件学院2010-04-11611需求规格说明技术和方法需求规格说明技术和方法1.1.需求规格说明技术和方法需求规格说明技术和方法使用软件需求规格说明的目的使用软件需求规格说明的目的产品发布组在SRS和用户界面设计的基础上编写客户文档,如用户手册和帮助屏幕等如用户手册和帮助屏幕等;培训人员根据SRS和用户文档编写培训材料;如果任何所期望的功能或非功能需求未写入软件需求规格如果任何所期望的功能或非功能需求未写入软件需求规格说明,那么它将不能作为协议的一部分并且不能在产品中出现;所有的参与者必须根据已通过评审的需求来安排工作以避免不必要的返工和误解。上海交通大学软件学院2010-04-11711需求规格说明技术和方法需求规格说明技术和方法1.1.需求规格说明技术和方法需求规格说明技术和方法可读性的建议可读性的建议对节、小节和单个需求的号码编排必须一致;在右边部分留下文本注释区在右边部分留下文本注释区;允许不加限制地使用空格;正确使用各种可视化强调标志(例如黑体下划线斜正确使用各种可视化强调标志(例如,黑体、下划线、斜体和其它不同字体);创建目录表和索引表有助于读者寻找所需的信息;创建目录表和索引表有助于读者寻找所需的信息;对所有图和表指定号码和标识号,并且可按号码进行查阅;使用字处理程序中交叉引用的功能来查阅文档中其它项或位置,而不是通过页码或节号。上海交通大学软件学院2010-04-11811需求规格说明技术和方法需求规格说明技术和方法1.1.需求规格说明技术和方法需求规格说明技术和方法标识需求标识需求为了满足软件需求规格说明的可跟踪性和可修改性的质量标准必须唯一确定每个软件需求标准,必须唯一确定每个软件需求;这可以使你在变更请求、修改历史记录、交叉引用或需求的可跟踪矩阵中查阅特定的需求。的可跟踪矩阵中查阅特定的需求由于要达到这一目的,用单一的项目列表是不够的,因此,我们将描述几个不同的需求标识方法,并阐明它们的优点与缺点与缺点。可以选择最适合你的方法。上海交通大学软件学院2010-04-11911需求规格说明技术和方法需求规格说明技术和方法1.1.需求规格说明技术和方法需求规格说明技术和方法标识需求标识需求l)序列号:0001~10002)层次化编码221222112)层次化编码:2,2.1,2.2,2.1.1……3)层次化文本标签:ABC001,ABC002,……上海交通大学软件学院2010-04-111011需求规格说明技术和方法需求规格说明技术和方法1.1.需求规格说明技术和方法需求规格说明技术和方法处理不完整性处理不完整性有时,你觉得缺少特定需求的某些信息。在解决这个不确定性之前可能必须与客户商议检查与另一个系统的接定性之前,可能必须与客户商议。检查与另一个系统的接口或者定义另一个需求。使用“待确定”(tobedetermined,TBD)符号作为标准指示器来强调软件需求规格说明中这些需求的缺陷(gap);通过这种方法,你可以在软件需求规格说明中查找所要澄清需求的部分记录谁将解决哪个问题怎样解决及什么清需求的部分。记录谁将解决哪个问题、怎样解决及什么时候解决;把每个TBD编号并创建一个TBD列表,这有助于方便地跟踪把每个TBD编号并创建个TBD列表,这有助于方便地跟踪每个项目。上海交通大学软件学院2010-04-111111需求规格说明技术和方法需求规格说明技术和方法1.1.需求规格说明技术和方法需求规格说明技术和方法用户界面和软件需求规格说明用户界面和软件需求规格说明把用户界面的设计编入软件需求规格说明既有好处也有坏处处;消极方面,屏幕映像和用户界面机制是解决方案(设计)的描述,而不是需求。如果你在完成了用户界面的设计之的描述,而不是需求如果你在完成了用户界面的设计之后才能确定软件需求规格说明,那么需求开发的过程将会花费很长的时间;积极方面探索潜在的用户界面有助于你精化需求并使用积极方面,探索潜在的用户界面有助于你精化需求并使用户-系统的交互对用户和开发人员更具有实在性。用户界面的演示也有助于项目计划的制定和预测。面的演示也有助于项目计划的制定和预测。上海交通大学软件学院2010-04-111222需求规格说明模板需求规格说明模板2.2.需求规格说明模板需求规格说明模板软件需求规格说明模板软件需求规格说明模板d.系统特性d.1说明和优先级d2激励/响应序列a.引言a.1目的2文档约定d.2激励/响应序列d.3功能需求e.其它非功能需求e.1性能需求2安全设施需求a.2文档约定a.3预期的读者和阅读建议a.4产品的范围a.5参考文献b综合描述e.2安全设施需求e.3安全性需求e.4软件质量属性e.5业务规则e6用户文档b.综合描述b.1产品的前景b.2产品的功能b.3用户类和特征b4运行环境e.6用户文档f.其它需求附录A:词汇表附录B:分析模型附录C待确定问题的列表b.4运行环境b.5设计和实现上的限制b.6假设和依赖C.外部接口需求C1用户界面附录C:待确定问题的列表C.1用户界面C.2硬件接口C.3软件接口C.4通信接口上海交通大学软件学院2010-04-111322需求规格说明模板需求规格说明模板2.2.需求规格说明模板需求规格说明模板软件需求规格说明模板引言软件需求规格说明模板-引言a.引言引言提出了对软件需求规格说明的纵览,这有助于读者理解文档如何引言提出了对软件需求规格说明的纵览有助于读者解文档如何编写并且如何阅读和解释。a.1目的对产品/项目进行定义,在该文档中详尽说明了这个产品/项目的软件对产品/项目进行定义,在该文档中详尽说明了这个产品/项目的软件需求,包括修订或发行版本号。如果这个软件需求规格说明只与整个系统的一部分有关系,那么只在文档中定义说明部分或子系统。a.2文档约定a.2文档约定描述编写文档时所采用的标准或排版约定,包括正文风格、提示区或重要符号。例如,说明了高层需求的优先级是否可以被其所有细化的需求继承,或者每个需求陈述是否都有其自身的优先级。需求继承,或者每个需求陈述是否都有其自身的优先级上海交通大学软件学院2010-04-111422需求规格说明模板需求规格说明模板2.2.需求规格说明模板需求规格说明模板软件需求规格说明模板引言软件需求规格说明模板-引言a.3预期的读者和阅读建议列举了软件需求规格说明所针对的不同读者,例如开发人员、项目经理、营销编描中人员、用户、测试人员或文档的编写人员。描述了文档中剩余部分的内容及其组织结构,提出了最适合于每一类型读者阅读文档的建议。a.4产品的范围提供了对指定的软件及其目的的简短描述包括利益和目标把软件与企业目提供了对指定的软件及其目的的简短描述,包括利益和目标。把软件与企业目标或业务策略相联系。可以参考项目愿景和范围文档而不是将其内容复制到这里。a.5参考文献a.5参考文献列举了编写软件需求规格说明时所参考的资料或其它资源。这可能包括用户界面风格指导、合同、标准、系统需求规格说明、用例文档或相关产品的软件需求规格说明。在这里应该给出详细的信息,包括标题名称、作者、版本号、日期出版单位或资料来源以方便读者查阅这些文献期、出版单位或资料来源,以方便读者查阅这些文献。上海交通大学软件学院2010-04-111522需求规格说明模板需求规格说明模板2.2.需求规格说明模板需求规格说明模板软件需求规格说明模板综合描述软件需求规格说明模板-综合描述这一部分概述了正在定义的产品以及它所运行的环境、使用产品的用户和已知的限制、假设和依赖。b1产品的前景b.1产品的前景描述了软件需求规格说明中所定义的产品的背景和起源。b.2产品的功能概述了产品所具有的主要功能。其详细内容将在d中描述,所以在此只需要概略地总结,例如用列表的方法给出。b.3用户类和特征确定你觉得可能使用该产品的不同用户类并描述它们相关的特征。b4运行环境b.4运行环境描述了软件的运行环境,包括硬件平台、操作系统和版本,还有其它的软件组件或与其共存的应用程序。b.5设计和实现上的限制确定影响开发人员自由选择的问题并说明这些问题为什么成为一种限制确定影响开发人员自由选择的问题,并说明这些问题为什么成为种限制。b.6假设和依赖列举出在对软件需求规格说明中影响需求陈述的假设因素(与已知因素相对立)。上海交通大学软件学院2010-04-111622需求规格说明模板需求规格说明模板2.2.需求规格说明模板需求规格说明模板软件需求规格说明模板外部接需求软件需求规格说明模板-外部接口需求需要把对用户界面组件和接口数据的详细描述写入数据字典中。如果产品的不同部分有不同的外部接口,那么应把这些外部接口的详细需求并入到这一部分中。1用户界面c.1用户界面陈述所需要的用户界面的软件组件,描述每个用户界面的逻辑特征。c.2硬件接口描述系统中软件和硬件每一接口的特征。c.3软件接口描述该产品与其他外部组件(由名字和版本识别)的连接,包括数据库、操作系统、工具和集成的商业组件等。c4通信接口c.4通信接口描述与产品所使用的通信功能相关的内容,包括电子