第一章_软件体系结构概论解析

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

参考书
Software Architecture: Foundations,
Theory, and Practice Software Architecture in Practice 张友生等,软件体系结构,清华大学出版社 齐治昌等,软件设计与体系结构 ,高等教 育出版社
第一章 软件体系结构概论
软件体系结构
Software Architecture
课程的内容
软件体系结构概论 软件体系结构建模 软件体系结构风格 特定领域的软件体系结构 Web服务体系结构 软件演化技术 软件产品线 软件体系结构评估 云计算体系结构
课程的安排
理论:36学时
讨论:18学时 学分:3学分
19
1.2 软件危机
软件危机 软件危机是指在计算机软件的开发和维护过 程中所遇到的一系列严重问题。
1.2 软件危机
软件危机的具体表现 对开发成本和开发进度难以进行准确地估计 用户对软件产品不满意 软件产品的质量难以保证 软件产品维护非常困难 软件产品没有适当的文档资料 软件成本在计算机系统总成本中所占的比例 逐年上升 软件开发效率的提高远远跟不上计算机应用 快速普及的趋势
13
13Baidu Nhomakorabea
THU SAGroup
一些经典的文献列表
M. Shaw and D. Garlan, “An Introduction to Software




Architecture,” V. Ambriola and G. Tortora, eds., Advances in Software Engineering and Knowledge Engineering, vol. 2, World Scientific Publishing, 1993, pp. 1–39 D.E. Perry and A.L. Wolf, “Foundations for the Study of Software Architecture,” ACM Software Eng. Notes, vol. 17, no. 4, 1992, pp. 40–52. D.L. Parnas, “On the Criteria to Be Used in Decomposing Systems into Modules,” Comm. ACM, vol. 15, no. 12, 1972, pp. 1053–1058. D.L. Parnas, “On the Design and Development of Program Families,” IEEE Trans. Software Eng., vol. 2, no. 1, 1976, pp. 1– 9. D.L. Parnas, P. Clements, and D.M. Weiss, “The Modular Structure of Complex Systems,” IEEE Trans. Software Eng., 14 14 vol. 11, no. 3, 1985, pp. 259–266.
THU SAGroup
软件体系结构发展简史
萌芽期 发展期 成熟期
17
17
THU SAGroup
软件体系结构发展简史
18
18
1.2 软件危机
计算机系统 适当地组织在一起的一系列系统元素的集合, 这些系统元素互相配合、相互协作,通过对 信息的处理而完成预先定义的目标。
计算机软件:程序+数据结构+文档 计算机硬件:提供计算能力的设备+外设 计算机系统元素 数据库:大型的有组织的数据集合 人员:硬、软件的用户和操作者 文档:系统的描述信息 过程:一系列的步骤
10
NATO
Edsger Dijkstra
Frederick P. Brooks
THU SAGroup
软件体系结构发展简史
1972~1976年,现代软件开发思想被提出 information hiding and usage of interface (Parnas,1972) structure separation (Parnas, 1974) the relationships between software structure and its quality (Parnas,1976) 戴维 帕纳斯,美国 1991年,”Software Architecture”在正 式文献中被使用 Software Architecture: Integrating Process and Technology authored Walker E. Royce and Winston W. Royce 沃克 罗伊斯;温斯顿 罗伊斯, 美国
12
12
THU SAGroup
软件体系结构发展简史
2000年,
Software Architecture Product Line The Design and Use of Software Architecture authored by Bosch 2003年,UML2.0 发布 2000年至今,动态软件体系结构 π-ADL,LIME, dynamic Wright, …
THU SAGroup
一些经典的文献列表
D. Soni, R. Nord, and C. Hofmeister, “Software Architecture in




