




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第4 4章章 体系结构的设计原理体系结构的设计原理4.1 4.1 体系结构的设计原体系结构的设计原理理 软件体系的结构是建立在几条基本原理之上的。它们是:抽象、封装、数据隐藏、模块化、注意点分离、耦合和内聚、充分性、完备性和原始性、策略和实现的分离、接口与实现的分离、引用的单一性、分而治之、层次化。1. 1. 抽象抽象 抽象是人们用来处理复杂性问题的基本原理之一。抽象有几种形式,如数据抽象、对象抽象、实体抽象、行为抽象、过程抽象、虚拟机抽象等。数据、实体的抽象使得软件操作的对象和参数是针对逻辑结构,而非存储结构的。行为、过程的抽象使得操作的指派是依据标识而非地址,由此产生了操作的接口和动态约
2、束描述。 抽象的一个重要特性就是可替换性可替换性。 2.2.封装封装 封装是将构成抽象的属性和行结合在一起,并区分不同抽象的方法。封装为不同抽象之间提供了明确的界限。封装有利于非功能特性实现,例如可变性和可重用性。 封装包括内部构成和操作服务两个方面。3.3.信息隐藏信息隐藏 信息隐藏是软件工程的最基本和最重要的原理之一。 信息隐藏对用户隐藏了部件的实现细节,用来更好地处理系统的复杂性和减少各部件之间的耦合。封装原理经常被用来作为实现信息隐藏的方法。信息隐藏也可以通过接口与实现分离的原理来实现。4.4.模块化模块化 模块化主要关心的是如何将一个软件系统分解成子系统和部件,其主要任务就是决定怎样
3、将构成应用的逻辑结构物理地分割成代码实体。5.5.注意点分离注意点分离(Separation of Concerns)(Separation of Concerns) 不同和无关联的责任应该在软件系统中分离开来,让它们出现在不同的部件中。相互协作完成某一任务的部件应该和在其他任务中执行计算的部件分离开来。如果一个部件在不同的环境下扮演着不同的角色,在部件中这些角色应该独立且相互分离。6.6.耦合和内聚耦合和内聚 耦合强调模块之间的特征,而内聚强调模块内部的特性。耦合是用来衡量一个模块同另一个模块的联系的紧密程度的。内聚用来衡量单一模块内功能和元素间联系性的程度。 内聚有几种形式,.最期望获得的
4、是功能内聚。其他形式的内聚还有:逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚和不规则内聚。7.7.充分性、完备性和原始性充分性、完备性和原始性 BOOC94指出软件系统的每个部件都应该是充分的、完备的和简单的。 充分性指的是部件应该把握住与其进行有意义和高效交互抽象的所有特性。 完备性是指一个部件应该把握住所有与其抽象相关的特性。 原始性指的是部件所应该完成的操作都可以容易地得到实现。8.8.策略和实现的分离策略和实现的分离 软件系统的部件应该实现策略或处理问题,但不能同时处理两者。 策略部件负责处理上下文相关的决策、信息的语义和解释的知识、把不相交计算组合形成结果、对参数值进行选择等问题
5、。 实现部件负责全面规范算法的执行,执行中不需要对上下文相关信息进行决策.如果不能将一个软件体系结构分解成策略和实现的不同部件,至少应该在一个部件内将策略和实现的功能加以分离。9.9.接口和实现的分离接口和实现的分离 任何一个部件都应该包含两个部分,接口和实现. 接口部分定义了部件所提供的功能,并规范了功能的使用方法.该接口对部件的客户是可访问的。实现部分包括了实现部件所提供功能的实际代码。实现部分还可以包括只服务于部件内部操作的另外的函数和数据结构。实现部分对部件客户来说是不可用的。10.10.分而制之分而制之(divide-and-conquer)(divide-and-conquer)
6、11.11.层次化层次化 处理复杂性问题有两种方法,即:分而制之的横向分割和分层次处理的纵向分割。后者是一种把问题分解成建立在基础概念和思想上多层次的、从底向上逐步抽象的分析和表达的结构,每一层处理该层次的问题、服务于该层次的要求。层次化在软件构造中是一种基本的思想。类和对象是层次化的,操作系统构造、编译器构造、应用系统构造,无一不是层次化的。同样,软件体系结构也是层次化的。4.2 4.2 软件的非功能特性软件的非功能特性 功能特性主要是直接针对客户的功能需求。非功能特性对软件的开发和维护,可操作性以及对计算机资源的使用都有着很大的影响。非功能特性主要包括系统的可变性、可操作性、效率、 可靠性
7、、 可测试性、 可重用性。正交性正交性:设法使两个不同的操作交叉重复部分达到最小。1.1.可变性可变性/ /可维护性可维护性 软件老化的原因: (1)缺少变化 如果不迅速更新和升级,软件就会老化; (2)盲目和无知的修改; (3)软件建立初期就设计的不灵活,无法或难以维护和升级; (4)文档不充分。 可以通过下列途径来防止老化,它们是:建立准确的文档 、当引入改变时保持原始的结构、 深入的系统审查、 在设计之初就考虑到变化的影响。可变性有四个方面BUSC96: (1) 可维护性。它主要处理已有问题的解决,当发现错误后对软件进行修复。 (2)可扩充性。它注重于用新特性对软件系统进行扩充,还包括用
8、升级的版本代替原有的部件、除去不必要的特性和部件。可扩充性的目标是可以自由地更换部件而不会影响客户的使用,支持把新部件加到已存在系统中。 (3)可重构性。它处理软件系统部件的重构和部件之间的关系可变性问题。要支持软件的可重构性,需要对部件之间的联系进行详细的设计。有两种可重构性,一种是系统设计人员的,一种是用户可操作的。 (4)可移植性。这可以使一个软件系统能够适应多种硬件平台、用户接口、操作系统、 编程语言和编译器。2.2.互操作性互操作性 组成系统的各个部件不是独立存在的,他们需要频繁地与系统中其他部件、系统外的其它系统、运行环境相互作用。为了支持互操作性,软件体系结构必须设计成对外能够提
9、供良好外部可见、可访问的功能和数据结构的描述。3.3.效率效率4.4.可靠性可靠性 可靠性是软件系统在各种情况下维持其功能的能力。可靠性可以区分为两个方面: (1)错容性。其任务是当错误事件发生时确保正确的系统响应,必要时采取内部补救措施,以避免产生用户不希望的或灾难性的后果。 (2)健壮性。它被用来保护系统,使其即使在错误操作和不正确输入等未预期错误的情况下,也能保持在已定义和明确的状态下。与错容性相反,健壮性不要求软件在发生错误之后还能继续执行,它只需要保证软件能以明确和可接受的方式终止。5.5.可测试性可测试性6.6.可重用性可重用性 重用是“通过已经存在的来获得想要的”的软件和实现设计方法。 可重
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 共享充电桩投放合同范例
- 农村空闲用地租赁合同范例
- 刊物活动策划合同范例
- 佛山劳动合同范例范例
- 山地城市历史名园恢复性环境研究
- 个人药店合同范例
- 通道门施工方案
- 养殖鸵鸟订单合同范例
- 加工煤炭合同范本
- 公产房交易合同范例
- 2020-2024年五年高考语文真题分类汇编专题04 古代诗歌鉴赏(解析版)
- 女神节花艺沙龙活动
- 大剧院音视频系统工程调试方案
- 社区商业招商与运营管理方案
- 人教PEP版(2024)三年级上册英语Unit 6《Useful numbers》单元作业设计
- 魔发奇缘电影中英文对白
- 浙江省宁波市九校2023-2024学年高二下学期期末联考数学试题2
- 事业单位公开招聘分类考试公共科目笔试考试大纲2022年版
- 8 歌曲 《邮递员叔叔来了》课件(13张内嵌视频)
- 网络数据安全风险治理与防护项目需求说明
- GB/T 14020-2024氢化松香
评论
0/150
提交评论