您现在的位置是:首页 >技术教程 >架构-系统架构设计模块-1网站首页技术教程
架构-系统架构设计模块-1
这一部分是考试的重点,占有分值较多,选择、案例、论文都有。
软件架构基本概念
基本概念
软件架构
-
软件架构设计主要关注软件构件的结构、属性和交互作用,并通过多种视图全面描述特定系统的架构。
-
软件架构设计是指通过一系列的设计活动,获得满足系统功能性需求,符合一定非功能性需求与质量属性有相似含义的软件系统框架模型。
-
在软件体系结构设计过程中,主要考虑系统的非功能性需求。软件体系结构设计经验的总结与重用是软件工程的重要目标之一。
-
软件结构设计的重要性主要有:
- 能够满足系统的品质
- 使受益人达成一致的目标
- 能够支持计划编制过程
- 对系统开发的指导性
- 能够有效管理复杂性
- 能够为复用奠定基础
- 能够降低维护费用
- 能够支持冲突分析
架构设计与生命周期
- 需求分析
- 设计阶段
- 实现阶段
- 构件组装阶段
- 部署阶段
- 后开发阶段
需求分析阶段
-
需求分析阶段软件架构研究还处于起步阶段。在本质上,需求和软件架构设计面临的是不同的对象:一个是问题空间;另一个是解空间。保持二者的可追踪性和转换,一直是软件工程领域追求的目标。从软件需求模型向软件架构模型的转换主要关注两个问题:
- 如何根据需求模型构建软件架构模型
- 如何保证模型的可追踪性
-
顶层需求模型 – 用例图
-
结构模型 – 类图
设计阶段
-
设计阶段是软件架构研究关注的最早和最多的阶段,这一阶段的研究主要包括:
- 软件架构模型的描述
- 软件结构模型的设计与分析方法
- 软件架构设计经验的总结与复用
-
实现阶段的体系结构研究在以下几个方面
- 研究基于软件架构的开发过程支持,如项目组织架构、配置管理等。
- 寻求从软件架构向实现过渡的途径,如将程序设计语言元素引入软件架构阶段、模型映射、构件组装、复用中间件平台等。
- 研究基于软件架构的测试技术
-
构件组装阶段研究内容包括
- 如何支持可复用构件的互联,即对SA模型中规约的连接子的实现提供支持。
- 组装过程中,如何检测并消除体系结构失配的问题。这些问题主要包括
- 由构件引起的失配,包括由于系统对构件基础设施、构件控制模型和构件数据模型的假设存在冲突引起的失配。
- 由连接子引起的失配,包括由于系统对构件交互协议、连接子数据模型的假设存在冲突引起的失配。
- 由于系统成分对全局体系结构的假设存在冲突引起的失配等。要解决失配问题,首先要检测出失配的原因,并在此基础上通过适当的手段消除检测出的失配问题。
-
部署阶段的软件架构对软件部署作用如下:
- 提供高层的体系结构视图描述部署阶段的软硬件模型。
- 基于软件架构模型可以分析部署方案的质量属性,从而选择合理的部署方案。
-
后开发阶段是指软件部署安装之后的阶段。这一阶段的软件结构研究主要围绕维护、演化、复用等方面来进行。典型的研究方向包括动态软件体系结构、体系结构恢复与重建等。
基于架构的软件开发方法
概述
- 基于体系结构(架构)的软件设计(Architecture-Based Software Design,ABSD)方法:
- 采用视角与视图来描述软件架构
- 采用用例来描述功能需求
- 采用质量场景来描述质量需求
- ABSD方法是自顶向下,递归细化的的方法。
- ABSD方法有三个基础:
- 第一个基础是功能的分解。在功能分解中,ABSD方法使用已有的基于模块的内聚和耦合技术
- 第二个基础是通过选择体系结构风格来实现质量和商业需求
- 第三个基础是软件模板的使用。软件模板利用了一些软件系统的结构
基于体系结构的开发模型ABSDM
传统软软件开发过程可以划分为从概念到实现的若干阶段,包括问题定义、需求分析、软件设计、软件实现及软件测试等。开发效率不高,不能很好的支持软件重用。
ABSDM 模型把整个基于体系结构的软件过程划分为体系结构需求、设计、文档化、复审、实现和演化等6个子过程,得到细化,直到能产生软件构件和类。
- 体系结构开发模型
- 体系结构需求过程,中间三部为标识构件
需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。体系结构受技术环境和体系结构设计师的经验影响,需求过程主要是获取用户需求,标识系统中所要用到的构件。如果以前有类似的系统结构需求我们可以从需求库中取出,加以利用和修改,以节省获取需求的时间,减少重复劳动,提高开发效率。
-
标识构件:为系统生成初始逻辑结构,包含大致的构件。可分为三部实现。
- 生成类图
- 对类进行分组。在类图基础上,使用一些标准对类进行分组可以大大简化类图结构,使之更加清晰。
- 把类打包成构件
-
架构需求评审
-
组织一个由不同代表(如分析人员、客户、设计人员、测试人员)组成的小组,对体系结构需求及相关构件进行仔细的审查。审查的主要内容包括所获取的需求是否真实反映了用户的要求,类的分组是否合理,构件合并是否合理等,必要时,可以在”需求获取-标识构件-需求评审“之间进行迭代。
-
体系结构设计过程
-
体系结构文档化过程的主要输出结果是体系结构规格说明和测试体系结构需求的质量设计说明书这两个文档。
-
体系结构复审是一个迭代过程。目的是标识出潜在的风险,尽早发现体系结构设计中的缺陷和错误。从这个方面来说,在一个主版本的体系结构分析之后,要安排一次由外部人员(用户代表和领域专家)参加的复审。
-
体系结构实现过程
- 体系结构演化过程