【软件工程教案】软件设计.doc

  1. 1、本文档共38页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
第三章 软件设计 一、复习要求 1. 了解软件概要设计的原则和过程。 2. 掌握模块划分的评价准则―模块独立性的判别。 3. 掌握结构化设计方法。 4. 了解Jackson系统开发方法和Jackson程序设计方法。 5. 了解数据设计和文件设计的原则。 6. 掌握常用的详细设计的表达方法。 6. 了解软件设计规格说明和设计评审的主要内容。 二、内容提要 1. 软件设计的过程 一旦软件需求确定之后,就进入开发阶段。开发阶段由三个互相关联的的步骤组成:设计、实现(编码)和测试。每个步骤都按某种方式进行信息变换,最后得到有效的计算机软件。 (1) 软件设计在开发阶段中的重要性 在软件需求分析阶段已经完全弄清楚了软件的各种需求,较好地解决了要让所开发的软件“做什么”的问题,并已在软件需求规格说明和数据要求规格说明中详尽和充分地阐明了这些需求。下一步就要着手实现软件的需求,即要着手解决“怎么做”的问题。 分析模型中的每一个成份都提供了建立设计模型所需的信息。软件设计的信息流如图4.1所示。根据用数据、功能和行为模型表示的软件需求,采用某种设计方法进行数据设计、体系结构设计、接口设计和过程设计。 图4.1 将分析模型转换为软件设计 数据设计将实体―关系图中描述的对象和关系,以及数据词典中描述的详细数据内容转化为数据结构的定义。体系结构设计定义软件系统各主要成份之间的关系。接口设计根据数据流图定义软件内部各成份之间、软件与其它协同系统之间及软件与用户之间的交互机制。过程设计则是把结构成份转换成软件的过程性描述。在编码步骤,根据这种过程性描述,生成源程序代码,然后通过测试最终得到完整有效的软件。 软件设计是开发阶段中最重要的步骤,它是软件开发过程中质量得以保证的关键步骤。设计提供了软件的表示,使得软件的质量评价成为可能。同时,软件设计又是将用户要求准确地转化成为最终的软件产品的唯一途径。另一方面,软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统,如图4.2所示。只要出现一些小小的变动,就会使得软件垮掉,而且难于测试。 (2) 软件设计的过程 软件设计是一个把软件需求变换成软件表示的过程。最初这种表示只是描绘出可直接反映功能、数据、行为需求的软件的总的框架,然后进一步细化,在此框架中填入细节,把它加工成在程序细节上非常接近于源程序的软件表示。 从工程管理的角度来看,软件设计分两步完成。首先做概要设计,将软件需求转化为数据结构和软件的系统结构,并建立接口。然后是详细设计,即过程设计。通过对结构表示进行细化,得到软件的详细的数据结构和算法。 McGlanghlin给出在将需求转换为设计时判断设计好坏的三条特征: ( 设计必须实现分析模型中描述的所有显式需求,必须满足用户希望的所有隐式需求。 ( 设计必须是可读、可理解的,使得将来易于编程、易于测试、易于维护。 ( 设计应从实现角度出发,给出与数据、功能、行为相关的软件全貌。 以上三点就是软件设计过程的目标。为达到这些目标,必须建立衡量设计的技术标准。 ① 设计出来的结构应是分层结构,从而建立软件成份之间的控制。 ② 设计应当模块化,从逻辑上将软件划分为完成特定功能或子功能的构件。 ③ 设计应当既包含数据抽象,也包含过程抽象。 ④ 设计应当建立具有具有独立功能特征的模块。 ⑤ 设计应当建立能够降低模块与外部环境之间复杂连接的接口。 ⑥ 设计应能根据软件需求分析获取的信息,建立可驱动可重复的方法。 软件设计过程根据基本的设计原则,使用系统化的方法和完全的的设计评审来建立良好的设计。 2. 软件设计的原则 (1) 抽象化 对软件进行模块设计的时候,可以有不同的抽象层次。在最高的抽象层次上,可以使用问题所处环境的语言描述问题的解法。而在较低的抽象层次上,则采用过程化的方法。 ( 过程的抽象 :在软件工程过程中,从系统定义到实现,每进展一步都可以看做是对软件解决方案的抽象化过程的一次细化。在软件计划阶段,软件被当做整个计算机系统中的一个元素来看待。在软件需求分析阶段,用“问题所处环境的为大家所熟悉的术语”来描述软件的解决方法。而在从概要设计到详细设计的过程中,抽象化的层次逐次降低。当产生源程序时到达最低的抽象层次。 ( 数据抽象 :数据抽象与过程抽象一样,允许设计人员在不同层次上描述数据对象的细节。例如,可以定义一个draw数据对象,并将它规定为一个抽象数据类型,用它的构成元素来定义它的内部细节。此时,数据抽象draw本身是由另外一些数据抽象构成。而且在定义draw的抽象数据类型之后,就可以引用它来定义其它数据对象,而不必涉及draw的内部细节。 ( 控制抽象 :与过程抽象和数据抽象一样,控制抽象可以包含一个程序控制机制而无须规定其内部细节。控制抽象的例子就是在

您可能关注的文档

文档评论(0)

精品资料 + 关注
实名认证
内容提供者

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

认证主体侯**

1亿VIP精品文档

相关文档

相关课程推荐