news 2026/5/1 7:08:30

软件工程期末考试-数据流图、状态图、用例图、类图等怎么画?

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
软件工程期末考试-数据流图、状态图、用例图、类图等怎么画?

分类

  1. 概念问答
  2. 数据流图
  3. 软件结构图
  4. 状态图
  5. 流程图,盒图,pad图
  6. 白盒测试/黑盒测试
  7. 用例图
  8. 类图
  9. 事件跟踪图
  10. 项目管理概念问答

1)概念问答

  1. 什么是软件工程

    1. 把系统的、规范的途径应用于软件开发和维护过程,也就是把工程应用于软件
    2. 研究上面提到的途径
  2. 什么是软件危机:是指在计算机软件的开发和维护过程中所遇到的一系列严重问题

  3. 软件危机的表现

    1. 对于软件开发的成本和进度评估不准确
    2. 开发的软件产品不能完全满足用户的要求
    3. 软件可靠性低
    4. 软件没有适当的文档
    5. 软件可维护性差
    6. 软件开发速度跟不上计算机应用发展的趋势
  4. 软件危机的原因

    1. 软件的规模愈发庞大
    2. 软件开发管理困难
    3. 软件本身的独有特点给开发和维护造成困难
    4. 软件开发技术落后
    5. 开发工具落后,生产率提高缓慢
  5. 怎么用软件工程消除软件危机

    1. 对计算机软件有一个正确的认识(软件≠程序)
    2. 必须充分认识到软件开发不是个体劳动,而是一种组织良好、管理严密的工程项目
    3. 推广使用实践中总结出来的开发软件的成功技术和方法
    4. 开发和使用更好的软件工具
  6. 软件的生命周期

    1. 可行性研究
    2. 需求分析
    3. 概要设计
    4. 详细设计
    5. 编码
    6. 测试和维护
  7. 软件的生命周期模型

    1. 瀑布模型:线性的,以文档为驱动,适合需求明确的项目开发的模型
    2. 原型模型:借助一些开发工具与环境,尽量快地简化开发模型
    3. 增量模型:开发中用户可以看到部分软件功能,发现问题并且及时解决问题
    4. **螺旋模型:**适用大型系统、高风险的软件开发
    5. 喷泉模型:面向对象的软件开发方法为基础,以用户需求为动力
    6. 迭代模型:
  8. 需求分析的特点

    1. 需求易变性
    2. 问题复杂性
    3. 交流障碍:软件系统专家与用户
    4. 问题陈述的不一致性
  9. 怎样与用户有效的沟通以获取用户的真实需求

    1. 初步需求获取,通过访谈与会议、问卷调查、观察用户工作流程等方法
    2. 面向数据流,自上向下求精

2)数据流图

数据流图的四种符号:

例题:

答案:

简记:

方框:对象

圆框:程序的处理,有标号1, 2, 3

箭头:对应程序处理的操作

数据存储:类似一个横着的A方框

3)软件结构图

简记:

软件结构图就是树状结构,从最上一级的系统本身,逐层向下扩展

主要模块:

第一层:系统本身

第二层:信息输入、信息输出、具体功能模块

第三层:各种角色在以上模块的操作

4)状态图

题目:

描述:题目会给出一个系统的一些场景,然后要求你为这个系统的核心实体类进行分析状态图

答案:

简记:

  1. 先标记出这个实体类的所有场景与其操作
  2. 然后分析这个实体类的各种状态(比如新商品、上下架、在购物车、被下单)
  3. 用箭头来把这些状态连起来,同时用自旋箭头表示一些crud操作

5)流程图,盒图,pad图

描述:给出一段伪代码,根据代码画出流程图,盒图,PAD图

流程图

开始、结束:椭圆,分别在最上、最下面

If、Else判断:菱形,分出yes,no

赋值操作:方框

循环:看下图

盒图

整体格式:一个大框

顺序:从上到下

If、Else判断:三个三角形,左边Ture右边False

循环:左上角条件,右下角内容

PAD图

整体格式:左边一条竖线

顺序:从上到下

If、Else判断:如图,分为Y、N

循环:如图,条件写大框里,右边连内容

题一:画流程图和盒图

题二:画盒图(N-S图)

题三:画盒图、PAD图

