1、第第11章章 分析概念和原则分析概念和原则软软 件件 工工 程程第第11章章分析概念和原则分析概念和原则11.1需求分析需求分析11.2软件的需求诱导软件的需求诱导11.2.1 11.2.1 过程的启动过程的启动11.2.2 11.2.2 便利的应用规约技术便利的应用规约技术11.2.3 11.2.3 质量功能部署质量功能部署11.211.2.4 use-case.4 use-case第第11章章分析概念和原则分析概念和原则11.3分析原则分析原则11.3.1 11.3.1 信息域信息域11.3.2 11.3.2 建模建模11.3.3 11.3.3 划分划分11.3.4 11.3.4 要素视图
2、和实现视图要素视图和实现视图 11.4软件原型实现软件原型实现11.4.1 11.4.1 选择原型实现方法选择原型实现方法 11.4.2 11.4.2 原型方法和工具原型方法和工具 第第11章章分析概念和原则分析概念和原则11.5规约规约11.5.1 11.5.1 规约原则规约原则11.5.2 11.5.2 表示表示11.5.3 11.5.3 软件需求规约软件需求规约11.6规约评审规约评审11.7小结小结需求分析任务需求分析任务:n发现发现n求精求精n建模建模n规约规约需求工程是系统地使用已被证明的原理、技术、语言和工具去处理价格有效的分析、文档以及用户需要的系统的外部行为规约的不断演化。1
3、1.1需求分析需求分析需求分析需求分析是种是种软软件工程活动件工程活动在系统级在系统级软件分软件分配和软件设计配和软件设计间起桥梁作用间起桥梁作用系统工程系统工程软件需软件需求分析求分析软件设计软件设计1.问题识别问题识别2.评估和方案综合评估和方案综合3.建模建模4.规约规约5.评审评审软件需求分析软件需求分析5个工作阶段:个工作阶段:n软件需求分析中的相互通信总软件需求分析中的相互通信总是要在两方或多方间进行是要在两方或多方间进行 11.2软件的需求诱导软件的需求诱导n客户和开发者之间最常用的交流方式以及开始相互客户和开发者之间最常用的交流方式以及开始相互通信过程的技术是进行预备会议或访谈
4、。通信过程的技术是进行预备会议或访谈。n必须启动通信活动,分析员可从询问一组语境无关必须启动通信活动,分析员可从询问一组语境无关的问题开始,语境无关的问题就是,一组将导致对的问题开始,语境无关的问题就是,一组将导致对问题、需要解决方案的人员、希望的解决方案的性问题、需要解决方案的人员、希望的解决方案的性质以及第一次遭遇的效率等的基本理解的问题。第质以及第一次遭遇的效率等的基本理解的问题。第一组语境无关的问题关注于客户、整体目标和收益。一组语境无关的问题关注于客户、整体目标和收益。11.2.1过程的启动过程的启动n在中立的地点举行会议在中立的地点举行会议n建立准备和参与会议的规则建立准备和参与会
5、议的规则n建议一个足够正式的议程而又是足够非正式建议一个足够正式的议程而又是足够非正式n一个一个“协调者协调者”控制会议控制会议n使用一种使用一种“定义机制定义机制”(工作表、图表等工作表、图表等)n目标是标识问题、方案的要素、商议的方法、目标是标识问题、方案的要素、商议的方法、解决方案需求解决方案需求典型典型FAST11.2.2便利的应用规约技术便利的应用规约技术方法:方法:n质量功能部署质量功能部署(QFD)(QFD)是一种是一种质量管理技术质量管理技术,它将客户的需要翻译为软件的技术需求。它将客户的需要翻译为软件的技术需求。QFD“QFD“集中于最大限度地让客户满意集中于最大限度地让客户
6、满意”。QFDQFD强调理解什么是对客户有价值的,然强调理解什么是对客户有价值的,然后在整个工程活动中部署这些价值。后在整个工程活动中部署这些价值。11.2.3质量功能部署质量功能部署质量功能部署质量功能部署(QFD)标识三类标识三类需求需求:n正常的需求正常的需求n期望的需求期望的需求n兴奋的需求兴奋的需求11.2.3质量功能部署质量功能部署11.2.4use-case当需求作为非正式会议、当需求作为非正式会议、FAST或或QFD的一部分而收集的一部分而收集之后,软件工程师可创建一组标识一串待构造系统的之后,软件工程师可创建一组标识一串待构造系统的使用场景。这些场景被称为:使用场景。这些场景
7、被称为:use-case,它提供了系,它提供了系统将被如何使用的描述。统将被如何使用的描述。控制软件的控制软件的4种种交互模式(角色)交互模式(角色):编程模式编程模式(编程员编程员)、测试模式、测试模式(测试员测试员)、监控模式、监控模式(监监控员控员)、纠错模式、纠错模式(纠错员纠错员)通常,一个通常,一个use-caseuse-case只简单地是一段撰写的叙述,描只简单地是一段撰写的叙述,描述某参与者在和系统交互时的角色。述某参与者在和系统交互时的角色。11.3 分析原则分析原则1.1.必须表示和理解问题的信息域必须表示和理解问题的信息域2.2.必须定义软件将完成的功能必须定义软件将完成
8、的功能3.3.必须表示软件的行为必须表示软件的行为(作为外部事件的结果作为外部事件的结果)4.4.必须划分描述信息、功能和行为的模型必须划分描述信息、功能和行为的模型5.5.分析过程应该从要素信息移向细节实现分析过程应该从要素信息移向细节实现 针对针对“需求工程需求工程”的指导性原则:的指导性原则:n建立模型前先理解问题。建立模型前先理解问题。n开发使用户了解人机交互的原型开发使用户了解人机交互的原型n记录每个需求的起源及原因记录每个需求的起源及原因n使用多个需求视图使用多个需求视图n给需求赋予优先级给需求赋予优先级n努力删除歧义性努力删除歧义性 信息域包含三个信息域包含三个数据和控制视图数据
9、和控制视图:11.3.1 信息域信息域 1.1.信息内容和关系(数据模型):表示个体数据信息内容和关系(数据模型):表示个体数据和控制对象,它们构成了某个更大的被该软件和控制对象,它们构成了某个更大的被该软件变换的信息集合。变换的信息集合。2.2.信息流:表示数据和控制在系统中流动时变化信息流:表示数据和控制在系统中流动时变化的方式。的方式。3.3.信息结构:表示各种数据和控制项的内部组织。信息结构:表示各种数据和控制项的内部组织。11.3.2 11.3.2 建模建模创建系统的模型创建系统的模型:功能模型功能模型行为模型行为模型 输入输入处理处理输出输出11.3.3 11.3.3 划分划分本质
10、上本质上:划分将问题分解为其构成成分划分将问题分解为其构成成分概念上概念上:我们建立信息或功能的层次表示,然我们建立信息或功能的层次表示,然 后划分最上层的元素,通过在层次上后划分最上层的元素,通过在层次上 垂直向下移动而暴露更多的细节或在垂直向下移动而暴露更多的细节或在 层次上水平移动而分解问题。层次上水平移动而分解问题。11.3.3 11.3.3 划分划分1.1.在层次上在层次上垂直垂直向下移动而显露更多的向下移动而显露更多的细节细节2.2.在层次上在层次上水平水平移动而移动而分解问题分解问题 11.3.4 11.3.4 要素视图和实现视图要素视图和实现视图n软件需求的软件需求的基本视图基
11、本视图给出了将要完成的功能和将给出了将要完成的功能和将要处理的信息,而不管实现细节。要处理的信息,而不管实现细节。n软件需求的软件需求的实现视图实现视图给出了处理功能和信息结构给出了处理功能和信息结构的现实世界表示。的现实世界表示。n软件软件需求分析需求分析应该着重于软件将应该着重于软件将完成什么完成什么,而不,而不是处理将如何实现是处理将如何实现 11.4 11.4 软件原型实现软件原型实现11.4.111.4.1选择原型实现方法选择原型实现方法原型范型:原型范型:封闭结束封闭结束丢弃型原型实现丢弃型原型实现开放结束开放结束演化型原型实现演化型原型实现原型实现的候选因素原型实现的候选因素可被
12、可被定义:定义:软件应用领域软件应用领域软件应用复杂性软件应用复杂性客户特征客户特征项目特征项目特征 客户和原型交互信息的两个基本点:客户和原型交互信息的两个基本点:客户资源被用于客户资源被用于原型原型评估和精化评估和精化客户能够以客户能够以即时即时的方式作出需求决策的方式作出需求决策建议原型的实现方法建议原型的实现方法三个类属的三个类属的方法和工具类方法和工具类:11.4.2 11.4.2 原型实现方法和工具原型实现方法和工具n第四代技术第四代技术n可复用软件构件可复用软件构件n形式化规约和原型实现环境形式化规约和原型实现环境11.5.1 11.5.1 规约原则规约原则1.1.分离功能性和实
13、现分离功能性和实现2.2.开发一个系统的行为模型开发一个系统的行为模型-包含了系统包含了系统对各种数据和功能的反应对各种数据和功能的反应3.3.通过刻画其他系统构件和软件交互的方式,通过刻画其他系统构件和软件交互的方式,建立软件操作的语境建立软件操作的语境11.5 11.5 规约规约4.4.定义系统运作的环境并指明定义系统运作的环境并指明“一组高度缠绕一组高度缠绕在一起的代理如何对环境中由其他代理产生在一起的代理如何对环境中由其他代理产生的刺激(对象的变化)作出反应的刺激(对象的变化)作出反应”5.5.创建认知模型而不是设计或实现模型创建认知模型而不是设计或实现模型6.6.认识认识“规约必定是
14、不完整的和可增加的规约必定是不完整的和可增加的”7.7.建立规约的内容和结构建立规约的内容和结构,并使得它能适应未,并使得它能适应未来的变化来的变化11.5.1 11.5.1 规约原则规约原则11.5.2 11.5.2 表示表示指导原则指导原则:表示格式和内容应该和问题相关表示格式和内容应该和问题相关 包含在规约中的信息应该是嵌套的包含在规约中的信息应该是嵌套的 图和其他符号应该在数量上有所限制,并在图和其他符号应该在数量上有所限制,并在 使用上一致使用上一致 表示应该是可修订的表示应该是可修订的 11.5.3 11.5.3 软件需求规约软件需求规约软件需求规约的候选软件需求规约的候选格式格式
15、n 引言引言n 信息描述信息描述 -功能描述,行为描述功能描述,行为描述n 确认标准确认标准 -确认标准的规约是对其他需求确认标准的规约是对其他需求 的隐式评审的隐式评审n 参考书目和附录参考书目和附录 11.6 11.6 规约评审规约评审软件需求规约软件需求规约(和和/或原型或原型)的复审是由软件开的复审是由软件开发者和客户一起进行的,因为规约构成了设计发者和客户一起进行的,因为规约构成了设计和以后的软件工程活动的基础,在进行复审时和以后的软件工程活动的基础,在进行复审时必须给予特别的重视。必须给予特别的重视。11.7 11.7 小结小结需求分析必须关注问题的:需求分析必须关注问题的:n信息信息n功能功能n行为域行为域11.7 11.7 小结小结分析后的实现方法:分析后的实现方法:n创建模型创建模型n划分问题划分问题n描述需求要素描述需求要素n表示以后的实现细节表示以后的实现细节 需求分析需求分析是软件工程过程的第一步骤,它被精化是软件工程过程的第一步骤,它被精化为具体的为具体的规约,规约,它是后面所有软件设计活动的基它是后面所有软件设计活动的基础。础。软件需求规约作为软件需求规约作为分析的结果分析的结果而被开发而被开发 11.7 11.7 小结小结