1 / 133
文档名称:

软件工程第四章 软件设计.ppt

格式:ppt   大小:4,203KB   页数:133页
下载后只包含 1 个 PPT 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

软件工程第四章 软件设计.ppt

上传人:文库新人 2021/9/25 文件大小:4.10 MB

下载得到文件列表

软件工程第四章 软件设计.ppt

文档介绍

文档介绍:软件工程第四章 软件设计
软件设计阶段的任务与目标
软件设计是对实现软件的结构、系统的数据、系统组件之间的接口以及所用算法的描述。
  软件设计是软件开发的关键步骤,直接影响软件的质量。
  在软件需求分析阶段已经完全弄清楚了软件的各种需求,较好地解决了所开发的软件“做什么”的问题,并已在软件需求说明书中详尽和充分地阐明了这些需求以后,下一步就要着手实现软件的需求,即软件设计阶段要解决“怎么做”的问题。
软件设计阶段的任务与目标
设计过程的一般模型
需求描述
体系结构设计
抽象描述
接口设计
组件设计
数据结构
设计
系统体系结构
软件描述
接口描述
组件描述
数据结构
描述
算法描述
算法设计
设计活动
设计产品
软件设计在开发阶段中的重要性
软件
设计
功能与性能需求
编码
软件
测试
程序模块
已测试
软件
系统结构
设计
过程设计
数据结构设计
信息域
需求
开发阶段信息流
软件设计阶段要解决“如何做”的问题。
  系统结构设计确定程序有哪些模块组成,以及这些模块之间的关系。
数据结构设计主要是进行数据结构的定义。
数据库设计要进行数据库的概念设计、逻辑设计和物理设计。
   过程设计确定每个模块的处理过程。
数据库设计
软件设计阶段的任务
一、软件设计的任务
总体设计(概要设计)和详细设计。
概要设计的主要任务:

(1)采用某种设计方法,将一个复杂的系统按功能划分成模块(2)确定每个模块的功能(3)确定模块之间的调用关系(4)确定模块之间的接口,即模块之间传递的信息(5)评价模块结构的质量
 2. 数据结构及数据库设计 (1)数据结构的设计:设计抽象的数据结构(2)数据库的概念设计、逻辑设计和物理设计
    文档主要有:     (1)概要设计说明书。     (2)数据库设计说明书,主要给出所使用的DBMS简介、数据库的概念模型、逻辑设计、结果。     (3)用户手册,对需求分析阶段编写的用户手册进行补充。     (4)修订测试计划,对测试策略、方法、步骤提出明确要求。
详细设计:
确定模块内算法;
数据结构详细设计(JACKSON方法);
接口内部的细节。
软件
设计
高可靠性
高可维护性
高可理解性
高效率
软件设计的目标
二、软件设计的目标
在设计阶段应达到的目标是:
提高可靠性;提高可维护性;提高可理解性;提高效率。
衡量该目标的准则:
1、软件实体有明显的层次结构,利于软件元素间控制。
2、软件实体应该是模块化的,模块具有独立功能。
3、软件实体与环境的界面清晰。
4、设计规格说明清晰、简洁、完整和无二义性。
常用的设计方法有:SD法、Jackson法、HIPO法、Parnas法、Warnier法等。
软件结构与软件结构图
软件结构是软件模块之间关系的表示,它决定了整个系统的结构,也确定了系统的质量。模块之间的关系可有多种,但都可以归结为一种层次关系。
软件结构图是总体设计阶段的主要描述工具,它描述了构成系统的基本元素——模块及模块之间的调用关系,模块之间的数据传递关系。
本节讨论如何进行软件结构的设计,设计的准则以及为了提高软件系统的质量,如何对软件结构进行改进的技术。
软件结构的基本概念
二、模块化
 模块化就是将系统划分为若干个模块,每个模块完成一个子功能。模块化的目的是将系统“分而治之”,模块化能够降低问题的复杂性,使软件结构清晰,易阅读、易理解,易于测试和调试,因而也有助于提高软件的可靠性。
软件结构表示软件系统的构成,是软件模块间关系的表示,下图则为软件结构示意图。下面先介绍几个相关的的概念。
A
B
C
D
E
F
G
H
I
J
K
L
M
一、模块(Module)
  模块是程序对象有名字的集合。例如,过程、函数、子程序、宏等,是构成软件系统结构的基本元素。
软件结构图
模块化降低软件复杂度的简单证明
令:C(X)表示问题 X 的复杂度函数;
E(X)解决问题 X 所需工作量的复杂度函数;
若:有问题 P1,P2 ;
C(P1)> C(P2);
显然:E(P1)> E(P2)
由经验:C(P1+P2)> C(P1)+ C(P2)
于是:E(P1+P2)> E(P1)+ E(P2)
将问题(P1+P2)划分为两个问题P1和P2后,其工作量和复杂度都降低。
并非模块分得越小越