Skip to content

Commit 4a07475

Browse files
authoredJan 2, 2020
软件工程补充PAD图、判定树/表、黑盒例题 (#9)
1 parent 0d56673 commit 4a07475

8 files changed

+43
-33
lines changed
 

‎img/.DS_Store

0 Bytes
Binary file not shown.

‎img/软件工程/PAD图范例.png

262 KB
Loading

‎img/软件工程/判定树.png

838 KB
Loading
Loading

‎img/软件工程/判定表.png

299 KB
Loading

‎img/软件工程/等价类划分.png

94.4 KB
Loading
66.7 KB
Loading

‎软件工程/软件工程.md

+43-33
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,18 @@
66
## 软件危机
77
1. 软件危机的定义:
88
+ 计算机软件的开发和维护过程中所遇到的一系列严重问题。
9-
1. 与软件本身的特点有关
10-
+ 逻辑部件,可见性差
11-
+ 管理和控制软件开发很困难
12-
+ 客观上软件维护比较困难
13-
+ 需要人员协作和科学管理
14-
2. 与软件开发与维护的方法不正确有关
15-
+ 采用了错误的方法和技术
16-
+ 忽视软件需求分析,过早编码
17-
+ 轻视软件维护的重要性
18-
3. 软件是有生命周期
19-
+ 软件从定义、开发、使用、维护到终止的时期
20-
+ 软件生命期中的有关经验数据
21-
+ 编码通常占开发的10%~20%
22-
+ 软件测试占开发的40%~50%
23-
+ 设计错误占软件错误的63%,编码错误占37%
24-
+ 软件维护费用占总投资的55%~70%
25-
+ 软件后期变更比早期变更代价高
9+
2. 产生原因:
10+
+ 与软件本身的特点有关
11+
+ 与软件开发与维护的方法不正确有关
12+
+ 软件是有生命周期
13+
3. 表现:
14+
+ 对软件开发成本和进度的估计常常不正确
15+
+ 用户对“已完成的”软件系统不满意的现象常常发生
16+
+ 软件产品的质量往往靠不住
17+
+ 软件通常没有适当的文档资料
18+
+ 软件常常是不可维护
19+
+ 软件成本在计算机系统总成本所占的比例逐年上升
20+
+ 软件开发生产效率低
2621
## 软件工程
2722
1. 基本原理
2823
+ 用分阶段的生命周期计划严格规划
@@ -55,7 +50,7 @@
5550
5. 详细设计
5651
6. 编码和单元测试
5752
7. 综合测试
58-
+ 软件维护 **(3)**
53+
+ 软件维护/运行维护 **(3)**
5954

6055
8. 软件维护
6156
+ 改正性维护
@@ -75,8 +70,13 @@
7570
+ 要求每个阶段交出的所有产品都必须经过质量保证小组的仔细检查。(有完备的后续检查)
7671
+ 不足:完全依赖于书面的规格说明,可能导致产出的软件产品不能真正满足用户需要。
7772
### 快速原型模型
78-
> 适合于需求动态变化,事先难以确定系统(**不支持风险分析**)。
79-
73+
> 适合于需求动态变化,事先难以确定系统。
74+
+ 优点
75+
+ 有助于获取用户需求,加强对需求的理解
76+
+ 尽早发现软件中的错误
77+
+ 支持需求的动态变化
78+
+ 缺点
79+
+ 不支持风险分析
8080

8181
### 增量模型
8282
+ 优点
@@ -120,14 +120,16 @@
120120

121121

122122
### 原则
123-
1. 确定系统的源点和终点
124-
2. 确定系统的输入和输出数据流的关系
125-
3. 保持分解前后输入/输出数据流必须相同(父子平衡)
126-
4. 尽量简化加工之间的联系
127-
5. 用“自顶向下”方法,逐层画出数据流图,每张数据流图中加工(处理)的个数不能超过9个(7加减2)
128-
6. 注意分解速度(一般每分解一层增加2-7个加工)
129-
7. 在画数据流图时应避免线条交叉,必要时可使用重复的外部项(源点或终点)或数据存储符号
130-
8. 适当的命名,加工处理要编号
123+
1. 第一层DFD应当是基本系统模型
124+
2. 注意父图和子图的平衡,维护信息的连续性
125+
3. 区分局部文件和局部外部项
126+
4. 掌握分解速度,上快下慢
127+
5. 遵守加工编号原则
128+
129+
### 分层的原因
130+
1. 便于实现:逐层分化有利于控制问题的复杂度。
131+
2. 便于使用:使用户中的不同业务人员只选择与自己相关的图形。
132+
131133

132134
## 数据字典
133135
![数据字典](../img/软件工程/数据字典.png)
@@ -228,11 +230,16 @@
228230
+ **五种基本控制结构**
229231
![PAD图集合](../img/软件工程/PAD图集合.png)
230232
+ **范例**
231-
![盒图范例](../img/软件工程/盒图范例.png)
233+
![PAD图范例](../img/软件工程/PAD图范例.png)
232234

233235
### 判定树/表
234236
清晰表达复杂条件组合和应做的动作之间的关系
235-
237+
> **例题**
238+
> ![判定树、判定表例题](../img/软件工程/判定树、判定表例题.png)
239+
> **判定表**
240+
> ![判定表](../img/软件工程/判定表.png)
241+
> **判定树**
242+
> ![判定树](../img/软件工程/判定树.png)
236243
## 面向数据结构的设计方法
237244
### Jackson图
238245
+ 顺序结构
@@ -280,9 +287,9 @@ A end
280287
281288
**对应的三种计算过程:**
282289
E=11,N=9
283-
(1) V(G)=R1+R2+R3+R4=4
284-
(2) V(G)=E-N+2=4
285-
(3) V(G)=P1+P2+P3+1=4
290+
1. V(G)=R1+R2+R3+R4=4
291+
2. V(G)=E-N+2=4
292+
3. V(G)=P1+P2+P3+1=4
286293
287294
# 实现
288295
## 软件测试基础
@@ -307,6 +314,9 @@ E=11,N=9
307314
308315
## 黑盒测试
309316
+ 等价划分 —— 划分一组**等价类**描绘一组输入条件的有效或无效条件, 测试程序是否有设计方案中该有的输出结果。
317+
> **范例**
318+
> ![等价类划分数据字典](../img/软件工程/等价类划分数据字典.png)
319+
> ![等价类划分](../img/软件工程/等价类划分.png)
310320
+ 边界值分析 —— 选取刚好等于、稍小于和稍大于**等价类边界值**的数据作为测试数据。
311321
+ 错误推测
312322

0 commit comments

Comments
 (0)
Please sign in to comment.