APP下载

基于面向对象的应用软件体系结构

2015-03-25韩山师范学院计算机与信息工程学院胡能发

电子世界 2015年21期
关键词:面向对象开放性构件

韩山师范学院计算机与信息工程学院 胡能发

1 引言

随着软件系统规模与复杂度的加剧、软件系统的结构显得越来越重要。特别是对于大规模的软件系统而言,好的软件结构可以大大降低系统的复杂性,提高软件生产效率,方便软件维护,控制软件开发风险。因此,如何确定软件系统框架尤为重要。近年来,软件开发技术不断成熟,各种面向对象的软件开发工具,已经成为人们的首方法,已经取代了传统的软件开发方法。基于面向对象的软件体系结构技术已广泛应用于各类软件的开发之中。

2 软件体系结构的建模

软件体系结构模型中最常用的模型是结构模型与动态模型,共分为5种类型,主要有:结构模型、框架模型、动态模型、过程模型及其功能模型。

2.1 结构模型

结构模型是一种最能用的模型,也是一种最直观的建模方法。这种建模方法以软件系统结构的构件、连接件及其他概念来表达软件的体系结构,其结构模型的核心是软件体系结构描述语言,它是通过结构建模来反映系统的重要语义内容,包括系统的配置、约束条件、隐含的假设条件、软件风格、属性等等。

2.2 框架模型

软件框架模型主要侧重于描述系统的整体结构,与结构模型类似,也是一种直观的建模方法,但它对软件结构的细节描述不太深入。因此框架模型重点是对一些特殊的问题建模,以适应问题域本身的结构。

2.3 动态模型

软件系统的”大颗粒”的行为往往具有动态性,这种动态建模方法是对结构模型及框架模型的补充。有些软件系统结构本身就具有动态。例如,在软件助手的设计中,由于用户角色发生变化,造成了用户对软件助手产生不同的体验,因此,软件体系结构的配置、建立或删除、更新是具有动态性的,这种模型描述了系统的重新配置或演化。

2.4 过程模型

软件过程模型是一种软件开发策略,这种策略为软件工程的提供了一套系统开发范形,以方便对软件开发过程进行监控。任何不同种类的系统,都需要建立相应的软件过程模型,确定项目与应用的性质、开发方式及需要控制的过程。

2.5 功能模型

该模型将软件结构看成是一组功能构件的集成,它描述了软件系统从输入到输出的加工过程,该模型着重描述了系统的控制结构,并将系统的控制性质作出行为化的描述。在UML中主要采用用例图来表达,在结构化分析方法中则采用数据流图来描述软件系统的功能需求。

以上这5种模型各有各的优缺点,从软件开发的不同视角来看,将这5种模型按一定的方式进行整合集成,将形成一个从不同视角来刻画软件体系结构的完整模型。最典型的模型是Kr ucht en于1995年提出的“4+1”的视图模型。该模型从5个不同的视角来刻画软件的体系结构,类似于从不同方向观察某一物体的形态等。“4+1”的视图模型包括逻辑视角、过程视角、物理视角、开发视角及场景视角,每一个视角只描述软件系统的一个侧面,只有将5个视角全部结合在一起,才能全面反映出软件系统体系结构的所有内容。

3 面向对象的应用软件体系结构

面向对象方法来源于人们的自然思维方式,是人们认识自然最直观也是最直接的方法。人们通过对现实世界中客观存在的事物进行抽象,规范,将现实世界中的物理模型转换为计算机能够识别的逻辑模型,最终构造出软件系统。面向对象方法在分析系统结构时,以问题域中的事物作为分析的依据,从中发现对象、发现对象属性及服务,以对象作为软件系统的最基本的构成单元,所有对象的集合集成在一起,并以一定的方式描述各对象的关系,最终形成对象层、特征层以及关系层结构,从而完整地形成整个软件。面向对象方法所设计的软件,可以看成问题域物理模型到软件系统逻辑模型的映射。

软件体系结构实际上是构件的集成,其组成元素具有一定形式化的结构,主要包括处理构件、数据构件以扩连接构件等。其中对数据的加工处理由处理构件来完成,数据构件是被处理的对象,将软件体系结构中不同部分组组合连接起来,则是由连接构件完成。

