软件体系结构1软件体系结构发展中的若干重要问题.ppt
《软件体系结构1软件体系结构发展中的若干重要问题.ppt》由会员分享,可在线阅读,更多相关《软件体系结构1软件体系结构发展中的若干重要问题.ppt(182页珍藏版)》请在三一办公上搜索。
1、软件体系结构(1)软件体系结构发展中的若干重要问题覃征 教授,Software Architecture,目 录,THU SAGroup,2,课程介绍,授课教师主讲教授:覃征办公室 清华大学软件学院 208室电话 62795399电子邮件 助教组邢剑宽 章晋学,THU SAGroup,3,课程介绍,教材及参考书教材覃征等,软件体系结构(第二版),清华大学出版社,2008Qin Zheng et al.,Software Architecture,Springer Verlag,2008其它参考资料Len Bass,Paul Clements,Rick Kazman,Software Archi
2、tecture in Practice 2nd ed,Addison Wesley,2003Paul Clements,Rick Kazman,Mark Klein,Evaluating Software Architectures,清华大学出版社,2003Paul Clements,Linda Northrop,Software Product Line:Practices and Patterns,清华大学出版社,2003Christine Hofmeister,Robert Nord,Dilip Soni,Applied Software Architecture,Addison Wes
3、ley,2000Jacobson,Software Reuse:Architecture,Process,and Organization for Business Success,Addison Wesley,2000,THU SAGroup,4,教材,THU SAGroup,5,课程介绍,课程目标掌握软件体系结构的概念、组成和相关领域国内外研究现状。明确软件体系结构划分标准、设计原则。学习软件体系结构构建模型、软件体系结构组态分析方法、软件体系结构形式化描述方法、软件体系结构集成开发环境的设计与实现方法几个方面的知识,并掌握在实际系统开发过程中分析、设计、应用软件体系结构思想的技能。,TH
4、U SAGroup,6,课程介绍,课程成绩平时:40%课堂测试:10%(课堂提问、课堂考试、课堂报告)平时作业:30%期末考查:60%考试形式:以45人为一个小组,共同完成一个规定题目的科技论文,THU SAGroup,7,课程介绍,课程安排第一讲:软件体系结构发展中的若干重要问题(3)第二讲:软件体系结构风格与模式(9)第三讲:软件体系结构组态分析与应用(2*)第四讲:软件体系结构形式化描述(6)第五讲:CSP和软件体系结构描述语言(3*)第六讲:软件体系结构集成开发环境的设计与实现(3)第七讲:柔性软件体系结构(3*)第八讲:软件体系结构研究的展望(3)括号中为课时数,带星的为助教课,TH
5、U SAGroup,8,课程体系,THU SAGroup,9,什么是软件体系结构,如何利用软件体系结构进行宏观设计,软件体系结构设计案例分析,如何利用形式化基础描述软件体系结构,如何进行软件体系结构开发,什么是柔性软件体系结构,软件体系结构还有什么研究问题,目 录,THU SAGroup,10,研究背景,什么是软件软件一般认为由三部分组成:程序:在运行时,能提供所希望的功能和性能的指令集。数据结构:使程序能够正确运行的数据结构。文档:描述程序研制过程、方法及使用的文档。,THU SAGroup,11,研究背景,软件的特点抽象性:逻辑实体,可记录,但看不到可复制性:与开发成本相比,复制成本很低无
6、折旧受硬件制约未完全摆脱手工工艺开发费用高,THU SAGroup,12,研究背景,计算机软件发展的三个时期早期时代(60年代中期之前)程序设计阶段硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。第二代(60年代中期-70年代中期)程序系统阶段出现“软件作坊”、产品软件;“个体化”开发方法。第三代(70年代中期之后)软件工程阶段软件开发成为一门新兴的工程学科软件工程。,THU SAGroup,13,研究背景,THU SAGroup,14,计算机软件发展的三个时期及特点,研究背景,THU SAGroup,15,计算机软件发展的三个时期及特点,研究背景,我们需要的是软件符合质量要
7、求!软件需求是进行“质量”度量的基础,与需求不符就是质量不高。通常有一组“隐含需求(implicit requirements)”是不被提及的(如对维护性的需求)。如果软件符合了明确的需求却没有满足隐含需求,软件质量仍然值得怀疑。,THU SAGroup,16,为什么需要软件体系结构,随着社会的巨大进步,计算机系统的整体发展,新技术的不断涌现,使计算机应用的需求迅速增加。而软件费用的增加,高可靠性能下降,维护工作量增大,出现了严重的“软件危机”。软件危机已经持续了三十多年,表现为:软件的产品质量难以保障软件的开发效率难以提高,THU SAGroup,17,为什么需要软件体系结构,THU SAG
8、roup,18,软件失败的原因,研究背景,解决问题的想法更好的管理(Better management)出众的团队组织(Different team organizations)更好的语言和工具(Better languages&tools)统一的编程 规范(Uniform coding conventions)必须意识到:“软件”编程,它有自己的生命周期(life cycle)。大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。,THU SAGroup,19,研究背景,THU SAGroup,20,软件质量问题对经济的影响:美国NIST(国家商业标准和技术)报告,“
9、由于软件bug的普遍存在,使美国经济每年损失$590.5亿美元”,而Standish组织的数据是每年2000亿美元改进软件质量已经成为取得高投资回报率的直接途径,质量低的公司只会被遗忘软件质量问题对生命安全的威胁:1963 年,美国金星探测火箭飞行失败,造成经济损失达一千万美元,因为控制程序中的一个极小的错误,即将一逗号误写为一小数点!由于着陆系统的高度报警程序问题部分导致了1997年发生在关岛的韩国客机空难,228人遇难。1996 年,欧洲耗资高达7 亿美元的Ariane5 火箭发射后解体爆炸,究其原因是惯性参考系统中的一个软件设计错误,并由于认为这个软件不会发生错误而缺乏充分的测试。.,研
10、究背景,如果有什么东西可以在软件开发之前用于描述软件,并能进行质量分析,从而保证软件质量就好了软件体系结构,THU SAGroup,21,软件体系结构起源,THU SAGroup,22,结构设计师:设计图纸,管理人员:施工计划,施工人员:建造建筑物,软件体系结构思想来源于建筑业,软件体系结构起源,THU SAGroup,23,建立模型,软件体系结构起源,THU SAGroup,24,结构设计,软件体系结构起源,THU SAGroup,25,最终的建筑,鸟巢,更多的建筑源自于体系结构设计,THU SAGroup,26,玛雅阿兹特克金字塔,瑞士保险公司大楼,如果建筑的复杂度还不够高,那么一个城市呢
11、?,THU SAGroup,27,软件体系结构的本意,THU SAGroup,28,对于大规模的,分布的,需要协作的,需要交互的,需要监测的,需要扩展的,需要演化的复杂软件系统的规划。,软件体系结构发展简史,程序设计语言的进化抽象级别(Abstract Level),THU SAGroup,29,软件体系结构发展简史,软件开发的进化关注点(Concern),THU SAGroup,30,软件体系结构发展简史,1960年代,软件危机爆发1968年,软件工程被提出NATO software engineering conference1968年,软件体系结构思想被提出“The Structure
12、of the THE Multiprogramming System”authored by Edsger Dijkstra(艾德勒 戴克斯加,荷兰)1975年,软件体系结构思想被升华“Architecture is the complete and detailed specification of the user interface”by Frederick Brooks(弗兰德里克 布鲁克斯,美国),THU SAGroup,31,Edsger Dijkstra,Frederick P.Brooks,软件体系结构发展简史,19721976年,现代软件开发思想被提出information
13、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沃克 罗伊
14、斯;温斯顿 罗伊斯,美国,THU SAGroup,32,David Parnas,Walker E.Royce,软件体系结构发展简史,1993年,Software Architecture被定义,此定义成为软件体系结构研究的公认基础An Introduction to Software Architecture authored by David Garlan and Mary Shaw20世纪90年代,软件体系结构描述语言(ADL)兴盛Darwin,Wright,C2,Rapide,MetaH,ACME,20世纪90年代,软件体系结构评估方法兴起SAAM,ATAM,2000年,IEEE147
15、1-2000标准IEEE Recommended practice for architectural description of software-intensive systems,THU SAGroup,33,软件体系结构发展简史,2000年,Software Architecture Product LineThe Design and Use of Software Architecture authored by Bosch2003年,UML2.0 发布2000年至今,动态软件体系结构-ADL,LIME,dynamic Wright,THU SAGroup,34,一些经典的文献列
16、表,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.139D.E.Perry and A.L.Wolf,“Foundations for the Study of Software Architecture,”ACM Software Eng.Notes,vo
17、l.17,no.4,1992,pp.4052.D.L.Parnas,“On the Criteria to Be Used in Decomposing Systems into Modules,”Comm.ACM,vol.15,no.12,1972,pp.10531058.D.L.Parnas,“On the Design and Development of Program Families,”IEEE Trans.Software Eng.,vol.2,no.1,1976,pp.19.D.L.Parnas,P.Clements,and D.M.Weiss,“The Modular Str
18、ucture of Complex Systems,”IEEE Trans.Software Eng.,vol.11,no.3,1985,pp.259266.F.DeRemer and H.Kron,“Programming-in-the-Large versus Programming-in-the-Small,”Proc.Intl Conf.Reliable Software,ACM Press,1975,pp.114121.,THU SAGroup,35,一些经典的文献列表,D.Soni,R.Nord,and C.Hofmeister,“Software Architecture in
19、Industrial Applications,”Proc.17th Intl Conf.Software Eng.(ICSE 95),ACM Press,1995,pp.196207.P.Kruchten,“The 4+1 View Model of Architecture,”IEEE Software,vol.12,no.6,1995,pp.4550.B.W.Lampson,“Hints for Computer System Design,”Operating Systems Rev.,vol.15,no.5,1983,pp.3348;reprinted in IEEE Softwar
20、e,vol.1,no.1,1984,pp.1128.J.A.Mills,“A Pragmatic View of the System Architect,”Comm.ACM,vol.28,no.7,1985,pp.708717.W.E.Royce and W.Royce,“Software Architecture:Integrating Process and Technology,”TRW Quest,vol.14,no.1,1991,pp.215.M.Shaw and P.Clements,“A Field Guide to Boxology:Preliminary Classific
21、ation of Architectural Styles for Software Systems,”Proc.21st Intl Computer Software and Applications Conf.(COMPSAC 97),IEEE CS Press,1997,pp.613.M.Shaw,“The Coming-of-Age of Software Architecture Research,”Proc.23rd Intl Conf.Software Eng.(ICSE 01),IEEE CS Press,2001,pp.656664a.,THU SAGroup,36,软件体系
22、结构发展简史,THU SAGroup,37,Mary Shaw玛丽 娋,Frederick Brooks弗兰德 里克 布鲁克斯,Barry Boehm拜瑞 波姆,Carliss Baldwin卡利斯 鲍德温,NSF 2007 Science of Design Principal Investigators(PI)Meeting,软件体系结构发展简史,THU SAGroup,38,萌芽期,发展期,成熟期,软件体系结构发展简史,THU SAGroup,39,那么,THU SAGroup,40,什么是软件体系结构?,汽车传动系统设计,THU SAGroup,41,Xbox 360使用的三核处理器设
23、计,THU SAGroup,42,波音 787设计,THU SAGroup,43,航空母舰设计概念图,THU SAGroup,44,操作系统体系结构(以Ubuntu Linux为例),THU SAGroup,45,软件体系结构Lightning Framework,THU SAGroup,46,软件体系结构概述,自NATO于1968年提出软件工程概念以来,软件工程界已经提出了一系列的理论、方法、语言和工具,解决了软件开发过程中的若干问题.但是,软件固有的复杂性、易变性和不可见性,使得软件开发周期长、代价高和质量低的问题依然存在.大量实践统计表明:大系统软件开发中70的错误是由需求和软件设计阶段
24、引入的;而且错误在系统中存在的时间愈长则愈难发现,解决这些错误的代价也愈高.为了提高软件需求和软件设计的质量,软件工程界提出了需求分析工程技术和各种软件建模技术.但是在需求与设计之间仍存在一条很难逾越的鸿沟,即缺乏能够反映做决策的中间过程,从而很难有效地将需求转换为相应的设计.为此,软件体系结构概念应运而生,并试图在软件需求与软件设计之间架起一座桥梁,着重解决软件系统的结构和需求向实现平坦地过渡的问题.,THU SAGroup,47,软件体系结构概述,软件体系结构基本概念 就体系结构的本意而言,它是指建立系统时的构造范型、构造风格和构造模式,软件体系结构对于软件系统的构造所起的是指导性的作用,
25、它抛开了软件系统的功能细节,着重于讨论软件系统的总体框架。,THU SAGroup,48,开发了5年,投入资金达300多亿美元,历史上代码量最大,达到5000万行,仅核心工程师就有9000人团队的庞大软件开发项目,基于软件体系结构的分析、评估、计划、组织、开发、测试,软件体系结构概述,对于一个软件开发单位来说,选择合适的体系结构是最重要的决策之一良好的体系结构可以维系软件系统的完整性,使得开发和维护工作不至于杂乱无章;还可以简化软件系统复杂性,让众多的开发单位的软件工程师们能以并行方式开展工作.,THU SAGroup,49,软件体系结构概述,软件体系结构基本概念广义而言,软件系统结构涉及多方
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 体系结构 发展 中的 若干 重要 问题
链接地址:https://www.31ppt.com/p-6441946.html