第8章 用例分析.ppt_第1页
第8章 用例分析.ppt_第2页
第8章 用例分析.ppt_第3页
第8章 用例分析.ppt_第4页
第8章 用例分析.ppt_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第8章用例分析:“控制世界的人必须首先控制自己。”古希腊哲学家:苏格拉底,分析的故事:正确的结果来自于正确的分析,学习目标,掌握分析类的方法,学习分析对象行为模型,学习使用StarUml绘制时序图和协作图,8.1面向对象分析,面向对象分析模型和用例模型:OOA模型的核心是“用例”,简称“用例”。在获得软件需求后,软件分析师可以创建一组“场景”,每个场景包含一个用例。在这些用例的基础上,进一步提取和定义了面向对象分析模型的三个模型,即类对象模型:描述系统中涉及的所有类和对象,每个类和对象由属性、操作和作者进一步描述;对象关系模型:描述对象之间的静态关系,定义系统中所有重要的消息路径,也可以体现在

2、对象的属性、操作和协作者中;对象行为模型:描述系统的动态行为,即如何反映复杂状态下的外部事件。面向对象分析完成了以下内容:1)发现和定义系统中存在的类。2)确定分析类别。3)定义交互行为,即对象行为模型。8.2识别分析类,分析类的来源:用例规格分析类的视角:系统和角色之间的边界;系统使用的信息;系统的控制逻辑。8.2.1什么是分析类?在面向对象分析中,类代表一组对象共享的属性和行为。在分析识别类中,根据分析角度的不同,分析类分为边界类、实体类和控制类。边界类:代表参与者和系统之间的交互;实体类:由系统存储和管理的永久信息;控制类:表示系统运行时的业务控制逻辑。这种分类的基本思想是根据对象的功能

3、和变化的影响程度对系统中对象所采取的行为进行分类,并将变化对系统结构的影响限制在一个相对明确的范围内。1边界类,用于描述外部参与者和系统之间的交互。一个系统可能有多种边界类:用户界面类:用户与系统用户通信;系统接口类:用户与其他软件系统通信;设备接口类:为硬件设备提供接口。边界类的表示方法。模型中有两种边界类的表示方法,如下图所示。一种是建设性的班级形式,另一种是图标形式。2控制类,控制类用于封装一个或几个用例特有的过程控制行为,通过它可以建立系统的动态行为模型。它有效地将边界类对象从实体类对象中分离出来,这使得系统更能容忍边界变化。它还将特定于用例的行为与实体类对象分开,这使得实体类对象在用

4、例和系统中更加可重用。控制类的特征:独立于环境,不随环境的变化而变化;确定用例中的控制逻辑和事务;当实体类的内部结构或行为改变时,它不会改变;使用或规定几个实体类的内容,并协调这些实体类的行为;它可以以不同的过程或方式执行。控件类的表示,它在模型中有两种表示方法,如下图所示。一种是建设性的班级形式,另一种是图标形式。实体类用于对必须存储的信息和相关行为进行建模,它们的主要职责是存储和管理系统中的信息。它通常是持久的,即它们的属性和关系需要长期保存,有时甚至存在于系统的整个生命周期中。实体类的表示,在模型中有两种表示方法,如下图所示。一种是建设性的班级形式,另一种是图标形式。8.2.2识别边界类

5、别。通常,参与者和用例之间的交互或通信对应于一个边界类。边界类信息的收集是不完整的下图说明了边界类识别的基本方法,即确定每对“用例参与者”之间的边界类。在识别边界类时应注意以下问题:边界类应注意参与者和用例之间的交互或响应事件的信息,不要描述接口的组件,如窗口组件;在分析阶段,试着用用户来描述界面;边界类实例的生命周期不限于用例的事件流。如果两个用例同时与一个参与者交互,他们可能会共享一个边界类并增加边界类的可重用性。8.2.3确定控制等级。控制类负责协调边界类和实体类。通常,现实世界中没有相应的东西。它负责接收边界类的信息并将其分发到实体类。控制类和用例之间有着密切的关系,这种关系是在用例开

