1.项目概述
       随着软件项目规模和复杂性的增大,有效跟踪和管理项目中存在的缺陷Bug变得越来越重要。每一个软件企业都需要妥善处理软件中的缺陷,这将直接关系到软件过程质量与软件产品质量,但并非所有的软件组织都知道如何有效地管理自己软件中的缺陷。在软件缺陷管理(Software Defect Management)中,软件缺陷的分类和管理非常重要,因此软件缺陷管理工具的开发和使用将在现代软件开发中发挥重要作用。本系列文章将使用UML2.0对Bug管理系统进行全程建模,该系统名为缺陷管理系统(Bug Management System, BMS),并按照软件工程的标准,提供一套完整的解决方案。

1.1 需求分析
       一个完备的bug管理流程通常包括如下几个步骤,如图1-1所示:

                                                                                                    图1-1 bug管理流程图
       图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所示:

文章出处: http://blog.csdn.net/lovelion/article/details/17352343

再学UML-Bug管理系统UML2.0建模实例(一)的更多相关文章

  1. 再学UML-Bug管理系统UML2.0建模实例(三)

    3.系统设计 在对系统进行全面分析后,我们开始使用UML对系统进行设计,构造BMS系统的设计模型,包括类图.包图.顺序图(实现模型).组件图和部署图等的绘制,回答了“怎么做”的问题.具体设计工作如下: ...

  2. 再学UML-Bug管理系统UML2.0建模实例(二)

    2.3 BMS顺序图(需求模型)       在UML中,我们将顺序图分为两类,一类用于描述系统需求,构造系统的需求模型(分析模型):另一类用于指导设计与实现,构造系统的实现模型(设计模型).     ...

  3. 再学UML-Bug管理系统UML2.0建模实例(四)

    3.3 顺序图(实现模型) 在系统设计与实现阶段我们也可以使用顺序图进行建模,此时通过顺序图可以明确表示系统设计中对象之间的交互,考虑到具体系统实现,对象之间通过方法调用传递消息.在BMS系统中,对每 ...

  4. C#人爱学不学9[C#5.0异步实例+WPF自己的MVVM Async应用 1/12]

    文章摘要: 1. 通过简单DEMO.让读者理解Task和Task<T>    学习过程中,掌握async和await 2. 理解同步和异步的执行 3. Task.Factory.Start ...

  5. 你必须学UML之理论篇

    1.前言 对于当前社会背景下从事软件开发的工作者而言,"写代码"实际上并不是唯一的工作.特别在一些中小型的企业当中,这些企业往往对于开发者的要求,不单单停留在写代码完成相应功能上, ...

  6. UML(Unified Modeling Language)统一建模语言

    什么是模型 模型是对现实的简化 模型是提供系统的蓝图,模型可是包括详细计划.也可是是从更高程度考虑系统的总体计划,每个系统可以从不同的方面用不通过的模型来描述.因而每个模型都是在语义上闭合的抽象系统. ...

  7. 【总结】使用jdbc+servlet开发一个bug管理系统的经验总结

    开发背景: 公司目前使用Teambition里面的task作为bug管理系统,既没有bug的当前状态,也不能写上bug的详细复现步骤,被assign了任务(该修复bug或者验证bug是否被修复)也没有 ...

  8. UML2.0最新版入门图解

    一.UML概述 UML(UnifiedModelingLanguage)统一建模语言,是面向对象软件的标准化建模语言.由于面向对象软件开发需要经过OOA(面向对象分析),OOD(面向对象设计),OOP ...

  9. 开源Bug管理系统Redmine安装和使用心得

    最终忍受不了公司使用论坛+Excel来进行bug反馈和管理工作了,于是花了一个上午时间研究了下bug管理系统.这样一个bug管理系统能够轻松的查看bug新增了哪些,攻克了哪些.当前是谁,要在什么时间解 ...

随机推荐

  1. 鼠标拖动div,div跟随鼠标移动效果

    <div id="boxDiv" style='width:20px;height:20px;position:absolute;background:red;'>   ...

  2. UVA - 11795 状压DP

    #include<iostream> #include<algorithm> #include<cstdio> #include<cstring> #i ...

  3. linux下的常见信号总结

    在linux下有很多信号,按可靠性分为可靠信号和非可靠信号,按时间分为实时信号和非实时信号,linux进程也有三种方式来处理收到的信号: (1)忽略信号,即对信号不做任何处理,其中,有两个信号不能忽略 ...

  4. forEach和map和for方法的区别

    JS中的forEach.$.each.map方法推荐 转载  2016-04-05   投稿:jingxian    我要评论 下面小编就为大家带来一篇JS中的forEach.$.each.map方法 ...

  5. Beam概念学习系列之Pipeline Runners

    不多说,直接上干货! https://beam.apache.org/get-started/beam-overview/ 在 Beam 管道上运行引擎会根据你选择的分布式处理引擎,其中兼容的 API ...

  6. linux_api之进程环境

    本篇索引: 1.引言 2.main函数 3.进程的终止方式 4.exit和_exit函数 5.atexit函数 7.环境表 8.C程序程序空间布局 9.存储空间的手动分配 10.库文件 1.引言 一个 ...

  7. MYSQL系列-Mysql存储引擎选择

    MYSQL系列-Mysql存储引擎选择 //查看当前数据库支持的存储引擎 show engines \G; 创建表的时候可以通过engine=MyISAM指定存储引擎 MyISAM: .MYISAM不 ...

  8. rockmongo配置文件config.php

    使用编辑器(比如notepad或者VI/VIM命令)打开RockMongo安装目录下的config.php,所有的配置都在这里. 认证 mongo_auth 和control_auth 在开始使用Ro ...

  9. 如何在ThinkPHP中开启调试模式

    1.为什么使用调试模式? 因为调试会在我们的模板页的最后增加一些trace信息. 2.什么是trace信息? 是ThinkPHP为我们提供好的一些包含了系统运行时间.占用内存.加载时间.请求的协议.. ...

  10. winfrom 树勾选

    树勾选 /// <summary> /// 树勾选 /// </summary> /// <param name="sender"></p ...