软件工程 课件 第3章 结构化设计.pptx

  1. 1、本文档共80页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Software第3章 结构化设计本章首先介绍结构化总体设计阶段的体系结构设计、接口设计和数据设计,然后介绍结构化详细设计,同时给出与每一步骤相对应的“高校图书借阅系统”的设计实例。最后用“航空公司机票预订系统”项目案例完整地实现结构化设计的全过程。engineeringSoftware3.1 结构化设计概述结构化设计方法以数据流为中心、以结构化需求分析的结果作为设计依据,设计出满足用户需求的软件模型。总体设计阶段的软件设计模型包括软件体系结构、软件接口和数据模型,详细设计阶段的软件设计模型就是为软件设计过程模型。3.1.1结构化设计的任务软件设计的主要任务是要解决如何做的问题,要在需求分析的基础上,建立各种设计模型,并通过对设计模型的分析和评估,来确定这些模型是否能够满足需求;是将用户需求准确地转化成为最终的软件产品的唯一途径,在需求到构造之间起到了桥梁作用。engineeringSoftware3.1.1 结构化设计的任务(1)体系结构设计:体系结构设计也称为模块设计,定义软件模块及其之间的关系。其设计依据为结构化需求分析阶段的数据流图。(2)接口设计:接口设计包括外部接口和内部接口设计。外部接口描述用户界面,软件和硬件设备以及其他软件系统的接口,其设计依据为结构化需求分析阶段的顶层数据流图;内部接口为软件各模块之间的接口,其设计依据为结构化需求分析阶段的数据流图。(3)数据模型设计:主要是根据结构化需求分析阶段所建立的E-R图和数据字典来确定软件涉及的文件系统的结构及数据库的表结构。 (4)过程设计:过程设计的主要工作是确定软件各个模块内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法,其设计依据为结构化需求分析阶段的数据流图、状态转换图及数据字典。engineeringSoftware3.1.2 结构化设计的原则(1)模块化模块化就是大型复杂的问题分解为许多容易解决的小问题。(2)高内聚、低耦合耦合是各模块之间相互关联的度量,低耦合就是联系尽量简单,在详细设计、编码、测试和维护某模块时,不需要对其它模块有很多了解。内聚是一个模块内部各个元素彼此结合的紧密程度的度量。模块内聚性应该尽可能的高,否则软件设计以后的各个阶段的工作效率会大大降低,甚至可能出现错误。(3)抽象按抽象级别从高到低进行软件设计,有利于软件的可理解性和开发过程的管理。(4)信息隐藏信息隐藏是采用封装技术将程序模块的实现过程、数据等细节隐藏起来,不需要这些信息的其它模块不能访问。(5)一致性软件设计中各个模块应使用一致的术语和符号,模块之间的接口应保持一致,等等。engineeringSoftware3.1.3 模块独立性模块独立是指每个模块只完成一个相对独立的特定子功能,并且和其他模块之间的关系很简单,和其他模块之间没有过多的相互作用。模块独立的软件易于开发,因为能够分割功能而且接口可以简化;模块独立的软件易于测试和维护,因为相对来说,修改设计和程序需要的工作量比较小,错误传播范围小,需要扩充功能时也很容易增添模块。模块独立性由两个定性标准度量:内聚和耦合,提倡模块遵循高内聚、低耦合的原则,保证模块具有较好的独立性。engineeringSoftware3.1.3 模块独立性耦合性由低到高、独立性由高到低。(1)非直接耦合:两模块没有直接关系,联系完全通过主模块的控制和调用。(2)数据耦合:一个模块访问另一个模块时,通过简单数据参数 (不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。(3)标记耦合:一组模块通过参数表传递记录信息,记录是某一数据结构的子结构,不是简单变量。(4)控制耦合:一个模块通过传送开关、标志、名字等控制参数,明显地控制选择另一模块的功能。 (5)外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构。(6)公共耦合:一组模块都访问同一个公共数据环境。(7)内容耦合:一个模块直接访问另一个模块的内部数据; 一个模块不通过正常入口转到另一模块内部; 两个模块有一部分程序代码重迭;一个模块有多个入口。engineeringSoftware3.1.3 模块独立性内聚性和独立性由高到低(1)功能内聚:一个模块中各个部分都是完成某一具体功能必不可少的组成部分。(2)信息内聚:一个模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能有一个唯一的入口点。(3)通信内聚:模块内各功能部分使用相同的输入数据,或产生相同的输出数据。(4)过程内聚:把大流程图中的某一部分划出组成模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块。(5)时间内聚:大多为多功能模块,通常要求所有功能必须在同一时间段内执行。(6)逻辑内聚:把几种相关的功能组合在一起,每次被调用时,由传送给模块的判定参数来确定该模块应执行

文档评论(0)

xiaobao + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档