当前位置: 首页 > news >正文

软件工程(复习折磨题目版)

 本篇内所有的例子仅仅是为了形象理解知识点,没有任何其他含义

第一步:题目--知识点的GPS 

第一章

一、选择题(每题2分)

  1. 软件危机的核心表现不包括:
    A. 开发周期严重超期
    B. 用户满意度高
    C. 软件不可维护
    D. 文档资料缺失
    答案:B

  2. 瀑布模型最显著的特点是:
    A. 允许需求频繁变更
    B. 阶段间具有顺序性和依赖性
    C. 采用迭代开发
    D. 以原型驱动开发
    答案:B

  3. 软件维护类型中占比最高的是:
    A. 改正性维护
    B. 适应性维护
    C. 完善性维护
    D. 预防性维护
    答案:C

二、填空题(每空1分)

  1. 软件工程的两个经典定义分别由______年和IEEE提出。
    答案:1968

  2. 螺旋模型的四个象限是:制定计划、______、实施工程、客户评估。
    答案:风险分析

  3. 软件生命周期中,______阶段需要确定"目标系统必须做什么"。
    答案:需求分析

三、简答题(每题5分)

  1. 软件危机的三大根本原因
    答案:
    ① 软件本身复杂性高
    ② 开发方法不正确(如忽视需求分析)
    ③ 维护工作被轻视

  2. 瀑布模型与快速原型模型的本质区别
    答案:
    瀑布模型是文档驱动,强调阶段完整交付;
    原型模型通过快速构建可运行原型获取真实需求,原型可抛弃

四、案例分析题(10分)
某银行系统开发中,用户需求频繁变更,应选择哪种软件过程模型?说明理由。
答案:
推荐增量模型或敏捷开发。理由:
① 增量模型允许分阶段交付功能模块,降低需求变更风险
② 敏捷开发支持迭代式开发,通过短周期迭代快速响应需求变化
③ 二者都比瀑布模型更适应需求不稳定的场景

五、判断题(每题1分)

  1. 软件工程方法学三要素是方法、工具、过程(√)
  2. 第四代计算机已彻底解决软件危机(×)
  3. RUP是面向对象的标准开发过程(√)

(共30分基础题+10分提高题,覆盖80%核心知识点)建议重点掌握软件危机特征、生命周期阶段划分、过程模型对比、维护类型等高频考点。

接下来让我们用 ​费曼技巧 + 生活化比喻 + 图形化记忆​ 拆解每个知识点,保证你像听故事一样轻松掌握!🎯


一、软件危机:为什么程序员会秃头?

🧩 ​题目回顾

问题:软件危机的核心表现不包括什么?
答案:B(用户满意度高)

🌟 ​费曼拆解
  • 软件危机​ = 开发软件时遇到的灾难性局面(就像煮饭煮糊了,锅还炸了💥)
  • 核心表现
    • 📉 ​开发周期超期​(计划3个月,结果3年还没做完)
    • 💸 ​成本爆炸​(预算100万,最后花了1000万)
    • 🔧 ​软件难维护​(代码像一团乱麻,改一行崩全局)
    • 📚 ​文档缺失​(只有上帝看得懂代码,但他不接电话)
  • 为什么选B:用户满意度高是成功表现,危机全是负面问题!
🎨 ​图形记忆

https://cdn.pixabay.com/photo/2017/05/12/15/34/iceberg-2307253_1280.png
冰山理论:用户看到的功能缺失只是冰山一角,隐藏的代码腐烂、需求混乱才是大危机!)


二、瀑布模型:一步错,步步错?

🧩 ​题目回顾

问题:瀑布模型最显著特点?
答案:B(阶段间顺序依赖)

🌟 ​费曼拆解
  • 瀑布模型​ = 盖大楼🏗️
    • 必须按顺序施工:打地基→建框架→装修→验收(不能返工!)
    • 特点
      • 📝 ​文档驱动​(设计图必须完美)
      • ⛔ ​拒绝变更​(盖到10楼想改户型?不可能!)
🎨 ​图形记忆​(用自己的设备去看吧,目前没找到免费的&&我的钱包空空)
graph LR
A[需求分析] --> B[设计] --> C[编码] --> D[测试] --> E[维护]
style A fill:#FFD700,stroke:#333  
style E fill:#FF6347,stroke:#333  

箭头不可逆!测试阶段发现需求错误?全盘推翻重做!)

💡 ​对比原型模型
  • 原型模型​ = 搭乐高🧩
    • 快速拼个Demo给用户玩 → 收集吐槽 → 边拆边改 → 最终成品
    • 核心先行动,再修正​(适合需求模糊的项目)

三、软件维护:修bug还是加功能?

🧩 ​题目回顾

