3.系统设计

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

3.1 体系结构设计

BMS采用多层Java EE设计方案,考虑到系统的扩展性,定义了抽象的数据访问层,系统体系结构图如图3-1所示:

图3-1 BMS体系结构图

在图3-1中,BMS系统一共包含五层,其中表示层使用JSP来实现,控制层使用Servlet实现,Servlet将调用业务逻辑层中的方法实现具体业务功能,如果业务功能在实现过程需要访问数据库,则调用数据访问层中的数据库操作方法,为了保证系统的扩展性,我们定义了抽象的数据访问层,业务逻辑层针对抽象数据访问层编程,而将具体数据访问类类名存储在配置文件中,使用XML格式的文件作为配置文件,提高系统的可扩展性。具体实现方案如图3-2所示:

图3-2 数据访问层扩展实现方案

3.2 类图

类图是一个面向对象系统最核心的设计图之一,BMS的主要功能包括bug管理和人员信息管理,针对这两个主要功能模块,我们绘制了两个类图,图3-3对用户信息管理进行建模,图3-4对bug信息管理进行建模。

为了更好地描述各种不同的类,我们使用了彩色UML建模方式,不同类型的类使用不同的颜色来表示,如使用红色表示数据传输类DTO,使用粉红色表示JSP界面类,使用绿色表示Servlet控制类,使用蓝色表示业务逻辑类BO,使用浅蓝色表示数据访问接口IDAO,使用橙色表示数据访问类DAO。

图3-3 用户信息管理部分类图

 

图3-4 bug信息管理部分类图

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

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

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

    1.项目概述       随着软件项目规模和复杂性的增大,有效跟踪和管理项目中存在的缺陷Bug变得越来越重要.每一个软件企业都需要妥善处理软件中的缺陷,这将直接关系到软件过程质量与软件产品质量,但并非 ...

  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. 基于 Pymsql 数据库连接池

    helper.py import pymysql from settings import Config def connect(): conn = Config.POOL.connection() ...

  2. once函数,简约不简单的

    module.exports = once once.proto = once(function () { Object.defineProperty(Function.prototype, 'onc ...

  3. 认识CSS中css的三大特性:层叠性、继承性以及优先级

    前端之HTML.CSS(四) CSS CSS三大特性 层叠性:多种样式的叠加,一个属性通过两个选择器设置在同一个元素上,后一个样式会把前一个样式层叠(覆盖).层叠性的两种情况:第一种样式冲突时,后样式 ...

  4. Sqlite CodeFirst的初级实现

    示例实体: using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnn ...

  5. docker 容器启动的模板以及注意事项

    docker启动容器常用模板 docker run -dit \ -p : -p : -p : \-v /usr/local/xd_data:/usr/local/xd_data \-v /etc/l ...

  6. nginx-图片资源代理

    location ~ .*\.(gif|jpg|jpeg|png|bmp|mp3)$ { root E:/xx/Uploads/; } 记得放在根目录下面

  7. Data Guard 管理原理

    ##三大优势>Data Guard属于Oracle 自己的产品,其技术成熟完善.稳定可靠>可以随时验证业务数据的有效性>免费产品 Data Guard由主库(PRIMARY DATA ...

  8. unity摄像机脚本

    直接挂载在摄像机上面即可 1.摄像机自由平移 using UnityEngine; using System.Collections; /// <summary> /// 摄像机视角自由移 ...

  9. php之mongodb插入数据后如何返回当前插入记录ID

    <?php /** *插入记录 *参数: *$table_name:表名 *$record:记录 * *返回值: *成功:true *失败:false */ function insert($t ...

  10. NETCDF入门

    转载自:http://www.cnblogs.com/davidgu/p/3572317.html 一.概述  NetCDF全称为network Common Data Format,中文译法为“网络 ...