- 1、本文档共57页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
总体设计的基本目的 “概括地说,系统应该如何实现?” 总体设计 总体设计又称为概要设计或初步设计。 分两个方面的设计工作: 1系统设计 (确定系统的具体实现方案) 2 结构设计(确定软件结构) 设计过程 1、设想供选择的方案 2、选取合理的方案 3、推荐最佳方案 4、功能分解 5、设计软件结构 6、设计数据库 7、制定测试计划 8、书写文档(系统说明、用户手册、测试计划、详细的实现计划、数据库设计结果) 9、审查和复审 设计软件系统结构 软件设计的概念与原则 模块化 抽象 信息隐蔽 模块独立 模块 模块是数据说明、可执行语句等程序对象的集合。它是单独命名的而且可通过名字来访问的,例如:过程,子程序,函数,宏等都可以作为模块。 外部特征是模块的接口、功能和状态; 内部特征是模块的局部参数和实现该模块的程序代码。 调用一个模块只需知道它的外部特征,而不必了解其内部特征。 模块化 模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。 每个模块完成一个特定的子功能, 所有的模块按某种方法组装起来,成为一个整体,完成整个系统所要求的功能。 模块化的理论 设问题x, C(x)表示问题x的复杂度 E(x)表示解决问题x的需要的工作量。x1x2 C(x1)C(x2),E(x1)E(x2) C(x1+x2)C(x1)+C(x2) E(x1+x2)E(x1)+E(x2) 把复杂的问题分解成许多容易的小问题,原来的问题也就容易解决了。 抽 象 抽象是指忽视一个主题中与当前目标无关的那些方面,以便充分地注意与当前目标有关的方面。抽取问题的本质特征而暂时不考虑它的细节。 软件工程过程的每一步,都是对软件解法的抽象层次的一次细化。 在可行性研究阶段,软件被看作是一个完整的系统部分; 在需求分析期间,我们使用在问题环境中熟悉的术语来描述软件的解法; 当我们由总体设计阶段转入详细设计阶段时,抽象的程度进一步减少; 最后,当源程序写出来时,也就达到了抽象的最低层。 信息隐蔽 信息隐蔽原理认为:模块所包含的信息(过程和数据)对于其他模块来说应该是隐蔽的。 也就是说,模块应当被这样规定和设计,使得包含在模块中的信息(过程或数据)对于其它不需要这些信息的模块来说,是不能访问的,或者说是“不可见”的。 信息隐蔽的作用 信息隐蔽对于软件的测试与维护都有很大的好处。 因为对于软件的其它部分来说,绝大多数数据和过程都是隐蔽的。 这样,在修改期间由于疏忽而引入的错误所造成的影响就可以局限在一个或几个模块内部,不至波及到软件的其他部分。 模块的独立性 模块的独立性是软件质量的关键: (1)模块独立性程度较高的软件容易开发; (2)模块独立性较高的软件也比较容易测试和维护。 模块的独立性的度量标准:耦合和内聚。 非直接耦合:如果两模块中任一个都不依赖对方而能独立工作,也就是说两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的,则称这两模块为非直接耦合。 数据耦合:如果两模块间通过参数交换信息,而传递的信息仅限于数据,或者说一个模块访问另一个模块时,彼此之间是通过数据参数来交换输入、输出信息的,则称这两模块为数据耦合。 特征耦合/标记耦合:特征耦合是数据耦合的一种变型。如果两个模块都要使用同一数据结构的一部分,不是采用全程公共数据区共享,而是通过模块接口传递数据结构的一部分(不是简单的数据),即为特征耦合。 控制耦合:如果两模块间通过参数交换信息,而传递的信息中含有控制信息,则称它们为控制耦合。 外部耦合:当若干模块均与同一个外部环境关联它们之间便存在外部耦合。 公共耦合(common coupling)。当若干模块通过全局的数据环境相互作用时,则它们之间存在公共耦合。 内容耦合:出现内容耦合的情形包括:1)一个模块直接访问另一个模块的内部数据;2)一个模块不通过正常入口转到另一模块内部;3)两个模块有一部分程序代码重叠(只可能出现在汇编语言中);4)一个模块有多个入口。(当一个模块要直接使用另一模块内部的数据或控制信息;一个模块直接转移到另一模块内部;)等等。 通信内聚 如果一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,则称之为通信内聚模块。 设计准则 1.尽力提高模块独立性 2.选择合适的模块规模(50—100行) 3.模块的深度、宽度、扇出和扇入应适当 平均的扇出为3或4,上限为5--9 4.模块的作用范围应该在控制范围之内 5.降低模块接口的复杂程度 6.设计单入口单出口的模块,避免“病态连接” 模块的作用域应该在控制域之内 模块的作用域:受该模块内一个判定影响的所有模块的集合。 模块的控制域:这个模块本身以及所有直接或间接从属于它的模块的集合。 力争降低模块接口的复杂
文档评论(0)