2012软件体系结构1发展中的若干重要问题_第1页
2012软件体系结构1发展中的若干重要问题_第2页
2012软件体系结构1发展中的若干重要问题_第3页
2012软件体系结构1发展中的若干重要问题_第4页
2012软件体系结构1发展中的若干重要问题_第5页
已阅读5页,还剩197页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

软件体系结构(1)软件体系结构发展中的若干重要问题覃征教授SoftwareArchitecture结构,无处不在THU

SAGroup2THU

SAGroup3让我们进入结构的世界目录THU

SAGroup课程简介1软件体系结构的定义和发展综述2工业软件体系结构的主要分类3软件体系结构的发展方向4案例研究54课程介绍授课教师主讲教授:覃征办公室清华大学软件学院208室电话62795399电子邮件助教组赵凤飞金桥THU

SAGroup5课程介绍教材及参考书教材覃征等,软件体系结构(第二版),清华大学出版社,2008Qin

Zheng

et

al.,Software

Architecture,SpringerVerlag,2008其它参考资料LenBass,PaulClements,RickKazman,SoftwareArchitectureinPractice2nded,AddisonWesley,2003PaulClements,RickKazman,MarkKlein,EvaluatingSoftwareArchitectures,清华大学出版社,2003PaulClements,LindaNorthrop,SoftwareProductLine:PracticesandPatterns,清华大学出版社,2003ChristineHofmeister,RobertNord,DilipSoni,AppliedSoftwareArchitecture,AddisonWesley,2000AliBabar,Gorton,SoftwareArchitecture,2010Gorton,EssentialSoftwareArchitecture,Springer,2011THU

SAGroup6教材THU

SAGroup7课程介绍课程目标掌握软件体系结构的概念、组成和相关领域国内外研究现状。明确软件体系结构划分标准、设计原则。学习软件体系结构构建模型、软件体系结构组态分析方法、软件体系结构形式化描述方法、软件体系结构集成开发环境的设计与实现方法几个方面的知识,并掌握在实际系统开发过程中分析、设计、应用软件体系结构思想的技能。THU

SAGroup8课程介绍课程成绩课堂成绩:40%课堂表现:10%(课堂提问、课堂报告、出勤)课堂考试:30%课程大作业:60%考查形式:以5人为一个小组,共同完成一个规定题目的项目或研究论文THU

SAGroup9课程介绍课程安排第一讲:软件体系结构发展中的若干重要问题(4)第二讲:软件体系结构风格与模式(9)第三讲:软件体系结构组态分析与应用(2*习题课)第四讲:软件体系结构形式化描述(4)第五讲:CSP和软件体系结构描述语言(*自修)第六讲:软件体系结构集成开发环境的设计与实现(2*习题课)第七讲:柔性软件体系结构(3*)第八讲:课程研究成果案例展示(4)第九讲:软件体系结构研究的展望(2)THU

SAGroup10课程体系THU

SAGroup11什么是软件体系结构如何利用软件体系结构进行宏观设计软件体系结构设计案例分析如何利用形式化基础描述软件体系结构如何进行软件体系结构开发什么是柔性软件体系结构软件体系结构还有什么研究问题目录THU

SAGroup课程简介1软件体系结构的定义和发展综述2工业软件体系结构的主要分类3软件体系结构的发展方向4案例研究512研究背景计算机软件发展的三个时期早期时代(60年代中期之前)程序设计阶段硬件通用,软件专用;程序规模小,编写者和使用者为同一人(同组人)。第二代(60年代中期-70年代中期)

程序系统阶段出现“软件作坊”、产品软件;“个体化”开发方法。第三代(70年代中期之后)软件工程阶段软件开发成为一门新兴的工程学科——软件工程。THU

SAGroup13研究背景THU

SAGroup14程序设计程序系统软件工程软件范畴程序程序及说明书产品软件(项目软件)主要程序设计语言汇编及机器语言高级语言高级语言系统软件工作范围程序编写设计、测试软件生存期需求者程序设计者本人少数用户市场用户计算机软件发展的三个时期及特点研究背景THU

SAGroup15程序设计程序系统软件工程维护责任者程序设计者开发小组专职维护人员硬件特征价高、存储量小、稳定性差价低、速度、容量、稳定性明显提高向超高速、大容量、微型化发展软件特征完全不受重视软件技术的发展不满足需要,出现软件危机开发技术有进步,但未获得突破性进展,软件危机没有完全摆脱计算机软件发展的三个时期及特点研究背景我们需要的是软件符合质量要求!!软件需求是进行“质量”度量的基础,与需求不符就是质量不高。通常有一组“隐含需求(implicitrequirements)”是不被提及的(如对维护性的需求)。如果软件符合了明确的需求却没有满足隐含需求,软件质量仍然值得怀疑。THU

SAGroup16性能Performance可用性Usability可靠性Availability可扩展性Extensibility安全性Security功能性Functionality为什么需要软件体系结构

随着社会的巨大进步,计算机系统的整体发展,新技术的不断涌现,使计算机应用的需求迅速增加。而软件费用的增加,高可靠性能下降,维护工作量增大,出现了严重的“软件危机”。软件危机已经持续了三十多年,表现为:软件的产品质量难以保障软件的开发效率难以提高THU

