软件架构设计(一)
引言
从第一个程序被划分成模块开始,软件系统就有了体系结构。
—— Shaw and Garlan
软件架构的概念
软件构件:
一个程序和计算机系统软件的体系结构:是指系统的一个或多个结构。结构即软件的构件,包含构件的外部可见属性和构件间的相互关系。
—— Bass、Clements和Kazman
(体系结构:体,机体/软件体;系,一系列的组成部分,这里体系全指软件;结:联系关系,构:构件)
软件构件可以是简单的程序模块或面向对象的类,也可以是数据库、或能够完成客户与服务器网络配置的“中间件”。
软件体系结构设计的两个层次(设计金字塔):数据设计和体系结构设计
数据设计:数据构件和面向对象系统中类的定义(类的属性和操作)
体系结构设计:关注软件构件的结构、属性和交互作用。
体系结构设计即是构件软件的初始蓝图。
软件架构设计及其生命周期
1. 需求分析阶段
本质上,需求和SA面临的是不同的对象:一个是问题空间,另一个是解空间。保持二者的可追踪性和转换,是软件工程领域追求的目标。
从软件需求模型向SA模型转换:
1)如何根据需求模型构建SA模型
2)如何保证模型转换的可追踪性
上述问题的解决方案,随需求模型的不同而各异。
例如,采用User Case图描述需求的方法中,从User Case图向SA模型(包括类图等)的转换一般经过词性分析和一些经验规则来完成,而可追踪行则通过表格或 User Case Map等来维护。
需求分析与SA研究二者的联系:
已有系统的SA模型对新系统的需求工程有很好的借鉴作用;在需求阶段开始对SA研究有助于将SA的概念贯穿整个软件的生命周期,保证软件开发过程中的概念完整性,有利于各阶段参与者的交流,也易于维护各个阶段的可追踪性。