软 件 架 构 设 计 指 南 一、 软件架构设计 当对象、类、构件、组件等概念出现并成熟之后,传统意义上的软件概要设计(或软件系统设计),就逐渐改名为软件架构设计。所以说,软件架构设计就是软件概要设计。软件架构设计工作由架构师来完成,架构师是主导系统全局分析设计和实施、负责软件构架和关键技术决策的角色,他的具体职责为: 领导与协调整个项目中的技术活动(分析、设计入实施等) 推动主要的技术决策,并最终表达为软件构架描述 确定和文档化系统中对构架而言意义重大的方面,包括系统的需求、设计、实施和部署等“视图” 确定设计元素的划分以及这些主要分组之间的接口 为技术决策提供规则,平衡各类涉众的不同关注点,化解技术风险,并保证相关决定被有效传达和贯彻 理解、评价并接收系统需求 评价和确认软件架构的实现 二、 软件架构基本概念 5.1 软件架构定义 系统是部件的集合,完成一个特定的功能或完成一个功能集合。架构是系统的基本组织形式,描述系统中部件间及部件与环境音质相互关系。架构是指导系统设计和深化的原则。 系统架构是实体、实体属性以及实体关系的集合。 软件架构是软件部件、部件属性以及客观存在们之间相互作用的集合,描述软件系统的基本属性和限制条件。 5.2 软件架构建模 软件架构建模是与软件架构的定义和管理相关的分析、设计、文档化、评审及其他活动。 软件架构建模的目的: a) 捕获早期的设计决策。软件架构是最早的设计决策,它将影响到后续设计、开发和部署,对后期维护和演变也有很大的影响。 b) 捕获软件运行时的环境。 c) 为底层实现提供限制条件。 d) 为开发团队的结构组成提供依据。 e) 设计系统满足可靠性、可维护性以及性能等方面的要求。 f) 方便开发团队之间的交流。 5.3 软件架构视图 软件架构视图是指从一个特定的视角对系统或系统的一部分进行的描述。架构可以用不同的架构视图进行描述,如逻辑视图用于描述系统功能,进程视图用于描述系统并发,物理视图用于描述系统部署。常见的有RUP的 4+1视图; 5.4 软件架构设计需包括: a) 软件系统中包含了哪些子系统和部件; b) 每个子系统和部件都完成哪些功能; c) 子系统和部件对外提供或使用外部的哪些; d) 子系统和部件间的依赖关系,以及对实现和测试的影响; e) 系统是如何部署的。 三、 软...