3、软件结构.pptVIP

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
3、软件结构

3、软件结构 软件结构的优劣是衡量软件体系好坏标准的重要因素之一,任何一个大的软件系统,总是由若干功能相对独立的部分组成的。所谓软件结构是指软件的各个组成部分之间的关系,对于同一问题用不同的方法去解决可能获得不同的软件结构。如下图所示是同一问题的三种不同软件结构。软件的总体结构隐含地指出软件的控制层,而控制层的复杂程度又确定了软件结构的优劣。 3、软件结构 3、软件结构 什么样的结构可称为“良结构”呢?在讨论软件良结构之前,先介绍几个有关的术语(此处,仅把相对对立单元称做(模)块,在以后的面向对象方法中,相对独立单元可能是对象或类)。 ?(模)块(module) :可以独立命名和编址的单元。一个块可包含多个并列过程,也可以没有可执行过程。把一个复杂软件分成若干个相对独立的块,采取“分而治之”的策略是设计大型软件的基本方法之一。 3、软件结构 ?扇出(fan-out):模块直接下属的模块个数。即直接由一个块所控制的块数。例如图2.6中块M的扇出是M1,M2,M3这三个块。即扇出是3。 ?扇入(fan-in):模块直接隶属的模块个数,即指有多个块直接控制一个给定块。例如,块N3的扇入是块M1,M2,M3这三个块,亦即扇出是3。 ?深度:深度表示控制的总层数。如图2.6结构图的深度为4。 3、软件结构 ?宽度:宽度表示跨度最宽层的跨度数。图2.6结构图的宽度为第三层的跨度,也为4。 另外 ,如果一块控制另一块,那么称前一块“统率了”后一块,后一块“从属于”前一块。有了上述术语,下面讨论几种良结构和块间关系的有关性质。 3、软件结构 3、软件结构 3.1良软件总体结构 结构清晰是当今评价软件质量的重要标准之一,一般具有层次性,无回路块调用的软件结构称为“良结构”软件系统。为此,在软件开发的总体设计阶段,人们力求设计出良结构的软件系统。实践证明,下面三种结构均为良结构 3、软件结构 ——良软件总体结构 (1)线性型结构 图2.7为线性型总体结构,这种结构最简单,也是最理想的结构。但在实际中,绝大多数软件系统的结构要比线性型结构复杂的多,通常需要用树型结构或半序结构来设计。 (2)树型结构 数型结构是一种常用结构,它具有良结构的标准,而且很多软件系统都可表示成树型结构。 3、软件结构 ——良软件总体结构 3、软件结构 ——良软件总体结构 (3)半序型结构 将软件总体结构设计为半序型结构可能是最常见的情形,图2.9为半序型结构。所谓半序型结构是多个上层块可调用同一下层块,同层块也可相互调用,但底层块不能调用上层块。这种结构也具备良结构标准。但测试和维护时比前两种结构复杂。 3、软件结构 ——良软件总体结构 3、软件结构 ——良软件总体结构 当完成总体设计后,若获得的总体结构为上述三种结构之一,称之为良结构,不必对所设计的结构进行调整。然而,当设计出的结构为非良结构(如网络结构)时,应作适当地调整,以获得良总体结构。例如图2.10是一网络结构,若合并网络图中的循环节点(把一个块看成一节点),就可获得相应的半序结构(如图2.11)。无论采用何种结构,好结构、易维护、易扩充是重要特征,而且易测试、易维护、易扩充等性质与结构的好坏紧密相关。 3、软件结构 ——良软件总体结构 3、软件结构 下面讨论块间和块内部的有关属性。 3.2块的代价   在计算机软件开发中,块的概念已经采用了四十余年,前节讨论的总体结构正是体现了块的思想。程序模块是对付复杂问题的有效手段,也是有效管理和维护程序的重要基础。如果一个大型软件仅为一个块,那么它是很难理解的。为了阐明划分块的有关代价,先考虑基于问题求解的一些观察结果。 3、软件结构     ——块的代价   令C(X)是确定问题X的复杂程度的函数,E(X)是决定求解问题X所需要的工作量(按时间计算)的函数。对于两个问题P1,P2 如果  C(P1)C(P2) 显然有 E(P1)E(P2) 另一个有趣的规律是:        C(P1 + P2)C(P1)+C(P2) E(P1 + P2)E(P1)+E(P2)  3、软件结构     ——块的代价   这就是说,采用“分而治之”的策略,把一个复杂的问题划分成许多容易对付的小问题,它也就比较容易求解了。    由上面的不等式似乎能得出这样的结论:如果把软件无限的细分,那么最后开发每个块所需要的工作量就小得可以忽略

文档评论(0)

xyl118 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档