河南理工大学软件工程总体设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

2016/11/21

1第5章总体设计

本章内容

⏹设计过程⏹设计原理⏹启发规则⏹描绘软件结构的图形工具⏹面向数据流的设计方法

2

本章重点、难点

⏹学习重点⏹1、设计原理⏹2、面向数据流的设计方法⏹难点⏹变换分析⏹事务分析

3

系统分析与设计的关系

软件设计的任务:以软件需求规格说明书为依据,着手实现软件的需求,并将设计的结果反映在“设计规格说明书”文档中。⏹

软件设计的重要性:是软件开发阶段的第一步,最终影响软件实现的成败和软件维护的难易程度。

“做什么”“怎么做”通过系统分析解决通过系统设计解决系统设计的基本任务是设计实现目标系统的具体方案4

软件设计两个阶段的任务

⏹第一阶段:概要设计(总体设计)⏹方案设计

设想各种可能方案,分析选出最佳方案并制定相应的实现计划

⏹软件体系结构设计

确定软件系统中每个程序是由哪些模块组成的,以及它们之间的关系⏹第二阶段:详细设计(过程设计)⏹过程设计

设计软件体系结构中所包含的每个模块的实现算法

⏹数据设计

设计软件中所需要的数据结构

⏹接口设计

设计软件内部各模块之间、软件与协作系统之间以及软件与使用它的人之间的通信方式(两项任务)

(三项任务)

5

软件设计以需求分析中得到的分析模型为基础而进行。

软件设计的两个阶段

⏹第一阶段:概要设计(总体设计)

根据软件需求,设计软件系统结构和数据结构,确定程序的组成模块及模块之间的相互关系。

回答“概括地说,系统应该如何实现?”。⏹其重要性是:站在全局高度,从较抽象的层次上分析对比多种可能的系统实现方案和软件结构,从中选出最佳方案和最合理的软件结构,从而用较低成本开发出较高质量的软件系统。

⏹第二阶段:详细设计(过程设计)

确定模块内部的算法和数据结构;选定某种过程的表达形式来描述各种算法;产生精确描述各模块程序过程的详细文档,并进行评审。7

本章内容

⏹设计过程⏹设计原理⏹启发规则⏹描绘软件结构的图形工具⏹面向数据流的设计方法

8

9

总体设计的过程

本章内容

⏹设计过程⏹设计原理⏹启发规则⏹描绘软件结构的图形工具⏹面向数据流的设计方法10

设计原理

⏹模块化⏹抽象⏹逐步求精⏹信息隐蔽和局部化⏹模块独立

11

模块化(Modularity )

⏹模块模块是由边界元素限定的相邻程序元素(如可执行语句、数据说明)的序列,并且有一个标识符代表它。⏹模块化采取自顶向下的方式,逐层把软件系统划分成若干可单独命名且可独立访问(编址)的部分—“模块”,每个模块完成一个特定的子功能;所有模块按某种方法组成一个整体,完成整个系统所要求的功能,满足用户的需求。⏹软件系统就是通过这些模块的组合来实现。

12

模块化的优点

模块化是软件解决复杂问题所具备的手段,可降低软件复杂性,减少开发工作量,从而降低开发成本,提高软件生产率,是模块化的依据。

13

14模块化与软件成本的关系接口

模块的基本属性

⏹接口:指模块的输入与输出。⏹功能:指模块实现什么功能。⏹模块化好处:⏹模块化使软件结构清晰,容易设计、容易阅读和理解⏹模块化使软件容易测试和调试,有助于提高软件的可靠性⏹模块化能提高软件的可修改性⏹模块化有助于软件开发工程的组织管理

15

抽象(Abstraction )

抽象认识复杂事物和现象时,抽出事物本质的共同特性而暂

不考虑它们的细节。⏹

软件开发中的抽象⏹过程的抽象⏹数据的抽象16

抽象

什么是抽象思想?⏹在认识事物、分析和解决问题的过程中,忽略那些与当前研究目标不相关的部分, 以便将注意力集中于与当前目标相关的方面⏹

软件开发实际上就是一个从高层次抽象到低层次抽象逐步过渡的过程。⏹

一个复杂的系统先用一些高级的抽象概念构造和理解,这些高级概念又用较低级的概念构造和理解,如此进行下去,直到具体元素。

17

外表

外表

形体

性格

衣着性格形体衣着

逐步求精

⏹逐步求精:为了能集中精力解决主要问题而尽量推迟对问题细节的考虑。⏹可把逐步求精看作是一项把一个时期内必须解决的种种问题按优先级排序的技术。⏹逐步求精是一种自顶向下的设计策略,按这种设计策略,程序的体系结构是通过逐步精化处理过程的层次而设计出来的。

19

外表

外表

形体

衣着性格

形体衣着

性格

逐步求精头发

脸形领带

头发脸形

领带

自顶向下,逐步求精的基本思想

⏹将功能、信息的说明分为多个层次,最高层也最抽象―仅仅只是概念性地描述功能或信息,不提供功能的内部工作情况或信息的内部结构;⏹设计者从最高层开始,仔细推敲,进行功能和信息的细化,给出下层实现的细节;⏹随着每个后续细化逐步的完成,提供越来越多的细节,最终得出用程序设计语言表达的程序。抽象和求精是一对互补的概念⏹抽象通过忽略多余的细节同时强调有关的细节,实现逐步求精⏹求精逐步揭示出低层细节

21

22

结合了模块化和逐步细化思想建立的软件结构图

信息隐蔽和局部化

⏹信息隐蔽:在设计和确定模块时,使得一个模块内包含的信息(过程或数据),不允许其它不需要这些信息的模块访问,独立的模块间仅仅交换为完成系统功能而必须交换的信息。⏹

局部化:将一些关系密切的软件元素物理地放得彼此靠近。23

相关文档
最新文档