第5讲 面向对象的分析-建立对象模型

合集下载

第5章 面向对象分析

第5章  面向对象分析
学生信息管理系统主要参与者
12
建立用例模型案例-学生信息管理系统
⑷成绩管理模块的用例 ① 录入成绩 ② 修改成绩 ③ 保存成绩 ⑶课程基本信息管理模块的用例 ④ 查询成绩 ① 添加课程基本信息 ⑤ 打印成绩单 ② 查询课程基本信息 ③ 修改课程基本信息 ④ 删除课程基本信息 ⑤ 打印课程基本信息
13
面向对象分析模型
在面向对象分析中,主要包括以下3个独立的模型。 ①对象模型(静态模型):对用例模型进行分析,把系 统分解成互相协作的分析类,通过类图/对象图描述 对象/对象的属性/对象间的关系,是系统的静态模型。 对象模型是最基本、最重要、最核心的。 ②动态模型:描述系统的动态行为,通过顺序图/合作 图描述对象的交互,以揭示对象间如何协作来完成每 个具体的用例,单个对象的状态变化/动态行为可以 通过状态图来表达。 ③功能模型:以用例模型为基础,描述系统应具有的功 能用于实现用户的日常需要。由用例和场景表示。
第五章 面向对象分析
Object-Oriented Analysis
珠海市软件行业协会专家委员会主任 吉林大学珠海学院计算机系教授
李军国
1
主要内容
1. 面向对象分析概述
2. 面向对象分析过程
2 2
一、面向对象分析概述
1. 需求获取
2. 面向对象分析模型
3. 面向对象分析的步骤
3
面向对象分析(Object-Oriented Analysis,OOA)
27
对象属性的审查和筛选
对于找到的对象属性,还应进行严格的审查和筛选,才 能最终确定对象应具有的属性,在审查和筛选中,应考 虑的问题有: ① 该属性是否体现了以系统责任为目标的抽象; ② 该属性是否描述了该对象本身的特性; ③ 该属性是否破坏了对象特征的“原子性”; ④ 该属性是否已通过类的继承得到; ⑤ 该属性是否可以从其他属性推导得到。

5-面向对象分析建模方法-151019教程

5-面向对象分析建模方法-151019教程
索书号=TP21108 馆藏数量=3 可借数量=2…
aItem3:图书 aItem2:图书 aItem1:图书 序号=003 序号=001 状态 =租出 流水号 =001 状态 = 在库 状态=租出 aLoan2:借书记录 aLoan1:借书记录
借书日期=2006-04-16 借书日期 =2006-04-16 应还日期 =2006-06-16 应还日期 =2006-06-16 还书日期 =2006-06-10 还书日期=2006-05-08
Page
6
面向对象分析建模之需求模型的元素
用例图、活动图和泳道图
Page
7
用例图 Use Case Diagram

用例图定义了系统的功能需求,它完全是从系统的外 部观看系统功能,并不描述系统内部对功能的具体实 现。是从外部执行者的角度来描述系统提供的功能。
购买货品 出租货品
店员
归还货品
报废货品
Page
12
创建一个用例图
用例为系统描述了所有高级的行为和有哪些参与 者参与了这些行为中。 创建一个用例图,主要有以下几个步骤:

创建和命名系统的边界长方形。 确定所有从SRS中得到的系统的参与者。 为每个参与者:
• 在图中增加一个参与者的图标 • 在每个参与者参与的图中增加用例 • 画出参与者的用例关联
表格要素 用例标识和名称 描述 参与者 优先级 风险 描述 需求规约中定义的用例编号和名称 一到两行关于用例目的的描述 列出可以使用此用例的所有相关的参与者 需求规约中定义的用例的优先级别 (Essential, High-value, or Follow-on ) 用例的风险因素(按高、中、低分类)
Page
13

建立对象模型方法

建立对象模型方法

建立对象模型方法
要建立对象模型方法,可以按照以下步骤进行:
1. 确定对象的属性:确定对象模型中的每个对象都有哪些属性。

属性是对象的特征或状态,可以通过数据来表示。

例如,一个人对象可以有姓名、年龄、性别等属性。

2. 确定对象之间的关系:确定对象模型中的对象之间如何相互关联。

这些关系通常可以通过引用其他对象来表示。

例如,一个学校对象可以有多个学生对象,那么学校和学生之间就有一对多的关系。

3. 定义对象模型类:根据确定的属性和关系,定义对象模型中的类。

类是对象模型中的模板,描述了对象的属性和方法。

每个类可以有多个对象实例。

例如,可以创建一个"Person"类来描述人对象,其中包含姓名、年龄、性别等属性,并定义一些方法如获取姓名、设置年龄等。

4. 创建对象实例:根据定义的类,创建对象实例。

每个对象实例具有独特的属性值,并可以通过调用类中定义的方法来操作对象。

例如,可以创建一个名为"person1"的人对象实例,其中姓名为"张三",年龄为20岁。

