UML实战-BUG管理系统

embedded/2024/9/25 8:03:57/

概述

根据 UML建模的过程来进行一个完整系统的设计–Bug 管理系统。下面是一个标注 UML 设计过程的参考。

  • 需求分析:用例图。
  • 系统分析:分析业务规则–状态图。
  • 系统分析:分析业务流程–活动图。
  • 系统设计:设计静态结构–类图和包图。
  • 系统设计:Action类被调用关系–序列图。
  • 系统设计:用户调用 Action类的过程–协作图。
  • 系统架构:组件图和部署图。
  • 编码实现。

一、需求分析:用例图

随着社会的蓬勃发展,软件行业的激烈竞争也日益明显,人们对软件的质量要求也越来越严格。软件测试作为保证软件质量的一种手段,也日益被软件开发商所重视,软件测试也是软件开发过程中不可缺少的组成部分,而软件测试过程中的 Bug 管理是软件测试的重要工作,是重中之中,因此对 Bug进行跟踪管理,确保每个被发现的缺陷都能够及时得到处理是测试工作的一项重要内容。

目前流行的 Bug管理系统已经有很多,例如,JRA、Bugzila、DotProject等,它们的管理核心都是系统的 Bug 的发布、分配、解决、检查的功能,这些功能由4种不同的参与者来完成:

  • 测试人员来新建 Bug。
  • 分配人员负责分配 Bug 给开发人员。
  • 开发人员负责解决 Bug,并报告给检查人员检查。
  • 检查人员负责检查 Bug,决定是否关闭。

根据上述需求,可以首先绘制出用例图,如图9-1所示。
在这里插入图片描述
该图从系统用户的角度展示了系统应该提供的功能。

二、系统分析:分析业务规则–状态图

Bug 管理系统的核心是业务规则–Bug的状态变更。通常的Bug 状态包括如下几种。

  • Unassigned–未分配状态:新建的Bug 处于该状态,任何需要重新分配的 Bug 都可以转换到该状态,该状态的 Bug 如果是不必要的可以直接关闭。
  • Resolving–正在解决中:表示该 Bug 被分配给了开发人员正在进行解决,如果发现该 Bug不是自己的任务,可以重新分配;如果解决了Bug则可以设置为解决状态。
  • Resolved–已解决状态:表示该Bug已经被解决,如果审查人员发现该Bug依然存在,则可以返回给修改人继续解决;如果发现需要分配,可以返回未分配状态;如果已经没有问题了,则可以关闭。
  • Closed–关闭状态:表示该Bug已经解决,或者不再需要解决。

其状态转换如图 9-2 所示。


http://www.ppmy.cn/embedded/47330.html

相关文章

opencv 通过滑动条调整阈值处理、边缘检测、轮廓检测、模糊、色调调整和对比度增强参数 并实时预览效果

使用PySimpleGUI库创建了一个图形用户界面(GUI),用于实时处理来自OpenCV摄像头的图像。它允许用户应用不同的图像处理效果,如阈值处理、边缘检测、轮廓检测、模糊、色调调整和对比度增强。用户可以通过滑动条调整相关参数。 完整代码在文章最后,可以运行已经测试; 代码的…

跨语言系统中的功能通信:Rust、Java、Go和C++的最佳实践

在现代软件开发中,使用多种编程语言构建复杂系统已成为一种常见的做法。每种编程语言都有其独特的优势和适用场景,这使得在同一个系统中使用多种语言变得合理且高效。然而,这也带来了一个重要的挑战:如何在这些不同语言之间实现高…

STM32F103单片机工程移植到航顺单片机HK32F103注意事项

一、简介 作为国内MCU厂商中前三阵营之一的航顺芯片,建立了世界首创超低功耗7nA物联网、万物互联核心处理器浩瀚天际10X系列平台,接受代理商/设计企业/方案商定制低于自主研发十倍以上成本,接近零风险自主品牌产品,芯片设计完成只…

STM32高级控制定时器(STM32F103):TIM1和TIM8介绍

目录 概述 1 认识TIM1和TIM8 2 TIM1和TIM8的特性 3 TIM1和TIM6时基和分频 3.1 时基单元 3.2 预分频 3.3 时基和分频相关寄存器 3.3.1TIMx_CR1 3.3.2 TIMx_PSC 概述 本文主要介绍STM32高级定时器TIM1和TIM8的功能,还介绍了与之相关的寄存器的配置参数。包括…

HarmonyOS(30) @LocalStorageLink使用指南

这里写目录标题 LocalStorageLink。使用示例参考资料 LocalStorageLink。 LocalStorage是页面级的UI状态存储,通过Entry装饰器接收的参数可以在页面内共享同一个LocalStorage实例。而LocalStorageLink则是LocalStorage 相关装饰器之一。LocalStorageLink装饰的变量…

易于上手的requests

Python中的requests库主要用于发送HTTP请求并获取响应结果。在现代网络编程中,HTTP请求是构建客户端与服务器之间通信的基础。Python作为一种高级编程语言,其丰富的库支持使得它在网络数据处理领域尤为突出。其中,requests库以其简洁、易用的…

HTML下雪/烟花

文章目录 一、雪花二、烟花 一、雪花 <div id"snow"></div>body {margin: 0;background: #333; } body #snow {height: 100vh;overflow: hidden;position: relative;/*** Defaults**/--size: 1;--fallDuration: 10s;--swayDuration: 0.8s;--fallSlideSt…

HashMap第3讲——JDK1.8红黑树细节

上篇文章对HashMap的put方法进行了源码解析&#xff0c;并介绍了其中的两个亮点设计——位运算取代%和扰动计算。其中还有几个细节&#xff0c;比如每次扩容都是2^n是怎么做到的、JDK1.8增加的红黑树结构&#xff0c;由于篇幅原因没有介绍&#xff0c;本节就先来介绍其中的一个…