- 软件危机
- 软件工程
软件工程是将系统化的,严格约束的,可量化的方法应用于软件的开发,运行和维护,将工程应用于软件。
- 软件工程的三个要素:方法,工具,过程
- 软件的生命周期,是指从从软件的产生到报废的生命周期包括:
- 问题定义,可行性分析,需求分析,总体设计,详细设计,编码,测试,运行,维护。
- 软件开发模型:瀑布模型,增量模型,螺旋模型,喷泉模型,智能模型,v模型,快速应用开发模型,构建组装模型,敏捷方法,和统一过程。
- 瀑布模型(生命周期法)
6个阶段:软件计划,需求分析,软件设计,程序编码,软件测试,运行维护
瀑布模型的优点:为项目提供了按阶段划分的检查点;完成当前阶段,只需要关注后面阶段;提供了一个模板,此模板使得分析,设计,编码,测试和支持有共同的指导模型。
瀑布模型的缺点:
各个阶段产生大量文档,增加了工作量;由于开发方式是线性的增加了开发风险;不适应用户的需求变化;需要明确的目标或者很少变更的项目
- 快速原型模型:是利用原型辅助软件进行开发的一种新思想(沙盘)
原型分类:
探索型:主要在需求分析阶段
实验型:主要在设计阶段
-
演化原型:在保证最主要需求,然后根据用户的意见进行改进。
优点
- 增量模型增量模型的优点:人员灵活分配,前期投入小 用户可以直观的感受项目进展,即使使用产品功能 有利于风险的把控
- 螺旋模型:
瀑布模型和演化模型的结合,并增加了风险分析螺旋模型的优点:
设计灵活
以小的分段系统封来构建大系统
用户始终掌握项目的最新信息 ,保证项目的准确性
螺旋模型的缺点:
必须具有相当丰富的风险评估能力,经验,未能标识风险,势必造成重大损失
过多的迭代次数会增加开发的成本,延迟提交时间
- 喷泉模型:
是以用户需求为动力的,以对象为驱动的模型
- 基于构建的开发模型:
将整个系统模块化,在一定构建模型的支持下重复使用构建库中的一个或多个软件构建,通过组合手段实现高效化,高质量完成系统的开发。
优点:
缺点:
- 快速应用开发模型:
是一个增量型的开发软件模型,强调时间极短。
- 敏捷开发:
以用户的需求为核心,采用迭代,循序渐进的方法进行软件开发
诞生了敏捷宣言:
敏捷开发方法
敏捷开发原则: