结构化软件设计.pptxVIP

  1. 1、本文档共10页,可阅读全部内容。
  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文档。上传文档
查看更多

第四章结构化软件设计软件设计的概念结构化设计方法过程设计Jackson方法

4.1软件设计的概念模块和模块化工程上,许多大的系统都是由一些较小的单元组成。例如,建筑工程中的砖瓦和构件,机械工程中的各种零部件等。这样做的优点是便于加工制造,便于维修,而且有些零部件可以标准化,为多个系统所用。同样,软件系统也可以根据其功能分解成许多较小的程序单元,它们就是模块。一般把用一个名字就可调用的一段程序称为“模块”模块具有如下3个基本属性。功能:指该模块要完成的任务。逻辑:描述模块为了完成任务,模块内部怎么做。状态:使用该模块时的环境和条件。对于一个模块,还应该按模块的外部特性与内部特性分别进行描述。模块的外部特性是指模块的模块名、模块的输入/输出参数,以及它给程序乃至整个系统造成的影响。而模块的内部特性则是指完成其功能的程序代码和仅供该模块内部使用的数据。对于其他模块来说,只需了解被调用模块的外部特性就足够了,不必了解它的内部特性。在软件设计时,通常是先确定模块的外部特性,然后再确定它的内部特性。前者是软件总体设计的任务,后者是详细设计的任务。模块化是把整个系统划分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个系统的功能。模块化设计方法强调清楚地定义每个模块的功能和它的输入/输出参数,而模块的实现细节隐藏在各自的模块之中,与其他模块之间的关系可以是调用关系,因此模块化程序易于调试和修改。随着模块规模的减小,模块的开发成本减少,但是模块之间的接口变得复杂起来,使得模块的集成成本增加。那么模块的规模多大才合适呢?模块之间的关系可能密切到什么程度呢?软件工程用模块独立性来衡量。

耦合的概念主程序子程序1子程序2模块之间无连接,则无耦合主程序子程序1子程序2模块之间存在连接,则存在耦合耦合是模块之间的互连程度度量模块之间的连接有:调用,返回,进入,跳出

数据耦合AB调用,返回,参数传递数据耦合开发货单计算金额单价数量金额

特征耦合添加标题如果两个模块都与同一个数据结构有关,则称为特征联结。添加标题计算电费添加标题计算水费和电费添加标题住户详情添加标题计算水费添加标题水费添加标题住户详情添加标题电费添加标题模块之间的特征联结

控制耦合PROCA(){ ………. B(x,y,1)//调用B,使用其功能1 ……….. B(x,y,2)//调用B,使用其功能2}PROCB(a,b,flag){ docase caseflag=1 功能1 caseflag=2 功能2 ………….. endcase}控制耦合

公共环境耦合公共环境耦合图3.3公共环境耦合例图

内容耦合内容耦合一个模块直接访问另一个模块的内部数据;一个模块不通过正常入口转到另一个模块内部;两个模块有一部分程序代码重叠;一个模块有多个入口;

耦合与模块独立性图3.2耦合性与模块独立性建议:尽量使用数据耦合,少用控制耦合,限制公共耦合的范围,不用内容耦合

内聚的概念内聚标志一个模块内部各元素彼此结合的紧密程度。理想内聚的模块只做一件事。在进程概要设计时,要尽量采取高内聚,避免使用低内聚。内聚与耦合呈反比关系,模块内的内聚度越高,模块间的耦合度越低。

内聚与模块独立性的关系图3.5内聚性

偶然内聚偶然内聚图3.6偶然内聚例子

逻辑内聚如果一个模块内部的各组成部分的处理动作在逻辑上相似,但功能都彼此不同或无关,则称为逻辑聚合。一个逻辑聚合模块往往包括若干个逻辑相似的动作,使用时可以选用一个或几个功能。例如:把编辑各种输入数据的功能放在一个模块中。

图示:逻辑内聚逻辑内聚图3.7逻辑内聚例子

时间内聚如果将需要同时执行的部分放在同一模块中,如初始化或结束模块等,则称为时间内聚。例如:程序设计中的初始化模块。

顺序内聚如果模块内的处理是相关的,必须以特定顺序执行,前一个处理动作所产生的输出数据是后一个处理动作的输入数据,则称为过程内聚。过程聚合维护起来不如功能聚合方便,要修改模块中的一个功能,会影响到同一个模块中的其他功能。

图示:顺序内聚01A功能102B模块03C功能2

过程内聚如果一个模块内部的各个组成部分的处理动作各不相同,彼此也没有联系,但他们都受同一个控制流支配,决定他们的执行次序,称为过程聚合。在使用流程图进程程序设计,并通过对流程图的划分组成模块时,就会得到过程内聚模块。循环体计算累积事务记录累积销售额累积订货量通过循环体,计算两种累积数。

通信内聚如果一个模块内各组成部分的处理动作都使用相同的输入数据或相同的输出数据,称为通讯聚合。

案例:通信内聚获得配件单价和库存量配件编号库存量单价两个工作:1.按配件编号查询“数据存储”,获得单价。2.按配件编号查询“数据存储”,获得库存量。这两个处理动作都使用相同的输入数据

文档评论(0)

135****2083 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档