- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
耦合性与内聚性是模块独立性的两个定性标准,将软件系统划分模块时,尽量做到高内聚低耦合,提高模块的独立性,为设计高质量的软件结构奠定基础。但也有内聚性与耦合性发生矛盾的时候,为了提高内聚性而可能使耦合性变差,在这种情况下,建议给予耦合性以更高的重视。第30页,共78页,星期日,2025年,2月5日3.3软件结构准则3.3.1软件结构图软件结构图是软件系统的模块层次结构,反映了整个系统的功能实现,即将来程序的控制层次体系。对于一个“问题”,可用不同的软件结构来解决,不同的设计方法和不同的划分和组织,可得出不同的软件结构。软件结构往往用树状或网状结构的图形来表示。软件工程中,一般采用70年代中期美国Yourdon等提出的称为结构图(StructureChart,简称SC)的工具来表示软件结构。结构图的主要内容有:第31页,共78页,星期日,2025年,2月5日(1)模块:用方框表示,并用名字标识该模块,名字应体现该模块的功能。(2)模块的控制关系:两个模块间用单向箭头或直线连接起来表示它们的控制关系,如图3.2所示。按照惯例,总是图中位于上方的模块调用下方的模块,所以不用箭头也不会产生二义性。调用模块和被调用模块的关系称为上属与下属的关系,或者称为“统率”与“从属”的关系。如图3.4所示,模块M统率模块A、B、C,模块D从属于模块A,也从属于M。(3)模块间的信息传递:模块间还经常用带注释的短箭头表示模块调用过程中来回传递的信息。有时箭头尾部带空心圆的表示传递的是数据,带实心圆的表示传递的是控制信息,如图3.2所示。第32页,共78页,星期日,2025年,2月5日图3.2模块间的控制关系及信息传递第33页,共78页,星期日,2025年,2月5日(4)两个附加符号:表示模块有选择调用或循环调用,如图3.3所示。(5)结构图的形态特征。结构图的形态特征包括:①深度:指结构图控制的层次,也是模块的层数,见图3.4,结构图的深度为5。②宽度:指一层中最大的模块个数,如图3.4所示,宽度为8。③扇出:一个模块直接下属模块的个数,如图3.4所示,模块M的扇出为3。第34页,共78页,星期日,2025年,2月5日3.3选择调用和循环调用的表示(a)选择调用;(b)循环调用第35页,共78页,星期日,2025年,2月5日图3.4结构图示例第36页,共78页,星期日,2025年,2月5日④扇入:指一个模块直接上属模块的个数,如图3.4所示,模块T的扇入为4。(6)画结构图应注意的事项如下:①同一名字的模块在结构图中仅出现一次。②调用关系只能从上到下。③不严格表示模块的调用次序,习惯上从左到右。有时为了减少连线的交叉,适当地调整同一层模块左右位置,以保持结构图的清晰性。第37页,共78页,星期日,2025年,2月5日3.3.2软件结构设计优化准则软件概要设计的主要任务就是软件结构的设计,为了提高设计的质量,必须根据软件设计的原理改进软件设计,并提出以下软件结构的设计优化准则。1.模块独立性准则划分模块时,尽量做到高内聚,低耦合,保持模块相对独立性,并以此原则优化初始的软件结构。(1)如果若干模块之间耦合强度过高,每个模块内功能不复杂,可将它们合并,以减少信息的传递和公共区的引用;(2)若有多个相关模块,应对它们的功能进行分析,消去重复功能。第38页,共78页,星期日,2025年,2月5日2.控制范围与作用范围之间的准则一个模块的作用范围应在其控制范围之内,且条件判定所在的模块应与受其影响的模块在层次上尽量靠近。在软件结构中,由于存在着不同事务处理的需要,某一层上的模块会存在着判断处理,这样可能影响其他层的模块处理。为了保证含有判定功能模块的软件设计的质量,引入了模块的作用范围(或称影响范围)与控制范围的概念。一个模块的作用范围指受该模块内一个判定影响的所有模块的集合。一个模块的控制范围指模块本身以及其所有下属模块(直接或间接从属于它的模块)
原创力文档


文档评论(0)