软件体系结构1软件体系结构发展中的若干重要问题79730150优质PPT.ppt
《软件体系结构1软件体系结构发展中的若干重要问题79730150优质PPT.ppt》由会员分享,可在线阅读,更多相关《软件体系结构1软件体系结构发展中的若干重要问题79730150优质PPT.ppt(182页珍藏版)》请在冰豆网上搜索。
![软件体系结构1软件体系结构发展中的若干重要问题79730150优质PPT.ppt](https://file1.bdocx.com/fileroot1/2022-10/5/0cb211ed-7613-4f4a-83ff-fb6361306407/0cb211ed-7613-4f4a-83ff-fb63613064071.gif)
学习软件体系结构构建模型、软件体系结构组态分析方法、软件体系结构形式化描述方法、软件体系结构集成开发环境的设计与实现方法几个方面的知识,并掌握在实际系统开发过程中分析、设计、应用软件体系结构思想的技能。
THUSAGroup,6,课程介绍,课程成绩平时:
40%课堂测试:
10%(课堂提问、课堂考试、课堂报告)平时作业:
30%期末考查:
60%考试形式:
以45人为一个小组,共同完成一个规定题目的科技论文,THUSAGroup,7,课程介绍,课程安排第一讲:
软件体系结构发展中的若干重要问题(3)第二讲:
软件体系结构风格与模式(9)第三讲:
软件体系结构组态分析与应用(2*)第四讲:
软件体系结构形式化描述(6)第五讲:
CSP和软件体系结构描述语言(3*)第六讲:
软件体系结构集成开发环境的设计与实现(3)第七讲:
柔性软件体系结构(3*)第八讲:
软件体系结构研究的展望(3)括号中为课时数,带星的为助教课,THUSAGroup,8,课程体系,THUSAGroup,9,什么是软件体系结构,如何利用软件体系结构进行宏观设计,软件体系结构设计案例分析,如何利用形式化基础描述软件体系结构,如何进行软件体系结构开发,什么是柔性软件体系结构,软件体系结构还有什么研究问题,目录,THUSAGroup,10,研究背景,什么是软件软件一般认为由三部分组成:
程序:
在运行时,能提供所希望的功能和性能的指令集。
数据结构:
使程序能够正确运行的数据结构。
文档:
描述程序研制过程、方法及使用的文档。
THUSAGroup,11,研究背景,软件的特点抽象性:
逻辑实体,可记录,但看不到可复制性:
与开发成本相比,复制成本很低无折旧受硬件制约未完全摆脱手工工艺开发费用高,THUSAGroup,12,研究背景,计算机软件发展的三个时期早期时代(60年代中期之前)程序设计阶段硬件通用,软件专用;
程序规模小,编写者和使用者为同一人(同组人)。
第二代(60年代中期-70年代中期)程序系统阶段出现“软件作坊”、产品软件;
“个体化”开发方法。
第三代(70年代中期之后)软件工程阶段软件开发成为一门新兴的工程学科软件工程。
THUSAGroup,13,研究背景,THUSAGroup,14,计算机软件发展的三个时期及特点,研究背景,THUSAGroup,15,计算机软件发展的三个时期及特点,研究背景,我们需要的是软件符合质量要求!
软件需求是进行“质量”度量的基础,与需求不符就是质量不高。
通常有一组“隐含需求(implicitrequirements)”是不被提及的(如对维护性的需求)。
如果软件符合了明确的需求却没有满足隐含需求,软件质量仍然值得怀疑。
THUSAGroup,16,为什么需要软件体系结构,随着社会的巨大进步,计算机系统的整体发展,新技术的不断涌现,使计算机应用的需求迅速增加。
而软件费用的增加,高可靠性能下降,维护工作量增大,出现了严重的“软件危机”。
软件危机已经持续了三十多年,表现为:
软件的产品质量难以保障软件的开发效率难以提高,THUSAGroup,17,为什么需要软件体系结构,THUSAGroup,18,软件失败的原因,研究背景,解决问题的想法更好的管理(Bettermanagement)出众的团队组织(Differentteamorganizations)更好的语言和工具(Betterlanguages&
tools)统一的编程规范(Uniformcodingconventions)必须意识到:
“软件”编程,它有自己的生命周期(lifecycle)。
大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。
THUSAGroup,19,研究背景,THUSAGroup,20,软件质量问题对经济的影响:
美国NIST(国家商业标准和技术)报告,“由于软件bug的普遍存在,使美国经济每年损失$590.5亿美元”,而Standish组织的数据是每年2000亿美元改进软件质量已经成为取得高投资回报率的直接途径,质量低的公司只会被遗忘软件质量问题对生命安全的威胁:
1963年,美国金星探测火箭飞行失败,造成经济损失达一千万美元,因为控制程序中的一个极小的错误,即将一逗号误写为一小数点!
由于着陆系统的高度报警程序问题部分导致了1997年发生在关岛的韩国客机空难,228人遇难。
1996年,欧洲耗资高达7亿美元的Ariane5火箭发射后解体爆炸,究其原因是惯性参考系统中的一个软件设计错误,并由于认为这个软件不会发生错误而缺乏充分的测试。
.,研究背景,如果有什么东西可以在软件开发之前用于描述软件,并能进行质量分析,从而保证软件质量就好了软件体系结构,THUSAGroup,21,软件体系结构起源,THUSAGroup,22,结构设计师:
设计图纸,管理人员:
施工计划,施工人员:
建造建筑物,软件体系结构思想来源于建筑业,软件体系结构起源,THUSAGroup,23,建立模型,软件体系结构起源,THUSAGroup,24,结构设计,软件体系结构起源,THUSAGroup,25,最终的建筑,鸟巢,更多的建筑源自于体系结构设计,THUSAGroup,26,玛雅阿兹特克金字塔,瑞士保险公司大楼,如果建筑的复杂度还不够高,那么一个城市呢?
THUSAGroup,27,软件体系结构的本意,THUSAGroup,28,对于大规模的,分布的,需要协作的,需要交互的,需要监测的,需要扩展的,需要演化的复杂软件系统的规划。
软件体系结构发展简史,程序设计语言的进化抽象级别(AbstractLevel),THUSAGroup,29,软件体系结构发展简史,软件开发的进化关注点(Concern),THUSAGroup,30,软件体系结构发展简史,1960年代,软件危机爆发1968年,软件工程被提出NATOsoftwareengineeringconference1968年,软件体系结构思想被提出“TheStructureoftheTHEMultiprogrammingSystem”authoredbyEdsgerDijkstra(艾德勒戴克斯加,荷兰)1975年,软件体系结构思想被升华“Architectureisthecompleteanddetailedspecificationoftheuserinterface”byFrederickBrooks(弗兰德里克布鲁克斯,美国),THUSAGroup,31,EdsgerDijkstra,FrederickP.Brooks,软件体系结构发展简史,19721976年,现代软件开发思想被提出informationhidingandusageofinterface(Parnas,1972)structureseparation(Parnas,1974)therelationshipsbetweensoftwarestructureanditsquality(Parnas,1976)戴维帕纳斯,美国1991年,”SoftwareArchitecture”在正式文献中被使用SoftwareArchitecture:
IntegratingProcessandTechnologyauthoredWalkerE.RoyceandWinstonW.Royce沃克罗伊斯;
温斯顿罗伊斯,美国,THUSAGroup,32,DavidParnas,WalkerE.Royce,软件体系结构发展简史,1993年,SoftwareArchitecture被定义,此定义成为软件体系结构研究的公认基础AnIntroductiontoSoftwareArchitectureauthoredbyDavidGarlanandMaryShaw20世纪90年代,软件体系结构描述语言(ADL)兴盛Darwin,Wright,C2,Rapide,MetaH,ACME,20世纪90年代,软件体系结构评估方法兴起SAAM,ATAM,2000年,IEEE1471-2000标准IEEERecommendedpracticeforarchitecturaldescriptionofsoftware-intensivesystems,THUSAGroup,33,软件体系结构发展简史,2000年,SoftwareArchitectureProductLineTheDesignandUseofSoftwareArchitectureauthoredbyBosch2003年,UML2.0发布2000年至今,动态软件体系结构-ADL,LIME,dynamicWright,THUSAGroup,34,一些经典的文献列表,M.ShawandD.Garlan,“AnIntroductiontoSoftwareArchitecture,”V.AmbriolaandG.Tortora,eds.,AdvancesinSoftwareEngineeringandKnowledgeEngineering,vol.2,WorldScientificPublishing,1993,pp.139D.E.PerryandA.L.Wolf,“FoundationsfortheStudyofSoftwareArchitecture,”ACMSoftwareEng.Notes,vol.17,no.4,1992,pp.4052.D.L.Parnas,“OntheCriteriatoBeUsedinDecomposingSystemsintoModules,”Comm.ACM,vol.15,no.12,1972,pp.10531058.D.L.Parnas,“OntheDesignandDevelopmentofProgramFa