软件危机
指在计算机软件的开发和维护过程中所遇到的一系列严重问题
1.表现
(1)软件成本日益增长
(2)开发进度难以控制
- 用户需求变化
- 盲目增加软件开发人员并不能成比例地提高软件开发能力
(3)软件质量差
(4)软件维护困难
2.原因
- 用户需求不明确
- 缺乏正确的理论指导
- 软件规模越来越大
- 软件复杂度越来越高
3.克服软件危机
- 技术上,采用基于重用的软件生产技术
- 管理上,采用多维的工程管理模式
4.软件工程层次图
- 工具
- 方法
- 过程
- 质量关注点(最基础要素)
体系结构的兴起和发展
软件总是有体系结构的,不存在没有体系结构的软件
研究软件体系结构的根本目的:解决好软件的重用、质量和维护问题
软件体系结构
- 处理构件
- 数据构件
- 连接构件
软件体系结构是一个抽象的系统规范
软件体系结构指定了系统的组织结构和拓扑结构
软件体系结构技术4个发展阶段
(1)无体系结构设计阶段
- 以汇编语言进行小规模应用程序开发为特征
(2)萌芽阶段
- 出现了程序结构设计主题,以控制流图和数据流图构成软件结构为特征
(3)初期阶段
- 出现了从不同侧面描述系统的结构模型,以 UML 为典型代表
(4)高级阶段
- 以描述系统的高层抽象结构为中心,不关心具体的建模细节,划分了体系结构模型与传统软件结构的界限,该阶段以 Kruchten 提出的“4+1”模型为标志