《C面向对象分析设计方法.pptx》由会员分享,可在线阅读,更多相关《C面向对象分析设计方法.pptx(42页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、会计学1C 面向对象分析设计面向对象分析设计(shj)方法方法 第一页,共42页。2什么什么什么什么(shn me)(shn me)(shn me)(shn me)是面向对象开发方法是面向对象开发方法是面向对象开发方法是面向对象开发方法面向对象技术面向对象技术(jsh)(jsh)概概述述 根据Coad 和 Yourdon 的定义,按照以下4个概念设计 和实现的系统,称为(chn wi)是面向对象的。面向对象=对象(object)+类 (classification)+继承(inheritance)+通信(communication with messages)面向对象的方法是一种运用对象、类、
2、继承、封装、聚合、面向对象的方法是一种运用对象、类、继承、封装、聚合、消息传送、多态性等概念来构造系统的软件开发方法。消息传送、多态性等概念来构造系统的软件开发方法。OOSD OOSD(Object-Oriented Software Development)法是一种把面向对象的思想应用于软件开发过程,指导开发活动的系统方法。第1页/共42页第二页,共42页。3面向对象方法面向对象方法面向对象方法面向对象方法(fngf)(fngf)(fngf)(fngf)的特点(的特点(的特点(的特点(I I I I)面向对象技术面向对象技术(jsh)(jsh)概概述述l面向对象方法按照人类的自然思维方式,面
3、对客观世界建立软件系统模型。l对象、类、继承(jchng)、封装、消息等基本概念符合人类的自然思维方式。l有利于对业务领域和系统责任的理解,有利于人员的交流。l面向对象方法对需求变化有较好的适应性l面向对象的封装机制使开发人员可以把最稳定的部分(即对象)作为构筑系统的基本单位,而把容易发生变化的部分(即属性与操作)封装在对象之内。对象之间通过接口联系,使得需求变化的影响尽可能地限制在对象的内部。第2页/共42页第三页,共42页。4面向对象方法面向对象方法面向对象方法面向对象方法(fngf)(fngf)(fngf)(fngf)的特点(的特点(的特点(的特点(IIIIIIII)面向对象技术面向对象
4、技术(jsh)(jsh)概述概述l面向对象方法支持软件复用l对象具有封装性和信息隐蔽等特性,使其容易实现软件复用。l对象类可以派生出新类,类可以产生实例对象,从而实现了对象类数据结构和操作代码的软构件(gujin)复用。l面向对象程序设计语言的开发环境一般预定义了系统动态连接库,提供大量公用程序代码,提高了开发效率和质量。l面向对象的软件系统可维护性好l系统由对象构成,对象是一个包含属性和操作两方面的独立单元,对象之间通过消息联系。l系统出错时容易定位和修改,而且不至于牵一发而动全身。第3页/共42页第四页,共42页。51.2 1.2 1.2 1.2 面向对象技术发展面向对象技术发展面向对象技
5、术发展面向对象技术发展(fzhn)(fzhn)(fzhn)(fzhn)历史历史历史历史面向对象技术面向对象技术(jsh)(jsh)概述概述l初始阶段(jidun)l1960s:Simulaprogramminglanguagel1970s:Smalltalkprogramminglanguagel发展阶段(jidun)l1980s:Objective-C,C+,Self,Flavors,etc.l成熟阶段(jidun)l1990s:Object-orientedanalysisanddesignmethodologies(Booch,OMT,OOSE,etc.),Javal1997:TheUn
6、ifiedModelingLanguage(UML)standardizedbytheObjectManagementGroup(OMG)第4页/共42页第五页,共42页。61.3 1.3 面向对象的概念面向对象的概念(ginin)(ginin)面向对象技术面向对象技术(jsh)(jsh)概概述述l l 面向对象技术的常见面向对象技术的常见(chn(chnjin)jin)术语术语Object对象Class类Attribute属性OperationMethod操作方法Encapsulation封装Inheritance继承Polymorphism多态Message消息第5页/共42页第六页,共4
7、2页。71.3 1.3 1.3 1.3 面向对象的概念面向对象的概念面向对象的概念面向对象的概念(ginin)(ginin)(ginin)(ginin)对象对象对象对象(ObjectObjectObjectObject)面向对象技术面向对象技术(jsh)(jsh)概述概述l对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,由一组属性和对这组属性进行操作的一组服务组成。l对象只描述客观事物本质的、与系统目标有关的特征,而不考虑那些非本质的、与系统目标无关(wgun)的特征。l对象的两个基本要素:属性和服务l属性是用来描述对象静态特征的一个数据项。l服务是用来描述对象动态特征(行
8、为)的一个操作序列。l对象之间通过消息通信,系统功能通过新对象的建立和对象之间的消息通信来实现。第6页/共42页第七页,共42页。81.3 1.3 面向对象的概念面向对象的概念(ginin)(ginin)类类(ClassClass)面向对象技术面向对象技术(jsh)(jsh)概述概述l类是具有相同属性和服务的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和服务两个主要部分。l同类对象具有相同的属性和方法,是指它们的定义形式(xngsh)相同,而不是说每个对象的属性值都相同。l类体现了人们认识事物的基本思维方法l分类(Classification)第7页/共42页第八
9、页,共42页。91.3 1.3 面向对象的概念面向对象的概念(ginin)(ginin)类类 vs.vs.对象对象面向对象技术面向对象技术(jsh)(jsh)概概述述EmployeenamepositionsalarystartDateendDatehire()fire()promote()salary()retire()类名属性操作王平王平项目经理6000元/月1999.6.262001.5.25hire()fire()promote()salary()retire()对象名属性操作第8页/共42页第九页,共42页。101.3 1.3 1.3 1.3 面向对象的概念面向对象的概念面向对象的概
10、念面向对象的概念(ginin)(ginin)(ginin)(ginin)类类类类 vs.vs.vs.vs.对象对象对象对象面向对象技术面向对象技术(jsh)(jsh)概概述述类与对象的比较同类对象具有相同的属性和服务,是指它们的定义形式(xngsh)相同,而不是说每个对象的属性值都相同。类是静态的,类的存在、语义和关系在程序执行前就已经定义好了。对象是动态的,对象在程序执行时可以被创建和删除。在面向对象的系统分析和设计中,并不需要逐个对对象进行说明,而是着重描述代表一批对象共性的类。第9页/共42页第十页,共42页。111.3 1.3 1.3 1.3 面向对象的概念面向对象的概念面向对象的概念
11、面向对象的概念(ginin)(ginin)(ginin)(ginin)封装封装封装封装面向对象技术面向对象技术(jsh)(jsh)概概述述l封装是把对象的属性和方法结合成一个独立的系统单位,并尽可能隐蔽对象的内部细节。l封装使对象形成两个部分:接口和实现l对用户来说,接口是可见的,实现是不可见的。l封装可以保护对象,避免用户误用,也可以保护客户端,其实现过程的改变不会影响到相应客户端的改变。l与封装密切相关的概念(ginin)是可见性,它是指对象的属性和服务允许对象外部存取和引用的程度。第10页/共42页第十一页,共42页。121.3 1.3 面向对象的概念面向对象的概念(ginin)(gin
12、in)继继承承面向对象技术面向对象技术(jsh)(jsh)概述概述l特殊类的对象(duxing)拥有其一般类的全部属性与方法,称作特殊类对一般类的继承。l与一般类/特殊类等价的其他术语l父类/子类、超类/子类、基类/派生类、l使用继承可以增加软件重用的机会l继承可分为单继承和多继承l单继承是指子类只从一个父类继承l多继承是指子类从多个父类继承第11页/共42页第十二页,共42页。131.3 1.3 面向对象的概念面向对象的概念(ginin)(ginin)单继承单继承面向对象技术面向对象技术(jsh)(jsh)概概述述交通工具陆上交通工具空中交通工具第12页/共42页第十三页,共42页。141.
13、3 1.3 面向对象的概念面向对象的概念(ginin)(ginin)多继承多继承面向对象技术面向对象技术(jsh)(jsh)概述概述交通工具陆上交通工具空中交通工具小轿车卡车两用交通工具飞机第13页/共42页第十四页,共42页。151.3 1.3 面向对象的概念面向对象的概念(ginin)(ginin)多态性多态性面向对象技术面向对象技术(jsh)(jsh)概概述述l多态是指在一般类中定义的属性或方法被特殊类继承之后,可以具有不同的数据类型或表现(bioxin)出不同的行为。GraphDraw()CircleDraw()RectangleDraw()Draw()method is overri
14、dden to supply shape-specific drawing第14页/共42页第十五页,共42页。161.3 1.3 面向对象的概念面向对象的概念(ginin)(ginin)消息消息面向对象技术面向对象技术(jsh)(jsh)概述概述l消息是对象发出的服务请求,一般包含提供服务的对象标识、服务标识、输入信息和应答信息等信息。l一个对象向另一个对象发消息请求某项服务,接收消息的对象响应该消息,激发所要求(yoqi)的服务操作,并把操作结果返回给请求服务的对象。l采用消息(而不是函数调用)这个术语的好处l更接近人们日常思维所采用的术语;l其涵义更具有一般性,如在分布式环境中。第15页
15、/共42页第十六页,共42页。17第九讲第九讲 面向对象分析设计面向对象分析设计(shj)(shj)方法方法1、面向对象技术概述 1.1 面向对象方法(fngf)的定义及特点 1.2 面向对象技术发展历史 1.3 面向对象的概念2、面向对象的开发方法(fngf)2.1 面向对象分析(OOA)2.2 面向对象设计(OOD)2.3 面向对象编码(OOP)3、面向对象建模方法(fngf)第16页/共42页第十七页,共42页。18A story(I)A story(I)l从前有两个人要学中国上乘武功轻功,一个叫大聪,另一个叫二呆。大聪头脑灵活,二呆为人老实。他们到深山里找到一位老和尚,想要和他学轻功。
16、老和尚让他们先砍一棵大树,做成练功的梅花桩,然后让他们下山各买了一个箩筐和一头小猪,再教他们简单(jindn)的武术套路。让他们做到下面的要求:l每天早晨要割青草喂饱小猪;l背着小猪在木桩上操练武术套路;l每天练完后将木桩的四周刨掉一层。l过了一个月,没见老和尚教什么轻功。大聪打听到另一座山上有个轻功高手,想去拜师学习,叫二呆一起去,二呆说才来一个月不好意思就这么离开,于是二呆就留下来了。l日复一日,二呆没感觉太辛苦,只是有点简单(jindn)而枯燥。日子过得很快,一年过去了,小猪长成大猪,粗大木桩变成小杆杆,二呆还是老样子地操练。第17页/共42页第十八页,共42页。19A story(II
17、)A story(II)l大聪回来了,大聪问二呆有没有从老和尚身上学到轻功,二呆说还没有,并问大聪有没有学到轻功,大聪说 也 没 有。但 大 聪 又 听 说 有 个 更 高 明 的 高 手(goshu),要二呆一起去学习。l于是二呆和大聪来到老和尚面前,二呆对老和尚说要跟大聪到别的地方去学轻功。老和尚一听,生气了,把二呆逼到墙角,接着用脚往二呆下盘一扫,二呆急了往上一蹬,想不到的事发生了:二呆一下蹿到了屋顶上二呆会轻功了!?l大聪看呆了。老和尚叫二呆下来,跟二呆说你可以走了。二呆下来想了一会儿,跪下感谢老和尚l后来二呆没走,继续跟老和尚学了十年,成了飞檐走壁的高师。第18页/共42页第十九页,
18、共42页。20A story(III)A story(III)l高深莫测的武功,其实就这么简单!这里有老和尚的练功方法的巧妙(qiomio)设计:小猪体重每天增加一些(35两重),木桩直径每天少一点(12毫米),都感觉不出变化,但一年下来小猪变大猪,木桩直径由几十厘米变成几厘米,脚下的功力(承受重量及稳定性)不知不觉地每天都在长进。一年后去掉大猪的负担,虽然没有上乘的轻功也应有些入门了。ll面向对象也像是上乘功夫,不是一两个月可以学成的,也需要几年的磨炼,但只要每天学习和体会一点,终可以学到面向对象方法和编程思想。第19页/共42页第二十页,共42页。21面向对象开发方法的组成面向对象开发方法
19、的组成(z chn)(z chn)面向对象开发方法面向对象开发方法 OOSD由三部分组成:OOA(Object-Oriented Analysis)面 向 对 象 的 分 析(fnx)OOD(Object-Oriented Design)面向对象的设计 OOP(Object-Oriented Program)面向对象的程序设计OOAOOA强调的是对一个系统中的对象特征和行为的定义。建立系统的三类(snli)模型。与OOA密切配合顺序实现对现实世界的进一步建模。OOP是面向对象的技术中发展最快的,使用面向对象的程序设计语言,进行编码。OOD第20页/共42页第二十一页,共42页。22面向对象开发
20、方法的组成面向对象开发方法的组成面向对象开发方法的组成面向对象开发方法的组成(z chn)(z chn)(z chn)(z chn)(I I I I)面向对象开发方法面向对象开发方法 OOA 法要解决“作什么”的问题。其基本任务就是要建立三种(sn zhn)模型:状态模型(动态模型)描述任何时刻对象的联系及其联系的改变,即时序。常用状态图,事件追踪图描述。处理模型(函数模型)描述系统内部数据的传送处理。对象模型(信息模型)定义构成系统(xtng)的类和对象,它们的属性与操作。1 1、OOAOOA法法第21页/共42页第二十二页,共42页。23面向对象开发方法的组成面向对象开发方法的组成面向对象
21、开发方法的组成面向对象开发方法的组成(z chn)(z chn)(z chn)(z chn)(IIIIIIII)面向对象开发方法面向对象开发方法 上述的三种模型各自从不同侧面反映了系统的实质性内容。一个典型的软件系统综合了上述3方面的内容:它使用数据结构(对象(duxing)模型),执行操作(动态模型),并且完成数据值的变化(功能模型)。1 1、OOAOOA法法 对任何大型系统来说,三种模型都是必不可少的。在三大模型中,最重要、最基本、最核心(hxn)的是对象模型。第22页/共42页第二十三页,共42页。24面向对象开发方法的组成面向对象开发方法的组成面向对象开发方法的组成面向对象开发方法的组
22、成(z chn)(z chn)(z chn)(z chn)(IIIIIIII)面向对象开发方法面向对象开发方法2 2、OOD OOD 法法 在需求分析的基础上,进一步解决在需求分析的基础上,进一步解决“如何作如何作”的问题,的问题,OOD OOD 法法也分为概要设计和详细设计。也分为概要设计和详细设计。概要设计:细化对象行为概要设计:细化对象行为(xngwi)(xngwi),添加新对象,认定类,添加新对象,认定类,组类库,确定外部接口及主要数据结构组类库,确定外部接口及主要数据结构详细设计:加细对象描述详细设计:加细对象描述3 3、OOP OOP 法法 使用面向对象的程序设计语言,如使用面向对
23、象的程序设计语言,如C+C+进行程序设计。进行程序设计。Coad Coad和和YourdonYourdon给出一个面向对象的定义:给出一个面向对象的定义:面向对象面向对象=对象对象+类类+继承继承+消息消息如果一个软件系统是按照这样四个概念设计和实现的,则可以如果一个软件系统是按照这样四个概念设计和实现的,则可以认为这个软件系统是面向对象的。认为这个软件系统是面向对象的。第23页/共42页第二十四页,共42页。25第九讲第九讲 面向对象分析设计面向对象分析设计(shj)(shj)方法方法1、面向对象技术概述 1.1 面向对象方法(fngf)的定义及特点 1.2 面向对象技术发展历史 1.3 面
24、向对象的概念2、面向对象的开发方法(fngf)2.1 面向对象分析(OOA)2.2 面向对象设计(OOD)2.3 面向对象编码(OOP)3、面向对象建模方法(fngf)第24页/共42页第二十五页,共42页。26面向对象分析面向对象分析OOA面向对象开发方法面向对象开发方法 面 向 对 象 分 析(fnx)OOA(Object-Oriented Analysis)的目标是完成对所求解问题的分析(fnx),确定系统“作什么”,并建立系统的模型。OOAOOA的基本任务的基本任务 运用面向对象的方法运用面向对象的方法,对问题域和系统责任进行分析和理解,找出对问题域和系统责任进行分析和理解,找出描述描
25、述(mio sh)(mio sh)它们的类和对象,定义其属性和操作,及其结构、静它们的类和对象,定义其属性和操作,及其结构、静态联系和动态联系。态联系和动态联系。第25页/共42页第二十六页,共42页。27面向对象分析面向对象分析OOA面向对象开发方法面向对象开发方法获取用户基本需求获取用户基本需求标识类和对象标识类和对象定义类的结构定义类的结构表示类表示类(对象对象)间的关系间的关系为对象行为建模为对象行为建模图1OOA分析(fnx)过程1 1,OOAOOA的分析的分析(fnx)(fnx)过程:过程:第26页/共42页第二十七页,共42页。28面向对象分析面向对象分析OOA面向对象开发方法面
26、向对象开发方法1 1,OOAOOA的分析的分析(fnx)(fnx)过程:过程:1 1、获取用户基本需求、获取用户基本需求用户与开发者之间进行充分交流,常用用户与开发者之间进行充分交流,常用User caseUser case来收集来收集和描述用户的需求。即先标识使用该系统的不同和描述用户的需求。即先标识使用该系统的不同(b tn)(b tn)的的行为者行为者(actor)(actor)。行为者所提出(t ch)的每个使用场景(或功能)称为一个用例,所有的用例则构成完整的系统需求。第27页/共42页第二十八页,共42页。29面向对象分析面向对象分析OOA面向对象开发方法面向对象开发方法确定最终对
27、象确定最终对象 可可根根据据(gnj)(gnj)以以下下原原则则确确定定:需需要要保保留留的的信信息息,需需要要的的服务。服务。从问题域或用例描述入手,发现对象。从问题域或用例描述入手,发现对象。对对象象可可能能(knng)(knng)的的形形式式有有:外外部部实实体体 、事事物物、发发生生的的事事件件、角色、组织单位、场所、构造物等。角色、组织单位、场所、构造物等。标识属性标识属性 从从本本质质上上讲讲,属属性性定定义义了了对对象象。可可从从问问题题(wnt)(wnt)的的陈陈述述中中或或通通过过对对类的理解而标识出属性。类的理解而标识出属性。定义操作定义操作 操操作作定定义义了了对对象象的
28、的行行为为并并以以某某种种方方式式修修改改对对象象的的属属性性。操作分为:对数据的操作,计算操作,控制操作。操作分为:对数据的操作,计算操作,控制操作。2 2、标识类和对象、标识类和对象标标识识类类与与对对象象是是一一致致的的。在确定系统的用例后,可标识类及类的属性和操作。第28页/共42页第二十九页,共42页。30面向对象分析面向对象分析OOA面向对象开发方法面向对象开发方法3 3、定义类的结构、定义类的结构 类的结构有:类的结构有:一般一般特殊特殊(generalization-specialization)(generalization-specialization)结构结构 整体整体(
29、zhngt)(zhngt)部分部分(whole-part)(whole-part)结构结构 用“对象-关系模型”描述了系统(xtng)的静态结构。5、建立对象-行为模型 描述了系统(xtng)的动态行为。4 4、建立类、建立类(对象对象(duxing)(duxing)间的关系间的关系第29页/共42页第三十页,共42页。31第九讲第九讲 面向对象分析设计面向对象分析设计(shj)(shj)方法方法1、面向对象技术概述 1.1 面向对象方法的定义(dngy)及特点 1.2 面向对象技术发展历史 1.3 面向对象的概念2、面向对象的开发方法 2.1 面向对象分析(OOA)2.2 面向对象设计(OO
30、D)2.3 面向对象编码(OOP)3、面向对象建模方法第30页/共42页第三十一页,共42页。32面向对象设计面向对象设计(shj)OOD面向对象开发方法面向对象开发方法OOD是面向对象分析到实现的一个(y)桥梁。面向对象分析 建立问题域模型(“做什么”)面向对象设计 建立求解域模型(“怎么做”)面向对象的设计面向对象的设计OODOOD(Object-OrientedDesignObject-OrientedDesign)是面向对象方法)是面向对象方法(fngf)(fngf)在软件设计阶段应用与扩展的结果。在软件设计阶段应用与扩展的结果。OODOOD与与OOAOOA没有明显的分界,采用相同的符
31、号。没有明显的分界,采用相同的符号。第31页/共42页第三十二页,共42页。33面向对象设计面向对象设计(shj)OOD面向对象开发方法面向对象开发方法OODOOD模型模型(mxng)(mxng):OOD模型(mxng)分为4个部分一、面向对象设计准则:一、面向对象设计准则:1 1)模块化)模块化 2 2)抽象)抽象 3 3)信息隐藏)信息隐藏 4 4)弱耦合)弱耦合 5 5)强内聚)强内聚 6 6)可重用)可重用二、面向对象设计的主要内容有二、面向对象设计的主要内容有:1 1)问题域部分的设计)问题域部分的设计 2 2)人机交互部分的设计)人机交互部分的设计 3 3)任务管理部分的设计)任务
32、管理部分的设计 4 4)数据管理部分的设计)数据管理部分的设计PDCPDC问题域问题域组元组元HICHIC人机界人机界面面组组元元TMCTMC任务管理任务管理组元组元DMCDMC数据管理数据管理组元组元主题层主题层对象层对象层结构层结构层属性层属性层服务层服务层图图22设计模型设计模型第32页/共42页第三十三页,共42页。34面向对象设计面向对象设计(shj)的过程的过程面向对象开发方法面向对象开发方法l1,设计对象与类l在OOA对象模型的基础上,具体设计对象与类的属性(shxng)、服务操作,设计对象与类的各种外部联系的实现结构,设计消息与事件的内容和格式等。l类和对象的设计应当充分利用预
33、定义的系统类库或其他来源的现有的类,将它们加到解决方案中去,并采用继承、复用、演化等方法设计所需要的新类。第33页/共42页第三十四页,共42页。35面向对象设计面向对象设计(shj)的过程的过程面向对象开发方法面向对象开发方法l2,设计系统结构l设计系统结构的主要任务(rnwu)是设计组件与子系统,以及它们相互之间的静态和动态关系。l软件系统的结构通常由两种方式:层次结构和块状结构。l3,设计问题论域子系统l问题论域子系统负责实现领域的业务服务,如一个教学管理系统的业务领域是教学管理,向用户提供课程管理、成绩管理、教学计划安排等服务。l问题论域子系统应包括与应用领域的业务直接有关的全部类和对
34、象。第34页/共42页第三十五页,共42页。36面向对象设计面向对象设计(shj)的过程的过程面向对象开发方法面向对象开发方法l4,设计人机交互子系统l设计人机交互子系统的主要任务是设计用户界面,包括用户分类;描述交互场景;设计人机交互操作命令、命令层次(cngc)和操作顺序;设计详细交互过程;设计人机交互类,如窗口、对话框、菜单等。l人机交互子系统中的类与所使用的操作系统和编程语言密切相关,当代面向对象的程序设计语言都提供了丰富的预定义动态连接库,如C+语言的MFC类库等。l设计人机交互子系统时,通常只要从预定义的动态连接库中选择合适的类,在从这些类派生出实现人机交互所需的类。第35页/共4
35、2页第三十六页,共42页。37面向对象设计面向对象设计(shj)的过程的过程面向对象开发方法面向对象开发方法l5,设计(shj)数据管理子系统l数据管理子系统负责数据的管理,包括数据的录入、操纵、检索、存储,以及永久性数据的访问控制等。l设计(shj)数据管理子系统的主要任务是:确定数据管理的方法,设计(shj)数据库与数据文件的逻辑结构和物理结构,设计(shj)实现数据管理的对象类。这些类应当拥有对数据的存储操作、数据输入与输出操作、检索操作、安全性一致性维护操作等。l目前常用的数据管理方法有:数据文件管理、关系数据库、面向对象数据库,其中使用最广泛的是关系数据库。第36页/共42页第三十七
36、页,共42页。38面向对象设计面向对象设计(shj)的过程的过程面向对象开发方法面向对象开发方法l6,设计任务管理子系统l任务管理子系统的职责是协调和管理进程,尤其并发进程。l设计任务管理子系统就是要设计软件系统的内部模块运行的管理机制,即把事件驱动、时钟驱动、优先级管理、关键任务和协调任务等系统管理任务分配给硬件和软件执行。l7,设计优化,提高系统的性能(xngnng)l系统设计结果需要优化,尽可能地提高系统的性能(xngnng)和质量。l根据实际情况制定一个设计优化的折衷方案,进行系统的优化,提高系统的性能(xngnng)和质量。第37页/共42页第三十八页,共42页。39第九讲第九讲第九
37、讲第九讲 面向对象分析设计面向对象分析设计面向对象分析设计面向对象分析设计(shj)(shj)(shj)(shj)方法方法方法方法1、面向对象技术概述 1.1 面向对象方法的定义及特点 1.2 面向对象技术发展历史 1.3 面向对象的概念2、面向对象的开发方法 2.1 面向对象分析(OOA)2.2 面向对象设计(shj)(OOD)2.3 面向对象编码(OOP)3、面向对象建模方法第38页/共42页第三十九页,共42页。40面向对象编码面向对象编码(bin m)面向对象开发方法面向对象开发方法1.面向对象编程(OOP)面向对象编程中,程序被看作相互协作的对象集合,每个对象都是某个类的实例。所有的
38、类构成一个通过继承关系相联系的层次结构。面向对象的语言常常具有以下特征:对象生成功能、消息传递机制(jzh)、类和遗传机制(jzh)。(1)过程化编程模式:参数输入代码结果输出为实现某个功能。参数被传入某个处理过程,最后传回计算结果。(2)面向对象编程模式:对象数据结构对象属性对象操作。操作对象属性和方法实现某个功能。第39页/共42页第四十页,共42页。41面向对象编码面向对象编码(bin m)面向对象开发方法面向对象开发方法2.面向对象编程语言面向对象的语言包含4个基本的分支:基于Smalltalk的:包括Smalltalk的五个版本(bnbn),以Smalltalk为代表。基于C的:包括
39、ObjectC、C+、Java。基于LISP的:包括Flavors、XLISP、CLOS。基于Pascal的:包括ObjectPascal、TurboPascal、Eiffel、Ada95、Delphi。除了上述的面向对象的语言之外,还有一些语言也被认为是基于对象(Object-based)的,如Alphard、CLU、Euclid、Gypsy、Mesa、Modula。第40页/共42页第四十一页,共42页。42面向对象的方法面向对象的方法(fngf)的代表性成果有:的代表性成果有:面向对象开发方法面向对象开发方法1、B.Henderson-sellers和J.m.Edwards提出的面向对象软件生存期喷泉模型及面向对象的系统(xtng)开发方法。2、G.Booch提出的面向对象的开发方法。3、P.Coad和E.Yourd提出的OOA和OOD法。4、J.Rumbaugh等人提出的对象建模技术(OMT)。5、Jacobson提出的面向对象的软件工程(OOSE)。6、G.boochJ.RumboughJacobson等人在Booch方法、OMT和OOSE的基础上推出了统一建模语言UML。第41页/共42页第四十二页,共42页。
限制150内