软件构架文档(共23页)_第1页
软件构架文档(共23页)_第2页
软件构架文档(共23页)_第3页
软件构架文档(共23页)_第4页
软件构架文档(共23页)_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

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

文档简介

1、精选优质文档-倾情为你奉上专心-专注-专业软件构架文档软件构架文档缺陷管理系统缺陷管理系统 2.0 中国软件架构师网 版权所有(C) 修订历史修订历史日日 期期版本版本作作 者者审审 核核说说 明明2006-9-2810胡协刚 初稿 精选优质文档-倾情为你奉上专心-专注-专业 精选优质文档-倾情为你奉上专心-专注-专业 目目 录录 精选优质文档-倾情为你奉上专心-专注-专业 精选优质文档-倾情为你奉上专心-专注-专业软件构架文档软件构架文档BugManager 缺陷管理系统缺陷管理系统 2.01 11 1 简介简介1.1 目的目的本文档全面与系统地表述目标软件系统的构架,并通

2、过使用多种视图来从不同角度描述系统的各个主要方面,以满足相关涉众(客户、设计人员等)对目标系统的不同关注焦点。本文档记录并表述了架构师对系统构架方面做出的重要决策;项目经理将根据构架定义的构件结构制定项目的开发计划;设计员将据此进行各构件的详细设计;测试设计员按照构架设计系统的总体测试框架;另外构架文档还用于指导各构件的实施、集成及测试。1.2 范围范围本文档适用于“BugManager 缺陷管理系统 2 代”的总体应用构架。1.3 术语词汇表术语词汇表此处未完成 1.4 参考资料参考资料 客诉管理制度 前景文档 2 22 2 构架表示方式

3、构架表示方式本文档以一系列的视图(View)来表示系统的软件构架,主要包括用例视图、逻辑视图、进程视图、部署视图、实施视图(即 RUP 推荐的 4+1 视图)等;每个视图拥有一个或多个模型(Model) (例如逻辑视图包含分析模型、设计模型和数据模型等) ;并围绕相关视图来描述系统的基本结构、组成机制与工作原理等。本文档还将系统的构架机制描述也放在了逻辑视图之下。本文档主要使用统一建模语言(UML)来充当相关模型的表达语言;主要图表(Diagram)引用自目标系统的 Rose Model。 3 33 3 构架设计目标与约束构架设计目标与约束描述构架设计必须满足的关键系统功能需求和质量约束,这些

4、功能需求和质量要求对软件构架有重大的影响,并决定了构架的设计。本节同时还列明影响构架的其他相关因素,如软件的复用策略、使用商业构件、设计与实施的策略等。3.1 关键功能需求关键功能需求跨地域的系统外部用户通过 Internet 网来使用系统的功能。内部用户、系统管理员在安全性较高的内网中使用系统的功能。消息通知系统是目标系统为了实现相关功能而需要进行协作的一个外部系统,它能够向用户发送 email,或者发送短消息。 精选优质文档-倾情为你奉上专心-专注-专业3.2 关键质量要求关键质量要求3.2.1 3.2.1 有效性系统平均可用时间大于 99.99%。3.

5、2.2 3.2.2 性能系统并发用户在线数大于 50。普通数据录入、查找等操作,每单步操作最大延迟时间应小于 5 秒。一般查询统计,结果集在 100 条记录以内情况下,最大延迟时间不超过 30 秒。所有统计,其最大延迟时间不超过 2 分钟。3.2.3 3.2.3 性能可扩展支持硬件系统性能升级与数量扩充。3.2.4 3.2.4 功能可扩展系统应支持新的缺陷处理业务。 3.3 开发策略开发策略..1 软件复用策略软件复用策略系统中重要基础构件应当具备较高的设计与构建质量,可以在产品中复用。..2 使用开源构件使

