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

2.3 BMS顺序图(需求模型)
       在UML中,我们将顺序图分为两类,一类用于描述系统需求,构造系统的需求模型(分析模型);另一类用于指导设计与实现,构造系统的实现模型(设计模型)
       在系统分析时,可以通过顺序图来对执行者和系统的交互过程进行建模,方便用户更好地理解系统的工作流程。对于需求模型顺序图,一般使用用户熟悉的业务语言来进行系统描述,不涉及到实现细节,一方面方便用户理解,另一方面可以指导后续类图的设计。顺序图可显示不同的业务对象如何交互,对于交流当前业务如何进行很有用,一个业务级的顺序图能被当作一个需求文件使用,为实现一个未来系统传递需求;同时,顺序图能够使用更为清晰形象的表达,将用例带入下一层次,通常一个用例可以被细化为一个或者更多的顺序图。顺序图的主要用途之一,是把用例表达的需求,转化为进一步、更深层次的精细表达。
       根据需求我们绘制了每一个用例的顺序图,由于篇幅关系,未将每个用例的顺序图一一列举。图2-3、2-4、2-5、2-6分别是用例“登录”、“提交bug信息”、“查看bug信息”和“更新bug信息”的顺序图。(部分顺序图)

图2-3 用例“登录”顺序图(需求模型)

图2-4 用例“提交bug信息”顺序图(需求模型)

图2-5 用例“查看bug信息”顺序图(需求模型)

图2-6 用例“更新bug信息”顺序图(需求模型)

在实际开发中,我们可以使用顺序图来描述用例的路径,此时,顺序图可以画得更加简单,最简单的顺序图只有两个交互角色,即“执行者”和“系统”。上述四个顺序图还是有点点偏技术的,,在真正与用户交流时可以用更简单的形式。

2.4 状态图(需求模型)

在需求分析过程中,我们发现BMS系统的核心对象是bug,因此可以使用状态图对其进行建模。UML中的状态图可以用来描述一个特定对象的所有可能状态及其引起状态转移的事件。只有那些具有重要交互行为的类,才会使用状态图来描述,一个状态图包括一系列对象的状态及状态之间的转换。在实际建模中,并不需要给出每个对象的状态图,而需要将注意力集中在整体系统或少数关键的对象上,特别是那些状态比较多的对象。

在BMS系统中,最复杂也最为重要的对象是bug,它在系统中拥有多种不同的状态,不同类型的用户可以对其进行操作,为了更好地描述bug对象状态的转换,我们绘制了bug对象状态图,如图2-7所示:

图2-7 bug对象状态图

在图2-7中,我们可以清晰了解bug对象在系统中所具有的状态以及这些状态之间的转换过程,如测试人员提交的bug其状态为“新提交bug”,开发组长查看后该bug的状态将变为“开发组长已查看bug”。

2.5 活动图(需求模型)

在状态图中,我们描述了BMS系统中bug对象的各种状态以及状态之间的转换关系,但是这些状态在转换的过程中无法确定何种状态由哪类执行者负责操作,因此可以通过活动图来进行建模,此时的活动图用于对需求模型进行进一步细化。在系统分析过程中,我们使用活动图取代传统的流程图,在表示系统业务流程的同时通过泳道来确定每一个活动的执行者。在活动图中我们还使用了对象流来表示活动与对象之间的依赖关系,描述在活动中对象的状态。通过活动图建立的模型比状态图建立的模型具有更多信息,在BMS中,我们描述了不同用户对bug的操作活动以及在每一次活动之后bug对象所处于的状态,对操作流程进行图形化建模,如图2-8所示:

图2-8 BMS活动图

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

时间: 2024-09-29 08:01:52

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

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

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

[转]我要学ASP.NET MVC 3.0(十二): MVC 3.0 使用自定义的Html控件

本文转自:http://www.cnblogs.com/lukun/archive/2011/08/05/2128693.html 概述   在ASP.NET MVC框架中已经封装了很多基于Html标准的Html控件,我们可以方便的使用这些控件输出想要的内容,使开发变得快捷. 例如ASP.NET MVC框架包括以下设置标准的HTML控件(部分控件): Html.ActionLink() Html.BeginForm() Html.CheckBox() Html.DropDownList() Ht

