案例分析技巧-软件工程

一、考试情况

  • 需求分析(※※※※)
  • 面向对象设计(※※)

 二、结构化需求分析

数据流图

数据流图的平衡原则

数据流图的答题技巧

  • 利用数据平衡原则,比如顶层图的输入输出应与0层图一致
  • 补充实体
    • 人物角色:客户、管理员、学生、老师
    • 组织机构:银行、供应商
    • 外部系统:银行系统、工资系统
  • 补充存储:例如**文件,**表,**库,**清单,**档案
  • 补充加工:找“动词+名词”的结构,分析是否可作为加工的,如生成报告、发出通知等

 三、UML图

静态图(结构图):类图、对象图、构件图、部署图、制品图、包图、组合结构图

动态图(行为图):用例图、顺序图、通信图、状态图、活动图、定时图、交互概览图

(1)用例图:描述一组用例、参与者以及它们之间的关系;用户角度描述系统功能;参与者是外部触发因素(用户、组织、外部系统、时间);用例是功能单位

(2)用例关系

  • 包含关系:将两个或两个以上的用例中提取公共行为时,应该使用包含关系来表示它们,包含关系必然
  • 扩展关系:如果一个用例明显地混合了两种或两种以上的不同环境,即根据情况可能发生多种分支,则可以将这个用例分为基本用例和一个或多个扩展用例。扩展关系可选
  • 泛化关系:当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象为父用例,其他的用例作为泛化关系中的子用例。泛化关系是一个父子关系

       

用例规约包括用例名称、用例ID、角色、用例说明、前置条件、基本事件流、其他事件流、异常事件流和后置条件。

类图:类图描述一组类、接口、协作和它们之间的关系。

对象图:对象图描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。

该图的解释:一本书籍对应0或1条借阅记录

多重度

  • 1:表示一个集合中的一个对象对应另一个集合中一个对象
  • 0..*:表示一个集合中的一个对象对应另一个集合中的0个或多个对象
  • 1..*:表示一个集合中的一个对象对应另一个集合中的一个或多个对象
  • *:表示一个集合中的一个对象对应另一个集合中的多个的对象

关系

顺序图(序列图)

顺序图是一个交互图,它强调了对象之间消息发送的顺序,同时显示对象之间的交互

通信图(协作图)

通信图是交互图,它强调对象之间存在的消息收发关系,而不专门突出这些消息发送的时间消息

状态图:是对类描述的补充。用于展现此类对象所具有的可能状态,以及某些事件发生时其状态转移情况。

活动图

活动图里的节点表示是活动,状态图的节点表示的是状态

活动图的黑线表示两条路径可以并行执行的

泳道代表角色

定时图(交互图):也是交互图,用于展示交互过程中的真实时间信息,具体描述对象状态变化的时间点以及维持特定状态的时间段。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/355299.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

初识K8S(Kubernetes )

一、概述 Kubernetes 是一个可移植、可扩展的开源平台,用于管理容器化的工作负载和服务,可促进声明式配置和自动化。 Kubernetes 拥有一个庞大且快速增长的生态,其服务、支持和工具的使用范围相当广泛。(官网) Kuberne…

Navicat连接Oracle时报错ORA-28547:完美解决

先用你的IDEA或者别人的连接到oracle数据库(为了查询版本) 查询版本SQL:select * from v$version; 引入对应的oci.dll文件 链接:https://pan.baidu.com/s/1volkj328Ttm-Mt0Grt1X4g 提取码:3d5f 进行下载 在Navicat配…

类和对象 第五部分第三小节:递增运算符重载

作用&#xff1a;通过重载递增运算符&#xff0c;实现自己的整型数据递增 代码案例 1.重载前置运算符 #include <iostream> #include <string> using namespace std;class MyInteger {friend ostream& operator<<(ostream& out, const MyInteger&…

【详解】贪吃蛇游戏----下篇(完整源码)

目录 引入&#xff1a; 本片文章目的&#xff1a; 整个游戏的实现流程图如下&#xff1a; 游戏实现 GameRun PrintHelpInfo Pause NextIsFood printSnake EatFood NoFood KillByWall KillBySelf GameRun GameEnd 总代码&#xff1a; &#xff08;1&#xff09…

Nestjs 全局拦截器

一、拦截器 拦截器作用&#xff1a; 在函数执行之前、之后绑定额外的逻辑转换函数的返回结果转换从函数抛出的异常扩展基本函数的行为根据所选条件重写函数 期望接口返回一个标准的json格式&#xff0c;利用拦截器对数据做全局的格式化 {code: "200",data: [],mess…

Go map 读写性能优化 - 分片 map

基本在所有的编程语言中&#xff0c;都有 map 这种数据结构&#xff0c;Go 语言也不例外。 我们知道 Go 是一门对并发支持得比较好的语言&#xff0c;但是 map 并不支持并发读写。 比如&#xff0c;下面这种写法是错误的&#xff1a; var m make(map[int]int) var wg sync.Wa…

GIS应用水平考试一级—2009 年度第二次

全国信息化工程师——GIS应用水平考试 2009 年度第二次全国统一考试一级 试卷说明: 1、本试卷共9页,6个大题,满分150 分,150 分钟完卷。 2、考试方式为闭卷考试。 3、将第一、二、三題的答案用铅笔涂写到(NCIE-GIS)答题卡上。 4、将第四、五、六题的答案填写到主观题答题卡上…

