书签 分享 收藏 举报 版权申诉 / 48
上传文档赚钱

类型软件构造(精)课件.ppt

  • 上传人(卖家):三亚风情
  • 文档编号:2221588
  • 上传时间:2022-03-22
  • 格式:PPT
  • 页数:48
  • 大小:1.50MB
  • 【下载声明】
    1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
    2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
    3. 本页资料《软件构造(精)课件.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
    4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
    5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    软件 构造 课件
    资源描述:

    1、 软件构造软件构造陈旻MinkeyCHEN Kunming College Software-Engineering2“建筑体系结构建筑体系结构”MinkeyCHEN Kunming College Software-Engineering3“计算机体系结构”定义是1964年C. M. Amdahl在介绍IBM 360系统时提出的:计算机体系结构是程序员所看到的计算机的属性,即概念性结构与功能特性。“软件体系结构”的概念是20世纪90年代中期David Garlan和Mary Shaw在An Introduction to Software Architecture中提到的。http:/www

    2、.cs.utexas.edu/users/EWD/http:/www.cs.utexas.edu/users/EWD/ewd01xx/EWD196.PDFMinkeyCHEN Kunming College Software-Engineering4 软件体系结构是一个软件系统的高层结构,它高度抽象,超越了算法和数据结构,基本着眼点是系统结构和需求与实现之间的交互,是一个用于理解系统级目标的框架。 Mary Shaw和David Garlan认为,软件体系结构是软件设计过程中,超越计算中的算法设计和数据结构设计的一个层次。体系结构问题包括各方面的组织和全局控制结构,通信协议同步,数据存取,给设

    3、计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等。 MinkeyCHEN Kunming College Software-Engineering5 软件体系结构对软件生命周期中的各个阶段以及项目的管理有着重要的影响。体系结构设计是基于需求分析的一个迭代的过程,这就不可避免地会与需求分析阶段进行交互。体系结构的设计又是后续阶段详细设计的基础。在开发阶段,开发人员正确地理解系统的体系结构是开发工作顺利进行的前提。在测试阶段,体系结构对测试起指导作用。在维护阶段,维护中的大量时间都花费在对现存代码的理解上,如果原始的设计结构能够得到清楚和明确的表达,特别是高层次的表达,就可

    4、以大大减少花在这方面的时间,而如果不知道系统的体系结构则使维护工作很难进行。对于一些已经存在但是不知其体系结构的系统,甚至有必要进行体系结构重构。另外,体系结构对于项目的组织管理也具有重要的意义,合理的体系结构设计还有利于开发任务在开发人员之间的分配,有利于开发人员之间关系的协调。 MinkeyCHEN Kunming College Software-Engineering6综上所述,软件体系结构是整个软件设计成功的基础和关键所在:l软件体系结构是软件开发中各种角色之间进行交流的手段软件体系结构是软件开发中各种角色之间进行交流的手段l软件体系结构是早期设计决策的体现软件体系结构是早期设计决策

    5、的体现l软件体系结构制约着软件的质量属性软件体系结构制约着软件的质量属性l软件体系结构是可重用的模型软件体系结构是可重用的模型l软件体系结构影响着开发和维护组织的组织结构软件体系结构影响着开发和维护组织的组织结构l软件体系结构为软件系统的整个开发过程都提供了有力的软件体系结构为软件系统的整个开发过程都提供了有力的支持支持MinkeyCHEN Kunming College Software-Engineering71 1、软件体系结构研究的主要内容、软件体系结构研究的主要内容v软件体系结构描述语言 v体系结构描述构造与表示 v体系结构的设计、分析与验证 v体系结构发现、演化与重用 v基于体系结

    6、构的软件开发方法 v特定领域的软件体系结构 v软件体系结构支持工具 v软件产品线体系结构 MinkeyCHEN Kunming College Software-Engineering8(1 1)软件体系结构描述语言)软件体系结构描述语言软件体系结构描述语言(Architecture Description Language,简称为ADL)是一种形式化语言,它在底层语义模型的支持下,为软件系统的概念体系结构建模提供了具体的语法和概念框架。基于底层语义的工具为软件体系结构的表示、分析、演化、细化、设计过程等提供支持,包括构件、连接件和约束三个基本元素。主要的体系结构描述语言有C2,UniCon,

    7、MetaH,Aesop,SADL,Rapide,Wright等。ADL的目的就是提供一种规范化的体系结构描述,以便与人交流,并能够用提供的工具对许多实例进行分析。 MinkeyCHEN Kunming College Software-Engineering9(2 2)体系结构描述构造与表示)体系结构描述构造与表示按照一定的描述方法,用体系结构描述语言对体系结构进行说明的结果则称为体系结构的表示,而将描述体系结构的过程称为体系结构构造。在体系结构描述方面,Kruchten提出的“4+1”模型是当今软件体系结构描述的一个经典范例,该模型由逻辑视图、开发视图、过程视图和物理视图组成,并通过场景将这

    8、四种视图有机地结合起来,比较细致地描述了需求和体系结构之间的关系。而Booch从UML的角度出发给出了一种由设计视图、过程视图、实现视图和部署视图,再加上一个用例视图构成的体系结构描述模型。IEEE于1995年成立了体系结构工作组,综合了体系结构描述研究的成果,并参考业界的体系结构描述的实践,起草了体系结构描述标准IEEE P1471。MinkeyCHEN Kunming College Software-Engineering10(3 3)体系结构的设计、分析与验证)体系结构的设计、分析与验证生成一个满足软件需求的体系结构的过程即为体系结构设计。体系结构设计生成一个满足软件需求的体系结构的过

    9、程即为体系结构设计。体系结构设计的本质在于:将系统分解成相应的组成成分,并将这些成分重新组装成一个的本质在于:将系统分解成相应的组成成分,并将这些成分重新组装成一个系统。软件体系结构设计是软件设计中非常重要的一个环节,软件开发过程系统。软件体系结构设计是软件设计中非常重要的一个环节,软件开发过程中只要需求和体系结构确定之后,这个软件基本上也就定型了。体系结构设中只要需求和体系结构确定之后,这个软件基本上也就定型了。体系结构设计有过程驱动方法和问题列表驱动方法。体系结构设计研究的重点内容之一计有过程驱动方法和问题列表驱动方法。体系结构设计研究的重点内容之一是体系结构风格,体系结构风格在本质上反映

    10、了一些特定的元素按照特定的是体系结构风格,体系结构风格在本质上反映了一些特定的元素按照特定的方式组成一个特定的结构,该结构应有利于上下文环境中的特定问题的解决。方式组成一个特定的结构,该结构应有利于上下文环境中的特定问题的解决。体系结构是对系统的高层抽象,并只对感兴趣的属性进行建模。由于体系结体系结构是对系统的高层抽象,并只对感兴趣的属性进行建模。由于体系结构是在软件开发过程之初产生的,因此好的体系结构可以减少和避免软件错构是在软件开发过程之初产生的,因此好的体系结构可以减少和避免软件错误的产生和维护阶段的高昂代价。体系结构是系统集成的蓝本、系统验收的误的产生和维护阶段的高昂代价。体系结构是系

    11、统集成的蓝本、系统验收的依据,体系结构本身需要分析与测试,以确定这样的体系结构是否满足需求。依据,体系结构本身需要分析与测试,以确定这样的体系结构是否满足需求。比较重要的体系结构分析(评估)方法有体系结构权衡分析方法比较重要的体系结构分析(评估)方法有体系结构权衡分析方法(Architecture Tradeoff Analysis Method,简称为,简称为ATAM)、软件体系结)、软件体系结构分析方法(构分析方法(Software Architecture Analysis Method,简称为,简称为SAAM)和中间设计积极评审法(和中间设计积极评审法(Active Reviews f

    12、or Intermediate Design,简称,简称为为ARID)。)。 MinkeyCHEN Kunming College Software-Engineering11(4 4)体系结构发现、演化与重用)体系结构发现、演化与重用对于一个已经存在但是不知道其体系结构的软件系统,对其进行维护是一件很困难的事情,这时可以通过体系结构发现来解决这个问题。体系结构发现就是从己经存在的软件系统中提取出软件体系结构,这可以帮助维护人员理解系统,保证维护工作的顺利进行。由于系统需求、技术、环境、分布等因素的变化而最终导致软件体系结构的变动,称为软件体系结构演化。而体系结构重用是属于比代码重用更高级的设

    13、计重用。重用是软件工程领域所倡导的有效技术之一,体系结构级的重用会导致大批构件的重用,不仅极大地提高了软件开发的效率、降低了软件开发的成本,而且对于提高多种软件质量都有很大的作用。 MinkeyCHEN Kunming College Software-Engineering12(5 5)基于体系结构的软件开发方法)基于体系结构的软件开发方法在本质上,软件体系结构是对软件需求的一种抽象解决方案。在引入了体系结构的软件开发之后,应用系统的构造过程变为“问题定义软件需求软件体系结构软件实现”,可以认为软件体系结构架起了软件需求和软件设计之间的一座桥梁。在基于构件和软件体系结构的软件开发逐渐成为主流

    14、的开发方法的情况下,已经出现了基于构件的软件工程。MinkeyCHEN Kunming College Software-Engineering13(6 6)特定领域的软件体系结构)特定领域的软件体系结构特定领域的软件体系结构(Domain Specific Software Architecture,简称为DSSA)是一门以软件重用为核心,研究软件应用框架的获取、表示和应用等问题的软件方法学。DSSA将软件体系结构理论应用到具体领域,因为特定领域的应用具有相似的特征,所以可以借鉴领域中己经成熟的软件体系结构。通过特定领域的软件体系结构,可以实现解决方法在某个领域内的重用。MinkeyCHEN

    15、 Kunming College Software-Engineering14(7 7)软件体系结构支持工具)软件体系结构支持工具几乎每一种软件体系结构描述语言都有相应的支持工具,如Unicon, Aesop等体系结构支持环境,C2的支持环境ArchStudio等。除了软件体系结构描述语言的支持工具外,还有一些基于软件体系结构的开发方法的支持工具,例如ABC(architecture-based component composition)是一种基于软件体系结构面向构件的软件开发方法,ABC-Tool就是ABC方法的支持工具。另外还有一些支持体系结构静态分析的工具、体系结构性能仿真工具等,但是

    16、与其他成熟的软件开发环境相比,体系结构的支持工具还不是很实用。MinkeyCHEN Kunming College Software-Engineering15(8 8)软件产品线体系结构)软件产品线体系结构软件体系结构的开发是大型软件系统开发的关键环节,对于软件产品线的开发来说更是具有至关重要的作用。在这种开发生产中,基于同一个软件体系结构,可以创建具有不同功能的多个系统。在软件产品族之间共享体系结构和一组可重用的构件,可以降低开发和维护的成本。MinkeyCHEN Kunming College Software-Engineering162 SA2 SA的定义的定义MinkeyCHEN

    17、Kunming College Software-Engineering17SASA的定义的定义v Booch, Rumbaugh, and Jacobson, 1999:An architecture is the set of significant decisions about the organization of a software system, the selection of the structural elements and their interfaces by which the system is composed, together with their be

    18、havior as specified in the collaborations among those elements, the composition of these structural and behavioral elements into progressively larger subsystems, and the architectural style that guides this organization-these elements and their interfaces, their collaborations, and their composition

    19、 (The UML Modeling Language User Guide, Addison-Wesley, 1999).v 体系结构是一系列重要决策的集合,这些决策与以下内容相关:软件的组织,构成系统的结构元素及其接口的选择,这些元素在相互协作中明确表现出的行为,这些结构元素和行为元素进一步组合构成的更大规模的子系统,和引导这一组织包括这些元素及其接口、它们的协作、它们的组合的体系结构风格。 MinkeyCHEN Kunming College Software-Engineering18SASA的定义的定义定义1: (BoochRumbaughJacobson定义) 软件体系结构组织,元

    20、素,子系统,风格MinkeyCHEN Kunming College Software-Engineering19SASA的定义的定义定义2: (Bass定义) Bass等人在Software Architecture in Practice一书中提到,程序或计算系统的软件体系结构是系统的一个或多个结构,包括软件构件(components)、构件的外部可视属性(propenies)和构件之间的关系。 这里的外部可视属性,是指其他构件认为该构件所具备的特征,如所提供的服务、具有的性能特点、错误处理机制、共享资源的用法等。要注意的是,此定义中,特意未指明什么是构件,什么是关系。构件既可以是对象,也

    21、可以是进程,还可以是函数库,或是数据库。 MinkeyCHEN Kunming College Software-Engineering20SASA的定义的定义定义3: (Shaw定义) 在第一届软件系统体系结构国际讨论会上,Mary Shaw对于当时术语使用的混乱情况予以了澄清。从会议论文中,Shaw整理出他们的定义和观点,并对当时的各种观点作了如下的分类: 结构模型;框架模型;动态模型;过程模型 。MinkeyCHEN Kunming College Software-Engineering21SASA的定义的定义(1)结构模型 结构模型认为,软件体系结构由构件、构件之间的连接和一些其他方

    22、面组成。这些方面包括如下几类: 配置,风格。 约束,语义。 分析,属性。 原理,需求。(2)框架模型框架模型 框架模型的观点与框架模型的观点与结构模型相似,但其重结构模型相似,但其重点在于整个系统的连贯点在于整个系统的连贯结构结构(这种结构通常是唯这种结构通常是唯一的一的),这与重视其组成,这与重视其组成恰好相反。框架模型常恰好相反。框架模型常常以某种特定领域或某常以某种特定领域或某类问题为目标。类问题为目标。 MinkeyCHEN Kunming College Software-Engineering22SASA的定义的定义(3)动态模型 动态模型强调系统的行为质量。“动态”可以有多种含意

    23、。它可以是指整个系统配置的变化也可以是指禁止预先激活了的通信或交互,还可以是指计算中表现中的动态特性,如改变数据的值。 (4)(4)过程模型过程模型 过程模型关注系统过程模型关注系统结构的构建及其步骤和结构的构建及其步骤和过程。在这一观点下,过程。在这一观点下,体系结构是所进行的一体系结构是所进行的一系列过程的结果。系列过程的结果。 MinkeyCHEN Kunming College Software-Engineering23SASA的定义的定义v Garlan and Shaw, 1993:.beyond the algorithms and data structures of the

    24、 computation; designing and specifying the overall system structure emerges as a new kind of problem. Structural issues include gross organization and global control structure; protocols for communication, synchronization, and data access; assignment of functionality to design elements; physical dis

    25、tribution; composition of design elements; scaling and performance; and selection among design alternatives.“ Mary Shaw和David Garlan认为,软件体系结构是软件设计过程中,超越计算中的算法设计和数据结构设计的一个层次。体系结构问题包括各方面的组织和全局控制结构,通信协议同步,数据存取,给设计元素分配特定功能,设计元素的组织,规模和性能,在各设计方案间进行选择等。 MinkeyCHEN Kunming College Software-Engineering24SASA

    26、的定义的定义定义4: (GarlanShaw 模型 )软件体系结构=构件,连接件,约束。其中:1)构件(component) :可以是一组代码,如程序的模块;也可以是一个独立的程序,如数据库服务器。构件是相关对象的集合,运行后实现某计算逻辑。它们或是结构相关(如嵌套对象,其中的被嵌对象是嵌套对象的一部分)或是逻辑相关(若干聚集对象完成某功能)。 构件相对独立,仅通过接口与外部相互作用,可作为独立单元嵌入到不同应用系统中。构件的定制和规范化对于实现构件的复用有重要意义。MinkeyCHEN Kunming College Software-Engineering25SASA的定义的定义定义4:

    27、(GarlanShaw 模型 )软件体系结构=构件,连接件,约束。其中:2)连接件(connector):可以是过程调用、管道、远程过程调用等,用于表示构件之间的相互作用。连接件是构件的粘合剂,它把不同的构件连接起来构成体系结构的一部分。连接件也是一组对象。它一般表现为框架式对象或转换式对象(调用远程构件资源),例如“桩”,“代理”对象等。 MinkeyCHEN Kunming College Software-Engineering26SASA的定义的定义定义4: (GarlanShaw 模型 )软件体系结构=构件,连接件,约束。其中:3)约束(constrain):约束一般为对象连接时的规

    28、则,或指明构件连接的势态和条件。例如,上层构件可要求下层构件的服务,反之不行:两对象不得递归地发消息;代码复制迁移的一致性约束;在什么条件下此种连接无效等。 MinkeyCHEN Kunming College Software-Engineering27SASA的定义的定义v Perry and Wolf, 1992:A set of architectural (or, if you will, design) elements that have a particular form. Perry and Wolf distinguish between processing elemen

    29、ts, data elements, and connecting elements, and this taxonomy by and large persists through most other definitions and approaches. MinkeyCHEN Kunming College Software-Engineering28SASA的定义的定义定义5: (PerryWolf模型 ) 软件体系结构=元素,形式,准则。 软件体系结构形式(form)由专有特性(properties)和关系组成。专有特性用于限制软件体系结构元素的选择,关系用于限制软件体系结构元素组合

    30、的拓扑结构。而在多个体系结构方案中选择合适的体系结构方案往往基于一组准则。 MinkeyCHEN Kunming College Software-Engineering29SASA的定义的定义v其他有影响的定义: 定义6:GarlanPerry定义 David Garlan和Dewne Perry于1995年在IEEE软件工程学报上所做的特约评论中,采用了如下的定义:软件体系结构是一个程序/系统各构件的结构、它们的相互关系,以及进行设计的原则和指导方针,这些原则和方针随时间变化而变化。 MinkeyCHEN Kunming College Software-Engineering30SASA

    31、的定义的定义 定义7:SoniNordHofmeister定义 西门子公司研究院的Soni,Nord和Hofmeister研究了软件行业的开发项目中的常用和主要结构。在此工作的基础上,他们认为,软件体系结构至少有4个不同的具体形态。它们中的每一个形态都从不同的角度来描述系统。 概念体系结构使用其主要设计元素和它们的相互关系来描述系统。模块互连体系结构包含两个正交的结构:功能分解和分层。执行体系结构描述了系统的动态结构。代码体系结构描述了开发环境中的源程序、二进制代码和函数库等是怎样被组织的。 MinkeyCHEN Kunming College Software-Engineering31SA

    32、SA的定义的定义 定义8:Boehm模型 软件体系结构构件,连接件,约束,不同人员的需求,准则。 Barry Boehm和他的学生提出,软件体系结构包括系统构件、连接件、约束的集合,反应不同人员需求的集合,以及准则的集合。其中,这些准则能够说明由构件、连接件和约束所定义的系统在实现时是如何满足系统不同人员需求的。 MinkeyCHEN Kunming College Software-Engineering32小结:关于小结:关于SASA的定义(考点)的定义(考点)MinkeyCHEN Kunming College Software-Engineering33小结:关于小结:关于SASA的定

    33、义(考点)的定义(考点)MinkeyCHEN Kunming College Software-Engineering34小结:关于小结:关于SASA的定义(考点)的定义(考点)MinkeyCHEN Kunming College Software-Engineering35SASA之重要之重要好的软件体系结构,是好的软件的必要条件。“Good architectural design has always been a major factor in determining the success of a software system.”MinkeyCHEN Kunming Colleg

    34、e Software-Engineering362 SA2 SA在在SESE中的地位中的地位v Guide to the Software Engineering Body of Knowledge (SWEBOK)from http:/www.swebok.org/ IEEEMinkeyCHEN Kunming College Software-Engineering37Software Software Structure and Structure and ArchitectureArchitectureMinkeyCHEN Kunming College Software-Engine

    35、ering384 4 软件体系结构的理论基础软件体系结构的理论基础软件体系结构是软件工程的一个重要的研究和实践领域,也是软件工程的一个新的发展阶段。软件体系结构今天的辉煌离不开软件技术和软件工程几十年来的发展。软件体系结构的理论基础其实有很多在多年以前就已经为人所知。它们主要是在20世纪70年代为结构化程序设计研究而提出的,并伴随着面向对象程序设计和构件等技术的发展而发展。这些理论对于成功地进行软件开发是十分重要的,而对于这种重要性的认识越是当人们感到软件开发困难的时候认识得越深刻。软件体系结构一些重要的理论基础有抽象、封装、数据隐藏、模块化、注意分离点、耦合和内聚、充分性、完备性和简单性、策

    36、略和实现的分离、接口和实现的分离、分而制之、层次性。这些理论并不是一个个分离的个体,而是紧密联系在一起的一个整体,共同构成软件体系结构的理论基础。 MinkeyCHEN Kunming College Software-Engineering39(1 1)抽象)抽象 抽象是人们用来处理复杂问题的基本原理之一。抽象有几种形式,如数据抽象、对象抽象、实体抽象、行为抽象、过程抽象等。数据、实体的抽象使得软件操作的对象和参数是针对逻辑结构,而非存储结构。行为、过程的抽象使得操作的指派是依据标识而非地址,由此产生了操作的接口和动态约束描述。在处理系统复杂性方面,抽象起到了重要的作用。减少构件耦合、接口与

    37、实现的分离等,都得益于抽象。(2 2)封装)封装在面向对象程序设计当中,封装是一种重要的机制。所谓对象的概念就在面向对象程序设计当中,封装是一种重要的机制。所谓对象的概念就是属性(数据)及其操作(行为)的封装体。但封装的机制并不局限于是属性(数据)及其操作(行为)的封装体。但封装的机制并不局限于面向对象领域,在结构化程序设计中,封装在函数和子程序当中也得到面向对象领域,在结构化程序设计中,封装在函数和子程序当中也得到了体现。封装有利于提高抽象的层次,有利于结构和实现的分离,最终了体现。封装有利于提高抽象的层次,有利于结构和实现的分离,最终提高了软件的可维护性、可重用性和可靠性。提高了软件的可维

    38、护性、可重用性和可靠性。MinkeyCHEN Kunming College Software-Engineering40(1 1)信息隐藏)信息隐藏信息隐藏是软件工程的最基本和最重要的原理之一。信息隐藏对用户隐藏了构件的实现细节,用来更好地处理系统的复杂性和减少各构件之间的耦合。为了更好地应用,用户不需要知道的细节都应该由构件封装起来。封装原理经常被用来作为实现信息隐藏的方法,信息隐藏也可以通过接口与实现分离的原理来实现。(4 4)模块化)模块化 模块化主要关心的是如何将一个软件系统分解成子系统和构件,其主要模块化主要关心的是如何将一个软件系统分解成子系统和构件,其主要任务就是决定怎样将构成

    39、应用的逻辑结构物理地分割成代码实体。模块任务就是决定怎样将构成应用的逻辑结构物理地分割成代码实体。模块化的主要做法,就是在一个系统内引入具有良好定义的分界,依次来处化的主要做法,就是在一个系统内引入具有良好定义的分界,依次来处理系统的复杂性。模块化与封装原理的联系非常密切。模块化带来了复理系统的复杂性。模块化与封装原理的联系非常密切。模块化带来了复杂系统资源管理、维护和应用的逻辑和条理性,增加了应用设计的灵活杂系统资源管理、维护和应用的逻辑和条理性,增加了应用设计的灵活性。另外,它对于系统的运行设计和管理调度也提供了方便。性。另外,它对于系统的运行设计和管理调度也提供了方便。MinkeyCHE

    40、N Kunming College Software-Engineering41(5 5)注意分离点)注意分离点不同和无关联的责任应该在软件系统中分离开来,让它们出现在不同的构件中。相互协作完成某一个特定任务的构件应该和其他任务中执行计算的构件分离开来。如果一个构件在不同的环境下扮演不同的角色,在构件中这些角色应该独立且相互分离。例如,在多层体系结构的组件设计中,在多种应用场景中担任不同角色的同一组件,需要并且可以使用不同的接口定义。这样,对某一角色开发的只是与角色相关的信息和服务,避免了过多暴露所造成对应用设计的负担和混乱,并保证了组件运行的可靠和安全。MinkeyCHEN Kunming

    41、College Software-Engineering42(6 6)耦合和内聚)耦合和内聚耦合和内聚最初是作为结构化设计方法的部分原理而提出的。耦合强调模块之间的特性,而内聚强调模块内部的特性。耦合是用来衡量一个模块同另一个模块的联系的紧密程度的。紧密的耦合就会使系统变得复杂,因为如果一个模块和另外的模块有很密切关联的话,这个模块就很难理解、调试、维护。通过弱耦合构件的设计可以降低系统的复杂性。内聚用来衡量单一模块内功能和元素间联系的紧密程度。内聚有几种形式,最期望获得的是功能内聚,它说明一个模块或者构件内的所有元素都共同来完成具有良好边界的行为。最差的形式是偶然内聚,这种形式将毫无联系的抽

    42、象放置到同一模块之中。其他形式的内聚还有:偶然内聚、时间内聚、过程内聚、通信内聚、顺序内聚和不规则内聚。 MinkeyCHEN Kunming College Software-Engineering43(7 7)充分性、完备性和简单性)充分性、完备性和简单性Grady Booch指出软件系统的每个构件都应该是充分的、完备的和简单的。充分性指的是构件应该把握住与其进行有意义和高效交互抽象的所有特性。完备性指的是一个构件应该把握住所有与其抽象相关的特性。简单性指的是构件所应该完成的操作都可以容易地得到实现。在对一个指定的问题寻找构件设计方案时,使其具有充分性和完备性是一个主要目标。 (8 8)分

    43、而制之)分而制之分而制之来自古时的政治,在软件体系结构中该原理得到大量的应分而制之来自古时的政治,在软件体系结构中该原理得到大量的应用。例如,在设计中将一个复杂任务或构件分割成可以独立设计的用。例如,在设计中将一个复杂任务或构件分割成可以独立设计的更小的部分。该原理经常被用来作为实现注意点分离的方法,但是更小的部分。该原理经常被用来作为实现注意点分离的方法,但是更重要的还是简化了问题的复杂度。更重要的还是简化了问题的复杂度。 MinkeyCHEN Kunming College Software-Engineering44(9 9)策略和实现的分离)策略和实现的分离软件系统的构件应该实现策略或

    44、处理问题,但不能同时处理两者。策略构件负责处理上下文相关的决策、信息的语义和解释的知识、把不相交计算组合成结果、对参数值进行选择等问题。实现构件负责全面规范算法的执行,执行中不需要对上下文相关信息进行决策。由于独立于特定的上下文环境,实现构件容易重用和维护,而策略构件通常是与特定应用相关的,需要随着应用的变化而改变。也可以说策略和实现的分离强调分离出业务逻辑,将业务逻辑部分和与业务逻辑无关的实现部分分离开来,这样软件的结构更清晰。 MinkeyCHEN Kunming College Software-Engineering45(1010)接口和实现的分离)接口和实现的分离任何一个构件都应该包

    45、含两个部分:接口和实现。接口部分定义了构件所提供的功能,并规范了功能的使用方法。实现部分包括了实现构件所提供功能的实际代码。该原理的主要目的是防止构件的客户接触到实现的细节,而只为客户提供构件的接口规范和使用方法。另外,该原理还允许独立于其他构件的应用而实现一个构件的功能。就像封装一样,接口和实现的分离也是一种用来获得信息隐藏的技术。接口和实现的分离还支持可修改性,如果构件的接口和实现进行了分离,那么构件它就更容易在系统中进行改变,而且这种分离避免了客户直接受到构件变化的影响。该原理使构件行为和表示的改变变得容易,尤其是那些不影响接口的修改,例如对运行性能的提高。 MinkeyCHEN Kun

    46、ming College Software-Engineering46(1111)层次性)层次性处理复杂问题有两种方法,即:分而制之的横向分割和分层次处理的纵向分割。后者是一种把问题分解成建立在基础概念和思想上多层次的、从底向上逐步抽象的分析和表达的结构,每一层处理该层次的问题、服务于该层次的要求。层次结构在日常生活中是很常见的,例如企业的组织结构和社会结构都是分层的。分层的思想也深入地渗透到人们的思维之中,有些工作比较复杂,我们没法一下子完成,只能把工作分为几层,一层一层地去做,高层工作总是建立在低层工作的基础之上。 MinkeyCHEN Kunming College Software-Engineering473 3 正确看待软件体系结构与软件管正确看待软件体系结构与软件管理的各类理念理的各类理念 MinkeyCHEN Kunming College Software-Engineering48第三章软件的生命周期

    展开阅读全文
    提示  163文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    关于本文
    本文标题:软件构造(精)课件.ppt
    链接地址:https://www.163wenku.com/p-2221588.html

    Copyright@ 2017-2037 Www.163WenKu.Com  网站版权所有  |  资源地图   
    IPC备案号:蜀ICP备2021032737号  | 川公网安备 51099002000191号


    侵权投诉QQ:3464097650  资料上传QQ:3464097650
       


    【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。

    163文库