文本描述
2003.11. 全国计算机等级考试二级公共基础知识 青海大学医学院现代教育技术中心
4.软件工程基础 4.0内容 软件工程基本概念,软件生命周期概念,软件工具与软件开发环境。
结构化分析方法,数据流图,数据字典,软件需求规格说明书。
结构化设计方法,总体设计与详细设计。
软件测试的方法,白盒测试与黑盒测试,测试用例设计,软件测试的实施,单元测试、集成测试和系统测试。
程序的调试,静态调试与动态调试。 4.1 基本概念 1.软件工程
软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程。其目的是提高软件生产率、提高软件质量、降低软件成本。
2.软件危机
早期的软件主要指程序,采用个体工作方式,缺少相关文档,质量低,维护困难,这些问题称为“软件危机”,软件工程概念的出现源自于软件危机。 3. 软件生命周期
将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期
分为软件定义、软件开发及软件运行维护3个阶段。维护是持续时间最长,花费代价最大的一个阶段,软件工程学的一个目的就是提高软件的可维护性,降低维护代价
6个活动阶段
可行性研究与计划制定:确定系统的总体目标。参加人员有用户、项目负责人和系统分析员,产生文档有可行性分析报告、项目计划书等
需求分析:确定系统的逻辑模型。参加人员有用户、项目负责人和系统分析员。产生文档为需求规格说明书,其作用:(1)便于用户、开发人员进行理解交流;(2)反映用户问题的结构,可以作为软件开发工作的基础和依据;(3)作为确认测试和验收的依据。 软件设计:包括软件结构设计、数据设计、接口设计和过程设计。其中结构设计是定义软件系统各部件之间的关系;数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部、软件和操作系统之间及软件与人之间如何通信;过程设计则是把系统结构部件转换成软件的过程性描述。软件设计分概要设计和详细设计。参加人员有系统分析员和高级程序员。产生的文档有设计规格说明书。
编码:编程。高级程序员和程序员产生源程序清单
测试:由另一部门的高级程序员或系统分析员产生软件测试计划和软件测试报告
运行维护 4. 软件工程三要素
方法:完成软件工程项目的技术手段
工具:支持软件的开发、管理、文档生成
过程:支持软件开发的各个环节的控制、管理
5. 软件工程的理论和技术研究的内容
软件开发技术和软件工程管理
6. 软件工程的目标
在给定的成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品
软件工程鼓励研制和采用各种先进的软件开发方法、工具和环境 7. 软件工具和软件开发环境
软件工具(CASE):用来辅助软件开、运行、维护、管理、支持等过程中的活动的软件
软件开发环境:支持软件产品开发的软件系统,它由软件工具集和环境集成机制构成 4.2 结构化分析方法 基本思想
将系统分析看成工程项目,有计划、有步骤地进行工作。
开发策略
自顶向下,逐层分解
分析结果
一套分层的数据流图(DFD):用来描述数据流从输入到输出的变换流程
一个数据字典(DD):用来描述DFD中的每个数据流、文件以及组成数据流或文件的数据项
一组小说明(加工逻辑说明):用来描述每个基本加工的加工逻辑 4.3结构化设计方法、总体设计和详细设计 4.3.1 结构化设计方法
结构图
基本成分:模块、调用、输入输出数据
模块用矩形表示,模块间用线段连接,表示调用关系,输入输出数据可写在调用线段的旁边
信息流的类型
变换流
事务流 4.3.2 总体设计
设计原则
分解—协调原则
自顶向下的原则
信息屏蔽、抽象的原则
一致性原则
明确性原则
模块间的耦合度尽可能小,模块内部组合尽可能紧凑(内聚性高)
模块的扇入和扇出系数合理
模块的规模适当 4.3.3 详细设计
根本目标
确定应用怎样具体的实现所要求的系统,不是具体的编写程序,而是要设计程序的“蓝图”
此阶段的结果基本上决定了最终的程序代码的质量
包括内容:
代码设计
输入设计
输出设计
处理过程设计
用户界面设计
安全控制设计 4.4 软件测试 4.4.1 意义目的
为了发现错误
希望能以最少的人力和时间发现潜在的各种错误和缺陷
保证系统质量和可靠性的关键步骤
4.4.2 测试方法
人工测试
机器测试 4.4.3 白盒测试
结构测试
将软件看成透明的白盒,根据程序的内部结构和逻辑结构来设计测试例子,对程序的路径和过程进行测试,检查是否满足设计的要求
4.4.4 黑盒测试
功能测试
将软件看成黑盒子,在完全考虑软件内部结构和特性的情况下,测试软件的外部特性
4.4.5 软件测试的实施
单元测试(模块测试):白盒测试法
组装测试(集成测试)
确认测试
系统测试