软件工程大纲
1. 软件工程基础知识
1.1 软件工程概述
1.1.1 软件生存周期
-
软件项目计划,参加人员有用户、项目负责人、系统分析师,产生的文档有可行性分析报告、项目计划书。
-
需求分析和定义,参加人员有用户、项目负责人、系统分析师,产生的文档有需求规格说明书。
-
软件设计,概要设计和详细设计,参加的人员有软件设计师和程序员,产生的文档有设计规格说明书。
-
编码,参加的人员有软件设计师和程序员,产生的文档有源程序清单。
-
测试,参加的人员有软件设计师或者系统分析师承担,产生的文档有软件测试计划和软件测试报告。
-
运行/维护。
1.1.2 软件开发模型
-
瀑布模型
上一阶段完成后才能进入下一阶段,缺乏灵活性,不适合需求不明确的项目。
-
演化模型
开发基本原型,对原型进行改进,特别适用于对软件需求缺乏准确性认识的情况。
-
螺旋模型
包含了4个方面的活动:制定计划,风险分析,实施工程,客户评估。
-
喷泉模型
主要用于描述面向对象的开发过程。开发过程迭代、无间隙。
1.2 软件需求分析
1.2.1 需求分析的任务
-
确定软件系统的综合要求
界面要求,功能要求,性能要求,性能要求,安全性、保密性和可靠性方面的要求,系统的运行要求,异常处理要求,将来可能提出的要求。
-
分析软件系统的数据要求
包括基本数据元素,数据元素之间的逻辑关系、数据量和峰值。
-
导出系统的逻辑模型
结构化分析方法中用数据流图表示,面向对象分析方法中可以用类模型来描述。
-
修正项目开发计划
-
如有必要,可开发一个原型系统
1.2.2 软件需求分析方法
大多数的需求分析方法是由数据驱动的。
1.3 软件开发项目管理
-
成本估算
-
风险分析
-
① 风险识别
产品规模,商业影响,客户特性,过程定义,开发环境,构建的技术,人员数目及经验。
-
② 风险预测
建立一个尺度或标准,以反映风险发生的可能性;描述风险的后果;估计风险对项目和产品的影响;标注风险预测的整体精度值,以免产生误解。
-
③ 风险评估
-
④ 风险控制
风险避免,风险监控,风险管理及意外事件计划。
-
-
进度管理
进度安排的常用图形描述方法有甘特(Grantt)图和计划评审技术(program evaluation & review techique , PERT)图。
-
① Grantt图
横坐标表示时间(如时、天、周、月、年等),纵坐标表示任务。
不能反映任务之间的依赖关系。
-
② PERT图
不能反映任务之间的并行关系。
-
-
人员管理
1.4 软件工具与软件开发环境
1.5 软件过程能力评估
软件产品的质量取决于软件开发过程。
-
软件过程评估的意义
-
① 软件过程改进的需要
-
② 降低软件风险的需要
-
-
软件能力成熟度模型
初始级,可重复级,已定义级,已管理级,优化级
1.6 软件质量管理与质量保证
-
软件质量特征
功能性,可靠性,易使用性,效率,可维护性,可移植性
-
软件质量保证
软件质量保证包括了与以下7个主要活动相关的各种任务:应用技术方法,进行正式的技术评审,测试软件,标准的实施,控制变更,量度,记录保存和报告。
2. 系统分析基础知识
2.1 系统分析概述
- 系统分析的目的和任务
系统分析的主要内容有:业务和数据的流程是否通畅,是否合理;数据、业务过程和组织管理之间的关系;原系统管理模型改革和新系统管理方法的实现是否具有可行性。
-
系统分析的主要步骤:
-
① 对当前系统进行详细调查,收集数据;
-
② 建立当前系统的逻辑模型;
-
③ 对现状进行分析,提出改进意见和新系统应达到的目标;
-
④ 建立新系统的逻辑模型;
-
⑤ 编写系统方案说明书。
-
2.2 结构化分析方法(SA)
SA方法的分析结果由以下几部分组成:一套分层的数据流图、一本数据词典、一组小说明和补充材料。
- 数据流图(DFD)
基本成分:外部实体,加工,数据存储,数据流
-
数据词典(DD)
-
描述加工的结构化语音
2.3 系统分析报告
-
系统分析报告有以下3个作用:
-
① 描述了目标系统的逻辑模型,作为开发人员进行系统设计和实施的基础;
-
② 作为用户和开发人员之间的协议或合同,为双方的交流和监督提供基础;
-
③ 作为目标系统验收和评价的依据。
-
-
系统分析报告应该包括下述内容
-
组织情况描述;
-
现行系统描述;
-
系统逻辑模型;
-
新系统在各个业务处理环节拟采用的管理方法、算法或模型;
-
与新的系统相配套的管理制度和运行体制的建立;
-
系统设计与实施的初步计划;
-
用户方负责人审批意见。
-
3. 系统设计知识
3.1 系统设计概述
3.1.1系统设计的内容和步骤
-
系统设计的主要内容包括新系统总体结构设计、代码设计、输出设计、输入设计、处理过程设计、数据存储设计、用户界面设计和安全控制设计等。
-
系统设计的基本任务大体上可以分为两个步骤:概要设计,详细设计。
3.1.2 系统设计的原则
-
抽象
-
模块化
-
信息隐蔽
-
模块独立(耦合和内聚)
3.2 结构化设计方法
3.2.1 信息流类型
-
变换流
-
事务流
3.2.2 变换分析
-
确定输入流和输出流,孤立出变换中心
-
第一级分解
-
第二集分解
-
事务分析
-
SD方法的设计步骤:
复查并精化数据流图;确定DFD的信息流类型;根据流类型分别实施变换分析或事务分析;根据系统设计原则对程序结构图进行优化。
3.3 系统总体结构设计
3.3.1 系统结构设计原则
-
分解——协调原则
-
自顶向下原则
-
信息隐蔽、抽象原则
-
一致性原则
-
明确性原则
-
模块之间的耦合尽可能小,模块内部组合尽可能紧凑
-
模块的扇入系数和扇出系数要合理。
-
模块的规模适当。
3.3.2 子系统划分
-
子系统划分的原则
-
子系统要具有相对独立性
-
子系统之间数据的依赖性尽量小
-
子系统划分的结果应使数据冗余较小
-
子系统的设置应考虑今后管理发展的需要
-
子系统的划分应便于系统分阶段实现
-
子系统的划分应考虑到各类资源的充分利用
-
-
子系统的结构设计
3.3.3 系统模块结构设计
-
模块的概念
一个模块应具备以下4个要素:输入和输出;处理功能;内部数据;程序代码。
-
模块结构图
-
模块结构设计应遵循如下原则:
-
模块具有较强的独立性。
-
模块之间的连接只能存在上下级之间的调用关系,不能有同级之间的横向联系。
-
整个系统呈树状结构,不允许网状或交叉调用关系出现。
-
所有模块都必须严格地分类编码并建立归档文件
-
-
模块结构图
-
模块:长方形中间标上能反映模块处理功能的模块名字
-
调用:箭头总是由调用模块指向被调用模块
-
数据:带空心圆的箭头表示
-
控制信息:带实心圆的箭头表示
-
转接符号:圆圈加标号
-
-
3.3.4 数据存储设计
3.4 面向数据结构的设计方法
3.5 系统详细设计
-
代码设计
-
输出设计,※输出决定输入
-
输入设计,输入设计应遵循以下原则:最小量原则,简单性原则,早检验原则,少转换原则
-
处理过程设计,程序流程图;盒图(NS图);形式语言;决策树;决策表。
-
用户界面设计,菜单方式;会话管理方式;操作提示方式;操作权限管理方法等。
-
安全控制设计
-
系统设计说明书
4. 系统实施知识
4.1 系统实施概述
4.4.1 系统实施的目的和任务
-
所谓实施指的是将系统设计阶段的结果在计算机上实现,将原来纸面上的新系统方案转换成可执行的应用软件系统。
-
系统实施阶段的主要任务:
-
按总体设计方案购置和安装计算机网络系统
-
软件准备
-
人力培训
-
数据准备
-
投入切换和试运行
-
4.4.2 系统实施的步骤
-
按总体设计方案购置和安装计算机网络系统
-
建立数据库系统
-
程序设计
-
收集有关数据并进行录入工作,然后进行系统测试
-
人员培训、系统转换和试运行。
4.2 程序设计
程序设计的主要依据是系统设计阶段的 HIPO 图以及数据库结构和编码设计。
-
程序设计方法,结构化方法、原型方法和面向对象方法。
-
程序设计基本模块,控制模块;输入模块;输出模块;处理模块
-
程序设计语言的选择
4.3 系统测试与调试
-
系统测试的意义及目的
-
测试过程,拟定测试计划;编制测试大纲;根据测试大纲设计和生成测试用例;实施测试;生成测试报告。
4.4 测试策略和测试方法
4.4.1 人工测试
-
个人复查
-
抽查
-
会审
4.4.2 机器测试
-
黑盒测试(功能测试)
-
白盒测试(结构测试)
4.4.3 软件测试步骤
-
单元测试(模块测试)
单元测试主要从模块的以下5个特征着手进行检查:
模块接口;局部数据结构;重要的执行路径;出错处理;边界条件。
-
组装测试(集成测试)
-
确认测试
有效性测试;软件配置审查;验收测试
-
系统测试
常见的系统测试主要有以下内容:
恢复测试;安全性测试;强度测试;性能测试;可靠性测试;安装测试。
4.5 调试
调试的任务就是根据测试时所发现的错误,找出原因和具体的位置,进行改正。调试工作主要由程序开发人员来进行。
目前常用的调试方法有如下几种:
试探法;回溯法;对分查找法;归纳法;演绎法
4.6 系统文档
4.7 系统转换
5. 系统运行和维护知识
5.1 系统维护概述
5.1.1 系统可维护性概念
-
系统的可维护性的评价指标
可理解性;可测试性;可修改性
-
维护与软件文档
软件文档分为用户文档和系统文档。
-
软件文档的修改
5.1.2 系统维护的内容及类型
系统维护主要包括硬件设备的维护、应用软件的维护和数据的维护。
软件维护一般有以下几个方面:正确性维护,适应性维护,完善性维护,预防性维护。
5.1.3 系统维护的管理和步骤
5.2 系统评价
5.2.1 系统评价的目的和任务
广义的信息系统评价分成立项评价、中期评价和结项评价。
5.2.2 系统评价的指标
5.3 系统运行管理
5.3.1 运行管理制度
-
各类机房安全运行管理制度
-
信息系统的其它管理制度
5.3.2 日常运行管理内容
-
系统运行情况的记录
-
审计踪迹
-
审查应急措施的落实
-
系统资源的管理