3.53软件架椅设计方法
软件架构设计是动态的,设计的初期并不能完全确定下来,这与建筑设计不同。由
于架构设计伴随着整个项目进行,因此在整个过程中一定要把握架构设计的目标。软件
架构设计的总体目标可以概括如下。
(1)最大化复用:复用包括构件的复用和设计模式的使用等多个方面。
(2)复杂问题简单化:这也是中间件或多层技术的根本目标。在设计过程中,如果
需要多个类协调完成某些功能时,应能正确使用适当的设计模式。
(3)灵活的扩展性:具备灵活的扩展性使得用户可以在架构上进行二次开发或更加
具体的开发。
软件架构是软件系统中的核心元素,是系统中不易改变、比较稳定的部分,也是构
建软件系统中其他部分的基础,因此系统架构的好坏从根本上决定了基于该架构所构建
的软件系统的质量。系统的各个组成部分正是通过架构所描绘的方式协同工作共同完成
系统的功能,从而得到一个完整的系统。由于系统的本质是不易改变的,所以如果一个
架构能够真实地反映出系统的本质,那么就可以使基于该架构建立的系统具有比较长的
生命力,否则该系统的质量就会逐步降级,直至崩溃。系统架构的构建一直是软件开发
过程中的一项重要工作,同时也是一项很困难的工作,即使对于很有经验的系统架构师
也是如此。模式的应用则给出了一条构建系统架构的有效途径。
要建立一个正确的架构,首先要分析系统中的一些抽象概念(相对稳定的部分)。
针对问题领域中的概念进行分类,把看上去不同但本质上属于同一类的概念用一个抽象
的概念表示出来,然后基于这些抽象概念创建架构,确定各抽象概念之间的关系。在创
建架构过程中,需要考虑重用性、通用性等问题,使用适当的模式作为指导原则设计解
决方案。
很多模式本身就是针对系统架构提出的,例如模型.视图·控制器(Model-View-
Controller,MVC)是专门针对交互系统提出的。如果要构建一个交互系统,可以直接应
用MVC模式,然后在该模式的场景下去发现模型、视图及控制器:同时,在这个大场
景的指导下根据其他需求构建一些小场景(可以使用其他模式)对系统进行有效的细化。
模式和系统架构有很大的相似性,都是处理一些抽象概念间的关系,但是二者有很
大的不同。模式是领域无关的,解决某些抽象问题;而系统架构则针对所要解决的实际
问题,是领域相关的。可以通过对问题领域的分析、分解,找到与解决问题相匹配的模
式,把各种模式结合在一起构建整个系统架构。
各省软考办 | ||||||||||