再学UML-Bug管理系统UML2.0建模实例(一)
1.项目概述
随着软件项目规模和复杂性的增大,有效跟踪和管理项目中存在的缺陷Bug变得越来越重要。每一个软件企业都需要妥善处理软件中的缺陷,这将直接关系到软件过程质量与软件产品质量,但并非所有的软件组织都知道如何有效地管理自己软件中的缺陷。在软件缺陷管理(Software Defect Management)中,软件缺陷的分类和管理非常重要,因此软件缺陷管理工具的开发和使用将在现代软件开发中发挥重要作用。本系列文章将使用UML2.0对Bug管理系统进行全程建模,该系统名为缺陷管理系统(Bug Management System, BMS),并按照软件工程的标准,提供一套完整的解决方案。
1.1 需求分析
一个完备的bug管理流程通常包括如下几个步骤,如图1-1所示:
图1-1是bug管理的最基本流程,而实际的bug管理要更加复杂,不同的步骤由不同的角色负责,如提交bug、验证修改后的软件是测试人员的工作,分析和定位bug以及修改相应的软件是分析设计人员以及开发人员的工作,在整个过程中项目经理还需要对bug信息进行统计和监控。在BMS的需求分析过程中,我们发现bug管理流程的某些步骤可以通过一个bug管理系统来完成,一方面可以提高bug的处理速度,另一方面便于对bug信息的跟踪与统计。
通过对bug管理流程和实际使用过程的需求分析,BMS系统基本需求如下:
(1) 系统预设管理员帐号为Admin,初始密码为Admin。BMS系统管理员在登录系统后可修改密码,系统管理员的主要工作包括增加相关人员初始信息,包括帐号、初始密码和项目角色,项目角色包括测试人员、开发组长、开发人员和项目经理;另外,系统管理员还可以删除人员信息。
(2) 其他用户在登录后方可使用该系统,除了帐号和项目角色外用户可以修改各项个人信息,包括真实姓名、联系电话和电子邮箱等。
(3) 测试人员可以利用BMS提交自己发现的bug信息,提交的信息包括bug类型、bug严重程度、bug发生的位置(如所处功能模块、测试界面的URL或名称等)、测试环境描述、使用的测试工具和版本信息、测试用例信息(包括测试数据、期望结果和实际结果等信息)、附加描述信息、附件(屏幕截图或录像等)等。测试人员将尽量填写完整这些信息以便最大程度帮助开发人员重现bug以便调试,在系统数据库中需要记录bug的状态。
(4) 测试人员将bug提交给开发组长,开发组长在查看bug信息之后可将bug分发给相关开发人员,系统可以记录开发组长的bug查看和分发情况。
(5) 开发人员可以登录系统查看bug详情,系统可以记录开发人员是否已查看bug详情。在对bug进行修复后,更新bug修复信息(修复内容、修复时间、修复人等),将更新的bug信息发送给测试人员,系统将修改bug的状态,然后通知测试人员以获取最新版本进行验证。
(6) 测试人员如验证无误,可关闭该bug;否则可重新返回开发人员修复。无论验证是否通过,测试人员需更新bug测试信息(测试结果、测试时间、测试人等)。
(7) 项目经理可以随时查看bug统计报告,对bug信息进行分类汇总与实时跟踪。
1.2 开发技术
本系统采用三层B/S结构进行开发,包括客户端浏览器层、Web服务器层和数据库服务器层,系统整体架构如图1-2所示:
图1-2 BMS整体架构
在实际部署和使用过程中,如果数据量较小,可以将Web服务器和数据库服务器合二为一。B/S结构具备部署和升级简单等优点,系统安装、修改和维护全在服务器端解决,用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块;同时B/S结构还提供了一种异种机、异种网联机、联网解决方案,开发团队与测试团队可以基于不同的操作系统平台和网络环境进行协同工作。
BMS系统开发技术包括:采用Java EE平台,使用MVC架构,运用JSP + Servlet + JavaBean等技术来实现系统功能,数据库采用MySQL,并使用Navicat 8 for MySQL对MySQL数据库进行可视化管理,服务器中间件使用Tomcat 6.5,开发工具使用MyEclipse 8.0。
2.系统分析
在BMS的系统分析阶段,我们使用了用例图、顺序图、状态图和活动图等UML图形构造系统的分析模型,对系统进行深入的分析,明确系统的开发目标,更好地回答了“做什么”的问题,各种图形相互补充,从不同的角度对系统进行全面的分析。通过使用UML方法,我们构造了系统的分析模型,具体分析工作如下:
2.1 用例模型
在BMS系统中,我们首先使用用户视图即用例图来将系统功能需求图形化,通过找出执行者与用例来明确和细化系统功能。
UML用例建模流程如图2-1所示:
图2-1 UML用例建模流程图
BMS的执行者包括系统管理员、开发组长、开发人员、测试人员和项目经理,每个执行者对应的功能有所差异。系统提供主要功能包括人员信息的管理和bug信息的管理,因此用例主要包括对人员信息和bug信息的增删改查等操作。
2.2 BMS用例图
通过对系统进行分析,BMS用例图如图2-2所示:
再学UML-Bug管理系统UML2.0建模实例(一)的更多相关文章
- 再学UML-Bug管理系统UML2.0建模实例(三)
3.系统设计 在对系统进行全面分析后,我们开始使用UML对系统进行设计,构造BMS系统的设计模型,包括类图.包图.顺序图(实现模型).组件图和部署图等的绘制,回答了“怎么做”的问题.具体设计工作如下: ...
- 再学UML-Bug管理系统UML2.0建模实例(二)
2.3 BMS顺序图(需求模型) 在UML中,我们将顺序图分为两类,一类用于描述系统需求,构造系统的需求模型(分析模型):另一类用于指导设计与实现,构造系统的实现模型(设计模型). ...
- 再学UML-Bug管理系统UML2.0建模实例(四)
3.3 顺序图(实现模型) 在系统设计与实现阶段我们也可以使用顺序图进行建模,此时通过顺序图可以明确表示系统设计中对象之间的交互,考虑到具体系统实现,对象之间通过方法调用传递消息.在BMS系统中,对每 ...
- C#人爱学不学9[C#5.0异步实例+WPF自己的MVVM Async应用 1/12]
文章摘要: 1. 通过简单DEMO.让读者理解Task和Task<T> 学习过程中,掌握async和await 2. 理解同步和异步的执行 3. Task.Factory.Start ...
- 你必须学UML之理论篇
1.前言 对于当前社会背景下从事软件开发的工作者而言,"写代码"实际上并不是唯一的工作.特别在一些中小型的企业当中,这些企业往往对于开发者的要求,不单单停留在写代码完成相应功能上, ...
- UML(Unified Modeling Language)统一建模语言
什么是模型 模型是对现实的简化 模型是提供系统的蓝图,模型可是包括详细计划.也可是是从更高程度考虑系统的总体计划,每个系统可以从不同的方面用不通过的模型来描述.因而每个模型都是在语义上闭合的抽象系统. ...
- 【总结】使用jdbc+servlet开发一个bug管理系统的经验总结
开发背景: 公司目前使用Teambition里面的task作为bug管理系统,既没有bug的当前状态,也不能写上bug的详细复现步骤,被assign了任务(该修复bug或者验证bug是否被修复)也没有 ...
- UML2.0最新版入门图解
一.UML概述 UML(UnifiedModelingLanguage)统一建模语言,是面向对象软件的标准化建模语言.由于面向对象软件开发需要经过OOA(面向对象分析),OOD(面向对象设计),OOP ...
- 开源Bug管理系统Redmine安装和使用心得
最终忍受不了公司使用论坛+Excel来进行bug反馈和管理工作了,于是花了一个上午时间研究了下bug管理系统.这样一个bug管理系统能够轻松的查看bug新增了哪些,攻克了哪些.当前是谁,要在什么时间解 ...
随机推荐
- oracle数据库修改密码
忘记了数据库的登录密码,oracle数据库无法登录了. 先删除原先的密码保存文件: del E:\oracle_app\Administrator\product\11.2.0\dbhome_1\da ...
- 【Python】小括号过滤后的盲注
0x00 环境搭建 sqli-labs第八关,简单修改下源代码,加入下面一行代码 $id=preg_replace('/\(|\)/', "",$id); //过滤小括号 0x ...
- 宽度优先搜索(BFS)— 20180909 - 20180917
BFS几类题: 1.图的遍历:a.层级遍历 b.由点及面 c.拓扑排序 2.简单图最短路径: 简单图:1.无向图 2.边权重一致 图的时间复杂度: N个点,M条边,M最大是N^2,时间复杂度O(N+M ...
- CSS媒体查询及其使用
1.什么是媒体查询 媒体查询可以让我们根据设备显示器的特性(如视口宽度.屏幕比例.设备方向:横向或纵向)为其设定CSS样式,媒体查询由媒体类型和一个或多个检测媒体特性的条件表达式组成.媒体查询中可用于 ...
- 2.Exadata 硬件体系结构
Exadata 硬件加构: 高性能,低成本 冗余 线性扩展 ,具有超强性能,开箱即用 例 2-2的满配: 8台数据服务器组成(2C 6核) (3-2是10核, 4-2,5-2 是12核 ...
- cotex_A7/A9:
A7与A9的比较:A7计算性能(DMIPS)不如A9(编号越大计算能力越强),但A7功耗更先进,作为A15的协处理器.A8是单核.
- spring开发中commons-logging.jar包的功能
删除后程序会报错 Java.lang.NoClassDefFoundError 记录日志,通常和 log4j.jar共同使用 原因: 在 sun 开发 logger 前,apache 项目已经开发了 ...
- React.js 小书 Lesson11 - 配置组件的 props
作者:胡子大哈 原文链接:http://huziketang.com/books/react/lesson11 转载请注明出处,保留原文链接和作者信息. 组件是相互独立.可复用的单元,一个组件可能在不 ...
- Java学习第二十一天
1:字符流(掌握) (1)字节流操作中文数据不是特别的方便,所以就出现了转换流. 转换流的作用就是把字节流转换字符流来使用. (2)转换流其实是一个字符流 字符流 = 字节流 + 编码表 (3)编码表 ...
- bzoj 4771: 七彩树
Description 给定一棵n个点的有根树,编号依次为1到n,其中1号点是根节点.每个节点都被染上了某一种颜色,其中第i个节 点的颜色为c[i].如果c[i]=c[j],那么我们认为点i和点j拥有 ...