6、用开源构件系统基础框架主要采用业界的一些主流开源框架,包括:struts、spring、hibernate、log4j 等。单元测试使用 junit 框架。..3 使用商业构件使用商业构件不适用。3.4 其它设计约束其它设计约束目标构架总体上应采用分层结构,并全面应用面向对象设计、编程技术使系统具有较好的扩展性与重用性。本系统支持与其他系统进行集成,所以要提取出良好的集成接口。 4 44 4 用例视图用例视图4.1 概述概述用例视图从用户使用的角度描述系统构架的基本外部行为特性,通常包含业务用例模型与系统用例模型。业务用例模

7、型不适用于本系统,这里只关注系统用例。这里选取了用例模型中对系统构架的内容产生重大影响的应用场景与用例集合,这些用例代表了系统主要的核心功能,往往决定了系统构架的基本组成元素。有些用例强调或决定了构架的某些具体然而重要的细节,通常也可以列在本节内,总之所列的用例集合应基本覆盖系统构架的主要方面。精选优质文档-倾情为你奉上专心-专注-专业4.2 关键用例关键用例..1 关键的系统主角(关键的系统主角(ActorActor) 精选优质文档-倾情为你奉上专心-专注-专业..2 关键的系统用例关键的系统用例 4.34

8、.34.34.3 关键系统用例简述关键系统用例简述本节包括关键用例的首要流程的简述。请参见相关用例详述文档与 Rose Model。..1 录入缺陷的基本流录入缺陷的基本流 精选优质文档-倾情为你奉上专心-专注-专业1选择创建一个新的缺陷记录【触发事件】【客服工程师/产品用户】期望添加缺陷记录时,选择“创建一个新的缺陷记录”功能,从而启动本用例的执行2创建并显示新的缺陷记录2.1创建缺陷记录并填写缺省信息系统创建一新的缺陷记录,分配一个唯一的 ID;并填写缺省信息,包括创建时间、提交人等;如果是产品用户直接提交的,则填入他在注册时已录入的联系方式、缺省的软硬件

9、环境等2.2显示新的缺陷记录信息系统显示缺陷记录录入与编辑界面,显示当前记录的缺省信息3录入和编辑提交时间、提交人基本信息【客服工程师/产品用户】可以根据需要修改提交时间、提交人等基本信息4录入和编辑缺陷基本信息【客服工程师/产品用户】录入如下信息:缺陷发现单位、产品名称、版本、发布时间和缺陷概述5录入和编辑优先级和处理时限【客服工程师/产品用户】录入缺陷紧急程度(参见关于缺陷紧急程度的确定规则 ) 、要求处理时限6录入和编辑缺陷详情6.1录入和编辑缺陷详细描述【客服工程师/产品用户】清楚描述缺陷发生时的详细错误提示、缺陷现象、软件状态,期望结果,实际与期望的差异等6.2录入和编辑缺陷重现步骤

10、包括是否可以重现,清楚描述出经过什么样的操作步骤后,导致了此缺陷的发生6.3录入和编辑缺陷产生软硬件环境为了便于诊断或者修复缺陷,需要将发生缺陷的计算机的软硬件详细信息填写清楚7选择提交缺陷记录【客服工程师/产品用户】选择提交功能8完成缺陷提交8.1验证录入数据的格式和有效性系统验证录入数据的格式是否正确,以及其是否有效8.2更新缺陷记录并加入缺陷库中系统用录入的数据更新缺陷记录,并将其加入缺陷库中8.3通知相关人员系统将该缺陷报表以电子邮件或其它形式通知给该产品的相关负责人和客服人员 5 55 5 逻辑视图逻辑视图5.1 概述概述逻辑视图从系统内在逻辑结构的角度描述系统的基

11、本结构与动态行为,通常包括分析模型(Analysis Model)、设计模型(Design Model)以及数据模型(Data Model)等。精选优质文档-倾情为你奉上专心-专注-专业设计模型说明了系统的组成元素、组织架构和关系,并描述了各组成元素的协作以及状态转换关系等(通过用例实现 Use Case Realization 予以表达)。本节将分别在系统层次结构模型中描述系统的层次组织结构;在主要的包和子系统中说明系统的具体组成;并在架构机制中详述系统中的各种构架机制;最后在关键用例实现中通过描述最重要的用例实现,来说明构架的典型协作(动态行为)。分析模型对等于设计模型,是在更高的抽象层次

12、上定义系统的结构,作为可选项,本文档将不予说明。 5.2 系统层次结构模型系统层次结构模型FoundationResourceIntegrationBusiness EntitiesBusiness LogicApplicationsLibraries本系统主要分成 5 个逻辑层:应用层(Applications)、业务逻辑层(Business Logic)、业务实体层(Business Entities)和集成层(Integration)。另外还有一个精选优质文档-倾情为你奉上专心-专注-专业Foundation 的包作为全局可用的基础设施。目标系统还使用了其它的第三方组件

13、,它们被分在 Libraries 包里面。 资源层本层主要包括数据库、中间间等底层的服务,或者外部系统的直接接口等;这些构件通常不在本项目中开发。 集成层本层主要包括整个系统的底层服务,是对其它外部系统的封装,本层多为外部系统在目标系统中的接口边界类之设计实现,通过对数据库、或消息通知系统等外部系统的封装来隔离外部系统变化对上层代码所产生的影响。 应用层本层包含很多用户界面边界类的设计实现,通过对用户界面以及界面上逻辑的封装来隔离界面变化对下层代码产生的影响。 业务实体层本层包含了系统中的各个业务实体,对实体进行持久化的功能也包含在本层。另外业务实体层还包含一些业务里面的常量定义。 业务逻辑层

14、业务服务层以业务服务的方式组织系统中的各种业务逻辑,将一些相关的、内聚的业务逻辑组织在一起成为一个业务服务,使得业务逻辑可以以业务服务为单位进行重用和替换。 Foundation 包主要包含配置文件读取、状态机、通用异常类、特殊类型等全局通用的代码,这个包里面的内容很多并不是专为目标系统而做的,是可以在其它系统中进行重用的。 Library 包包含系统用到的第三方的组件,包括测试框架、struts、spring、hibernate、log4j等。5.3 主要的设计包和子系统主要的设计包和子系统本节描述各层与服务包中具体的设计包与子系统组织结构。.15.3.15

15、.3.1 应用层应用层本层包括若干个应用子系统,以及实现 MVC 界面交互模式的相关类。BugEditingSystemAdministrationBugProcessing 实现 Web 交互机制的相关类主要包括:JSP 页面(UI Pages) 、交互数据(UI Datas) 、转发控制器(UI Controller)这三部分。精选优质文档-倾情为你奉上专心-专注-专业UI PagesUI DatasUI Controller其中,JSP 页面做为与用户交互的展现界面运行在客户端浏览器上,并由其将用户的操作转换为向服务器端的 Controller 发送的请求,同时还将用户操作发生的相应数据

16、(UI Datas)传给 Controller 处理或转发。系统的应用层主要应用 MVC 模式,使用 Struts 框架来实现,在这个框架中开发应用层时,实现机制如下图所示:精选优质文档-倾情为你奉上专心-专注-专业ActionFormDispatchActionActionServletBusinessServiceFactory(from Business Services)XXXActionXXXActionFormBasicActionSearchFormXXXSearchFormBasicFormXXXVO(from Business Objects)上图中 ActionSerlve

17、t 充当 MVC 中的 Controller 角色;BasicAction(自定义)对DispatchAction 做了扩展,用于处理一些安全相关的公用显示逻辑;XXXAction(将放在UI Controller 包中)从 BasicAction 继承,实现某用例的一组具体的交互动作(这是 TB2.3的遗留做法,应当改进,让 XXXAction 只承担一个动作):XXXAction 先从XXXForm(Struts 框架中的数据传递是通过 ActionForm 统一包装的,这些具体的 XXXForm将放在 UI Datas 包中)读取用户录入或交互中产生的数据,并赋值给一个相应的 XXXDT

18、O对象(来自业务对象层),之后从 BusinessServiceFactory 工厂(来自业务服务层)获得相应的 BusinessService 的具体实现实例,将 XXXDTO 传给它,并调用它进行相关的业务逻辑操作。本系统中从 ActionForm 扩展了一个基类 BasicForm,普通非查询类 XXXForm 将从其继承;另外还专门扩展了一个用于查询的基类 SearchForm,查询类 XXXForm 将从其继承。..2 业务逻辑层业务逻辑层本层中包含业务服务的定位机制实现,与一系列业务服务子系统和用于传递参数的数据传输对象 DTO:精选优质文档-倾情

19、为你奉上专心-专注-专业Business ProcessesServices LocaterBug ManagerBug ProcessorUser ManagerSystemUtilsCommon DTOs为了方便上层(应用层)调用业务服务,Services Locater 包中包括:一个用于创建BusinessService 的工厂类BusinessServiceFactory、一些 BusinessService 接口及其实现的子系统(其下包含若干类)。业务服务主要被应用层中的 XXXAction 调用,其调用关系如下图所示:BusinessServiceFactoryXXXAction

20、Form(from Applications)IXXXBusinessServiceXXXBusinessServiceFacadeXXXAction(from Applications)lo.XXXBO(from Business Objects)XXXVO(from Business Objects)call个 个 个 个 个 个 个 个servicemapping.xml个 个 个 个 个 个 Service个 个上图注释标签中提到的 XML 文件 servicemapping.xml 是所有 Service 的一个配置文件。应用层的 XXXAction 将做为这一层的客户端, 由 Ac

21、tion 使用 Service 工厂类精选优质文档-倾情为你奉上专心-专注-专业(BusinessServiceFactory)通过读取配置文件初始化一个 XXXService 实例,然后Action 调用 Service 中的方法进行业务逻辑处理。 ..3 业务实体层业务实体层本系统的业务对象层主要包括一些业务实体。 BugCustomerProduct..4 集成层集成层 5.4 架构机制(架构机制(ArchitecturalArchitectural MechanismMechanism)描述系统中的构

22、架机制。精选优质文档-倾情为你奉上专心-专注-专业..1 日志机制(日志机制(LogLog MechanismMechanism)系统日志机制主要使用 log4j 框架来实现,仅仅是简单的直接应用,用于记录调试信息,而没有用到审计功能。应用途径应用途径在代码中每个类取得一个 Logger 实例:然后调用 Logger 的接口方法(debug/warn/info/error/fatal)进行日志记录: ..2 实体持久化(实体持久化(EntityEntity PersistencePersistence MechanismMec

23、hanism)为了满足不同情形的实体对象持久化,这里定义了三种不同的设计机制实现。机制概要图机制概要图精选优质文档-倾情为你奉上专心-专注-专业Entity Persistence-CommonXXXEntityVOIXXXEntityDaoXXXEntityDaoHibernateEntity Persistence-CacheXXXEntityVOIXXXEntityDaoXXXEntityDaoCacheEntity Persistence-FileXXXEntityIXXXEntityDaoXXXEntityDaoFile【适用范围】所有存取响应时间要求不高的业务领域实体类【分析机制特

24、征范围】粒度:150KB数量:1000100万访问频度:10100次/秒可靠性:高【适用范围】所有存取响应时间要求高的业务领域实体类【分析机制特征范围】粒度:150KB数量:1000100万访问频度:1001000次/秒可靠性:中【适用范围】结构关系特别复杂的实体类,例如CAD图形【分析机制特征范围】粒度:110M数量:10010000访问频度:1050次/秒可靠性:高如上图所示,分别适用于不同分析机制特征的设计机制实现有:普通 Common、缓存Cache、文件 File 等三种。 机制的参与类视图机制的参与类视图普通 Common 型持久化机制的参与类:BaseObject(from ap

25、pfuse)Dao(from appfuse)BaseDaoHibernate(from appfuse)【分析机制特征】(实体持久化机制):粒度15kbyte数量10200访问频度Create: 0200 per dayRead: 10 access per hourUpdate: 100 per dayDelete: 5 per dayXXXEntityVOxxx实体类IXXXEntityDaoXXXEntityDaoHibernate 机制协作实现机制协作实现普通 Common 型持久化机制的 load 数据库数据的协作序列:精选优质文档-倾情为你奉上专心-专注-专业client cod

26、eclient codefactoryfactory : IXXXEntityDao : IXXXEntityDao : XXXEntityDaoHibernate : XXXEntityDaoHibernate : HibernateDaoSupport : HibernateDaoSupport : HibernateTemplate : HibernateTemplate : XXXEntityVO : XXXEntityVOgetDaogetXXXEntitygetHibernateTemplate( )get(XXXEntityVO.Class, Id)访问DB,并给XXXEntit

27、y赋值create赋值return XXXEntityVOreturn XXXEntityVOreturn XXXEntityDaoHibernate as IXXXEntityDao Interface应用途径应用途径 5.5 关键用例实现描述关键用例实现描述描述系统的各组成元素(类、包或子系统),为了实现各关键用例,而相互协作的顺序和交互关系。通常使用序列图、协作图来表达,根据需要也可以使用活动图或状态转换图。这里选取了用例视图中最关键的几个用例,对其用例实现加以描述。.1 .1 录入和编辑缺陷用例实现录入和编辑缺陷用例实现参与类视图:精选

28、优质文档-倾情为你奉上专心-专注-专业序列图:精选优质文档-倾情为你奉上专心-专注-专业 : BugEditPage : BugEditPagetomcat : HttpServertomcat : HttpServer : ActionServlet : ActionServletbugrecord data : BugInputFormbugrecord data : BugInputForm : NewABugRecordAction : NewABugRecordAction : BugEditDispatcher : BugEditDispatcherresultInfo : Bug

29、SubmitedSuccessPageresultInfo : BugSubmitedSuccessPage : BugRecordVO : BugRecordVO : BizServiceFinder : BizServiceFinder : IBugManager : IBugManager- Web Server -OnSubmitRecClick( )Http Requestset Data of BugRecordexecute( )createprocessEvents( )fetch data of BugRecordshowResults( )createset datacre

30、ateGetBugManager( )return BugManagerFacade as IBugManagerverifyBugRecord(BugRecordVO, BugAppendVO)submitBugRecord(BugRecordVO, BugAppendVO) 6 66 6 进程视图进程视图6.1 概述概述进程视图从系统运行时刻的角度,描述系统划分为进程、线程的结构,及其动态关系。模型主要说明进程、线程的分类,系统构架敏感的主要边界类、控制类对象等在进程、线程中的分布,以及它们之间的创建、交互与消息通讯关系等。精选优质文档-倾情为你奉上专心-专注-专业6.2

31、 总体进程结构总体进程结构 系统是以 Tomcat 这个 Web 应用服务器为基础运行的。在服务器启动时通过每个应用的web.xml 初始化并启动所用到的 Servlet,在本系统中是 struts 框架提供的ActionServlet。当客户端浏览器产生 Web 请求时,服务器找到 ActionServlet,将请求交给 Servlet 来处理;Servlet 对每个请求向 Tomcat 申请开启一个线程,并调用相应的Action 类方法,在 Action 中转调 XXXDispatcher 的 processEvent()方法,在此方法中通过调用单子类 BizServiceFinder,为每个线程创建一个接口为

温馨提示

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

评论

0/150

提交评论