版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第十一章 面向对象分析与设计,本章重点,11.1面向对象方法的形成与发展,11.1.1面向对象方法的发展史 20世纪60年代末,Simula67语言。 70年代到80年代,Smalltalk语言。 80年代中期到90年代,C+,Object Pascal、Java等。 80年代后 ,Booch提出的Booch方法;Jacobson提出的OOSE方法 ;Rumbaugh提出的OMT方法。 90年代中期 ,统一建模语言(Unified Modeling Language,UML),11.1面向对象方法的形成与发展(续),11.1.2面向对象方法的基本原理 OO方法强调从“问题域”到“实现域”的映射
2、应采用一种直接和自然的映射方法,使实现域保持了问题域的本来面目,没有对问题域造成扭曲。这是OO方法最突出的优点。 OO方法以对象为中心,强调对象是对客观事物的正确抽象,是构成软件系统的基本单位。对象是由属性和服务组成的。将具有相同属性和服务的对象归为一类,类是这些对象的抽象描述。通过继承机制简化了对系统的构造和描述。通过消息实现了对象的动态联系。通过关联实现对象的静态联系。,11.2面向对象方法的主要概念,11.2.1对象 1、对象 对象是系统中用来描述客观事物的一个实体,一个对象由一组属性和对这组属性进行操作的一组服务构成。 2、属性 属性是用来描述对象静态特征的一个数据项。 3、服务 服务
3、是用来描述对象动态特征的一个操作序列。,11.2面向对象方法的主要概念(续),11.2.2类 类是指具有相同属性和服务的一组相似对象的集合。 11.2.3封装 封装(Encapsulation)是指通过对象将属性和服务组合起来,构成一个不可分割的独立的系统单位,并尽可能隐蔽其内部细节。 11.2.4继承 继承(Inheritance)是指特殊类的对象可自动地拥有其一般类定义的全部属性与服务。,11.2面向对象方法的主要概念(续),11.2.5消息 消息(Message)是指向对象发出的服务请求。 11.2.6关系 一般特殊关系 又称作继承关系或“is-a-kind-of”关系。 关联关系 关联
4、(Association)表示一个对象了解其它对象的程度。,11.2面向对象方法的主要概念(续),整体部分关系 整体部分关系又称作组合关系或“is-a-part-of”关系。 行为依赖关系 行为依赖关系描述对象之间的动态联系,即:若一个对象在执行自己的服务时,需要向另外的一个对象发送消息请求它的某种服务,则称这两个对象之间存在着行为依赖关系。 11.2.7多态性 对象的多态性(Polymorphism)是指在一般类中定义的属性或服务被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为。,11.2面向对象方法的主要概念(续),11.2.8永久对象 永久对象(Persistent Objec
5、t) ,就是其生存期可以超越程序的执行时间而长期存在的对象。 11.2.9主动对象 1、被动对象 对象的每一个服务只有在一条消息的驱动下才被执行,这样的对象称为被动对象(Passive Object)。 2、主动对象 主动对象(Active Object)就是至少有一个服务不需要接收消息就能主动执行(称为主动服务)的对象。,11.3统一建模语言UML,11.3.1UML的发展与作用 (一)UML发展史 1995年10月同在美国Rational软件公司工作的G.Booch和J.Rumbaugh把他们各自提出的Booch方法和OMT方法结合起来,形成一种统一方法,即UM(Unified Metho
6、d)0.8。 OOSE的提出者I.Jacobson也加入了这一行列,经过三人的密切合作,于1996年6月和10月先后发布了二义性较少的UML0.9和0.91版本。 1997年1月,他们推出了UML1.0版,并提交到对象管理组织(Object Management Group,OMG)作为初步的提案申请。,11.3统一建模语言UML(续),1997年9月1日提出了UML1.1,并作为最终提案提交到OMG,该提案在1997年11月被OMG正式采纳为OO建模的标准语言。 OMG平台技术委员会批准成立UML修订任务组,先后制定改进版本,包括:UML 1.2 、UML1.3 、UML1.4 。并将UML
7、l.3作为其最终草案,于1999年6月提交给OMG组织委员会和平台技术委员会,并获得批准。 目前最高版本是UML2.0,11.3统一建模语言UML(续),(二)UML的主要作用 作为一种建模语言,UML定义了建立系统模型所需的概念及其标准的可视化图形表示符号。但是它并不介绍如何进行系统建模。因此,UML并不是一种面向对象建模方法和过程。 UML是一种建模语言,而不是一种程序设计语言。 UML是一个可扩展的建模语言。,11.3统一建模语言UML(续),11.3.2面向对象分析和设计的UML模型结构 UML将OOA&D要建立的系统模型划分为系统功能视图、系统静态视图和系统动态视图。,11.3统一建
8、模语言UML(续),(一)功能视图 功能视图用于展现一个系统应具有的功能集合。UML用例图(Use Case Diagram)来描述。 (二)静态视图 静态视图也成为逻辑视图,用于展现系统的静态结构,揭示系统内部的组成元素及其它们之间的关系。UML用“类图”和“对象图” 来描述。 (三)动态视图 动态视图用于展现系统的动态行为特征。UML用序列图(Sequence Diagram)、状态图(State Diagram)、协作图(Collaboration Diagram)和活动图(Activity Diagram)来描述。,11.3统一建模语言UML(续),11.3.3功能视图的概念和表示方法
9、 用例图基本的模型元素包括用例(Use Case)、角色(Actor)和用例关系。,用例图中的主要模型元素及其表示符号,11.3统一建模语言UML(续),(一)角色 “角色”是指在系统边界以外与系统进行信息交互的有关事物。 (二)用例 “用例”是指从系统外部各个角色的角度观察,系统应支持哪些功能,一个用例提供对应系统对外部提供的一项功能,它是对系统功能的宏观描述。 (三)用例关系 扩展(Extends)关系 使用(Uses)关系,11.3统一建模语言UML(续),(四)用例图示例,11.3统一建模语言UML(续),11.3.4静态视图的概念和表示方法 (一)类和对象的表示 1、类和对象表示的符
10、号 类和对象都用长方形表示,长方形分成上、中、下三个区域来分别表示类和对象的名字、类的属性和服务。,11.3统一建模语言UML(续),2、属性 类的属性用来描述该类的所有对象所具有的静态特征,对象的属性用来描述该对象所有的属性值。UML描述属性的语法格式为: 可见性属性名:属性类型名初值性质串 3、服务 类的服务说明了该类能做些什么。每种服务定义的标准语法格式为: 可见性服务名(参数表):返回值类型性质串,11.3统一建模语言UML(续),4、类定义示例,11.3统一建模语言UML(续),(二)继承关系的表示 1、继承关系表示的符号 继承关系用一条带空心三角形的直线表示,空心三角形紧挨父类。,
11、11.3统一建模语言UML(续),2多态 子类也可以把本来在父类中定义的属性和服务重新进行定义,来达到“名字相同,语义不同”的目的。“多态”是在属性或服务的“性质串”中来说明的。 3抽象类 所谓“抽象类”是指没有具体对象的类。抽象类一般只作为父类,用于描述其子类的公共属性和服务。抽象类通常都具有抽象服务。抽象服务仅仅用来指定某个类的所有子类应具有哪些行为,但并不指定具体的实现方式。抽象服务的表示方法是在抽象服务标记后跟随一个性质串抽象性Abstract。,11.3统一建模语言UML(续),4、多继承及其抽象类表示法示例,11.3统一建模语言UML(续),(三)关联关系表示 1、关联关系表示的符
12、号 一般的关联关系采用一条直线来表示,该直线连接了具有关联关系的两个类或对象。,11.3统一建模语言UML(续),2、关联名称 使用关联名称可更清晰地说明该关联关系的含义和目的。 3、角色名 角色名用于规定某个类在关联关系中所起的作用。 4、多重性 多重性用于说明关联关系中某类对象的数量关系,即该类的多少个对象可以与另一个类的一个对象相关联。 5、导向性 导向性用于说明两个类的关联是单向的,导向性采用实线箭头表示,即只有箭头所指方向上才有这种关联关系。,11.3统一建模语言UML(续),6、关联类 “关联类” 用来表示关联关系本身所拥有的特征。 7、多元关联 客观世界中,有时多个事物之间存在某
13、种联系。,11.3统一建模语言UML(续),(四)整体部分关系表示 对象间的整体部分关系是关联关系的特例。UML中表示整体部分关系的符号与关联关系类似,只是在指向整体对象的一端增加了一个小菱形。如果是聚合关系,则小菱形是空心的,如果是组成关系,则小菱形是实心的。,11.3统一建模语言UML(续),(五)包的概念及其表示 1、包的概念 包(Package)是一种组合机制,把各种各样的模型元素通过内在的语义连成一个整体就形成一个包。构成包的模型元素称为包的内容。 2、包的表示 “包”的图形表示符号类似文件夹,由两个长方形组成,小长方形位于大长方形的左上角。,11.3统一建模语言UML(续),3、包
14、间关系 依赖关系 如果包A引用了包B的类或类的服务,则称B依赖A。依赖关系用一条带箭头的虚线表示。 继承关系, 如果包B内的某个类是包A某个类的子类,则包A和B构成了继承关系,包间继承关系的表示符号同类间的继承关系一样。,11.3统一建模语言UML(续),4、包的示例,11.3统一建模语言UML(续),11.3.5动态视图的概念和表示方法 (一)状态图 状态图用于描述一个对象所能达到的所有状态以及引起状态变化的事件,用于对类所描述事物的补充说明。 1、状态的表示 一个对象的状态由一个初始状态、若干个中间状态和零到多个终止状态组成。,11.3统一建模语言UML(续),2、状态转移表示 对象状态间
15、的转换用一条带箭头的线表示,线上要标注引起状态转换的条件。 转移条件的语法格式为: 事件名(参数表)守卫条件/动作表达式发送子句,11.3统一建模语言UML(续),3状态图示例,11.3统一建模语言UML(续),(二)序列图 序列图是用来反映对象之间行为依赖关系的模型之一,它侧重于描述为完成一个功能,随着时间的流逝对象之间的交互方式。 1、消息的表示 一般来说消息可以分为普通消息、同步消息和异步消息三种。,11.3统一建模语言UML(续),2、消息协议 条件服务名(参数表) 3、序列图示例,11.3统一建模语言UML(续),(三)协作图 协作图是用来反映对象之间行为依赖关系的另一种模型。它侧重
16、于描述为完成一个功能,从空间的角度,对象的链接(关联的实例)以及链接对象间的交互。 1、消息标签 前缀/守卫条件消息序列号并发消息别名循环子句条件子句:消息名(参数表),11.3统一建模语言UML(续),2、协作图示例,打印文件协作图,11.3统一建模语言UML(续),(四)活动图 活动图是另一种用来描述交互的模型,主要描述完成一项功能要执行的动作、动作顺序和动作所产生的结果。 1、活动图基本的建模元素及其表示符号,11.3统一建模语言UML(续),2、活动图示例,11.4 面向对象分析,11.4.1、概述 1、主要任务 系统分析的主要任务是对拟建系统所涉及的领域进行全面而深入的理解和认识,从
17、而确定系统要解决的问题以及要达到的目标,并对该问题域进行清晰、完整、准确和详细的认识和描述,以便为后续的系统设计提供清晰准确的设计依据。 2、最终目标 系统分析的其最终目标是产生综合描述问题域特征的文档。,11.4 面向对象分析(续),3、系统分析方法 结构化方法 数据驱动方法 OOA方法 Booch方法 OMT方法 OOSE方法 统一过程RUP(Rational Unified Process),11.4 面向对象分析(续),11.4.2面向对象分析的任务 OOA的基本任务是:运用OO方法,对拟建信息系统所涉及的领域和要解决的领域问题进行分析和理解,正确认识问题域中的事物及其事物间的关系,确
18、定为解决领域问题信息系统应具备的功能和其它方面的要求。在此基础上,勾画出拟建系统的逻辑模型来反映系统的静态和动态结构。 对系统静态结构的认识和描述,主要是利用抽象、分类、继承、组合以及封装等原则来实现三种映射, 对系统动态结构的认识和描述,必须从系统要完成的功能出发,既要搞明白对象的行为方式,又要认识清楚构成系统基本部件的交互和协作过程。最终建立相关模型来刻画系统的动态结构。,11.4 面向对象分析(续),11.4.3面向对象分析的过程模型,11.4 面向对象分析(续),11.4.4确定系统目标和范围 学习和掌握领域背景 常用的途径包括资料阅读、调查、访谈、实地考查和操作、请教领域专家等。 确定系统范围 在领域中哪些领域问题可以借助信息系统来加以解决,进而确定问题域,即系统范围。 确定系统目标 确定问题域中的每个问题要解决到什么程度,即信息系统要达到的目标,制定目标时,一要尽可能量化,二要适度,既不能过高,也不能过低。,11.4 面向对象分析(续),11.4.5需求获取和定义,11.4 面向对象分析(续),(一)需求调研 需求调研要采取全面而有序和逐步引入细节的策略。 (二)建立用例模型 1、识别系统角色 谁是使用系统主要功能的人? 谁需要借助系统完成日常工作? 谁来维护、管理系统,以保证系统正常运行? 系统控
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基因治疗载体安全性标准X提升论文
- 大学生心理韧性培养教师引导论文
- 高速列车气动噪声降低X发展论文
- 电力设备故障预测X挑战应对论文
- DB37T-公路高边坡智能监测技术规范
- 幼儿园户外公开课教案
- 幼儿园环保主题活动方案1
- 呼吸系统疾病康复护理指南
- 多学科协作(MDT)护理
- 喉梗阻患者的出院指导
- 电工(技师)资格考试题
- 人教版高一数学必修一全套教案设计
- GB/T 26202-2010纸管纸板
- GB/T 25112-2010焊接、切割及类似工艺用压力表
- GB/T 14099.1-2004燃气轮机采购第1部分:总则与定义
- 隧道机械化施工交流
- 河道开挖、拓浚整治工程土方开挖施工方案
- 漂流旅游项目防洪评价报告
- 银行网点标准化服务培训课件
- (完整版)CJJ-1-2008-城镇道路工程施工与质量验收规范
- GB∕T 8081-2018 天然生胶 技术分级橡胶(TSR)规格导则
评论
0/150
提交评论