SAGroup17为什么需要软件体系结构THU

SAGroup18软件失败SoftwareFailure最常见错误形式:变量取值超过允许范围用户使用软件超载(Overload)现代系统的复杂性往往集中于软件部分(complexity)代码正确,设计错误(DesignError)其他软件开发者不参与情况下操作系统以及硬件改变软件失败的原因软件失败经典案例THUSAGroup19Vista计划在2006年圣诞节推出,但是一直到2007年1月才正式推出,由于不理想的性能和兼容性而备受指责。软件失败经典案例THUSAGroup20微软最先尝试与MP3生产商三星、创新等合作,通过PlaysForSure销售音乐,但是后来微软推出了Zune播放器和数字音乐商店,与苹果公司的iPod进行竞争,尽管微软尝试把Zune记忆棒的容量升级到4G、8G甚至80G,但Zune所占的市场份额仍旧低于5%。研究背景解决问题的想法更好的管理(Bettermanagement)出众的团队组织(Differentteamorganizations)更好的语言和工具(Betterlanguages&tools)统一的编程规范(Uniformcodingconventions)

必须意识到:“软件”≠编程,它有自己的生命周期(lifecycle)。大型软件系统的开发与其它工程项目如建造桥梁、制造飞机、轮船等的开发是同理的。THU

SAGroup21研究背景THU

SAGroup22软件质量问题对经济的影响:美国NIST(国家商业标准和技术)报告,“由于软件bug的普遍存在,使美国经济每年损失$590.5亿美元”,而Standish组织的数据是每年2000亿美元改进软件质量已经成为取得高投资回报率的直接途径,质量低的公司只会被遗忘软件质量问题对生命安全的威胁:1963年,美国金星探测火箭飞行失败,造成经济损失达一千万美元,因为控制程序中的一个极小的错误,即将一逗号误写为一小数点!由于着陆系统的高度报警程序问题部分导致了1997年发生在关岛的韩国客机空难,228人遇难。1996年,欧洲耗资高达7亿美元的Ariane5火箭发射后解体爆炸,究其原因是惯性参考系统中的一个软件设计错误,并由于认为这个软件不会发生错误而缺乏充分的测试。研究背景如果有什么东西可以在软件开发之前用于描述软件,并能进行质量分析,从而保证软件质量就好了~软件体系结构THU

SAGroup23软件体系结构起源THUSAGroup24结构设计师:设计图纸管理人员:施工计划施工人员:建造建筑物软件体系结构思想来源于建筑业软件体系结构起源THUSAGroup25THUSAGroup26软件体系结构起源THUSAGroup27建立模型软件体系结构起源THUSAGroup28站点外表结构服务空间计划结构设计软件体系结构起源THUSAGroup29最终的建筑结构,无处不在THU

SAGroup30THU

SAGroup31鸟巢更多的建筑源自于体系结构设计THUSAGroup32玛雅阿兹特克金字塔瑞士保险公司大楼如果建筑的复杂度还不够高,那么一个城市呢?THUSAGroup33软件体系结构的本意THUSAGroup34对于大规模的,分布的,需要协作的,需要交互的,需要监测的,需要扩展的,需要演化的复杂软件系统的规划。软件体系结构发展简史程序设计语言的进化——抽象级别(Abstract

Level)THUSAGroup35面向代码段面向问题空间面向机器面向机器

是一种针对如何直接操作机器指令来使用计算机资源的抽象级别。面向代码段将可复用的功能代码总结和包装以保证重用。如基本的数值计算,过程控制等。面向问题空间

是这样一种抽象级别。它直接将问题空间中的实体以及实体的关系表达出来。如利用“类”来表示物理世界的实物。软件体系结构发展简史软件开发的进化——关注点(Concern)THU

SAGroup361灵活使用机器使用的底层指令和数据(Primitiveinstructionsanddata)2提高开发效率、代码可读性、易维护性(Efficiencyandconvenience

incodereadingandmaintenance)3实现软件产品线式生产(Software

Product

Line)软件体系结构发展简史1960年代,软件危机爆发1968年,软件工程被提出NATOsoftwareengineeringconferenceSchlossDagstuhl,1968首次提出了软件工程的概念

1968年,软件体系结构思想被提出“TheStructureofthe‘THE’MultiprogrammingSystem”authoredbyEdsgerDijkstra(艾德勒戴克斯加,荷兰)1975年,软件体系结构思想被升华“Architectureisthecompleteanddetailedspecificationoftheuserinterface”

byFrederick

Brooks(弗兰德里克布鲁克斯,美国)THU

SAGroup37EdsgerDijkstraFrederickP.Brooks软件体系结构发展简史1972~1976年,现代软件开发思想被提出informationhidingandusageofinterface(Parnas,1972)structureseparation

(Parnas,

1974)therelationshipsbetweensoftwarestructureanditsquality(Parnas,1976)戴维帕纳斯,美国1991年,”SoftwareArchitecture”在正式文献中被使用SoftwareArchitecture:IntegratingProcessandTechnology

authoredWalkerE.RoyceandWinstonW.Royce沃克罗伊斯;温斯顿罗伊斯,美国THU

