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