- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第五章 结构化软件设计 5.1 软件设计的过程 5.2 软件设计原则和影响设计的因素 5.3 软件设计的概念 5.4 软件结构图 5.5 结构化设计方法 5.6 图书管理信息系统软件结构设计 5.7 优化软件设计 5.8 设计复查 5.9 数据设计 5.10 接口设计 5.11 详细设计 5.12 设计规格说明书 第五章 结构化软件设计 通过软件设计将用户的需求变为实现软件的“蓝图”。 软件设计的最终目标是要取得最佳方案。 5.1 软件设计过程 软件设计是以总体框架设计为起始点,根据用户的需求先确定软件系统的总体结构和总的设计原则。 用户从总体设计中只能知道系统做什么,而不能获得有关系统如何工作的细节。 详细设计是解决系统具体怎样做的问题。详细设计主要描述软件功能的具体实现方法、人机界面、输入和输出,以及软件元素在网络上的布局等。 典型总体设计过程 设想供选择的方案 推荐最佳方案 功能分解,确定软件结构 设计软件结构 数据设计 制定测试计划 书写文档 设计审查和复审 评审详细设计 详细设计过程 详细设计每个软件模块的实现算法和内部数据结构 详细设计每个用户界面,包括操作命令 详细设计输入输出数据的内容和格式 详细设计程序的错误处理方法,并且列出一个错误处理清单表 5.2 软件设计原则和影响设计的因素 软件设计是一项创造性工作,以往的设计经验和良好的设计灵感、以及对质量的深刻理解都会对设计产生影响。 软件设计过程是一系列迭代的步骤,设计者自顶向下、由粗至细逐步构造系统。 设计人员的理解力和喜好、文化背景、信仰、价值观等其他方面的问题影响软件设计。如果没有一致的规范约束,有可能导致设计的系统无法满足要求。 软件设计原则 多样化设计 设计可回溯到需求 充分利用已有的模块 设计应该表现出一致性和规范性 设计的易修改性 容错性设计 设计的粒度要适当 在设计时就要开始评估软件的质量 设计评审 5.3 软件设计的概念 模块 模块化 独立性 抽象 信息隐藏 5.3.1 模块 一般把用一个名字就可调用的一段程序称为“模块”。模块具有三个基本属性: 功能:即指该模块要完成的任务。 逻辑:即描述模块为了完成任务,模块内部怎么做。 状态:即使用该模块时的环境和条件。 5.3.2 模块化 模块化就是把整个系统划分成若干个模块,每个模块完成一个子功能,将多个模块组织起来实现整个系统的功能。 模块化设计方法强调的是清楚地定义每个模块的功能和它的输入/输出参数,而模块的实现细节隐藏在各自的模块之中,与其它模块之间的关系可以是调用关系,因此,模块化程序易于调试和修改。 随着模块规模的减小,模块的开发成本减少,但是模块之间的接口变得复杂起来,使得模块的集成成本增加。 5.3.3 模块独立性 耦合 :指模块间相互关联的程度 调用方式 传递信息 接口复杂性 内聚 :衡量一个模块内部各个元素彼此结合的紧密程度 耦合(续) 模块内聚 内聚(续) 5.3.4 抽象 定义:抽象就是将事物的相似方面集中和概括起来,暂时忽略它们之间的差异。 5.3.5 信息隐藏 信息隐藏的技术最早是由Parnas提出的。 核心内容: 一个模块中所包含的信息,不允许其他不需要这些信息的模块访问。 有效的模块化可以通过定义一组相互独立的模块来实现,这些独立的模块彼此间仅仅交换那些为完成相应功能而必须交换的信息。 局部化 局部化是指把一些关系密切的软件元素物理地彼此靠近放置在一个局部的环境中。局部化概念有助于实现信息隐藏。 5.3.6 设计复用 在设计一个新系统时会发现有一些功能与以前建立的系统中的功能很相似。有许多项目小组在设计和开发软件时,将一些公共的、常用的功能设计成独立的模块,当进行下一个类似的系统开发时,就可以复用这些设计结构。 5.4 软件结构图 模块:模块的名字应当能够表明该模块的功能。对于现成的模块以双纵边矩形框表示。 模块的调用关系和接口:两个模块之间用单向箭头联结。箭头从调用模块指向被调用模块,其中隐含了一层意思,即当被调用模块执行结束后,控制又返回到调用模块。 模块间的信息传递:当一个模块调用另一个模块时,调用模块把数据或控制信息传送给被调用模块,以使被调用模块能够运行。 两个辅助符号:反映模块之间的关系还有一些符号,用◆符号表示一个模块有条件地调用另一个模块;用∪表示模块循环调用它的各下属模块。 软件层次图 5.5 结构化设计方法 在系统结构图中的模块 传入模块:从下属模块取得数据,经过某些处理,再将其传送给上级模块。 传出模块:从上级模块获得数据,进行某些处理,再将其传送给下属模块。 变换模块:它从上级模块取得数据,进行特定的处理,转换成其它形式,再传送回上级模块。 协调模块:对所有下属模块进行协调和管理的模块。 变换型系统结
文档评论(0)