
面向对象分析与设计综述.docx
10页面向对象分析与设计综述摘要:00(面向对象)是当前计算机界关心的重点,而00A (面向对象分析方法)和00D(面向对 象设计)是面向对象软件开发生命周期中两个重要的阶段而UML作为一种功能强大的、面 向对象的可视化系统分析的建模语言,它采用一整套成熟的建模技术,广泛地适用于各个应 用领域关键字:00, 00A, 00D, UMLAbstract:00 (object-oriented) were concerned about the focus of the current computer, while the 00A (object-oriented analysis) and 00D (object-oriented design) is the object-oriented software development are two important stages in the life cycle. UML as a powerful object oriented visualization system analysis, modeling language, it USES a set of mature modeling technology, widely applicable to various applications.Key words: 00, 00A, 00D, UML一、引言00(面向对象)是当前计算机界关心的重点,它是90年代软件开发方法的主流。
面向对象 的概念和应用已超越了程序设计和软件开发,扩展到很宽的范围如数据库系统、交互式界 面、应用结构、应用平台、分布式系统、网络管理结构、CAD技术、人工智能等领域随着 计算机硬件的迅猛发展,软件开发方法也不断推陈出新,面向对象(00)方法就是在结构化方法、 信息建模方法等基础上发展起来的 00 方法认为现实世界由一组对象构成,对象间的分工合 作构成了现实世界运行,它利用封装、继承、多态等技术对软件系统(简称系统)进行高度抽象 00方法的发展过程与传统的结构化方法完全相反,人们首先从面向对象编程(OOP)中认识到 了00的独到之处,进而把它引进到分析设计阶段但这样的开发方法使得分析设计与程序实 现无法平滑过渡,对分析设计和实现的连续性,对软件的重用、维护、测试等工作都带来了很大 困难采用全过程的00开发方法是一个最恰当的办法,可以保证系统开发的完整性和一致性 但在实际应用中由于面向对象的数据库产品还未真正成熟 ,关系数据库依然是我们系统开发 的必然选择,这就导致难以在数据库应用系统的开发全过程应用 00 技术,所以必须将面向对 象分析(00A)和面向对象设计(00D)的结果向关系数据库转换的规则和相应算法。
00A (面向 对象分析方法)和00D(面向对象设计)是面向对象软件开发生命周期中两个重要的阶段,00A 活动涉及的是语义对象,强调的是对问题和需求的调查研究,而00D活动涉及的是语义对象, 接口对象,应用对象和实用库对象,强调的是满足需求在概念上的解决方案随着OOP (面向对象编程)向00D (面向对象设计)和00A (面向对象分析)的发展, 最终形成面向对象的软件开发方法OMT这是一种自底向上和自顶向下相结合的方法,而且 它以对象建模为基础,从而不仅考虑了输入、输出数据结构,实际上也包含了所有对象的数 据结构所以OMT彻底实现了 PAM没有实现的目标UML是Booch, Objectory和OMT 方法的结合,并且是这三者直接的向上兼容的后继同时它还吸收了大量方法学家的思想, 这些先进的面向对象的思想统一为实现公共的、稳定的、表达能力强的面向对象方法提供了 基础UML作为一种功能强大的、面向对象的可视化系统分析的建模语言,它采用一整套 成熟的建模技术,广泛地适用于各个应用领域它的各个模型可以帮助开发人员更好地理解 业务流程,建立更可靠、更完善的系统模型二、面向对象的方法 OOA&OODOOA和OOD的理论和技术逐步形成,软件开发方法层出不穷,其中最为流行的是3种模型 与 5 个层次的分析方法。
模型可以作为实现问题而建立的一种抽象描述,可以帮助分析员、设 计者及用户清楚地表述抽象的概念 ,表述现实世界中各实体的关系而面向对象建模技术 (OMT)得到的模型包含对象的3要素,即静态结构(对象模型)、交互次序(动态模型)、数据 变换(功能模型)其中,对象模型描述了现实世界中(类-对象)以及它们之间的关系,表示了目 标系统的静态数据结构,定义了业务的实体动态模型主要用来描述对象之间的动态合作关系 以及合作过程中的行为次序,规定了对象模型中的对象的合法变化序列 ,明确规定了什么时候 做功能模型表示变化的系统的功能性质,它指明了系统应该做什么,并对系统业务功能进行分 类界定,使业务系统分解成若干个子系统 ,再将子系统拆成若干个模块 ,直至分解到原子业务 项OOA( Object- Oriented Analysis, 面向对象分析方法)和 OOD( Object- Oriented Design, 面 向对象设计) 是面向对象软件开发生命周期中两个重要的阶段, OOA 活动涉及的是语义对 象,而OOD活动涉及的是语义对象,接口对象,应用对象和实用库对象,这种区分OOA和 OOD对象的方法在大多数情况下是正确的。
但是,在分析阶段,一个好的规格说明也应涉及 到用户接口,控制机制等各方面的内容,因此,在 OOA 阶段,不仅该得到语义对象,也应 该得到接口对象和应用对象这些对象通过OOA中的对象识别和精化过程得到在OOA阶 段的主要任务是识别和精化对象,OOD阶段的主要任务是构造类和建立系统结构OOA 面向对象分析(主要用于完成系统分析)面向对象分析的关键,是识别出问题域内的对象,并分析它们之间的关系,最终建立起问 题域简洁、精确、可理解的正确模型面向对象分析建模需要建立的是软件系统的用户领域 模型,需要着重了解的是该软件系统的需求概念与术语,其分析内容是现实世界中的实体对 象和各对象之间的关系,并不涉及编程概念步骤为:(1) 定义主题:发现并标识对象与类:进行类及对象的发现及描述2) 标识服务:目的在于定义对象的行为之间的消息链接3) 标识结构:包括上述的一般/特殊结构和局/部分结构4) 标识属性:对于每个对象,都需要找出在目标系统中对象所需要的属性,而后将属性安排到适当的位置,找出实例链接,最后进行检查OOD 面向对象设计(主要负责系统设计)设计建模需要把分析阶段的结果扩展成技术解决方案 ,需要建立的是软件系统的技术构造 模型。
从00A到00D不是转换;而是调整和增补增补人机交互部分、构建及部属部分、 控制驱动部分、数据管理部分过程为:(1) 设计数据管理子系统:核心是数据存储,常用的存储技术有文件管理、关系数据库管理和 面向对象数据库管理2) 设计任务管理子系统:主要是对系统各种任务进行选择和调整的过程3) 构建问题域子系统:对分析的问题域模型进行需求调整、类的重用、增加一般化类建立 协议等4) 设计人机交互子系统:包括用户界面风格,命令结构层次关系等内容的设计这种方法,概 念简单,易于掌握但是对每个对象的功能和行为的描述不很全面,对象模型的语义表达能力不 是太强三、UML面向对象分析设计的一般过程标准建模语言 UML 适用于以面向对象技术来描述任何类型的系统,而且适用于系统开 发的不同阶段:从需求规格描述直至系统完成后的测试和维护但需要注意的是, UML 是 一种建模语言而不是方法,这是因为 UML 中没有过程的概念,而过程正是方法的一个重要 组成部分 UML 本身独立于过程,这意味着用户在使用 UML 进行建模时,可以选用任何 适合的过程然而,使用 UML 建模仍然有着大致统一的过程框架,该框架包含了 UML 建 模过程中的共同要素,同时又为用户选用与其所开发的工程相适合的建模技术提供了很大的 自由度。
运用 UML 进行面向对象的系统分析设计,其过程通常由以下 3 个部份组成:(1) 识别系统的用例和角色首先对项目进行需求调研,依据项目的业务流程图和数据流程图以及项目中涉及的各级 操作人员,通过分析,识别出系统中的所有用例和角色;接着分析系统中各角色和用例间的 联系,再使用 UML 建模工具画出系统的用例图,同时,勾画系统的概念层模型,最后借助 UML 建模工具描述概念层类图和活动图2) 进行系统分析,并抽取类系统分析的任务是找出系统的所有需求并加以描述,同时建立特定领域模型建立域模 型有助于开发人员考察用例,从中抽取出类,并描述类之间的关系3) 系统设计,并设计类及其行为设计阶段由结构设计和详细设计组成其中,结构设计是高层设计,其任务是定义包(子 系统),包括包间的依赖关系和主要通信机制,包有利于描述系统的逻辑组成部分以及各部分 之间的依赖关系;详细设计就是要细化包的内容,清晰描述所有的类,同时使用 UML 的动 态模型描述在特定环境下这些类的实例的行为用UML来描述所开发的软件UML 定义了以下几种图来从不同的角度的描述我们的模型:(1) use case 图(use case diagram)简而言之,一个use case就是存在于用户和计算机系统之间的一个典型的交互过程.通过use case,用户和系统分析员可以相互沟通,来分析用户的需求。
Use-case图的主要图形元素有Actor 和use case一个Use-case反映系统要完成的一个功能2) 类图 (class diagram)一个 class diagram 描述了在系统中的对象类型和存在于它们之间的静态关系存在于类 之间的关系有:关联(As-sociation),继承(Inheritance),聚合(Aggregation).class diagram 图用不同 的图形符号来描述这种关系Class diagram也出了一个对象的属性和操作3) 行为图 (behavior diagram)1状态图(state chart diagram)它描述了一个特定的对象的所有可到达的状态和激发对象状态 发生变化的事件.它用于描述单个对象的在系统中的整个生命周期过程2活动图(activity diagram)它主要结合了以下几种技术的思想Jim Odell的事件图的状态建模 技术和Petri网.这些图在描述与工作流有关的问题和大量并发处理的过程非常有效・3事件图(sequence diagram)它描述了在系统中各个对象随时间的变化相互调用的过程在描 述系统的动态行为,sequence diagram是一种很好的工具。
4协作图(collaboration diagram)它同sequence diagram 一样是描述在系统中的对象之间相互 调用的过程.但反映这种调用笑系的方式不同于前者4) 实现图(implementation diagram)1组成图(component diagram)组成图描述了软件系统中各软件成分之间的依赖关系.如源代 码,二进制目标代码和最后生成的可执行文件之间的依赖关系‘・2装配图(deployment diagram)该图描述了存在于系统中的软件和硬件的物理关系它是一 个很好的工具,用于描述在分布式系统中的各个组成和对象是如何分布的,五、用面向对象的方法分析设计医院收费信息系统1、功能模型(如图 1)对系统的业务进行分类,整体上分为划价和查询统计两个子系统系统设计的目 标是功能完备,智能化,尽最大可能让操作员减少操作2、动态模型本系统分为两个子系统,从划价子系统的动态模型(如图 2)中。












