软件工程的基本概念
软件的定义
计算机软件是计算机系统中与硬件相互依存的另外一部分,包括程序,数据及相关文档的完整集合
软件危机
所谓软件危机是泛指计算机软件的开发和维护所遇到的一系列严重问题,归结为成本,质量,生产率等问题
软件工程
为了消除软件危机,使计算机软件走向工程科学的途径,开辟的新领域学科
结构化分析方法
需求分析
是指用户对目标软件系统在功能,行为,性能,设计约束等方面的期望
需求分析阶段的工作
需求获取
需求分析
编写需求规格说明书
需求评审
需求分析方法
结构化分析方法
面向数据流的结构化分析方法
面向数据结构的Jackson方法
软件规格说明书(SRS)
是描述需求中的重要文档,是软件需求分析的主要成果
软件测试
软件测定的定义
是一个过程,为了评价系统和构件的某些方面,以评价是否满足规定的需求,验证期望的结果之间有无差别。
软件测试的方法
静态测试
基于人工的测试,包括代码检查,静态结构分析,代码质量度量
动态测试
基于计算机的测试,为了发现错误而执行程序的过程
白盒测试
也称结构测试或逻辑驱动测试
它是根据软件产品的内部工作过程,检查内部成分,以确认内部操作符合设计规格的要求。
黑盒测试
也称功能测试或者数据驱动测试
它是对软件已经实现的功能是否满足需求进行测试和验证
软件测试的策略
单元测试
对软件设计的最小单元-模块进行正确性检测的测试,发现内部各种错误
集成测试
将各模块组合起来测试,主要发现接口有关的错误
确认测试
验证软件的功能性和性能及其他特性是否满足需求规格说明
系统测试
将软件与计算机,外设,支持软件,数据和人员等其他系统元素组合一起测试
程序调试
调试的概念
在测试成功之后,进入程序调试(通常称Debug,即排错)
任务是:挣断和改正程序中的错误。
调试的步骤
错误定位
修改设计其代码,以排除错误
进行回归测试,防止引入新的错误
调试的方法
强行排除法
传统的调试方法:设置断点,程序暂停,观察程序状态,继续运行程序
演绎法
一种从一般原理或前提出发,经过排除和精化的过程来推导出结论的思考方法。