乐于分享
好东西不私藏

软件工程基础知识 - 第二周复习

软件工程基础知识 - 第二周复习

软件工程基础知识

📚 上期回顾:Week1我们学习了系统架构设计理论与方法,包括架构风格、架构模式、4+1视图等核心概念。


本周核心考点

考点1:软件工程定义与目标 ⭐⭐

软件工程是指为了获得软件产品,在软件工具的支持下由软件工程师完成的一系列工程活动。

活动
说明
软件规格说明
规定软件的功能及其运行时的限制
软件开发
开发出满足规格说明的软件
软件确认
确认开发的软件能否满足用户的需求
软件演进
软件在运行过程中不断改进以满足客户新的需求

考点2:传统开发模型 ⭐⭐⭐⭐

🔨 瀑布模型(Waterfall)⭐⭐⭐⭐

最早使用的软件过程模型之一,工作流在形式上很像瀑布。

特点
说明
因果关系紧密相连
前一个阶段的输出结果是后一个阶段的输入
严格串行化
用户需要相当长的时间才能看到可看得见的软件系统

优点

  • • ✅ 阶段性清晰,易于管理
  • • ✅ 适合需求稳定的项目
  • • ✅ 文档驱动,便于审计

缺点

  • • ❌ 不适应需求变化
  • • ❌ 后期发现问题代价大
  • • ❌ 客户难以看到中间结果

适用场景:需求明确、项目周期长的大型项目


🔄 V模型 ⭐⭐⭐

瀑布模型的一种变体,强调了开发阶段与测试阶段之间的对应关系。

左侧(开发)
右侧(测试)
需求分析
验收测试
概要设计
系统测试
详细设计
集成测试
编码
单元测试

特点

  • • 强调测试与开发的对应关系,保障产品质量
  • • 缺乏灵活性,需求变更时需回溯到修改的前期阶段

🚀 原型模型 ⭐⭐⭐

又称快速原型,包含两个阶段:原型开发阶段和目标软件开发阶段。

优点
缺点
能快速明确模糊需求,避免后期大量返工
容易陷入无休止的需求蔓延
降低需求风险
原型可能被误当做最终产品,导致质量隐患

🌀 螺旋模型 ⭐⭐⭐

在快速原型的基础上扩展而来,是生命周期模型和原型模型的结合。

四个阶段

  1. 1. 制定计划
  2. 2. 风险分析
  3. 3. 开发实施
  4. 4. 评审

特点

  • • ✅ 兼容风险管控和迭代开发,适合大型复杂高风险项目
  • • ❌ 流程化复杂,成本高昂,对风险评估能力要求极高

📦 增量模型 ⭐⭐⭐

将软件系统分解为多个独立的、可交付的"增量"或"模块"。

特点

  • • 每个增量都经历完整的开发周期
  • • 按优先级顺序依次交付给用户

优点

  • • ✅ 快速交付核心功能,用户可早期使用并反馈
  • • ✅ 降低整体项目风险

缺点

  • • ❌ 若初期架构设计不佳,后续增量集成时易引发兼容性问题

🔁 迭代模型 ⭐⭐⭐

将软件开发过程划分为一系列短暂的、固定的"迭代周期"。

特点

  • • 通过返回优化逐步逼近最终需求
  • • 能灵活应对需求变化

优点

  • • ✅ 灵活应对需求变化
  • • ✅ 提升产品质量

缺点

  • • ❌ 项目周期和成本难以精准控制
  • • ❌ 易因反复修改导致进度延迟

考点3:RUP统一过程模型 ⭐⭐⭐

RUP是一种软件工程方法,描述了如何有效地开发和部署软件。

9个核心工作流

分类
工作流
核心工程流
业务建模、需求、分析与设计、实现、测试、部署
支持流
配置与变更管理、项目管理、环境

4个连续阶段

阶段
说明
初始
确定项目范围和边界
细化
架构设计和技术选型
构造
迭代开发,实现系统
移交
测试、部署、交付

3大特点

  1. 1. 用例驱动:以用例为中心进行开发
  2. 2. 以体系结构为中心:强调架构设计
  3. 3. 迭代和增量:分阶段迭代交付

🧩 4+1视图模型

视图
关注者
说明
用例视图
分析人员、测试人员
系统的行为
逻辑视图
最终用户
系统的功能
实现视图
程序员
系统的配置、装配
进程视图
系统集成人员
性能、可伸缩性、吞吐量
部署视图
系统工程师
系统的发布、安装、拓扑结构

考点4:能力成熟度模型(CMMI)⭐⭐⭐⭐

等级
名称
特点
考频
1
初始级
过程随意、不可预测
2
已管理级
过程项目级管理,有基本项目管理
⭐⭐⭐
3
已定义级
过程组织级标准化
⭐⭐⭐⭐
4
量化管理级
过程量化管理,建立产品质量目标
⭐⭐⭐
5
持续优化级
过程持续改进,创新式改进
⭐⭐⭐⭐

考点5:净室软件工程 ⭐⭐

净室软件工程是一种应用数学模型和统计学理论以经济的方式生成高质量软件的工程技术。

理论基础

  • • 函数理论
  • • 抽样理论

技术手段

  • • 统计过程控制下的增量式开发
  • • 基于函数的规范与设计
  • • 正确性的验证
  • • 统计测试

缺点

  • • ❌ 太理论化
  • • ❌ 开发小组不进行传统的模块测试,这是不现实的
  • • ❌ 脱胎于传统工程,不可避免带有传统软件工程的一些弊端

📝 本周复习建议

  1. 1. ✅ 掌握瀑布模型:特点、优缺点、适用场景
  2. 2. ✅ 理解V模型:开发与测试的对应关系
  3. 3. ✅ 熟悉各模型区别:瀑布、增量、迭代、螺旋
  4. 4. ✅ 记忆RUP:9个工作流、4个阶段、3大特点、4+1视图
  5. 5. ✅ 背诵CMMI 5个等级:从初始到持续优化

🔔 下次预告

下次我们将学习软件工程中的需求工程,包括:

考点
核心内容
需求工程概述
需求分离、需求开发、需求管理
需求获取与分析
需求获取、分析、定义和验证
结构化需求分析
三大模型(数据流图、状态转换图、E-R图)
面向对象需求分析
用例模型(三种关系)、分析模型(六种关系)、UML图、UML4+1视图

关注「小码哥」公众号,每周一个核心考点,陪你高效备考!