SAGroup38

DavidParnasWalkerE.Royce软件体系结构发展简史1993年,SoftwareArchitecture被定义,此定义成为软件体系结构研究的公认基础AnIntroductiontoSoftwareArchitectureauthoredbyDavidGarlanandMaryShaw20世纪90年代,软件体系结构描述语言(ADL)兴盛Darwin,Wright,C2,Rapide,MetaH,ACME,…20世纪90年代,软件体系结构评估方法兴起SAAM,ATAM,…2000年,IEEE1471-2000标准IEEEmendedpracticeforarchitecturaldescriptionofsoftware-intensivesystems

THU

SAGroup39软件体系结构发展简史2000年,SoftwareArchitecture

Product

LineTheDesignandUseofSoftwareArchitectureauthoredbyBosch2003年,UML2.0发布2000年至今,动态软件体系结构π-ADL,LIME,dynamic

Wright,…

THU

SAGroup40一些经典的文献列表M.ShawandD.Garlan,“AnIntroductiontoSoftwareArchitecture,”V.AmbriolaandG.Tortora,eds.,AdvancesinSoftwareEngineeringandKnowledgeEngineering,vol.2,WorldScientificPublishing,1993,pp.1–39D.E.PerryandA.L.Wolf,“FoundationsfortheStudyofSoftwareArchitecture,”ACMSoftwareEng.Notes,vol.17,no.4,1992,pp.40–52.D.L.Parnas,“OntheCriteriatoBeUsedinposingSystemsintoModules,”Comm.ACM,vol.15,no.12,1972,pp.1053–1058.D.L.Parnas,“OntheDesignandDevelopmentofProgramFamilies,”IEEETrans.SoftwareEng.,vol.2,no.1,1976,pp.1–9.D.L.Parnas,P.Clements,andD.M.Weiss,“TheModularStructureofComplexSystems,”IEEETrans.SoftwareEng.,vol.11,no.3,1985,pp.259–266.F.DeRemerandH.Kron,“Programming-in-the-LargeversusProgramming-in-the-Small,”Proc.Int’lConf.ReliableSoftware,ACMPress,1975,pp.114–121.

THU

SAGroup41一些经典的文献列表D.Soni,R.Nord,andC.Hofmeister,“SoftwareArchitectureinIndustrialApplications,”Proc.17thInt’lConf.SoftwareEng.(ICSE95),ACMPress,1995,pp.196–207.P.Kruchten,“The4+1ViewModelofArchitecture,”IEEESoftware,vol.12,no.6,1995,pp.45–50.B.W.Lampson,“HintsforComputerSystemDesign,”OperatingSystemsRev.,vol.15,no.5,1983,pp.33–48;reprintedinIEEESoftware,vol.1,no.1,1984,pp.11–28.J.A.Mills,“APragmaticViewoftheSystemArchitect,”Comm.ACM,vol.28,no.7,1985,pp.708–717.W.E.RoyceandW.Royce,“SoftwareArchitecture:IntegratingProcessandTechnology,”TRWQuest,vol.14,no.1,1991,pp.2–15.M.ShawandP.Clements,“AFieldGuidetoBoxology:PreliminaryClassificationofArchitecturalStylesforSoftwareSystems,”Proc.21stInt’lComputerSoftwareandApplicationsConf.(COMPSAC97),IEEECSPress,1997,pp.6–13.M.Shaw,“TheComing-of-AgeofSoftwareArchitectureResearch,”Proc.23rdInt’lConf.SoftwareEng.(ICSE01),IEEECSPress,2001,pp.656–664a.THU

SAGroup42一些经典的文献列表Philippe

Kruchten,“ThePast,Present,andFutureforSoftwareArchitecture”,Software,IEEE,vol.

23

,no.2,2006,pp.

22–30ChristineHofmeister,andPhilippeKruchten,andRobertL.Nord,andHenkObbink,andAlexanderRan,andPierreAmerica,“Ageneralmodelofsoftwarearchitecturedesignderivedfromfiveindustrialapproaches”,JournalofSystemsandSoftware,vol.

80

,no.1,2007,pp.106–126Avgeriou,P.

andCapilla,R.

andKruchten,P.

“WishesandBoundariesforaSoftwareArchitectureKnowledgeCommunity”,SoftwareArchitecture,2008.WICSA2008.SeventhWorkingIEEE/IFIPConference,pp.271–274PatriciaLago,andParisAvgeriou,andPhilippeKruchten,“OrganizingaSoftwareArchitectureBodyofKnowledge—Summaryofthe5thSHARKWorkshop,atICSE2010”,ACMSIGSOFTSoftwareEngineeringNotes,vol.

35

,no.5,2010,pp.37-40Ducasse,S.“SoftwareArchitectureReconstruction:AProcess-OrientedTaxonomy”,SoftwareEngineering,IEEETransactions,vol.

35

,no.4,2009,pp.573–591THU

SAGroup43软件体系结构发展简史THU

