软件危机的原因:
①软件本身的特点有关
②软件开发与维护的方法不正确有关
③在软件开发的不同阶段进行修改要付出的代价
软件生命周期:
定义时期→开发时期→运行维护期
生命周期八个阶段:
1.问题定义 2.可行性研究 3.需求分析 4.总体设计 5.详细设计 6.编码和单元测试 7.综合测试 8.软件维护
有形性与可控性不是软件特性
软件工程包括技术和管理两个方面
软件工程方法学三要素:方法,工具和过程
使用最广泛的软件工程方法学:传统方法学和面向对象方法学
软件过程
①瀑布模型:使用最早最广,在编码阶段占用人最多,依赖于文档是一个文档驱动模型
特点:1.阶段间有顺序性和依赖性
2.推迟实现的观点
3.质量保证的观点
②快速原型模型:不带反馈环
③增量模型:非整体开发模型
把软件产品作为一系列增量构件来设计,编码,集成和测试。在构建第一个构件前就有了总体设计,风险小
④螺旋模型:综合瀑布模型和演化模型的优点,增加了风险分析
⑤喷泉模型:面向对象,生命周期模型体现了迭代和无缝特性
Rational统一过程,二维生命周期模型