软件工程(第3版)齐治昌—第5章需求分析与验证课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件工程(第3版)齐治昌—第5章需求分析与验证课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 齐治昌 需求 分析 验证 课件
- 资源描述:
-
1、第五章第五章 需求分析与验证需求分析与验证5.1 5.1 分析模型的表示分析模型的表示 顺序图、通信图、顺序图、通信图、状态图、扩充机制状态图、扩充机制5.2 5.2 需求分析的过程模型需求分析的过程模型5.3 5.3 需求优先级分析需求优先级分析5.4 5.4 用例分析用例分析5.5 5.5 利用快速原型辅助需求分析利用快速原型辅助需求分析5.6 5.6 评审分析模型评审分析模型5.7 5.7 需求规约需求规约5.8 5.8 需求验证需求验证 2022-12-191第五章第五章 需求分析与验证需求分析与验证5.1 5.1 分析模型的表示分析模型的表示 5.1.1 5.1.1 顺序图顺序图 5
2、.1.2 5.1.2 通信图通信图 5.1.3 5.1.3 状态图状态图 5.1.4 5.1.4 扩充机制扩充机制2022-12-1925.1 5.1 分析模型的表示分析模型的表示需求分析的任务:需求分析的任务:在需求获取阶段的输出制品的在需求获取阶段的输出制品的基础上,获得对软件需求的更深入、更完整的理基础上,获得对软件需求的更深入、更完整的理解,并且将软件需求表示为面向软件设计人员、解,并且将软件需求表示为面向软件设计人员、易于修改和维护的分析模型。易于修改和维护的分析模型。基于用例模型建立软件需求的分析模型是基于用例模型建立软件需求的分析模型是需求分需求分析活动的焦点析活动的焦点。在用例
3、模型已成的情形下为何还要构建分析模型?在用例模型已成的情形下为何还要构建分析模型?2022-12-193分析模型的表示分析模型的表示构建分析模型的两点构建分析模型的两点理由:理由:分析模型比用例模型更加结构化、更加清晰分析模型比用例模型更加结构化、更加清晰直观,所以分析模型的构建过程实际上也是不直观,所以分析模型的构建过程实际上也是不断深入理解用例模型的过程,同时也是剔除用断深入理解用例模型的过程,同时也是剔除用例的自然语言描述中可能存在的模糊性和不一例的自然语言描述中可能存在的模糊性和不一致性的过程。致性的过程。分析模型是用例模型与软件设计模型之间的分析模型是用例模型与软件设计模型之间的“桥
4、梁桥梁”,它比用例模型更接近于设计模型,它比用例模型更接近于设计模型,更适合于软件设计师设计软件系统的结构、构更适合于软件设计师设计软件系统的结构、构思软件求解算法,更易于为不太熟悉业务的软思软件求解算法,更易于为不太熟悉业务的软件设计师所理解,换言之,理解分析模型对业件设计师所理解,换言之,理解分析模型对业务知识的要求远低于理解用例模型。务知识的要求远低于理解用例模型。2022-12-194分析模型的表示分析模型的表示需求分析活动参与者:需求分析活动参与者:u主要完成者是来自软件开发方的主要完成者是来自软件开发方的需求工程师需求工程师。u其他参与者包括其他参与者包括软件架构师、利益相关方,以
5、软件架构师、利益相关方,以及项目软件经理、质量保证工程师及项目软件经理、质量保证工程师。需求分析输入与输出:需求分析输入与输出:u输入制品输入制品与需求获取活动的输出制品相同。在与需求获取活动的输出制品相同。在所有这些输入制品中,所有这些输入制品中,用例模型最重要用例模型最重要。u输出制品输出制品主要是软件需求的主要是软件需求的分析模型分析模型。该模型。该模型是需求规约的主要组成部分,同时也是后续软是需求规约的主要组成部分,同时也是后续软件设计、构造和测试活动的工作基础。件设计、构造和测试活动的工作基础。2022-12-195分析模型的表示分析模型的表示分析模型的表示主要采用分析模型的表示主要
6、采用UMLUML的的类图、活动图、交类图、活动图、交互图与状态图。互图与状态图。2022-12-1965.1 5.1 分析模型的表示分析模型的表示用于表示分析模型的用于表示分析模型的UMLUML图形机制主要是类图形机制主要是类图、活动图、交互图与状态图。除此以外,图、活动图、交互图与状态图。除此以外,分析模型及设计模型等可能还需要引入分析模型及设计模型等可能还需要引入UMLUML的扩充机制来表达其标准语法设施无法表的扩充机制来表达其标准语法设施无法表达的语义。达的语义。本节主要内容:本节主要内容:u顺序图顺序图u通信图通信图u状态图状态图uUMLUML的扩充机制。的扩充机制。2022-12-1
7、975.1.1 5.1.1 顺序图顺序图交互图描述一组对象通过交互图描述一组对象通过消息传递消息传递而形成的而形成的协作协作行为行为。交互图的应用:交互图的应用:u经常用于描述经常用于描述单个用例的功能的实现方式单个用例的功能的实现方式,u软件系统在某种给定的使用场景下对象之间的交互协软件系统在某种给定的使用场景下对象之间的交互协作流程,作流程,u软件系统的某个复杂操作的逻辑实现模型。软件系统的某个复杂操作的逻辑实现模型。通过交互图可清晰地了解对象在软件系统中扮演通过交互图可清晰地了解对象在软件系统中扮演的角色以及对象之间的交互协作。的角色以及对象之间的交互协作。2022-12-198顺序图顺
8、序图分类:交互图包括分类:交互图包括顺序图顺序图和和通信图通信图两种。两种。u前者强调前者强调消息传递的时间消息传递的时间序,后者突出序,后者突出交换消息的对交换消息的对象之间的合作关系象之间的合作关系。u虽然它们各有侧重,但从语义上讲基本等价,可从一虽然它们各有侧重,但从语义上讲基本等价,可从一种图自动转换为另一种图,所以没有必要针对同一建种图自动转换为另一种图,所以没有必要针对同一建模目标同时创建顺序图和通信图,这样反而容易引起模目标同时创建顺序图和通信图,这样反而容易引起语义上的冗余和冲突。语义上的冗余和冲突。2022-12-199顺序图顺序图交互图的作用:交互图的作用:u业务分析及需求
9、分析人员业务分析及需求分析人员借助交互图可分析、表述业借助交互图可分析、表述业务处理过程或与软件相关的处理流程;务处理过程或与软件相关的处理流程;u软件设计及实现人员软件设计及实现人员根据交互图确定对象的操作及操根据交互图确定对象的操作及操作实现方法;作实现方法;u测试人员测试人员可从交互图了解软件处理过程并据此设计测可从交互图了解软件处理过程并据此设计测试用例。试用例。图图5.15.1是课程注册管理系统中是课程注册管理系统中“制订选课计划制订选课计划”用用例的顺序图,该图表示将一些课程设置添加至学例的顺序图,该图表示将一些课程设置添加至学生选课计划时软件系统内多个对象之间的交互协生选课计划时
10、软件系统内多个对象之间的交互协作过程。作过程。2022-12-1910图图5.1 5.1 课程注册管理系统中课程注册管理系统中“制订选课计划制订选课计划”用例的顺序图用例的顺序图2022-12-1911(一)顺序图概览(一)顺序图概览顺序图是一张顺序图是一张二维图二维图。其其纵向纵向代表时间轴代表时间轴,时间沿垂直方向向下延伸;,时间沿垂直方向向下延伸;其其横向横向由多个参与由多个参与交互的对象交互的对象构成,这些对象构成,这些对象之间无顺序关系。之间无顺序关系。一般情况下,一般情况下,时间轴上的两点只有相对时序时间轴上的两点只有相对时序的的差异,但在实时应用中,可以使用带时间刻度差异,但在实
11、时应用中,可以使用带时间刻度的时间轴以度量两点之间的绝对时差。的时间轴以度量两点之间的绝对时差。一张基本的顺序图由以下图形元素构成:一张基本的顺序图由以下图形元素构成:对象对象及其生命线与活跃期,消息传递,注解及其生命线与活跃期,消息传递,注解。2022-12-1912顺序图概览顺序图概览顺序图中的对象表示为嵌于矩形框内形如顺序图中的对象表示为嵌于矩形框内形如 “对象名对象名:类名类名”的文本,其中对象名、类名分别可省略,但不能同时的文本,其中对象名、类名分别可省略,但不能同时省略。省略。u当同一类有多个对象参与同一张顺序图所示的交互时,当同一类有多个对象参与同一张顺序图所示的交互时,或者当对
12、象将作为参数出现在本图中的某条消息时,或者当对象将作为参数出现在本图中的某条消息时,对象名就不能省略。对象名就不能省略。对象之下的垂直虚线称为对象的对象之下的垂直虚线称为对象的生命线生命线,表示对,表示对象在始于对象表示图元所处的时间起点、止于对象象在始于对象表示图元所处的时间起点、止于对象生命终结符(见生命终结符(见图图5.15.1中中TimeConflictCheckerTimeConflictChecker对象对象的生命线)之间的时间段内在软件系统中存在。的生命线)之间的时间段内在软件系统中存在。u如果对象生命线的下方没有终结符,则表示对象在顺如果对象生命线的下方没有终结符,则表示对象在
13、顺序图所代表的时间段之后仍然存在。序图所代表的时间段之后仍然存在。2022-12-1913顺序图概览顺序图概览对象中操作的对象中操作的执行期执行期(包括等待同步调用返回(包括等待同步调用返回的时间)称为的时间)称为对象的活跃期对象的活跃期,它由覆盖于对象生,它由覆盖于对象生命线之上的长条形矩形表示。命线之上的长条形矩形表示。如果对象发出传向自身的消息(见如果对象发出传向自身的消息(见图图5.15.1中中TimeConflictChecker TimeConflictChecker 对象的生命线),或者作对象的生命线),或者作为消息接收方的对象在处理消息的过程中又向消为消息接收方的对象在处理消息
14、的过程中又向消息发送方对象传递另一消息,则会导致息发送方对象传递另一消息,则会导致活跃期的活跃期的嵌套嵌套。2022-12-1914顺序图概览顺序图概览对象间的消息传递表示为对象生命线之间的对象间的消息传递表示为对象生命线之间的有向边有向边,边上,边上可标注可标注 “*监护条件监护条件 返回值返回值:=:=消息名消息名(参数表参数表)”)”其中其中“*”为迭代标记,表示同一消息对同一类的多个对象为迭代标记,表示同一消息对同一类的多个对象发送。发送。当出现迭代标记时,监护条件表达式表示迭代条件,例如当出现迭代标记时,监护条件表达式表示迭代条件,例如图图5.15.1中中的的“*对所有无冲突的课程设
15、置对所有无冲突的课程设置”;否则,它表示消息传递实际发生的条件。否则,它表示消息传递实际发生的条件。返回值返回值表示消息被接收方对象处理完成后回送的结果。表示消息被接收方对象处理完成后回送的结果。消息名消息名的命名规则应与类图中操作的命名规则相一致。的命名规则应与类图中操作的命名规则相一致。在消息的在消息的条件表达式条件表达式和和参数表参数表中可以使用关键字中可以使用关键字“self”“self”表示发出消息的源对象。表示发出消息的源对象。2022-12-1915顺序图概览顺序图概览建模者勿需考虑消息发送与接收之间的时延,确需考虑时建模者勿需考虑消息发送与接收之间的时延,确需考虑时(例如,在实
16、时应用中,或者当消息通过网络传输时),(例如,在实时应用中,或者当消息通过网络传输时),可以用斜向下方的消息边来表示,见图可以用斜向下方的消息边来表示,见图5.25.2(c c)。顺序图中的消息分为顺序图中的消息分为同步、异步同步、异步两种,分别用两种,分别用实心三角形实心三角形箭头箭头和和普通箭头普通箭头表示,见表示,见图图5.25.2(a a)和()和(b b)。同步消息的发送者等待消息接收对象将消息处理完成后再同步消息的发送者等待消息接收对象将消息处理完成后再继续,异步消息的发送者在发送完消息后不等待接收方即继续,异步消息的发送者在发送完消息后不等待接收方即继续自己的处理。继续自己的处理
17、。同步消息会指向作为消息接收目标的对象的活跃期的顶端。同步消息会指向作为消息接收目标的对象的活跃期的顶端。2022-12-1916顺序图概览顺序图概览UMLUML中有四种特殊的消息:中有四种特殊的消息:自消息、返回消自消息、返回消息、创建(息、创建(createcreate)消息、销毁()消息、销毁(destroydestroy)消息消息。u自消息自消息是指一个对象传向其自身的消息。是指一个对象传向其自身的消息。u如果一条消息从对象如果一条消息从对象a a传向对象传向对象b b,那么其返回消,那么其返回消息是一条从息是一条从b b指向指向a a的虚线有向边,它表示原消息的虚线有向边,它表示原消
18、息的处理已经完成,处理结果(如果有的话)沿返的处理已经完成,处理结果(如果有的话)沿返回回消息传回消息传回。2022-12-1917顺序图概览顺序图概览u创建消息、销毁消息的名称分别为创建消息、销毁消息的名称分别为 create create、destroydestroy,或或 在消息边上标注构造型在消息边上标注构造型 、,分别表示对消息传递的目标对象的创建和删除分别表示对消息传递的目标对象的创建和删除。对于对于创建消息,目标对象的矩形表示图元的纵向创建消息,目标对象的矩形表示图元的纵向位置应位于消息接收点(因为在此之前此对象并位置应位于消息接收点(因为在此之前此对象并不存在)。不存在)。对于
19、销毁消息,其目标对象的生命线应恰在消息对于销毁消息,其目标对象的生命线应恰在消息接收点之下显示终结符。接收点之下显示终结符。2022-12-1918可以在对象生命线上可以在对象生命线上嵌入状态符嵌入状态符,它表,它表示对象在状态符所处的时间点上必定进入示对象在状态符所处的时间点上必定进入相应的状态。相应的状态。还可以用状态符来表示来自其他对象的某还可以用状态符来表示来自其他对象的某条消息将导致对象状态的改变,此时状态条消息将导致对象状态的改变,此时状态符应在时间轴方向上靠近那条消息。符应在时间轴方向上靠近那条消息。如,如,图图5.35.3表示,表示,ScheduleSchedule对象在收到对
20、象在收到“confirm”“confirm”消息后将进入消息后将进入“confirmed”“confirmed”状态。状态。2022-12-1919顺序图概览顺序图概览在顺序图的左侧,可加在顺序图的左侧,可加注解注解以以阐释消息的意义、阐释消息的意义、有关的约束以及消息传递时间点之间的延时约束。有关的约束以及消息传递时间点之间的延时约束。注解处的位置应在注解处的位置应在水平方向上与对应的消息相齐水平方向上与对应的消息相齐。为精确地描述延时约束,可以在对象的生命线或为精确地描述延时约束,可以在对象的生命线或活跃期上标注时间标签,见图活跃期上标注时间标签,见图5.25.2(c c)。当用例图中的执
21、行者的实例出现在顺序图中时,当用例图中的执行者的实例出现在顺序图中时,它与软件系统内部对象之间的交互消息不同于两它与软件系统内部对象之间的交互消息不同于两个内部对象之间的交互,仅依靠消息名、参数表个内部对象之间的交互,仅依靠消息名、参数表来描述此类消息往往过于形式化,也难以完整、来描述此类消息往往过于形式化,也难以完整、详尽地表达交互的内容,因此应该在注解中以自详尽地表达交互的内容,因此应该在注解中以自然语言予以阐述。然语言予以阐述。2022-12-1920图图 5.25.2 同步、异步及带时延的消息同步、异步及带时延的消息 (b b)异步消息)异步消息2022-12-1921 (a)同步消息
22、(c)带时延的消息图图5.3 5.3 嵌入状态符的对象生命线嵌入状态符的对象生命线2022-12-1922(二)主动对象与被动对象(二)主动对象与被动对象考察整张顺序图(而非局部),在该图表示的时间段内,考察整张顺序图(而非局部),在该图表示的时间段内,如果有如果有多个对象同时处于活跃期多个对象同时处于活跃期,其中,其中某些对象的活跃是某些对象的活跃是直接或间接地起因于某个对象直接或间接地起因于某个对象A A传出的消息传出的消息,则称,则称A A为主动为主动对象对象,称由,称由A A直接或间接激活的对象为直接或间接激活的对象为被动对象被动对象。被动对象在响应、处理消息时接受消息源对象的控制,在
23、被动对象在响应、处理消息时接受消息源对象的控制,在消息处理完毕后将控制权交还,其活跃期的顶部位于消息消息处理完毕后将控制权交还,其活跃期的顶部位于消息接收点,底部位于消息处理完成时刻点。接收点,底部位于消息处理完成时刻点。如,在如,在图图5.15.1和和图图5.5.3 3中,中,ScheduleManagerScheduleManager对象为主动对对象为主动对象,其他对象为被动对象。象,其他对象为被动对象。主动对象在顺序图中以带主动对象在顺序图中以带双竖线的矩形双竖线的矩形表示,也可以采用表示,也可以采用约束特性约束特性activeactive来表示,见来表示,见图图5.45.4。2022-
24、12-1923主动对象与被动对象主动对象与被动对象在一张顺序图中,可能在一张顺序图中,可能存在多个主动对象存在多个主动对象。u此时,这些主动对象所掌控的控制流将此时,这些主动对象所掌控的控制流将并发执行并发执行。u两个主动对象之间的消息传递应该是两个主动对象之间的消息传递应该是异步的异步的。l由于多个主动对象引起的上述语义复杂性,所以建模者应由于多个主动对象引起的上述语义复杂性,所以建模者应尽量避免这种情形,仅在确需强调多个主动对象所掌控的尽量避免这种情形,仅在确需强调多个主动对象所掌控的控制流的并发性及它们之间的异步消息时,才在一张顺序控制流的并发性及它们之间的异步消息时,才在一张顺序图中引
25、入多个主动对象。图中引入多个主动对象。l如,在图如,在图5.35.3所示的场景中,单个主动对象就已足够;但所示的场景中,单个主动对象就已足够;但在刻画协同工作场景时,需要强调任务负责人及多个子任在刻画协同工作场景时,需要强调任务负责人及多个子任务承担者之间的并行处理,就必须引入多个主动对象,见务承担者之间的并行处理,就必须引入多个主动对象,见图图5.45.4。2022-12-1924图图5.4 5.4 多个主动对象构成的顺序图多个主动对象构成的顺序图2022-12-1925(三)建模规则(三)建模规则在进行顺序图建模过程中,建议读者遵循以下经在进行顺序图建模过程中,建议读者遵循以下经验规则:验
展开阅读全文