SAGroup44MaryShaw玛丽娋FrederickBrooks弗兰德里克布鲁克斯BarryBoehm拜瑞波姆CarlissBaldwin卡利斯鲍德温NSF2007ScienceofDesignPrincipalInvestigators'(PI)MeetingMaryShawAmericansoftwareengineer,andtheAlanJ.PerlisProfessorofComputerScienceintheSchoolofComputerScienceatCarnegieMellonUniversity,Pittsburgh,UnitedStates.Shaw'smainareaofresearchinterestissoftwareengineering,includingarchitectural,educationalandhistoricalaspects.ShawauthoredseminalworksinthefieldofsoftwarearchitecturealongwithDavidGarlan.AnIntroductiontoSoftwareArchitectureAFieldGuidetoBoxology:PreliminaryClassificationofArchitecturalStylesforSoftwareSystemsTHU

SAGroup45FrederickPhillipsBrooksFrederickPhillipsBrooks,Jr.(bornApril19,1931)isasoftwareengineerandcomputerscientist,bestknownformanagingthedevelopmentofIBM'sSystem/360familyofcomputersandtheOS/360softwaresupportpackage,thenlaterwritingcandidlyabouttheprocessinhisseminalbookTheMythicalMan-Month.Brookshasreceivedmanyawards,includingtheNationalMedalofTechnologyin1985andtheTuringAwardin1999.ArchitectureisthecompleteanddetailedspecificationoftheuserinterfaceTHU

SAGroup46BarryW.BoehmBarryW.Boehm(born1935)isanAmericansoftwareengineer,TRWEmeritusProfessorofSoftwareEngineeringattheComputerScienceDepartmentoftheUniversityofSouthernCalifornia,andknownforhismanycontributionstosoftwareengineering.SoftwareEngineeringEconomicsAspiralmodelofsoftwaredevelopmentandenhancementTHU

SAGroup47CarlissBaldwinCarlissY.BaldwinistheWilliamL.WhiteProfessorofBusinessAdministrationattheHarvardBusinessSchool.Shestudiestheprocessofdesignanditsimpactonfirmstrategyandthestructureofbusinessecosystems.WithKimClark,sheauthoredDesignRules,Volume1:ThePowerofModularity,thefirstofaprojectedtwovolumes.Volume2,ModularityonTrial,willconsiderhowmodulartechnologiesareaffectingthebasicstructureoftheglobaleconomy—forgoodandforbad.Designrules:ThepowerofmodularityTHU

SAGroup48软件体系结构发展简史THUSAGroup49萌芽期发展期成熟期软件体系结构发展简史THUSAGroup50那么……THU

SAGroup51什么是软件体系结构?汽车传动系统设计THU

SAGroup52Xbox

360使用的三核处理器设计THU

SAGroup53波音787设计THU

SAGroup54航空母舰设计概念图THU

SAGroup55操作系统体系结构(以Ubuntu

Linux为例)THU

SAGroup56Doyouknowtheman?THU

SAGroup57安卓架构图THU

SAGroup58安卓架构图THU

SAGroup59安卓架构图THU

SAGroup60软件体系结构Lightning

FrameworkTHU

SAGroup61软件体系结构概述自NATO于1968年提出软件工程概念以来,软件工程界已经提出了一系列的理论、方法、语言和工具,解决了软件开发过程中的若干问题.但是,软件固有的复杂性、易变性和不可见性,使得软件开发周期长、代价高和质量低的问题依然存在.大量实践统计表明:大系统软件开发中70%的错误是由需求和软件设计阶段引入的;而且错误在系统中存在的时间愈长则愈难发现,解决这些错误的代价也愈高.为了提高软件需求和软件设计的质量,软件工程界提出了需求分析工程技术和各种软件建模技术.但是在需求与设计之间仍存在一条很难逾越的鸿沟,即缺乏能够反映做决策的中间过程,从而很难有效地将需求转换为相应的设计.为此,软件体系结构概念应运而生,并试图在软件需求与软件设计之间架起一座桥梁,着重解决软件系统的结构和需求向实现平坦地过渡的问题.THU

SAGroup62软件体系结构概述软件体系结构基本概念就体系结构的本意而言,它是指建立系统时的构造范型、构造风格和构造模式,软件体系结构对于软件系统的构造所起的是指导性的作用,它抛开了软件系统的功能细节,着重于讨论软件系统的总体框架。THU

SAGroup63Windows7要“以用户为中心”,在运行程序方面上有较大的改进,将会在进步的前提下利用多种测量工具来测试操作系统,以增进其运行效率基于软件体系结构的分析、评估、计划、组织、开发、测试软件体系结构概述对于一个软件开发单位来说,选择合适的体系结构是最重要的决策之一.良好的体系结构可以维系软件系统的完整性,使得开发和维护工作不至于杂乱无章;还可以简化软件系统复杂性,让众多的开发单位的软件工程师们能以并行方式开展工作.THU

SAGroup64软件体系结构概述软件体系结构基本概念广义而言,软件系统结构涉及多方面的内容:软件的成份及系统框架;软件成份的选择,各成分之间的相互作用,软件成份的进一步复合以及指导软件复合过程的总体模式;系统的功能、性能、设计以及从多种方案及选项中进行选择的决策。可见,软件体系结构更为关注的是系统结构及其成份,而方法论更关心系统的开发过程THU

