版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2024/7/71第二章软件体系结构基本概念§1.1概述§1.2词汇定义§
1.3连接件§1.4约束(配置)§
1.5风格、模式、框架§
1.6非功能属性2024/7/72§1.1概述体系结构(Architecture)=构件(Components)+连接件(Connectors)+约束(Constraints)2024/7/73软件体系结构::=软件体系模型|软件体系风格体系结构模型::=(构件,连接件,约束)构件::={端口1,端口2,……,端口n}连接件::={角色1,角色2,……,角色n}约束::={(端口i,角色j),……}体系结构风格::={管道过滤器,客户服务器,……,解释器}2024/7/74§1.2词汇定义
1.2.1中间件:
中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。
IDC提供中间件是一类软件,而非一种软件;中间件不仅仅实现互连,还要实现应用之间的互操作;中间件是基于分布式处理的软件,最突出的特点是其网络通信功能。2024/7/751.2.2模式(pattern)模式就是解决某一类问题的方法论。你把解决某类问题的方法总结归纳到理论高度,那就是模式。Alexander给出的经典定义是:每个模式都描述了一个在我们的环境中不断出现的问题,然后描述了该问题的解决方案的核心。通过这种方式,你可以无数次地使用那些已有的解决方案,无需在重复相同的工作。模式有不同的领域,建筑领域有建筑模式,软件设计领域也有设计模式。当一个领域逐渐成熟的时候,自然会出现很多模式。2024/7/761.2.3框架(framework)框架是某种应用的半成品,就是一组组件,供你选用完成你自己的系统。简单说就是使用别人搭好的舞台,你来做表演。而且,框架一般是成熟的,不断升级的软件。2024/7/771.2.4组件简而言之,组件就是对象。C++Builder中叫组件,Delphi中叫部件,而在VisualBASIC中叫控件。组件是对数据和方法的简单封装。C++Builder中,一个组件就是一个从TComponent派生出来的特定对象。组件可以有自己的属性和方法。属性是组件数据的简单访问者。方法则是组件的一些简单而可见的功能。组件是C++Builder环境中最令人激动的部分。使用组件可以实现拖放式编程、快速的属性处理以及真正的面向对象的设计。VCL和CLX组件是C++Builder系统的核心。PS组件开发者应该掌握的三项主要内容是:属性、事件和方法。
2024/7/781.2.5构件概念构件是构件(component)是可复用的软件组成成份,可被用来构造其他软件。它可以是被封装的对象类、类树、一些功能模块、软件框架(framwork)、软件构架(或体系结构Architectural)、文档、分析件、设计模式(Pattern)等。构件分为构件类和构件实例,通过给出构件类的参数,生成实例,通过实例的组装和控制来构造相应的应用软件,这不仅大大提高了软件开发者的开发效率,也大大提高了软件的质量。特点:语义完整、语法正确、有可重用价值;隐藏具体实现,只通过接口提供服务,构件的使用与它的开发、生产无关。PS:开发构件在结构上要考虑语义描述、通信接口和实现代码等三方面的复合体2024/7/79构件与组件的区别:抽象视觉不同组件是对客观世界基本实体的抽象,强调和实体的对应及对实体的建模。关注实体的静态属性特征构件是对客观世界的实体或实体联合提供的功能和服务的建模。关注实体的功能和服务可复用程度和复用机制复用是构件的生命线构件做为“零部件”,构件通过组合实现复用;继承是组件生命线,组件通过继承来实现复用;粒度不同构件要包含完整的功能,组件是协作来完成这个构件的功能;构件的粒度大于组建的粒度框架模式中间件构件组件模块2024/7/7101.2.2构件管理构件管理是构件重用的基础,包括构件描述、构件分类、构件库组织(存储、检索、提取)、人员及权限管理;管理需要描述构件的信息:实现方式、实现体、注释、生产者、生产日期、大小、价格、版本、关联构件,等等。2024/7/7111、使用构件需要的描述信息可分为:计算功能:构件所实现的整体功能;额外功能特性:构件的执行效率、处理能力、环境假设和整体特性;结构特性:描述特定构件如何与其他构件组织在一起,构成整个系统的信息;家族特性:描述相同或相关门类的构件之间的关系;2024/7/712ADL构件描述示例用Rapide体系结构语言描述的客户服务器结构:TypeAppIsInterfacePublicactionResults(Msg:String)/*提供的功能*/ExternactionReceive(Msg:String)/*需要的功能*/Behavior(MMsgs(App))Receive(M)Results(M)EndApp2024/7/7132、商业化构件的分类:用户界面类、数据库类;商务应用类;工具类、网络通信类:如TCP/IP协议、图像压缩、加密算法;核心技术类:语音识别、字符识别。2024/7/7143、构件外部形态上的分类:独立成熟的构件:经过多次实践检验,隐藏所有接口,只需按命令调用,如数据库管理系统和操作系统等;有限制的构件:提供接口,但用一定的前提条件,装配过程中可能产生资源冲突、覆盖等影响,使用时需要测试,如面向对象的基础类库等;适应性构件:通过包装或接口技术,处理了不兼容性和资源冲突等因素,可直接使用如ActiveX等;2024/7/7153、构件外部形态上的分类(续):装配的构件:可装配在操作系统、数据库管理系统的不同层次上,使用胶水代码(gluecode)连接使用;可修改的构件:通过版本替换修改错误,增加功能。可利用重新“包装”或写接口实现构件的替换。2024/7/7164、构件组织:构件组织的要求:支持构件库的增加、删除、修改等维护操作;支持精确和模糊查找;支持按功能或行为进行比较和查找;对应用领域具有较强的描述能力和描述精度;库管理员和用户容易使用。2024/7/717应用软件构件分类
应用软件构件是应用软件的构成元素,具有一定的功能和结构,并符合一定的标准,具有一个或多个特定的功能,隐藏了具体的实现,并通过接口对外提供服务。应用软件构件按复用范围的不同分为两大类,在多领域范围内进行复用的称之为通用应用软件构件(简称通用构件),在单个领域内复用的称之为领域应用软件构件(简称领域构件)。2024/7/718领域构件是在某个具体领域范围内适用的构件,按其在体系架构中所处的位置分为门户类、应用类、应用支撑类以及业务实体管理类构件等。领域构件的描述要基于在领域范围内形成的标准规范、数据模型等知识,以更好的实现领域范围内的重用。通用构件是指在各应用领域都适用的构件,包括打印类、安全类、日志类、日期类、数据转换类、权限类、统计分析类等等。通用构件的描述可以参考国际上的标准的构件描述模型如WSDL,BIDM等。2024/7/7192024/7/7202024/7/7211.2.3构件重用1、面向领域工程的构件重用领域是一组具有相似或相近软件需求的应用系统所覆盖的功能区域;领域工程是一组相似或相近系统的应用工程建立基本能力和必备基础的过程;可重用信息具有领域特定性,依赖于特定问题及其解决方法;领域具有内聚性(cohesion)和稳定性(stability),内聚性使得可通过一组有限的、相对较少的可重用信息来解决大量问题;稳定性使得获取的信息可以在较长的时间内多次使用。2024/7/7222、基于构件的软件开发(Component-BasedSoftwareDevelopment:CBSD)通常包括构件获取、构件分类和检索、构件评估、适应性修改以及将现有构件在新的语境下组装成新的系统;构件获取的主要途径:从现有构件中获得符合要求的构件,直接使用或作适应性修改;通过遗产工程(legacyengineering),将具有潜在重用价值的构件提取出来;2024/7/7232、基于构件的软件开发(续)从市场上购买现成的商业构件COTS(CommercialOff-The-Shell);开发新的符合要求的构件;一个企业或组织在进行以上决策时,须考虑到不同方式获取构件的一次性成本和以后的维护成本,做出最优的选择。2024/7/7242024/7/7253、检索与提取构件基于关键字的检索:给出关键字,系统挑选合适构件;简单易行,但用户可能无法用关键字描述想要得到的构件;刻面检索法:构造查询、检索构件、对构件排序;易于实现相似构件查找,构造查询困难;超文本检索法:给出关键字,系统搜索匹配,给出构件说明;用户界面友好,但易迷失方向,难于正确选择。2024/7/7264、理解与评价构件面向重用的构件开发:遵循公共软件工程规范,在文档中给出构件功能、行为、领域知识、约束条件、修改方法等方面的详细说明;CASE工具:扫描分析,提取相关信息入库;逆向工程:通过对构件的分析,结合领域知识,半自动地生成相应的设计信息;评价:给收集分析构件用户在实际重用该构件历史过程中的各种反馈信息来完成:成功重用次数、修改量、性能度量。2024/7/7275、修改构件构件开发应使构件的功能、行为和接口设计更为抽象化、通用化和参数化;通过对实参的选取来调整构件的功能和行为;借助设计信息和文档来理解、修改构件;改写实现方法,如Java到C++。2024/7/7286、构件组装基于功能的组装技术:对系统进行功能分解,对各个模块选择构件,通过子程序调用和参数传递完成组装;首先应将目标软件系统分解为强内聚、松耦合的功能模块;基于数据的组装技术:根据当前问题的核心数据结构设计框架,对各节点提取构件;面向数据的设计方法;2024/7/7296、构件组装(续)面向对象的组装技术:面向对象的封装和继承特征使得它更适用于软件重用;构造法:在子类中引进基类的对象作为子类的成员变量,使用库中基类的属性和方法;子类法:将新子类直接说明为库中基类的子类,通过继承和修改基类的属性与行为完成新子类的定义。2024/7/730§1.3连接件1、连接件的概念及特点连接件(Connector)是用来建立构件间的交互以及支配这些交互规则的体系结构构造模块;构件之间的交互包括消息或信号量的传递,功能或方法调用,数据的传送和转换,构件之间的同步关系、依赖关系,等等;例:管道/过滤器体系结构中的管道,客户服务器体系结构中的通信协议或通信机制。2024/7/731连接件的接口称为角色(Role),由连接件与所连接构件之间的一组交互点构成;角色代表了参与连接的构件的作用和地位,并体现了连接所具有的方向性,有主动/被动、请求/响应之分;连接件的主要特性:可扩展性:允许动态改变被关联构件的集合和交互关系的性质;2024/7/732连接件的主要特性(续):互操作性:被连接的构件通过连接件对其他构件进行直接或间接操作的能力;动态连接性:连接的动态约束,指连接件对于不同的所连接构件实施不同的动态处理方法的能力。请求响应特性:响应的并发性、时序性、正确协调多个构件交互请求的逻辑关系和时序关系。2024/7/7332、连接件的描述用Wright体系结构语言描述的一个客户服务器结构:TypeC-SIsConnectorRoleC:Start=
x
Cx.requestxCx.resultStart∨√RoleS:Start=
y
SS.InvokeySy.returnStart∨√BehaviorStart=xCx.request
ySy.InvokeySy.returnxCx.resultStart∨√EndC-S2024/7/734§1.4约束(配置)1、约束的概念及特点约束描述了体系结构配置和拓扑要求,确定了体系结构的构件与连接件的连接关系;约束是基于规则和参数配置的;体系结构约束提供限制来确定构件是否正确连接、接口是否匹配、连接件构成的通信是否正确,并说明实现要求行为的组合语义。2024/7/7352、约束的描述用Rapide体系结构语言描述的系统:ArchitectureX/Open_Architecture(NumRMs:Integer)returnX/OpenisComponent
……Connect
……Constraint
……EndArchitectureX/Open_Architecture2024/7/736§1.5风格、模式、框架
使用软件系统设计人员多年工作经验的总结是提高系统设计效率的重要方法。体系结构风格(style):一组元素及其关系的元模型;元素包括构件、连接件,关系指组合它们的约束条件;体系结构模式(pattern):某个问题在其他问题的上下文中的设计方案,一个在各冲突因素之间权衡利弊、可以实现的解决方案;2024/7/737框架(Framework):由于某些应用领域软件的发展和完善,一些整体应用性的框架逐渐固定下来,形成了特定的系统框架。包括软件系统的基本构成单元和它们之间的关系;特定领域应用的框架称为应用框架,包含frozenspots和hotspots:frozenspots:定义框架的整体结构,一般包含基本的构件及其关系,在实例化过程中基本维持不变;hotspots:包含框架中虚设的用于适应单个特定软件系统的部分,具有很强的一般性描述,可适应具体开发的需要而改变。2024/7/738使用软件体系结构风格和模式对软件开发具有重要的应用价值和经济效益:便于设计者之间相互理解和交流;促进设计和代码的重用,提高开发效率;规范软件开发,提高软件质量;有利于支持互操作性。2024/7/739§1.6非功能属性功能属性指用来处理系统功能性的特定要求,通过应用程序的实现来描述,如计算功能、通信功能、查询功能,等等;非功能属性指未被功能属性覆盖的系统特性,包括可靠性、兼容性、效率,等等;软件设计
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026及未来5年中国双腔标准型导尿管数据监测研究报告
- 2026事业单位工勤技能-江苏-江苏无损探伤工二级(技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-江苏-江苏军工电子设备制造工一级(高级技师)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-新疆-新疆热处理工四级(中级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-新疆-新疆堤灌维护工四级(中级工)历年参考题库含答案详解3套试卷
- 2026事业单位工勤技能-广西-广西食品检验工三级(高级工)历年参考题库含答案详解3套试卷
- 深度学习在APP中的应用
- 安全入宪法解读讲解
- 2026年秋季开学高三让努力配得上梦想心理减压课件
- 2026年秋季开学大学一年级新生军训集体主义教学课件
- 2026中国医疗信息化行业市场现状分析及投资前景与发展策略报告
- 2026年山东省环保发展集团有限公司及权属企业社会招聘(77人)笔试模拟考试及答案详解
- 招标代理机构内部质量管控制度
- 全国危险废物全过程环境管理信息系统填报要求
- 成都川大悦湖初一入学数学分班考试真题含答案
- 消防给水泵站工程专项施工方案
- 人音版(2012)音乐一年级上1.1 玩具兵进行曲 教学设计
- 煤矿一规程四细则考试学习题库及答案
- 2026年新闻记者职业资格考试试卷及答案(共十七套)
- 2026年新疆高考历史考试真题附答案
- 粉尘防爆知识培训试题
评论
0/150
提交评论