5. 操作对象:通过调用对象的方法来操作对象。

方法是对象具有的行为或操作,可以用来改变对象的状态或执行某些操作。

例如,可以调用"person1"对象的"
设置年龄"方法将其年龄修改为25岁。

通过以上步骤,可以建立对象模型,并使用对象来表示和操作现实世界中的实体和关系。

面向对象的设计建模

面向对象的设计建模


对象的抽象,具有相同属性和行为的对象 集合。
继承
子类继承父类的属性和行为,实现代码复 用。
封装
将对象的属性和行为封装在一起,隐藏对 象的内部细节。
面向对象设计建模的优点
代码复用
通过继承和多态,实现代码复 用,减少重复代码。
易于维护
对象之间相对独立,便于修改 和扩展。
易于理解
面向对象的设计建模更符合人 类的思维习惯,易于理解和维 护。
交互逻辑进行组织和管理。
05 面向对象设计建模的未来 发展
AI与机器学习在面向对象设计建模中的应用
01
自动化代码生成
利用机器学习技术,自动生成符 合面向对象设计原则的代码,提 高开发效率。
02
智能代码审查
03
智能重构工具
通过机器学习算法对代码进行审 查,检测出潜在的设计问题,提 供优化建议。
利用机器学习技术,自动识别代 码中的冗余、重复部分,并提供 重构建议。
微服务架构
将系统拆分为一系列小型、独立的服务,每 个服务负责单一功能。
事件驱动架构
系统中的事件触发其他组件或服务的响应。
容器化与云原生架构
利用容器技术实现应用的快速部署和管理。
04 面向对象设计建模的案例 分析
案例一:电子商务网站的设计建模
总结词
复杂度高,涉及多个实体和交互
详细描述
电子商务网站涉及商品、用户、订单等多个 实体,以及用户浏览、购物车、支付等交互 流程,需要使用面向对象设计建模来构建复 杂的关系和功能。
强大的扩展性
通过类和接口的继承和实现, 可以方便地扩展系统功能。
面向对象设计建模的适用场景
系统复杂度高
当系统复杂度较高时,使用面向 对象设计建模可以更好地组织和 管理代码。

面向对象分析及其包括的图建模步骤

面向对象分析及其包括的图建模步骤

一、叙述基于UM‎L的面向对象‎分析设计过程‎1)识别系统的用‎例和角色首先对项目进‎行需求调研,依据项目的业‎务流程图和数‎据流程图以及‎项目中涉及的‎各级操作人员‎,通过分析,识别出系统中‎的所有用例和‎角色;接着分析系统‎中各角色和用‎例间的联系,再使用UML‎建模工具画出‎系统的用例图‎,同时,勾画系统的概‎念层模型,借助UML 建‎模工具描述概‎念层类图和活‎动图。

2)进行系统分析‎,并抽象出类系统分析的任‎务是找出系统‎中所有需求并‎加以描述,同时建立特定‎领域模型。

建立域模型有‎助于开发人员‎考察用例,从中抽取出类‎,并描述类之间‎的关系。

3)设计系统和系‎统中的类及其‎行为设计阶段由结‎构设计和详细‎设计组成。

①结构设计是高‎层设计,其任务是定义‎包(子系统),包括包间的依‎赖关系和主要‎通信机制。

包有利于描述‎系统的逻辑组‎成部分以及各‎部分之间的依‎赖关系。

②详细设计就是‎要细化包的内‎容,清晰描述所有‎的类,同时使用UM‎L 的动态模型‎描述在特定环‎境下这些类的‎实例的行为。

二、UML中包括‎哪些图及每件‎图的作用UML中包括‎九种图:用例图、类图、对象图、状态图、时序图、协作图、活动图、组件图、配置图。

1)用例图(Use Case Diagra‎m)它是UML中‎最简单也是最‎复杂的一种图‎。

说它简单是因‎为它采用了面‎向对象的思想‎,又是基于用户‎视角的,绘制非常容易‎,简单的图形表‎示让人一看就‎懂。

说它复杂是因‎为用例图往往‎不容易控制,要么过于复杂‎,要么过于简单‎。

用例图表示了‎角色和用例以‎及它们之间的‎关系。

2)类图(Class Diagra‎m)是最常用的一‎种图,类图可以帮助‎我们更直观的‎了解一个系统‎的体系结构。

通过关系和类‎表示的类图,可以图形化的‎方式描述一个‎系统的设计部‎分。

3)对象图()对象图是类图‎的实例,几乎使用与类‎图完全相同的‎标识。

面向对象分析与建模

面向对象分析与建模

