j2ee项目实训uml及设计模式——第3章系统概要设计中的架构设计第3部分内容摘要:
以及基于框架的应用系统本身中的组件就可以被替换。 ( 3) 开发 团队构建和人员构成问题 传统软件的开发组织一般由分析员、设计员、程序员和测试员组成。 对一个小的应用系统来说,一个熟练的开发人员, 可以 兼顾以上多个 不同的 角色。 但对 面向框架的应用 系统的 开发 来说 , 应用系统的 整个开发过程 一般应该是 由 6 个 不同的 角色来完成 和协作的 ,这 6 个 角色 的描述如下 : 1) 组 件开发者 : 也是 组 件供货商,这些大多数是中间件 组 件提供者。 2) 应用 组 件集成者 : 针对某应用领域将已有 组 件组合成更大的 组 件模块或容器,作为杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 8/18 页 系统部署的基本单元。 3) 应用系统部署者 : 将系统部署基本单元放入选定的平台环境或基本框架中,完成软件定制的要求。 4) 开发平台服务器供应商 : 提供服务器、操作系统和数据库等基本软件。 5) 应用系统开发工具供应商 : 提供 组 件公共设施服务。 6) 系统管理员 : 配置硬件、网络和操作系统,监督和维护应用系统者。 这六个角色的工作 性质和内容的 专业性 都 很强,要兼顾成为多面手很不容易 ,因此,如何组织好开发队伍 尤为重要。 反思 “面向框架的应用开发” 给系统开发所带来的问题 尽管应用框架能够给开发者带来许多方便和高效,但在具体应用时也会给系统开发带来一定的负面作用。 因此,合理和有效地应用各种框架是软件系统的设计和开发人员所应该把握的基本要求。 ( 1)应用系统一般会出现一定的冗余 框架 为了能够达到一般性和普适性,会提供很“丰富”的功能实现和相应的解决方案。 这样的设计结果将导致采用框架来开发的 某一特定的 应用系统会出现一定的冗余。 ( 2)框架对应用系统本身总会出现一定限制 因为框架 系统 本身在设计 和实现 时,为了 能够 达到其特定的设计目标,一般会制定出某些规则而要求应用系统遵守,从而对应用系统本身 在设计和实现方面 总会出现一定的限制。 ( 3)系统运行的效率 对于 基于框架 技术所开发出的具体应用 系统, 由于许多 功能 实现 经常是通过配置(如XML 文件)来实现 组装 的。 与采用直接硬编码的方式相比较,这虽然 在开发方面 能提供很大的灵活性,但也往往牺牲了 系统 运行时的效率。 ( 4)平台的锁定 一个采用特定框架 技术实现 的应用系统几乎会被锁定在这个框架厂商的产品上 , 这样当系统需要进行移植时,将要求对系统的 设计和功能实现 代码进行全部或者部分的改写。 ( 5)人为地增加了学习的任务和负担 由于目前的企业级的应用框架提供了针对多种不同的应用场景下的问题的解决方法,杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 9/18 页 其中所包含的思想、技术和应用技巧会很多。 对框架的应用开发者来说,要精通特定框架的开发,便要熟悉其中的所有的用法、思路和优点、缺点等。 因此,对于开发者而言,人为地增加了学习的任务和负担。 应用 轻量级框架技术 架构应用系统 J2EE 平台中的轻量级框架技术 ( 1)轻量级 Java 技术 在 Java 应用程序开发环境中,“轻量级 Java”主要是指两个方面的内涵内容:简化的编程模型和更具响应能力的容器(非侵 入性和独立于容器性) ; 轻量级 Java 的另一个关键特征是,它不会强迫业务对象遵循某个平台的特定接口规范 这将能够允许开发人员利用 POJO( Plain Ordinary Java Objects) 来实现业务逻辑 ,比较可以 提高开发 的 效率 ,在系统的可移植性方面也具有一定的优势。 ( 2)轻量级 Java 技术中的 POJO POJO 这个概念其实当初是针对 J2EE EJB(Enterprise JavaBean)组件技术的 缺点而推出 的 , EJB 要求应用系统的组件必须继承或依赖 EJB 容器,这样 将 使得 对组件的 调试变的不方便;当然,现在 POJO 的概念已经不只最初这些概念, POJO 代表那种与容器完全脱离关系、自由自在的 Java 对象; 如果应用系统采用 POJO,意味着应用系统不依赖任何 其它的容器 系统。 系统的 解耦性 、灵活性高。 应用轻量级框架技术的主要目的 ( 1)降低开发过程中的复杂性 轻量级 Java 由于能够消除与传统 J2EE API 有关的不必要的复杂性和限制,从而有助于降低系统开发的总体成本。 ( 2)可以在容器外开发实现,同时也缩短应用程序的部署时间 因为 在 业务逻辑 的功能 实现 中是 采用 POJO 技术 ,所以不 必要部署到容器 的环境 中 运行 ,而 可以在容器外 编程 开发实现。 ( 3)有利于单元测试 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 10/18 页 因为所测试的单元组件不必在容器中运行,因此可以选择模拟( Mock)测试技术来测试各种组件。 目前 J2EE 平台中应用广泛的 三个层次的轻量级框架技术 Java 企业应用框架一般被划分为三个层次:表现层、业务逻辑组件层和持久层。 目前,针对这三层都提供有对应的框架实现 技术。 ( 1)比较流行的开源表现层框架主要有 Struts、 JSF 和 Tapestry Struts 和 JSF/Tapestry 都属于表现层框架,这两种分属不同性质的框架。 后者是一种事件驱动型的组件模型,而 Struts 只是单纯的 MVC 模式框架。 JSF/Tapestry 与 Struts 应用框架不同的是,前者是基于组件并且是事件驱动型,而不是面向脚本语言(比如 JSP 技术)的,组件是由一个定义文件 (以 XML 的格式 )、一个 HTML模板、一个 JAVA 类构成的。 ( 2)业务组件层轻量级解决方案包括 Spring、 Hivemind 等框架 但是目前使用最为广泛的还是 Spring 框架, Spring 框架是一个基于 IoC 和 AOP(面向方面编程)的构架。 采用 IoC 使得它可以很容易 地 实现组件的装配,提 供了简洁的 AOP 技术 并据此实现事务管理等,但是它不具备处理应用 系统中的 分布式的能力。 ( 3)持久层中的框架主要有 Hibernate、 JDO 以及 iBATIS Hibernate 是一个开源的 O/R Mapping 框架,它对 JDBC 进行了非常轻量级的对象封装,可以应用在任何使用 JDBC 的场合,可以在应用 EJB 的 J2EE 框架中部分取代 CMP,完成数据持久化的重任。 而 iBATIS 是一个简易的 SQL Map 工具,它是将手工编写的在 XML 配置文件中的 SQL 语句映射成 Java 对象。 轻量级框架 在应用时所应该注意的问 题 ( 1)轻量级框架不可能彻底地代替真正高端应用服务器容器的品质 虽然轻量级 Java 技术使得应用程序的开发和维护更容易,但是它们不会代替真正高端应用服务器容器的品质。 Spring 框架是不可能代替 J2EE EJB 组件技术、 Hibernate 框架也是不可能代替 J2EE EJB 组件技术中的实体 Bean( Entity Bean)技术的,而只能是对这些杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 11/18 页 相关的技术进行优。j2ee项目实训uml及设计模式——第3章系统概要设计中的架构设计第3部分
相关推荐
1、中国移动 期) - 推广 培训主讲:赵 菁日期: 2004 位第二章 职 等第三章 职 务) 解决方案 2) 系统操作 3) 业务流程培训内容 职位编码 职位名称 职位分类编码 职位分类名称省市公司用统一的弹性域结构各省职位具体如何设置,集团不作统一要求但必须遵循职位编码规则并将职位按照集团公司统一的标准进行分类用有规则的手工编号。 编码总长度为 11位,全部以数字表示。 1
1、中国移动 管理流程和功能 介绍主讲:王新刚日期: 2001- 01 前言:人力资源管理与公司战略 各省人力资源系统(一 期)的主要内容 人力资源管理未来业务流程 方案介绍和系统演示 力资源管理系统 个和企业战略匹配的人力资源管理,往往涉及企业目标的分解和设定、责权利和资源的协调和重新分配,同时可能会打破企业很多的惯例,对已有的文化产生巨大冲击。 人力资源管理系统仅仅是一个和人力资源管理相关的
e) 14 { (null, + has broken!)。 return。 } } private void readData() { try { File file = new File()。 Scanner cin = new Scanner(file)。 data[0].name = ()。 data[0].time = ()。 data[0].step = ()。 data[1]
1、机密2001年 10月 27日北京京东方科技集团股份有限公司追求卓越管理 - 京东方组织提升与流程再造项目信息系统规划 模块 最终稿2 2001 项目背景 业务战略 目前信息技术情况评估 信息系统远景规划 信息系统阶段性计划 高层行动计划 附件 信息技术与京东方业务流程的相互关系 项目实施方法学目录3 2001 项目背景 业务战略 目前信息技术情况评估 信息系统远景规划 信息系统阶段性计划
某个 系统的整体架构设计 的 示例,该系统架构是充分地应用了目前在 J2EE 平台中比较主流的三种不同形式的框架 技术。 杨教授工作室 精心创作的优秀程序员 职业提升必读系列资料 杨教授工作室,版权所有,盗版必究 , 7/15 页 图 某 系统的整体架构设计示图 采用该形式的系统架构的主要目的,是希望能够保证 项目在系统架构设计方面所提出的尽可能达到系统的可重用性
{}。 verifyActionErrors(actionErrors)。 verifyInputForward()。 } 在编写 StrutsTestCase 的测试用例时 ,要做的第一件事就是告诉 StrutsTestCase 要测试哪个 ActionMapping 类,在这里要测试 UserInfoAction 组件类 ,它被映射到 文件中的 /userLoginURI 请求路径