姚东铌YAODong-ni(陕西学前师范学院实验管理中心,西安710061)(ManagementCenterofShaanxiXueqianNormalUniversity,Xi'an710061,China)
摘要院面向对象开发方法是软件技术的一次革命,在软件开发史上具有里程碑的意义。本文介绍了面向对象的软件开发方法,它已经发展成为软件开发领域的一种新的方法论及信息技术,并且逐渐成为目前软件开发领域的主流。
Abstract:Object-orienteddevelopmentmethodisarevolutionaryofsoftwaretechnologyandamilestoneinthehistoryofsoftwaredevelopment.Thispaperdescribestheobject-orientedsoftwaredevelopmentmethod,whichhasbecomeanewmethodologyandinformationtechnologyinthefieldofsoftwaredevelopment,andgraduallybecomethemainstreamofcurrentsoftwaredevelopment.
关键词院面向对象;开发方法;OMT;UMLKeywords:object-oriented;developmentmethod;OMT;UML中图分类号院TP311文献标识码院A文章编号院1006-4311(2014)06-0194-020引言面向对象软件开发方法正席卷整个软件领域。相比较传统的开发方法,面向对象的软件方法采用了自底向上的归纳、自顶向下的分解的方法,通过对对象模型的建立,能够真正建立基于用户的需求,而且系统的可维护性大大改善。它是归纳和演绎思想的综合体现,对于软件设计起到了很好的作用。
1传统开发方法存在的问题传统开发方法存在以下方面的问题:淤软件复用性差。软件复用性是软件工程追求的目标之一,是节约人力和提高软件生产率的重要途径。结构化分析、设计和结构化程序开发虽然给软件产业带来了巨大进步,但却没能很好地解决软件重用问题。
于软件可维护性差。传统的开发方法注重完整、一致的文档组成最终的软件产品,所以在整个软件开发的过程中,非常注重软件的可读性、可修改性和可测试性,成为衡量软件质量的重要指标。然而在实际的应用过程中发现,其维护起来相当困难,且成本相当高,导致其可维护性差。
盂开发出的软件不能满足用户需要。如果用传统的结构化方法开发大型软件系统,由于涉及很多领域的知识,在开发的系统需求比较模糊或动态变化时,开发效率会受到很多制约,并且开发出的软件不能满足用户需要。
榆软件质量难以保证。用传统方法开发大型复杂软件系统,或需求模糊、需求动态变化的系统时,所开发出的软件系统往往不很成功。主要有以下两种表现:一是开发人员不能完全获得或不能彻底理解用户的需求,往往导致开发出的软件和用户期待的不一样,不能满足用户的需求;二是所开发出的系统不能适应用户需求的经常变化,系统的稳定性和可扩充性不能适应变化。用户有时会在系统的一些功能方面提出一些要求,所以,如果系统的设计是基于过程的,那么这种变化会造成系统结构的很大变化,设计成本一定会大大提高。
2面向对象渊OO冤方法面向对象方法(Object-OrientedMethod)简称OO方法,是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法。所谓面向对象就是基于对象概念,以对象为中心,以类和继承为构造机制,来认识、理解、刻画客观世界和设计、构建相应的软件系统。
传统的软件开发方法被称为是面向过程和功能分解的软件开发方法,这些方法在开发中小型软件时还得心应手,但对大型软件却难于驾驭。而且传统的方法存在软件生产率低的问题,面向对象方法的出现很好的弥补了这一缺陷,它是建立在“对象”概念基础上的,对象是由数据和容许的操作组成的封装体,与客观实体有直接对应关系,一个对象类定义了具有相似性质的一组对象。软件对象同现实中的“事物”有明确的对应关系,使得软件的设计变的简单,可以很容易把一个实际问题映射为软件对象。
面向对象OO(Object-Oriented)软件开发过程一般分为三个阶段:第一是面向对象的分析(OOA,ObjectOrientedAnalysis),它的任务是了解问题域内所涉及的对象和对象间的关系,建立模型。第二是进行面向对象的设计(OOD,ObjectOrientedDesign),它的任务是调整、完善和充实由OOA建立的模型。第三是面向对象的编程设计(OOP,ObjectOrientedProgramming),它的任务是用面向对象的语言实现。OO方法的发展过程本身是需求驱动的自底向上的发展过程,即先有OOP的产生,再在OOP的基础上进一步发展了OOD和OOA。由OOA、OOD、OOP构成的软件开发过程的OO方法覆盖了软件生命周期的分析、设计和实现等各个阶段,成为指导软件开发的全面的、完整的方法。OOP是软件开发方法的一次革命,它彻底改变了传统的功能分解。其最基本的概念是数据抽象、封闭性和继承性。OOD是根据OOA的结构,对系统进一步细化。其基本步骤有设计问题域部分、设计人机交互部分、设计任务管理部分与设计数据管理部分。OOA基本思想是认识客观对象及其属性,认识对象的整体及组成部分和对象类的形成及其区分,主要特点是过程抽象、数据抽象以及信息隐蔽。
3面向对象的软件开发方法现阶段,面向对象开发方法已经比较成熟,主要开发方法有Booch方法、Coad方法、OMT方法、UML语言等。
Booch方法是最早描述面向对象的软件开发方法的基础问题的方法,首先提出面向对象开发是区别与其他传统系统开发的一个方法。它最大的特色是能够反映出系统的各个方面是如何相互联系及相互作用的。其软件分解更接近人对客观事务的理解,Booch方法认为面向对象的开发是一个部分生命周期的方法,不涉及面向对象分析,只涉及面向对象的设计和实现,所以它没有对每个阶段进行明确的区分,工作主要集中在设计阶段。
Coad方法把系统的开发分为分析和设计两个阶段。
其中分析阶段的OOA模型由类及对象层、结构层、主题层、属性层和服务层五个层次构成,分别对应OOA的标识对象,标识结构,标识主题,定义属性,定义服务的五个活动。它的优点是具有一套系统的原则,完成了从需求角度进一步进行类和类层次结构的认定。这种方法概念简单,易于掌握,但是对每个对象的功能和行为的描述不很全面,对象模型的语义表达能力不是太强。
OMT方法(ObjectModelingTechnique)是随着OOP(面向对象编程)向OOD(面向对象设计)和OOA(面向对象分析)的发展最终形成的面向对象的软件开发方法。
OMT方法全面覆盖了软件开发的整个过程,包括分析、设计和实现几个步骤。该方法开发工作的基础是对真实世界的对象建模,围绕这些对象使用分析模型来进行独立于语言的设计,OMT分别建立三个模型:对象模型、动态模型和功能模型,从不同的角度全面地反映系统的需求,建模和设计有利于促进开发更为清晰、更容易维护的软件系统。这是一种自底向上和自顶向下相结合的方法,以对象建模为基础,既考虑了输入、输出数据结构,也包含了所有对象的数据结构,所以OMT彻底实现了PAM没有完全实现的目标。尽管OMT方法通过构造三个模型较全面地描述了系统的需求,但其缺点是在功能模型中使用数据流图与其它两个模型有些脱节。
UML(UnifiedModelingLanguage)语言是面向对象技术领域内占主导地位的标准建模语言,UML统一了Booch、OMT和OOSE等方法中的基本概念,同时还吸取了面向对象技术领域中其他流派的优秀思想,其中也包括非OO方法的影响。UML能够用来描述其它的开发过程,产生新的软件开发方法。它的目标就是以面向对象图的方式来描述任何类型的系统。总之UML是一个通用的标准建模语言,适用于以面向对象技术来描述任何类型的系统,而且适用于系统开发的不同阶段,从需求规格描述直至系统完成后的测试和维护。
4总结面向对象这一概念来源于程序设计,逐渐成为目前软件开发领域的主流,并扩展到很宽的范围如数据库系统、交互式界面等领域。由于面向对象软件开发方法的诸多优点,相信面向对象软件开发方法在未来会有更广阔的前景。
参考文献院[1]MikeO'Docherty,俞志翔.面向对象分析与设计(UML2.0版)[M].北京:清华大学出版社,2006.[2]明仲.结合UML和RAISE的软件开发方法研究[J].计算机工程,2001(4).[3]张海藩.软件工程导论(第5版)[M].北京:清华大学出版社,2008.