系统架构设计基础知识

一. 系统架构概述系统架构的定义
系统架构(System Architecture)是系统的一种整体的高层次的结构表示,是系统的骨架和根基,支撑和链接各个部分,包括构件、连接件、约束规范以及指导这些内容设计与演化的原理,是刻画系统整体抽象结构的一种手段。

软架构的定义

软件体系结构为软件系统提供了结构行为属性的高级抽象,由构成系统的元素描述、元素的外部可见属性、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策和演化的基本原理,是构建于软件系统之上的系统级复用。

信息系统架构的定义

信息系统架构 ISA 是关于软件系统的结构行为属性的高级抽象,结构中包括软件的构件、构件的外部可见属性、这些构件之间的相互关系。

在描述阶段,其对象是直接构成系统的抽象组件以及各个组件之间的连接规则,特别是相对细致的描述组件之间的通信

在实现阶段,这些抽象组件被细化为实际的组件,比如具体的类、对象。

二. 软件架构的生命周期

1. 需求分析阶段           

从软件需求模型SA模型的转换,主要关注两个问题:

(1) 根据需求模型构建架构模型:用例图经过词法分析转换为SA模型(类图)

(2) 保证模型转换的可追踪性:表格用例映射

2. 设计阶段           

这个阶段的研究主要包括3个方面:

(1) SA模型的描述

(2) SA模型的设计与分析方法

(3) 对SA设计经验的总结与复用

SA模型描述的三个层次

(1) SA的基本概念:SA描述方法是构件和连接子的建模。

(2) 体系结构描述语言ADL:支持构件连接子及其配置的描述语言。

(3) SA模型的多视图表示:体现了关注点分离的思想。“4+1”视图模型。

1. 逻辑视图:最终用户关注系统的功能,描述系统的静态结构表示了设计模型中在架构方面具有重要意义的部分。记录设计元素的功能和概念接口。(类图、对象图)
2. 开发视图:程序员关注系统的实现描述系统构件组织模块之间的依赖对组成系统的构件进行建模,描述了在开发环境中软件的静态组织结构,代码构件组织、模块、模块之间的依赖关系。(模块结构图、构件图)
3. 过程视图:系统集成人员关注并发同步特征,描述线程间的并发同步可执行线程和进程作为活动类的建模,是逻辑视图的一次执行实例,描述了并发与同步结构。(活动图、状态图)
4. 物理视图:系统工程师关注系统的部署安装定义软硬件的物理体系结构描述了软件到硬件的映射,主要描述硬件配置,系统中软硬件的物理体系结构及连接。(配置图)
5. 统一场景:分析人员和测试人员关注系统的行为

用例:描述功能需求。

质量场景:描述质量需求。

3. 实现阶段           

这个阶段的研究主要包括3个方面:
(1) 研究基于SA的开发过程支持:项目组织结构、配置管理。

(2) 寻求从SA模型实现过渡的途径:模型映射、构件组装、复用中间件平台。

(3) 研究基于SA的测试技术。

填补高层SA模型底层实现的鸿沟的典型方法

(1) 在SA模型中引入实现阶段的概念,如引入程序设计语言元素。

(2) 通过模型转换技术,将高层的SA模型逐步精化成能够支持实现的模型。

(3) 封装底层的实现细节,使之成为较大粒度构件,在SA指导下通过构件组装的方式实现系统,通常需要底层中间件平台的支持。

4. 构件组装阶段           

这个阶段的研究主要包括2个方面:
(1) 支持可复用构件的互联,即对SA设计模型中规约的连接子的实现提供支持。

(2) 在组装过程中,检测并消除体系结构失配问题。

对设计阶段连接子的支持:

将连接子转换为具体的程序代码,在工具的支持下,生成连接子的代码。

中间件的基本功能:

提供了构件之间跨平台交互的能力。

提供强大的公共服务能力。

体系结构失配:待复用构件对最终系统的体系结构和环境的假设,与实际状况不同而导致的冲突。

5. 部署阶段           

SA对软件部署的作用:
(1) 描述部署阶段的软硬件模型:基于SA提供的高层的体系结构视图。

(2) 分析部署方案的质量属性:基于SA模型分析,选择合理的部署方案。

6. 后开发阶段           

这个阶段的研究主要围绕维护、演化、复用来进行,有2个典型的研究方向:

(1) 动态软件体系结构

  • 体系结构设计阶段的支持

变化的描述、修改策略、描述修改过程、修改的可行性、修改所带来的影响。

  • 运行时刻基础设施的支持

体系结构的维护、保证修改在约束范围内、运行时刻信息、分析修改后的体系结构符合指定的属性、正确映射构造元素的变化到实现模块。

(2) 体系结构恢复与重建

从已实现的系统中获取体系结构的过程,输出一组体系结构视图。

重建的方法分为4类:手工重建、工具支持的手工重建、通过查询语言来自动建立聚集、使用其它技术(数据挖掘)。

三. 基于架构的软件设计ABSD

基于体系结构的软件设计 Architecture-Based Software Design

ABSD方法是体系结构驱动的,指由构成体系结构的商业质量功能需求的组合驱动的架构设计。

ABSD方法是一个自顶向下、递归细化的方法,软件系统的体系结构通过该方法得到细化,直到能产生软件构件

ABSD设计活动从项目总体框架明确就开始,此时需求抽取和分析还没完成。

ABSD方法的3个基础

1. 功能的分解

2. 通过选择体系结构风格来实现质量和商业需求。

3. 软件模板的使用

视角与视图 — 描述软件架构

用例 — 描述功能需求

质量场景 — 描述质量需求

静态视角:展示功能组织,判断质量特性。

动态视角:展示并发行为,判断行为特性。

  • 描述软件架构视角 + 视图
  • 描述需求用例</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值