面向对象软件工程方法分析

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

〔收稿日期〕 2001-04-24

〔作者简介〕 邸 剑(1968—),男,河北定州市人,华北电力大学计算机科学系工程师,多年从事计算机网络、软件编程等教研工作。文章编号:1005-3751(2002)01-0032-04

面向对象软件工程方法分析

Analysis of Object2Oriented Soft w are E ngineering Methods

邸 剑,李新叶,宋 雨(华北电力大学计算机科学与工程系,河北保定071003) DI Jian,L I Xin2ye,S ON G Y u(North China Electric Power University,Baoding HB071003,China

摘 要:介绍了几种常用的面向对象软件工程方法,重点分析了UML,给出UML方法的图形表示法,最后介绍了基于UML的软件分析与设计的具体步骤。

关键词:软件工程;面向对象方法;UML

ABSTRACT:Introduces several common methods of object-ori2 ented software engineering,discusses the Unified Modeling Lan2 guage(UML),gives eight diagrams.At last,introduces the steps of software analysis and design based on UML.

KEYWOR DS:Software Engineering;Object-Oriented Method; UML

中图分类号:TP311.5 文献标识码:A

1 引 言

面向对象技术自八十年代初问世以来,由于它的模块性、封装性、继承性、多态性和动态束定能满足软件工程要求的局部化、易维护、可重用、易扩充以及当今多媒体和分布式计算的诸多要求,一时成为计算机各领域争相采用的新技术焦点。八十年代末以来,出现了几十种面向对象方法,其中Coad/Y ourdon、Booch、OM T、Jacobson、Wirfs-Brock的方法得到了广泛的认可。特别值得一提的是统一的建模语言UML(Unified Modeling Language),该方法结合了Booch、OM T和Ja2 cobson方法的优点,统一了符号体系,并从其它方法和工程实践中吸收了许多经过实际检验的概念和技术。UML方法已提交给对象管理组织OM G,并于1997年被对象管理组织正式确定为面向对象方法的国际标准。

2 常用的面向对象软件工程方法

2.1 Coad/Yourdon方法

Coad/Y ourdon方法严格区分了面向对象分析OOA和面向对象设计OOD。其中OOA的主要考虑在于与一个特定应用有关的对象以及对象与对象之间在结构与相互作用上的关系。通过OOA建立的系统模型以对象概念为中心,称为概念模型,由下述五层组成:

(1)类和对象层:识别类和对象,形成整个分析模型的基础。

(2)属性层:定义类与对象所要保存的信息及对象之间的实例连接。

(3)服务层:定义类与对象所能提供的服务及对象之间的消息连接。

(4)结构层:包括组装结构和分类结构。组装结构即整体与部分的结构,该结构用来表示聚合,即由不同的类的成员聚合而形成新的类;分类结构即泛化与特化的结构,该结构捕获了定义出的类的层次或网络结构。

(5)主题层:主题由一组类及对象组成,用于将类和对象做进一步的组合。

OOD阶段继续采用OOA中的五层概念,建立了系统的设计模型,由下述四部分组成:

(1)问题论域(PDC):包括把问题论域的专用类关联,为建立公共操作集合建立一般类,调整继承支持级别,类的优化,类的细化。

(2)用户界面(HIC):包括对用户分类,描述人机交互的脚本,设计命令层次结构,设计详细的交互,生成用户界面的原型,设计HIC类。

(3)任务管理(TMC):包括识别任务(进程)、任务所提供的服务、任务的优先级、进程是事件驱动还是时钟驱动、以及任务与其它进程和外界如何通信。

(4)数据管理(DMC):由存储技术决定是文件系统,还是关系数据库管理系统或面向对象数据库管理系统。

2.2 Booch方法

Booch方法强调基于类和对象的系统逻辑视图与基于模块和进程的系统物理视图之间的区别以及系统的静态和动态模型的区别。然而,该方法偏向于系统

的静态描述,对动态描述支持较少。

Booch方法的OOA包括:识别类和对象,识别类和对象的语义,识别类和对象之间的关系,优化,实现类和对象。这五种活动不仅仅是一个简单的步骤序列,而是对系统的逻辑和物理视图不断细化的迭代和渐增的开发过程。类和对象的识别包括找出问题空间中关键的抽象和产生动态行为的重要机制。语义的识别主要是建立前一阶段识别出的类和对象的含义,利用状态转移图描述对象的状态模型,利用时态图(系统中的时态约束)和对象图(对象之间的互相作用)描述行为模型。在关系识别阶段描述静态和动态关系模型,包括使用、实例化、继承、关联和聚集等。类和对象之间的可见性也在此时确定。在类和对象的实现阶段要考虑如何将类和对象组织成模块,如何用选定的编程语言实现。

Booch方法的OOD包括:结构规划,策略设计,发布规划。

Booch方法的贡献在于其丰富的符号体系,包括:类图;对象图;状态转移图;时态图;模块图;进程图。用于类和对象建模的符号体系使用注释和不同的图符表达详细的信息。对每个符号体系还有一个文本,由每个主要描述模板组成。符号体系由大量的图符定义,但其语法和语义并没有严格地定义。

2.3 Rumb augh的OMT方法

Rumbaugh的OM T方法从三个视角描述系统,相应地提供了三种模型,即对象模型、动态模型和功能模型。对象模型描述对象的静态结构和它们之间的关系,主要包括:类;属性;操作;继承;关联(即关系);聚集。动态模型描述系统那些随时间变化的方面,主要包括:状态;子状态和超状态;事件;行为;活动。功能模型描述系统内部数据值的转换,主要包括:加工;数据存储;数据流;控制流;角色。该方法将开发过程分为四个阶段:

(1)分析阶段 从问题和用户需求的描述入手,构造系统模型。分析阶段的产物有:问题描述,对象模型(对象图+数据词典),动态模型(状态图+全局事件流图),功能模型(数据流图+约束)。

(2)系统设计阶段 结合问题域的知识和目标系统的体系结构(求解域),将目标系统分解为子系统。该阶段的主要产物是:系统设计文档,基本的系统体系结构和高层次的决策。

(3)对象设计阶段 基于分析模型和求解域中的体系结构等添加的实现细节,完成系统设计。主要包括:细化的对象模型;细化的动态模型;细化的功能模型;

(4)实现阶段 将设计转换为特定的编程语言或硬件,同时保持可追踪性、灵活性和可扩展性。

2.4 Jacobson方法

Jacobson方法涉及到整个软件生命周期,包括需求分析、设计、实现和测试等四个阶段。需求分析阶段包括定义潜在的角色(使用系统的人和与系统互相作用的软、硬件环境),识别问题域中的对象和关系,基于需求规范说明和角色的需要发现use case,详细描述use case。设计阶段包括从需求分析模型中发现设计对象(即从use case的描述发现设计对象,描述对象的属性、行为和关联,把use case的行为分派给对象),以及针对实现环境调整设计模型。

在需求分析阶段的识别领域对象和关系中,开发人员识别类、属性和关系,定义use case的活动和识别设计对象的活动,完成行为的描述。Jacobson方法还将对象区分为领域对象、界面对象和控制对象(处理界面对象和领域对象之间的控制)。该方法的一个关键概念就是use case。use case是指行为相关的事务序列,该序列将由用户在与系统对话中执行。因此,每一个use case就是一个使用系统的方式,当用户给定一个输入,就执行一个use case的实例并引发执行属于该use case的一个事务。基于这种系统视图,Jacobson 将use case模型与下述五种系统模型关联:

●领域对象模型:use case模型根据领域来表示。

●分析模型:use case模型通过分析来构造。

●设计模型:use case模型通过设计来具体化。

●实现模型:该模型依据具体化的设计来实现use case模型。

●测试模型:用来测试具体化的use case模型。

2.5 UML方法

Rational软件公司的三位学者,Grady Booch、Jim Rumbaugh和Ivar Jacobson经过三年多的努力正式提出面向对象系统的通用的统一模型语言UML1.0版,这是OO行业中一件具有里程碑性质的新进展。UML语言是在已有的三大OO方法学的基础上,抽象出表示它们的模型语言,并吸取了其它OO开发方法和近30年软件工程的成果。它立足于实用,尽管目前还只能由资深的高级程序员、分析员、研究者使用。但它对OO技术的发展有着深远的影响,这是毫无疑问的。

2.5.1 U ML的元模型理论 模型规定了对

相关文档
最新文档