敏捷软件开发

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

敏捷联盟

  • 个体交互 胜过 过程和工具

项目的关键因素是人 但是一个好过程并不能帮助项目成功

  • 可以工作的软件 胜过 面面俱到的文档

过多的文档比过少的文档更糟

  • 客户合作 胜过 合同谈判

成功的项目需要有序频繁的客户反馈

  • 响应变化 胜过 遵循计划

对于下两周 做好详细的计划

为下三个月做好粗略的计划

三个月以后的事 就做极为粗糙的计划

原则

  • 尽早交付
  • 欢迎需求变更
  • 交付间隔越短越好
  • 客户与开发团队一起工作
  • 重视人的因素
  • 使用可以工作的软件衡量工作进度
  • 提倡恒定的开发速度
  • 简单就好
  • 自组织的团队
  • 不断反省 调整自身

极限编程

实践原则

  • 客户作为团队成员
  • 用户故事
  • 短交付周期
    • 迭代
    • 发布
  • 验收测试
  • 结对编程
    • 减少缺陷率
    • 促进知识传播
  • 测试驱动开发
  • 集体所有权
  • 持续集成
  • 可持续的开发速度
  • 开放的工作空间
  • 计划游戏
  • 简单设计
  • 重构
  • 隐喻

测试

单元测试

  • 验证操作的正确性
  • 站在调用者的角度
  • 促使解耦

验收测试

针对每个特性编写测试脚本

敏捷设计

拙劣设计的症状

  • 僵化性
    • 设计难以改变
  • 脆弱性
    • 设计容易被破坏
  • 牢固性
    • 设计难以重用
  • 粘滞性
    • 难以做正确的事
  • 不必要的复杂性
    • 过分设计
  • 不必要的复制
  • 晦涩性
    • 表达令人混乱

敏捷设计致力于保持系统设计在任何时间都尽可能简单 干净 富有表现力

设计模式

  • SOLID原则

COMMAND 模式

interface Command{
  do();
  undo();
}

ACTIVE OBJECT 模式

while(commandListNotEmpty){
  getCommandAndExecute();
}

MONSTATE 模式

通过封装来使整个系统的某个对象以单一的形式展示

  • 无需对外暴露其本身性质

NULL OBJECT 模式

使用一个空对象来代替空指针

Scrum模型

MY all right reserved,powered by Gitbook 该页面最后修改于: 2021-03-17 17:37:58 本页字数: 1031

results matching " "

No results matching " "

results matching " "

No results matching " "