第3章软件设计原理.pptVIP

  • 25
  • 0
  • 约7.2千字
  • 约 55页
  • 2016-11-24 发布于广东
  • 举报
第3章软件设计原理.ppt

软件设计的任务 软件设计的步骤 软件设计的模块化思想 软件设计的原则 基本原理 同一问题的不同的计算机解决方案往往来源于不同的设计方法和不同的设计习惯,一般来说,不能简单的判定哪一种设计方法和设计习惯的优劣,需要根据软件设计的目标,再结合有关理论和原则进行综合的评价。 实际工作的误区 3.1 软件设计的任务 软件设计的任务就是将需求阶段逻辑系统描述转化为计算机可以实现的软件系统描述。也就是将逻辑系统中所描述的抽象的数据及其关系,转化为计算机能够表示和实现的数据结构文档描述,将逻辑系统中所描述的数据的加工个处理,转化为计算机能够实现的算法的文档描述,最终形成采用适当的方式表示的系统(软件)设计说明书。 数据设计 系统结构设计 接口设计 过程设计 设计阶段的任务 软件设计是后续开发步骤及软件维护工作的基础。如果没有设计,只能建立一个不稳定的系统结构 在软件设计阶段,通常有两种设计思路。 早期软件开发人员根据以往的设计经验,先找一个类似的软件系统作为参考,然后从中选出系统的关键部分,进行仿照设计,再让系统的其余部分的设计去适应它们。这种从一个局部开始,逐渐扩展到整个系统的设计方法,通常称为“自底向上”设计(bottom-up design)。 由底向上设计是早期软件规模较小时的设计思想。随着软件规模的增长这种方法的缺点就暴露出来。现在在设计大型软件时,普遍采用了“自顶向下,逐步求精(top-down design)”的设计方法。采用这种方法时,软件开发人员首先对所设计的系统要有一个全面的理解,然后从顶层开始逐层向下分解,直至系统的所有模块都小到易于掌握为止。 两种设计思路的比较 软件设计步骤 概要设计 详细设计 在详细设计阶段进一步确定每一个模块内所采用的数据结构和处理算法,同时还要设计完成测试实例,形成详细设计说明书。详细设计说明书主要由每一模块的详细数据结构设计、详细流程设计和每一模块的测试实例组成。 详细设计(或编码)阶段,采用自顶向下逐步求精的方法,则可以把一个模块的功能逐步分解细化为一系列具体的处理步骤(或某种高级语言的语句)。 详细设计 详细设计就是要在总体设计阶段成果的基础上,考虑如何实现定义的软件系统,直到对系统中的每个模块给出足够详细的过程描述,从而在编码阶段可以把这个描述直接翻译成用某种程序设计语言书写的程序。因此,详细设计的结果基本上决定了最终的程序代码质量。 详细设计 考虑程序代码的质量,程序的“读者”有两个:计算机和人。在软件的生命周期中,设计测试方案、诊断程序错误、修改和改进程序等等都必须首先读懂程序。实际上对于长期使用软件系统而言,人读程序的时间可能比写程序的时间还要长得多。因此,衡量程序的质量不仅要看它的逻辑是否正确,性能是否满足要求,更主要的是要看它是否容易阅读和理解。详细设计的目标不仅仅是逻辑上正确地实现每个模块的功能,更重要的是设计出的处理过程应该尽可能简明易懂。结构化程序设计技术是实现上述目标的关键技术,因此是详细设计的逻辑基础。 设计复审(design review) 设计复审(design review) 设计复审主要考虑的问题 软件结构能否满足需求? 结构的形态是否合理? 层次是否清晰? 模块的划分是否遵循模块化和信息隐蔽的思想? 系统的人机界面、各模块的接口及出错处理是否恰当? 模块的设计能否满足功能与性能要求? 选择的算法与数据结构是够合理,能否适应编程语言,等等。 设计复审(design review) 复审的方式 正式复审 正式复审除软件开发人员外,还邀请用户代表和领域专家参加,通常采用答辩的形式与会者有备而来(即提前审阅了文档),设计人员在对设计方案详细说明后,答复与会者的问题并记下各种重要的评审意见。 非正式复审 非正式复审多少有些同行切磋的性质,不拘时间,不拘形式。可由一名设计人员带领到会的同事逐行审阅文档,记录发现的问题。需要注意的是,一定要对复审中提出的问题详细记录,不要奢望所有问题都能当场解决。复审结束前。还应对本次复审作出结论。 3.3 软件设计的模块化思想 模块化 分解 信息隐蔽和局部化 模块独立性(module independence) 软件设计的基本概念 模块(module)与构件(component) 模块:定义输入、输出和特性的程序实体 构件:可重复使用的软件组件 抽象(abstract)与细化(refinement) 抽象:分层次考虑和处理问题(数据和过程) 细化:从高到低的逐步分解过程 信息隐藏 对其它模块隐藏模块内部的数据和过程 软件复用 Design with reuse, design for reuse 3.3.1 模块化 在计算机软件领域,模块化的概念已经被推崇了四十年。目前,几乎所有的软件体系结构都体现了模块化的思想

文档评论(0)

1亿VIP精品文档

相关文档