再学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是否被修复)也没有 ...
随机推荐
- shopNC开发手册
链接: https://wenku.baidu.com/view/b9232d24dd3383c4bb4cd2c9.html https://wenku.baidu.com/view/ff1566 ...
- Spring中如何向 Bean注入系统属性或环境变量
[转自] http://unmi.cc/spring-injection-system-properties-env/ 在 Spring 中为 javabean 注入属性文件中的属性值一般人都知道的, ...
- pyspider的基本操作
一.安装 pip install pyspider 1.修改 pyspider/webui/webdav.py 第209行:否则启动会报错 把: 'domaincontroller': NeedAut ...
- 【记录】drozer与adb工具的安装与使用
drozer:链接:https://pan.baidu.com/s/1o8QOIF4 密码:a7yv adb:链接:https://pan.baidu.com/s/1o865VSm 密码:zq9t d ...
- docker 容器启动的模板以及注意事项
docker启动容器常用模板 docker run -dit \ -p : -p : -p : \-v /usr/local/xd_data:/usr/local/xd_data \-v /etc/l ...
- vue组件传参
一.父子组件的定义 负值组件的定义有两种,我称为常规父子组件和特殊父子组件. 1.1.常规父子组件 将其他组件以import引入用自定义标签接收,在当前组件中component里注册该标签,页面上可以 ...
- oracle 基础知识(九)----SQL解析
一,解析过程 二,硬解析,软解析,软软解析 01,硬解析 将SQL语句通过监听器发送到Oracle时, 会触发一个Server process生成,来对该客户进程服务.Server process得到 ...
- fastclick.js源码解读分析
阅读优秀的js插件和库源码,可以加深我们对web开发的理解和提高js能力,本人能力有限,只能粗略读懂一些小型插件,这里带来对fastclick源码的解读,望各位大神不吝指教~! fastclick诞生 ...
- HTML盒子尺寸的计算
参考链接http://edu.51cto.com/lesson/id-54739.html
- sudo apt-get install openssh-server时提示需要安装1:6.6p1-2ubuntu1的解决办法(图文详解)
最近,在执行 sudo apt-get install openssh-server 提示,如下. 解决办法 先要执行 sudo apt-get install openssh-client=1:6. ...