面向对象的软件分析与设计

时间:2022-09-22 02:30:35

面向对象的软件分析与设计

摘要:统一建模语言UML是面向对象软件设计的新技术。文章分析了基于UML进行面向对象的系统分析及设计方法,包括静态建模和动态建模,介绍了一种实用的基于UML的需求分析及其建模方法,以活动图模型来表达业务模型,以概念层的对象图、状态图及交互图模型表达系统的结构逻辑及行为逻辑,以应用例图表达系统需求,讨论了需求分析及其建模的过程概念。

关键词:面向对象;UML;面向对象UML;UML的需求分析;UML的建模方法

中图分类号:TP311.52 文献标识码:A 文章编号:1007-9599 (2011) 22-0000-02

Object-oriented Software Analysis and Design

――Based on UML&Object-Oriented Systems Analysis Design Methods

Xu Jin

(School of Computer Science Heilongjiang Suihua University,Suihua 152061,China)

Abstract:The Unified Modeling Language(UML)is a new object-oriented software design techniques.This paper analyzes the UML-based object-oriented systems analysis and design methods,including static modeling and dynamic modeling,presents a practical UML-based requirements analysis and modeling,activity diagram model to express the business model to the concept of layer object diagrams,state diagrams and interaction diagrams model the structure of the logical expression system and behavior logic in the application case diagram expressing system requirements,discussed the process of requirements analysis and modeling concepts.

Keywords:Object-oriented;UML;Object-oriented UML;UML needs analysis;UML modeling method

一、引言

在20世纪60年代中期开始爆发的软件危机,使人们认识到大中型软件系统与小型软件有着本质的区别:大型软件系统的开发周期长、费用高、软件质量难以保证、开发生产率低,为了摆脱软件危机提出了软件工程的概念。软件工程的目的就是要在规定的时间、开发费用内开发出满足用户需求的高质量的软件系统,高质量不仅是指错误率低,还包括好用、易用、可移植、易维护等要求。软件开发有复杂性和困难性,软件设计人员既要为自己建立设计与实践的准则,又要利用这些准则构造符合要求的软件系统,因此所面临的困难比其他领域涉及的更多,所以在这一充满压力的境遇下,面向对象的软件分析与设计方法孕应而生。

二、面向对象技术

面向对象(Object Oriented,OO)是当前软件开发过程中一个非常流行并且非常适用的新技术,它是90年代乃至现今软件开发方法的主流。起初,“面向对象”是专指在程序设计中采用封装、继承、抽象等设计方法。现如今,人们发现它可以有效的提高软件生产率,缩短软件开发时间、提高软件质量,同时能够很好的控制软件开发时的复杂性,面向对象方法的基本思想是:对问题领域进行自然分割,以更接近人类思维的方式建立问题域模型,总是一步步的导向以符合人的正常思维,它从抽象到具体,逐步深入,让人于无形中不知不觉就理解并应用了它,因此它使设计出的软件尽可能直接描述现实世界,具有更好的可维护性,更能适应用户需求的变化。

三、统一建模语言UML

统一建模语言(UML:Unified Modeling Language)是面向对象(Object-Oriented)技术领域内占主导地位的标准建模语言。UML是一种基于面向对象的可视化建模语言,它提供了用图形符号来表示模型的元素,它可消除一些潜在的不必要的差异,还可通过统一语义和符号表示,使项目根植于一个成熟的标准建模语言,从而可以拓宽所研制与开发的软件系统的适用范围,并提高其灵活程度。

UML支持从需求分析开始的软件开发的全过程。UML通过三类图形建立系统模型:用例(use case)图、静态结构图(对象类图、对象图、组件图、配置图)和动态行为图(顺序图、协同图、状态图、活动图),这些图可以从不同的抽象角度实现系统的可视化。

四、基于UML的需求分析过程

开发一个软件系统,需要对该软件系统的功能要求、性能要求、可靠性要求和安全保密要求等进行全面分析,确定相关限制及同其他系统元素间的接口,定义软件的其他有效性需求等。运用统一建模语言UML可以更好的捕捉系统的功能需求,分析、提取所开发系统领域的类以及描述它们之间的合作概况,完成系统的面向对象分析OOA(Object Oriented Analysis),在此基础上,对系统进行面向对象设计OOD(Object Oriented Design),可以大大提高软件开发成功的几率。

(一)建立用例模型

用例图是首先需要建立的模型,它定义了系统的主要功能和系统边界,完全是从系统的外部观看系统功能,方便客户确定清楚他们自己的需求,它并不描述系统内部对功能的具体实现,但却是其它视图的核心和基础。通过用例建模,描述对系统感兴趣的外部角色及其对系统的功能需求。在用例图中,角色代表触发系统功能的用户或其它系统,用例则代表具体的功能描述。

1.确定系统角色。使用用例来分析系统,首先需要确定系统的参与者,即角色。角色是指所有与系统直接交互的人或事物,向系统输入或使用系统的某些功能,但是不属于系统,角色可能是某个系统或一类人等。

2.获取用例。用例描述的是系统的功能实现,它揭示了人们如何使用系统。

