再学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新增了哪些,攻克了哪些.当前是谁,要在什么时间解 ...
随机推荐
- 获取url路径的正则
package unit; import java.util.regex.Matcher; import java.util.regex.Pattern; public class Util { // ...
- springLdap 操作ldap示例(增删改查)
转自:http://blog.csdn.net/sundenskyqq/article/details/9002440 这部分的示例网上的确有很多,但是个人在查找的过程中还是感到不够满意,所以就自己总 ...
- scrapy框架的另一种分页处理以及mongodb的持久化储存以及from_crawler类方法的使用
一.scrapy框架处理 1.分页处理 以爬取亚马逊为例 爬虫文件.py # -*- coding: utf-8 -*- import scrapy from Amazon.items import ...
- 【研究】CVE-2017-11882-Office远程代码执行漏洞复现
实验环境:win10+kali 工具:koadic,Command43b_CVE-2017-11882.py KALI: root@kali:/opt/koadic-master# ./koadic ...
- python爬虫之User-Agent用户信息
python爬虫之User-Agent用户信息 爬虫是自动的爬取网站信息,实质上我们也只是一段代码,并不是真正的浏览器用户,加上User-Agent(用户代理,简称UA)信息,只是让我们伪装成一个浏览 ...
- web前端css定位position和浮动float
最近做了几个项目:配资公司,ecmal商城等,客户对前台要求都很高.所以,今天来谈谈css的基础,以及核心,定位问题. div.h1或p元素常常被称为块级元素.这意味着这些元素显示为一块内容,即“块框 ...
- input 标签和a标签实现超链接的区别
a 标签和 input 标签都可以做链接点击的.代码: ------------------------------------------------------------------------ ...
- windows下openssl config failed
老大让我们去学学webpack, 我在一开始就遇到了坎, 调侃自己"webpack从入门到放弃", 在windows下, 报错是"openssl config faile ...
- 分支结构if……else
语法: if(条件) 语句或语句块1 end else begin 语句或者语句块2 end 特点: . else并不一定是必须的. . 如否条件为真,将执行语句和语句块1,条件为假时执行语句或语句块 ...
- jquery监控input输入框的变化
(function($) { $.fn.watch = function(callback) { return this.each(function() { //缓存以前的值 $.data(this, ...