3
面向对象的基本概念
❖类
类是对象的抽象。一个类定义了大体上相似的一组对象。 类是对象的定义和描述。一个类所包含的方法和数据是 用来描述一组对象的共同行为和属性。通过类来抽象一 个个对象的共同特点、描述一个个对象的相似属性,存 贮一个个对象的一致行为,是面向对象技术最重要的特 征。从形式和定义说明上看,类很像传统程序设计中的 结构,但类同时包含了传统程序设计中数据定义和功能 实现的构造。
2020/7/11
4
面向对象的基本概念
❖ 消息
消息是对象之间的通信机制,是访问类中所 定义的行为的手段。当一个消息发送给某一 个对象时,即要求该对象产生某些行为。所 要求产生的行为包含在发送的消息中。对象 接收到消息后,给予解释并产生响应。这种 通信过程叫消息传递(Message Passing)。
2020/7/11
6
面向对象的基本概念
❖ 继承性
当两个类产生继承关系后,原有的类被称为
父类(Parent Class),新定义的类被称作子 类(Children Class)。若子类只继承一个父类, 则称为“单重继承”(Single Inheritance); 若一个子类从继承多个父类,则称为“多重 继承”(Multiple Inheritance)。继承性是面 向对象语言区别于与其它语言最主要的特点。
的开发过程中,往往采用统一过程(RUP)
2020作/7/11为过程管理的模型。
11
面向对象分析的任务
面向对象分析(Object-Oriented Analysis, OOA)是在系统开发过程中完成了系统业务 调查以后,按照面向对象的思想来分析问题。 面向对象的分析是面向对象的系统开发的重 要环节。
2020/7/11

(完整版)软件工程 第五章 面向对象的需求分析

(完整版)软件工程 第五章 面向对象的需求分析

第五章面向对象的需求分析面向对象的需求分析方法的核心是利用面向对象的概念和方法为软件需求建造模型。

它包含面向对象风格的图形语言机制和用于指导需求分析的面向对象方法学。

面向对象的思想最初起源于 20世纪 60年代中期的仿真程序设计语言Simula67。

20世纪80年代初出现的Smalltalk 语言及其程序设计环境对面向对象技术的推广应用起到了显著的促进作用。

20世纪90年代中后期诞生并迅速成熟的UML(Unified Modeling Language,统一建模语言)是面向对象技术发展的一个重要里程碑。

UML 统一了面向对象建模的基本概念、术语和表示方法,不仅为面向对象的软件开发过程提供了丰富的表达手段,而且也为软件开发人员提供了互相交流、分享经验的共用语言。

本章首先介绍面向对象的主要概念和思想。

在概述了UML的全貌之后,以“家庭保安系统”为实例,介绍与需求分析相关的部分 UML语言机制以及基于UML的面向对象的需求分析方法和过程。

第一节面向对象的概念与思想一、面向对象的概念关于“面向对象”,有许多不同的看法。

Coad和 Yourdon给出了一个定义:“面向对象 = 对象 + 类 + 继承 + 消息通信”。

如果一个软件系统是使用这样4个概念设计和实现的,则认为这个软件系统是面向对象的。

一个面向对象的程序的每一成分应是对象,计算是通过新的对象的建立和对象之间的消息通信来执行的。

1.对象(object)一般意义来讲,对象是现实世界中存在的一个事物。

可以是物理的,如一个家具或桌子,如图 5-1-1所示,可以是概念上的,如一个开发项目。

对象是构成现实世界的一个独立的单位,具有自己的静态特征(用数据描述)和动态特征(行为或具有的功能)。

例如:人的特征:姓名、性别、年龄等,行为:衣、食、住、行等。

图 5-1-1 对象的定义(1)对象、属性、操作、消息定义对象可以定义为系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和一组对属性进行操作的服务组成。

《软件工程案例教程》李军国主编习题答案

《软件工程案例教程》李军国主编习题答案

《软件⼯程案例教程》李军国主编习题答案第1章习题答案⼀、判断题⼆、填空题三、简答题1.软件的特点:①软件具有抽象性。

②软件与硬件的⽣产⽅式不同。

③软件与硬件的维护⽅式不同。

④软件具有复杂的逻辑性。

⑤软件的成本较⾼。

⑥软件的使⽤和社会因素有关。

2.软件危机产⽣的原因:①⽤户需求不明确。

②缺乏正确的理论指导。

③软件开发规模越来越⼤。

④软件开发复杂度越来越⾼。

3.软件危机的主要表现:①软件开发进度难以预测。

②软件开发成本难以控制。

③⽤户对产品功能难以满⾜。

④软件产品质量⽆法保证。

⑤软件产品难以维护。

⑥软件缺少适当的⽂档资料。

4.软件⼯程学的基本原则有哪些:①抽象。

②信息隐蔽。

③模块化。

④局部化。

⑤确定性。

⑥⼀致性。

⑦完备性。

⑧可验证性。

5 什么是软件的⽣命周期?答案:软件与任何⼀个事物⼀样,有它的孕育、诞⽣、成长、成熟、衰亡的⽣存过程。

这就是软件的⽣存周期。

6 软件⼯程过程有哪⼏个基本过程活动?试说明之。

答案:软件⼯程过程的基本过程活动有4步:①软件规格说明(需求定义)。

