第7章 面向对象分析
合集下载
第7章 面向对象的设计.

含具体的业务处理逻辑。通常在功能层中包含有确认用户对
应用和数据库存取权限的功能以及记录系统处理日志的功 能。
(3)数据层:数据层主要包括数据的存储及对数据的存取
操作,一般选择关系型数据库管理系统(RDBMS)。
分布式系统结构
浏览器/服务器(browser/server,B/S)风格是 三层体系结构的一种实现方式,其具体结构为浏览器 /Web服务器/数据库服务器。B/S体系结构如下图所 示。
和数据层三个部分,其数据处理流程如下图所示。
分布式系统结构
(1)表示层:表示层是应用系统的用户界面部分,担负着
用户与应用程序之间的对话功能。它用于检查用户从键盘等 输入的数据,显示应用程序输出的数据,一般采用图形用户 界面(graphic user interface, GUI)。 (2)应用逻辑层:应用逻辑层为应用系统的主体部分,包
面向对象设计过程与准则
(5) 强内聚 内聚衡量一个模块内各个元素彼此结合的紧密程度。在面 向对象设计中存在以下3种内聚: (1) 服务内聚:一个服务应该完成一个且仅完成一个功能。 (2) 类内聚:设计类的原则是,一个类应该只有一个用途,它 的属性和服务应该是高内聚的。类的属性和服务应该全都 是完成该类对象的任务所必需的,其中不包含无用的属性 或服务。如果某个类有多个用途,通常应该把它分解成多 个专用的类。 (3) 一般—特殊内聚:设计出的一般—特殊结构,应该符合多 数人的概念,更准确地说,这种结构应该是对相应的领域 知识的正确抽取。
分布式系统结构
• 分布式对象体系结构
在客户机/服务器模型中,客户机和服务器的地位是不 同的。为了消除客户机与服务器之间的差别,提高系统 的伸缩性以及有效地均衡负载,可采用分布式对象体系 结构来设计系统。 分布式对象的实质是在分布式异构环境下建立应用系 统框架和对象构件,它将应用服务分割成具有完整逻辑 含义的独立子模块(称为构件),各个子模块可放在同 一台服务器或分布在多台服务器上运行,模块之间通过 中间件互相通信。
面向对象程序设计--第7章

第1章目录
25/12
7.4 任务小结
理解输入与输出流的概念 FileStream类、StreamReader类和StreamWriter类的用法 对文本文件进行读写操作 BinaryWriter和BinaryReader的用法 能够读写二进制文件 FileInfo类和DirectoryInfo类的用法 能够操作文件夹中的文件
第1章目录
8/12
7.1.4知识总结
3、StreamReader类 StreamReader类以一种特定的编码从字节流中读取字符 ,StreamReader的方法如下表所示。 4、StreamWriter类 StreamWriter类 旨在以一种特定的编码输出字符,而从 Stream 派 生的类则用于字节的输入和输出。StreamWriter的方法如下表所 示.
第1章目录
14/12
7.2.2问题分析
数据在内存中只是临时存储,只有将数据写入到磁盘才 能实现数据的永久保存。将数据写入磁盘中的方法有 多重,在C#中,可以利用流技术实现。因为收银员 信息只是一些简单的文本信息,因此可以采用 BinaryReader及BinaryWriter字符流的方式实现文件的 操作。
7.1.4知识总结
2、FileStream类 通过使用FileStream类来读取、写入和关闭文件。创建FileStream类 的对象的语法规则如下: FileStream 流对象名=new FileStream(String , FileMode, FileAccess, FileShare) (1)其中参数1“String” 指出来FileStream用于读取或写入的文 件名及位置; (2)参数2“FileMode”是个枚举,定义打开文件的各种方法,成 员如下表 (3)参数3"FileAccess"是个枚举,定义用于控制对文件的读访问、 写访问或读/写访问的常数 (4)参数4“FileShare”包含用于控制其他 FileStream 对象对同一 文件可以具有的访问类型的常数。
7 面向对象分析