问题:哪种维护占比最高?
答案:C(完善性维护,占65%)

🌟 ​费曼拆解
  • 软件维护​ = 给汽车做保养🚗
    • 改正性维护:修漏油(紧急bug修复)
    • 适应性维护:换雪地轮胎(适配新环境,比如系统升级)
    • 完善性维护:加装全景天窗(用户想要更酷的功能!)
    • 预防性维护:提前换刹车片(防止未来出问题)
🎨 ​图形记忆
pie
    title 维护类型占比
    "完善性维护" : 65
    "适应性维护" : 20
    "改正性维护" : 10
    "预防性维护" : 5

用户永远想要更多功能!加功能才是大头~)


四、螺旋模型:打游戏存档闯关!

🧩 ​题目回顾

问题:螺旋模型的四个象限?
答案:风险分析

🌟 ​费曼拆解
  • 螺旋模型​ = 打Boss前存档🎮
    • 四步循环
      1️⃣ 制定计划(这关怎么打?)
      2️⃣ ​风险分析​(Boss有什么技能?药够吗?)
      3️⃣ 写代码(开打!)
      4️⃣ 客户评估(赢了没?不行就读档重来!)
🎨 ​图形记忆
graph LR
A[计划] --> B[风险分析] --> C[写代码] --> D[客户评估]
D -->|不满意| A
style B fill:#FFA07A,stroke:#333  

风险分析是核心!不分析风险?直接Game Over!)


五、需求分析:你究竟想要啥?

🧩 ​题目回顾

问题:哪个阶段确定"系统必须做什么"?
答案:需求分析

🌟 ​费曼拆解
  • 需求分析​ = 医生问诊👨⚕️
    • 灵魂三问
      1. 你现在哪里不舒服?(现有系统的问题)
      2. 你希望达到什么效果?(核心功能)
      3. 对什么药物过敏?(技术约束,比如必须用Java)
🎨 ​图形记忆
graph TD
用户 -->|吐槽| 需求分析 -->|输出| 需求文档
需求文档 -->|指导| 开发团队

需求文档是开发圣经!写错了?全员跑偏!)


六、敏捷开发:为什么程序员爱它?

🧩 ​题目回顾

案例题:需求频繁变更,选什么模型?
答案:增量模型或敏捷开发

🌟 ​费曼拆解
  • 增量模型​ = 拼装乐高城堡🏰
    • 分期交付:先拼主楼 → 再加花园 → 最后建塔楼
    • 优势:每次交付部分功能,减少变更影响
  • 敏捷开发​ = 每周更新版本🔄
    • 2周一个迭代 → 用户反馈 → 快速调整
    • 口号:拥抱变化!
🎨 ​图形记忆
graph TD
A[需求变更] --> B{选择模型}
B -->|需求稳定| C[瀑布模型]
B -->|需求多变| D[敏捷/增量]
style D fill:#90EE90,stroke:#333  

需求变更多?选绿色通道!)


七、判断题彩蛋

  1. 软件工程三要素 = 刀+锅+菜谱​(方法+工具+过程)✅
  2. ​软件危机已解决?​ ❌(只要有人写代码,就有危机!)
  3. ​RUP是面向对象?✅(RUP = 打怪升级路线图🗺️)

🎯 终极记忆法

  • 软件危机​ → 冰山图 🧊
  • 瀑布模型​ → 单向箭头 ➡️
  • 维护类型​ → 披萨图 🍕
  • 螺旋模型​ → 游戏存档 🎮
  • 需求分析​ → 医生问诊 🩺

现在你已经是软件工程知识点的小老师啦!快去教教自己的伙伴吧~ 🚀

第二章 

一、选择题(每题2分,共20分)

  1. 可行性分析的核心三要素是:
    A. 时间、质量、成本
    B. 经济、技术、社会环境和人
    C. 需求、设计、测试
    D. 硬件、软件、网络

答案:B

  1. 技术可行性分析的关键问题是:
    A. 能否盈利
    B. 能否在限定时间内实现功能
    C. 是否符合政策法规
    D. 是否需要外包开发

答案:B

  1. 系统流程图的主要作用是:
    A. 描述系统逻辑模型
    B. 展示信息流动和物理部件
    C. 定义数据处理规则
    D. 估算开发成本

答案:B

  1. 数据流图中表示"数据存储"的符号是:
    A. 矩形
    B. 箭头
    C. 双横线
    D. 椭圆

答案:C

  1. 成本效益分析中"纯收入"的计算公式是:
    A. 累计收益 × 利率
    B. 累计收益 - 投资成本
    C. 投资成本 / 年收益
    D. (收益 - 成本) / 成本

答案:B


