计算机杂谈

软件体系结构

2019-06-12  本文已影响30人  爱敲代码的王小帅

Chapter 0 —— 引子

1.软件危机

软件危机是指计算机软件开发和维护过程中遇到的一系列严重问题。包括两方面的问题:
(1)如何开发软件以满足日趋复杂的需求
(2)如何维护数量不断膨胀的软件产品

2.软件工程

(1)将系统化的、规范化的可量化的方法应用于软件的开发运行和维护,即将工程应用于软件

(2)对(1)中所述方法的研究

3.软件工程的发展阶段

传统软件工程、面向对象的软件工程、构件软件工程、面向服务的软件工程

4.软件工程的基本方法

复用、分而治之、优化折中


Chapter 1 —— 概述

1.1 软件体系结构

(1)定义
(2)体系结构的类别
(3)SA对SE的贡献
  1. 开发团队的组织结构
  2. 需求获取
  3. 设计方案的选择
  4. 分析和描述复杂系统的高层属性
  5. 人员交流
  6. 技术进步
(4)软件质量

1.2 当前的软件设计

(1)体系结构的设计选择对软件的长远成功是至关重要的

(2)体系结构描述具有不规范性

(3)软件体系结构理论和工具是解决软件复杂性和工程设计的必由之路

1.3 软件设计的层次

1.4 软件结构与软件工程

1.5 软件体系结构的知识体系


Chapter 2 —— 软件体系结构的研究和发展

2.1 软件工程设计和软件体系结构

(1)软件设计目标

在时间和各类资源限制下,最大程度地满足用户需求。

  1. 便于维护和升级,因此应该是模块化的
  2. 设计应该是便于移植的(移植比重新设计花费要小很多)
  3. 设计具有适应性
  4. 设计过程应该收到理性的控制
  5. 设计应该表现出概念的完整性
(2)软件设计中出现的问题
  1. 对于需求变化缺乏配合
  2. 过程控制对于维持软件设计的正确性缺乏保证
  3. 软件产品缺乏概念完整性

2.2 什么是软件体系结构

(1)Garlan and Shaw精简的定义为:

体系结构 = 组件 + 连接件 + 约束

(2)当前对软件体系结构的认识

2.3 软件体系结构的意义和目标

(1)软件体系结构在软件开发中的意义
  1. 软件体系结构是软件开发过程初期的产品,对于开发进度和软件质量的一切资金和劳务投入,可以获得最好的回报。
  2. 体系结构设计是形成的投资高汇报的重要因素。
  3. 正确有效的体系结构设计会给软件开发带来极大的便利。
(2)软件体系结构的目标

2.4 软件体系机构的研究范畴

  1. 软件体系结构描述语言和工具(ADL)
  2. 产品线和标准:企业 -> 需求 -> 架构 -> 系统
  3. 软件体系结构风格以及风格的应用
  4. 体系结构文档化

Chapter 3 —— 软件体系结构的层次性

3.1 体系结构的基础和层次特性

从建筑学看软件的构成:基础、层次、模式、角色划分

(1)从建筑的基础性看软件构成
(2)从建筑的层次性看软件构成
(3)从建筑的组合性看软件构成
(4)从建筑业看各个角色的划分。

补充:

3.2 软件体系结构的层次结构模型

(1)任何软件的完整结构都具有层次关系:
(2)软件体系结构的层次结构模型(6层):
软件体系结构的层次结构模型

3.3 从层次模型看软件体系结构


Chapter 4 —— 软件体系结构的设计原理

(1)体系结构设计中遵循的原理

(2)软件的非功能特性


Chapter 5 —— 部件和连接器


Chapter 6 —— 体系结构的一般描述

1.通用的一般的描述方法

(1)主程序与子程序
(2)数据抽象和面向对象
(3)层次结构

2.理论的形式化方法(体系结构的描述)

(1)体系结构描述语言
几种体系结构描述语言的提出组织和倡导者
(2)类属理论
(3)Z Notation
(4)CSP(通信顺序进程)
(5)化学抽象机制CHAM

3.软件体系结构集成环境

目标:
元素:
(1)UniCon
UnicCon
(2)Wright
(3)Darwin
(4)ACME

4. 软件工程设计方法与体系结构描述


Chapter 7 —— 设计模式

Others

1. 软件体系结构的“4+1”视图模型

Kruchten 提出了一个"4+1"视图模型,从5个不同的视角包括包括逻辑试图、进程视图、物理视图、开发视图、场景视图来描述软件体系结构。每一个视图只关心系统的一个侧面,5个试图结合在一起才能反映系统的软件体系结构的全部内容。

“4+1”视图模型
UML和各视图的对应关系
4+1视图 UML
场景视图 use case
逻辑视图 类图
开发视图 类图,组件图
进程视图 无完全对应
部署视图 部署图

2. 体系结构风格

通用体系结构风格表

3. 一些面向对象的设计法则

(1)优先使用组合而非继承
(2)针对接口编程而非实现
(3)开关原则(OCP)

对扩展开放,对修改关闭

(4)Liskov替换原则(LSP)

任何基类可以出现的地方,子类一定可以出现(子类可以替换父类)

相关名词

软件体系结构风格:描述某一特定领域系统组织方式的特定模式

软件体系结构:软件体系结构定义了计算机局部与整体的构件组成、以及构件之间行为与信息交互的方式、总体来讲,软件体系结构是由构件和连接件按照一定层次结构组织的集合。

DSSA:特定领域体系结构、在一个特定的应用领域为一组应用提供组织结构参考的标准软件体系结构

软件产品线,产品线是一个产品集合,产品共享一个特征集,特征集能满足选定的市场或任务领域的特性需求。

ADL:在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架

设计模式:设计模式是对通用设计问题的重复解决方案

框架:是整个或部分系统的可重用设计

SOA:面向服务的架构

三层C/S结构风格:表示层、功能层、数据层

软件危机:软件开发和维护过程中遇到的一系列严重的问题

构件:具有独立结构和功能的可重用的单位软件。

体系结构描述语言ADL:能够描述体系结构的组成要素,并能对系统体系结构、体系结构风格进行建模和分析验证的描述语言。

上一篇下一篇

猜你喜欢

热点阅读