您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 项目/工程管理 > 面向对象分析与设计综述
面向对象分析与设计综述摘要:OO(面向对象)是当前计算机界关心的重点,而OOA(面向对象分析方法)和OOD(面向对象设计)是面向对象软件开发生命周期中两个重要的阶段。而UML作为一种功能强大的、面向对象的可视化系统分析的建模语言,它采用一整套成熟的建模技术,广泛地适用于各个应用领域。关键字:OO,OOA,OOD,UMLAbstract:OO(object-oriented)wereconcernedaboutthefocusofthecurrentcomputer,whiletheOOA(object-orientedanalysis)andOOD(object-orienteddesign)istheobject-orientedsoftwaredevelopmentaretwoimportantstagesinthelifecycle.UMLasapowerfulobjectorientedvisualizationsystemanalysis,modelinglanguage,itUSESasetofmaturemodelingtechnology,widelyapplicabletovariousapplications.Keywords:OO,OOA,OOD,UML一、引言OO(面向对象)是当前计算机界关心的重点,它是90年代软件开发方法的主流。面向对象的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围。如数据库系统、交互式界面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域。随着计算机硬件的迅猛发展,软件开发方法也不断推陈出新,面向对象(OO)方法就是在结构化方法、信息建模方法等基础上发展起来的。OO方法认为现实世界由一组对象构成,对象间的分工合作构成了现实世界运行,它利用封装、继承、多态等技术对软件系统(简称系统)进行高度抽象。OO方法的发展过程与传统的结构化方法完全相反,人们首先从面向对象编程(OOP)中认识到了OO的独到之处,进而把它引进到分析设计阶段。但这样的开发方法使得分析设计与程序实现无法平滑过渡,对分析设计和实现的连续性,对软件的重用、维护、测试等工作都带来了很大困难。采用全过程的OO开发方法是一个最恰当的办法,可以保证系统开发的完整性和一致性。但在实际应用中由于面向对象的数据库产品还未真正成熟,关系数据库依然是我们系统开发的必然选择,这就导致难以在数据库应用系统的开发全过程应用OO技术,所以必须将面向对象分析(OOA)和面向对象设计(OOD)的结果向关系数据库转换的规则和相应算法。OOA(面向对象分析方法)和OOD(面向对象设计)是面向对象软件开发生命周期中两个重要的阶段,OOA活动涉及的是语义对象,强调的是对问题和需求的调查研究,而OOD活动涉及的是语义对象,接口对象,应用对象和实用库对象,强调的是满足需求在概念上的解决方案。随着OOP(面向对象编程)向OOD(面向对象设计)和OOA(面向对象分析)的发展,最终形成面向对象的软件开发方法OMT。这是一种自底向上和自顶向下相结合的方法,而且它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数据结构。所以OMT彻底实现了PAM没有实现的目标。UML是Booch,Objectory和OMT方法的结合,并且是这三者直接的向上兼容的后继。同时它还吸收了大量方法学家的思想,这些先进的面向对象的思想统一为实现公共的、稳定的、表达能力强的面向对象方法提供了基础。UML作为一种功能强大的、面向对象的可视化系统分析的建模语言,它采用一整套成熟的建模技术,广泛地适用于各个应用领域。它的各个模型可以帮助开发人员更好地理解业务流程,建立更可靠、更完善的系统模型。二、面向对象的方法OOA&OODOOA和OOD的理论和技术逐步形成,软件开发方法层出不穷,其中最为流行的是3种模型与5个层次的分析方法。模型可以作为实现问题而建立的一种抽象描述,可以帮助分析员、设计者及用户清楚地表述抽象的概念,表述现实世界中各实体的关系。而面向对象建模技术(OMT)得到的模型包含对象的3要素,即静态结构(对象模型)、交互次序(动态模型)、数据变换(功能模型)。其中,对象模型描述了现实世界中(类-对象)以及它们之间的关系,表示了目标系统的静态数据结构,定义了业务的实体。动态模型主要用来描述对象之间的动态合作关系以及合作过程中的行为次序,规定了对象模型中的对象的合法变化序列,明确规定了什么时候做。功能模型表示变化的系统的功能性质,它指明了系统应该做什么,并对系统业务功能进行分类界定,使业务系统分解成若干个子系统,再将子系统拆成若干个模块,直至分解到原子业务项。OOA(Object-OrientedAnalysis,面向对象分析方法)和OOD(Object-OrientedDesign,面向对象设计)是面向对象软件开发生命周期中两个重要的阶段,OOA活动涉及的是语义对象,而OOD活动涉及的是语义对象,接口对象,应用对象和实用/库对象,这种区分OOA和OOD对象的方法在大多数情况下是正确的。但是,在分析阶段,一个好的规格说明也应涉及到用户接口,控制机制等各方面的内容,因此,在OOA阶段,不仅该得到语义对象,也应该得到接口对象和应用对象。这些对象通过OOA中的对象识别和精化过程得到。在OOA阶段的主要任务是识别和精化对象,OOD阶段的主要任务是构造类和建立系统结构。OOA面向对象分析(主要用于完成系统分析)。面向对象分析的关键,是识别出问题域内的对象,并分析它们之间的关系,最终建立起问题域简洁、精确、可理解的正确模型。面向对象分析建模需要建立的是软件系统的用户领域模型,需要着重了解的是该软件系统的需求概念与术语,其分析内容是现实世界中的实体对象和各对象之间的关系,并不涉及编程概念。步骤为:(1)定义主题:发现并标识对象与类:进行类及对象的发现及描述。(2)标识服务:目的在于定义对象的行为之间的消息链接。(3)标识结构:包括上述的一般/特殊结构和局/部分结构。(4)标识属性:对于每个对象,都需要找出在目标系统中对象所需要的属性,而后将属性安排到适当的位置,找出实例链接,最后进行检查。OOD面向对象设计(主要负责系统设计)。设计建模需要把分析阶段的结果扩展成技术解决方案,需要建立的是软件系统的技术构造模型。从OOA到OOD不是转换;而是调整和增补。增补人机交互部分、构建及部属部分、控制驱动部分、数据管理部分。过程为:(1)设计数据管理子系统:核心是数据存储,常用的存储技术有文件管理、关系数据库管理和面向对象数据库管理。(2)设计任务管理子系统:主要是对系统各种任务进行选择和调整的过程。(3)构建问题域子系统:对分析的问题域模型进行需求调整、类的重用、增加一般化类建立协议等。(4)设计人机交互子系统:包括用户界面风格,命令结构层次关系等内容的设计。这种方法,概念简单,易于掌握。但是对每个对象的功能和行为的描述不很全面,对象模型的语义表达能力不是太强。三、UML面向对象分析设计的一般过程标准建模语言UML适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段:从需求规格描述直至系统完成后的测试和维护。但需要注意的是,UML是一种建模语言而不是方法,这是因为UML中没有过程的概念,而过程正是方法的一个重要组成部分。UML本身独立于过程,这意味着用户在使用UML进行建模时,可以选用任何适合的过程。然而,使用UML建模仍然有着大致统一的过程框架,该框架包含了UML建模过程中的共同要素,同时又为用户选用与其所开发的工程相适合的建模技术提供了很大的自由度。运用UML进行面向对象的系统分析设计,其过程通常由以下3个部份组成:(1)识别系统的用例和角色首先对项目进行需求调研,依据项目的业务流程图和数据流程图以及项目中涉及的各级操作人员,通过分析,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的联系,再使用UML建模工具画出系统的用例图,同时,勾画系统的概念层模型,最后借助UML建模工具描述概念层类图和活动图。(2)进行系统分析,并抽取类系统分析的任务是找出系统的所有需求并加以描述,同时建立特定领域模型。建立域模型有助于开发人员考察用例,从中抽取出类,并描述类之间的关系。(3)系统设计,并设计类及其行为设计阶段由结构设计和详细设计组成。其中,结构设计是高层设计,其任务是定义包(子系统),包括包间的依赖关系和主要通信机制,包有利于描述系统的逻辑组成部分以及各部分之间的依赖关系;详细设计就是要细化包的内容,清晰描述所有的类,同时使用UML的动态模型描述在特定环境下这些类的实例的行为。四、用UML来描述所开发的软件UML定义了以下几种图来从不同的角度的描述我们的模型:(1)usecase图(usecasediagram)简而言之,一个usecase就是存在于用户和计算机系统之间的一个典型的交互过程.通过usecase,用户和系统分析员可以相互沟通,来分析用户的需求。Use-case图的主要图形元素有Actor和usecase。一个Use-case反映系统要完成的一个功能。(2)类图(classdiagram)一个classdiagram描述了在系统中的对象类型和存在于它们之间的静态关系。存在于类之间的关系有:关联(As-sociation),继承(Inheritance),聚合(Aggregation).classdiagram图用不同的图形符号来描述这种关系。Classdiagram也出了一个对象的属性和操作。(3)行为图(behaviordiagram)1状态图(statechartdiagram)它描述了一个特定的对象的所有可到达的状态和激发对象状态发生变化的事件.它用于描述单个对象的在系统中的整个生命周期过程。2活动图(activitydiagram)它主要结合了以下几种技术的思想:JimOdell的事件图的状态建模技术和Petri网.这些图在描述与工作流有关的问题和大量并发处理的过程非常有效。·3事件图(sequencediagram)它描述了在系统中各个对象随时间的变化相互调用的过程。在描述系统的动态行为,sequencediagram是一种很好的工具。4协作图(collaborationdiagram)它同sequencediagram一样是描述在系统中的对象之间相互调用的过程.但反映这种调用笑系的方式不同于前者。(4)实现图(implementationdiagram)1组成图(componentdiagram)组成图描述了软件系统中各软件成分之间的依赖关系.如源代码,二进制目标代码和最后生成的可执行文件之间的依赖关系‘·2装配图(deploymentdiagram)该图描述了存在于系统中的软件和硬件的物理关系。它是一个很好的工具,用于描述在分布式系统中的各个组成和对象是如何分布的,五、用面向对象的方法分析设计医院收费信息系统1、功能模型(如图1)对系统的业务进行分类,整体上分为划价和查询统计两个子系统。系统设计的目标是功能完备,智能化,尽最大可能让操作员减少操作。治疗单划分子系统查询统计子系统图1收费系统功能模型图2、动态模型本系统分为两个子系统,从划价子系统的动态模型(如图2)中可以看出,这是收费业务的一系列前台操作,由病人提出划价请求,操作员根据治疗单据或处方单据,进行划价操作,若病人当时付款给收费员,操作员确定后,操作员立即打出收费单据,并导入数据库,且进行相应表的记录的修改操作。收费员操作员主界面划分界面收费单据数据库病人1、划价请求2、打开3、划分操作打开4、录入信息生成5、缴费6、缴费=true8、打印单据7、保存库更新图2划价子系统动态模型图查询统计子系统的动态模型图类似于划价子系统动态模型图,病人、医院都可以暨此子系统进行查询、统计工作。同样都由操作员操作。病人提出查询收费单据请求,操作员输入姓名或号码若干条件,可以打印出以往病人缴过费的药品,检查,手术,或者治病过程中消耗的材料等统计表单。3、对象模
本文标题:面向对象分析与设计综述
链接地址:https://www.777doc.com/doc-5685910 .html