∥'trln,。.~④天洋大謦工程硕士学位论文_^脯I葺蹑.]■簧i旧吲爰爿翻la旧吐删高蹦蚋I州0_领域:软件工程作者姓名:赵晓宇指导教师:任长明企业导师:李国擎夭潼大堂研奔年睥2006年8月
中文摘要软件体系结构是由软件元素的外在可见性质,以及元素之间的关系组成的一种结构。就如同计算机系统结构在计算机工程中的重要作用一样,软件体系结构这种思想也是现代软件工程中的一个重要组成部分,也成为近十多年来软件工程发展最为迅速的研究领域之一。软件体系结构在软件工程中的应用研究是本文的核心内容。研究表明,软件体系结构在软件开发的各个阶段都起NT十分重要的作用。它不但可以控制软件的复杂性和提供高层次的复用,而且作为工程计划的前期工作,软件体系结构可以使开发者更早的从全局考虑关键性设计闯题,从而保持整个软件系统的一致性。本文的主要内容包括:1.全面分析了软件体系结构的作用和意义,并在此基础上阐述了软件体系结构目前以及将来的发展情况。2.对软件体系结构的设计原理以及基于体系结构的软件开发过程进行了一定的研究,其中包括需求、设计,分析、实现和维护体系结构等一系列过程。最后结合自身的开发经验提出了一种新的软件体系结构的设计方法。结合理论研究重点分析了图书馆管理系统的体系结构,其中包括项目的需求分析、系统的全局分析、系统静态结构模型设计和系统动态行为模型设计以及体系结构部分模块的实现等等。关键词:软件工程软件体系结构uML模型设计
ABSTRACTSoftwarearchitecture15astructurecombinedwithvisuallyextrinsiccharacterofthesoftwareelementandtherela60nshipoftheelements.Justlikecomputersystemstructureintheareaofthecomputerengineering,softwarearchitecturetakesaimportantpartinthemodemsoftwareengineeringitbecomesoneofthemostresearchfieldwhichdevelopsrapidlyinthenearesttenyearsinthesoftwareengineering.Thethesismainlydiscussestheapplicationofthesoftwarearchitectureinthesoftwareengineering.Ithasbeenprovedthatsol,rarearchitecturetakesamostimportantpartintheeveryphaseofthesoft:waredevelopment,Itnotonlycallcontrolthecomplexityofthesoftwareandprovidehigherreusingbutalsoletdeveloperconsiderthekeydesigningproblemfromglobalviewearlier,soitcanke印coherenceoftheentiresoftwaresystemsoftwarearchitectureistheprophaseworkoftheprojectThemainworkstatedinthethesisincludes:1.Generallyanalyzesthefunctionandthemeaningofthesoftwarearchitecture,andbased0nthisanalyzingitexpatiatesthedevelopmentofthesoftwarearchitectureinthefuture2.Thedesigningtheoryofthesoftwarearchitectureandtheprocessofthesoftwarearchitecturehavebeenresearched,includingaseriesofprocesssuchasdemandingdesigning,analyzingimplementing,achievingandmaintainingsoftwarearchitecture.ThearchitectureofLibraryManagementSystemcombinewitIltheoryresearchingisemphasized,includingdemandinganalysisoftheprojeet,globalanalysisofthesystem,designingstaticstructuremodelanddynamicbehaviormodelofthesystem,andachievingsomeofthemodels.KEYWORDS:SofhvareEngineeringSoftwareArchitecture,LrML,ModelDesigning
独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作和取得的研究成果,除了文中特别加以标注和致谢之处外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得叁注盘堂或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文中作了明确的说明并表示了谢意。学位论文作者签名:趣唾学签字日期:埘6年8月弓口日学位论文版权使用授权书本学位论文作者完全了解墨洼盘鲎有关保留、使用学位论文的规定。特授权盘生盘鲎可以将学位论文的全部或部分内容编入有关数据库进行检索,并采用影印、缩印或扫描等复制手段保存、汇编以供查阅和借阅。同意学校向国家有关部门或机构送交论文的复印件和磁盘。(保密的学位论文在解密后适用本授权说明)学位论文作者签名赵魔乎签字日期:)∞6年%月弓口日导师签名:7缈)粤签字日期:吲年8月扣日
天津大学硕士学位论文第一章绪论1.1选题背景第一章绪论随着计算机科学技术领域中的新兴工程学科一软件工程的不断发展,在软件开发中软件体系结构的设计也就越来越受到人们的重视。过去,与硬件相关的体系结构起着主导的作用,与软件相关的体系结构在软件的开发过程中却被人们忽视。而如今大规模应用软件系统比比皆是,软件系统开发的成本以及软件系统的复杂性不断增加已经打破了软件与硬件以往的平衡。软件体系结构的基本原理已经悄然进入每一次的软件开发中,而其技术的日趋成熟也为软件开发自身带来了无穷的益处。软件体系结构虽脱胎于软件工程,但其形成同时借鉴了计算机体系结构和网络体系结构中很多宝贵的思想和方法,最近几年软件体系结构研究己完全独立于软件工程的研究,成为计算机科学的一个最新的研究方向和独立学科分支。软件体系结构研究的主要内容涉及软件体系结构描述、软件体系结构风格、软件体系结构评价和软件体系结构的形式化方法等。解决好软件的重用、质量和维护问题,是研究软件体系结构的根本目的。近年来随着我国建设数字化图书馆的步伐的日益加快,图书馆管理系统的信息化已经成为国内图书馆的必经之路。本文在软件体系结构的理论研究基础上所进行的图书馆管理系统的设计正是适应了这一趋势的发展。通过对图书馆管理系统体系结构的设计为将来数字化图书馆的建设打下了坚实的基础。1.2软件体系结构的国内外发展状况软件系统的规模在迅速增大的同时,软件开发方法也经历了一系列的变革。在此过程中,软件体系结构也由最初模糊的概念发展到一个渐趋成熟的理论和技术。20世纪70年代以前,尤其是在ALGOL68为代表的高级语言出现以前,软件开发基本上都是汇编程序设计,此阶段系统规模较小,很少明确考虑系统结构,一般不存在系统建模工作。70年代中后期,由于结构化开发方法的出现与广泛
天津大学硕士学位论文第一章绪论应用,软件开发中出现了概要设计和详细设计,概要设计的主要任务是通过仔细分析软件规格说明,适当的对软件进行功能分解,从而把软件化分为模块,并且设计出完成预订功能的模块结构,详细设计就是详细设计该要设计中分解的每一个模块,确定完成每个模块功能所需要的算法和数据结构“1。在这种结构化软件开发巾的核心任务是数据流设计和控制流设计,因此,此时软件结构已作为一个明确的概念出现在系统的开发中。结构化开发方法给计算机软件行业带来了巨大的进步,在某种程度上缓解了当时的软件危机,但是到了20世纪80年代初到90年代中期,结构化开发方法己经不再适合大型软件系统的开发,一种全新的开发方法即面向对象的开发方法兴起并逐渐成熟。面向对象(Object-Oriented,缩写00)方法学的出发点和基本原则,是尽可能模拟人类习惯的思维方式,是开发软件的方法与过程尽可能接近人类认识世界解决问题的方法与过程,也就是描述问题的问题空间与实现解法的解空间在结构上尽可能一致。由于对象是数据与基于数据之上操作的封装,因而在面向对象开发方法下,数据流设计与控制流设计是对同一对象建模。同时,面向对象方法还提出了一些其它的结构视图,如在对象建模技术方法中提出了功能视图、对象视图、与动态视图;Booch方法中则提出了类视图、对象视图、状态迁移图、交互作用图、模块图、进程图;而1997年出现的统一建模语言删L则从功能模型即用例图:静态模型包括类图、对象图、构件图和包图;动态模型包括协作图、顺序图、状态图和活动图;配置模型即为配置图。面向对象软件开发方法学的提出为软件开发带来了质的飞跃,这就使得软件体系结构的设计与人类习惯的思维更为一致,软件的稳定性、可维护性和可重用性更进一步提高,成功开发大型软件系统的可能性也就大大得到提高。从20世纪90年代后期一直到现在软件工程领域进入了基于构件的软件开发阶段,这个阶段的特点是以过程为中心,强调软件开发采用构件化技术和体系结构技术,要求开发出的软件具备很强的自身适应性,互相操作性、可扩展性和可重用性。这也正是继承了面向对象的软件开发的特性。在此阶段,软件体系结构己经作为一个明确的文档和中间产品存在于软件开发过程中,同时,软件体系结构作为一门学科逐渐受到人们的重视。纵观软件体系结构技术的发展过程,从最初的“无结构”设计到现行的基于体系结构的软件开发经历了四个不同的阶段。这几个阶段对于软件体系结构的发展起了推波助澜的作用,它必将使得软件体系结构的设计在整个软件开发的工程中的作用越来越提高。
天津大学硕士学位论文第一章绪论1.3本论文的主要研究内容论文作者在完成论文期间重点研究了以下两方面的内容:深入了解了软件体系结构的兴起与发展,并结合自身的认识对软件体系结构在整个软件开发过程中的意义进行了总结。另外还对软件体系结构的设计原理以及基于体系结构的软件开发过程进行了一定的研究。最后结合自身的开发经验提出了一种新的软件体系结构的设计过程。运用本文提出的新的体系结构设计过程完成了图书馆管理系统体系结构的整个设计过程,其中包括项目的需求分析、系统的全局分析、系统静态结构模型设计和系统动态行为模型设计等等。另外还引入了“4+1”模式体系结构设计方法中的全局分析法,对开发中的组织因素、技术因素和产品因素进行了详尽的分析,并在分析的基础上制定出指导体系结构的相应策略,从而确保了体系结构设计的合理性和可行性。最后对所设计出的体系结构的部分模块进行了验证,从而证明了本文所提出的新的体系结构设计方法具有一定的可行性。
天津大学硕士学位论文第二章软件体系结构的设计原理第二章软件体系结构的设计原理2.1软件体系结构的定义在诸如建筑和计算机硬件的设计中,软件体系结构是指整个软件系统构成的基本和主体形态。在一个发展成熟的领域中,这种结构成为建立和考察系统的总体指导或基本出发点。软件体系结构定义了局部和整体计算部件的构成,以及这些部件之问的相互作用关系。软件体系结构的产生也是适应了软件行业的发展要求的。在经历了软件危机后,人们意识到也需要使用工程化的方法和管理,而不能是任意软件开发人员的随意想象和自由化的开发。为了避免软件开发的无目的性,提高软件的质量和利用率,在软件开发中就需要有效的理论作为指导。软件体系结构作为软件开发中的设计指导思想,无疑对软件开发的成败起着关键的作用。软件体系结构定义了软件的局部和整体部件的构成,以及这些部件之间的相互作用关系。部件的内涵是很广泛的,包括客户、服务器、数据库、过滤器、程序包和过程等。相互作用也包括具有十分复杂的语义和构成的关系、诸如客户/服务器访问协议,数据库的访问协议、网络传输协议、异步事件的映射和ORM等。除了描述系统的构成和构件的关系外,在系统的功能需求方面体系结构还表达了系统需求和构件之间的对应关系,这就为系统的后期设计提供了分析和评价的依据。一般地说,软件的体系结构可以清楚的表达系统的构成部件以及它们之间的作用关系和语义。这些部件又可以用来构成更大、更复杂和全面的部件或系统。在理想的情况下,体系结构描述的各个组成成分都是被独立定义的,因此可以在不同的场合得到重用。体系结构将为它们建立结构和功能规范,经过进一步的完善,可以将它们组成更大和更复杂的系统,并且是可以高效率稳定运行的软件系统。2.2体系结构的设计原理软件体系结构是建立在几条基本原理之上的,这些原理在软件设计中被广泛的采用,而且我们也必须遵循这些原理从而使体系结构能够更好的为后期的设计和实现工作服务”。体系结构设计的好坏将直接影响到软件系统开发的成功与