软件体系结构是一个程序或系统的构件的组织结构,它们之间的关联关系以及支配系统设计和演变的原则和方针。一般地,一个系统的软件体系结构描述了该系统中的所有计算构件,构件之间的交互、连接件以及如何将构件和连接件结合在一起的约束。研究软件体系结构的首先要解如何将软件体系结构表达出来,即通过结构建模来表示软件体系结构。

一个软件系统的综合性能往往与软件系统的开放性具有一定的关联,软件系统可扩充性强,数据的开放性、功能的开放性好,对将系统的升级与维护十分重要。而软件结构是否具备良好的开放性,最关键的是采用什么样的模型来开发软件系统。如果模型不合理甚至没有模型,就有可能出现象60年代一样软件危机,造成软件性能下降,甚至开发失败。软件各模块独立开发完成后,其系统的集成则是整个软件能否高效运行的关键。将各功能子系统统一集成到同一个环境后,其性能的好坏取决于开发系统所采用的模型。

开放性对于应用软件休系结构而,一般与社会技术发展水平有关。从1946年第一台计算机出现以来,计算机硬件技术以惊人的速度向前发展,同时各种计算机软件开发工具、开发方法与技术层出不穷,面向对象开发工具与技术已非党成熟,曾先后出现了许多类系统模型,引颔着软件技术的不同以展阶段。其模型主要有4种,它们是以数据为中心的系统模型、以执行为中心的系统模型、面向对象的系统模型、基于总线的系统模型。

以数据为中心的系统模型,在软件系统的核心层中共享数据,系统中各部份采用统一的数据格式来描述,以方便各子系统部件交互。各子系统独立完全开发,模块之间耦合度低,独立性强。这类系统具有良好的扩充性,数据开放性好,方便系统维护与升级,是面向对象方法主要特点。

以执行为中心的系统模型,通过将可执行的代码放在一个执行中,来实现用户或对象对代码的共享房问,避免了代码冗余,数据与界面具有一致性。例如目前流行的3D游戏开发工具Unit y3d软件,其开发的软件就具有这种类似结构。这类模型将执行功能从各对象的服务功能中分离出来,放在执行中心共享。这类模型可扩充性好,具有数据开放性以及功能开放性,整体上比以数据为中心的系统模型要好。

由于面向对象技术的发展,各种面向对象的编程工具、分析与设计技术及软件已非常成熟,出现了面向对象的软件体系结构模型。该模型强调对象封装,用户操作界面、共享的数据及相应的操作,都被封装在所在的对象中。从软件系统结构来看,这种模型没有中心,没有顺序,系统完成由各对象组成。面向对象主要特点是封装、继承与多态,这各模型结构与以数据为中心及以执行为中心的模型完成不同,主要优点在于,数据和功能的合理封装降低系统复杂性,从整体上看,优于前两类模型。

基于总线的软件系统模型,是在面向对象为基础上发展而来,由于组件与中间件技术,是面象对象技术发展的结果,因此在建立软件系统结构模型时引入了新的思想,产生了新的软件工程技术,即基于总线的软件系统模型。这种技术是面向对象技术的产物,采用这种技术开发软件,需要建立一种高效的总线结构,规范的一致接口,使得不同组件之间通过公共的接口集成起来。这种结构极大地降低了各组件通讯的复杂度,提高了组件的互操作性。

4 结束语

面向对象技术具有易维护、可读性高、可重用好、易扩展、开发效率高的优点,其开发方法接近于日常生活和自然的思考方式,由于面向对象技术主要特征是继承、封装与多态,其模型所设计的软件体系结构独立性高,使得系统更灵活、更容易扩展,因此,该方法已成为当下软件系统首选的开发方法。

[1]马亮,孙春艳.软件构件概念变迁[J].计算机科学,2002,29(4):28-30.

[2]李千目.软件体系结构设计[M].北京:清华大学出版社,2008.

猜你喜欢

面向对象开放性构件
例析三类开放性问题的解法
初中英语开放性探究式阅读教学策略
面向对象的计算机网络设计软件系统的开发
面向对象的数据交换协议研究与应用
建筑构件
建筑构件
建筑构件
建筑构件
面向对象Web开发编程语言的的评估方法
寻求开放性道路