35
示例:MiniLibrary
36
MiniLibrary:识别控制类
37
识别分析类
识别实体类 实体类通常是用例中的参与对象,对应着现实世界中 的“事物”
38
识别分析类
识别实体类应当注意的问题
实体类的识别质量在很大程度上取决于分析人 员书写文档的风格和质量;
自然语言是不精确的,因此在分析自然语言描 述时应该规范化描述文档中的一些措辞,尽量 弥补这种不足;
任务。
28
MiniLibrary:补充用例描述
举例:“登记还书”用例
29
识别分析类
识别边界类 通常,一个参与者与一个用例之间的交互或通信关联对 应一个边界类。
30
识别分析类
识别边界类应当注意的问题 边界类应关注于参与者与用例之间交互的信息或 者响应的事件,不要描述窗口组件等界面的组成 元素; 在分析阶段,力求使用用户的术语描述界面; 边界类实例的生命周期并不仅限于用例的事件流, 如果两个用例同时与一个参与者交互,那么它们 有可能会共用一个边界类,以便增加边界类的复 用性。
6
面向对象分析
面向对象分析的制品 分析类 分析类是概念层次上的内容,粒度可能比类大,往
用例实现(从分析角度) 分析类图:描述分析类及其之间的静态关系 交互图:描述分析类之间的交互关系 事件流分析 补充需求:使用文本描述持久性、分布性、并发性、 安全性、容错性等方面的非功能需求
7
往很少有操作和特征标记,有概念性的属性和关系。
并将其建模为对象 面向对象分析技术主要基于分类、泛化、聚 合关系在对象集合之间建立结构 对象的行为是执行预定的动作(服务/活动) 对象通过执行动作来完成状态变迁
示例:MiniLibrary
36
MiniLibrary:识别控制类
37
识别分析类
识别实体类 实体类通常是用例中的参与对象,对应着现实世界中 的“事物”
38
识别分析类
识别实体类应当注意的问题
实体类的识别质量在很大程度上取决于分析人 员书写文档的风格和质量;
自然语言是不精确的,因此在分析自然语言描 述时应该规范化描述文档中的一些措辞,尽量 弥补这种不足;
任务。
28
MiniLibrary:补充用例描述
举例:“登记还书”用例
29
识别分析类
识别边界类 通常,一个参与者与一个用例之间的交互或通信关联对 应一个边界类。
30
识别分析类
识别边界类应当注意的问题 边界类应关注于参与者与用例之间交互的信息或 者响应的事件,不要描述窗口组件等界面的组成 元素; 在分析阶段,力求使用用户的术语描述界面; 边界类实例的生命周期并不仅限于用例的事件流, 如果两个用例同时与一个参与者交互,那么它们 有可能会共用一个边界类,以便增加边界类的复 用性。
6
面向对象分析
面向对象分析的制品 分析类 分析类是概念层次上的内容,粒度可能比类大,往
用例实现(从分析角度) 分析类图:描述分析类及其之间的静态关系 交互图:描述分析类之间的交互关系 事件流分析 补充需求:使用文本描述持久性、分布性、并发性、 安全性、容错性等方面的非功能需求
7
往很少有操作和特征标记,有概念性的属性和关系。
并将其建模为对象 面向对象分析技术主要基于分类、泛化、聚 合关系在对象集合之间建立结构 对象的行为是执行预定的动作(服务/活动) 对象通过执行动作来完成状态变迁
软件工程第07章 面向对象的分析和设计PPT课件