规定软件的功能及其运⾏的限制;②软件设计与开发(设计开发)。

产⽣满⾜规格说明的软件;③软件确认(测试)。

确认软件能够完成客户提出的要求;④软件演进(维护)。

为满⾜客户的变更要求,软件必须在使⽤的过程中演进。

四、综合题1.详细说明软件⽣命周期分哪⼏个阶段?答案:软件⽣命周期主要分为6个阶段:软件项⽬计划、软件需求分析和定义、软件设计、程序编码、软件测试,以及运⾏维护。

(1)软件项⽬计划:在这⼀步要确定软件⼯作范围,进⾏软件风险分析,预计软件开发所需要的资源,建⽴成本与进度的估算。

根据有关成本与进度的限制分析项⽬的可⾏性。

(2)软件需求分析和定义:在这⼀步详细定义分配给软件的系统元素。

可以⽤以下两种⽅式中的⼀种对需求进⾏分析和定义。

⼀种是正式的信息域分析,可⽤于建⽴信息流和信息结构的模型,然后逐渐扩充这些模型成为软件的规格说明。

另⼀种是软件原型化⽅法,即建⽴软件原型,并由⽤户进⾏评价,从⽽确定软件需求。

面向对象设计面向对象建模基础

面向对象设计面向对象建模基础

面向对象设计面向对象建模基础xx年xx月xx日CATALOGUE目录•面向对象设计基础•面向对象建模基础•面向对象设计案例分析•面向对象建模案例分析•面向对象设计与面向对象建模的联系与区别•总结与展望01面向对象设计基础面向对象设计是一种软件开发方法,它以“对象”为核心,通过将现实世界中的实体抽象成程序中的对象,实现对现实世界的映射和抽象。

面向对象设计的目标是将现实世界中的问题空间映射到程序中的解决方案空间,使程序具有更好的可读性、可维护性和可扩展性。

什么是面向对象设计面向对象设计的基本原则将现实世界中的实体抽象成程序中的对象,每个对象都有其属性和行为。

抽象封装继承多态将对象的属性和行为封装在一个独立的单元中,每个对象都有其自己的状态和行为。

通过继承已有的对象来创建新的对象,子类继承父类的属性和行为,并可以添加或覆盖父类的行为。

同一消息或方法调用可以影响多种类型的对象,从而实现不同的行为。

提高软件的可维护性面向对象设计将现实世界中的实体抽象成程序中的对象,每个对象都有其自己的属性和行为,使得代码更加模块化、易于理解和维护。

提高软件的可扩展性面向对象设计采用类和接口的方式,可以方便地添加新的功能和扩展点,实现软件的灵活性和可扩展性。

提高软件的可测试性面向对象设计将复杂的功能分解为独立的对象,每个对象都可以单独测试和验证,降低了测试的难度和成本。

提高软件的可重用性面向对象设计通过继承和多态的机制,可以实现代码的重用,减少重复开发的工作量。

面向对象设计的优势02面向对象建模基础面向对象建模是一种软件开发方法,使用对象、属性、方法和行为来描述现实世界中的事物和关系。

它通过建立模型来映射现实世界中的各种实体、属性和关系,为软件开发提供了一种自然的、易于理解的方法。

什么是面向对象建模通过创建类图来描述对象及其之间的关系,包括继承、接口、实现等。

类图建模法通过创建时序图来描述对象之间的交互和消息传递,用于表现系统的动态行为。

第五讲 面向对象分析与设计(Object-oriented Analysis and Design)

第五讲 面向对象分析与设计(Object-oriented Analysis and Design)

4 面向对象软件工程



OOA强调直接针对问题域中客观存在的各项事物设立OOA模 型中的对象。另外,OOA模型也保留了问题域中事物之间关 系的原貌。 OOD包括两方面的工作,一是把OOA模型直接搬到OOD,作为 OOD的一个部分;另外是针对具体实现中的人机界面、数据 存储、任务管理等因素补充一些与实现有关的部分。这些 部分与OOA采用相同的表示法和模型结构。 在OOA->OOD->OOP这一软件工程的过程系列中,在OOA和OOD 阶段对系统需要设立的每个对象类及其内部构成与外部关 系都达到透彻的认识和清晰的描述, OOP工作就是用同一 种面向对象的编程语言把OOD模型中的每个成分书写出来: 用具体的数据结构来定义对象的属性,用具体的语句来实 现操作流程图所表示的算法。
第五讲 面向对象分析与设计 (Object-oriented Analysis and Design)
Welcome to Software Engineering Lecture 5 Zhang Jiannan jiannanz@
目标

熟悉面向对象方法的基本知识;
熟悉 UML的基础知识;
assemble() …
结构化设计中模块和模块之间的关系,被紧紧局限于 信息流,试图通过信息流及其转换来认识系统,这限 制了对模块之间众多关系的表达和体现,如继承、依 赖。
结构化与面向对象

