1、学习软件体系结构构建模型、软件体系结构组态分析方法、软件体系结构形式化描述方法、软件体系结构集成开发环境的设计与实现方法几个方面的知识,并掌握在实际系统开发过程中分析、设计、应用软件体系结构思想的技能。,THU SAGroup,6,课程介绍,课程成绩平时:40%课堂测试:10%(课堂提问、课堂考试、课堂报告)平时作业:30%期末考查:60%考试形式:以45人为一个小组,共同完成一个规定题目的科技论文,THU SAGroup,7,课程介绍,课程安排第一讲:软件体系结构发展中的若干重要问题(3)第二讲:软件体系结构风格与模式(9)第三讲:软件体系结构组态分析与应用(2*)第四讲:软件体系结构形式化
2、描述(6)第五讲:CSP和软件体系结构描述语言(3*)第六讲:软件体系结构集成开发环境的设计与实现(3)第七讲:柔性软件体系结构(3*)第八讲:软件体系结构研究的展望(3)括号中为课时数,带星的为助教课,THU SAGroup,8,课程体系,THU SAGroup,9,什么是软件体系结构,如何利用软件体系结构进行宏观设计,软件体系结构设计案例分析,如何利用形式化基础描述软件体系结构,如何进行软件体系结构开发,什么是柔性软件体系结构,软件体系结构还有什么研究问题,目 录,THU SAGroup,10,研究背景,什么是软件软件一般认为由三部分组成:程序:在运行时,能提供所希望的功能和性能的指令集。
3、数据结构:使程序能够正确运行的数据结构。文档:描述程序研制过程、方法及使用的文档。,THU SAGroup,11,研究背景,软件的特点抽象性:逻辑实体,可记录,但看不到可复制性:与开发成本相比,复制成本很低无折旧受硬件制约未完全摆脱手工工艺开发费用高,THU SAGroup,12,研究背景,计算机软件发展的三个时期早期时代(60年代中期之前)程序设计阶段硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。第二代(60年代中期-70年代中期)程序系统阶段出现“软件作坊”、产品软件;“个体化”开发方法。第三代(70年代中期之后)软件工程阶段软件开发成为一门新兴的工程学科软件工程。,T
4、HU SAGroup,13,研究背景,THU SAGroup,14,计算机软件发展的三个时期及特点,研究背景,THU SAGroup,15,计算机软件发展的三个时期及特点,研究背景,我们需要的是软件符合质量要求!软件需求是进行“质量”度量的基础,与需求不符就是质量不高。通常有一组“隐含需求(implicit requirements)”是不被提及的(如对维护性的需求)。如果软件符合了明确的需求却没有满足隐含需求,软件质量仍然值得怀疑。,THU SAGroup,16,为什么需要软件体系结构,随着社会的巨大进步,计算机系统的整体发展,新技术的不断涌现,使计算机应用的需求迅速增加。而软件费用的增加,
5、高可靠性能下降,维护工作量增大,出现了严重的“软件危机”。软件危机已经持续了三十多年,表现为:软件的产品质量难以保障软件的开发效率难以提高,THU SAGroup,17,为什么需要软件体系结构,THU SAGroup,18,软件失败的原因,研究背景,解决问题的想法更好的管理(Better management)出众的团队组织(Different team organizations)更好的语言和工具(Better languages&tools)统一的编程 规范(Uniform coding conventions)必须意识到:“软件”编程,它有自己的生命周期(life cycle)。大型软件
6、系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。,THU SAGroup,19,研究背景,THU SAGroup,20,软件质量问题对经济的影响:美国NIST(国家商业标准和技术)报告,“由于软件bug的普遍存在,使美国经济每年损失$590.5亿美元”,而Standish组织的数据是每年2000亿美元改进软件质量已经成为取得高投资回报率的直接途径,质量低的公司只会被遗忘软件质量问题对生命安全的威胁:1963 年,美国金星探测火箭飞行失败,造成经济损失达一千万美元,因为控制程序中的一个极小的错误,即将一逗号误写为一小数点!由于着陆系统的高度报警程序问题部分导致了1997年发生
7、在关岛的韩国客机空难,228人遇难。1996 年,欧洲耗资高达7 亿美元的Ariane5 火箭发射后解体爆炸,究其原因是惯性参考系统中的一个软件设计错误,并由于认为这个软件不会发生错误而缺乏充分的测试。.,研究背景,如果有什么东西可以在软件开发之前用于描述软件,并能进行质量分析,从而保证软件质量就好了软件体系结构,THU SAGroup,21,软件体系结构起源,THU SAGroup,22,结构设计师:设计图纸,管理人员:施工计划,施工人员:建造建筑物,软件体系结构思想来源于建筑业,软件体系结构起源,THU SAGroup,23,建立模型,软件体系结构起源,THU SAGroup,24,结构设
8、计,软件体系结构起源,THU SAGroup,25,最终的建筑,鸟巢,更多的建筑源自于体系结构设计,THU SAGroup,26,玛雅阿兹特克金字塔,瑞士保险公司大楼,如果建筑的复杂度还不够高,那么一个城市呢?,THU SAGroup,27,软件体系结构的本意,THU SAGroup,28,对于大规模的,分布的,需要协作的,需要交互的,需要监测的,需要扩展的,需要演化的复杂软件系统的规划。,软件体系结构发展简史,程序设计语言的进化抽象级别(Abstract Level),THU SAGroup,29,软件体系结构发展简史,软件开发的进化关注点(Concern),THU SAGroup,30,软
9、件体系结构发展简史,1960年代,软件危机爆发1968年,软件工程被提出NATO software engineering conference1968年,软件体系结构思想被提出“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(弗兰德里克
10、 布鲁克斯,美国),THU SAGroup,31,Edsger Dijkstra,Frederick P.Brooks,软件体系结构发展简史,19721976年,现代软件开发思想被提出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”在正式文献中被使用S
11、oftware Architecture:Integrating Process and Technology authored Walker E.Royce and Winston W.Royce沃克 罗伊斯;温斯顿 罗伊斯,美国,THU SAGroup,32,David Parnas,Walker E.Royce,软件体系结构发展简史,1993年,Software Architecture被定义,此定义成为软件体系结构研究的公认基础An Introduction to Software Architecture authored by David Garlan and Mary Shaw2
12、0世纪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,THU SAGroup,33,软件体系结构发展简史,2000年,Software Architecture Product LineThe Design and Use of Software Archi
13、tecture authored by Bosch2003年,UML2.0 发布2000年至今,动态软件体系结构-ADL,LIME,dynamic Wright,THU SAGroup,34,一些经典的文献列表,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,vol.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 Fa
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1