作的封装体。 属性(attribute)通常是一些数据,有时
它也可以是另一个对象。每个对象都有它自己 的属性值,表示该对象的状态。对象中的属性 只能通过该对象所提供的操作来存取或修改。
操作(operation)(也称方法或服务)规 定了对象的行为,表示对象所能提供的服务。
沈阳建筑大学信息与控制工程学院 软件工程课程
沈阳建筑大学信息与控制工程学院 软件工程课程
23
注意,执行者与用户是不同的两个概念, 一个用户可以扮演几个角色(执行者),一 个执行者可以是用户,也可以是其他系统 (应用程序或设备)。得到的用况必须进行 复审,以使需求完整。
沈阳建筑大学信息与控制工程学院 软件工程课程
24
2. 标识类和对象
类和对象来自问题领域。
沈阳建筑大学信息与控制工程学院 软件工程课程
21
面向对象分析 Object-Oriented Analysis
面向对象分析的一般步骤如下:
1. 获取客户对系统的需求:包括标识场景(scenario) 和用况(use case,也称用例),以及建造需求模 型
2. 用基本的需求为指南,来选择类和对象(包括属性 和操作)。
29
面向对象设计 (Object_Oriented Design)
面向对象设计的一般步骤如下: 1. 系统设计
• 将子系统分配到处理器 • 选择实现数据管理、界面支持和任务
管理的设计策略 • 为系统设计合适的控制机制 • 复审并考虑权衡(折衷)
沈阳建筑大学信息与控制工程学院 软件工程课程
30
2. 对象设计 • 在过程级别(procedural lavel)设计 每个操作,即设计每个操作的实现细节
面向对象 = 对象(object)
它也可以是另一个对象。每个对象都有它自己 的属性值,表示该对象的状态。对象中的属性 只能通过该对象所提供的操作来存取或修改。
操作(operation)(也称方法或服务)规 定了对象的行为,表示对象所能提供的服务。
沈阳建筑大学信息与控制工程学院 软件工程课程
沈阳建筑大学信息与控制工程学院 软件工程课程
23
注意,执行者与用户是不同的两个概念, 一个用户可以扮演几个角色(执行者),一 个执行者可以是用户,也可以是其他系统 (应用程序或设备)。得到的用况必须进行 复审,以使需求完整。
沈阳建筑大学信息与控制工程学院 软件工程课程
24
2. 标识类和对象
类和对象来自问题领域。
沈阳建筑大学信息与控制工程学院 软件工程课程
21
面向对象分析 Object-Oriented Analysis
面向对象分析的一般步骤如下:
1. 获取客户对系统的需求:包括标识场景(scenario) 和用况(use case,也称用例),以及建造需求模 型
2. 用基本的需求为指南,来选择类和对象(包括属性 和操作)。
29
面向对象设计 (Object_Oriented Design)
面向对象设计的一般步骤如下: 1. 系统设计
• 将子系统分配到处理器 • 选择实现数据管理、界面支持和任务
管理的设计策略 • 为系统设计合适的控制机制 • 复审并考虑权衡(折衷)
沈阳建筑大学信息与控制工程学院 软件工程课程
30
2. 对象设计 • 在过程级别(procedural lavel)设计 每个操作,即设计每个操作的实现细节
面向对象 = 对象(object)
面向对象分析第六章第七章