流水线式的过程处理与人们日常处理问题的方式不一 致。随着时间流逝,软件工程师越来越注重系统整体 关系的表示和数据模型技术(把数据结构与过程看作 一个独立功能模块)。程序定律被重新认识: 程序 = (过程+数据结构) 这样的思想符合现实世界中的事物特征,我们区分事 务主要依靠就是事物各式各样的特征,包括事物不同 的属性和特定的行为。 集成化的软件开发方法--面向对象方法产生。

第05章面向对象分析

第05章面向对象分析

经过初步筛选后,剩下的类与对象有:
手表、按钮、显示屏、电池、时间。
2 按钮 1 简单手表 1 1 时间
1 显示屏
1
1 电池
1
图5-8 电子表元素的UML类图
三、定义属性和方法
问题域中的事物的特征可以区分为静态特征和动态特征, 静态特征可以通过一组数据来表示,而动态特征则可以通过一 系列操作来表达。面向对象方法用对象来抽象问题域中的事物, 相应的对象属性和服务则与事物的静态特征和动态特征相对应。
第5章
面向对象分析
教学目的、要求,重点、难点
目的要求:使学生了解面向对象的分析过程,需求 陈述的书写,掌握建立对象模型、动态模型、功能 模型方法和步骤。 教学重点:建立对象模型、动态模型、功能模型的 方法和步骤。 教学难点:建立对象模型、动态模型、功能模型的 方法和步骤 讲授内容:面向对象的分析过程,需求陈述的书写, 建立对象模型、动态模型、功能模型方法和步骤。
电子表
构造对象模型的第一 步是标出来自问题域的相 关对象类。对象包括物理 实体和概念,所有类在应 用中都必须有意义,在问 题陈述中,并非所有类都 是明显给出的。有些是隐 含在问题域或一般知识中 的。
读时间
设置时间 手表用户 更换电池 手表修理工 图5-6 电子表的UML用例图
二、发现对象的方法 类-&-对象是在问题域中客观存在的,系统分 析员的任务,就是通过分析找出这些类-&-对象。 1、找出侯选的类-&-对象 客观事物可以分为五类: 1)可感知的物理实体;(飞机,汽车,书…) 2)人或组织的角色;(医生,教师,雇主,计算机系) 3)应该记忆的事件;(飞行,演出,交通事故…) 4)两个或多个对象的相互作用,通常具有交易或接触 的性质;(购买,纳税,结婚…) 5)需要说明的概念;(政策,保险政策,版税法…) 在分析所面临的问题时,可以参照上述五类事物, 找出在当前问题域中的侯选类-&-对象。

面向对象建立的三种模型

面向对象建立的三种模型

面向对象建立的三种模型
类图模型是用于描述类、接口、属性和方法之间的关系和结构的模型。

它用于在软件设计阶段建立类的层次结构,明确类之间的继承、实现、依赖和关联关系。

对象图模型是用于描述对象及其属性和关系的模型。

它用于在软件设计阶段建立对象的结构和关系,明确对象之间的实例化、聚合和组合关系。

动态模型是用于描述对象行为和状态的模型。

它用于在软件设计阶段建立对象的行为和状态,明确对象之间的交互、时间和事件关系。

这三种模型是面向对象方法的核心,它们相互补充,共同构建了完整的面向对象系统模型。

在软件设计和开发过程中,正确使用和组合这三种模型是非常重要的。

- 1 -。

国防科大数据库第五章:面向对象的数据模型和对象关系数据模型

国防科大数据库第五章:面向对象的数据模型和对象关系数据模型

本讲(第5章)简要说明授课目的与要求:了解对象数据库管理系统的特点、优缺点以及与传统DBMS的区别;了解对象关系数据库系统相对关系数据库的扩充。

5.1 引言1. 高级的数据库应用计算机辅助设计(CAD);计算机辅助软件工程(CASE); 多媒体系统;地理信息系统(GIS);交互的和动态的Web站点。

2. 新的应用需求:1) 处理二进制大对象,文字、图象、声音、视频等多媒体数据。

2) 数据模拟:实体的任意组合、任意联系,例聚合、继承。

3) 行为模拟:对不同数据的多种操作。

3.关系数据库的弱点有限的数据类型缺少全系统唯一、不依赖于属性的OID (Object ID)不支持用户自定义或系统可扩展的运算 不能清晰表示和有效处理复杂对象及联系 阻抗失配4. 面向对象技术1)对象由属性和操作两部分构成。

一个对象包含若干属性,用以描述对象的状态、组成、特性。

一个对象包含若干操作,用以描述对象的行为方式。

2)操作(消息/方法)的接口与实现。

接口说明------给出操作的名称、参数表、操作结果、对象类型等。

实现部分------为实现该操作的一段程序代码。

附加优点:有利于提高数据独立性,有利于数据完整、安全保护。

3)类与实例具有相同属性和方法的一类对象抽象(概化)为类,其中的每一对象称为该类的一个实例。