SAGroup65软件体系结构概述Perry和Wolf根据软件生命周期各阶段相应的实体、属性、关系、主要产品和评估标准,将软件开发过程分为如下阶段:需求分析:主要根据用户的需求,决定软件的功能;体系结构设计:选择构件、构件间相互关系以及对它们的约束,并以此为框架,为详细设计奠定基础;详细设计:主要对系统进行模块化和描述各个构件间的详细接口、算法和数据结构类型等;实现:使用程序设计语言实现设计方案的要求。THU

SAGroup66软件体系结构概述软件体系结构研究与传统软件工程方法学的不同之处在于:所关心的问题不同描述的着眼点不同抽象层次不同THU

SAGroup67从不同角度看太阳软件体系结构的研究方法学院派测重于软件体系结构形式化理论研究。注重抽象、规约和演算。实践派将软件体系结构设计、描述与表示同传统的软件系统建模视为一体,以体系结构作为整个软件开发过程的核心。结合派试图将以上二者结合以来,将形式化理论应用于实际项目中。THU

SAGroup68各派的代表性文章学院派Kruchten,P.

“TheDecisionView‘sRoleinSoftwareArchitecturePractice”,Software,IEEE,vol.

26

,no.2,2009,pp.36–42,45quoted,IF:1.508Rouvoy,R.“SoftwareArchitecturePatternsforaContext-ProcessingMiddlewareFramework”,DistributedSystemsOnline,IEEE,vol.

9

,no.6,2008,pp.1,50quoted,IF:1.402Maqbool,O.“HierarchicalClusteringforSoftwareArchitectureRecovery”,SoftwareEngineering,IEEETransactionson,vol.

33

,no.11,2007,pp.759–780,99quoted,IF:1.98THU

SAGroup69各派的代表性文章实践派Buschmann,F.

“ToBoldlyGoWhereNoOneHasGoneBefore”,Software,IEEE,vol.

29

,no.1,2012,pp.23–25,IF:1.508Lattanze,A.J.

“InfusingArchitecturalThinkingintoOrganizations”,Software,IEEE,vol.

29

,no.1,2012,pp.19–22,IF:1.508Ducasse,S.“SoftwareArchitectureReconstruction:AProcess-OrientedTaxonomy”,SoftwareEngineering,IEEETransactions,vol.

35

,no.4,2009,pp.573–591,72quoted,IF:1.98Almutairi,A.

“ADistributedAccessControlArchitectureforCloudComputing”,Software,IEEE,vol.

29

,no.2,2012,pp.36–44,IF:1.508Babar,M.A.“AToolforManagingSoftwareArchitectureKnowledge”,SharingandReusingArchitecturalKnowledge-Architecture,Rationale,andDesignIntent,2007.SHARK/ADI'07:ICSEWorkshops2007.SecondWorkshop,75quotedTHU

SAGroup70各派的代表性文章结合派ChristineHofmeister,andPhilippeKruchten,andRobertL.Nord,andHenkObbink,andAlexanderRan,andPierreAmerica,“Ageneralmodelofsoftwarearchitecturedesignderivedfromfiveindustrialapproaches”,JournalofSystemsandSoftware,vol.

80

,no.1,2007,pp.106–126,108quotedAnneMartens,HeikoKoziolek,SteffenBecker,RalfReussner,“Automaticallyimprovesoftwarearchitecturemodelsforperformance,reliability,andcostusingevolutionaryalgorithms”,WOSP/SIPEW'10,2010,pp.105-116,54quotedTHU

SAGroup71软件体系结构定义长期以来,CMU-SEI在其网站上公开征集软件体系结构的定义至今已有百余种。最近较有影响力的定义有:

卡耐基梅隆大学Bass等人于2003年在软件构架实践一书中提出,软件体系结构为系统的结构(structureorstructures),包含软件元素、软件元素外部可见的属性以及这些软件元素之间的关系。软件体系结构定义软件体系结构定义的发展演变IEEE610.12

,1990Vestal,1993Garlan,1993Gacek,1995Bosch,2000Perry,2000

IEEEStd1471-2000,2000Kruchten,2006软件体系结构定义IEEE610.12(1990年)软件工程标准词汇定义:SA={component,connector,environment,

principle}.体系结构是以构件、构件之间的关系、构件与环境之间的关系为内容的某一系统的基本组织结构,以及指导上述内容设计与演化的原理。Honeywell实验室的Vestal在1993年提出了如下模型:SA={component,idioms/styles,commonpatternsofinteraction}.软件由构件组成,构件之间通过通用的互操作模式相连。体系结构风格描述了一种通用的设计模式,可满足特定系列的应用需求。软件体系结构定义卡耐基梅隆大学的Garlan于1993年对软件体系结构做出了如下定义:

