软件工程面向对象分析——实例PPT课件
合集下载
软件工程 面向对象分析与设计PPT课件
面向过程
围绕功能,函数,数据公用,兼顾很多细节 系统规模大、数据多、操作烦杂,程序员难以应付 厂长,直接指挥每一个工人选用材料生产汽车
面向对象
面对的是一个个对象 实际上,每一组数据有特定的用途,一组操作调用一组数据,
将这组数据和操作代码,封装成一个对象,与外界相对隔离, 相对独立 厂长-车间1(发动机)车间2(轮胎)车间3(底盘)…… 类,对象,对象间接送消息,完成任务 降低难度,减少出错机会
面向对象分析的基本过程
面向对象分析法体现 在过程上的特点:不 强调活动的顺序,允 许各种活动的交替、 回溯进行
定义use case
发现对象
原
详
型 开
定义属性及服务
细 说
发
明
建立结构与连接
划分主题
建立交互图
1.23
© 2009 by Duym
Software Engineering
面向过程(po)与面向对象(OO)
利用自己已建立的类,或别人的放在类库中的类,缩短开 发周期
1.14
© 2009 by Duym
Software Engineering
2.5多态(polymorphism)
一班、二班、三班 铃声响了,走进不同的教室,上不同的课程
向不同的对象,发出相同的消息,执行不同的 操作
鼠标双击文件,exe文件则运行该文件,doc文件则运行 word打开该文档
对象模型是客观世界对象、属性以及对象彼 此间关系的抽象表达,描述了系统的静态结 构
表示方法
类与对象 结构与连接
一般特殊关系,分类关系,归纳关系,继承 整体部分关系,组成关系 实例连接,对象间属性之间的静态联系 消息连接,对象行为之间的动态联系
《面向对象软件工程》课件
封装和抽象
编程语言应提供机制实现封装和抽象,以隐藏 实现细节。
代码重用
编程语言应支持代码重用,如继承、接口和组件等。
面向对象的测试
测试整个系统是否符合需 求规格说明。
系统级别的测试
测试对象之间的交互和协 作是否符合预期。
对象级别的测试
测试单个类的功能是否符 合预期。
类级别的测试
01
面向对象的软件开 发过程
继承和多态是面向对象编程的两个重要特性。合理使用 继承可以减少代码重复,提高代码复用性;多态则可以 提高代码的灵活性和可扩展性。
经验三
关注封装和数据隐藏
描述
封装是面向对象编程的重要原则之一,通过封装可以将 对象的属性和方法隐藏起来,提高数据的安全性和软件 的健壮性。
面向对象软件工程实践的未来发展
趋势一
封装性
将对象的属性和行为封装在类中,实现信息隐藏和安全。
继承性
通过继承实现代码复用,减少重复劳动。
多态性
提高软件灵活性和可维护性,方便添加新功能。
面向对象软件工程的基本原则
单一职责原则
一个类应该只有一个职责,避免职责过多导 致类过于复杂。
里氏替换原则
子类必须能够替换父类而不会导致任何不期 望的行为。
案例二
社交网络应用
描述
一个社交网络应用,通过定义用户类、动态类、评论类等,实现了用 户交互、动态发布和评论功能。ຫໍສະໝຸດ 面向对象软件工程实践经验总结
经验一
合理使用类和对象
描述
在面向对象软件工程实践中,合理使用类和对象是关键 。通过将问题域中的事物抽象为类,可以更好地组织和 管理代码。
经验二
重视继承和多态
描述
软件工程面向对象分析——实例PPT课件
37
确定类与对象
3. 区分实体类、边界类和控制类
• 在类分析时首先从问题域的实体类入手,如果在 建立分析对象模型时区分实体类、边界类和控制 类,将有助于理解系统。
• 实体类表示系统将跟踪的持久信息;边界类表示 参与者与系统之间的交互;控制类负责用例的实 现。其图形表示如图所示。
38
确定关联
• 标识关联的启发式准则如下:
28
使用Rose创建用例模型
(2) 创建参与者与用例之间的关联关系 在图形工具栏上单击Association(双向关联)或 Unidirectional Association(单向关联)图标,在起始 actor上单击并拖动到use case上。 可以按下面的步骤给关联关系增加关系类型(构造型, stereotype):
10
2. 确定业务需求用例
• 以下问题可以帮助我们更好地标识系统的 用例:
➢ 每个参与者的特定任务是什么? ➢ 是否每个参与者都要从系统中创建、存储、改变、
移动或读取信息? ➢ 是否任何参与者需要通知系统有关突发性的、外
部的改变? ➢ 哪些用例支持或维护系统? ➢ 目前的用例是否覆盖了所有功能需求?
• 对用例的完整描述包括用例名称、执行者、前置 条件、后置条件、一个主事件流、零到多个备选 事件流。
• 主事件流表示正常情况下执行者与系统之间的信 息交互及动作序列,备选事件流则表示特殊情况 或异常情况下的信息交互及动作序列。
• 应给出每个用例的规格说明。
15
用例“选择课程”的规格说明
16
• 用例“选择课程”的规格说明
26
使用Rose创建用例模型
4. 为用例增加文档描述
(6) 浏览目录列表选择要关联的 文件;
确定类与对象
3. 区分实体类、边界类和控制类
• 在类分析时首先从问题域的实体类入手,如果在 建立分析对象模型时区分实体类、边界类和控制 类,将有助于理解系统。
• 实体类表示系统将跟踪的持久信息;边界类表示 参与者与系统之间的交互;控制类负责用例的实 现。其图形表示如图所示。
38
确定关联
• 标识关联的启发式准则如下:
28
使用Rose创建用例模型
(2) 创建参与者与用例之间的关联关系 在图形工具栏上单击Association(双向关联)或 Unidirectional Association(单向关联)图标,在起始 actor上单击并拖动到use case上。 可以按下面的步骤给关联关系增加关系类型(构造型, stereotype):
10
2. 确定业务需求用例
• 以下问题可以帮助我们更好地标识系统的 用例:
➢ 每个参与者的特定任务是什么? ➢ 是否每个参与者都要从系统中创建、存储、改变、
移动或读取信息? ➢ 是否任何参与者需要通知系统有关突发性的、外
部的改变? ➢ 哪些用例支持或维护系统? ➢ 目前的用例是否覆盖了所有功能需求?
• 对用例的完整描述包括用例名称、执行者、前置 条件、后置条件、一个主事件流、零到多个备选 事件流。
• 主事件流表示正常情况下执行者与系统之间的信 息交互及动作序列,备选事件流则表示特殊情况 或异常情况下的信息交互及动作序列。
• 应给出每个用例的规格说明。
15
用例“选择课程”的规格说明
16
• 用例“选择课程”的规格说明
26
使用Rose创建用例模型
4. 为用例增加文档描述
(6) 浏览目录列表选择要关联的 文件;
《面向对象分析 》课件
代码可读性
面向对象分析是逐步抽象、逐步分类的过程, 程序代码更加具有可读性,并可避免重复代 码创建
面向对象分析的流程
1
需求定义
收集并分析业务需求,根据需求建立初步模型。
2
形成模型
在初步模型的基础上,进行建模、分析、设计和验证,形成正式模型。
3
评价和完善
评估模型的质量并进行优化,最后形成完整、准确的模型。
领域建模
1
领域建模的流程
2
通过客户需求、市场环境、组织机构
等多方面考虑,建立基础识别原则,
全面地把控领域的各种可能性。
3
领域模型的符号与构建方法
4
领域模型是可以描述系统所分析的需 求的,采用实体、边界、控制等几个 方面的关系模型,以透视实体、边界、
记录等三个信息进行分析。
领域建模的定义
领域建模是对业务领域进行分析和建 模,从而达成对业务领域的深刻理解 的过程。
对象与类
对象的三个主要特征
对象是系统中一个具体实体,具备身份、状态 和行为三个主要特征,是面向对象分析的基本 概念。
类的定义与实现
类是具有相同属性和行为的对象集合,是对对 象的相似性的一种抽象,具体了相同概念的特 征和关系。
类的关系
类的关系包括继承、聚合、组合、依赖、关联 和实现,是所有系统元素之间的关系件将帮助你深入了解面向对象分析的流程和方法,掌握开发中的应用 技巧。
什么是面向对象分析?
深入理解业务需求
面向对象分析是一种针对业务需求的软件开发 方法,通过抽象出各个业务实体及其属性及行 为关系,建立起软件模型,实现对业务的深度 理解。
以对象为核心
面向对象分析是基于对象的思想进行软件需求 分析和设计,将对象作为核心概念,以对象之 间的关系为架构进行软件分析与设计。
面向对象分析是逐步抽象、逐步分类的过程, 程序代码更加具有可读性,并可避免重复代 码创建
面向对象分析的流程
1
需求定义
收集并分析业务需求,根据需求建立初步模型。
2
形成模型
在初步模型的基础上,进行建模、分析、设计和验证,形成正式模型。
3
评价和完善
评估模型的质量并进行优化,最后形成完整、准确的模型。
领域建模
1
领域建模的流程
2
通过客户需求、市场环境、组织机构
等多方面考虑,建立基础识别原则,
全面地把控领域的各种可能性。
3
领域模型的符号与构建方法
4
领域模型是可以描述系统所分析的需 求的,采用实体、边界、控制等几个 方面的关系模型,以透视实体、边界、
记录等三个信息进行分析。
领域建模的定义
领域建模是对业务领域进行分析和建 模,从而达成对业务领域的深刻理解 的过程。
对象与类
对象的三个主要特征
对象是系统中一个具体实体,具备身份、状态 和行为三个主要特征,是面向对象分析的基本 概念。
类的定义与实现
类是具有相同属性和行为的对象集合,是对对 象的相似性的一种抽象,具体了相同概念的特 征和关系。
类的关系
类的关系包括继承、聚合、组合、依赖、关联 和实现,是所有系统元素之间的关系件将帮助你深入了解面向对象分析的流程和方法,掌握开发中的应用 技巧。
什么是面向对象分析?
深入理解业务需求
面向对象分析是一种针对业务需求的软件开发 方法,通过抽象出各个业务实体及其属性及行 为关系,建立起软件模型,实现对业务的深度 理解。
以对象为核心
面向对象分析是基于对象的思想进行软件需求 分析和设计,将对象作为核心概念,以对象之 间的关系为架构进行软件分析与设计。
《软件工程》课件第10章 面向对象的Coad方法
(2) 对象层:在分析范围内找出全部的对象。 (3) 结构层:分析类的分类结构和组装结构。 (4) 属性层:描述每个对象的状态特征。 (5) 服务层:描述每个对象所具有的操作。
第10章 面向对象的Coad方法
3. 设计模型 Coad方法中,面向对象设计模型在面向对象的分 析模型的5个层次上由4个组元构成,如图10.1所示。
第10章 面向对象的Coad方法
从根本上统一思维模式的办法是在系统开发各个 环节中,统一采用人类原有的思维组织模式。人类典 型的思维过程是由三部分来进行组织的,即从现实世 界中区分出特定的客体及其属性;对客体的整体和组 成部分加以区分;对不同种类的客体给出表示,在此 基础上加以区分。面向对象的分析方法就建立在这3个 来自人类自己思维组织模式之上,依照客观世界本来 的规律来开发应用系统。
第10章 面向对象的Coad方法
3. 继承 继承是面向对象设计的另一种基本设计原则。 继承用来表示类之间相似性的一种机制,它简化 了与已定义过的相似类的定义,描述了一般和具体化 关系,在类层次结构和类网络结构中明确地说明了共 同的属性和服务。 这个原则构成了显式表达共同性的重要技术和基 础,继承能使设计者一次确定共同的属性和服务,同 时将这些属性和服务扩展到或限制到具体的实例中, 继承也可用于显示表示共同性。
第10章 面向对象的Coad方法 图10.4 分类结构的符号表示
第10章 面向对象的Coad方法
3) 组装结构 组装结构也是3种系统组织方法之一,它是“has a” 结构。例如,台灯有一个电灯泡,则台灯和电灯泡就是 这种结构的例子。台灯是整体,而电灯泡则是台灯的组 成部分之一。组装结构的表示如图10.5所示。整体类放 在图的顶部,部分类放在图的下端,用线把它们连起来, 用三角形表示这是一个组装结构的形式。连线上的数字 和范围表示了整体所包含的部分的数目。
第10章 面向对象的Coad方法
3. 设计模型 Coad方法中,面向对象设计模型在面向对象的分 析模型的5个层次上由4个组元构成,如图10.1所示。
第10章 面向对象的Coad方法
从根本上统一思维模式的办法是在系统开发各个 环节中,统一采用人类原有的思维组织模式。人类典 型的思维过程是由三部分来进行组织的,即从现实世 界中区分出特定的客体及其属性;对客体的整体和组 成部分加以区分;对不同种类的客体给出表示,在此 基础上加以区分。面向对象的分析方法就建立在这3个 来自人类自己思维组织模式之上,依照客观世界本来 的规律来开发应用系统。
第10章 面向对象的Coad方法
3. 继承 继承是面向对象设计的另一种基本设计原则。 继承用来表示类之间相似性的一种机制,它简化 了与已定义过的相似类的定义,描述了一般和具体化 关系,在类层次结构和类网络结构中明确地说明了共 同的属性和服务。 这个原则构成了显式表达共同性的重要技术和基 础,继承能使设计者一次确定共同的属性和服务,同 时将这些属性和服务扩展到或限制到具体的实例中, 继承也可用于显示表示共同性。
第10章 面向对象的Coad方法 图10.4 分类结构的符号表示
第10章 面向对象的Coad方法
3) 组装结构 组装结构也是3种系统组织方法之一,它是“has a” 结构。例如,台灯有一个电灯泡,则台灯和电灯泡就是 这种结构的例子。台灯是整体,而电灯泡则是台灯的组 成部分之一。组装结构的表示如图10.5所示。整体类放 在图的顶部,部分类放在图的下端,用线把它们连起来, 用三角形表示这是一个组装结构的形式。连线上的数字 和范围表示了整体所包含的部分的数目。
软件工程导论PPT课件-第11章-面向对象的分析
11.2 静态结构建模
一对一的关联。一个类的实例对象只能和另一个类的惟一对象发 生联系。
拥有
一对多关联。一对多关联是指有关联关系的两个类之间,从一个 方向上看是一对多关联,从另一个方向上看则是一对一关联。
拥有
11.2 静态结构建模
多对多关联。多对多关联是指有关联关系的两个类之间,从两个 方向上都是一对多的关联。
象模型、用户界面
系统设计
分析模型 动态模型 用例模型、对象模型
对象设计
面向对象分析过程
11.2 静态结构建模
面向对象的分析分为静态分析和动态分析两种,静态分析 是分析静态模型(类图或对象图);动态分析是分析动态 模型(顺序图或协作图)
静态结构建模确定系统的逻辑或物理部分,以及如何把它 们连接在一起,它描述了如何构建和初始化系统。
第11章 面向对象的分析
➢ 11.1 面向对象分析的任务 ➢ 11.2 静态结构建模 ➢ 11.3 动态结构建模
第11章 面向对象的分析
分析的过程都是提取系统需求、开发分析模型的过程。 这个阶段的工作既需要开发技术人员的参与,又需要 客户、未来软容,这就是理解、表达和验证。 分析过程得出的最重要的文档资料是软件需求规格说
11.2 静态结构建模
(5)完善初始的静态结构模型
- 识别继承关系 检查已经提交的类对象之间是否存在继承关系,如果存在继承,
则利用类之间的继承特征来改进类模型,从而提高类模型的可复用 性。可以从类的属性与操作及问题域中的可复用性两个角度来确定 可能存在的继承关系。 - 分解、合并系统中的类对象
对于系统中已有的类对象认真分析,检查是否有些类可以进一步 地分解为不同的类或者可以将一些类对象进行合并。
明(在面向对象分析中,主要由对象模型、动态模型 和功能模型组成)。
软件工程课件:第4章 面向对象分析方法
◦ 1980’s: 理论基础,许多OO 编程语言(如 C++, Objective-C等)
◦ 面向对象编程语言的繁荣是面向对象方法 走向实用的重要标志
面向对象技术的发展历史(续)
成熟阶段
◦ 1990’s: 面向对象分析和设计方法(Booch, OMT, OOSE等), Java 语言
◦ 面向对象的分析和设计技术逐渐走向实用, 最终形成了从分析、设计到编程、测试与 维护一整套的软件工程体系
(3) 受保护的内部实现,即软件对象功能的实现细节, 实现细节不能从类外访问。
继承
继承。继承是一种联结类的层次模型,为类的重
用提供了方便,它提供了明确表述不同类之间共性 的方法。 我们将公共类称为超类(superclass)、父类 (father class)、祖先(ancestor)或基类 (base class),而从其继承的类称为子类 (subclasses)、后代(deslendane)或导出类 (derived class)。
(2)面向对象 UML支持面向对象技术的主要概念,它提供 了一批基本的表示模型元素的图形和方法,能 简洁明了地表达面向对象的各种概念和模型元 素。
UML的特点
(3)可视化,表达能力强大 UML是一种图形化语言,用UML的模型 图形能清晰地表示系统的逻辑模型或实现 模型。UML还提供了语言的扩展机制, 用户可以根据需要增加定义自己的构造型、 标记值和约束等。
(1) 物理对象(Physical Objects)── 物理对象是最 易识别的对象,通常可以在问题领域的描述中找到, 它们的属性可以标识和测量。
例如,大学课程注册系统中的学生对象;一个网络 管理系统中各种网络物理资源对象(如开关、 CPU和打印机)都是物理对象。
◦ 面向对象编程语言的繁荣是面向对象方法 走向实用的重要标志
面向对象技术的发展历史(续)
成熟阶段
◦ 1990’s: 面向对象分析和设计方法(Booch, OMT, OOSE等), Java 语言
◦ 面向对象的分析和设计技术逐渐走向实用, 最终形成了从分析、设计到编程、测试与 维护一整套的软件工程体系
(3) 受保护的内部实现,即软件对象功能的实现细节, 实现细节不能从类外访问。
继承
继承。继承是一种联结类的层次模型,为类的重
用提供了方便,它提供了明确表述不同类之间共性 的方法。 我们将公共类称为超类(superclass)、父类 (father class)、祖先(ancestor)或基类 (base class),而从其继承的类称为子类 (subclasses)、后代(deslendane)或导出类 (derived class)。
(2)面向对象 UML支持面向对象技术的主要概念,它提供 了一批基本的表示模型元素的图形和方法,能 简洁明了地表达面向对象的各种概念和模型元 素。
UML的特点
(3)可视化,表达能力强大 UML是一种图形化语言,用UML的模型 图形能清晰地表示系统的逻辑模型或实现 模型。UML还提供了语言的扩展机制, 用户可以根据需要增加定义自己的构造型、 标记值和约束等。
(1) 物理对象(Physical Objects)── 物理对象是最 易识别的对象,通常可以在问题领域的描述中找到, 它们的属性可以标识和测量。
例如,大学课程注册系统中的学生对象;一个网络 管理系统中各种网络物理资源对象(如开关、 CPU和打印机)都是物理对象。
软件工程第五章面向对象分析与设计PPT课件
记录全部访谈内容 ④ 安排补充会议 访谈之后 ⑤ 根据标准模版撰写软件需求规格说明(SRS),
打客户需求草稿 ⑥ 通过电子邮件征求客户意见
对于不同类型的应用,用例方法是一种获取和 表达需求的有效方法。
某些需求需要通过数据流图或状态图与用户沟 通。
5.1.2 描述客户需求
需求可以看成是应用与应用的外部代理(如用户) 之间的交互。可利用用例作为表达工具。
3) 标识用例 当双方确定了一组场景后,开发人 员从该场景抽象出一组用例,描述所有可能的 情况。用力表达了系统的范围。
4) 求精用例 细化每一个用例。引入带有出错处 理或带有异常处理的用例,描述系统的行为, 保证需求的描述是完全的。
5) 标识用例之间的关系 描述用例之间的依赖关 系,提取相同功能,建立用例模型。
2. 访谈用户代表 识别各种需要与要求 使用工具帮助表达用户需求 绘制GUI草图 确定硬件环境
请用户评审
3. 用标准文档格式撰写客户需求
4. 核查用户需求 用户批准后
5. 构建详细需求(分析建模)
5.1.1 与用户交互
1) 需求的来源 不同类型应用能从人员处获取需求的比例:
不受限制的
应 用 的 类 型
馆藏图书(对象)的状态图
在架 报废
注销
丢失
出借
返还
上架
损坏
借出
修补
丢失
丢失
图书管理员借书操作的状态图
login (登录)
预约图书
借书
reserve
borrow
(预约)
(借阅)
检验图书 检验读者
借书
findTitle findBorrower (检索图书) (查找借阅者)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章 面向对象分析
• 面向对象分析概述 • 建立用例模型 • 建立对象模型 • 建立动态模型 • 建立数据模型
1
7.1 面向对象分析概述
• 面向对象分析的3个模型
➢ 用例模型:用例和场景表示的功能模型; ➢ 对象模型:用类和对象表示的静态模型; ➢ 交互模型:由状态图和顺序图表示的动态模型。
2
7.1 面向对象分析概述
8
1. 确定业务参与者
• 还可以通过提出以下问题,明确系统的参 与者:
➢ 谁或者什么为系统提供输入? ➢ 谁或者什么接收系统的输出? ➢ 需要与其他系统连接的接口吗? ➢ 是否存在在预定的时间自动触发的事件? ➢ 谁将维护系统中的信息?
9
1. 确定业务参与者
• 从选课系统的需求描述中,可以确定4类参与者: ➢ 学生(Student) ➢ 教师(Teacher) ➢ 系统管理员(Administrator) ➢ 学籍档案系统(Archive System)
Student——在学校注册上课的人; Teacher——学校授权上课的人; Administrator——系统认同的维护人员; Archive System——管理学生学籍档案的外部系统。
21
使用Rose创建用例模型
3. 在Rose中创建用例(Use Case) • 应该将用例放在Use cases包中,如果您的模型
结构中没有这样的包,则应该先创建包。 • 也可以将每个用例放在单独的包中,因此可以先
创建相应的包,再创建用例。 • 另外,在多个用例中使用的公共用例,如验证用
户(Validate User),可以放在一个单独的包 中,如可以在Use cases包中创建Included Use Cases包来存放公共用例。
5
例:选课系统。给教师分配课程和学生注册课程。
教师可以访问在线系统,查看将要教授哪些课程和每门课程 有哪些学生报名,课程考试结束后可以提交成绩,系统可以 生成带有成绩分布统计结果的成绩单。
6
1. 确定业务参与者
• 通过关注系统的业务参与者,我们可以将重点放 在如何使用系统,而不是如何构造系统上,并且 有助于进一步明确系统的范围和边界。
17
3. 创建用例图
• 用例图是若干个参与者和用例,以及它们间的关 系构成的图形表示。
• 每个系统通常都有一个总体视图(Global View of Actors and Use Cases),如果总体视图过 于复杂,则可以创建多个用例图,每个用例图关 注系统的某一方面。
• 通常是围绕参与者创建用例图。
• 当系统比较庞大和复杂时,要搞清楚系统的需求 往往比较困难,通过明确参与者,可以针对参与 者确定系统需求,有助于保证系统需求的完整性。
7
1. 确定业务参与者
• 可通过以下资料来确定系统的参与者:
➢ 标识系统范围和边界的环境图; ➢ 现有系统(如果有的话)的文档和用户手册; ➢ 项目会议和研讨会的记录; ➢ 现有的需求文档、工作手册等。
(2) 确定业务需求用例──参与者需要系统提供的完 整功能。
(3) 创建用例图──标识参与者与用例之间、用例与 用例之间的关系。
4
例:选课系统。给教师分配课程和学生注册课程。
在每个学期选课开始之前,系统管理员需要对系统中的教 师信息、课程信息和学生信息进行维护。学期结束后,将本 学期成绩归档到学籍档案系统。 学生登录系统后会得到一份本学期将要开设的课程目录。 每门课程包含的信息有开课系别、教师、上课时间、教室、 容纳的学生数量和学生选择课程的先决条件。 当学生选择了一门课程后,系统需访问学籍档案系统,查询 是否符合选课的先决条件 。如果不符合,系统给出提示信息。 每个学期有一段时间让学生可以改变计划,学生可以在这段 时间内访问联机系统以增选课程或退选课程。
• 对象模型的5个层次
➢ Coad & Yourdon提出,复杂问题(大型系统)的对象模型 应该由下述5个层次组成:主题层(也称为范畴层)、类-对 象层、结构层、属性层和服务层,如图所示。
3
7.2 建立用例模型
• 建立用例模型的过程
(1) 确定业务参与者──标识目标系统将支持的不同 类型的用户,可以是人、事件或其他系统。
• 对用例的完整描述包括用例名称、执行者、前置 条件、后置条件、一个主事件流、零到多个备选 事件流。
• 主事件流表示正常情况下执行者与系统之间的信 息交互及动作序列,备选事件流则表示特殊情况 或异常情况下的信息交互及动作序列。
• 应给出每个用例的规格说明。
15
用例“选择课程”的规格说明
16
• 用例“选择课程”的规格说明
10
2. 确定业务需求用例
• 以下问题可以帮助我们更好地标识系统的 用例:
➢ 每个参与者的特定任务是什么? ➢ 是否每个参与者都要从系统中创建、存储、改变、
移动或读取信息? ➢ 是否任何参与者需要通知系统有关突发性的、外
部的改变? ➢ 哪些用例支持或维护系统? ➢ 目前的用例是否覆盖了所有功能需求?
19
使用Rose创建用例模型
1Hale Waihona Puke 在Rose中创建参与者(actors)
20
使用Rose创建用例模型
2. 给参与者添加文档 • 在Rose中我们对模型元素都可以(在多数情况下
是必须的)添加文档以描述更多的信息。 • 应该给模型中的每个actor添加摘要描述,摘要描
述表示actor和系统交互的规则。 • 课程注册系统中actor的摘要描述如下:
18
使用Rose创建用例模型
1. 在Rose中创建参与者(actors) 创建的角色应放在Use-Case Model包中的Actors 包中比较好,如果模型结构中没有这样的包,可以 先创建Actors包,之后按下面的步骤创建角色: (1) 在浏览器窗口中的Actors包上单击鼠标右键, 显示弹出菜单; (2) 选择New:Actor菜单选项,系统创建名为New Class的参与者; (3) 选中新创建的参与者,更名为设计的名字。
11
2. 确定业务需求用例
• 环境图是分析参与者和发现潜在用例的极好来源, 它不仅可以用在结构化分析方法中,也可以用于 面向对象的分析方法中。
• 通过环境图,可以确定系统的主要输入输出,通 过提交和接收输入输出的各方确定潜在的用例。
12
• 选课系统的环境图
13
• 选课系统的业务列表
14
• 用例的规格说明
• 面向对象分析概述 • 建立用例模型 • 建立对象模型 • 建立动态模型 • 建立数据模型
1
7.1 面向对象分析概述
• 面向对象分析的3个模型
➢ 用例模型:用例和场景表示的功能模型; ➢ 对象模型:用类和对象表示的静态模型; ➢ 交互模型:由状态图和顺序图表示的动态模型。
2
7.1 面向对象分析概述
8
1. 确定业务参与者
• 还可以通过提出以下问题,明确系统的参 与者:
➢ 谁或者什么为系统提供输入? ➢ 谁或者什么接收系统的输出? ➢ 需要与其他系统连接的接口吗? ➢ 是否存在在预定的时间自动触发的事件? ➢ 谁将维护系统中的信息?
9
1. 确定业务参与者
• 从选课系统的需求描述中,可以确定4类参与者: ➢ 学生(Student) ➢ 教师(Teacher) ➢ 系统管理员(Administrator) ➢ 学籍档案系统(Archive System)
Student——在学校注册上课的人; Teacher——学校授权上课的人; Administrator——系统认同的维护人员; Archive System——管理学生学籍档案的外部系统。
21
使用Rose创建用例模型
3. 在Rose中创建用例(Use Case) • 应该将用例放在Use cases包中,如果您的模型
结构中没有这样的包,则应该先创建包。 • 也可以将每个用例放在单独的包中,因此可以先
创建相应的包,再创建用例。 • 另外,在多个用例中使用的公共用例,如验证用
户(Validate User),可以放在一个单独的包 中,如可以在Use cases包中创建Included Use Cases包来存放公共用例。
5
例:选课系统。给教师分配课程和学生注册课程。
教师可以访问在线系统,查看将要教授哪些课程和每门课程 有哪些学生报名,课程考试结束后可以提交成绩,系统可以 生成带有成绩分布统计结果的成绩单。
6
1. 确定业务参与者
• 通过关注系统的业务参与者,我们可以将重点放 在如何使用系统,而不是如何构造系统上,并且 有助于进一步明确系统的范围和边界。
17
3. 创建用例图
• 用例图是若干个参与者和用例,以及它们间的关 系构成的图形表示。
• 每个系统通常都有一个总体视图(Global View of Actors and Use Cases),如果总体视图过 于复杂,则可以创建多个用例图,每个用例图关 注系统的某一方面。
• 通常是围绕参与者创建用例图。
• 当系统比较庞大和复杂时,要搞清楚系统的需求 往往比较困难,通过明确参与者,可以针对参与 者确定系统需求,有助于保证系统需求的完整性。
7
1. 确定业务参与者
• 可通过以下资料来确定系统的参与者:
➢ 标识系统范围和边界的环境图; ➢ 现有系统(如果有的话)的文档和用户手册; ➢ 项目会议和研讨会的记录; ➢ 现有的需求文档、工作手册等。
(2) 确定业务需求用例──参与者需要系统提供的完 整功能。
(3) 创建用例图──标识参与者与用例之间、用例与 用例之间的关系。
4
例:选课系统。给教师分配课程和学生注册课程。
在每个学期选课开始之前,系统管理员需要对系统中的教 师信息、课程信息和学生信息进行维护。学期结束后,将本 学期成绩归档到学籍档案系统。 学生登录系统后会得到一份本学期将要开设的课程目录。 每门课程包含的信息有开课系别、教师、上课时间、教室、 容纳的学生数量和学生选择课程的先决条件。 当学生选择了一门课程后,系统需访问学籍档案系统,查询 是否符合选课的先决条件 。如果不符合,系统给出提示信息。 每个学期有一段时间让学生可以改变计划,学生可以在这段 时间内访问联机系统以增选课程或退选课程。
• 对象模型的5个层次
➢ Coad & Yourdon提出,复杂问题(大型系统)的对象模型 应该由下述5个层次组成:主题层(也称为范畴层)、类-对 象层、结构层、属性层和服务层,如图所示。
3
7.2 建立用例模型
• 建立用例模型的过程
(1) 确定业务参与者──标识目标系统将支持的不同 类型的用户,可以是人、事件或其他系统。
• 对用例的完整描述包括用例名称、执行者、前置 条件、后置条件、一个主事件流、零到多个备选 事件流。
• 主事件流表示正常情况下执行者与系统之间的信 息交互及动作序列,备选事件流则表示特殊情况 或异常情况下的信息交互及动作序列。
• 应给出每个用例的规格说明。
15
用例“选择课程”的规格说明
16
• 用例“选择课程”的规格说明
10
2. 确定业务需求用例
• 以下问题可以帮助我们更好地标识系统的 用例:
➢ 每个参与者的特定任务是什么? ➢ 是否每个参与者都要从系统中创建、存储、改变、
移动或读取信息? ➢ 是否任何参与者需要通知系统有关突发性的、外
部的改变? ➢ 哪些用例支持或维护系统? ➢ 目前的用例是否覆盖了所有功能需求?
19
使用Rose创建用例模型
1Hale Waihona Puke 在Rose中创建参与者(actors)
20
使用Rose创建用例模型
2. 给参与者添加文档 • 在Rose中我们对模型元素都可以(在多数情况下
是必须的)添加文档以描述更多的信息。 • 应该给模型中的每个actor添加摘要描述,摘要描
述表示actor和系统交互的规则。 • 课程注册系统中actor的摘要描述如下:
18
使用Rose创建用例模型
1. 在Rose中创建参与者(actors) 创建的角色应放在Use-Case Model包中的Actors 包中比较好,如果模型结构中没有这样的包,可以 先创建Actors包,之后按下面的步骤创建角色: (1) 在浏览器窗口中的Actors包上单击鼠标右键, 显示弹出菜单; (2) 选择New:Actor菜单选项,系统创建名为New Class的参与者; (3) 选中新创建的参与者,更名为设计的名字。
11
2. 确定业务需求用例
• 环境图是分析参与者和发现潜在用例的极好来源, 它不仅可以用在结构化分析方法中,也可以用于 面向对象的分析方法中。
• 通过环境图,可以确定系统的主要输入输出,通 过提交和接收输入输出的各方确定潜在的用例。
12
• 选课系统的环境图
13
• 选课系统的业务列表
14
• 用例的规格说明