4)继承与类结构①一个类中所有对象的集合的子集可以定义成一个新的类,它成为原类的子类,原来的类称为子类的超类。

②子类的每个成员继承超类的所有属性和方法。

子类和父类(直接超类)用线连接,构成一个类层次结构。

③子类还可以定义自己特有的属性和方法,也可以重新定义所继承的超类原有的属性和方法。

5. OODBS1.2.3二、模式及其映射1.每个对象在其生命周期中,都有一个系统给定的唯一不变的对象标识OID只要OID 相同,就是同一对象(无论对象的属性、操作如何修改);只要OID 不同,就是不同对象(尽管其属性、操作都一样) 高效快速定位、用户不可修改、独立于内容 系统产生OID 的方法有两种:逻辑OID 物理OID对象标识(OID )6.OO技术与数据库技术结合的途径①在面向对象的程序设计语言(例如Smalltalk,C++,Java)环境中扩展传统的数据库的功能。

第5讲 面向对象的分析-建立对象模型

第5讲 面向对象的分析-建立对象模型

2021/10/10
13
完善
❖ 1 给关联定义含义明确的名字。“分行拥有柜员终 端”
❖ 2 为了适应不同的关联,分解前面析出的类 ❖ 如事务分解为远程事务和柜员事务 ❖ 3 补充。 当分解出柜员事务后,多出几个关联,如
柜员输入柜员事务,ATM上输入远程事务 ❖ 4 标明重数。
2021/10/10
14
2021当金/10用,/10并户且选打择印取出款账时单,交AT给M用请户求。用户输人取款额。最后,ATM从现金出口吐出现 8
筛选
❖ 1 去冗余 例如磁卡,实际上就是现金兑换卡 ❖ 2 去掉与系统无关的 如街道,成本,储蓄所 ❖ 3 去掉抽象词 如银行,网络,系统,软件 ❖ 4 将属性词去掉 如 分行代码,取款额,余额 ❖ 5 属于操作的名词 如 ❖ 6 实现阶段才考虑的 例如日志,通信链路
❖ 2 在”事务”中,独立出一个更新,一个事务包 含对帐户的若干次更新.
❖ 3 分行和分行计算机合并,总行和总行计算机 合并, 因为对分析来说,分开没有什么意义.
2021/10/10
20
2021/10/10
16
2021/10/10
17
识别继承关系
❖ 继承关系的识别,需要领域知识 ❖ 自底向上,有共同属性泛化出父类 ❖ 自顶向下,将父类细化成子类
2021/10/10
18
2021/10/10
19
反复修改
❖ 1 根据功能独立性,将现金兑换卡分解为两个 类,其一负责权限,其二负责卡号里的数据
❖ 当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次事 务的信息,并与中央计算机交换关于事务的信息。首先,.ATM要求用户输入密 码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算机, 请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行代码 确 定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。 如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、查询等)。

面向对象的概念面向对象建模面向对象分析与模型化面向对象

面向对象的概念面向对象建模面向对象分析与模型化面向对象

(2) 使用关系


当一个用例使用另一个用例时,这两个用例 之间就构成了使用关系。 一般说来,如果在若干个用例中有某些相同 的动作,则可以把这些相同的动作提取出来 单独构成一个用例(称为抽象用例)。这样, 当某个用例使用该抽象用例时,就好像这个 用例包含了抽象用例中的所有动作。
三种模型的关系
面向对象开发模式


在面向过程开发模式中优先考虑的是 过程抽象,在面向对象开发模式中优 先考虑的是实体(问题论域的对象)。 在面向对象开发模式中,把标识和模 型化问题论域中的主要实体做为系统 开发的起点,主要考虑对象的行为而 不是必须执行的一系列动作。
面向对象方法学的要点(1)
Coad和Yourdon认为
2. 聚集


聚集也称为聚合,表示类与类之间的关系 是整体与部分的关系。在陈述需求时使用 的“包含”、“组成”、“分为……部分” 等字句,往往意味着存在聚集关系。 除了一般聚集之外,还有两种特殊的聚集 关系,分别是共享聚集和组合聚集。
共享聚集
如果在聚集关系中处于部分方的对象可同 时参与多个处于整体方对象的构成,则该聚 集称为共享聚集
受限泛化

受限泛化可以给泛化关系附加约束条件。 如多重继承
4. 依赖和细化
(1) 依赖关系 依赖关系描述两个类之间的语义连接关系: 其中一个类是独立的,另一个类依赖于独 立的类,如果独立的类改变了,将影响依 赖于它的类。 在UML的类图中,用带箭头的虚线连接有 依赖关系的两个类,箭头指向独立的类。 在虚线上可以带一个版类标签,具体说明 依赖的种类.

类图的基本符号


类图描述类及类与类之间的静态关系。类图 是一种静态模型,一个系统可以由多张类图 来描述。 类的表示

面向对象分析与建模

面向对象分析与建模

