再学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
再学UML-Bug管理系统UML2.0建模实例(二)的更多相关文章
- 再学UML-Bug管理系统UML2.0建模实例(一)
1.项目概述 随着软件项目规模和复杂性的增大,有效跟踪和管理项目中存在的缺陷Bug变得越来越重要.每一个软件企业都需要妥善处理软件中的缺陷,这将直接关系到软件过程质量与软件产品质量,但并非 ...
- 再学UML-Bug管理系统UML2.0建模实例(三)
3.系统设计 在对系统进行全面分析后,我们开始使用UML对系统进行设计,构造BMS系统的设计模型,包括类图.包图.顺序图(实现模型).组件图和部署图等的绘制,回答了“怎么做”的问题.具体设计工作如下: ...
- 再学UML-Bug管理系统UML2.0建模实例(四)
3.3 顺序图(实现模型) 在系统设计与实现阶段我们也可以使用顺序图进行建模,此时通过顺序图可以明确表示系统设计中对象之间的交互,考虑到具体系统实现,对象之间通过方法调用传递消息.在BMS系统中,对每 ...
- 一起学ASP.NET Core 2.0学习笔记(二): ef core2.0 及mysql provider 、Fluent API相关配置及迁移
不得不说微软的技术迭代还是很快的,上了微软的船就得跟着她走下去,前文一起学ASP.NET Core 2.0学习笔记(一): CentOS下 .net core2 sdk nginx.superviso ...
- [转]我要学ASP.NET MVC 3.0(十二): MVC 3.0 使用自定义的Html控件
本文转自:http://www.cnblogs.com/lukun/archive/2011/08/05/2128693.html 概述 在ASP.NET MVC框架中已经封装了很多基于Html标 ...
- 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是否被修复)也没有 ...
随机推荐
- 113th LeetCode Weekly Contest Flip Equivalent Binary Trees
For a binary tree T, we can define a flip operation as follows: choose any node, and swap the left a ...
- HTML5实现多文件的上传示例代码
[转自] http://www.jb51.net/html5/136791.html 主要用到的是<input>的multiple属性 代码如下: <input type=" ...
- Spark (Python版) 零基础学习笔记(一)—— 快速入门
由于Scala才刚刚开始学习,还是对python更为熟悉,因此在这记录一下自己的学习过程,主要内容来自于spark的官方帮助文档,这一节的地址为: http://spark.apache.org/do ...
- js的apply和call
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- 文献综述七:基于SSM的网上商城的开发与设计
一.基本信息 标题:基于SSM的网上商城的开发与设计 时间:2018 出版源:Computer Knowledge and Technology 文件分类:对框架的研究 二.研究背景 为了解决现在电商 ...
- Linux下Tomcat如何传入'$'符号
在实际的工作中,有同事有需求要在Tomcat的启动脚本中添加启动参数,而且启动参数中带有特殊的字符'$',在实际的应用程序中,使用System.getProperty()进行获取设置的值,但是这个字符 ...
- 日志logback
http://tengj.top/2017/04/05/springboot7/ ------------------ logback使用指南. 公司配置 <?xml version=" ...
- 案例42-使用ajax获取crm中的客户列表
1webcontent部分 1 修改menu.jsp代码 2 jsp/customer/list.jsp代码 <%@ page language="java" content ...
- 4.爬虫 requests库讲解 GET请求 POST请求 响应
requests库相比于urllib库更好用!!! 0.各种请求方式 import requests requests.post('http://httpbin.org/post') requests ...
- JavaScript资源分享
一. 资源教程: 综合类 前端知识体系 前端知识结构 Web前端开发大系概览 Web前端开发大系概览-中文版 Web Front-end Stack v2.2 En类资源汇总 免费的编程中文书籍索引 ...