系列索引: 《软件工程与实践》第三版 软件工程课程知识梳理
目录
本章重难点:
● 掌握软件设计的概念、目标和过程
● 熟悉软件总体及详细设计的任务和原则
● 掌握数据库设计、网络设计和界面设计要点及方法
● 掌握软件设计工具使用及设计文档编写格式和方法
4.1 软件设计概述
4.1.1 软件设计的概念和目标
软件设计分为两个阶段:总体设计和详细设计。
总体设计主要确定总体架构、总体设计文档和方案。详细设计是具体细化,确定组成模块及联系、处理过程、数据库及网络、界面设计、软件设计文档(含具体方案)等。
4.1.2 软件设计的过程
软件设计先要进行总体设计即概要设计,从总体上进行宏观概要架构设计,将软件需求转化为软件的系统结构和数据结构。对经过“复审”可接受的总体设计方案,进入“详细设计”,进一步进行“模块描述”,最后还要经过“复审”,完成“设计文档”。
软件设计过程中的信息流:
4.2 软件总体设计
4.2.1 软件总体设计的任务
软件总体设计的任务主要包括:
4.2.2 总体设计的原则和过程
总体设计的总原则及过程是:
由宏观到微观、逐步求精的原则,定性定量分析相结合、分解与协调相结合和模型化方法,并要兼顾系统的通用性、关联性、整体性和层次性。根据系统的总体结构、功能、任务和目标的要求分解系统,使各子系统之间互相协调配合,实现系统的整体优化。
软件设计基本原则: 模块化,抽象,内聚和耦合,子系统及模块划分,信息隐蔽等
1. 软件工程模块化
模块是构成程序的基本构件,主要由数据说明、执行语句等程序对象构成。模块化(Modular)是将复杂软件划分为功能相对独立且易于处理的模块的过程。
2. 抽象和逐步求精
3.模块的内聚和耦合
内聚对内,耦合对外,最大程度的追求高内聚低耦合。
4. 子系统及模块的划分
结构图(Structure Chart,SC)是准确描述表达软件结构的图形表示方法,可反映模块之间的层次调用关系和联系。
打印报告的模块结构图。其调用次序为上层调用下层,同层按照数据传递关系确定,一般从左到右执行。执行过程即按照数据流向进行。
好的软件结构准则: 顶部宽度小,中部宽度大,底部宽度次之。
5. 信息隐藏
信息隐蔽主要是指模块所包含的“过程及数据”信息,对于其它模块需要隐蔽。模块规定和设计应遵从:使包含在模块中的“过程或数据”信息,对于其它不需要这些信息的模块,不能访问或“不可见”。
4.2.3 软件总体设计的方法
软件设计方法可以分为三大类:
一是面向数据流的设计(结构化设计方法)也称为过程驱动设计;
二是面向数据结构设计,也称为数据驱动的设计;
三是面向对象设计。
1. 结构化设计方法
结构化设计方法概述
SD法分为总体设计和详细设计两个阶段:
(1)总体设计。总体设计过程要解决系统的模块结构,确定系统模块的层次结构。SD法的总体设计步骤是:
① 从 DFD 图(数据流图或数据流程图)导出初始的模块结构图。 ② 改进初始的模块结构图。
(2)详细设计。详细设计阶段的任务是: 对模块图中每个模块的过程进行描述.常用描述方式:流程图、N-S(结构流程)图、PAD图等。
结构化设计方法的设计过程
结构化设计方法的目标是确定设计软件结构的一个系统化的途径。
SD法总体设计过程需要从DFD 图导出初始模块结构图, 首先要分析DFD 图的类型, 对不同类型的DFD图,采用不同的技术将其转换为初始的模块结构图(SC 图).
一般将 DFD 图分为两种典型类型: 中心变换型和事务处理型 。
中心变换型的数据流图基本上呈线性形状,可以比较明显地分为 输入、变换(或加工)、输出三部分,其中变换部分是系统的主要工作
此类系统的数据流图常呈辐射状,一个加工(事务中心)将它的输入分离成若干种发散的数据流,从而形成若干条活动的路径,然后根据输入值选择其中的一条路径处理,
在中型以上DFD中,常用变换流为主,事务流为辅的方法
结构化设计设计步骤
2. 面向数据结构的设计方法
Jackson 开发方法是一种典型的面向数据结构的分析与设计方法。适合于数据处理类方法。
3.原型法
利用初步设计某一相对直观易于理解的原型,经过征求意见逐步改进完善的设计方法。
适合于软件规模大、要求复杂、系统服务不清晰的情况。特别是当性能要求较高时,需要对软件设计原型先做一些试验。
原型法在整个软件开发策略或设计阶段均可使用, 目的是为了不断取得反馈并进行改进。
4.3 软件详细设计
4.3.1 详细设计的任务和原则
详细设计主要完成对软件模块的内部过程具体设计和描述,解决“具体怎么做(现实)”的问题。
主要包括:模块设计、过程设计、界面设计等
1. 详细设计的任务
2. 详细设计的原则
4.3.2 详细设计的方法和工具
1. 详细设计方法的选择
选择设计方法原则是:过程描述便于理解、复审和维护,可自然地转换成代码,并保证代码与详细设计完全一致。
三种基本控制结构: 顺序、选择和循环
详细设计使用的结构化程序设计是一种设计程序技术,采用自顶向下、 逐步求精的设计方法和单入口单出口的控制结构。
*2. 详细设计的工具(有的在需求分析中介绍)
详细设计常用工具包括以下三种: 图形、表格、语言.
图形工具是将过程细节用图形进行表示, 如流程图、盒图、问题分析图(PAD)等。
4.4 数据库设计概述
4.4.1 数据库设计任务及步骤
4.4.2 概念数据模型设计
在软件分析阶段利用E-R图进行系统描述
4.4.3 逻辑结构及物理结构设计
(1)逻辑结构设计需要将E-R图转换为关系模式
(2)物理结构设计是根据数据模型及处理要求,设计出数据库的物理数据模型。
(3)数据库物理设计的方法是:选择存储结构和存取方法,以求获得最佳的存取效率。
4.4.4 为什么数据要规范化
规范化 --- 将数据的逻辑结构归结为满足一定条件的二维表(关系)。
通常用“范式(Normal Forms)”定义消除数据冗余的程度。第一范式(1 NF)数据冗余程度最大,第五范式(5 NF)数据冗余程度最小。
从实用角度看来,在大多数场合选用第三范式都比较恰当。
4.5 网络系统设计概述
网络技术的选择
网络的分层设计
从软件系统体系结构上,主要考虑网络系统体系结构具体实际需求。
4.6 用户界面设计
4.7 软件设计文档
4.8 本章小结
评论记录:
回复评论: