面向对象分析和设计.ppt课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《面向对象分析和设计.ppt课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 分析 设计 ppt 课件
- 资源描述:
-
1、2 概述 面向对象的分析和设计方法 基于UML的面向对象分析与设计3 面向对象是一种面向对象是一种风范(Paradigm),是一种观察是一种观察和分析问题的和分析问题的方法论(Methodology)从本质上来说,面向对象方法是确定从本质上来说,面向对象方法是确定动作的主体在先(先确定系统中的(先确定系统中的对象),),执行动作在后(再确定在这些对象上可能实施的(再确定在这些对象上可能实施的操作)传统的面向过程的程序设计,最关心的是过程传统的面向过程的程序设计,最关心的是过程 面向对象技术:是一种软件系统设计的工程技术,面向对象技术:是一种软件系统设计的工程技术,将将“对象对象”作为软件系统的
2、基本组成单元,将数作为软件系统的基本组成单元,将数据及其上作用的操作一起据及其上作用的操作一起封装封装,以标准的,以标准的接口接口规规范对外提供服务范对外提供服务 4 客观世界是由客观世界是由对象组成的组成的 从动态观点看,对对象施加的从动态观点看,对对象施加的操作就是该对就是该对象的行为象的行为 具有相同数据和相同操作的对象可以归并为具有相同数据和相同操作的对象可以归并为一个一个类,对象是类的一个,对象是类的一个实例 对象之间通过对象之间通过消息传递相互联系相互联系 类具有类具有封装性 类可以类可以派生出子类,子类出子类,子类继承父类的全部特性,父类的全部特性,又可以有自己的新特性又可以有自
3、己的新特性5 初始阶段(初始阶段(60年代末年代末80年代中期)年代中期)挪威,挪威,Simula语言:引入了类的概念和继承机制语言:引入了类的概念和继承机制 Xerox,Smalltalk语言语言 发展阶段(发展阶段(80年代中期到年代中期到90年代)年代)面向对象编程语言的繁荣:面向对象编程语言的繁荣:C+、Object Pascal、Java等等 成熟阶段(成熟阶段(90年代中期以后)年代中期以后)面向对象分析和设计方法的发展与规范:面向对象分析和设计方法的发展与规范:Booch方法、方法、Rumbaugh的的OMT方法、方法、Coad/Yourdon方法、方法、Jacobson的的OO
4、SE方方法法 等等 形成一整套面向对象软件工程体系形成一整套面向对象软件工程体系6 按照人类的自然思维方式建立软件系统模型,有利于理解和交流 在整个开发过程中采用统一的概念和模型表示,使开发活动之间平滑过渡 对象所具有的封装性和信息隐蔽等特性,容易实现软件复用 易于维护,体系结构易于理解、扩充和修改7 对象(对象(Object)由一组由一组属性和在这些属性数据上的容许和在这些属性数据上的容许操作对对组成组成 类(类(Class)封装(封装(Encapsulation)继承(继承(Inheritance)多态性(多态性(Polymorphism)消息(消息(Message)81.对象(objec
5、t)对象是指一组属性以及这组属性上的专用操作的封装体 属性(attribute)通常是一些数据,有时它也可以是另一个对象。每个对象都有它自己的属性值,表示该对象的状态。对象中的属性只能通过该对象所提供的操作来存取或修改。操作(operation)(也称方法)规定了对象的行为,表示对象所能提供的服务。一个对象通常由对象名、属性和操作三部分组成。92.类(class)类是一组具有相同属性和相同操作的对象的集合。一个类中的每个对象都是这个类的一个实例(instance)。类是创建对象的模板,从同一个类实例化的每个对象都具有相同的结构和行为。轿轿 车车型号:字符串型号:字符串颜色:字符串颜色:字符串牌
6、照号:字符串牌照号:字符串张经理的轿车张经理的轿车型号型号=桑塔纳桑塔纳颜色颜色=红色红色牌照号牌照号=沪沪AN2037AN2037类类实例对象实例对象10 封装封装(encapsulation):):一种信息隐蔽一种信息隐蔽技术,用户只能看见对象封装界面上的信息,对象的技术,用户只能看见对象封装界面上的信息,对象的内部实现对用户是隐蔽的。内部实现对用户是隐蔽的。封装的目的:使对象的使用者和生产者分离,使封装的目的:使对象的使用者和生产者分离,使对象的定义和实现分开。对象的定义和实现分开。继承继承(inheritance):):继承是类间的基本关系,它是基于层次关系的不继承是类间的基本关系,它
7、是基于层次关系的不同类共享数据和操作的一种机制。同类共享数据和操作的一种机制。父类中定义了其所有子类的公共属性和操作,在父类中定义了其所有子类的公共属性和操作,在子类中除了定义自己特有的属性和操作外,可以继承子类中除了定义自己特有的属性和操作外,可以继承其父类(或祖先类)的属性和操作,还可以对父类其父类(或祖先类)的属性和操作,还可以对父类(或祖先类)中的操作重新定义其实现方法。(或祖先类)中的操作重新定义其实现方法。11 矩形矩形长长宽宽对角线对角线计算面积计算面积计算对角线计算对角线 多边形多边形顶点数顶点数顶点坐标顶点坐标计算面积计算面积旋转旋转交通工具交通工具飞行器飞行器汽汽 车车 船
8、船轿轿 车车货货 车车 一般一般-特殊关系特殊关系12 如果一个子类只有唯一一个父类,这个继承称为单一继承。如果一个子类有一个以上的父类,这种继承称为多重继承。水上交通工具水上交通工具 陆上交通工具陆上交通工具 水陆两栖交通工具水陆两栖交通工具多重继承多重继承13 多态性(polymorphism)指同一个操作作用于不同的对象上可以有不同的解释,并产生不同的执行结果。例如“画”操作,作用在“矩形”对象上,则在屏幕上画一个矩形,作用在“圆”对象上,则在屏幕上画一个圆。相同操作的消息发送给不同的对象时,每个对象将根据自己所属类中定义的这个操作去执行,从而产生不同的结果。14if 条件条件 then
9、 p:=t;else p:=r;area:=p.getarea;getArea abstractpolygonareahexagongetArearectanglegetArealengthwidthtrianglegetAreaVar p:polygon;Var t:triangle:=triangle.new;Var r:rectangle:=rectangle.new;15 面向对象的分析(OOA):分析和理解问题域,:分析和理解问题域,找出类及对象,分析它们的内部构成和外部关系找出类及对象,分析它们的内部构成和外部关系 面向对象的设计(OOD):运用面向对象技术进:运用面向对象技术进行
10、软件设计行软件设计 面向对象的编程(OOP):用面向对象的编程语言:用面向对象的编程语言将设计模型转换成程序将设计模型转换成程序 面向对象的测试(OOT):运用:运用OO技术进行以对技术进行以对象概念为中心的软件测试,以类作为基本测试单位象概念为中心的软件测试,以类作为基本测试单位 面向对象的维护面向对象的维护(OOM)16 迭代迭代和和无间隙无间隙特征特征 迭代迭代:各开发活动常常:各开发活动常常重复工作多次,相关的重复工作多次,相关的功能在每次迭代中随之功能在每次迭代中随之加入演进的系统加入演进的系统 无间隙无间隙:开发活动之间:开发活动之间不存在明显的边界不存在明显的边界17一般步骤如下
11、:1.获取客户对系统的需求:包括标识场景(scenario)和用例(use case),建造需求模型2.用基本的需求为指南,选择类和对象(包括属性和操作)3.定义类的结构和层次4.建造对象-关系模型5.建造对象-行为模型6.利用用例/场景来复审分析模型 181.系统设计系统设计子系统划分子系统划分选择实现数据管理、界面支持和任务管理的设计策选择实现数据管理、界面支持和任务管理的设计策略略为系统设计合适的控制机制为系统设计合适的控制机制复审并考虑权衡复审并考虑权衡2.对象设计对象设计在过程级别设计每个操作的实现细节在过程级别设计每个操作的实现细节定义内部类定义内部类为类属性设计内部数据结构为类属
12、性设计内部数据结构3.消息设计消息设计 使用对象间的协作和对象使用对象间的协作和对象-关系模型,设计关系模型,设计消息模型消息模型4.复审复审 复审设计模型并在需要时迭代复审设计模型并在需要时迭代19 Booch方法方法 Rumbaugh的对象模型化技术的对象模型化技术(OMT)Coad和和Yourdon方法方法 Jacobson的的OOSE(面向对象软件工程面向对象软件工程)20 统一建模语言(Unified Modeling Language,UML):一种直观化、明确化、构建和文档化软件系统产):一种直观化、明确化、构建和文档化软件系统产物的物的可视化建模语言可视化建模语言 21 UML
13、是是Booch、OOSE和和OMT方法的结方法的结合,同时吸收了其他方法的思想合,同时吸收了其他方法的思想 UML是一种是一种语言 UML是一种是一种可视化的建模语言 UML是一种可用于是一种可用于详细描述的语言的语言 UML是一种是一种构造语言 UML是一种是一种文档化语言22 视图(视图(View):用于构造系统模型):用于构造系统模型 图(图(Diagram):用于描述视图):用于描述视图 模型元素:用于表示图的一组符号模型元素:用于表示图的一组符号23用例视图(用例视图(Use Case View):描述:描述系统应该具有的功能集系统应该具有的功能集设计视图(设计视图(Design V
14、iew):描述系:描述系统功能的内部设计和协作情况,包括统功能的内部设计和协作情况,包括静静态结构态结构和和动态行为动态行为进程视图(进程视图(Process View):描述系统的并发工作状况,包含并:描述系统的并发工作状况,包含并发与同步的线程和进程发与同步的线程和进程实现视图(实现视图(Implementation View):描述系统的实现模块(组:描述系统的实现模块(组件或者文件)及其之间的关系件或者文件)及其之间的关系部署视图(部署视图(Deployment View):描述系统的物理架构和硬件拓:描述系统的物理架构和硬件拓扑结构的节点扑结构的节点24 系统功能:用例图 静态结构:
15、类图;对象图 动态行为:状态图;时序图;协作图;活动图 物理架构:组件图;分布图 25主题域视图(view)图(diagram)结构化结构化静态视图静态视图类图(类图(class)设计视图设计视图内部结构(内部结构(internal structure)协作图(协作图(collaboration)构件图(构件图(component)用例视图用例视图用例图(用例图(use case)动态的动态的状态机视图状态机视图状态机图(状态机图(state machine)活动视图活动视图活动图(活动图(activity)交互视图交互视图顺序图(顺序图(sequence)通信图(通信图(communicat
16、ion)物理的物理的部署视图部署视图部署图(部署图(deployment)模型管理模型管理模型管理视图模型管理视图包图(包图(package)26 模型元素 模型元素指模型中的实体以及实体间相互连接的关系 部分模型元素部分模型元素注解注解类类属性属性操作操作对象:类对象:类属性属性操作操作状态状态用例用例 结点结点供应接口供应接口包包依赖依赖关联关联泛化泛化主动类主动类属性属性操作操作请求接口请求接口构件构件实现实现27 对对UML1.4进行了一些扩充。进行了一些扩充。用更为受限的通信图代替了协作图。用更为受限的通信图代替了协作图。增加了交互综述图、定时图、协议状态图、增加了交互综述图、定时图
17、、协议状态图、组成结构图等新图。组成结构图等新图。28 例子描述:例子描述:在在Web浏览器中,编写浏览器中,编写JAVA程序程序Hello,World!import java.awt.Graphics;class HelloWorld extends java.applet.Applet public void paint(Graphics g)g.drawString(Hello,World!,10,10);29HelloWorld类类HelloWorld及其相关类及其相关类HelloWorld的继承层次的继承层次30HelloWorld包包Paint的顺序图的顺序图HelloWorld构
18、件构件31 描述需求:描述需求:使用用例来确定用户需求和系统必须为用户提供的服务 静态建模静态建模:根据需求建立系统的静态模型 动态建模动态建模:描述系统的动态行为参与者用例问题陈述分析模型视图模型数据库实现模型动态模型静态模型设计模型3233实践名称实践名称描述描述用例用例(Use case)描绘一个系统外在可见的需求情况,是代表描绘一个系统外在可见的需求情况,是代表系统中各个项目相关人员之间就系统的行系统中各个项目相关人员之间就系统的行为所达成的契约为所达成的契约用户故事用户故事(user story)由客户参与编写,说明他们需要系统为他们由客户参与编写,说明他们需要系统为他们做什么,一般
19、用客户的术语编写,其长度做什么,一般用客户的术语编写,其长度约为三句话左右约为三句话左右共性:站在用户的角度看待系统、定义系统共性:站在用户的角度看待系统、定义系统;使用用户能够看懂的语言来表述使用用户能够看懂的语言来表述 34 采用场景和用例的技术,是需求获取过程采用场景和用例的技术,是需求获取过程中弥补多个具有不同背景的执行者团队之中弥补多个具有不同背景的执行者团队之间代沟的有力工具间代沟的有力工具 场景:表达了用户和系统之间的一系列交场景:表达了用户和系统之间的一系列交互,描述了一个系统实例互,描述了一个系统实例 用例:是对一类场景所进行的抽象用例:是对一类场景所进行的抽象 场景和用例两
20、者一般均用自然语言描述,场景和用例两者一般均用自然语言描述,这一形式对用户而言是易于理解的这一形式对用户而言是易于理解的35用例(use case)是Ivar Jacobson发明的.其它的中文译名有:用况、用案等.定义1:用例是对一个活动者(actor)使用系统的一项功能时所进行的交互过程的一个文字描述序列.定义2:用例是系统、子系统或类和外部参与者交互的动作序列的说明,包括可选的动作序列和会出现异常的动作序列.用例是代表系统中各个项目相关人员之间就系统的行为所达成的契约.36 1)分析员首先标识使用该系统的不同的执行者(执行者,actor),这些执行者代表使用该系统的不同的角色。每个执行者
21、可以叙述他如何使用系统,或者说他需要系统提供什么功能 2)执行者提出的每一个使用场景都是系统的一个用例的实例,一个用例描述了系统的一种用法(或一个功能),所有执行者提出的所有用例构成系统的完整的需求 注:执行者与用户是不同的两个概念,一个用户可以扮演几个角色(执行者);一个执行者可以是用户,也可以是其他系统(应用程序或设备)37(1)标识执行者标识执行者(2)标识场景)标识场景(3)标识用例标识用例(4)求精用例)求精用例(5)标识用例之间的关系)标识用例之间的关系(6)标识非功能需求)标识非功能需求(7)绘制用例图,编写详细的用例描述)绘制用例图,编写详细的用例描述38 用例图包含的模型元素
22、用例图包含的模型元素执行者执行者(actor)(actor):与系统进与系统进行交互的外部实体。可以是人行交互的外部实体。可以是人或者其它系统或者其它系统用例:用例:描述系统提供的功能描述系统提供的功能(从外部视点角度从外部视点角度)模型元素之间的关系模型元素之间的关系 执行者之间:继承关系执行者之间:继承关系 执行者与用例之间:关联关执行者与用例之间:关联关系系 用例之间:继承、扩展和包用例之间:继承、扩展和包含关系含关系39 是指与系统交互的人或其他系统,它代表是指与系统交互的人或其他系统,它代表外部实体。外部实体。使用用例并且与系统交互的任何人或物都使用用例并且与系统交互的任何人或物都是
23、执行者。是执行者。执行者代表一种执行者代表一种角色角色,而不是某个具体的,而不是某个具体的人或物。人或物。在用例图中用直线连接执行者和用例,表在用例图中用直线连接执行者和用例,表示两者之间交换信息。示两者之间交换信息。40 系统用户系统用户 与所建造的系统交互的其他系统与所建造的系统交互的其他系统 一些可以运行的进程一些可以运行的进程 硬件设备硬件设备 时钟时钟 执行者是为了完成一个事件而与系统交互的实体,执行者是为了完成一个事件而与系统交互的实体,是用户相对系统而言所演的角色。执行者不仅可以是用户相对系统而言所演的角色。执行者不仅可以由人承担,还可以是事物由人承担,还可以是事物411)其它软
24、件系统:当系统需要与其它系统交互时,)其它软件系统:当系统需要与其它系统交互时,如如ATM柜员机系统中,柜员机系统中,银行后台系统银行后台系统就是一个就是一个执行者;执行者;2)硬件设备:如果系统需要与硬件设备交互时,)硬件设备:如果系统需要与硬件设备交互时,如在开发如在开发IC卡门禁系统时卡门禁系统时,IC卡读写器卡读写器就是一就是一个执行者;个执行者;3)时钟:当系统需要定时触发时,)时钟:当系统需要定时触发时,时钟时钟就是执行就是执行者者42 在用例图中,使用泛化在用例图中,使用泛化关系来描述多个执行者关系来描述多个执行者之间的公共行为。之间的公共行为。执行者间的泛化关系执行者间的泛化关
25、系示例:示例:执行者实际上是一个类执行者实际上是一个类,因此它们之间可以存在一因此它们之间可以存在一定的关系定的关系43 需要注意:需要注意:大多数执行者在系统开发之前就已经存在大多数执行者在系统开发之前就已经存在执行者是在系统边界之外的,即它们是来自外部的;执行者是在系统边界之外的,即它们是来自外部的;任何要使用未来系统的外部软件系统就是一个执行者。任何要使用未来系统的外部软件系统就是一个执行者。可通过如下问题的提出获取和确认执行者:可通过如下问题的提出获取和确认执行者:系统完成工作后,哪一个用户组受益?谁将使用系统系统完成工作后,哪一个用户组受益?谁将使用系统的主要功能?的主要功能?谁需要
展开阅读全文