- 1、本文档共181页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
5.1 软件体系结构设计的一般原理 参照软件工程、结构化程序设计和面向对象程序设计原理,结合软件体系结构设计本身的特点,总结出软件体系结构设计过程中用到的原理主要有以下几个。 1.抽象原理 抽象是人们透过事务繁杂的表面现象,揭示事物本质特征的方法,也是软件体系结构设计中要用到的基本原理。抽象原理贯穿整个软件体系结构的设计过程,它是从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质性的特征。 当人们在使用模块化的方法来解决问题时,一般通过在不同层次的抽象来描述问题的解决方案。在抽象的最高层,可以使用问题环境语言,以概括的方式叙述问题的解。在抽象底层,则采用更为过程化的方法,在描述问题的解时,面向问题的术语与面向实现的术语结合使用。最终,在抽象的最底层,可以用直接实现的方式来说明。 软件体系结构参照了软件工程中的解决方法。软件工程过程中的每一步,都是对软件解的抽象层次的一次细化。在系统定义的过程中,把软件作为计算机系统的一个元素来对待。在软件需求分析时,软件的解使用问题环境中常用的术语来描述。当从概要设计转入详细设计时,抽象的层次进一步减少。最后,当源代码写出时,也就到达了抽象的最低层。在软件体系结构设计中,抽象的原理被同样地应用,并且软件体系结构设计是处在高层次的抽象,不涉及具体的算法和数据结构。 抽象可以简单分成两类,一类属于过程抽象,另一类则属于数据抽象。过程抽象是指任何一个具体的操作序列,若它们完成一项逻辑意义上的功能,则其使用者都可把它看做一个单一的逻辑概念。过程抽象的例子,如一个门的“入口”,它隐含了一个很长的过程步的序列(走到门口,伸出手,握住门把,旋转门把和推门,走进门等)。运用过程抽象软件,开发者可以将一个较大的过程分解成一些子过程,这些过程都完成一些特定的功能。这就使得开发者可以在不同的抽象层次上考虑问题。 数据抽象将数据类型和施加于该类型对象上的操作作为整体来定义,并限定了对象的值只能通过使用这些操作修改和观察。数据抽象的例子,如一个“工资单”,这个数据对象实际上是许多不同信息的集合(开始为单位、姓名、工资总额;接着就是扣除部分,如房租、水电费、取暖费等;最后才是实发金额)。在说明这个数据抽象名时,指的是所有数据。 抽象在众多的设计原理当中起着非常重要的作用:抽象是封装的基础;在处理系统复杂性方面,抽象起到了重要作用;抽象有助于减少部件耦合、接口和实现的分离等。 2.封装原理 封装是将事物的属性和行为结合在一起,并且保护事物内部信息不受破坏的一种方式。封装使不同抽象之间有了明确的界限。封装有利于非功能特性的实现,例如可变性和可重用性。 封装由内部构成和操作服务两个方面组成。例如,可以通过对象、模块设计和访问接口设计实现封装。 封装与信息隐藏有着密切的联系。事实上,人们对信息隐藏的认识来源于封装,封装则为信息隐藏提供了支持。封装保证了模块间的相对独立性,使得程序的维护和修改较为容易。对应用程序的修改仅限于类的内部,因而可以将应用程序修改带来的影响减小到最低限度。抽象和信息隐藏从两个不同的方面说明了模块化设计的特征。抽象帮助定义了构成软件的过程实体,而信息隐藏实施了过程细节的约束。这些对模块化设计带来了莫大的益处。 在软件体系结构的定义中,构件和连接件被公认为是体系结构的两大类构成部分。在这里,封装原理的应用起了关键作用。一般认为,构件是这样一种单位软件:它具有完整的语义、正确的语法和较高的可重用价值,是软件重用过程中可以明确辨识的系统;结构上,它是语义描述、通信接口和实现代码的复合体。简单地说,构件是具有一定的功能,能够独立工作或能同其他构件装配起来协调工作的软件实体,并且构件的使用与它的开发、生产无关。 从抽象化的角度来看,面向对象技术已经达到了类级重用,但仍然是一种代码级的重用,它以类为封装的单位。这样的重用粒度还太小,不足以解决异构互操作和效率更高的重用。构件则是对一组类的组合进行封装,是一种更高层次的抽象,并代表完成一个或多个功能的特定服务,也为用户提供了多个接口。整个构件隐藏了具体的实现,只用接口提供服务。 3.信息隐藏原理 信息隐藏对用户隐藏了部件的实现细节。因此,可以用来更好地处理系统的复杂性和减少各模块之间的耦合。 信息隐藏的概念最初来源于面向对象中的设计,注重系统由具有对外隐藏信息的独立部件组合构成的思想,把系统的行为看做具有关联关系的部件间行为的作用。这样,减少了对设计知识的依赖,强化了设计单元与单元之间的关联性。该思想在结构设计方法中起到了关键的作用,它基于部件和部件之间的关联性,依赖特定的标准将系统划分成部件的集合,在面向对象中,这一概念又得到了新的发展。 为了更好地应用,用户不需要知道的细节都应该
文档评论(0)