软件工程基础知识
📚 上期回顾:Week1我们学习了系统架构设计理论与方法,包括架构风格、架构模式、4+1视图等核心概念。
本周核心考点
考点1:软件工程定义与目标 ⭐⭐
软件工程是指为了获得软件产品,在软件工具的支持下由软件工程师完成的一系列工程活动。
考点2:传统开发模型 ⭐⭐⭐⭐
🔨 瀑布模型(Waterfall)⭐⭐⭐⭐
最早使用的软件过程模型之一,工作流在形式上很像瀑布。
优点:
• ✅ 阶段性清晰,易于管理 • ✅ 适合需求稳定的项目 • ✅ 文档驱动,便于审计
缺点:
• ❌ 不适应需求变化 • ❌ 后期发现问题代价大 • ❌ 客户难以看到中间结果
适用场景:需求明确、项目周期长的大型项目
🔄 V模型 ⭐⭐⭐
瀑布模型的一种变体,强调了开发阶段与测试阶段之间的对应关系。
特点:
• 强调测试与开发的对应关系,保障产品质量 • 缺乏灵活性,需求变更时需回溯到修改的前期阶段
🚀 原型模型 ⭐⭐⭐
又称快速原型,包含两个阶段:原型开发阶段和目标软件开发阶段。
🌀 螺旋模型 ⭐⭐⭐
在快速原型的基础上扩展而来,是生命周期模型和原型模型的结合。
四个阶段:
1. 制定计划 2. 风险分析 3. 开发实施 4. 评审
特点:
• ✅ 兼容风险管控和迭代开发,适合大型复杂高风险项目 • ❌ 流程化复杂,成本高昂,对风险评估能力要求极高
📦 增量模型 ⭐⭐⭐
将软件系统分解为多个独立的、可交付的"增量"或"模块"。
特点:
• 每个增量都经历完整的开发周期 • 按优先级顺序依次交付给用户
优点:
• ✅ 快速交付核心功能,用户可早期使用并反馈 • ✅ 降低整体项目风险
缺点:
• ❌ 若初期架构设计不佳,后续增量集成时易引发兼容性问题
🔁 迭代模型 ⭐⭐⭐
将软件开发过程划分为一系列短暂的、固定的"迭代周期"。
特点:
• 通过返回优化逐步逼近最终需求 • 能灵活应对需求变化
优点:
• ✅ 灵活应对需求变化 • ✅ 提升产品质量
缺点:
• ❌ 项目周期和成本难以精准控制 • ❌ 易因反复修改导致进度延迟
考点3:RUP统一过程模型 ⭐⭐⭐
RUP是一种软件工程方法,描述了如何有效地开发和部署软件。
9个核心工作流
4个连续阶段
3大特点
1. 用例驱动:以用例为中心进行开发 2. 以体系结构为中心:强调架构设计 3. 迭代和增量:分阶段迭代交付
🧩 4+1视图模型
考点4:能力成熟度模型(CMMI)⭐⭐⭐⭐
考点5:净室软件工程 ⭐⭐
净室软件工程是一种应用数学模型和统计学理论以经济的方式生成高质量软件的工程技术。
理论基础
• 函数理论 • 抽样理论
技术手段
• 统计过程控制下的增量式开发 • 基于函数的规范与设计 • 正确性的验证 • 统计测试
缺点
• ❌ 太理论化 • ❌ 开发小组不进行传统的模块测试,这是不现实的 • ❌ 脱胎于传统工程,不可避免带有传统软件工程的一些弊端
📝 本周复习建议
1. ✅ 掌握瀑布模型:特点、优缺点、适用场景 2. ✅ 理解V模型:开发与测试的对应关系 3. ✅ 熟悉各模型区别:瀑布、增量、迭代、螺旋 4. ✅ 记忆RUP:9个工作流、4个阶段、3大特点、4+1视图 5. ✅ 背诵CMMI 5个等级:从初始到持续优化
🔔 下次预告
下次我们将学习软件工程中的需求工程,包括:
关注「小码哥」公众号,每周一个核心考点,陪你高效备考!
夜雨聆风