- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
软件工程Software Engineering;第4章 概要设计; 如果没有设计,只能建立一个不
稳定的系统结构;图4.1 把分析模型转变成软件设计模型;4.1 概要设计步骤;概要设计的基本步骤:
软件结构设计
数据文件设计
系统接口设计
测试方案设计
复审;4.1.1 软件结构设计;程序结构;程序的系统结构图;4.1.2 数据结构及数据库设计;4.1.3 系统接口设计;4.2 软件结构设计的基本原理;图4.2 模块化和软件成本;模块划分;模块有以下基本属性:
名称:模块的名称必须表达该模块的功能,指 明每次调用它时应完成的功能。模块的 名称由一个动词和一个名词组成。
接口:模块的输入和输出
功能:模块实现的功能
逻辑:模块内部如何实现功能及所需要的数据
状态:模块的调用与被调用关系;信息隐藏
应用模块化原理时,自然会产生的一个问题是:“为了得到最好的一组??块,应该怎样分解软件”。信息隐藏原理指出:应该这样设计和确定模块,使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。; 模块化就是把系统划分成独立命名且可独立访问的模块,每个模块完成一个子功能,把这些模块集成起来构成一个整体,可以完成指定的功能,满足用户的需求。
其目的是降低复杂性。;采用模块化策略的优点:
(1)减少复杂性
(2)提高软件的可靠性
(3)提高可维护性
(4)有助于软件开发工程的组织管理;模块分割的方法:
(1)抽象与详细化
抽象就是抽出事物的本质特性而暂时不考虑它们的细节。抽象(abstract)的结果是抽象(abstraction) 。
求精实际上是细化过程。求精要求设计者细化原始陈述,随着每个后续求精(细化)步骤的完成而提供越来越多的细节。
(2)根据功能来划分模块
横向分割:根据系统所包含的功能来分割
纵向分割:根据系统对信息进行处理的过程中 不同的变换功能来分割;Meyer标准
1 模块可分解性
2 模块可组装性
3 模块可理解性
4 模块连续性
5 模块保护性
我们可以用这五条标准来评价一种设计方法定义
有效的模块系统的能力。; 1 模块可分解性
2 模块可组装性
3 模块可理解性
4 模块连续性
5 模块保护性
1 模块可分解性
如果一种设计方法提供了把问题分解为子问题的系统化机制,它就能降低整个问题的复杂性,从而可以实现一种有效的模块化解决方案。 ; 1 模块可分解性
2 模块可组装性
3 模块可理解性
4 模块连续性
5 模块保护性
2 模块可组装性
如果一种设计方法能把现有的(可重用的)设计构件组装成新系统,它就能提供一种并非一切都从头开始做的模块化解决方案。; 1 模块可分解性
2 模块可组装性
3 模块可理解性
4 模块连续性
5 模块保护性
3 模块可理解性
如果可以把一个模块作为一种独立单元(无需参考其他模块)来理解,那么,这样的模块是易于构造和易于修改的。; 1 模块可分解性
2 模块可组装性
3 模块可理解性
4 模块连续性
5 模块保护性
4 模块连续性
如果对系统需求的微小修改只导致对个别模块,而不是对整个系统的修改,则修改所引起的副作用将最小。;5 模块保护性
如果在一个模块内出现异常情况时,它的影响局限在该模块内部,则由错误引起的副作用将最小。
采用模块化原理可以使软件结构清晰,不仅容易设计也容易阅读和理解。因为程序错误通常局限在有关的模块及它们之间的接口中,所以模块化使软件容易测试和调试,因而有助于提高软件的可靠性。因为变动往往只涉及少数几个模块,所以模块化能够提高软件的可修改性。模块化也有助于软件开发工程的组织管理,一个复杂的大型程序可以由许多程序员分工编写不同的模块,并且可以进一步分配技术熟练的程序员编写困难的模块。;4.2.3 模块的耦合和内聚;耦合
耦合是对一个软件结构内不同模块之间互连程度的度量。耦合强弱取决于模块间接口的复杂程度,进入或访问一个模块的点,以及通过接口的数据。
在软件设计中应该追求尽可能松散耦合的系统。在这样的系统中可以研究、测试或维护任何一个模块,而不需要对系统的其他模块有很多了解。此外,由于模块间联系简单,发生在一处的错误传播到整个系统的可能性就很小。因此,模块间的耦合程度强烈影响系统的可理解性、可测试性、可靠性和可维护性。;耦合的种类:
数据耦合
两个模块间交换的信息
您可能关注的文档
最近下载
- 水泥厂余热锅炉调试报告.pdf VIP
- 2024-2025年中国铁氧体软磁材料行业市场调查研究及投资前景预测报告.docx
- 2025秋统编版(2024)小学道德与法治三年级上册(全册)课时练习及答案(附目录).docx
- 我眼中的中国平安.docx VIP
- 公路工程沥青新旧试验规程差异对比解读-JTG 3410-2025.pdf VIP
- 《气体传感器简介》课件.pptx VIP
- 自治区矿产资源开发利用与生态保护修复方案编制提纲(试行).doc VIP
- 粘贴钢板加固施工方案.docx VIP
- 碳排放权交易有关会计处理暂行规定(2025).docx VIP
- Fisher阀门结构与维护.ppt VIP
文档评论(0)