软件开发的过程模型:
1. 瀑布模型
- 可行性分析(做还是不做) ---> 可行性分析报告
- 需求分析(做什么) ---> 需求规格说明书 / 产品界面模型 (产品经理)
关键信息持有者 - 最终用户
市场调研 / 竞品分析 / 过往经验
头脑风暴 - 关于产品想到什么都可以说 - 思维导图(脑图)
产品界面模型:手绘 / Axure RP(线框图 / 高保真)/ Sketch / Brief - 概要设计 / 详细设计
数据库设计 - ER图(概念模型图) - 物理模型图(表)PowerDesigner(画好之后可以直接生成建表语句和测试数据)
面向对象分析和设计(ooda) -UML - 同一建模语句 - 用例图 / 时序图 / 类图 - 编码 / 测试
单元测试 / 集成测试 / 系统测试 / 验收测试 - 上线 / 维护
瀑布模型最大的问题:
- 项目的周期会拖的很长
- 不能拥抱需求变化 - 不能够很好地应对需求的变更
- 团队士气低下
2. 敏捷开发 - 增量迭代、可用产品 - Scrum
用户故事 - 我是一个XXX用户,我要执行一个YYY功能 - backlog
Sprint冲刺周期:计划会议 - 日常开发(站立会议 / 番茄工作法 / 结对编程 / 测试先行(TDD / BDD) / 经常代码重构 )- 修复BUG - 评审会议 - 回顾会议