




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Error! No text of specified style in document.键入公司名称软件开发方法典型的面向对象开发方法概述键入作者姓名2010/6/30在此处键入文档的摘要。摘要通常是对文档内容的简短总结。在此处键入文档的摘要。摘要通常是对文档内容的简短总结。摘要软件作为系统的重要元素,是最复杂、最具智慧型的人类产品。软件是一种无形的媒介,开发人员通常难以精确估计它的特性。除了非常小的系统之外,软件开发是需要一组人员共同努力才能完成,而人的因素又会进一步使问题复杂化。虽然软件开发的工具越来越先进,人们的经验也越来越丰富,但是需要解决的问题却越来越复杂。人们发现开发出的软件系统常常出现开发周期长,费用超过预算,最终产品又不能满足用户需求,系统的可维护性差,产生软件危机。软件工程的方法就是基于软件危机的问题提出来的。面向对象的方法更接近于人类的自然思维。人类在认识和理解现实世界中普遍运用的三个构造法则是区分对象及其属性、区分整体对象及其组成部分、区分及形成不同对象类。而面向对象正是基于对象及属性、类属及成员、整体及其部分这些概念基础之上的。因而它必然更容易被理解和运用。面向对象的方法将对象的属性及服务视为一个整体。这更符合客观世界的规律,从而使其理解与实现起来更加容易,进一步减少维护的费用。继承的方法一方面符合客观世界的规律,一方面加强代码重用的可能性,以便提高软件的开发效率。信息隐蔽原理使系统在变化的环境中有良好的适应性,从而使整个系统更加稳定和易于维护。总之,面向对象的方法一方面更易于人们理解并映射现实世界,另一方面可以提高软件开发效率、可靠性及可维护性。关键词:面向对象方法;结构化分析与设计方法AbstractSoftware as an important element of the system is the most complex, most intelligent human products. Software is an intangible medium, developers often difficult to accurately estimate its characteristics. In addition to very small systems, the software development is a team needs to work together to complete, but human factors will further complicate the issue. Although more and more advanced software development tools, experience more and more rich people, but the need to address the problems are more complex. Was found to develop software systems often appear long development cycle, cost more than the budget, the final product can not meet user requirements, system maintainability, resulting in software crisis. In summary, object-oriented approach on the one hand it is easier to understand and map the real world, on the other hand can improve software development efficiency, reliability and maintainability.Keywords Object-oriented; Structured Analysis and Design不要删除行尾的分节符,此行不会被打印10- -目录目录摘要IAbstractII第1章 引言2第2章 六种典型的面向对象开发方法32.1 OMT/Rumbaugh32.2 OOD/Booch32.3 RDD/Wirfs-Brock42.4 OOAD/Coad-Yourdon42.5 OOSE/Jacobson52.6 VMT/IBM62.7 六种方法的比较6第3章 从面向对象分析到面向对象设计83.1 从面向对象分析(OOA)到面向对象设计(OOD)83.2 面向对象设计(OOD)基本原理9千万不要删除行尾的分节符,此行不会被打印。在目录上点右键“更新域”,然后“更新整个目录”。打印前,不要忘记把上面“Abstract”这一行后加一空行第1章 引言随着计算机科学的发展和应用领域的不断扩大,对计算机技术的要求越来越高。特别是当计算机硬件有了飞速发展之后,各种应用领域对软件提出了更高的要求。结构化程序设计语言和结构化分析与设计已无法满足用户需求的变化。发展软件质量,缩短软件开发周期,发展软件可靠性、可扩充性和可重用性迫使软件界人士不断研究新方法、新技术,探索新途径。面向对象的方法是一种分析方法、设计方法和思维方法。面向对象方法学的出发点和所追求的基本目标是使人们分析、设计与实现一个系统的方法尽可能接近人们认识一个系统的方法。也就是使描述问题的问题空间和解决问题的方法空间在结构上尽可能一致。其基本思想是:对问题空间进行自然分割,以更接近人类思维的方式建立问题域模型,以便对客观实体进行结构模拟和行为模拟,从而使设计出的软件尽可能直接地描述现实世界,构造出模块化的、可重用的、维护性好的软件,同时限制软件的复杂性和降低开发维护费用。面向对象程序设计方法起源于六十年代末期的语言SIMULA67,到了七十年代末期,软件行业正受到软件危机的困扰,结构化的开发方法不能够很好地解决软件危机。面向对象语言Smalltalk的出现,进一步发展和完善了面向对象的程序设计语言,从此面向对象也和开发方法开始结合,出现了面向对象的开发方法。自80年代后期以来,相继出现了多种面向对象开发方法,现将其中几种典型的方法作一个简介和比较。第2章 六种典型的面向对象开发方法2.1 OMT/RumbaughOMT1(Object Modeling Technique)方法最早是由Loomis,Shan和Rumbaugh在1987年提出的,曾扩展应用于关系数据库设计。Jim Rumbaugh在1991年正式把OMT应用于面向对象的分析和设计。这个方法是在实体关系模型上扩展了类、继承和行为而得到的。OMT覆盖了分析、设计和实现三个阶段,它包括一组相互关联的概念:类(class)、对象(object)、一般化(generalization)、继承(inheritance)、链(link)、链属性(link attribute)、聚合(aggregation)、操作(operation)、事件(event)、场景(scene)、属性(attribute)、子系统(subsystem)、模块(module)等。OMT方法包含分析、系统设计、对象设计和实现四个步骤,它定义了三种模型,这些模型贯穿于每个步骤,在每个步骤中被不断地精化和扩充。这三种模型是:对象模型:用类和关系来刻画系统的静态结构;动态模型:用事件和对象状态来刻画系统的动态特性;功能模型:按照对象的操作来描述如何从输入给出输出结果。分析的目的是建立可理解的现实世界模型。系统设计确定高层次的开发策略。对象设计的目的是确定对象的细节,包括定义对象的界面、算法和操作。实现对象则在良好的面向对象编程风格的编码原则指导下进行。2.2 OOD/BoochOOD3(Object Oriented Design)方法是Grady Booch从1983年开始研究,1991年后走向成熟的一种方法。OOD主要包括下述概念:类(class)、对象(object)、使用(uses)、实例化(instantiates)、继承(inherits)、元类(meta class)、类范畴(class category)、消息(message)、域(field)、操作(operation)、机制(mechanism)、模块(module)、子系统(subsystem)、过程(process)等。其中,使用及实例化是类间的静态关系,而动态对象之间仅有消息传递的连接。元类是类的类。类范畴是一组类,它们在一定抽象意义上是类同的。物理的一组类用模块来表达。机制是完成一个需求任务的一组类构成的结构。Booch方法在面向对象的设计中主要强调多次重复和开发者的创造性。方法本身是一组启发性的过程式建议。OOD的一般过程如下:(1)在一定抽象层次上标识类与对象;(2)标识类与对象的语义;(3)标识类与对象之间的关系(如继承、实例化、使用等);(4)实现类与对象。2.3 RDD/Wirfs-BrockRDD2(Responsibility-Driven Design)方法是Wirfs-Brock在1990年提出的。这是一个按照类、责任以及合作关系对应用进行建模的方法。首先定义系统的类与对象,然后确定系统的责任并划分给类,最后确定对象类之间的合作来完成类的责任。这些设计将进一步按照类层次、子系统和协议来完善。RDD方法主要包含以下概念:类(class)、继承(inheritance)、责任(responsibility)、合作(collaboration)、合同(contract)、子系统(subsystem)。对每个类都有不同的责任或角色以及动作。合作是为完成责任而需要与之通信的对象集合。责任进一步精化并被分组为合同。合同又进一步按操作精化为协议。子系统是为简化设计而引入的,是一组类和低级子系统,也包含由子系统中的类及子系统支持的合同。RDD分为探索阶段和精化阶段:(1)探索阶段:确定类、每个类的责任以及类间的合作;(2)精化阶段:精化类继承层次、确定子系统、确定协议。RDD按照类层次图、合作图、类规范、子系统规范、合同规范等设计规范来完成实现。2.4 OOAD/Coad-YourdonOOAD3(Object-Oriented Analysis and Design)方法是由Peter Coad和Edward Yourdon 在1991年提出的。这是一种逐步进阶的面向对象建模方法。在OOA中,分析模型用来描述系统的功能,主要包括以下概念:类(class)、对象(object)、属性(attribute)、服务(service)、消息(message)、主题(subject)、一般/特殊结构(Gen-Spec-Structure)、全局/部份结构(Whole-Part-Structure)、实例连接(instance connection)和消息连接(message connection)等。其中,主题是指一组特定的类与对象。OOA使用了基本的结构化原则,并把它们同面向对象的观点结合起来。OOA完成系统分析,包括以下五个步骤:确定类与对象、标识结构、定义主题、定义属性和定义服务。OOA本质上是一种面向对象的方法,适用于小型系统的开发。OOD负责系统设计,包括以下四个步骤:(1)设计问题域(细化分析结果);(2)设计人机交互部分(设计用户界面);(3)设计任务管理部分(确定系统资源的分配);(4)设计数据管理部分(确定持久对象的存储)。2.5 OOSE/JacobsonOOSE3(Object-Oriented Software Engineering)是Ivar Jacobson在1992年提出的一种使用事例驱动的面向对象开发方法。OOSE主要包括下列概念:类(class)、对象(object)、继承(inherits)、相识(acquaintance)、通信(communication)、激励(stimuli)、操作(operation)、属性(attribute)、参与者(actor)、使用事例(use case)、子系统(subsystem)、服务包(service package)、块(block)、对象模块(object module)。相识表示静态的关联关系,包括聚合关系。激励是通信传送的消息。参与者是与系统交互的事物,它表示所有与系统有信息交换的系统之外的事务,因此不关心它的细节。参与者与用户不同,参与者是用户所充当的角色。参与者的一个实例对系统做一组不同的操作。当用户使用系统时,会执行一个行为相关的事物系列,这个系列是在与系统的会话中完成的,这个特殊的系列称为使用事例,每个使用事例都是使用系统的一条途径。使用事例的一个执行过程可以看作是使用事例的实例。当用户发出一个激励之后,使用事例的实例开始执行,并按照使用事例开始事物。事务包括许多动作,事务在收到用户结束激励后被终止。在这个意义上,使用事例可以被看作是对象类,而使用事例的实例可以被看作是对象。OOSE开发过程中有以下五种模型,这些模型是自然过渡和紧密耦合的:需求模型包括由领域对象模型和界面描述支持的参与者和使用事例。对象模型是系统的概念化的、容易理解的描述。界面描述刻画了系统界面的细节。需求模型从用户的观点上完整地刻画了系统的功能需求,因此按这个模型与最终用户交流比较容易。分析模型是在需求模型的基础上建立的。主要目的是要建立在系统生命期中可维护、有逻辑性、健壮的结构。模型中有三种对象。界面对象刻画系统界面。实体对象刻画系统要长期管理的信息和信息上的行为。实体对象生存在一个特别的使用事例中。第三种是按特定的使用事例作面向事务的建模的对象。这三种对象使得需求的改变总是局限于其中一种。设计模型进一步精化分析模型并考虑了当前的实现环境。块描述了实现的意图。分析模型通常要根据实现作相应的变化。但分析模型中基本结构要尽可能保留。在设计模型中,块进一步用使用事例模型来阐述界面和块间的通信。实现模型主要包括实现块的代码。OOSE并不要求用面向对象语言来完成实现。测试模型包括不同程度的保证。这种保证从低层的单元测试延伸到高层的系统测试。2.6 VMT/IBMVMT(Visual Modeling Technique)方法是IBM公司于1996年公布的。VMT方法结合了OMT、OOSE、RDD等方法的优点,并且结合了可视化编程和原型技术。VMT方法选择OMT方法作为整个方法的框架,并且在表示上也采用了OMT方法的表示。VMT方法用RDD方法中的CRC(Class-Responsibility-Collaboration)卡片来定义各个对象的责任(操作)以及对象间的合作(关系)。此外,VMT方法引入了OOSE方法中的使用事例概念,用以描述用户与系统之间的相互作用,确定系统为用户提供的服务,从而得到准确的需求模型。VMT方法的开发过程分为三个阶段:分析、设计和实现。分析阶段的主要任务是建立分析模型。设计阶段包括系统设计、对象设计和永久性对象设计。实现阶段就是用某一种环境来实现系统。2.7 六种方法的比较OMT方法覆盖了应用开发的全过程,是一种比较成熟的方法,用几种不同的观念来适应不同的建模场合,它在许多重要观念上受到关系数据库设计的影响,适合于数据密集型的信息系统的开发,是一种比较完善和有效的分析与设计方法。Booch方法并不是一个开发过程,只是在开发面向对象系统时应遵循的一些技术和 原则。Booch方法是从外部开始,逐步求精每个类直到系统被实现。因此,它是一种分治法,支持循环开发,它的缺点在于不能有效地找出每个对象和类的操作。RDD是一种用非形式的技术和指导原则开发合适的设计方案的设计技术。它用交互 填写CRC卡片的方法完成设计,对大型系统设计不太适用。RDD采用传统的方法确定对象类,有一定的局限性。另外,均匀地把行为分配给类也十分困难。在OOAD方法中,OOA把系统横向划分为五个层次,OOD把系统纵向划分为四个部分,从而形成一个清晰的系统模型。OOAD适用于小型系统的开发。OOSE能够较好地描述系统的需求,是一种实用的面向对象的系统开发方法,适合于商务处理方面的应用开发。VMT基于现有面向对象方法中的成熟技术,采用这些方法中最好的思想、特色、观点以及技术,并把它们融合成一个完整的开发过程。因此VMT是一种扬长避短的方法,它提供了一种实用的能够处理复杂问题的建模方法和技术。第3章 从面向对象分析到面向对象设计 从OOA到OOD是对现实世界的进一步建模。3.1 从面向对象分析(OOA)到面向对象设计(OOD)从概念上,OOA主要是对现实世界的问题空间建模,其分析侧重于整体,较为粗糙(粒度较大)的研究。而OOD则要求对特定的解空间建模,通常OOD 又可分为概要的(或总体的)OOD 和详细的OOD两个阶段。OOA是完全独立于编程语言,概要的OOD 仍保持较大部分独立于编程语言的特点、详细的OOD则与编程语言有密切关系。显然,若能采用面向对象的编程语言,会更有利于OOD的编程模块的设计。在面向对象系统中,模块、数据结构、接口等都集中地体现在类和类层次结构中,系统开发的全过程实际上都与类和类层次结构直接相关,因为它们正是一个面向对象系统的基础与核心。例如,上面介绍的Goad方法尽管没有引入类和类层次结构的术语,但事实上已经在分类结构、属性、服务、消息关联等概念中,体现了类和类层次结构的基本特征。在面向对象系统中,虽然可以用类和类层次结构来统一作为各个开发阶段的工作对象,但仍然有必要在抽象程度和层次上加以明确的区分,以利于把握重点,提高系统开发的效率。从这个意义上讲,围绕类和类层次结构,面向对象系统开发的各个阶段承担着不同层次的任务。(1)分析阶段:通过对象的认定,确定问题空间中应当存在的类和类层次结构;(2)设计阶段:通过类的认定和类层次结构的组织,确定解空间中应当存在的类和类层次结构,并确定外部接口和主要的数据结构。(3)编码阶段:实现或重用类和类层次结构,包括增加必要的内部方法和数据结构;(4)维护阶段:根据维护需要,回复到上述阶段,以递增的方式对相应的类和类层次进行扩充和修改。因此OOD是采用面向对象概念,以类和类层次结构为工作对象的软件设计方法,它是以抽象数据类型实现的结构化集合的软件系统。类是抽象数据的实现而不是抽象数据类型本身,集合隐含着类是作为构成软件系统的模块,而且可以独立于系统的定义。因而,同一个类可用于不同的系统,而对要设计的系统则可选择适合的类所组成,一旦这些类被选中,它们之间就建立重要的关系(即类层次关系)。OOD的主要任务之一就是在认定对象的基础上,把对象的特征抽象到一个类中
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025保健品区域独家销售代理合同范本
- 2025版双方新能源汽车研发生产合同协议
- 2025版片石石材开采与运输一体化合同协议书范本
- 2025版商业承兑汇票居间服务与乡村振兴战略合作合同
- 2025年度新能源发电项目电力改造合同范本
- 2025版体育产业新员工保密及赛事信息保护合同范例
- 2025办公场所租赁合同:全包式办公场所租赁管理合同
- 2025年售楼部环境绿化养护合同
- 2025大客户在线教育平台合作合同
- 2025年度道路施工围挡定制安装服务协议
- 2025海航航空食品(北京)有限公司招聘260人笔试参考题库附答案解析
- 2025至2030中国压力袜(弹性袜)行业项目调研及市场前景预测评估报告
- 房屋抵押的合同(标准版)
- 中国土地荒漠化课件
- GA/T 2160-2024法庭科学资金数据检验规程
- DB35∕T 1844-2019 高速公路边坡工程监测技术规程
- 720全景照片制作方案及发布流程
- 工作责任心主题培训ppt课件(PPT 26页)
- 除尘器基础知识培训资料(54页)ppt课件
- 完整解读新版《英语》新课标2022年《义务教育英语课程标准(2022年版)》PPT课件
- 2011版义务教育生物课程标准word版
评论
0/150
提交评论