华南理工大学《软件体系结构》复习资料Ch1.~【软件危机的表现】软件成本日益增长、开发进度难以控制、软件质量差、软件维护困难~【软件危机的原因】用户需求不明确、缺乏正确的理论指导、软件规模越来越大、软件复杂度越来越高~【软件危机的解决方案】管理、采用工程化的开发方法、加大软件重用、采用先进的开发工具~【软件体系结构的意义】体系结构是风险承担者进行交流的手段体系结构是早期设计决策的体现软件体系结构是可传递和可重用的模型【构件】构件是指语义完整、语法正确和有可重用价值的单位软件,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通讯接口和实现代码的复合体。【构件模型】构件模型是基于构件的软件开发(CBSD)技术中的一个重要概念,构件模型通过描述构件的接口和实现以及构件之间的关联来描述软件体系结构。【构件获取】(1)从现有构件中获得符合要求的构件,或作适应性修改。(2)通过遗留工程,将具有潜在重用价值的构件提取出来,得到可重用的构件;(3)从市场上购买现成的商业构件。(4)开发新的符合要求的构件。●【构件分类方法】基于关键字的检索、刻面检索法、超文本检索法~【软件体系结构的定义】软件体系结构为软件系统提供了一个结构、行为和属性的高级抽象,由构成系统的元素的描述、这些元素的相互作用、指导元素集成的模式以及这些模式的约束组成。软件体系结构不仅指定了系统的组织结构和拓扑结构,并且显示了系统需求和构成系统的元素之间的对应关系,提供了一些设计决策的基本原理。【体系结构发现、演化与重用】发现:解决如何从已经存在的系统中提取软件的体系结构,属于逆向工程范畴。演化:由于系统需求、技术、环境、分布等因素的变化而最终导致软件体系结构的变动重用:属于设计重用,比代码重用更抽象。由于软件体系结构是系统的高层抽象,反映了系统的主要组成元素及其交互关系,因而较算法更稳定,更适合于重用。【基于体系结构的软件开发方法】问题定义—软件需求—软件体系结构—软件设计—软件实现【软件开发模型】(1)以软件需求完全确定为前提的瀑布模型。(2)在软件开发初始阶段只能提供基本需求时采用的渐进式开发模型,如螺旋模型等。(3)以形式化开发方法为基础的变换模型。Ch2.~【】软件体系结构建模种类】(1)结构模型(最常用)(2)框架模型(3)动态模型(最常用)(4)过程模型(5)功能模型●【为什么要引入了软件体系结构】软件体系结构的引入使软件设计开发更加具体和形象,它的模型更使得软件过程更加方便和多样化。包括程序员在内的绝大多数系统的利益相关人员都借助软件体系结构来进行彼此理解、协商、达成共识或者相互沟通的基础,软件体系结构的模型可以应用到具有相似质量属性和功能需求的系统中,并能够促进大规模软件的系统级复用,在很多方面使得软件开发更加人性化。【体系结构的核心模型】(1)构件:具有某种功能的可重用的软件模板单元,表示了系统中主要的计算元素和数据存储,有复合构件和原子构件两种类型。(2)连接件:构件之间的交互。(3)配置:构件和连接件的拓扑逻辑和约束。(4)端口:构件的接口由一组端口组成,每个端口表示构件和外部环境的交互点。(5)角色:连接件的接口由一组角色组成,每个角色定义了连接件表示的交互的参与者,【软件过程】需求分析建立体系结构设计实现测试Ch3.~▲【为什么要使用异构风格】(1)不同的结构有不同处理能力的强项和弱点,一个系统的体系结构应该根据实际需要进行选择,以解决实际问题(2)关于软件包、框架、通信以及其他一些体系结构上的问题,目前存在多种标准。即使在某段时间内某一种标准占统治地位,但变动最终是绝对的。(3)一些遗留下来的代码,它们仍有效用,但是却与新系统有某种程度上的不协调。然而在许多场合,将技术与经济综合进行考虑时,总是决定不再重写它们。Ch4.~【体系结构描述的方法】(1)图形表达工具(2)模块内连接语言(3)基于软构件的系统描述语言(4)软件体系结构描述语言【ADL定义】ADL是在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体语法和概念框架。基于底层语义的工具为体系结构的表示、分析、演化、细化、设计过程等提供支持。其三个基本元素是:构件、连接件、体系结构配置。~●【C2描述系统】每个构件接口最多只能和一个连接件相连,而连接件可以和任意数目的构件或连接件相连。请求消息只能向上层传送而通知消息只能向下层传送。描述下图系统:Attendee-1Attendee-M...AttConnImportantAttendee-1ImportantAttendee-N...ImportantAttConnMainConnMeetingInitiator对meetinginitiator描述:对体系结构描述:初始化赋予实例:~●【ACME描述系统】从四个不同的方面对软件体系结构进行描述,分别是结构、属性、设计约束、类型和风格。结构:7种,构件、连接件、系统、端口、角色、表述、表述映射对C/S的描述:【UML】UML是一种用可视化方法对软件系统进行描述、实施和说明的标准语言。1.用例图功能的描述2.类图3.对象图类图的实例4.序列图随着时间的推移,对象之间是如何交互的5.协作图强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图6.状态图7.活动图8.构件图9.部署图Ch5.【软件体系结构动态性】交互式动态性、结构化动态性、体系结构动态性Ch6.~【Web服务定义】Web服务是基于XML和HTTPS的一种服务,其通信协议主要基于SOAP,服务的描述通过WSDL,通过UDDI来发现和获得服务的元数据。主要目标就是在现有的各种异构平台的基础上构筑一个通用的平台无关、语言无关的技术层,各种不同平台之上的应用依靠这个技术层来实施彼此的连接和集成。~【Web服务的特点】应用的分布式、应用到应用的交互、平台无关性、使用标准协议规范、高度集成能力、完好的封装性、松散耦合~●【Web服务构成元素、基本协议】构成元素:服务提供者、服务代理和服务请求操作:发布、发现和绑定。协议:简单对象访问协(SOAP)统一描述、发现和集成协议(UDDI)Web服务描述语言(WSDL)Ch7.Ch8.Ch9.●【软件体系结构评估定义】通过成本相对较低的活动来分析结构中可能存在的风险,发现软件体系结构中影响系统质量的关键因素,并提出相应的改进措施,在此基础上验证软件的性能需求是否得到满足。~【软件体系结构评估三种方法】(1)基于调查问卷或检查表的评估方式(2)基于场景的评估方式(3)基于度量的评估方式Ch10.~【产品线定义】产品线是一个产品集合,这些产品共享一个公共的、可管理的特征集,这个特征集能满足选定的市场或任务领域的特定需求。这些系统遵循一个预描述的方式,在公共的核心资源基础上开发的。~【SOA定义】SOA为一种应用程序体系结构,在这种体系结构中,所有功能都定义为独立的服务,这些服务带有定义明确的可调用接口,可以以定义好的顺序调用这些服务来形成业务流程。