一.软件工程学概述
1.软件危机
1.1软件危机概念
(1)预算,进度,可靠性:软件总是超出预算、落后于进度表,而且软件质量不可靠。
(2)开发,维护过程中问题:软件的开发和维护过程中所遇到的一系列严重问题。
(3)不能完成任务,成本上升:在软件生产的各阶段都会引入不同程度的错误,造成不能预期完成任务,致使成本上升,甚至导致软件失败。
2.软件生命周期
(1)问题定义
(2)可行性研究
(3)需求分析
(4)总体设计(概要设计)
(5)详细设计
(6)编码与单元测试
(7)综合测试
(8)软件维护
二.可行性研究(经济,货币价值)
技术可行性
经济可行性
社会可行性
1.成本/效益分析(课本p51)
假设年利率为i,现存入P元,则n年后的得到的钱为:
2.数据流图(课本p40)
注意:
箭头上标数据写三级(只给处理分级)
三.概要设计
IPO图
输入,处理,输出
SC结构框图(ppt第四章)
E-R图(实体-联系图)课本P64
实体为矩形
联系为菱形(注意对应关系几比几)
属性为矩形圆
四.详细设计
流程图
五.测试
(一)白盒(ppt第五章1)
1语句覆盖:使程序中每个语句至少执行一次
2判定覆盖:使每个判定的真假分支都至少执行一次
3 条件覆盖 :使每个判定的每个条件的可能取值至少执行一次。
条件覆盖不一定包含判定覆盖
判定覆盖也不一定包含条件覆盖
4 判定/条件覆盖:能同时满足判定、条件两种覆盖标准,取值。
5.条件组合覆盖: 所有可能的条件取值组合至少执行一次。
(二)黑盒(ppt第五章2)
1.等价类划分法
(1)等价类划分
(2).确定测试用例
身份证:
六.维护
1.维护的定义:
在软件已经交付使用后,为了改正错误或者满足新的需求而修改软件的过程;
2.维护的目的:
通过软件的维护,使得系统持久满足用户的需要;
3.维护的分类
改正性维护:为了识别和纠正软件错误,改正软件性能上的缺陷,排除实施上的误使用,从而诊断和改正错误的过程
适应性维护:在使用过程中,软件的外部环境和数据环境可能发生变化,为了适应这些变化而修改软件的过程
完善性维护:在使用过程中,用户对软件提出新的功能和性能的要求,这种情况下进行的维护
预防性维护:为了提高软件的可维护性和可靠性,为以后的软件维护打下良好基础的维护过程
各类软件维护的根本目的是为了延长软件的生存期
4.维护的特点
5.维护过程
维护组织
维护报告
维护的事件流
保存维护记录
评价维护活动
6.决定软件可维护性的因素