- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第5--章软件体系结构
☆ 软件体系结构设计的一般原理 ☆ 软件体系结构设计的元模型 ☆ 体系结构设计方法的分析 ☆ 体系结构设计实例分析 、 软件体系结构设计是软件开发的关键。 软件体系结构设计应当支持对软件系统质量的需求。 5.1 软件体系结构设计的一般原理 一、抽象原理 ◎ 从许多事物中舍弃个别的、非本质的特征,抽取共同的、本质的特征。 ◎ 抽象可以简单的分成两类:过程抽象;数据抽象。 二、封装原理 ◎ 是将事物的属性和行为结合在一起,并且保护事物内部信息不受破损的一种方式。 ◎ 封装由内部构成和操作服务两个方面组成。 三、信息隐藏原理 ◎ 对用户隐藏了部件的实现细节。 ◎ 信息隐藏的原理指出:应该这样设计和确定一个模块,使得一个模块内包含的信息对于不需要这些信息的模块是不能访问的。 四、模块化原理 ◎ 模块化主要关心的是如何将一个软件系统分解成多个系统和部件,主要任务就是决定怎样将构成应用的逻辑结构独立地分割成代码实体。 五、注意点分离原理 ◎ 不同的和无关联的责任应该出现在系统不同的部件中,让它们相互独立地分离开来。 ◎ 纯实现部件独立于特定的上下文环境,因此 更容易重用和维护,而策略部件通常是与特定应用相关的,需要随着应用的变化而改变。 六、耦合和内聚原理 ◎ 耦合一般强调具有相互平行关系的模块之间的特征。 ◎ 内聚强调同一模块内部的特征。 七、接口和实现分离原则 ◎ 接口部分:给出了部件所提供的功能定义,并对功能的使用方法进行了规范。 ◎ 实现部分:包括了实际代码,即对所提供的功能的具体实现的描述。 八、分而治之原理 九、层次化原理 一、框架与架构之间的关系 框架不是构架(即软件体系机构)。体系结构确定了系统整体结构、层次划分,不同部分之间的协作等设计考虑。框架比架构更具体。更偏重于技术涉嫌。确定框架后,软件体系结构也随之确定,而对于同一软件体系结构(比如Web开发中的MVC),可以通过多种框架来实现。二、框架与设计模式之间的关系 设计模式和框架在软件设计中是两个不同的研究领域。设计模式研究的是一个设计问题的解决方法,一个模式可应用于不同的框架和被不同的语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体虽然它们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而设计模式的思想可以在框架设计中进行应用。 框架和设计模式存在着显著的区别,主要表现在二者提供的内容和致力应用的领域。 1)从应用领域上分,框架给出的是整个应用的体系结构;而设计模式则给出了单一设计问题的解决方案,并且这个方案可在不同的应用程序或者框架中进行应用。 2)从内容上分,设计模式仅是一个单纯的设计,这个设计可被不同语言以不用方式来实现;而框架则是设计和代码的一个混合体,编程者可以用各种方式对框架进行扩展,进而形成完整的不同的应用。 3)以第二条为基础,可以得出设计模式比框架更容易移植:框架一旦设计成形,虽然还没有构成完整的一个应用,但是以其为基础进行应用的开发显然要受制于框架的实现环境;而设计模式是与语言无关的,所以可以在更广泛的异构环境中进行应用。 5.2 软件体系结构设计的一般原理 5.3 软件体系结构设计的元模型 捕捉需求 客户 领域知识 需求规格说明 领域知识 制品 解决方案抽象 领域知识 体系结构描述 提取解决方案的结构 体系结构 规格说明 体系结构设计方法的元模型 元模型:是对各种体系结构设计模型的抽象。 (1)客户:用于表示那些关心软件体系结构设计的系统相关人 员。 (2)需求规格说明:描述了所要开发的体系结构的系统需求。 (3)制品:表示某一方面的制品描述。 (4)解决方案抽象:定义了体系结构中(子)结构的概念表示。 (5)体系结构描述:定义了软件体系结构的规格说明。 (6)领域知识:用于表示在解决某一问题中所应用的知识的范围。 领域知识 问题领域 知识 商业领域 知识 解决方案 领域知识 系统/产品 知识 通用知识 领域知识概念的分类 问题领域:指客户观点下与问题有关的知识。 商业领域知识:指商业过程观点下与问题有关的知识。 解决方案领域知识:指提供领域概念的知识。 通用知识:指软件工程师的一般背景和经验。 系统/产品知识:指关于一个系统、一个系统族或一个产品的知识。 一、制品驱动的方法 解决方案 抽象 1:描述 客户 制品 需求 规格说明 通用知识 分析和设计 模型 子系统 体系结构 描述 2:查找 3:分组 4:组合 通用知识 制品驱动方法的概念模型 5.4 体系结构设计方法的分析 制品驱动的体系结构设计
文档评论(0)