软件工程第四章

来源:互联网 发布:怎么退出淘宝嘉年华 编辑:程序博客网 时间:2024/05/18 01:39

前言

这章的知识点比较多,比较零散。


软件设计过程

1.制定规范
2.软件系统结构的总体设计
3.处理方式设计
4.数据结构设计
5.可靠性设计
6.编写概要设计阶段的文档
7.概要设计评审

先制定规范,进行整体、局部设计,最后进行评审。

软件设计基础

自顶向下,逐步细化
软件结构
程序结构
模块化
抽象化
信息隐蔽

程序结构

分为树状结构、网状结构


模块

基本属性

功能:该模块要实现什么样的功能
逻辑:模块内部怎么做
状态:该模块使用时的环境和条件

模块间的耦合

耦合性和模块独立性相反

耦合分类

非直接耦合
两个模块间没有直接关系

数据耦合
一个模块访问另一个模块,彼此间通过简单数据参数来交换输入、输出信息。

标记耦合
一组模块通过参数表传递记录信息

控制耦合
一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一个模块的功能。

外部耦合
一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息

公共耦合
一组模块都访问同一个公共数据环境。公共耦合又分为松散公共耦合和紧密公共耦合(紧密耦合联系多,联系比较紧密)

模块内聚

模块内聚中的内聚性和模块独立性成正比;可以和耦合性和独立性对比。

功能内聚
模块中各个部分都是完成某一具体功能必不可少的组成部分

信息内聚
模块完成多个功能,各个功能都在同一数据结构上操作,每一项功能都有唯一的入口点

通信内聚
一个模块内各功能部分都使用了相同的输入数据,或产生了相同的输出数据,称之为通信内聚模块

过程内聚
使用流程图作为工具设计程序时,把流程图的某一部分划出组成模块

时间内聚
时间内聚模块各个功能的执行和时间有关,通常所有功能在同一时间段执行

逻辑内聚
把几种相关的功能组合在一起

巧合内聚
巧合内聚模块内各部分之间没有联系,即使有联系,这种联系也很松散

模块应注意的事项

1.选择模块设计次序,必须对一个模块的全部直接下属模块都设计完成
2.设计下层模块时,应考虑模块的耦合和内聚
3.使用”黑箱”技术:在设计当前模块时,先把这个模块的所有下层模块定义成”黑箱”
4.模块划分时,一个模块的直接下属模块一般在5个左右
5.如果出现以下情况,停止模块功能分解
不宜再分解得过小等情况

软件模块结构的改进

.模块功能的完善
1.执行规定的功能部分
2.出错处理的部分
3.给它的调用者返回一个结束状态标志
.尽可能减少高扇出结构,随着深度的增大扇入
.避免或减少使用病态联接

限制如下三种病态联接
1.直接病态联接
2.公共数据域病态联接
3.通信模块联接

.设计功能可预测的模块,但要避免过分受限制的模块
.软件包应满足设计约束和可移植性


结构化设计方法

首先研究、分析和审查数据流图
根据数据流图决定问题的类型(变换型和事务型)
针对不同类型分别进行分析处理

处理问题的方法
变换型系统结构图:取得数据,变换数据和给出数据。
——>取得数据C——>变换数据C到D——>给出数据D

变换分析

.重画数据流图
.区分有效逻辑输入、有效逻辑输出和中心变换部分
.进行一级分解,设计上层模块
.进行二级分解,设计输入、输出和中心变换部分的中、下层模块

数据设计的原则

1.用于软件的系统化方法也适用于数据
2.确定所有的数据结构和在每种数据结构上施加的操作
3.应当建立一个数据词典并用它来定义数据和软件的设计
4.底层数据设计的决策应推迟到设计过程的后期进行
5.数据结构的表示只限于那些必须直接使用该数据结构内数据的模块才知道
6.应当建立一个存放数有效据结构及相关操作的库
7.软件设计和程序设计语言应当支持抽象数据类型的定义和实现


文件的分类

顾客文件
商品文件

索引顺序文件
基本数据记录按顺序文件组织,记录排列顺序必须按照关键字值升序或降序安排,且具有
索引部分,也按照同一关键字进行索引

分区文件
这类问价主要用于存放程序

虚拟存储文件
基于操作系统的请求页式存储管理功能而建立的索引顺序文件

倒排文件


几种类型

顺序型、选择型、先判定型循环
后判定型循环、多情况选择型

程序流程图的标准符号

常用图形

N-S图

PAD图

判定表

判定表用于表示程序的静态逻辑
将程序流程图的多分支判断改为两分支判断

如何建立判定表

列出一个具体过程(或模块)有关的所有处理
列出过程执行期间的所有条件(或所有判断)
消去不可能发生的条件取值组合
将右部每一纵列规定为一个处理规则,即对于某一条件取值组合将有什么动作

PDL

一种用于描述功能模块的算法设计和加工细节的语言
具有严格的关键字外语法,用于定义控制结构和数据结构

特点:
提供全部结构化控制结构、数据说明和模块特征,能对PDL正文进行结构分割
关键字一律大写、其他单词一律小写。或规定关键字加下划线,或规定他们为黑体字

概要设计说明书和详细设计说明书:
概要设计是对整体进行设计、详细设计是对局部进行设计

原创粉丝点击