2019/11/8
共27页 第7页
4、混合开发模式
在大型系统的开发中,只用一种开发模 式很难说哪种开发模式对整个问题的解 决最好。
系统开发时,通常把大型问题分解成一 组子问题。对于每个子问题可以采用适 当的软件开发模式。
这种设计需要有某种实现语言或一组协 同语言的支持。许多流行的功能不断增 强的语言可支持不只一种设计开发模式。
共27页 第26页
(2)实例连接与关联关系的表示
实例连接:又称为链,用于表达对象之间的
静态联系(通过对象属性表示一个对象对另一 个对象之间的依赖关系。
表示法:
类1
连接名称
类2
m
n
阶
2019/11/8
共27页 第27页
链属性的表示:
允许实例连接带有一组属性,这些属性通 过关联来描述
类 1 连接名称
存户 账号 姓名 余额 存款 取款
一般类 (父类、基类、超类)
继承
支票存户
储蓄存户
利息率
特殊类 (子类)
一个特殊类中的所有对象可继承一般类中
20的19/11属/8 性、服务、关系.
共27页 第34页
建立对象模型
2019/11/8
共27页 第35页
整体/部分结构(分类结构):
整体/部分结构是一种特定的连接. 整体类中的一个对象(或称聚合)是由各部
建立对象模型
2、标识结构(确定关联)
面向对象分析的下一步工作是标识结构。 一般化-特殊化结构(Gen-Spec结构) 整体-部分结构(Whole-Part结构)
2019/11/8
共27页 第47页
建立对象模型
标识Gen-Spec结构的方法和策略:
第7章 面向对象的设计.

含具体的业务处理逻辑。通常在功能层中包含有确认用户对
应用和数据库存取权限的功能以及记录系统处理日志的功 能。
(3)数据层:数据层主要包括数据的存储及对数据的存取
操作,一般选择关系型数据库管理系统(RDBMS)。
分布式系统结构
浏览器/服务器(browser/server,B/S)风格是 三层体系结构的一种实现方式,其具体结构为浏览器 /Web服务器/数据库服务器。B/S体系结构如下图所 示。
面向对象设计过程与准则
人机交互部分 有效的人机交互所必须的实际显示和输入。 问题域部分 放置面向对象分析结果并管理面向对象分析的某些类和 对象、结构、属性和方法。 任务管理部分 任务定义、通信和协调、硬件分配及外部系统。 数据管理部分 永久性数据的访问和管理。
面向对象设计过程与准则
面向对象设计过程与准则 体系结构 系统分解 问题域部分的设计 人机交互部分的设计 任务管理部分的设计 数据管理部分的设计 对象设计
面向对象设计过程与准则
典型的面向对象设计模型
面向对象设计过程与准则
Coad&Yourdon的面向对象设计模型
Coad & Yourdon基于MVC(Model-View-Controller)模型, 在逻辑上将系统划分为4个部分,分别是问题域部分、人机 交互部分、任务管理部分及数据管理部分,每一部分又可 分为若干子系统。 Coad 与 Yourdon 在设计阶段中继续采用了分析阶段中提 到的5个层次,用于建立系统的4个组成成分。每一个子系 统都由主题、类-&-对象、结构、属性和服务5个层次组成。 这5个层次可以被当作整个模型的水平切片。
软件工程第07章 面向对象的分析和设计PPT课件

面向对象 = 对象(object)
+ 分类(classification)
+ 继承(inheritance)
+ 通 过 消 息 的 通 信 ( communication with messages)
可以说,采用这四个概念开发的软件系统是面 向对象的
沈阳建筑大学信息与控制工程学院 软件工程课程
5
面向对象方法的出现很快受到计算机软件 界的青睐,并成为20世纪90年代的主流开 发方法。我们可以从下列几个方面来分析其 原因:
软件工程
第7章 面向对象的分析和设计
标题添加
点击此处输入相 关文本内容
前言
点击此处输入 相关文本内容
标题添加
点击此处输入相 关文本内容
点击此处输入 相关文本内容
内容摘要
• 面向对象的基本概念 • 面向对象的分析和设计过程 • UML概述 • 用况建模 • 静态建模 • 动态建模 • 物理体系结构建模
沈阳建筑大学信息与控制工程学院 软件工程课程
16
5. 多态性(polymorphism)
多态性是指同一个操作作用于不同的对象 上可以有不同的解释,并产生不同的执行结 果。例如“画”操作,作用在“矩形”对象 上,则在屏幕上画一个矩形,作用在“圆” 对象上,则在屏幕上画一个圆。也就是说, 相同操作的消息发送给不同的对象时,每个 对象将根据自己所属类中定义的这个操作去 执行,从而产生不同的结果。
沈阳建筑大学信息与控制工程学院 软件工程课程
3
内容摘要
• 面向对象的基本概念 • 面向对象的分析和设计过程 • UML概述 • 用况建模 • 静态建模 • 动态建模 • 物理体系结构建模
沈阳建筑大学信息与控制工程学院 软件工程课程
+ 分类(classification)
+ 继承(inheritance)
+ 通 过 消 息 的 通 信 ( communication with messages)
可以说,采用这四个概念开发的软件系统是面 向对象的
沈阳建筑大学信息与控制工程学院 软件工程课程
5
面向对象方法的出现很快受到计算机软件 界的青睐,并成为20世纪90年代的主流开 发方法。我们可以从下列几个方面来分析其 原因:
软件工程
第7章 面向对象的分析和设计
标题添加
点击此处输入相 关文本内容
前言
点击此处输入 相关文本内容
标题添加
点击此处输入相 关文本内容
点击此处输入 相关文本内容
内容摘要
• 面向对象的基本概念 • 面向对象的分析和设计过程 • UML概述 • 用况建模 • 静态建模 • 动态建模 • 物理体系结构建模
沈阳建筑大学信息与控制工程学院 软件工程课程
16
5. 多态性(polymorphism)
多态性是指同一个操作作用于不同的对象 上可以有不同的解释,并产生不同的执行结 果。例如“画”操作,作用在“矩形”对象 上,则在屏幕上画一个矩形,作用在“圆” 对象上,则在屏幕上画一个圆。也就是说, 相同操作的消息发送给不同的对象时,每个 对象将根据自己所属类中定义的这个操作去 执行,从而产生不同的结果。
沈阳建筑大学信息与控制工程学院 软件工程课程
3
内容摘要
• 面向对象的基本概念 • 面向对象的分析和设计过程 • UML概述 • 用况建模 • 静态建模 • 动态建模 • 物理体系结构建模
沈阳建筑大学信息与控制工程学院 软件工程课程
面向对象分析第六章第七章

2019/10/15
共27页 第32页
一般/特殊结构表示法:
表示一般与 特殊结构
一般类 一般类 (父类、基类、超类)
继承
特殊类 ......
特殊类 特殊类 (子类)
子类的公共属性和操作归属于一般类
并被每一个子类共享,每一个子类都
继承了一般类的特征。
2019/10/15
共27页 第33页
一般/特殊结构举例(归纳关系):
2019/10/15
共27页 第9页
几个常用的术语
面向对象(OO) 面向对象方法(OOM) 面向对象分析(OOA) 面向对象设计(OOD) 面向对象程序设计(OOP) 面向对象测试(OOT) 面向对象需求分析(OORA) 面向对象领域分析(OODA) 面向对象数据库系统(OODBMS) 面向对象计算机辅助软件工程(OOCASE)
2019/10/15
共27页 第16页
对象模型化技术(三视点技术)
(Object Model Tech. OMT)
对象模型化技术用于把分析时收集的 信息构造在三类模型中,即对象模型、 功能模型和动态模型。
这个模型化的过程是一个迭代过程。
2019/10/15
共27页 第17页
分析模型
•对象模型: 描述静态结构, 定义做
象
可感知的物理实体 人或组织的角色 应该记忆的事件 两个多个事件的相互作用,通常具
有交易或接触性质 需要说明的概念
2019/10/15
共27页 第45页
建立对象模型
(2)筛选出正确的类-&-对象
冗余 无关 笼统 属性
操作 实现
2019/10/15
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2020/5/14
软件工程 Software Engineering
7
问题域分析建立用例模型
❖面向对象分析的基础就是问题域以及用户 的需求,研究问题域和系统需求的主要目 的是通过对问题域的深入研究,建立一个 能够满足用户需求的系统模型。面向对象 分析强调系统模型与用户需求的紧密对应, 对问题域的研究贯穿与整个面向对象分析 工作中。面向对象分析的第一步就是分析 用户需求,在此基础上建立用例模型。
2020/5/14
软件工程 Software Engineering
26
发现和定义对象与类
学生信息 学号 姓名 年龄 家庭住址 性别 身份证号 身高
教师信息
课程 课程编号 所属专业 课程名称 学时 学分 任课教师
班级
账号 密码
成绩
专业
学期 选修课 选课信息
图7.7 系统初步类图
2020/5/14
软件工程 Software Engineering
2020/5/14
软件工程 Software Engineering
13
问题域分析建立用例模型
(e)网上选课模块的用例 ❖查看课程基本信息 ❖添加选课信息 ❖删除已选课程
2020/5/14
软件工程 Software Engineering
14
问题域分析建立用例模型
(f)账号管理模块的用例 ❖创建新账号 ❖设置账号权限 ❖设置账号登录开关 ❖修改账号 ❖查看账号 ❖删除账号
2020/5/14
软件工程 Software Engineering
29
发现和定义对象与类
(2) 识别控制类 ❖控制类是实体类和边界类之间的润滑剂,
用于协调边界类和实体类之间的交互。
❖控制类与用例存在着密切的关系,它在用 例开始执行时创建,在用例结束时取消。 一般来说,一个用例对应一个控制类。
2020/5/14
2020/5/14
软件工程 Software Engineering
8
问题域分析建立用例模型
❖以学生信息管理系统为例。
图7.1 学生信息管理系统主要参与者
2020/5/14
软件工程 Software Engineering
9
问题域分析建立用例模型
(a)学生信息管理模块的用例 ❖录入学生基本信息 ❖查询学生基本信息 ❖修改学生基本信息 ❖删除学生基本信息 ❖打印学生基本信息
28
发现和定义对象与类
(1)识别边界类
❖ 边界类使是从那些系统和外界进行交互的对象中归纳、 抽象出来的,它是系统内的对象和系统外的参与者的联 系媒介,外界的消息只有通过边界类的对象实例才能发 送给系统。
❖ 根据角色的不同类型,边界类可以是用户接口、系统接 口和设备接口。对于用户接口来说,边界类集中描述了 用户与系统的交互信息,而不是描述用户接口的显示形 式,如按钮等;对于系统接口和设备接口来说,边界类 集中描述所定义的通信或交换协议,而不是说明协议如 何实现的。边界类使系统与系统的外部变化隔离开来。 参与者只许通过边界类和系统通信。
软件工程 Software Engineering
3
需求获取
❖ 需求获取是需求分析的第一项工作,其本质主要 是人的活动,涉及软件设计人员如何与客户建立 有效的沟通。也称为“需求发现”、“需求获 得”。 需求获取是在问题及其最终解决方案之 间架设桥梁的第一步。
❖ 需求获取的途径和手段主要有以下几种: (1)“访谈式”(Visitation) (2)“诱导式”(Inducement) (3)“确认式”(Afirm)
2020/5/14
软件工程 Software Engineering
17
问题域分析建立用例模型
图7.2用例的包含关系示例
2020/5/14
软件工程 Software Engineering
18
问题域分析建立用例模型
(b)扩展关系:用来说明可选的、只在特定条件下运行的 行为,具有扩展关系的用例基于参与者的选择,可以运 行几个不同的流。扩展关系用带关键字《extend》的依 赖关系表示,箭头指向原有的基本用例。一个用例可能 有多个扩展点,每个扩展点也可能出现多次。
2020/5/14
软件工程 Software Engineering
15
问题域分析建立用例模型
(g)登录模块的用例 ❖登录 ❖修改密码
2020/5/14
软件工程 Software Engineering
16
问题域分析建立用例模型
❖ 发现用例之间的关系。用例之间也存在着一定的 关系。在发现用例以后还需要分析用例之间的关 系,用例之间的关系主要有:包含关系、扩展关 系和泛化关系。
软件工程 Software Engineering
22
发现和定义对象与类
❖ 在对象识别中最为关键的是正确运用抽象原则。 面向对象分析用对象来映射问题域中的事物,但 并不是问题域中的所有事物都需要用对象来映射。
❖ 首先要舍弃与系统责任无关的事物,保留与系统 责任有关的事物。其次,还要舍弃与系统责任有 关的事物中与系统责任无关的特征。判断事物极 其特征是否与系统责任相关的准则是:该事物是 否向系统提供了一些服务或需要系统描述它的某 些行为。同时还要考虑将问题域中的事物映射为 什么对象以及如何对对象进行分类
2020/5/14
软件工程 Software Engineering
4
面向对象分析模型
❖ 在面向对象分析中,主要包括以下3个独立的模型。 ①对象模型(静态模型):对用例模型进行分析,把系统
分解成互相协作的分析类,通过类图/对象图描述对象/ 对象的属性/对象间的关系,是系统的静态模型。对象模 型是最基本、最重要、最核心的。 ②动态模型:描述系统的动态行为,通过顺序图/合作图描 述对象的交互,以揭示对象间如何协作来完成每个具体 的用例,单个对象的状态变化/动态行为可以通过状态图 来表达。
2020/5/14
软件工程 Software Engineering
10
问题域分析建立用例模型
(b)班级基本信息管理模块的用例 ❖添加班级基本信息 ❖修改班级基本信息 ❖查询班级基本信息 ❖删除班级基本信息 ❖ 打印班级基本信息
2020/5/14
软件工程 Software Engineering
11
②在系统边界方面,应该考虑的因素包括人员、设备和外 部系统,它们可以启发分析员发现一些系统与外部活动 所进行的交互,并处理系统对外接口的对象。
③对系统责任的分析是基于对象识别的遗漏的考虑,对照 系统责任所要求的每一项功能查看是否可以由已找出的 对象来完成该功能,在不能满足要求时增加相应的对象, 可以是系统分析员尽可能完全的找出所需要的各种对象。
❖ OOA应该包含以下几个步骤: ① 分析问题域,建立用例模型。 ② 发现和定义对象和类。 ③ 识别对象的内部特征。 ④ 识别对象的外部联系。 ⑤ 识别对象之间的交互。
2020/5/14
软件工程 Software Engineering
6
第二节 面向对象分析过程
❖问题域分析建立用例模型 ❖发现和定义对象与类 ❖识别对象的内部特征 ❖识别对象的外部联系 ❖识别对象之间的交互
图7.3 用例的扩展关系示例
2020/5/14
软件工程 Software Engineering
19
问题域分析建立用例模型
(c)泛化关系:用例的泛化关系是指一个父用例可以被特 化形成多个子用例。在泛化关系中,子用例继承了父用 例的所有结构、行为和关系,子用例是父用例的一种特 殊形式,父用例有子用例的若干种实现方式。
问题域分析建立用例模型
(c)课程基本信息管理模块的用例 ❖添加课程基本信息 ❖查询课程基本信息 ❖修改课程基本信息 ❖删除课程基本信息 ❖打印课程基本信息
2020/5/14
软件工程 Software Engineering
12
问题域分析建立用例模型
(d)成绩管理模块的用例 ❖录入成绩 ❖修改成绩 ❖保存成绩 ❖查询成绩 ❖打印成绩单
图7.4 用例的泛化关系示例
2020/5/14
软件工程 Software Engineering
20
问题域分析建立用例模型
图7.5 学生基本信息管理模块用例图
2020/5/14
软件工程 Software Engineering
21
问题域分析建立用例模型
图7.6 课程信息管理模块用例图
2020/5/14
2020/5/14
软件工程 Software Engineering
24
发现和定义对象与类
❖ 发现学生信息管理系统中的类对象:首先在用户 需求中分检出候选的类对象。通常,需要通读需 求报告,在问题域中发现其中的名词,将其分检 出来作为候选的类对象。在学生信息管理系统中, 可能作为候选类对象的有:系统、用户、新生、 系统管理员、学生、基本信息、姓名、性别、年 龄、身份证号、家庭住址、身高、编号、学生证 号、学校领导、学生信息、相关部门、新专业、 学校、社会、课程信息、课程编号、所属专业、 课程名称、开课学期、学时、学分、任课教师、 专业、班级、报表、网络、选修课、时间、数量、 人数、考试、考试成绩、账号、密码、账号信息。
❖ 对于对象的属性和服务,面向对象方法提供了专 门的表示方法:对象的属性用在类符号中部填写 的各属性的名字表示;而对象的服务则用在类符 号的下部填写的各服务的名称表示。
2020/5/14
软件工程 Software Engineering
31
识别对象的内部特征
(1) 定义对象的属性 ❖ 可以从以下角度确定对象应具有的属性: ① 按照一般常识,对象应该具有哪些属性; ② 在当前问题域中,对象应具有哪些属性; ③ 根据系统责任的要求,对象应具有哪些属性; ④ 建立该对象是为了保存和管理哪些信息; ⑤ 对象为了在服务中实现其功能,需要增设哪些属性; ⑥ 是否需要增设属性来区别对象的不同状态; ⑦ 用什么属性来表示对象的整体-部分联系和实例连接。