1. 软件危机的表现:
(1)软件成本日益增长
(2)开发进度难以控制
(3)软件质量差
(4)软件维护困难
2. 软件危机的原因:
(1)用户需求不明确
(2)缺乏正确的理论指导
(3)软件规模越来越大
(4)软件复杂度越来越高
3. 17世纪20年代,具有丰富建造单层炮舰但缺乏双层舰建造经验的设计师亨瑞克.赫勃兹逊耗尽了毕生精力建造了一艘双层舰,但是下海之后很快沉入水底。
阅读体会:合理的、切实可行的体系结构是保证应用系统运行的首要条件。构建任何一个应用系统之前,应对所用的体系结构进行评价,以便减少开发无先例的全新系统所承担的风险。
4. 软件体系结构:
(1)软件体系结构包括一个软件和系统构件,互联及约束的集合;一个系统需求说明的集合;一个基本原理用以说明这一构件,互联和约束能够满足系统需求。
(2)软件体系结构包括一个或一组软件构件、软件构件的外部的可见特性及其相互关系。其中,“软件外部的可见特性”是指软件构件提供的服务、性能、特性、错误处理、共享资源使用等。
【这个强调的是构件、服务和共享资源的使用、构件之间的关系。体系结构定义了元素以及它们如何交互。】
5. 每个系统都有一个体系结构
每个系统都是由元素和元素之间的关系组成。最简单的例子,一个系统就是由一个元素和它自身的关系组成。
6. 构架是系统的总体结构。(错)
它暗含了意思是系统只有一个结构。而结构的多样性位于构架概念的核心。
7. 构架是组件和连接器。(不完全)
因为连接器是指系统运行时为传送控制和数据信息而采用的机制。因此这种说法强调了运行时的构架。
8. 构件:
(1)构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统.
【语义完整:能实现相关功能 语法正确:可运行】
(2)结构上,构件是语义描述、通讯接口和实现代码的复合体。
【语义描述:相关功能描述 通讯接口:可独立使用,并和其他交互】
9. 软件体系结构的意义:
(1)体系结构是风险承担者进行交流的手段
【体系结构提供了一种共同语言来表达各种关注和协商。系统的大部分有关人员能把它作为建立一个互相理解的基础,形成统一认识,互相交流】
(2)体系结构是早期设计决策的体现
【明确了对系统实现的约束条件,决定了开发和维护组织的组织结构,制约着系统的质量属性】
(3)软件体系结构是可传递和可重用的模型
【基于构件的软件开发】
10. 软件体系结构在软件开发各阶段中的作用
(1)项目规划阶段
【运行环境、工具和构件是否满足要求、是否有现有系统】
(2)需求分析阶段
【沟通交流,找到合理的平衡方案】
(3)项目设计阶段
【参考风格,设计体系结构模型,修改,求精,文档化】
(4)项目实施阶段
(5)测试与系统评估阶段
【可用性和可靠性】
(6)维护与升级阶段
11. 思考题
(1)为什么软件体系结构应遵循统一的标准?
(2)软件体系结构在软件开发的各个阶段起什么作用?
(3)为什么说软件体系结构是系统分析和设计的高层复用?