1. 结构化开发方法
面向数据流的开发方法,总的指导思想是:自顶向下,逐层分解。其基本原则是功能的分解与抽象。特别适合于数据处理领域的问题,但是不适合解决大规模的,特别复杂的项目,且难以适应需求的变化。
2. Jackson
面向数据结构的开发方法,
a.JSP以数据结构为驱动,适合于小规模的项目。但输入数据结构与输出数据结构没有对应关系时,这种方法难以胜任。
b.JSD以事实为驱动,是一种基于进程的开发方法,所以适应于时序特点较强的系统,包括数据处理系统和一些实时控制系统。
3、原型方法
比较适合于用户需求不清,需求经常变化的情况。当系统规模不是很大也不是很复杂时,采用此方法比较合适。
4.面向对象方法
基本出发点事尽可能地按照人类认识世界的方法和思维方式来分析和解决问题。以对象作为基本元素,这也是分析问题,解决问题的核心。
5.敏捷方法
通过“尽可能早地,持续地对有价值的软件的交付”使客户满意。
a.极限编程(XP)
4大价值观:沟通,简单性,简单,反馈与勇气;
5个原则:快速反馈,简单性假设,逐步修改,提倡更改和优质工作
12个最佳实践:计划游戏(快速制定计划、随着细节的不断变化而完善)、小型发布(系统的设计要能够尽可能早地交付)、隐喻(找到合适的比喻传达信息)、简单设计(只处理当前的需求,使设计保持简单)、测试现行(先写测试代码,然后再编写程序)、重构(重新审视需求和设计,重新明确地描述它们以符合新的和现有的需求)、结队编程、集体代码所有制、持续集成(可以按日甚至按小时为客户提供可运行的版本)、每周工作40个小时、现场客户和编码标准。
b.水晶法(Crytal)
认为每一个不同的项目都需要一套不同的策略、约定和方法论。
c.并列争求法(Scrum)
使用迭代的方法
自适应软件开发(ASD)
有6个基本原则:有一个使命作为指导;特征被视为客户价值的关键点;过程中的等待是很重要的,因为“重做”与“做”同样关键;变化不被视为更改,而是被视为对软件开发实际情况的调整;确定的交付时间迫使开发人员认真考虑每一个生产的版本的关键需求;风险也包含其中。