开发方法
【敏捷开发技术】
敏捷的主要原则:
增量式移交(最优先要做的是尽早、持续地交付有价值的软件来使客户满意);
接受变更(即使到了开发的后期,也欢迎改变需求,利用变化为客户创造竞争优势);
经常性交付可以工作的软件,时间间隔越短越好,但不要求每次交付的都是系统的完整功能;
团队内部,最有效的信息传递方法是面对面的交谈。
客户参与
敏捷的四大价值观:
个体和交互胜过过程和工具;
可以工作的软件胜过面面俱到的文档;
客户合作胜过合同谈判;
响应变化胜过遵循计划。
适合情况:
(1)规模较小项目;(2)项目经常发生变更;(3)高风险项目实施;(4)组织文化(支持谈判、彼此信任、人少精干、开发人员决定易认可,成员间快速沟通);
影响较大的敏捷方法论包括:
XP极限编程:强调人为中心,而不是流程为中心
软件开始初期无需做出很多文档;
测试先行,测试驱动;
四大价值观:沟通、简单、反馈、勇气。
12种最佳实践:计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、程序集成、每周工作40小时、现场客户、编码标准。
包括规划、设计、编码和测试4个框架活动的规则和实践。
极限编程中使用的重要技术是重构,即包括设计技术的重构,也包括构建技术的重构;
提倡在基本设计完成后,团队不应该直接开始编码,而是开发一系列用于检测本次发布的包括所有故事的单元测试(测试先行)。
关键概念之一是“结对编程”(开发人员成对工作,检查彼此工作,相互提供支持)。。
极限编程过程中建立的单元测试应当使用一个可以自动实施的框架,支持代码修改后即使的回归测试策略。
SCRUM
迭代的增量化过程,用于产品开发或工作管理。可以集合各种开发实践的经验化过程框架。
发布产品的重要性高过一切;
旨在寻求充分发挥面向对象和构建技术的开发方法,是对迭代式面向对象方法的改进。
Crystal Methods
20世纪90年代末提出,是个系列,因为创始人相信不同的项目需要不同的方法。
FDD特性驱动开发
针对中小型项目。
模型驱动的快速迭代开发过程;
强调简化、实用、易于被开发团队接受、适用于需求经常变动的项目。
ASD
强调开发方法的适应性
DSDM动态系统开发
以业务为核心,快速而有效地进行系统开发。在英国称为应用最为广泛的快速应用开发方法。
DSDM不仅遵循了敏捷方法的原理,而且也适合那些成熟的传统开发方法有坚实基础的软件组织。
RUP
RUP是个过程框架,它可以包容许多不同类型的过程,Craig Larman极力主张以敏捷型方式来使用RUP。
【结构化开发方法】
·5个阶段:
初始研究、问题分析、需求分析、逻辑建模、方案分析
注:系统逻辑设计阶段产生的图表和文档是最后一次验证系统功能需求。
【面向对象开发方法】
【结构化和面向对象开发方法对比】
结构化开发方法:关注系统功能,强调业务过程的数据流和控制流,采用模块化,自顶向下、逐步求精的过程。各阶段相对独立、结构清晰,利于提高软件质量。适合规模较大,结构化程度较高的系统开发;
面向对象开发方法:关注处理的数据,以对象为中心,对象能够将数据及其行为统一,对象间通过消息交换印发对象行为。对象模型提高了数据和功能复用,简化开发过程,可维护性得到改善。