软件开发模型
瀑布模型 (Waterfall Model)
特点
- • 线性顺序执行各个阶段
- • 每个阶段有明确的交付物
- • 前一阶段完成才能进入下一阶段
- • 文档驱动的开发过程
适用场景
- • 需求明确且稳定的项目
- • 技术成熟的项目
- • 对质量要求很高的项目
缺点
- • 难以适应需求变化
- • 风险发现较晚
- • 客户反馈周期长
螺旋模型 (Spiral Model)
四个象限
- • 制定计划:确定目标和约束
- • 风险分析:识别和解决风险
- • 实施工程:开发和测试
- • 客户评估:评价结果
优点
- • 强调风险分析
- • 适合大型复杂项目
- • 支持需求变化
敏捷开发 (Agile Development)
核心价值观
- • 个体和互动 > 流程和工具
- • 工作的软件 > 详尽的文档
- • 客户合作 > 合同谈判
- • 响应变化 > 遵循计划
常见方法
- • Scrum:迭代式增量开发
- • XP:极限编程
- • Kanban:看板方法
- • Lean:精益开发
DevOps
核心理念
开发(Dev)和运维(Ops)的紧密协作
- • 持续集成(CI)
- • 持续交付(CD)
- • 基础设施即代码
- • 监控和日志
工具链
- • Git、Jenkins、Docker
- • Kubernetes、Ansible
- • Prometheus、ELK Stack
软件测试
测试用例设计实例
等价类划分法实例
需求
用户年龄输入:18-65岁为有效,其他为无效
等价类划分
有效等价类:
18 ≤ 年龄 ≤ 65
无效等价类1:
年龄 < 18
无效等价类2:
年龄 > 65
测试用例
TC1: 输入30 (有效)
TC2: 输入10 (无效)
TC3: 输入70 (无效)
边界值分析法实例
边界值识别
最小值:6
最大值:20
最小值-1:5
最小值+1:7
最大值-1:19
最大值+1:21
测试用例
TC1: 5位密码 (无效)
TC2: 6位密码 (有效)
TC3: 7位密码 (有效)
TC4: 19位密码 (有效)
TC5: 20位密码 (有效)
TC6: 21位密码 (无效)
软件项目管理
五大过程组
规划过程组
制定项目管理计划
- • 制定项目管理计划
- • 收集需求、定义范围
- • 制定进度计划、预算
进度管理工具
甘特图 (Gantt Chart)
以图形方式显示项目进度
- • 显示任务时间线
- • 展示任务依赖关系
- • 跟踪项目进度
关键路径法 (CPM)
识别项目关键路径
- • 计算最早开始时间
- • 计算最晚完成时间
- • 确定关键活动
配置管理
版本控制系统
集中式版本控制
SVN、CVS等
- • 中央服务器存储
- • 客户端检出工作副本
- • 需要网络连接
分布式版本控制
Git、Mercurial等
- • 每个客户端都是完整仓库
- • 支持离线工作
- • 更好的分支合并