1. 结构化方法
指系统内各个组成要素之间的相互联系、相互作用的框架。结构化方法也称生命周期法,是一种冲突的信息系统开发方法,由结构化分析、结构化设计、结构化程序设计构成,它是一种面向数据流的开发方法。
优点:
- 开发目标清晰化
- 开发工作阶段化
- 开发文档规范化
- 设计方法结构化
局限性:
- 开发周期长
- 难以适应需求变化
- 很少考虑数据结构
2. 面向对象方法
OO方法拥有不同的分支体系,主要包括
- OMT(Object Model Technonlogy,对象建模技术)方法
- Coad/Yourdon方法
- OOSE(Object-Oriented Software Engineering,面向对象的软件工程)方法
- Booch方法
OMT OOSE和Booch已经统一称为UML(United Model Language,统一建模语言)
优点:
- 符合人们的思维习惯,有利于系统开发过程中用户与开发人员的交流和沟通,缩短开发周期
- OO方法可以普遍适用于各类信息系统的开发
局限性:
- 必须依靠一定的OO技术支持
- 在大型项目的开发商具有一定局限性,不能涉足系统分析的开发环境
一般大型信息系统开发,通常是将结构化方法和OO方法相结合
首先使用结构化方法进行自顶向下的整体划分;
然后,自底向上地采用OO方法进行开发。
因此,结构化方法和OO方法乃是两种在系统开发领域中相互依存的,不可替代的方法。
3. 原型方法
原型化方法也称为快速原型法,或简称为原型法
从原型是否实现功能来分,可分为:
- 水平原型(行为原型,细化需求,不实现功能)
- 垂直原型(结构化原型,实现部分功能)
从原型的最终结果来分,可分为:
- 抛弃式原型(探索式原型)
-演化式原型
优点:
- 使系统开发的周期短、成本和风险减低、速度加快,获得较高的综合开发效益。
- 以用户为中心来开发系统,用户参与的程度大大提高,开发的系统符合用户的需求,因而增加了用户的满意度,提高了系统开发的成果率
- 由于用户参与了系统开发的全过程,对系统的功能和结构容易理解和接受,有利于系统的移交,有利于系统的运行和维护。
局限性:
- 开发的环境要求高
- 管理水平要求高
4. 敏捷方法
- 极限编程(XP)
轻量级、高效、低风险、可预测、科学的软件开发方式。
4大价值观:沟通、简单性、反馈,勇气。
5个原则:快速反馈、简单性假设、逐步修改,提倡更改和优质工作。
12个最佳实践:计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结队编程、集体代码所有制、持续集成、周工作40小时、现场客户和编码标准。 - 水晶法(Crystal)
水晶法认为每一个不同的项目都需要一套不同的策略、约定和方法论。 - 并列争求法(Scrum)
使用迭代的方法,其中,把每30天一次的迭代称为一个“冲刺”,并按需求的优先级别来实现产品。 - 自适应软件开发(ASD)
6个基本原则:
- 有一个使命作为指导;
- 特征被视为客户价值的关键点;
- 过程中的等待很重要的,因此“重做”与“做”同样关键;
- 变化不被视为改正,而是被视为对软件开发实际情况的调整;
- 确定的交付时间迫使开发人员认真考虑每一个生产的版本的关键需求;
- 风险也包含其中;