- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第6章 信息系统的总体设计 教学内容 系统设计的基本原理包括模块化设计原理、抽象原理、信息隐蔽和局部化原理、逐步求精原理、模块独立性原理;系统设计的优化规则;总体设计的目的、任务、文档、评审以及图形工具;面向数据流的总体设计方法—结构化设计方法的过程。 教学要求 1.熟练掌握:模块独立性原理的衡量标准:内聚和耦合;系统设计的优化规则;结构化设计方法中的变换分析过程。 2.一般掌握:模块化设计原理、逐步求精原理;总体设计的目的、任务以及图形工具;结构化设计方法中的事务分析及混合结构分析过程。 3.了解:抽象原理、信息隐蔽和局部化原理;总体设计的文档和评审。 6.1 系统设计的基本原理和优化规则 6.1.1 系统设计的基本原理 系统设计过程中应该遵循一些基本原理,包括:模块化设计原理、抽象原理、信息隐蔽和局部化原理、逐步求精原理、模块独立性原理等。 1.模块化设计原理 所谓模块是指具有相对独立性的,由数据说明、执行语句等程序对象构成的集合。输入输出、功能、内部数据和程序代码是模块的4个基本特征。 模块化是指将整个程序划分为若干个模块,每个模块用于实现一个特定的功能。划分模块对于解决大型复杂的问题是非常必要的,可以大大降低解决问题的难度。 问题复杂性、开发工作量和模块数之间的关系: 设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) 结论:模块化可以降低解决问题的复杂度,从而降低系统开发的工作量。 但是不是模块划分得越多越好呢?下图表达了模块数与系统开发成本之间的关系,可以看出当划分的模块数处于最小成本区时,开发系统的总成本最低。虽然目前还不能精确地算出M的数值,但是在考虑程序模块化的时候,总成本曲线确实是有用的指南。 模块化设计原理的好处: 模块化使系统结构清晰,容易设计也容易阅读和理解。 程序错误通常局限在有关的模块及它们之间的接口中,所以模块化能使系统容易测试和调试,从而有助于提高系统的可靠性。 系统的变动往往只涉及少数几个模块,所以模块化还能够提高系统的可修改性。 模块化使得一个复杂的大型程序可以由许多程序员分工编写,并且可以进一步分配技术熟练的程序员编写困难的模块,有助于系统开发工程的组织管理。 模块化还有利于提高程序代码的可重用性。 2.抽象原理 抽象是人类在解决复杂问题时经常采用的一种思维方式,它是指将现实世界中具有共性的一类事物的相似的、本质的方面集中概括起来,而暂时忽略它们之间的细节差异。在系统开发中运用抽象的概念,可以将复杂问题的求解过程分层,在不同的抽象层上实现难度的分解。 结构化程序设计中自顶向下、逐步求精的模块划分思想正是人类思维中运用抽象方法解决复杂问题的体现。采用自顶向下、由抽象到具体的思维方式,不但降低了系统开发中每个阶段的工作难度,简化了系统的设计和实现过程,还有助于提高系统的可读性、可测试性和可维护性。此外,在程序设计中运用抽象的方法还能够提高代码的可重用性。 3.信息隐蔽和局部化原理 应该这样设计和确定模块:使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。这一原理是由D.L.Parnas在1972年提出的,也就是说有效的模块化可以通过一组独立的模块来实现,这些独立的模块彼此间仅仅交换那些为了完成系统功能而必须交换的信息。这一指导思想的目的是为了提高模块的独立性,即当修改或维护模块时减少把一个模块的错误扩散到其他模块中去的机会。因此,信息隐蔽简化了系统结构的复杂度,提供了程序模块设计标准化的可能性。 局部化的概念和信息隐蔽概念密切相关。局部化是指把一些关系密切的系统元素物理地放的比较近,严格控制数据对象可以访问的范围。在模块中使用局部数据元素就是局部化的一个例子。显然,局部化有助于实现信息隐蔽。 4.逐步求精原理 逐步求精是 “为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。” 人类的认知过程遵守Miller法则:一个人在任何时候都只能把注意力集中在(7±2)个知识块上。但是,在开发系统的过程中,软件工程师在一段时间内需要考虑的知识块数远远多于7。例如,一个程序通常不止使用7个数据,一个用户也往往有不止7个方面的需求。逐步求精方法的强大作用就在于,它能帮助软件工程师把精力集中在与当前开发阶段最相关的那些方面上,而忽略那些对整体解决方案来说虽然是必要的,然而目前还不需要考虑
文档评论(0)