- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第3章 概要设计 内容介绍 3.1 软件设计概述 3.2 软件设计基本原则 3.3 概要设计的任务和步骤 3.4 软件结构图 3.5 结构化设计方法 3.6 数据设计 3.7 接口设计 3.8 概要设计说明书 3.9 案例分析 3.10 小结 3.1 软件设计概述 3.1.1 软件设计概念与重要性 3.1.2 软件设计的任务与策略 3.1.1 软件设计概念与重要性 软件设计就是根据软件需求分析阶段产生的数据和功能需求,采用某种设计方法进行概要设计(体系结构设计、数据设计/数据库设计)、详细设计(模块设计、过程设计、用户界面设计),生成所要构造的实体过程,是软件工程的技术核心。 3.1.1 软件设计概念与重要性 软件设计是把需求转化为软件系统的最重要的环节,其优劣在根本上决定了软件系统的质量,重要性表现为以下两方面。 (1)软件设计是开发阶段最重要的步骤,是软件质量得以保证的关键步骤。 (2)软件设计是将用户要求准确地转化为最终的软件产品的惟一途径。 3.1.2 软件设计的任务与策略 1.软件设计是一个把需求分析变换成软件表示的过程。 (1)概要设计 。 (2)详细设计。 2.在进行软件开发系统分析时需要遵循的策略。 (1)概要设计 概要设计:将软件需求转化为数据结构和软件的系统结构。概要设计只是描绘出软件的总体框架,根据功能、性能需求和数据需求导出软件的数据结构和系统结构。 概括地说,概要设计进行数据设计/数据库设计和系统体系结构设计。 (2)详细设计 详细设计:对结构进行细化,得到软件的详细的数据结构和算法。对概要设计过程中给出的各种结构成分进行详细的加工,得到在程序细节上非常接近于源程序的软件表示。 概括地说,详细设计就是进行过程设计。 进行系统分析时需要遵循的策略 “简单-复杂-简单”。 软件复用技术。 模块化概念。 3.2 软件设计基本原则 1.抽象与分解 2.模块化和信息隐藏 3.模块独立性 1.抽象与分解 抽象是一种思考和解决问题的形式,它集中注意事物某个一般性级别上的问题,避开不必要的低层细节。抽象可以分成若干级别,级别越高,细节就越少。 抽象过程是指具有特定功能的一个命令的指令序列。 抽象数据则是描述数据对象的一个命名的数据集合。 分解的主要思想是将某个宏观功能不断分解,逐步确立过程细节,直至用程序设计语言描述的算法实现为止。 2.模块化和信息隐藏 合理的软件结构应该是分块的结构,即软件应该分解成可单独命名的且可访问的部件,这些部件称为模块。 这种将软件分成具有一定结构的模块的过程称为模块化。 信息隐藏是指模块中所包含的信息(包括数据和过程)对不需要这些信息的其他模块是不可访问的。这样,每一个将来可能的改变都会局部于一个特定的模块,改变该模块的内部过程或数据的设计不会影响到其他模块。 3.模块独立性 模块独立性是模块化、抽象和信息隐藏的直接产物,其基本含义是每一个模块只完成功能需求中的一个特定的子功能,而且从程序结构的其他部分来访问这一模块只具有一个简单的接口。 衡量模块独立性的两个定性度量标准是耦合和内聚。 (1)耦合 软件结构中模块之间互相依赖的程度用耦合来度量。 耦合强弱取决于模块间接口的复杂程度,一般由模块之间的调用方式、传递信息的类型和数量来决定。 在设计软件结构时应追求尽可能松散的耦合。 (1)耦合 耦合有以下5类: 数据耦合 控制耦合 特征耦合 公共环境耦合 内容耦合 (1)耦合 为了降低模块间的耦合程度,应采用以下设计原则: 在传递信息时尽量使用数据耦合,少用控制耦合和特征耦合。在耦合方式上,通过语句调用,用参数传递信息,不采用直接引用方式(内容耦合),尽量控制公共环境耦合。 模块之间相互调用时,传递的参数最好只有一个,最多不超过四个。 在设计模块时尽量做到把模块之间的连接限制到最少,模块环境的任何变化,都不应引起模块内部发生改变。 (2)内聚 一个模块内各个元素彼此结合的紧密程度用内聚来度量。 理想的模块只完成一个功能,模块设计的目标之一是尽可能高的内聚。 (2)内聚 内聚有以下7类: 偶然内聚 逻辑内聚 时间内聚 过程内聚 通信内聚 顺序内聚 功能内聚 (2)内聚 上述几种内聚按紧密程度从高到低排列次序分别为功能内聚、顺序内聚、通信内聚、过程内聚、时间内聚、逻辑内聚、偶然内聚。 其中,功能内聚最理想,一个模块完成一个功能,独立性强,内部结构紧密。 3.3 概要设计的任务和步骤 1.确定设计方案 设计供选择的方案 推荐最佳实现方案 2.软件结构设计 功能分解 设计软件结构 3.数据文件设计 4.制定测试计划 5.书写概要设计文档 3.4 软件结构图 软件结构图是描述软件系统层次结构的模型,它表达了应该用什么样的结构来实现用户的需求。 3.5 结构化设计方法 结构化设计方
文档评论(0)