概要设计文档(cmri).doc_第1页
概要设计文档(cmri).doc_第2页
概要设计文档(cmri).doc_第3页
概要设计文档(cmri).doc_第4页
概要设计文档(cmri).doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

TMS系统概要设计 Dual for cmriAuthor Mingjia Lu Revision No 1.1Issue Date DOCUMENT PDS ID: UTSI-SZRD-00001PRODUCT: Tms_cmriRELEASE: cmriFEATURE: SUBSYSTEM: Revision HistoryRevision #AuthorReviewed ByA. Description Of Change, Including MR No.B. Summary of ReviewIssued by / Date 1.0Mingjia Lu Review version 2008-11-181.1Mingjia.Lu增加bmt omt dmt介绍2009-9-221.2Mingjia.luReview version2009-9-23UTStarcom ProprietaryNot for use or disclosure outside UTStarcom, Inc. or any of its subsidiariesExcept under prior written agreement.Other Intended Audience:Quality Assurance Group & Internal Auditors.This document is controlled electronically and any hard copy should be considered uncontrolled.The latest version of this document may be obtained from the PDS ID - UTSI-SZRD-00001This document is owned by MingjiaTable of Contents1引言41.1背景:41.2 编写目的4l基本41.3定义42总体设计52.1需求规定52.2基本设计概念和处理流程52.3系统数据结构设计(如下图:基础类关系图)63与CQ集成113.1集成方案:113.2类图:113.3代码说明:123.4集成操作:134与LoadRunner集成:135代码示范:135.1Struts 应用:135.2BMT+OMT+DMT145.3Spring + hibernate :145.4JATO:146BMT +OMT+DMT技术详解:156.1总体描述:156.2注意事项:156.3生命周期:151 引言 1.1 背景: a.系统名称:TMS ,系统测试系统 b.项目开发阶段:主要分为3个阶段:l tms系统公共部分的开发阶段;l 面向中国移动总公司测试所业务流程开发阶段;l 项目维护阶段;1.2 编写目的 为中国移动总公司测试所提供TMS系统概要设计,通过概要设计,用户可以非常方便的了解以下系统几方面的信息,以便源代码顺利交接:l 主要业务流程;l 基本类关系;l 设计的技术框架;l 开发技术方面的支持;l 开发阶段;l 与其他系统(CQLOADRUNNER)集成的方案;l 代码开发示范; 1.3定义 TMS: 测试管理系统; 测试用例:测试点的最基本单元;用例库:测试用例及版本保存的单元;CQ: 集成缺陷管理系统 ;MR: 问题需求;产品线/项目/轮次:测试项目管理结构;测试集:在某一轮次下,所需要测试的用例集合;2 总体设计2.1需求规定 u 实时的测试项目管理u 集成缺陷管理系统u 丰富的在线测试用例知识库u 测试人员的一站式服务u 系统构架:B/S结构2.2基本设计概念和处理流程 使用TMS进行测试管理的基本流程大致如下:n 在“测试用例库”(Library)中建立测试用例,基于测试所的情况,可以将测试规范文档中的测试用例导入或者利用手动输入的方式进行测试库的建设。n 当测试用例在库中准备完成后,测试项目经理需要进入到“项目工作区”(Project)中自己负责的测试项目下进行项目和测试轮次的创建。n 测试轮次规划完成后,测试项目经理为测试项目组织“测试集”(Test Case Set),也可以理解后测试方案的核心部分(测试内容)。n 测试集组织好后,测试项目经理可以将测试集分配给一个或者多个测试人员,形成测试人员的测试任务n 测试人员得到测试任务邮件通知后,进入“个人工作区”(Personal)中,执行测试任务,填写测试结果。n 测试项目经理在测试轮次的“测试集”中可以实时了解测试进度,并可以利用TMS提供报表统计功能了解项目具体数据。n 测试项目经理基于“测试集”进行测试文档的创建,如“测试规范文档”,“测试方案文档”,“测试报告”等,这些在线文档可以导出到本地Word文档。在用例库中创建和管理测试用例测试项目和测试轮次的创建在项目测试轮次下创建和组织测试集分配测试集测试人员在个人工作区执行用例管理人员在项目区管理项目进度基于测试集生成测试方案文档测试结束后,基于测试集生成测试报告,测试结果文档2.3系统数据结构设计(如下图:基础类关系图) OMTProductline1.n1.n11.n11.n1.n1.n1.n1.n11OMTFolderOMTUserOMTPriorityOMTObjectOMTTestCaseOMTTestResultOMTTestItemOMTTestFolderOMTProjectOMTRoundOMTTestCaseEntity1111.n1继承1.n关系调用关系OMTTestCaseVersion1.n2.4 技术结构设计要点 1.表现层技术框架设计类图(Struts):ActionServletJsp1.nAction1.nActionForm1.nBrowserCentralize ControlForward toBusiness layerDispatch Business Processing1. ActionServlet: org.apache.struts.action.ActionServlet2. Action *Action.java3. ActionForm1.n : *ActionForm.java4. Jsp1.n : *.jspReturn Encapsulate dataStruts-config.xml2业务层框架1(BMT +OMT+DMT)BMTOMTDBDMTObtain composite processingEncapsulate DataAccess DB sql1. BMT : 业务管理层 2. OMT : 对象管理层 3. DMT : 数据管理层 备注:业务管理层主要的功能是为表现层提供业务接口,封装业务对象,代码名称表现为BMT*.java;对象管理层主要功能是面向对象的方法,将数据封装成对象,由业务层来调用,代码名称表现为OMT*.java;数据管理层为访问数据库表,并将具体的数据封装成对象结构, 代码名称表现为DMT*.java。3业务逻辑构架2(spring+hibernate)Service LocatorapplicationContext-hibernate.xml.xmlDAOImplModelLocate SevicesgetBeanHbm.xmlAccess DB sqlEncapsulate DataDBspring+hibernate将业务层与数据层结合起来,优点开发快,将事务处理完全交给系统构架来处理,缺点是耦合度高,未知风险系数增加。3 与CQ集成3.1 集成方案: TMS 系统CqCpertiesJDBC CQ 视图1.nCq DBLocator cq DataSource3.2 类图:Query Mr CQServerLocatorCqCpertiesCQDataSource1.nCq DBCq mr UrlGet Mr Info by MrIdReturn Mr Info UrlConnect CQDatasource3.3 代码说明:代码名称说明com.vinko.utms.cq.CQServerLocator.java在现场环境有多个cq服务器,所以需要根据用户的选择定位cq服务器,该类是从cqCperties定位到某个服务器,提供给用户。com.vinko.utms.cq.CQBugInfo.javaCq mr 的信息载体com.vinko.utms.cq.CQDB.java通过jdbc连接Cq 数据库(SQL SERVER)com.vinko.utms.cq.CQQuery.java查询mr操作类WEB-INF/config/cqCpertiescq服务器配置文件。3.4 集成操作:1 确保Cq 数据库连接无误,3个关键字:连接字符串,用户名,密码:2 编写jdbc连接测试文件,检测是否可以连通Cq 数据库;3 确定Cq 数据库中的查询视图(ClearQuestAllDBMR_View)是否无误;4 配置文件WEB-INF/config/cqCperties添加Cq 数据库连接配置;5 从新启动服务器;4 与LoadRunner集成:参见TMS-LOADRUNNER集成配置现场环境配置说明5 代码示范:5.1 Struts 应用: 开发步骤参照代码要点1ActionForm的建立com.utstar.utms.report.action.form.RoundIssueForm1. 继承org.apache.struts.action.ActionForm;2. 填入属性方法的设计2.Action 文件的建立com.utstar.utms.report.action RoundIssueAction 继承org.apache.struts.action.Action; public ActionForward execute(.)补充调用方法及forword页面Jsp文件的建立utms-webreport addRoundIssue.jsp1. 注释2. struts标签配置文件utms-webWEB-INFstruts-config.xml1. ActionForm 的注册2. action 的注册3. jsp的注册5.2 BMT+OMT+DMT开发步骤参照代码要点1DMT的建立com.vinko.utms.dmt.lms.user. DMTUser1. 继承DMTObject2. 实现基本操作的几个方法(增删改)2. OMT的建立mon OMTUser1. 继承OMTUser2. 实现load(主健)3. 平级向下调用法则:可以调用任意dmt/omt,但是不能调用bmt文件BMT的建立com.vinko.utms.bmt.BMTUserToolkit1.平级向下调用法则:可以调用任意bmt/omt,但是不能调用dmt文件5.3 Spring + hibernate :开发步骤参照代码要点1Model的建立com.utstar.utms.script.dao.impl.ScriptModel implements Serializable 必须实现equals(Object o)方法 必须实现hashCode()方法Hbm.xml的建立com/utstar/utms/script/dao/impl/ScriptMap.hbm.xml略dao的建立com.utstar.utms.script.dao.ScriptMapDao略com.utstar.utms.script.dao.impl.ScriptMapImpl略5. applicationContext-hibernate.xml修改applicationContext-hibernate.xml(行)applicationContext-rms.xml(420行)略6. ServiceLocator修改com.utstar.utms.v2.rms.util .ServiceLocator(112行)略5.4 JATO:参见:JATO说明6 BMT +OMT+DMT技术详解:6.1 总体描述: 1. BMT : 业务管理层 业务管理层主要的功能是为表现层提供业务接口,封装业务对象,代码名称表现为BMT*.java;该层主要是侧重业务的分析,一般调用的方式为调用对象层(OMT*)和其他的业务管理层;但是对于比较复杂的业务关系,在开发代码中也参杂了相关sql语言的出现;2. OMT : 对象管理层 对象管理层主要功能是面向对象的方法,将数据封装成对象,由业务层来调用,代码名称表现为OMT*.java;面向对象的设计方法,将数据库中的相应的表对应成相应的属性和方法,由业务层和其他的omt对象来调用。 3. DMT : 数据管理层 数据管理层为访问数据库表,并将具体的数据封装成对象结构, 代码名称表现为DMT*.java。数据层为直接与数据库表对应,操作也仅有增、删、改、查询四个功能。6.2 注意事项: 3层关系仅是从设计意义上笼统的区分,并没有严格意义上的要求,只需要了解各个层次的侧重点,分析要点即可。6.3 生命周期: 3层管理的生命周期是在struts 的action调用时开始的,并逐层传递connection,直到业务处理处理完毕后,又回到action层结束,关闭connection: 流程如下:1. action建立connection2. 将connection传递到bmt中(如果有的话),做业务处理;3. 将connection传递到omt中,对象属性处理;4. 将connection传递到dmt中做增删改查询操作5. 回到action中整体关闭connection各层基本属性和方法:层次属性/方法意义BmtConnection m_dbConnection在类里有个protected属性的connection,系统调用时,先传递connection进来setConnection(Connection newDBConnection)Connection的传递方法Connection getConnection() boolean isConnecting()判断当前该类中是否存在数据库连接Vector getOptionalOperatorList(String field)返回指定的field可以在query中可以进行的操作Vector getOptionalValueList(String field)返回指定的field其可以进行的选择值操作OMTprotected Connection m_dbConnection; / 数据库连接protected DMTObject m_rootObject; / OMTObject的根DMTObjectprotected Vector m_controlField;Hashtable m_extend_field;四个属性:m_dbConnection : connectionm_rootObject: 主要的dmt对应表m_controlField:可显示的字段m_extend_field:扩展字段get*();set*();以上四个属性的get/set方法boolean isConnecting()判断当前该类中是否存在数据库连接addFile(String type, int id)为当前对象增加附带文件 * param type String 文件类型 * param id int 文件标识removeFile(int pos)删除当前对象的文件附件 * 1.将UTMS_OBJ_ATTACH_FILE表与UTMS_FILE表中的指定记录删除 * 2.将存在于文件系统中的附件删除(涉及文件删除) * param pos int 文件位置编号:如果pos=-1,则删除当前对象的所有文件附件;如果pos!=-1,则删除当前对象的指定附件removeAttachFile(int pos)删除当前对象与文件之间的关系 * 将UTMS_OBJ_ATTACH_FILE表指定记录删除 * param pos int 文件位置编号:如果pos=-1,则删除当前对象的所有文件关系;如果pos!=-1,则删除当前对象的指定关系OMTFile getFile(int pos)返回指定位置的文件 * param pos int 文件位置编号duplicateObject(OMTObject from, OMTUser user)用于在Object进行copy的工作,根据具体的需要在OMT级进行重载getPermission()返回对象对应的权限对象,如果没有查到,可以一直追溯到上层的权限对象OMTObject getSuperObject()返回上级对象,每种类型对象重载,主要用于权限控制,如果没有定义,返回空OMTPermission createPermission()创建对象对应的权限Vector getValidPermList()返回权限列表:own;update;readboolean verifyAccess(OMTUser user, String perm)验证访问权限,同时验证用户信息以及所包含的组信息 * 先判断用户,再判断组OMTPermission getPermission(OMTUser user)如果当前对象的permission包含了当前的操作用户或者用户所在组,则直接返回当前对象的permission; * 否则继续回溯,直到上层对象的permission包含该用户或用户所在组,并返回该permission对象getPermToOperDef(String perm)返回通用权限(update, read, own)对应的操作(operation)Vector getAccessableOperList(OMTUser user)根据用户/组取可执行的操作列表boolean verifyOperation(OMTUser user, String oper)用于验证用户是否具有当前操作改对象的权限appendLog(String oper, String content, String r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论