架构设计
RUP采用基于组件的软件架构和以架构为中心的开发方式。J2EE技术强调基于组件的软件架构,能够很好地体现RUP的架构思想。根据3D方法可以把一个J2EE应用系统的架构从三维进行分析,分别是Tier、Layer和Systematic Quality。在设计系统架构的时候,可以从这三个角度考虑。
Tier
从Tier层的角度进行考虑,一个J2EE应用系统的架构可以分为以下几个部分:客户端层、表示层、业务逻辑层、集成层、资源层,如图2所示。每层都是按系统中业务逻辑而划分的,它具有唯一的职责。每层与相邻层都是松散耦合的。
|
|
| 图2:基于Tier层的J2EE应用系统架构 |
在实现的时候,需要结合项目的具体情况而定。基于MVC设计模式的J2EE Web应用系统中,客户一般访问JSP。然后由Control层进行处理:如果需要进行复杂的业务逻辑处理并且已经有后台实现,业务逻辑使用Facade模式进行封装,形成统一的接口,业务逻辑层实现复杂的事务处理;如果需要访问资源层,再经过DAO层访问资源。
Layer
从Layer的角度进行考虑,一个J2EE应用系统的架构可以分为几个部分:最下层为操作系统、Java虚拟机和网络,它们负责系统的底层操作和网络数据的传输;之上是J2EE服务层,一般由J2EE服务器(如WebSphere,WebLogic等)提供各种基础服务,如事务的管理(JTS)、命名目录服务(JNDI)、负载均衡(Load Balancing)、容错(failover)、安全(security)等;其次是通用业务层,它一般完成与具体业务无关的基本操作,由通用的组件来实现,如数据库处理组件、系统错误处理组件、字符处理和数值处理组件、日志(10g)处理、数据转化和编码维护等;最上层才是具体业务逻辑模块,它完成具体的业务逻辑。
|
|
| 图3:基于Layer的J2EE应用系统架构 |
在实现的时候.底层一般是不需开发人员关心的操作系统和网络环境,并且不同J2EE服务器厂商都提供了相应J2EE服务层, 开发人员需要关心上面两层的实现。如果是J2EEWeb应用体系,应用服务层一般会使用Struts框架。log服务一般选择log4j等。最上层才是具体业务模块。
Systematic Quality
这是指在软件架构中通过一定的办法或者使用一定的工具来达到系统要求的QoS,一般指可扩展性、可移植性、可维护性、安全等等,而这些恰恰是J2EE架构本身所带来的好处。
实现和测试
实现是软件开发人员编写代码来完成每一个组件。测试是用来保证软件质量的重要手段。采用RUP的软件工程过程后,整个项目被划分成不同的迭代。每个迭代(除了初始迭代)的范围是一个或者多个独立的BUC, 目标是编写代码实现BUC并且保证软件的质量。
在实现和测试的时候,集成(integration)是很重要的。这是因为整个软件开发过程分成多个迭代来完成,每个迭代(除初始迭代外)都是为了实现应用系统的一个部分。对于相邻的两个迭代。后者是在前者的基础上进行开发的,是实现功能上的一个增量。因此,相邻迭代之间需要功能上的集成。此外,每一个迭代都是由BUC组成的。从逻辑上来看,一个BUC是由一个或者多个SUC组成的。从实现上来看,每个SUC是由一个或者多个组件(component)组成的。因此,每一个迭代中都需要组件之间的集成,如图4所示。
![]() |
| 图4:BUC的组成结构 |
根据集成程度的不同,可以划分几个不同的开发集成和测试:
首先是SUC集成和单元测试。这个是粒度最小的集成,它把几个不同的组件集成起来,实现同一个SUC。例如,SUC1是通过集成C1和C2来实现的。同时,在集成完成后,进行相应的单元测试。
其次是BUC集成和集成测试。BUC集成是把几个相关的组件集成起来,来实现它的功能。图4中BUC的实现需要集成4个组件。同时,在集成完成后进行相应的集成测试。
再次是迭代内集成和系统测试。迭代内集成从功能上来看,就是把这个迭代包含的所有BUC集成起来;从代码上看,是把所有和BUC相关的组件集成起来。同时,在集成完成后进行系统测试。系统测试分两步,首先是从功能上来测试每个BUC,其次是测试不同BUC之间的依赖和约束。
最后是迭代间集成和回归测试。对于相邻的两个迭代,从功能上来看,后者是前者基础上的一个增量。迭代间集成把这个增量准确地集成到应用系统上。同时,在集成完成后进行衰减测试。回归测试不但要测试功能增量的正确性。而且要测试增量发生后系统原来功能的正确性。
| 共3页: 上一页 [1] 2 [3] 下一页 | ||
|