SA={Components,Connectors,Constraints}构件(Components)是功能单元,执行预定义的服务并且与其他构件交互。连接器(Connectors)定义交互协议与策略。约束(Constraints)定义了系统必须服从的规则。软件体系结构定义而南加州大学的软件工程研究中心的Gacek于1995年,提出了如下的概念:SA={Components,Connections,Constraints,StakeholderNeeds,Rationale}软件体系结构定义在此定义中,构件(component)与连接(connection)的设计将依照涉众(Stakeholder)的需求。涉众(Stakeholder)指参与软件系统项目的人员,包括项目经理,程序员,市场营销人员,消费者与使用者等。理念(Rationale)指权衡存在下的策略。该定义反映了对运行时结构的实际影响因素,是为了使软件体系结构研究能将学术与实际应用联系起来。软件体系结构定义瑞典Blekinge技术学院的Bosch在2000年则对软件体系结构给出了如下的定义:

Thearchitectureofasoftwaresystemisconcernedwiththetop-levelpositionofthesystemintoitsmaincomponents.

软件系统的体系结构是对系统从顶层分解为主要构件的考量。position软件体系结构定义在该定义中,软件体系结构被认为是系统结构的唯一部署,仅关注单一的静态结构。此外需要注意的是,这里的术语component的涵义有所不同,可以被认为是模块——基本的执行单元。软件体系结构定义2000年Texas大学的Perry&Wolf模型如下:SA={elements,form,rational}.软件体系结构定义该模型中,软件体系结构是由一组元素(elements)构成。这组元素分成3类:处理元素(processingelements)、数据元素(dataelements)和连接元素(connectingelements)。软件体系结构形式(form)是由专有特性(properties)和关系(relationship)组成。专有特性用于限制软件体系结构元素的选择,关系用于限制软件体系结构元素组合的拓扑结构。在多个体系结构方案中选择合适的体系结构方案往往基于一组准则(rational)。软件体系结构定义同样在2000年发布的IEEEStd1471-2000,则对软件体系结构做出了如下定义:软件系统的基本组织,包含构件、构件之间、构件与环境之间的关系,以及相关的设计与演化原则等。不仅如此,该标准还对软件体系结构所涉及的相关概念做出了详细定义,例如需求者,架构师,系统涉众等等。IEEEStd1471-2000中的若干概念获取者(acquirer):Anorganizationthatprocuresasystem,softwareproduct,orsoftwareservicefromasupplier.(Theacquirercouldbeabuyer,customer,owner,user,orpurchaser.)软件系统或软件产品的接收方架构(architecting):Theactivitiesofdefining,documenting,maintaining,improving,andcertifyingproperimplementationofanarchitecture.定义,编档,维护,改进和验证体系结构正确实现的一组活动IEEEStd1471-2000中的若干概念架构师(architect):Theperson,team,ororganizationresponsibleforsystemsarchitecture.负责软件系统体系结构的个人,团队或者组织体系结构描述(architecturaldescription):Acollectionofproductstodocumentanarchitecture.一组记录软件体系结构的文档体系结构(architecture):Thefundamentalorganizationofasystemembodiedinitscomponents,theirrelationshipstoeachother,andtotheenvironment,andtheprinciplesguidingitsdesignandevolution.软件系统中构件,构件之间的关系,构件与环境之间的关系,以及指导设计和演化的基本组织。IEEEStd1471-2000中的若干概念生命周期模型(lifecyclemodel):Aframeworkcontainingtheprocesses,activities,andtasksinvolvedinthedevelopment,operation,andmaintenanceofasoftwareproduct,whichspansthelifeofthesystemfromthedefinitionofitsrequirementstotheterminationofitsuse.围绕整个软件开发过程进行的一组过程和活动,以周而复始的方式存在软件系统(system):Acollectionofcomponentsorganizedtoplishaspecificfunctionorsetoffunctions.组织起来完成某些特定功能的一组构件IEEEStd1471-2000中的若干概念系统涉众(systemstakeholder):Anindividual,team,ororganization(orclassesthereof)withinterestsin,orconcernsrelativeto,asystem.系统利益相关者视图(view):

Arepresentationofawholesystemfromtheperspectiveofarelatedsetofconcerns.整个系统某个特定角度的表示软件体系结构定义英国学者PhilippeKruchten在2006年的阐述:Softwarearchitectureinvolves:thestructureandorganizationbywhichmodernsystemcomponentsandsubsystemsinteracttoformsystems,andthepropertiesofsystemsthatcanbestbedesignedandanalyzedatthesystemlevel.THU

SAGroup88如何理解软件体系结构THUSAGroup89体系结构模型视图软件体系结构视角THU

SAGroup90positionPerspectiveRuntimePerspective构件/连接器视图THU

SAGroup91实现视图THUSAGroup92部署视图THUSAGroup93行为视图THUSAGroup94SequenceDiagram(UML)行为视图THUSAGroup95ActivityDiagram(UML)行为视图THUSAGroup96State

Diagram

(UML)用例视图THUSAGroup97软件产品生产线软件工厂是一个以计算机为依托,并由计算机控制的程序编制环境,程序的制作、检查和使用都应当在此环境中,并运用其中的工具来实现。建设软件工厂是软件工程化生产的大趋势。其实现依赖于对体系结构、模型、方法、工具的研究。THUSAGroup98日本汽车生产线THU

SAGroup99软件产品线THU

SAGroup100主流软件体系结构描述语言ADL一览ADL研发组织负责人典型工业应用相关参考ACMECarnegieMellonUniversityDavidGarlanACMELibACMEStudio