3.绘制用例图。简而言之,就是把用例的描述表示出来。

(二)建立静态模型

UML的静态建模机制包括类图、组件图和配置图。其中,类图表达了系统中类与类之间的关系,是UML中最重要、最基本的静态模型,它在系统的整个生命周期内都是有效的。类图是构建其它图的基础,没有类图就没有状态图等其它图,也就无法表示系统其它方面的特性。构成类图最主要的元素是类和类之间的关系,包括关联(Association)、泛化(Generalization)、组合(Composition)、聚合(Aggregation)等。进行类图建模时首先要分析与系统功能相关的对象,然后进行类的区分、确定类的属性和方法,接着分析各种类之间的关系,并用建模元素描述出来。

(三)建立动态模型

系统的静态模型不能清晰地描述出对象的行为和职责,因此不能全面的反映系统的情况。要描述系统的动态行为,必须建立系统的动态模型。

动态模型描述与操作时间和顺序有关的系统特征、影响更改的事件、事件的序列、事件的环境以及事件的组织,动态建模具有明确性、可视性和简易性等特点。

此外,动态模型使用户和开发人员能更容易地理解构思中的系统,借助于动态模型,可监视构思中的系统是否存在任何类型的缺陷,如果在开发开始后才发现这些缺陷,则可能需要付出昂贵的代价,所以动态模型的建立可以为软件开发节省了不少的开支,其次,维护模型比维护系统容易得多,成本也降低了很多。因此,动态模型的种种优越性使得该方法被广泛接受并充分运用于软件开发的过程中。

五、基于UML的建模方法

UML建模,简而言之就是用UML建立业务模型和系统模型,主要是用一些规范、形象的图形来描述业务或系统。也即是说业务建模即建立业务模型―业务用例图;系统建模即建立系统模型―用例模型(用例图)、静态模型(类图)、动态模型(时序图)。利用UML建模时,一般采用的建模过程有:瀑布开发模型、迭代递增开发模型。

(一)瀑布模型的开发过程

是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么就“返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段。

(二)但是基于UML的系统开发多采取增量迭代开发模型

1.需求分析,最初需求规格说明应当由代表系统最终用户的人员提供,内容包括系统基本功能需求和对计算机系统的要求,接着就应该找出系统的所有需求并加以描述,同时建立模型,以定义系统中的关键领域类,此过程应由系统用户和开发人员合作完成。分析的第一步是定义用例,以描述所开发系统的外部功能需求。用例分析包括阅读和分析需求说明,此时需要与系统的潜在用户进行讨论。

2.设计,设计阶段的任务是通过综合考虑所有的技术限制,以扩展和细化分析阶段的模型。设计阶段可以分为两个部分:结构设计是高层设计,其任务是定义包(子系统),包括包间的依赖性和主要通信机制,得到尽可能简单和清晰的结构,各部分之间的依赖要尽可能的少,并尽可能的减少双向的依赖关系。接着是详细设计,细化包的内容,使编程人员得到所有类的一个足够清晰的描述。

一个设计良好的系统结构是系统可扩充和可变更的基础。包实际上是一些类的集合。类图中包括有助于用户从技术逻辑中分离出应用逻辑(领域类),从而减少它们之间的依赖性。详细设计的目的是通过创建新的类图、状态图和动态图(顺序图、协作图和活动图),描述新的技术类,并扩展和细化分析阶段的对象类,方便程序员一步步的实施。

3.实现,实现阶段是对类进行编程的过程,可以选择某种面向对象的对象编程语言作为实现系统的软件环境。有了这些模型就很容易实现从逻辑视图到代码部件的映射。在实现阶段,可以选取各种图的说明来辅助编程,比如:类图,状态图和动态图等。

六、小结

UML是一种功能强大、面向对象的可视化系统分析的建模语言,它采用一整套成熟的建模技术,广泛地适用于社会的各个领域。它的各种模型可以帮助开发人员更好地理解业务流程,建立更可靠、更完善的系统模型。使用户和开发人员更容易沟通,从而对出现的问题可以达到相同的理解,保障分析的正确性,很大程度上保证了软件的可用性。

UML作为软件工程中的建模语言,代表了面向对象方法的软件开发技术的发展方向,为开发者和需求者之间的需求分析带来了福音,具有重大的经济价值和国防价值,并获得了国际上的广泛支持,具有非常好的应用前景。

参考文献:

[1]张龙详.UML与系统分新设计[M].人民邮电出版社,2001,p2-10

[2]史济民,顾春华等.软件工程-原理,方法与应用[M].高等教育出版社,2002,p143-148

[3]张敬宋,广军等.软件工程教程[M].北京航空航天大学出版社,2003

[4]程一明.面向对象的分析师――UML[M].清华大学出版社,2007

[5]徐宝文等.UML与软件建模[M].清华大学出版社,2010

[6]周之英.现代软件工程[M].科学出版社,1999

[7]贾晓辉,韩恺,乐嘉锦.基于UML的系统需求分析[J].计算机应用与软件,2007

上一篇:沥青公路路面损坏原因分析 下一篇:信息化在呷村矿中的应用