第八章 面向对象分析
软件工程 第八章 面向对象的设计方法
第八章面向对象的设计方法本章采用基于UML的面向对象设计方法的将分析模型转换为设计模型。
如第五章所述,面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成;设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。
为完成这一转换过程,设计人员必须处理以下任务:(1)针对分析模型中的用例,设计实现方案。
实现方案用UML交互图表示。
(2)设计技术支撑设施。
在大型软件项目中,往往需要一些技术支撑设施来帮助业务需求层面的类或子系统完成其功能。
这些设施本身并非业务需求的一部分,但却为多种业务需求的实现提供公共服务。
例如,数据的持久存储服务、安全控制服务和远程访问服务等。
在面向对象设计中,需要研究这些技术支撑设施的实现方式以及它们与业务需求层面的类及子系统之间的关系。
(3)设计用户界面。
(4)针对分析模型中的领域概念模型以及第(2)、(3)两个步骤引进的新类,完整、精确地确定每个类的属性和操作,并完整地标示类之间的关系。
此外,为了实现软件重用和强内聚、松耦合等软件设计原则,还可以对前面形成的类图进行各种微调,最终形成足以构成面向对象程序设计的基础和依据的详尽类图。
面向对象的软件设计过程如图8-1-1所示。
图8-1-1 面向对象的软件设计过程第一节设计用例实现方案UML 的交互图(顺序图、协作图)适于用例实现方案的表示。
因此,本节首先介绍交互图的语言机制,然后探讨用例实现方案的设计方法。
该设计方法包含如下3个步骤:(1)提取边界类、实体类和控制类;(2)构造交互图;(3)根据交互图精华类图。
一、顺序图顺序图用来描述对象之间动态的交互关系,着重表现对象间消息传递的时间顺序。
在顺序图中,参与交互的对象位于顶端的水平轴上,垂直轴表示时间,时间推移的方向是自上而下的。
顺序图中的对象一般以“对象名:类名”的方式标识,但也可以仅采用缩写形式“对象名”或者“:类名”。
面向对象分析方法
面向对象分析方法面向对象分析方法是以系统的用户和目的为出发点的一种分析技术,它主要用于分析系统中的物体(对象)之间的关系,以及这些物体所具有的通用性质,以便将它们组织为一个可使用的整体系统。
在软件开发中,面向对象分析方法用于发现和描述系统中的对象,以及它们之间的关系,并将这些对象组织为可重用的模块,以便用于系统的设计和实现。
面向对象分析方法包括四个主要步骤: 1、识别对象:根据系统的用户和目的,识别系统中的对象,并确定它们之间的关系。
2、分析对象:对系统中的对象进行进一步分析,以便更好地理解它们之间的关系。
3、确定对象的功能:确定系统中的对象应该具有的功能,以及它们之间的关系应该如何实现。
4、设计对象结构:考虑到对象之间的关系,设计系统的对象结构,以便将它们组织为可重用的模块。
面向对象分析方法有助于定义和分析系统中的对象以及它们之间的关系,从而准备进行软件设计和实现。
它能够帮助开发人员更好地理解系统的用户和目的,以及系统的功能和结构,从而有效地实现软件开发过程。
首先,面向对象分析可以帮助开发人员确定和识别系统中的对象,以及它们之间的关系。
通过分析用户和目的,开发人员可以确定用户可能会使用的对象,以及这些对象之间的关系。
在确定系统中的对象之后,开发人员可以分析这些对象,以便更好地理解它们之间的关系。
其次,面向对象分析可以帮助开发人员确定系统中的对象应该具有的功能,以及它们之间的关系应该如何实现。
通过分析用户和目的,开发人员可以确定每个对象应具有的功能,以及它们之间的关系应该如何实现。
最后,面向对象分析可以帮助开发人员设计系统的对象结构,以便将它们组织为可重用的模块。
在设计对象结构时,开发人员需要考虑到对象之间的关系,以及它们应该如何被组织和重用。
总之,面向对象分析方法是一种帮助开发人员确定和分析系统中的对象以及它们之间的关系的技术,从而为软件设计和实现提供依据。
它可以帮助开发人员确定系统中的对象,以及它们应该具有的功能和结构,从而有助于软件开发过程的有效实施。
面向对象 分析方法
面向对象分析方法面向对象分析方法(Object-Oriented Analysis, OOA)是一种软件开发中的分析方法,它主要是从对象的角度对系统进行分析,以便确定系统的需求,并定义系统中的对象和关系。
首先,面向对象分析方法强调对象的概念。
对象有状态,行为和标识,面向对象的分析方法的主要目的是理解系统对象。
分析中的对象通常是从现实世界中抽象的概念。
它们可以是具有属性以及可以执行的操作的任何事物,从人、动物、物品到商业概念和过程。
其次,面向对象分析方法强调抽象的重要性。
抽象是利用模型对信息进行缩减和简化的过程,以使得更容易理解精华、关键概念、规则和限制等. 面向对象分析方法通常以业务范畴对象的类的描述的概念模型开展。
应用程序的最终设计不同于一个概念模型,但它通常从这个带着剖析方法的模型开始。
接下来,面向对象分析方法规范化的技术是UML,即Unified Modeling Language。
UML是指一个由许多图表构成的项目和一些相关规范。
它是一个图形化的建模语言,可用于实现面向对象的分析、设计和构造。
UML 图表类型包括类图、用例图、对象图、时序图、通信图等, 主要用于完成对象指导的概念和设计。
最后,面向对象分析方法是软件开发过程中各阶段之间的桥梁。
它的主要目的是促进清晰的沟通,促进团队合作,并确保开发人员在开发那些与系统需求相符的代码时有一致的理解。
此外,它帮助开发人员对需求进行分析,确保大家共享对系统的理解。
这使得开发团队更加有效和掌握问题的机会。
综上所述,面向对象分析方法是一种强调对象概念和抽象的分析方法,它的最终目标是为确保开发人员有一致的理解并开发切合需求的代码。
这个方法在软件开发生命周期的各个阶段起到一个支撑作用,并且通过UML 规范化技术来完成。
对于当前的软件开发,需要理解和应用面向对象分析方法来提高开发的工作效率和程序的质量。
面向对象分析
面向对象分析:是确定需求或者业务的角度,按照面向对象的思想来分析业务。
例如:OOA只是对需求中描述的问题,进行模块化的处理,描述问题的本质,区别每个问题的不同点相同点,确定问题中的对象。
OOA与结构化分析有较大的区别。
OOA所强调的是在系统调查资料的基础上,针对OO方法所需要的素材进行的归类分析和整理,而不是对管理业务现状和方法的分析。
基本步骤:
在用OOA具体地分析一个事物时,大致上遵循如下五个基本步骤:
第一步,确定对象和类。
这里所说的对象是对数据及其处理方式的抽象,它反映了系统保存和处理现实世界中某些事物的信息的能力。
类是多个对象的共同属性和方法集合的描述,它包括如何在一个类中建立一个新对象的描述。
第二步,确定结构(structure)。
结构是指问题域的复杂性和连接关系。
类成员结构反映了泛化-特化关系,整体-部分结构反映整体和局部之间的关系。
第三步,确定主题(subject)。
主题是指事物的总体概貌和总体分析模型。
第四步,确定属性(attribute)。
属性就是数据元素,可用来描述对象或分类结构的实例,可在图中给出,并在对象的存储中指定。
第五步,确定方法(method)。
方法是在收到消息后必须进行的一些处理方法:方法要在图中定义,并在对象的存储中指定。
对于每个对象和结构来说,那些用来增加、修改、删除和选择一个方法本身都是隐含的(虽然它们是要在对象的存储中定义的,但并不在图上给出),而有些则是显示的。
软件工程第8章面向对象分析资料
2017/9/4
2017/9/4
图8・2复杂问題的对象模證的5个层次
3017/9/4 6
2017/9/4 8
8.2需求陈述
&2・1书写要点
需求陈述的内容包括:问®范間,功®需求,性«需求,应用环境及假设条件等。
需求陈述应该阐明“做什么”而不是"怎样做”》它应该描述用户的需求而不提出解决问《的方法-应»指出哪些是系统必要的性质,哪些足任选的性质.
书写需求陈述时,妥尽力做到晤法正确,而且应该慎复选用名词、动词.形容词和同义词•
绝大多««求陈述都是有二义性的、不完»的,甚至不一致的.某些需求有明显错课,还有一些需求虽然表迷得很准确,但它们对系统行为存在不良影响或者实现起来遣价
2017/9/4
8.2.2例子
储户
图&3 ATM肅统
2017/9/4 10。
软件工程概论_8_面向对象需求分析
• 一.面向对象分析模型的组成结构 • 二.面向对象分析模型描述工具 • 三.面向对象分析的基本过程
• 四. 面向对象分析方法
• 五. 小结
一.面向对象分析模型的组成结构
数据模型
属性、操作、协作者
功能模型
类/对象 模型
对象关系模型
使用实例
对象-行为模型
行为模型
二.面向对象分析模型描述工具
1. 用例图
2.面向对象建模 (1)建模与模型 建模是将问题域的解空间定义成一种模型,以帮助系统分析 人员更好地理解问题。 模型是为了理解问题而对问题所做出的一种抽象,而且是对 问题的一种无歧义的描述。模型由一组图示符号和组织这些 符号的规则组成。利用它们来定义和描述问题域中的术语和 概念。 建模的目的主要是为了减少复杂性。 (2)面向对象模型
2) 面向对象分析的五个层次 面向对象分析由五个主要活动组成,即确定类-&-对象、识别 结构、识别主题、定义属性和定义服务(方法)。对于一个复杂 问题的面向对象的模型可用五个层次表示:类-&-对象层、结 构层,主题层、属性层和服务层,见图3.3.8。
主题层 subject level 类-&-对象层object 结构层 structure 属性层 attribute 服务层 serves
•使用具有确切含义的名词。
• 尽量使用能表示类的含义的日常用语作名字,不要使用空洞的或含 义模糊的词作名字。例如,“库房”比“房屋”或“存物场所”更确切。
•必要时用名词短语作名字。
• 为使名字的含义更准确,必要时用形容词加名词或其他形式的名词 短语作名字。例如,“最小的领土单元”、“储藏室”、“公司员工”等 都是比较恰当的名字。
签定保险单 销售统计
客户
面向对象分析OOA
指导读者(系统分析 员、软件设计人员、 领域专家、管理人员、 用户等)理解大型而
复杂的问题。
一个主题有 一个名称和 一个标识它
的编号
主题层 类-&-对象层
结构层 属性层 服务层
确定主题 找出类-&-对象
识别结构 定义属性 定义服务
图6.1复杂问题对象模型的五个层次
通常在完整地定义每个类中的服务之前,需 要先建立起动态模型和功能模型,通过对着两种 模型的研究,能够更正确更合适地确定每个类应 该提供那些服务。
(1)获取用户对面向对象系统的需求,包括表示场景/用例, 建造需求模型; (2)为每个系统对象标识属性和操作;
(3)定义组织类的结构和层次;
(4)建造对象——关系模型;
(5)建造对象——行为模型;
(6)使用场景/用例复审OO分析模型。
6.2面向对象分析过程
1、获取用户对面向对象系统的需求
和其他分析方法一样,OOA的基本出发点是问题域和 用户需求。系统分析员的主要工作是:通过不断的研究问题 域,建立一个能满足用户需求的系统模型。
(2)复审CRC卡,评估责任和协作者,对连线命 名以表示是什么样的关系。
(3)对连线每一端评估,以确定基数,基数表示 它们之关联的数目。。
7、建造对象——行为模型
对象——行为模型描述了对象之间在行为(操作) 上的依赖关系。
对象——行为模型建模的策略是“操作模拟”和 “执行路线追踪”,从主动对象的主动操作开始:
分析阶段首先要研究用户需求,目的是弄清到底要开 发一个什么样的系统。需要搞清楚的重点问题是:
系统需要提供那些功能 要达到何种性能及可靠性 安全性要求 人机交互要求 系统的对外接口(包括与系统以外的人员、设备和 其他系统的接口)等
面向对象分析
面向对象分析
面向对象分析是计算机科学领域中使用最广泛的一种分析技术,它是一种结构化的分析方法,是系统分析的更新与系统设计的预备工作。
面向对象分析可以帮助我们更好地理解和分析现有系统,并为系统重构提供指导。
面向对象分析是一种以对象为中心,以建模和分析实体、对象和对象之间的关系为主要任务的分析方法。
它的主要目的是将概念抽象为实体,然后利用视图及关系描述它们之间的关系。
面向对象分析包括分析、设计、建模过程,分析过程也称为面向对象分析(OOA)。
面向对象分析强调对对象的分析,对象可以看作对实际世界中的实际事物的抽象。
对象可以由属性和行为组成,属性描述了对象的内部状态,行为描述了它如何处理消息。
在面向对象分析中,这种抽象事物被描绘为类,每个类有一组共享的属性和行为。
面向对象分析和设计的主要工作是抽象建模,确定对象之间的关系,并利用抽象和关系建模系统。
建模可以帮助我们清楚地了解系统结构,以及每个系统元素之间的联系。
一旦建模完成,可以使用模型来设计、分析和实现高级的系统。
面向对象分析是一种结构化的分析方法,用于理解和描述系统的行为,从而有效地构建高质量的系统。
它的关键是建立系统的实体、关系和视图,从而提出系统的结构,并提出系统实现的可行方案。
总体而言,面向对象分析是一种重要而普遍应用的管理技术,它是系统分析和设计过程中的重要组成部分。
对对象的分析有助于进行
更好的系统设计,增强了系统容量,提高了系统灵活性和性能,为组建现代软件系统提供了可行的工具。
19-面向对象分析
图书馆系统的第2张类图
图书管理员 职工号 姓名 读者 姓名 身份证号 借书卡号 借书限额 可用限额 图书目录 图书 馆藏流水号 状态 罚款细则
图书品种 书名 国际书号 作者 出版社 出版日期 简介 价格 馆藏数量 可借数量
分析模型与用例模型
用例:外观
类图:内部结构 交互图:内部行为
软件的基本组成——类
• 学习OOA,找到实现用例功能的类
:系统
:图书管理 员
Loop
输入读者借书卡 读者信息 输入书号 图书信息
: 图书管理 员 : 借书窗口
系统做了些什么 (事件流),谁 去做的(对象)?
: 读者 : 图书
1. 提供读者借书卡(号) 2. 验证读者身份 2.1. 取读者信息 2.2. 检查读者借书条件
不同类别的概念(续)
• 规格说明:系统中关于对象的规格信息的描述。
– 如图书品种,每种图书有一个唯一的馆藏号,同时该 图书还包含一些描述信息,如书号、价格、作者、出 版社等,多本图书对象共用这些规格说明。这是一种 经过了抽象的概念,应该识别为概念类。
• 业务规则或政策:系统中经常使用的业务规则或 政策的文字描述。
4、关联的导向性(Navigability)
• 角色的导向性特征表示可以通过关联从源类 导向到目标类上。也就是说给定关联一端的 对象就能够容易并直接地得到另一端的对象。 • 识别关联的导向可以推迟,与设计实现有关。 通常是源对象存储了对目标对象的一些引用
读者 Reader
1 登记 1..*
借书记录 Loan
属性的表示
借书记录 borrowDate:Date returnDate:Date
面向对象的分析方法
面向对象的分析方法面向对象的分析方法是一种软件开发方法,它的主要目标是通过识别和描述系统内部的对象,以及它们之间的关系和行为,来构建高质量的软件系统。
面向对象的分析方法常用于对系统进行分析和设计,能够提高系统的稳定性、可维护性和扩展性。
下面我将详细介绍面向对象的分析方法。
面向对象的分析方法主要包括以下几个方面:1. 抽象:面向对象的分析方法通过建立模型来描述系统中的对象及其特征。
在分析过程中,需要从现实世界中抽象出合适的对象,并确定它们的属性和行为。
通过抽象,可以将系统中的复杂问题简化,并提高对问题的理解和处理能力。
2. 继承:继承是面向对象的分析方法中的一个重要特性。
通过继承,可以在已有的类的基础上创建新的类,并从已有的类中继承属性和方法。
这样可以避免重复编码,提高代码的可重用性和维护性。
3. 封装:封装是面向对象的分析方法中的另一个重要特性。
通过封装,可以将类的属性和方法封装起来,只暴露必要的接口给外部。
这样可以降低系统的耦合度,提高系统的安全性和可靠性。
4. 多态:多态是面向对象分析方法的另一个重要特性。
多态通过将对象的具体类型隐藏起来,只保留对象的抽象类型。
这样可以实现程序的动态性和灵活性,提高系统的可扩展性和可维护性。
面向对象的分析方法是系统开发过程中的一个关键环节,它可以帮助开发者更好地理解和分析系统需求,并将其转化为可执行的软件系统。
在面向对象的分析方法中,常用到的建模工具有UML(统一建模语言),通过使用UML工具,可以将系统中的对象、类、关系和行为进行可视化描述,使开发者更易于理解和交流。
在面向对象的分析方法中,首先需要进行需求分析,明确系统的功能需求和非功能需求。
然后通过抽象、继承、封装和多态等方法,将需求转化为系统的类和对象,并描述它们之间的关系和行为。
在这个过程中,需要充分考虑系统的扩展性和灵活性,以及用户的使用习惯和需求变化。
在进行面向对象的分析方法时,还需要注意一些常见问题。
第8章面向对象分析
UML 1.0
Web - June ´96
UML 0.9
OOPSLA ´95
Unified Method 0.8
Other methods
Booch method
OMT OOSE
1989-1994期间,OO措施从不足10种增长到50多种
UML旳创始人
• UML是由世界著名旳面对对象技术教授G. Booch、J. Rumbaugh 和 I. Jacobson发起, 在Booch措施、OMT措施和OOSE措施旳基 础上,广泛征求意见,集众家之长,几经修 改而完毕旳。
public feedback
UML旳历史 UML2.0
2023
Fall 1998 OMG Acceptance, Nov 1997 Final submission to OMG, Nov ‘97 First submission to OMG, Jan ´97
UML 1.3 UML 1.1
UML partners
– 子类(特殊类)能够继承父类(一般类)旳属性 和操作,也能够重新定义特殊行为。
– 继承可分为单继承和多继承,单继承是指子类只 从一种父类继承,多继承是指子类从多种父类继 承。
继承举例
继承下去
Person
Student
Faculty
Staff
多继承(Multi-Inheritance)
Vehicle
– 只要对象接口不变,对象内部逻辑旳修改不会影 响其他部件,便于复用,也降低了因修改引起旳 “水波效应”;
– 严密旳接口保护,使对象旳属性或服务不会随意 地被使用,对象旳情况易于控制,可靠性随之增 强。
4、继承(Inheritance)
08 面向对象
08 面向对象一、选择题(1)面向对象的分析方法主要是建立三类模型,即 (对象模型、动态模型、功能模型)。
(2)面向对象技术中,对象是类的实例。
对象有三种成份:( 标识)、属性和方法。
(3)(封装)是把对象的属性和操作结合在一起,构成一个独立的对象,其内部信息对外界是隐蔽的,外界只能通过有限的接口与对象发生联系。
(4)消息是对象间交互的一种机制,消息刺激接收对象产生某种行为。
消息的构成有三部分:(接收消息的对象),消息名,若干变元。
(5)面向对象设计准则包括:模块化,抽象,(信息隐藏),弱耦合,强内聚和可重用。
(6)(多态性)意味着一个操作在不同的类中可以有不同的实现方式。
(7)软件开发过程中,抽取和整理用户需求并建立问题域精确模型的过程叫(面向对象分析 )。
(8)把一组具有相似特性的对象的描述,称之为( 类)。
(9)面向对象分析的独到之处在于(将数据和操作结合在一起而不是分离)。
(10)下面关于面向对象方法中消息的叙述,不正确的是( B )。
A. 键盘、鼠标、通信端口、网络等设备一有变化,就会产生消息B.操作系统不断向应用程序发送消息,但应用程序不能向操作系统发送消息C. 应用程序之间可以相互发送消息D.发送与接收消息的通信机制与传统的子程序调用机制不同(11)面向对象分析是对系统进行(需求建模)的一种方法。
(12)汽车有一个发动机。
汽车和发动机之间的关系是(聚合关系 )。
(13)汽车有一种叫货车。
汽车和货车之间的关系是(继承关系)。
(14)消息是对象间交互的手段,消息刺激接收对象产生某种行为。
消息的构成有三部分:接收消息的对象,(消息名),若干变元。
(15)(封装)是指用户只能见到对象界面上的信息,对象内部对用户是隐蔽的。
(16)对象是OO方法的核心,对象的类型有多种,但通常把如飞行、事故、演出、开会等称为(事件)(17)(类)是对具有相同属性和行为的一个或多个对象的描述。
二、填空题1.UML的类包含三个部分:类的名称、、。
《面向对象分析 》课件
面向对象分析是逐步抽象、逐步分类的过程, 程序代码更加具有可读性,并可避免重复代 码创建
面向对象分析的流程
1
需求定义
收集并分析业务需求,根据需求建立初步模型。
2
形成模型
在初步模型的基础上,进行建模、分析、设计和验证,形成正式模型。
3
评价和完善
评估模型的质量并进行优化,最后形成完整、准确的模型。
领域建模
1
领域建模的流程
2
通过客户需求、市场环境、组织机构
等多方面考虑,建立基础识别原则,
全面地把控领域的各种可能性。
3
领域模型的符号与构建方法
4
领域模型是可以描述系统所分析的需 求的,采用实体、边界、控制等几个 方面的关系模型,以透视实体、边界、
记录等三个信息进行分析。
领域建模的定义
领域建模是对业务领域进行分析和建 模,从而达成对业务领域的深刻理解 的过程。
对象与类
对象的三个主要特征
对象是系统中一个具体实体,具备身份、状态 和行为三个主要特征,是面向对象分析的基本 概念。
类的定义与实现
类是具有相同属性和行为的对象集合,是对对 象的相似性的一种抽象,具体了相同概念的特 征和关系。
类的关系
类的关系包括继承、聚合、组合、依赖、关联 和实现,是所有系统元素之间的关系件将帮助你深入了解面向对象分析的流程和方法,掌握开发中的应用 技巧。
什么是面向对象分析?
深入理解业务需求
面向对象分析是一种针对业务需求的软件开发 方法,通过抽象出各个业务实体及其属性及行 为关系,建立起软件模型,实现对业务的深度 理解。
以对象为核心
面向对象分析是基于对象的思想进行软件需求 分析和设计,将对象作为核心概念,以对象之 间的关系为架构进行软件分析与设计。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三、划分主题(续)
6、如何精练主题 从问题域和接口复杂性两方面入手: 使用问题域精练主题,即用整体/部分结构对 问题域进行划分,而不是按功能分解方法划分. 按高内聚低偶合原则,通过使主题间依赖性 和交互性最小原则保留能反映子问题域的主题. 主题数目>7个左右,则进一步精练主题。
3、完善
① 正名:分行提供分行计算机和柜员终端 = 分行拥有分行计算机 + 分行拥有柜员终端 ② 分解:适当分解前面确定的class-&-objects ,使 其适用于不同的关联 事务 = 远程事务 + 柜员事务 ③补充 柜员输入柜员事务 在ATM上输入远程事务 柜员事务输进柜员终端 远程事务由现金兑换卡授权
2、筛选删除(续)
⑤派生关联:即可用其它关联定义的冗余关联
总行拥有多台ATM 分行提供分行计算机和 柜员终端 储户拥有账户 总行由各个分行组成 分行保管账户 总行拥有中央计算机 现金兑换卡访问账户 储户拥有现金兑换卡 分行雇用柜员 分行计算机处理事务 分行计算机维护账户 柜员终端与分行计算机 通信 柜员输入事务 事务修改账户 ATM与中央计算机通信 在ATM上输入事务 中央计算机确定事务与 分行的对应关系
1+ 修改 授权
1+
现金兑换卡
三、划分主题
主题是把一组具有较强联系的类组织在一 起而得到的类的集合。 1、主题概念及其用途 主题层是在OOA基本模型(类图)之上建立一 个能帮助人们从不同的认识层次来理解系统的 补充模型;
•
•主题一种比类和对象抽象层次更高、粒度更 大的概念,用以建立系统的高层抽象视图; •主题有助于指导系统设计者或用户等理解一
2、筛选出正确的类—&—对象
严格的审查每个候选对象,去除不正确或 不必要的,仅保留确实需要记录其信息或需 要其提供服务的对象。筛选依据: (1)冗余:去除重复,保留一个。 (2)无关:去除与本系统无关的对象。 (3)笼统:或无需记忆,或具有更明确。 (4)属性:去掉为其它对象属性的名词。 (5)操作:既为名词又为动词,应慎重考虑 (6)实现:去除与实现相关的类。
② 与问题无关的或应在实现阶段考虑的关联
2、筛选删除(续)
③瞬时事件:注意关联描述静态结构
ATM、中央计算机、分行计 算机及柜员终端组成网络 总行拥有多台ATM ATM设在主要街道上 分行提供分行计算机和柜员 终端 柜员终端设在分行营业厅及 储蓄所内 分行分摊软件开发成本 储户拥有账户 总行由各个分行组成 现金兑换卡访问账户 分行保管账户 总行拥有中央计算机 分行雇用柜员 分行计算机处理针对账户的事务 分行计算机维护账户 柜员终端与分行计算机通信 柜员输入针对账户的事务 ATM与中央计算机交换关于事务的信息 中央计算机确定事务与分行的对应关系 ATM读现金兑换卡 ATM与用户交互 ATM吐出现金 ATM打印账单 系统处理并发的访问 系统维护事务日志 系统提供必要的安全性 储户拥有现金兑换卡
形容词 Attribute
动词 Method
1、列出所有候选对象
对象是对问题域中有意义的事物的抽象, 既可以是物理实体,也可以是抽象的概念。 分类如下: (1)可感知的物理实体。如飞机,汽车等。 (2)人或组织的角色。如雇员,财务处等。 (3)应该记忆的事件。如演出,交通事故等 (4)多个对象之间的交互作用,通常具有交 易或接触性质。如购买,销售等。 (5)需要说明的概念。如政策法规等。
ATM自动取款机示例
例:从ATM需求分析中提出的名词集合
银行、ATM、系统、中央计算机、分行计算机、 柜员终端、网络、总行、分行、软件、成本、市、 街道、营业厅、储蓄所、柜员、储户、现金、支票、 账户、事务、现金兑换卡、余额、磁卡、分行代码、 卡号、用户、副本、信息、密码、类型、取款额、 账单、访问 、通信链路、事务日志
筛选时依下列标准删除:
冗余 无关 笼统 属性 实现 操作 既可为名词又可为动词
的词,应慎重考虑。
二、确定关联
【任务】:确定对象之间的关联关系。 【策略】: S1:初步确定关联。 对应于描述性动词或动词短语 需求陈述中隐含 根据问题域知识得出 S2:筛选。 S3:完善。
三、划分主题(续)
3、何时引入主题 依赖于模型自身复杂性 小系统: 不需引入主题; 中等系统:先标识类及对象,然后引入主题; 大系统: 先标识主题,对问题域进行 划分,分给不同的任务组; 4、主题层次的控制 中小型系统可只设一层主题,最多不超两层 大型系统可只设两层主题,最多不超过三层
三、划分主题(续)
1、初步确定关联
① 需求陈述中涉及objets的动词短语:
ATM、中央计算机、 分行计算机及柜员终端 组成网络 总行拥有多台ATM ATM设在主要街道上 分行提供分行计算机和 柜员终端 柜员终端设在分行营业 厅及储蓄所内 分行分摊软件开发成本 储户拥有账户 分行计算机处理针对账 户的事务 分行计算机维护账户 柜员终端与分行计算机通信 柜员输入针对账户的事务 ATM与中央计算机交换关于事 务的信息 中央计算机确定事务与分行的对 应关系 ATM读现金兑换卡 ATM与用户交互 ATM吐出现金 ATM打印账单 系统处理并发的访问
个大的系统模型, 有助于组织一个大项目的工 作。
三、划分主题(续)
2主题内部的对象类应具有某种意义上的
•描述系统中相对独立的组成部分(如一个
子系统)
•描述系统中某一方面的事物(如人员、设
备)
•主题的划分有一定的灵活性和随意性
•解决系统中某一方面的问题(如输入输出)
1、列出所有候选对象(续)
问题域描述中的名词,往往是候选的对象;根 据问题域结构可提取候选的类及对象; 与系统发生作用的其它系统和必要的设备可 作为候选的类及对象; 如: 打印机等 系统必须观测、记忆的与时间有关的 事件可作为候选的类及对象;如:建立帐户 的日期 打开一个帐户等 与系统发生交互的人及系统必须保留其信息 的人,可作为候选的类及对象;如:柜员、储 户等
一、三个子模型
面向对象建模得到的模型包括三个子模型: 静态模型:描述系统的静态结构,包括对象的 组成以及对象之间的关系。 动态模型:描述系统的动态结构,给出对象之 间的相互过程。 功能模型:描述系统数据变换,指明做什么。 对于解决问题的不同,各模型的侧重点也不同: ① 对象模型:最重要,开发任何系统都需要; ② 动态模型:对于开发交互式系统很重要; ③ 功能模型:对于开发大运算量问题(如科学 计算、编译系统等)很重要。
8· 建立对象模型 4
建立对象模型的步骤: 识别类—&—对象 确定关联 划分主题 确定属性 识别继承关系 迭代并反复修改模型
一、确定类—&—对象
【任务】:找出问题域中客观存在的对象。 【策略】: S1:列出所有候选对象。 S2:筛选出正确的对象。 非正式分析:从需求陈述中挑出
名词 Class-&-Object
1、列出所有候选对象(续)
这些人所属的组织单位,可作为候选的类及 对象; 如:总行、分行等 系统必须记忆、且不在问题域约束中的顺序 操作过程(为了指导人机交互)可作为候选的 类及对象; 如:柜员事务、远程事务等。 其中属性是操作过程名,操作特权及操作步 骤的描述; 系统需了解掌握的物理位置、办公地点等可 作为候选的类及对象;如:ATM机器、帐户等
8· OOA的基本过程 2
OOA实质就是抽取和整理用户需求,并 建立起问题域的精确模型。分析工作主要包 括理解、表达和验证三部分内容。 首先系统分析员需要与用户及相关领域专 家进行反复的交流,力求完全理解用户需求。 为了验证需求的正确性、完整性和有效 性,需要建立一个快速原型来加以验证。 同时,需要从理解的需求中抽取出问题的 本质属性,用模型准确的描述出来。包括三 个子模型与五个层次。
需求陈述 识别类—&—对象 确定结构 划分主题 定义属性 建立动态模型 建立功能模型 定义服务
8· 需求陈述 3
陈述用户需求(应“做什么”), 而 不是设计与实现的策略(不是 “怎么做”)。 分清各种问题的性质、规模,功 能需求,性能需求等 提出可扩充性、性能与通信的要 求
2、筛选删除(续)
④三元关联:分解为二元关联或限定关联 柜员输入针对账户的事务 = 柜员输入事务 + 事务修改账户 分行计算机处理针对账户的事务 = 分行计算机处理事务 + 事务修改账户
ATM与中央计算机交换关于事务的信息 = ATM与中央计算机通信 + 在ATM上输入事务
注:识别链属性 —— 某实体仅用于描述另两个实 体的关系,且该实体本身不包含属性。例如“公司 付给员工工资”可分解为“公司雇用员工”,附链 属性“工资”。
二、五个层次
主题层 类及对象层 属性层 属性 主题 类的边界 实例的边界 实例连接
结构层
服务层
服务
消息连接
三、OOA建立对象模型的五项活动
(1) (2) (3) (4) (5) 标识类及对象 标识结构 标识主题 定义属性及实例连接 定义服务及消息连接
五个步骤常根据需要交叉进行
四、进行OOA的步骤
④标明阶数(可能经常变动,不要花太多时间)
ATM取款机的对象模型
总 行 拥有 中央计算机 通信 通信
分行 代码
组成 拥有
分 行
保管 1+
1+ 雇用 柜员
账 户 修 改 1+
1+ 拥有
储 户 拥 有 访问
1+ 分行计算机 通信