计算机应用专业赵诚 070321169
随着计算机应用的日益普及,人们对软件的需求量急剧增加。起初,人们把软件设计的重点放在数据结构和算法的选择上。随着软件系统规模越来越大,越来越复杂,新的问题也随之而来, 大量实践统计表明:
系统软件开发中,70%的错误是由软件设计阶段引入的; 而且错误在系统中存在的时间越长则越难发现, 解决这些错误的代价也越高,于是整个系统的结构和规格说明逐渐占有了重要的位置,软件体系结构这一概念也应运而生。它成为了沟通软件需求和软件设计的一座桥梁。
1、软件体系结构的定义。
对于软件体系结构的定义,至今还没有一个统一的、得到广泛认可的解释,很多软件体系结构学者都提出了各自对体系结构的概念与定义。
软件体系结构的最核心概念有构件、连接件、配置、端口和角色。构件是具有某种功能可重用的软件基本单元,表示软件系统中主要的计算元素和数据存储单元。连接件表示了构件之间的交互,是构件与构件之间建立和维持行为关联和消息传递的途径。
包括实现构件之间的交互机制和管理这些交互的原则(协议)。配置表示了构件和连接件之间的拓扑结构和逻辑约束,它是构件和连接件的集合。总之,软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。
软件体系结构不仅定义了系统的组织结构和拓扑结构,而且表示了系统的需求和构成系统的元素之间的对应关系提供了设计决策的基本原理和约束条件。
2、软件体系结构的风格。
软件体系结构风格是描述某一特定应用领域中系统组织方式的惯用模式。它反映了领域中众多系统所共有的结构和语义特性,并指导如何将各个模块和子系统有效地组织成一个完整的系统,按这种方式理解,软件体系结构风格定义了用于描述系统的术语表和一组指导构件系统的规则。
2.1数据流系统。
数据流是一种将数据从输入端显式的输送到输出端的体系结构风格。数据流风格的构件是数据的处理单元,连接件是连接处理单元的通道。
数据流体系结构风格是由数据驱动的。数据在按照一定顺序排列好的构件上有序的流动。当有数据流经构件时,控制被激活。
这种数据流显式地流经系统各个构件,流经的过程往往是有序的。构件之间不共享任何状态信息,即一个构件不知道上一个构件对数据进行了什么处理。数据流风格包括批处理、管道过滤器、任务处理三种体系结构。
2.1.1数据流优点。
1)构件之间不共享状态,降低了构件的复杂性;
2)支持构件复用;
3)支持并发执行;
4)系统易于维护。
2.1.2数据流的缺点。
1)不适合交互式系统。
2)需要处理同步问题。
3)解析输入输出的数据增加了系统的复杂性。
4)处理相关数据流失可能会产生同步问题。
2.2 正交软件体系结构风格。
正交软件体系结构是一种以垂直线索构件族为基础的层次化结构, 它由组织层和线索的构件构成, 不同线索中的构件之间没有相互调用(即线索相互独立)。层由一组具有相同抽象级别的构件构成。线索是子系统的特例, 它由完成不同层次功能的构件组成(可通过相互调用来关联), 每一条线索完成整个系统中相对独立的一部分功能。
正交软件体系结构基本思想是把应用系统的结构按功能的正交相关性, 直分割为若干个线索(子系统), 线索又分为几个层次, 每个线索由多个具有不同层次功能和不同抽象级别的构件构成。各线索的相同层次的构件具有相同的抽象级别。正交软件体系结构具有结构清晰、易于理解、易修改、可维护性强和可移植性强、重用粒度大等优点。
2.3分层系统。
分层系统将整个软件系统组成一个层次结构,系统的每个中间层既要为上次提供服务,又要调用下层的功能。
表示层是系统的用户接口部分,由用户界面**组成,它担负着用户与应用间的对话功能,使用功能层提供的服务,不直接访问后台数据库。它用于检查用户从输入设备发出的输入的数据,并且显示输出的数据。为使用户能直观地进行操作,一般使用图形用户接口、操作简单、易学易用。
在变更用户接口时,只需改写显示控制和数据检查程序而不影响其他两层检查的内容也只限于数据的形式和取值的范围,不包括有关业务本身的处理逻辑。
功能层相当于软件系统的本体,它是将具体的业务处理逻辑编入程序中。对于较大的系统,功能层。
可以进一步分成若干层。表示层和功能层之间的数据交往要尽可能简洁。
数据层就是数据库管理系统,负责管理对数据库数据的读写。数据库管理系统必须能迅速执行大量数据的更新和检索,满足功能的需求。
分层风格有效支持了软件设计的逐级抽象具有较好的可扩展性支持软件复用但也要注意降低层次之间的耦合程度。
2.4独立组件风格。
独立组件风格的构件是处理过程或者是对象。连接件是事件绑定或者消息传递。它包括事件处理体系结构和通讯处理体系结构。
2.4.1独立组件的特征。
事件处理体系结构主要处理隐式调用,它定义一组事件以及事件处理过程。构件之间通过不同的事件处理过程进行交互。事件处理过程与事件绑定,当事件发生时触发相应的事件处理过程,事件也可以与事件进行绑定。
通讯处理体系结构有一组过程组成。每个过程拥有自己的地址空间,它可以看成一个虚拟的处理器消息之间通过消息传递进行交互。消息传递的类型可以是同步的、异步的、点对点的、或者基于某种协议的点对点调用。
2.4.2独立组件的优点。
1)可重用性强。
2)容易实现系统的维护使用改进。
3)易于实现事件处理过程的并行运行。
2.4.3独立组件的缺点。
1)无控制部件。
2)需要全局的结构管理隐式事件绑定。
3)事件绑定可能无法在其它的运行时机制的环境中运行。
软件体系结构对软件质量和开发过程作用重大,,不仅提供了进行系统分析的手段, 并且成为不同参与者之间进行交流的媒介, 基于软件体系结构能较好地实现软件复用。上述几种常见的软件体系结构各有其优缺点, 对于应用体系结构风格来说, 由于视点的不同, 选择性上有很大的选择空间。但软件体系结构风格的研究还不够成熟,一些特定领域的软件体系结构风格还有待于深入研究。
1】 张广泉。软件体系结构;概念、风格与描述语言【j】.重庆师范学院学报;自然科学版,2000,9,17(3):1-5.
2】 张友生。软件体系结构;北京;清华大学出版社。2004
3】 梅宏,申峻嵘。软件体系结构研究进展;软件学报[,2006,17(6):1257-1275.
软件体系结构
课程名称 软件体系结构。课程编号 c304 课程学分 2 适用学科 计算机应用技术。software architecture 教学大纲。一 课程性质。本课程是为计算机应用专业研究生开设选修课。软件体系结构是软件开发设计的高级课程,对培养计算机应用专业研究生今后从事大型软件开发工作有重大意义。二 课...
软件体系结构
课程名称 软件体系结构。课程编号 c304 课程学分 2 适用学科 计算机应用技术。software architecture 教学大纲。一 课程性质。本课程是为计算机应用专业研究生开设选修课。软件体系结构是软件开发设计的高级课程,对培养计算机应用专业研究生今后从事大型软件开发工作有重大意义。二 课...
软件体系结构
一 软件体系结构和框架的定义。软件体系结构的英文单词是 architecture architecture的基本词义是建筑 建筑学 建筑风格。软件体系结构虽然根植于软件工程,但还处于一个研究发展的阶段,迄今为止还没有一个为大家所公认的定义。设计模式 中对框架的定义是框架就是一组相互协作的类,对于特定...