伦敦救护车派遣软件系统的体系结构设计A.FinkelsteinandJ.Dowell(1996);"AComedyofErrors:theLondonAmbulanceServicecasestudy";Proceedingsof8thInternationalWorkshoponSoftwareSpecificationandDesign(IWSSD-8),SchlossVelen,Germany,22-23rdMarch1996,2-4;IEEECSPress.

D.Garlan,R.Monroe,andD.Wile,Acme:ArchitecturalDescriptionofComponent-BasedSystems,inFoundationsofComponent-BasedSystems,G.T.LeavensandM.Sitaraman,Editors.2000,CambridgeUniversityPress.p.47-68.AesopCarnegieMellonUniversityDavidGarlan

C2UniversityCalifornia,IrvineN.Medvidovic集成开发环境ARGO

Chiron-2人机界面系统Taylor,R.N.,etal.,Acomponent-andmessage-basedarchitecturalstyleforGUIsoftwareIeeeTransactionsonSoftwareEngineering,1996.22(6):p.17.

DarwinImperialCollege,London(帝国理工)JeffKramer&JeffMageeBadge人员定位系统R.Want,A.Hopper,V.Falcao,andJ.Gibbons,"Theactivebadgelocationsystem,"ACMTransactionsonInformationSystems,vol.10,pp.91--102,Jan.1992.WrightCarnegieMellonUniversityDavidGarlan1993年美国海军武器控制系统AEGISR.AllenandD.Garlan.Acasestudyinarchitecturalmodelling:TheAEGISsystem.InProcofthe8thIntlWorkshoponSWSpecificationandDesign(IWSSD-8),Mar.1996

R.Allen,AFormalApproachtoSoftwareArchitecture.1997,CMU:PhDThesis.THU

SAGroup101主流软件体系结构描述语言ADL一览ADL研发组织负责人典型工业应用相关参考MetaHHoneywell(霍尼维尔)公司技术中心SteveVestal美国汽车工程师学会(SAE)开发标准参加这个标准的有美国陆军、美国海军、波音公司、Raytheon公司和Rockwell公司等。RapideStandfordUniversityDavidLuckhamNSA'sMultilevelSystemsSecurityInitiative(MISSI)

SparcV9InstructionSetArchitecture

D.C.Luckham.Rapide:ALanguageandToolsetforSimulationofDistributedSystemsbyPartialOrderingsofEvents.ProceedingsofDIMACSPartialOrderMethodsWorkshopIV.July1996.PrincetonUniversity.SADLStanfordResearchInstituteMarkMoriconi

UniConCarnegieMellonUniversityMaryShaw

命名含义:UNIversalCONnectionWeaves美国Aerospace公司Gorlick

M.M.GorlickandR.R.Razouk,"UsingWeavesforSoftwareConstructionandAnalysis,"Proc.13thInt'lConf.SoftwareEng.

(ICSE13),pp.23-34,May1991.THU

SAGroup102主流软件体系结构描述语言ADL一览ADL研发组织负责人典型工业应用相关参考Koala

R.vanOmmering

R.vanOmmering,F.vanderLinden,J.Kramer,andJ.Magee,TheKoalaComponentModelforConsumerElectronicsSoftware.IEEEComputer,March2000:p.78-85.ADLARS

R.Bashroush

R.Bashroush,T.J.Brown,I.Spence,andP.Kilpatrick.ADLARS:AnArchitecture

DescriptionLanguageforSoftwareProductLines.Proceedingsofthe29thAnnual

IEEE/NASASoftwareEngineeringWorkshop.April2005.Greenbelt,Maryland,USA.ALI

B.Rabih,S.Ivor,K.PeterandB.John,2006:TowardsMoreFlexibleArchitectureDescriptionLanguagesforIndustrialApplications,:SoftwareArchitecture,LNCSVol.4344,pages212-219π-ADL欧盟F.QquendoArchWare一个软件体系结构集成开发系统F.Oquendo.π-ADL:AnArchitectureDescriptionLanguagebasedontheHigher-OrderTypedπ-CalculusforSpecifyingDynamicandMobileSoftwareArchitectures.ACMSoftwareEngineeringNotes,29,Mai2004.ConMoto

V.GruhnandC.Schafer,2004:Anarchitecturedescriptionlanguageformobiledistributedsystems,SoftwareArchitecture,LNCSvol3047,pages212-218作者没给

这门语言

起名字

V.IssarnyAURA:anarchitecturalframeworkforusermobilityinubiquitouscomputingenvironments.V.Issarny,F.Tartanoglu,J.Liu,andF.Sailhan.SoftwareArchitectureforMobileDistributedComputing.InProceedingsoftheFourthWorkingIEEE/IFIPConferenceonSoftwareArchitecture(WICSA’04),pages201–210.IEEE,2004.THU

SAGroup103软件体系结构研究中的不足缺乏统一的软件体系结构的概念,导致体系结构的研究范畴模糊ADL繁多,缺乏统一的ADL的支持软件体系结构研究缺乏统一的理论模型支持尽管提出了若干体系结构语言与其相应的理论模型,但还不能系统地解释软件体系结构中的重要概念.THU