一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移

不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.supervisor.mysql环境搭建搭建好了.net core linux的相关环境,今天就来说说ef core相关的配置及迁移: 简介: Entity Framework(以下简称EF) 是微软以 ADO.NET 为基础所发展出来的对象关系对应 (O/R Mapping) 解决方案,EF Core是Entity

ext 6.0开发实例二

由于Ext JS 6将原来的Ext JS和Sencha Touch合并为一个框架,因而在使用CMD来创建应用程序前,需要考虑清楚你是要创建一个通用应用程序,还是仅仅只是针对桌面或移动设备的应用程序. 要做这样的考量,是因为通用应用程序和比较单一的应用程序在开发上会有些小麻烦.这些小麻烦主要是因为Ext JS的自动加载机制造成的,有时候会很困扰人. Ext JS的自动加载机制是根据类名来划分目录兵加载脚本的,例如SimpelCMS.view.Main,如果没有自定义过SimpelCMS的路径指向,

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

什么是模型 模型是对现实的简化 模型是提供系统的蓝图,模型可是包括详细计划.也可是是从更高程度考虑系统的总体计划,每个系统可以从不同的方面用不通过的模型来描述.因而每个模型都是在语义上闭合的抽象系统.模型可以是结构性的,强调系统的组织.也可是是行为性的,强调系统的动态方面 举例:售楼中心里面的楼盘蓝图 为什么建模 建模是为了能够更好地理解正在开发的系统 通过建模达到下面的目的1.模型有助于按照实际情况或按照所需的样式对系统进行可视化2.模型能够规约系统的结构或行为3.模型给出了构造系统的模板4.

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

最终忍受不了公司使用论坛+Excel来进行bug反馈和管理工作了,于是花了一个上午时间研究了下bug管理系统.这样一个bug管理系统能够轻松的查看bug新增了哪些,攻克了哪些.当前是谁,要在什么时间解决.不管是qa还是程序都能够轻易的在这个系统上面查看当前要解决和复測的bug. 终于目标锁定为两个开源的项目管理系统,禅道和Redmine,两个都很优秀,而我的需求又很easy------能提交.追踪.反馈bug就能够了,这两个系统都是能够胜任的.尽管这篇文章解说的是Redmine的安装和使用心得,

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

开发背景: 公司目前使用Teambition里面的task作为bug管理系统,既没有bug的当前状态,也不能写上bug的详细复现步骤,被assign了任务(该修复bug或者验证bug是否被修复)也没有邮件通知 也不能查看自己名下当前有多少bug待修复,分别属于哪些项目. 收获: 1. 前台jsp: 1.1. <a href="mailto:邮箱地址"> 安装了outlook后点击此链接会打开一个新建邮件界面 1.2. <meta http-equiv="re

五大最受欢迎的BUG管理系统

Google在中国大陆遭遇变故做出临时性的退出大陆市场,也使非常多忠实的用户受到小小的挫折,以本公司为例.原本的BUG都是记录在google的 EXCEL在线文档中,由于常常性的打不开.測试和开发组在线上交流不了,都仅仅能通过其他的方式进行沟通和讨论,非常不便. 于是在測试部经理的要求下,寻 找出一些最受大家青睐的BUG管理系统.从中选择出最适合的来作为公司管理BUG的专用系统.经过认真的查找和比較,选出下面五大为比較受欢迎的BUG管理系统. 下面简介一下其功能优缺点和资源获取方式吧: 1. Q

再学C/C++ 之 浅析gdb的-g选项

浅析gdb的-g选项 准备 gdb是Linux下学习C/C++最常用的debug工具.要使用这一强大工具,必须在编译时加上-g选项,生成的目标文件才可以用gdb进行调试. 如,先创建一个test.c文件,内容为: 1 #include <stdio.h> 2 3 int main(void){ 4 int a[2]; 5 a[0] = 1; 6 a[1] = 2; 7 return 0; 8 } 使用编译语句,进行编译: gcc -g test.c -o test.out 浅析-g选项 -g选