Industrial Applications,” Proc. 17th Int’l Conf. Software Eng. (ICSE 95), ACM Press, 1995, pp. 196–207. P. Kruchten, “The 4+1 View Model of Architecture,” IEEE Software, vol. 12, no. 6, 1995, pp. 45–50. B.W. Lampson, “Hints for Computer System Design,” Operating Systems Rev., vol. 15, no. 5, 1983, pp. 33–48; reprinted in IEEE Software, vol. 1, no. 1, 1984, pp. 11–28. J.A. Mills, “A Pragmatic View of the System Architect,” Comm. ACM, vol. 28, no. 7, 1985, pp. 708–717. W.E. Royce and W. Royce, “Software Architecture: Integrating Process and Technology,” TRW Quest, vol. 14, no. 1, 1991, pp. 2–15. M. Shaw and P. Clements, “A Field Guide to Boxology: Preliminary Classification of Architectural Styles for Software Systems,” Proc. 21st Int’l Computer Software and 15 Applications Conf. (COMPSAC 97), IEEE CS Press, 1997, pp.
1.1软件体系结构发展简史 1.2软件危机 1.3软件复用 1.4软件构件的组织与检索
1.5软件构件化
1.6软件体系结构
THU SAGroup
软件体系结构发展简史
程序设计语言的进化——抽象级别(Abstract
Level)
面向问题空间 面向代码段 面向机器
面向问题空间 是
软件体系结构发展简史
软件开发的进化——关注点(Concern)
1
灵活使用机器使用 的底层指令和数据
(Primitive instructions and data)
2
提高开发效率、代 码可读性、易维护 性
(Efficiency and convenience in code reading and maintenance)
1.2软件危机

11
David Parnas
11 Walker E. Royce
THU SAGroup
软件体系结构发展简史
1993年,
Software Architecture被定义,此定义成为 软件体系结构研究的公认基础 An Introduction to Software Architecture authored by David Garlan and Mary Shaw 20世纪90年代 ,软件体系结构描述语言(ADL)兴盛 Darwin, Wright, C2, Rapide, MetaH, ACME, … 20世纪90年代,软件体系结构评估方法兴起 SAAM, ATAM, … 2000年, IEEE1471-2000标准 IEEE Recommended practice for architectural description of software-intensive systems
3
实现软件产品线式 生产
(Software Product Line)
9
THU SAGroup
软件体系结构发展简史
1960年代,软件危机爆发 1968年,软件工程被提出
software engineering conference 1968年,软件体系结构思想被提出 “The Structure of the ‘THE’ Multiprogramming System” authored by Edsger Dijkstra ( 艾德勒 戴克斯加,荷兰) 1975年,软件体系结构思想被升华 “Architecture is the complete and detailed specification of the user interface” by Frederick Brooks (弗兰德里克 布鲁克斯, 美国)
1.2软件危机
软件危机的成因 硬件生产效率的快速提高 软件产品生产效率较低 软件供需失衡 用户需求不明确 整个软件开发过程缺乏正确的理论指导 软件产品的规模越来越大 软件产品开发的复杂度越来越高
1.2软件危机
克服软件危机
人们面临的不光是技术问题,更重要的
是管理问题。管理不善必然导致失败 。 要提高软件开发效率,提高软件产品质 量,必须采用工程化的开发方法与工业 化的生产技术。 在技术上,应该采用基于重用的软件生 产技术;在管理上,应该采用多维的工 程管理模式。
这样一种抽象级别 。它直接将问题空 间中的实体以及实 体的关系表达出来 。如利用“类”来 表示物理世界的实 物。
面向代码段 将可
复用的功能代码总 结和包装以保证重 用。如基本的数值 计算,过程控制等 。
面向机器 是一种
针对如何直接操作 机器指令来使用计 算机资源的抽象级 别。
8
THU SAGroup
THU SAGroup
软件体系结构发展简史
NSF 2007 Science of Design Principal Investigators' (PI) Meeting
Mary Shaw 玛丽 娋
Frederick Brooks 弗兰德 里克 布鲁克斯
16
Barry Boehm 拜瑞 波姆
Carliss Baldwin 卡利斯 鲍德温
与其他课程的关系
软件工程过程、系统分析与设计、轻量级
J2EE框架Spring、基于MVC的Web开发、 .NET客户端框架技术
课程的目标
通过本课程的学习,应达到知识和技能两方 面的目标: 知识方面:牢固掌握软件体系结构的基本概 念、方法和原理,并能够灵活地运用这些基 本知识解决软件设计问题, 技能方面:在各种软件设计中应用多种设计 模式、框架和体系结构;使用不同的中间件 技术设计并实现软件。
相关文档
最新文档