SAGroup104软件体系结构研究中的不足有关软件体系结构性质的研究尚不充分不能明确给出一个良体系结构的属性或判定标准,没有给出良软件体系结构的设计指导原则,因而对于软件开发实践缺乏有力的促进作用体系结构发现方法研究相对欠缺由于系统维护、系统演进、环境变化等因素,因此有必要从那些尚不在体系结构规格说明的系统中逆向提取和恢复系统的体系结构规格说明,即体系结构逆向发现.THU

SAGroup105目录THU

SAGroup课程简介1软件体系结构的定义和发展综述2工业软件体系结构的主要分类3软件体系结构的发展方向4案例研究5106软件体系结构主要分类4+1DoDAFMODAFTOGAFZachmanFrameworkFEARM-ODPSOMFTHU

SAGroup107软件体系结构的主要分类4+1由PhilippeKruchten设计主要特色:多视图共同表达不同涉众的观点逻辑视图(LogicalView):表示系统功能开发视图(DevelopmentView):表示开发分工和任务管理进程视图(ProcessView):表示系统进程,线程,分布等信息物理视图(PhysicalView):表示系统物理部署情况场景(Scenarios):用一些场景、用例来描述系统各个部分之间,以及与环境之间的交互。THU

SAGroup108软件体系结构分类4+1THU

SAGroup109软件体系结构分类4+1:逻辑视图THU

SAGroup110软件体系结构分类4+1:开发视图THU

SAGroup111软件体系结构分类4+1:进程视图THU

SAGroup112软件体系结构分类4+1:物理视图THU

SAGroup113软件体系结构分类4+1:场景THU

SAGroup114软件体系结构分类DoDAF:DepartmentofDefenseArchitectureFramework由美国国防部使用的体系结构描述标准,最初被称为C4ISR(Command,Control,Communications,Computers,Intelligence,SurveillanceandReconnaissance)在此基础之上引伸出NAF(NATOArchitectureFramework)MODAF(MinistryofDefence(UnitedKingdom)ArchitectureFramework)特点围绕共享数据库建立系统描述对系统信息交互分级THU

SAGroup115软件体系结构分类DoDAF概览THU

SAGroup116软件体系结构分类DoDAF视图分类:AllView:提供全局概要性信息AV-1OverviewandSummaryInformation

AV-2IntegratedDictionaryTHU

SAGroup117软件体系结构分类DoDAF视图分类OperationalView:提供活动和任务的相关信息OV-1HighLevelOperationalConceptGraphic

OV-2OperationalNodeConnectivityDescriptionOV-3OperationalInformationExchangeMatrix

OV-4OrganizationalRelationshipsChart

OV-5OperationalActivityModel

OV-6aOperationalRulesModel

OV-6bOperationalStateTransitionDescriptionOV-6cOperationalEvent-TraceDescription

OV-7LogicalDataModel

THU

SAGroup118软件体系结构分类DoDAF视图分类SystemsandServicesView:描述系统和服务交互SV-1Systems/ServicesInterfaceDescription

SV-2Systems/ServicesCommunicationsDescription

SV-3Systems-Systems,Services-Systems,Services-ServicesMatrices

SV-4a/SV-4bSystems/ServicesFunctionalityDescription

SV-5a,SV-5b,SV-5cOperationalActivitytoSystemsFunction,OperationalActivitytoSystemsandServicesTraceabilityMatrices

THU

SAGroup119软件体系结构分类SV-6Systems/ServicesDataExchangeMatrix

SV-7Systems/ServicesPerformanceParametersMatrix

SV-8Systems/ServicesEvolutionDescriptionSV-9Systems/ServicesTechnologyForecast

SV-10aSystems/ServicesRulesModel

SV-10bSystems/ServicesStateTransitionDescription

SV-10cSystems/ServicesEvent-TraceDescription

SV-11PhysicalSchema

THU

SAGroup120软件体系结构分类DoDAF视图分类:TechnicalStandardsView:提供技术标准、规范、规则等信息TV-1TechnicalStandardsProfile

TV-2TechnicalStandardsForecast

THU

SAGroup121软件体系结构分类MODAF:UKMinistryofDefenceArchitecturalFramework衍生于DoDAF,但进一步扩展了两个视点:Strategic和Aquisition包含了能力管理(CapabilityManagement)采用通用技术(如XML2.1)作为描述方法THU

SAGroup122软件体系结构分类MODAF概览THU

SAGroup123软件体系结构分类TOGAF:TheOpenGroupArchitectureFramework描述被分为四个级别:Business,Application,Data,TechnologyBusiness:定义业务策略、管理、组织和关键业务流程Application:描述应用系统的部署、交互以及与业务流程之间的关系Data:描述组织中数据存储结构和数据管理方案Technology:描述了支撑应用的软件、硬件平台和相关技术THU

SAGroup124软件体系结构分类TOGAF开发工具THU

SAGroup125软件体系结构分类ZachmanFramework由IBM计算机科学家兼首席架构师JohnA.Zachman创立。他也是企业体系结构框架的创始人。特点使用类似于元素周期表的方式来描述体系结构此“Framework”实际上是“Taxonomy”,用于将整个系统描述进行分类没有

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论