6、始执行时创建的,在用例结束时取消。一般来说,一个用例对应一个控制类,如下图所示。为了识别控制类,我们应该注意以下问题:当用例复杂时,特别是在分支事件流的情况下,一个用例可以有多个控制类;在某些情况下,用例事件流的逻辑结构非常简单,所以没有必要使用控制类,而边界类可以实现用例的行为;不同用例中包含的任务之间有着密切的关系,因此这些用例可以使用一个控制类,其目的是重用相似的部分来降低复杂性。8.2.4识别实体类,它们通常是用例中的参与对象,并且对应于现实世界中的“事物”。识别实体类需要开发人员进一步理解应用领域,并且可以通过分析用例描述和词汇表来找到替代的实体对象。实体类的因素包括以下几点:(1)

7、实体类的识别质量在很大程度上取决于分析师撰写的文档的风格和质量;2)自然语言是不精确的,所以在分析自然语言描述时,我们应该尽量规范描述文档中的一些词来弥补这一不足;3)在自然语言描述中,名词可以对应各种类型,如类、属性或同义词。8.2.5用例分析示例,1新帖用例说明步骤1:进入小组论坛界面。论坛成员:选择进入相应的小组论坛。系统:显示小组讨论区的所有信息。第二步:添加一个新帖子。讨论板成员:请求添加新的帖子信息。系统:进入添加帖子界面。第三步:填写帖子。论坛成员:在帖子中填写具体信息。系统:显示输入内容。第四步:提交。论坛成员:提交完成的论坛。系统:将论坛保存到内部数据库。2查看帖子的用例规范

8、。第一步:进入小组论坛界面。论坛成员:选择进入相应的小组论坛。系统:显示小组讨论区的所有信息。第二步:检查帖子。讨论板成员:选择要查看的帖子。系统:显示帖子的所有内容。分析上述用例规范中的边界类、实体类和控制类。(1)根据“添加帖子”的用例描述,给出了“删除帖子”和“修改帖子”的用例描述。(2)分析“删除帖子”和“修改帖子”中的边界类、控制类和实体类。8.3定义了交互行为,交互图显示了一个交互,它由一组对象及其关系组成,包括对象之间传输的消息。交互图表示对象之间的交互模式。交互图在相同信息的基础上发展成不同的形式,每种形式都有不同的侧重点,即时序图和协作图。时序图表示按时间排序的交互,关注参与

9、交互的对象的生命线和它们交换的信息,而时序图不表示对象之间的链。协作图表示执行操作的对象之间的交互,类似于对象图,并且表示实现高级操作所需的对象及其链。8.3.1时序图,按时间顺序显示对象交互的图表,它显示对象参与交互和交换消息的顺序。由于引入了对象生命周期,时序图有了时间序列的概念,可以清晰地表示对象在其生命周期中某一时刻的动态行为。1.时序图的组成,(1)对象,(2)生命线,(3)消息,(4)消息条件,(5)标签,(6)激活(控制周期),以及(2)时序图的生成。当形成时序图时,首先,参与交互的对象被放置在图的顶部并沿着x轴排列。通常,发起交互的对象被放置在左侧,而较低级别的对象被依次放置,

10、示例1:绘制讨论板成员的新帖子的时序图。示例2:使用以下用例图和相应的分析课来绘制学生选课用例图的时序图,以创建课程表。8.3.2协作图是一个显示角色之间交互的图,主要用于描述对象之间的交互。协作图是一种基于结构的表示交互的方法,它强调参与交互的对象的组织。1.协作图的构成,(1)对象,(2)链,(3)消息,(2)协作图的生成,它使用对象图作为生成协作图的基础。首先,参与交互的对象应被视为图的顶点。然后,链接这些对象的链被表示为图的弧;最后,这些链用对象发送和接收的消息来装饰,这为在协作对象的结构组织的上下文中观察控制流提供了清晰的视觉轨迹。示例3:绘制新帖子的协作图。(4)绘制学生选课合作图。扩展思维:时序图和协作图的比较,8.4练

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论