6)白盒测试/黑盒测试

  1. 黑盒测试法
    1. 概念:完全不考虑程序的内部结构和处理流程,只在软件的界面上进行测试,来验证软件功能的可操作性
    2. 任务:
      1. 检查是否有不正确或遗漏的功能
      2. 验证是否能处理合理、不合理的数据,并产生正确的响应
      3. 检查访问外部信息是否有错
      4. 性能是否满足要求
      5. 检查系统初始化和终止错误

  1. 白盒测试法

    1. 概念:测试人员了解程序的内容、架构和处理流程,对程序尽可能多的逻辑路径进行测试,校验内部控制结构和数据是否符合预期
    2. 覆盖标准:
      1. 语句覆盖:每条语句至少执行一次
      2. 判定覆盖:每个判定的每个分支至少执行一次
      3. 条件覆盖:每个判定条件应该取到各种可能的值
      4. 条件组合覆盖:每个判定条件的每个组合至少出现一次
      5. 判定/条件覆盖:同时满足判定覆盖和条件覆盖
      6. 路径覆盖:程序中每一条可能的路径至少执行一次
  2. 等价类划分:

    1. 概念:是选择测试子集的方法,它将输入的数据域按有效的、无效的划分为若干个等价类,认为测试等价类的代表值的结果就是该类其他值的结果
  3. 边界值分析:

    1. 概念:边界值是指输入等价类或输出等价类边界上的值
    2. 必要性:实践经验表明,程序往往在处理边界情况时发生错误,所以检查边界情况的测试用例是比较高效的
  4. 错误推测:

    1. 概念:根据经验或直觉推测程序中可能存在的各种错误,从而针对性地编写检查这些错误地测试用例

7)用例图

题目:

答案:

系统:包括各种大功能,指向这些功能的多个子功能

系统相关角色:各角色与大功能绑定,用箭头指向大功能

8)类图

类图概念:

从上到下:类名,属性,方法(add, update, remove, query)

类图中,类的连接方式:箭头


题目:

题目(不规范,感觉应该按照上面格式来画):

9)事件跟踪图

题目:


答案:

解释:所谓"事件跟踪",就是针对实体的一个操作,进行具体的流程的划分

构图:竖线为该操作到达的层次,横线从上到下反应了实体在多个子操作的时间关系和前后顺序

10)项目管理概念问答

  1. 软件管理的对象

    1. 高级管理者:负责确定软件的问题
    2. 项目技术管理者:管理软件开发人员
    3. 开发人员:软件开发技术人员
    4. 客户:负责说明软件需求的人员
    5. 最终用户:最终适用软件的人员
  2. 软件开发中的资源

    1. 人员:人力资源是最重要的资源
    2. 硬件/软件资源:作为开发工具投入
    3. 可复用构件资源:如软件包
  3. 项目管理过程

    1. 启动一个软件项目
    2. 成本估计
    3. 风险分析
    4. 进度安排
    5. 追踪和控制

11)[额外]E-R图

E-R图概念:

构成:主要分为三个部分

关系:


题目:

答案:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/28 10:06:57

AI应用层革命(七)——智能体的终极形态:认知循环体的诞生

AI应用层革命(七)——智能体的终极形态:认知循环体的诞生本文为《AI应用层革命》系列第七篇,承接前六篇对智能体自主演化、伦理边界与法律框架的系统性探讨。本篇将深入剖析智能体发展的终极方向——认知循环体(Cognit…

作者头像 李华
网站建设 2026/4/27 1:39:33

背单词项目

1.v1(第一版比较简陋,反正也是先实验):首先,创建随机对象和有获取功能的对象接着,创建字符串数组存入单词和相应的中文最后就是背单词软件的逻辑,先学习一下其中具体的方法:nextInt:…

作者头像 李华
网站建设 2026/5/1 5:05:18

15、UNIX内核基础与配置详解

UNIX内核基础与配置详解 1. 为何要了解UNIX内核 在日常系统管理工作中,如添加用户、运行作业、打印文件、执行备份恢复,甚至开关机等操作,似乎不需要深入了解UNIX内核。但实际上,如果从不添加硬件、不调整系统以提升性能,确实无需过多了解内核。然而,在多年的系统管理经…

作者头像 李华
网站建设 2026/4/18 5:04:45

基于改进YOLO13-C3k2-WDBB的石棉类型识别与检测系统详解

1. 基于改进YOLO13-C3k2-WDBB的石棉类型识别与检测系统详解 1.1. 系统概述 石棉作为一种常见的建筑材料,由于其优良的绝缘、防火和耐腐蚀性能,曾广泛应用于建筑、工业和船舶等领域。然而,石棉纤维被吸入人体后可能导致严重的健康问题&#…

作者头像 李华
网站建设 2026/4/18 15:16:13

用带头节点的链式存储实现栈的操作

1.栈是一种只能在一端进行插入和删除的线性表2.先构建一个数据类型,里面有next,data,top(可有可无)typedef struct LNode {int top;//初始化的时候top等于-1,只有有数据就让top1,这个数据项可有可无struct LNode* next;//和单链表一样int dat…

作者头像 李华