《软件工程与实践》 |(四)软件设计 知识梳理

 

系列索引: 《软件工程与实践》第三版 软件工程课程知识梳理


目录

 

系列索引: 《软件工程与实践》第三版 软件工程课程知识梳理

本章重难点:

   4.1 软件设计概述

4.1.1 软件设计的概念和目标

4.1.2 软件设计的过程

   4.2 软件总体设计

4.2.1  软件总体设计的任务

4.2.2 总体设计的原则和过程

4.2.3  软件总体设计的方法

   4.3 软件详细设计

4.3.1 详细设计的任务和原则

4.3.2 详细设计的方法和工具

   4.4 数据库设计概述

4.4.1 数据库设计任务及步骤

 

4.4.2 概念数据模型设计

4.4.3 逻辑结构及物理结构设计

4.4.4 为什么数据要规范化

   4.5 网络系统设计概述

   4.6 用户界面设计

   4.7 软件设计文档

   4.8 本章小结


本章重难点:

● 掌握软件设计的概念、目标和过程        

● 熟悉软件总体及详细设计的任务和原则        

● 掌握数据库设计、网络设计和界面设计要点及方法        

● 掌握软件设计工具使用及设计文档编写格式和方法

   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 本章小结

发布了112 篇原创文章 · 获赞 975 · 访问量 22万+

猜你喜欢

转载自blog.csdn.net/qq_41523096/article/details/103688524