通俗易懂理解MobileNet网络模型

温故而知新&#xff0c;可以为师矣&#xff01; 一、参考资料 详细且通俗讲解轻量级神经网络——MobileNets【V1、V2、V3】 MobileNet v1 和 MobileNet v2 二、MobileNet v1 原始论文&#xff1a;[1] MobileNet网络详解 【深度学习】轻量化CNN网络MobileNet系列详解 Mo…

ThreadLocal学习笔记

ThreadLocal类图 ThreadLocal/InheritableThreadLocal/ \TransmittableThreadLocal(阿里巴巴) TransmissibleThreadLocal(阿里巴巴)ThreadLocal 这是Thread类的局部变量&#xff0c;每个线程私有。 它主要用于解决多线程中的数据共享问题&#xff0c;保…

Dubbo框架注册中心-Zookeeper搭建

Dubbo 是阿里巴巴公司开源的高性能、轻量级的Java RPC框架&#xff0c;致力于提供高性能。 Dubbo官网 本篇开始dubbo的第一篇&#xff0c;注册中心 ZooKeeper 环境搭建。 环境前置&#xff1a;由于Zookeeper是基于Java环境&#xff0c;必须安装有JDK。查看命令 java -version。…

【Redis】Redis有哪些适合的场景

&#x1f34e;个人博客&#xff1a;个人主页 &#x1f3c6;个人专栏&#xff1a;Redis ⛳️ 功不唐捐&#xff0c;玉汝于成 目录 前言 正文 &#xff08;1&#xff09;会话缓存&#xff08;Session Cache&#xff09; &#xff08;2&#xff09;全页缓存&#xff08;FPC…

Element-Plus如何实现表单校验和表单重置

一&#xff1a;页面布局介绍&#xff1a; 这是我刚刚用基于vue3element-plus写好的一个部门管理的页面 基本的增删改查已经写好&#xff0c;下面我只提供页面的template和style的代码&#xff1a; template <template><el-card class"box-card"><…

【Javaweb程序设计】【C00165】基于SSM的高考志愿辅助填报系统(论文+PPT)

基于SSM的高考志愿辅助填报系统&#xff08;论文PPT&#xff09; 项目简介项目获取开发环境项目技术运行截图 项目简介 这是一个基于ssm的高考志愿辅助填报系统 本系统分为前台系统模块、后台管理员模块以及后台学生模块 前台系统模块&#xff1a;当游客打开系统的网址后&…

CMMI、SPCA、CSMM,三种认证的差异有哪些?

在当今的企业环境中&#xff0c;体系认证已经成为了一个重要的议题。其中&#xff0c;CMMI、SPCA和CSMM是三种广泛使用的认证&#xff0c;它们在各自领域内具有特定的目标和要求&#xff0c;今天擎标就带大家了解一下这三种认证之间的差异。 CMMI、CSMM和SPCA分别是什么 1、C…

[BUUCTF]-PWN:pwnable_hacknote解析

先看保护 32位&#xff0c;没开pie&#xff0c;got表可修改 看ida 总的来说就是alloc创建堆块&#xff0c;free释放堆块&#xff0c;show打印堆块内容 但alloc处的函数比较特别&#xff0c;他会先申请一个0x8大小的堆来存放与puts相关的指针 完整exp&#xff1a; from pwn …

Qt6入门教程 13:QPushButton

目录 一.QPushButton 1.多选 2.互斥 3.设置菜单 4.图标按钮 4.1给按钮添加图标 4.2异形按钮 二.设置Qt样式表 一.QPushButton QPushButton是与QAbstractButton最接近的完全体按钮&#xff0c;它具备QAbstractButton的所有特性&#xff0c;并且支持设置菜单。 1.多选 …

【GAMES101】Lecture 09 纹理贴图 点查询与范围查询 Mipmap

目录 纹理贴图 纹理放大-双线性插值 点采样纹理所带来的问题 Mipmap 各向异性过滤 纹理贴图 我们在之前的着色里面说过如何给物体上纹理&#xff0c;就是对于已经光栅化的屏幕点&#xff0c;就是每个像素的中心&#xff0c;去寻找对应纹理的映射位置的纹理颜色&#xff0…

代码随想录刷题笔记-Day13

1. 二叉树的层序遍历 102. 二叉树的层序遍历https://leetcode.cn/problems/binary-tree-level-order-traversal/层次遍历依靠队列的先进先出特点实现。 解题思路 层序遍历的本质就是对每一个pop出来的处理节点&#xff0c;处理后把他的左右节点放进去。 对于每一层来说&…

【JavaScript 基础入门】01 编程语言和计算机基础

编程语言和计算机基础 目录 编程语言和计算机基础1 - 编程语言1.1 编程1.2 计算机语言1.3 编程语言1.4 翻译器1.5 编程语言和标记语言区别1.6 总结 2 - 计算机基础2.1 计算机组成2.2 数据存储2.3 数据存储单位2.4 程序运行 1 - 编程语言 1.1 编程 编程&#xff1a; 就是让计算…

BGP:03 BGP路由

这是实验拓扑&#xff0c;IBGP 利用环回口建立邻居&#xff0c;IGP 协议为 OSPF&#xff0c; EBGP 通过物理接口建立邻居 基本配置&#xff1a; R1: sys sysname R1 int loop 0 ip add 1.1.1.1 24 int g0/0/0 ip add 192.168.12.1 24 qR2: sys sysname R2 int loop 0 ip ad…