二、判断题(每题2分,共10分)

  1. 数据字典只需定义数据流,无需定义数据元素。(×)
    解析:需定义数据流、数据元素、数据存储和处理。

  2. "系统流程图"与"数据流图"都用于描述逻辑模型。(×)
    解析:系统流程图描述物理系统,数据流图描述逻辑模型。


三、简答题(每题10分,共30分)

  1. 简述可行性研究的步骤
    答案
    ① 确定项目规模和目标
    ② 研究现有系统
    ③ 建立新系统逻辑模型
    ④ 导出评价方案
    ⑤ 推荐可行方案
    ⑥ 编写可行性报告

  2. 数据流图命名的三大原则
    答案
    ① 名称代表完整内容(非部分)
    ② 避免空洞词汇(如"数据")
    ③ 优先用"动词+宾语"结构(如"生成报告")


四、案例分析题(40分)

案例1:库存管理系统
根据系统流程图(图2.3):

  1. 指出"事务"的数据来源和去向

  2. 说明为何使用磁盘存储库存主文件

答案要点

  1. 来源:仓库终端输入;去向:库存清单程序处理

  2. 磁盘支持快速随机访问,适合频繁更新操作

案例2:考务处理系统
根据数据流图:

  1. 绘制"统计成绩"加工的1层DFD

  2. 写出"考生通知单"的数据字典条目

答案要点

  1. 分解为:检查成绩→审定合格→生成通知单

  2. 组成:学号+姓名+成绩+合格标志+日期


五、计算题(10分)

某系统开发成本50万,5年累计收益80万(年利率5%):

  1. 计算折现后总收益

  2. 判断是否值得投资

答案

  1. 折现收益=80/(1.05)^5≈62.09万

  2. 纯收入=62.09-50=12.09万>0,值得投资

接下来使用费曼技巧​(简单语言+生活类比+图形记忆)对第二章知识点的拆解,保证你像听故事一样轻松掌握! 🚀

一、可行性分析三要素:B选项为什么对?

🎯 ​核心概念

可行性分析就像 ​选结婚对象,要看三个硬指标:

  1. 经济:能不能养家?(开发成本 vs 收益)
  2. 技术:有没有能力解决问题?(技术能实现吗?)
  3. 社会环境和人:丈母娘同意吗?(法律/政策/用户习惯)
💡 ​记忆技巧
  • ​"钱、能、人"三个字口诀记住三要素
  • 对比错误选项
    • A选项(时间、质量、成本)是项目管理三角,不是可行性分析
    • C选项(需求、设计、测试)是开发阶段,不是可行性

二、技术可行性:为什么选B?

🎯 ​核心概念

技术可行性 = ​"能不能做到?"

  • 关键问题
    • 现有技术能否实现功能?(比如用Python写AI算法)
    • 团队是否有能力完成?(程序员水平够吗?)
    • 时间是否允许?(Deadline前能写完吗?)
💡 ​生活类比

就像你想 ​3个月学会弹钢琴,技术可行性要问:

  1. 有没有钢琴?(技术基础)
  2. 每天能练几小时?(开发资源)
  3. 三个月真的够吗?(时间限制)

三、系统流程图 vs 数据流图

🎨 ​图形对比
graph LR
A[系统流程图] -->|物理系统| B[展示硬件、人、文档流动]
C[数据流图] -->|逻辑模型| D[展示数据处理过程]
💡 ​记忆口诀
  • 系统流程图:**"看得见摸得着"**​(打印机、服务器、操作员)
  • 数据流图:**"抽象的信息加工厂"**​(数据如何被转换)
🚫 ​常见错误

判断题说两者都描述逻辑模型 → 错!系统流程图是物理的。


​四、数据流图符号:双横线是什么?

🎨 ​符号图例
graph TD
A[椭圆] --> 加工  
B[箭头] --> 数据流  
C[双横线] --> 数据存储  
D[矩形] --> 外部实体
💡 ​生活类比
  • 数据存储​ = ​冰箱​(双横线像冰箱层板)
    • 数据放进去(存)
    • 需要时拿出来(取)
🧠 ​记忆技巧

双横线 → ​"存储货架",比如数据库表、文件柜。


五、成本效益分析:纯收入公式

📈 ​公式拆解

纯收入 = 累计收益 - 投资成本
(比如开奶茶店:赚了100万 - 成本60万 = 纯收入40万)

💡 ​折现计算

为什么用利率?→ 钱会贬值!

  • 现在的100万 ≠ 5年后的100万
  • 折现公式:未来钱 ÷ (1+利率)^年数
📝 ​案例计算

题目中:
折现收益 = 80万 ÷ (1.05)^5 ≈ 62.09万
纯收入 = 62.09万 - 50万 = ​赚12.09万​(值得投资!)


