软件工程概论

笔记

程序=代码+文档+服务

软件生命周期

  1. 可行性分析[可行,基本可行,不可行]

  2. 需求分析(做什么)

  3. 软件设计[概要设计,详细设计] (怎么做)

  4. 编码

  5. 测试

  6. 维护

瀑布模型

特点

顺序性和依赖性。推迟实现。质量保证。

优点

  • 文档规范
  • 阶段性验证

缺点

  • 只适用于需求明确
  • 客户参与度低

增量模型

特点

本质上是迭代的。

优点

  • 短时间提交可用产品
  • 降低风险
  • 优先级较高首先交付,逐次集成

快速原型模型

特点

简单UI界面可交互

优点

  • 满足用户需求
  • 适用需求不明确
  • 缩短开发周期:由于前期聚焦于核心功能构建原型,避免一开始就陷入复杂全面的开发,且后续可基于原型持续迭代,相对来说能加快整体开发进度,缩短软件从构思到可用的周期。
  • 降低风险:在早期就暴露一些潜在的问题,比如功能设计不合理、操作流程不顺畅等,便于及时调整,降低项目后期出现重大问题的风险,提高项目成功率。

喷泉模型

特点

面向对象:封装继承多态。自下而上无间隙。

优点

  • 同步开发

缺点

  • 管理难度大

螺旋模型

特点

适合大型复杂。风险估计与弱化。

优点

  • 风险控制
  • 灵活性

缺点

  • 风险驱动

结构化需求分析

功能建模

数据建模

行为建模

数据字典

体系结构设计

启发式设计

面向数据流设计

体系结构设计

黑盒测试

等价类划分法

边界值分析法

错误推测法

因果图法

白盒测试

静态、动态

V模型

用户需求-需求分析-概要设计-详细设计

编码

单元测试-集成测试-系统测试-验收测试

画图题

状态图P44

体系结构图

E-R图

流程图

数据流图

用例图

因果图

流图-环路复杂度V(G)-基本路径

本文作者:WindsorWu

本文链接: https://blog.nekolin.top/2025/01/04/Introduction-to-Software-Engineering/

文章默认使用 CC BY-NC-SA 4.0 协议进行许可,使用时请注意遵守协议。

评论

您所在的地区可能无法访问 Disqus 评论系统,请切换网络环境再尝试。