网站大量收购独家精品文档,联系QQ:2885784924

第2讲 软件体系结构设计.ppt

  1. 1、本文档共75页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第二讲 软件体系结构设计 (概要设计) 楚 旺 sdchuw@ 体系结构设计 目标 确定系统结构:构件的特征及构件之间的关系; 把软件需求变换为构件及其接口的定义; 逻辑模型 实现模型。 实施者 系统架构师 主要输出 - 体系结构设计文档(ADD-Architectural Design Document); - 详细设计阶段的软件项目管理计划(SPMP/DD); - 详细设计阶段的软件配置管理计划(SCMP/DD); - 详细设计阶段的软件验证与确认计划(SVVP/DD); - 详细设计阶段的软件质量保证计划(SQAP/DD); - 集成测试计划(SVVP/IT). - 进度报告和配置状态审计报告。 参与者 开发者、用户代表、硬件工程师、操作人员。 过程 体系结构设计的基本原则 - 考虑多种设计方案; - 设计应该可跟踪到需求模型; - 设计应尽可能地重用设计经验; - 软件的结构应与问题域的结构相近; - 设计模型应该符合统一规范; - 设计不是编码,编码也不是设计; - 对设计模型进行质量评审,而不是事后进行修改。 设计的基本概念 抽象(Abstraction) - 抽象是人类在解决复杂问题时经常采用的一种思维方式,它是指将现实世界中具有共性的一类事物的相似的、本质的方面集中概括起来,而暂时忽略它们之间的细节差异。在系统开发中运用抽象的概念,可以将复杂问题的求解过程分层,在不同的抽象层上实现难度的分解。在抽象级别较高的层次上,可以将琐碎的细节信息暂时隐藏起来,以利于解决系统中的全局性的问题。 - 在最高抽象层,其中的概念与问题域有关; - 在最低抽象层,其中的概念与计算相关。 细化(Refinement) - 一种自顶向下的设计策略; - 细节逐渐增加 逐步求精是人类解决复杂问题时采用的基本方法,也是许多软件工程技术(例如,规格说明技术,设计和实现技术)的基础。可以把逐步求精定义为:“为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。” 逐步求精之所以如此重要,是因为人类的认知过程遵守Miller法则:一个人在任何时候都只能把注意力集中在(7±2)个知识块上。 Miller法则是人类智力的基本局限,我们不可能战胜自己的自然本性,只能接受这个事实,承认自身的局限性,并在这个前提下尽我们的最大努力工作。 软件体系结构(Software Architecture) - 体系结构是一种构件的层次化结构、构件之间的交互方式、构件使用的数据结构; - 构件表示系统的功能单元。 有效地模块化设计 模块化是指将整个系统划分为若干个模块,每个模块用于实现一个特定的功能。划分模块对于解决大型复杂的问题是非常必要的,可以大大降低解决问题的难度。 - 设C(x)为问题x所对应的复杂度函数,E(x)为解决问题x所需要的工作量函数。对于两个问题P1和P2,如果: C(P1) C(P2) 即问题P1的复杂度比P2高,则显然有: E(P1) E(P2) 即解决问题P1比P2所需的工作量大。 模块独立性 - 模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。 - 模块独立性可以从两个方面来衡量:模块本身的内聚和模块之间的耦合。前者反映的是模块内部各个成分之间的联系,所以也称块内联系;后者反映的是一个模块与其他模块之间的联系,所以又称块间联系。模块的独立性越高,则块内联系越强,块间联系越弱,因此必须尽可能得设计出高内聚低耦合的模块。 内聚(Cohesion) 模块的内聚是指模块内部各成分间联系的紧密程度。一个模块内部各成分之间的联系越紧密,该模块独立性越高。按照由弱到强的顺序,把模块的内聚分为7种类型。 耦合 模块的耦合是指模块之间相互联系的程度。相互联系复杂的模块耦合度强,模块独立性低;相互联系简单的模块耦合度弱,模块独立性高。按照由弱到强的顺序,把模块的耦合也分为7种类型。 封装/信息隐藏 应用模块化设计原理时,自然会产生的一个问题是:“为了得到最好的一组模块,应该怎样分解系统呢?” 信息隐蔽原理指出:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访

文档评论(0)

4477704 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档