2020/7/11
5
面向对象的基本概念
❖ 继承性 继承性是不同类层次之间共享数据和方法的手段,是软件重 用的一种机制。继承性使软件开发不必都从头开始。对一个 新的类的定义和实现,可以建立在已有类的基础上。把已经 存在类中的数据和方法作为自己的内容,并加入自己特有的 新内容。类的层次结构在概念分析上源于对事物不同层次的 抽象,而在具体实现上却依赖继承机制。
2020/7/11
31

❖ 视图由图(Diagrams)组成,UML通常提
供9种基本的图,这些图是用例图、类图、对
象图、状态图、活动图、时序图、协作图、
构件图和部署图。这些基本的图从不同的方
面描述所分析系统的细节特征。其中,状态
图和活动图合称为行为图,时序图和协作图
合称为交互图。为了组织以上的图,还可使
OOA的主要任务是:通过对问题空间的分析, 识别并确定其中(问题空间)的对象和属性, 建立其中对象之间的类别联系和层次关系。
2020/7/11
12
面向对象分析的任务
❖ 面向对象的分析方法进行分析大致应完成如 下五个方面的基本内容
(1) 确定对象和类 (2) 确定结构 (3) 确定主题 (4) 确定属性 (5) 确定方法和消息关联
3
面向对象的基本概念
❖类
类是对象的抽象。一个类定义了大体上相似的一组对象。 类是对象的定义和描述。一个类所包含的方法和数据是 用来描述一组对象的共同行为和属性。通过类来抽象一 个个对象的共同特点、描述一个个对象的相似属性,存 贮一个个对象的一致行为,是面向对象技术最重要的特 征。从形式和定义说明上看,类很像传统程序设计中的 结构,但类同时包含了传统程序设计中数据定义和功能 实现的构造。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

在需求陈述中,找到一些名词词组 领域知识和常识 只需要重要的属性,不需要实现阶段的属性 不能把对象作为属性 不能把关联类的属性作为一般对象的属性 不能把限定当作属性,如分行代码是限定词,决定 总行拥有的哪一个分行 如果有毫不相关的属性,则可以考虑分解为两个类
识别继承关系
继承关系的识别,需要领域知识 自底向上,有共同属性泛化出父类 自顶向下,将父类细化成子类
1.面向对象分析过程

首先,系统分析员要对需求文档进行分析。发现和改正需求 文档中的歧义性、不一致性,剔除冗余的内容,挖掘潜在的 内容,弥补不足,从而使需求文档更完整、更准确。 然后,是需求建模。系统分析员根据提取的用户需求,即用 面向对象观点建立对象模型、动态模型和功能模型。


最后,是需求评审。通过用户、领域专家、系统分析员和系 统设计人员的评审,并进行反复修改后,确定需求规格说明。

完善



1 给关联定义含义明确的名字。“分行拥有柜员终 端” 2 为了适应不同的关联,分解前面析出的类 如事务分解为远程事务和柜员事务 3 补充。 当分解出柜员事务后,多出几个关联,如 柜员输入柜员事务,ATM上输入远程事务 4 标明重数。
ATM系统原始的类图
确定属性

确定类间关联

由需求陈述中的动词词组表示关联关系 确定隐含的关联
总行有多个分行构成 分行保管帐号 储户拥有现金兑换卡

根据问题域知识得到的关联
现金兑换卡访问帐号 分行雇佣柜员
筛选
1去掉前面已删除的对象引起的关联 2 去掉实现阶段考虑的关联 3 去掉瞬时事件(有更长期的联系存在) 4 将3元关联,变为两个2元的,或者限定的 5 去掉重复的关联。如总行拥有多台ATM, 事 实上是与(总台拥有中央计算机,中央计算 机与ATM通信)重复的
筛选
1 去冗余 例如磁卡,实际上就是现金兑换卡 2 去掉与系统无关的 如街道,成本,储蓄所 3 去掉抽象词 如银行,网络,系统,软件 4 将属性词去掉 如 分行代码,取款额,余额 5 属于操作的名词 如 6 实现阶段才考虑的 例如日志,通信链路

备选对象

ATM, 中央计算机,分行计算机,柜员终端, 总行,分行,柜员,储户,账户,事务,现 金兑换卡
面向对象的3个模型
对象模型总是很重要 设计人机交互,以及过程控制时,动态模型 很重要 涉及科学计算等问题,功能模型很重要

面向对象的5个层次 类与对 象层 属性层
属性
类边界 实例边界 实例连接
服务层
服务
消息
结构层
主题层
主题
主题(Subject)层:主题给出分析模型的总体概貌,是控制读者 在同一时间所能考虑的模型规模的机制。 类-&-对象(Class & Object)层:对象是数据及其处理的抽象。 它反映了保存有关信息和与现实世界交互的能力。 结构(Structure)层:结构表示问题域的复杂性。类 - 成员结构 反映了一般-特殊关系,整体 - 部分结构反映了整体 - 部分的关 系。 属性(Attribute)层:属性是数据元素,用来描述对象或分类结 构的实例,可在图中给出并在对象的储存中指定,即给出对象 定义的同时,指定属性。 服务(Serves)层:服务是接收到消息后必须执行的一些处理, 可在图上标明它并在对象的储存中指定,即给出对象定义的同 时,定义服务。