​六、数据字典:不只是数据流!

🎯 ​核心概念

数据字典 = ​"数据百科全书",要定义:

  1. 数据流:流动的数据包(如"订单信息")
  2. 数据元素:数据包的组成部分(如"订单号")
  3. 数据存储:数据存放位置(如"订单数据库")
  4. 加工:数据处理逻辑(如"计算总价")
🚫 ​判断题陷阱

题目说"只需定义数据流" → 错!元素和存储都要定义。


七、可行性研究步骤:六步走

📌 ​步骤拆解
  1. 定目标:明确要建什么系统(比如开发外卖App)
  2. 看现状:研究现有解决方案(美团/饿了么有啥缺点?)
  3. 画蓝图:设计新系统逻辑模型(用数据流图表示)
  4. 找方案:列出可能的实现方式(自研/外包/买现成)
  5. 推最优:推荐最可行的方案(比如自研+云服务)
  6. 写报告:让老板拍板给钱!
💡 ​记忆口诀

"定看画找推写"→ 连起来像装修流程(定风格→看样板→画设计图→找施工队→推方案→写合同)


八、数据流图命名原则

📌 ​三大原则
  1. 完整描述:名称要概括全部内容

    • ✅ "生成月度销售报告"
    • ❌ "处理数据"(太模糊)
  2. 拒绝空洞:避免用"信息""数据"等泛泛词汇

    • ✅ "计算员工薪资"
    • ❌ "处理信息"
  3. 动宾结构:动词+宾语,明确动作对象

    • ✅ "验证用户身份"
    • ❌ "身份处理"
💡 ​生活类比

就像给文件命名:

  • ❌ "文档1" → 不知道内容
  • ✅ "2023年度财务预算表" → 清晰明确

九、案例分析:库存管理系统

🎯 ​数据来源与去向
  • 事务来源:仓库管理员用终端输入(比如扫码枪)
  • 事务去向:库存清单程序处理(更新库存数量)
💡 ​**为什么用磁盘存储?**​
  • 磁盘像 ​**"超市货架"**,支持快速存取(随机访问)
  • 对比磁带(只能顺序访问):库存要频繁更新,磁带太慢!

十、案例分析:考务系统DFD

🎨 ​统计成绩分解
graph TD
A[统计成绩] --> B[检查成绩完整性]
A --> C[审定合格标准]
A --> D[生成通知单]
📝 ​数据字典条目

考生通知单​ = 学号 + 姓名 + 成绩 + 合格标志 + 日期
(像快递单号:必须包含所有必要信息!)


🎁 终极记忆包

把知识点转化为 ​生活场景

  • 可行性分析 → 相亲三大条件
  • 数据流图 → 外卖订单流程图
  • 成本效益 → 开奶茶店算账

现在你可以闭上眼睛,想象自己在 ​开发一个小项目​(比如校园二手交易平台),用这些知识点一步步分析可行性啦! 🚀

 

 

 

 

相关文章:

  • 墨刀:Axure托管插件登录/注册时出现空白页
  • 解锁状态模式:Java 编程中的行为魔法
  • 什么限制了LLM:空间复杂度限制
  • 【人工智能】数据挖掘与应用题库(1-100)
  • 初阶数据结构(C语言实现)——2算法的时间复杂度和空间复杂度
  • HDFS数据多目录、异构存储、回收站
  • 方法的有关知识(含递归)
  • 爬虫反爬:CSS位置偏移反爬案例分析与实战案例
  • Tornado框架内存马学习
  • PyTorch 源码学习:GPU 内存管理之它山之石——TensorFlow BFC 算法
  • HarmonyOS学习第7天: 文本组件点亮界面的文字魔法棒
  • 【蓝桥杯】每天一题,理解逻辑(1/90)【Leetcode 移动零】
  • 【错误记录】Arrays.asList 的坑
  • 安装react报错
  • Vue 中,使用模板(Template) 和 Render 函数编写组件的区别
  • 数据存储:一文掌握RabbitMQ的详细使用
  • nginx 搭建 IPv6 -> IPv4 反向代理服务器
  • Python网络安全脚本
  • python生成的exe文件防止反编译(pyinstaller加密)
  • synchronized 底层实现原理
  • 新型算法助力听障人士听得更清晰
  • 国台办:提醒相关人员不要假借去第三地名义绕道赴台
  • 海口市政协党组成员、秘书长、机关党组书记汪娟被查
  • 国际锐评:菲律宾“狐假虎威”把戏害的是谁?
  • 辽宁省委书记郝鹏、省长王新伟赶到辽阳火灾事故现场指导善后处置工作
  • 中国人寿一季度净利润288亿增39.5%,营收降8.9%