反复修改
1 根据功能独立性,将现金兑换卡分解为两个 类,其一负责权限,其二负责卡号里的数据 2 在”事务”中,独立出一个更新,一个事务包含 对帐户的若干次更新. 3 分行和分行计算机合并,总行和总行计算机 合并, 因为对分析来说,分开没有什么意义.

对象模型的5个层次

对应着面向对象分析中对象建模的5个活动, 这5项活动并没有先后次序,可以并行进行, 什么时候想起,什么时候补充。 面向对象分析的基本步骤:寻找类与对象, 识别结构,识别主题,定义属性,建立动态 模型,建立功能模型,定义服务

需求陈述

实现一个基于Android的手机拼图游戏,能计 时,能记录成绩,能切换不同的图,能按玩 家要求分割等分,能提示玩家走法。 需求陈述做什么而不是怎么做。哪些是必须ቤተ መጻሕፍቲ ባይዱ的功能,哪些是任选的,性能规定,与环境 的交互协议,适合的标准,扩充和可维护性 要求等





某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计算机、分行 计算机及柜员终端组成的网络系统。ATM和中央计算机由总行投资购买。总 行 拥有多台ATM。,分别设在全市各主要街道上。分行负责提供分行计算机和柜 员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统的软件开 发 成本由各个分行分摊。 银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支票向 自己拥有的某个账户内存款或开新账户。储户也可以从自己的账户中取款。通常, 一个储 户可能拥有多个账户。柜员负责把储户提交的存款或取款事务输进柜员 终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计 算机通信,分 行计算机具体处理针对某个账户的事务并且维护账户。 拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过 ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取款),或 查询 有关自己账户的信息(例如,某个指定账户上的余额)。将来可能还要求使用 ATM办理转账、存款等事务。 所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码唯 一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。通常,一张 卡可以访 问储户的若干个账户,但是不一定能访问这个储户的全部账户。每张 现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须 考虑同时在若干 台.ATM上使用同样的现金兑换卡的可能性。也就是说,系统 应该能够处理并发的访问。 当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次事 务的信息,并与中央计算机交换关于事务的信息。首先,.ATM要求用户输入 密 码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算 机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行 代码确 定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密 码。如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、查询 等)。当用 户选择取款时,ATM请求用户输人取款额。最后,ATM从现金出口吐 出现金,并且打印出账单交给用户。

自动柜员机系统





某银行拟开发一个自动取款机系统,它是一个由自动取款机、中央计算机、分行 计算机及柜员终端组成的网络系统。ATM和中央计算机由总行投资购买。总 行 拥有多台ATM。,分别设在全市各主要街道上。分行负责提供分行计算机和柜 员终端。柜员终端设在分行营业厅及分行下属的各个储蓄所内。该系统的软件开 发 成本由各个分行分摊。 银行柜员使用柜员终端处理储户提交的储蓄事务。储户可以用现金或支票向 自己拥有的某个账户内存款或开新账户。储户也可以从自己的账户中取款。通常, 一个储 户可能拥有多个账户。柜员负责把储户提交的存款或取款事务输进柜员 终端,接收储户交来的现金或支票,或付给储户现金。柜员终端与相应的分行计 算机通信,分 行计算机具体处理针对某个账户的事务并且维护账户。 拥有银行账户的储户有权申请领取现金兑换卡。使用现金兑换卡可以通过 ATM访问自己的账户。目前仅限于用现金兑换卡在ATM上提取现金(即取款),或 查询 有关自己账户的信息(例如,某个指定账户上的余额)。将来可能还要求使用 ATM办理转账、存款等事务。 所谓现金兑换卡就是一张特制的磁卡,上面有分行代码和卡号。分行代码唯 一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。通常,一张 卡可以访 问储户的若干个账户,但是不一定能访问这个储户的全部账户。每张 现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须 考虑同时在若干 台.ATM上使用同样的现金兑换卡的可能性。也就是说,系统 应该能够处理并发的访问。 当用户把现金兑换卡插入ATM之后,ATM就与用户交互,以获取有关这次事 务的信息,并与中央计算机交换关于事务的信息。首先,.ATM要求用户输入 密 码,接下来ATM把从这张卡上读到的信息以及用户输入的密码传给中央计算 机,请求中央计算机核对这些信息并处理这次事务。中央计算机根据卡上的分行 代码确 定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密 码。如果用户输入的密码是正确的,ATM就要求用户选择事务类型(取款、查询 等)。当用 户选择取款时,ATM请求用户输人取款额。最后,ATM从现金出口吐 出现金,并且打印出账单交给用户。
相关文档
最新文档