为了纪念逝去的JSF,淘汰的JApplet,友好的Facelets,实用的Seam,优秀的Maven,理论的UCD,经典的Java EE,再次回顾了我的毕业论文。
它本来是短小精简的,但是在导师的要求下,不情愿的加了很多东西。在这里和大家分享一下。
BeyondTrack 软件过程支持环境—— Web 层设计及实现
BeyondTrack软件过程支撑环境 —— Web 层设计及实现 1
2.6 UCD(User-Centered Design)模型 8
图 2.1 JApplet 生命周期 6
图 2.2 JSF 生命周期 6
图 2.3 Seam 框架 7
图 2.4 Maven 生命周期 8
图 2.5 UCD 模型 8
图 2.6 Java EE 多层应用框架 9
图 4.1 Web 层框架 21
图 4.4 页面关系图 26
图 5.5 JSF 请求处理阶段和转换器 29
图 5.7 JSF 请求处理阶段和验证器 30
图 5.14 可视化的软件过程建模设计器 35
图 5.17 当前登录用户维护自己的帐号 36
表 1.1 2009年编程语言排行 4
表 3.1 系统功能需求表 11
表 3.2 连接两个活动节点的用例描述 18
表 3.3 移动节点的用例描述 18
表 3.3 创建活动节点的用例描述 19
表 3.4 创建过程名称的用例描述 19
表 3.5 添加角色的用例描述 19
表 3.6 删除角色的用例描述 19
表 3.7 移动线的用例描述 20
表 3.8 生成 XML文档的用例描述 20
表 3.9 删除所有节点和线的用例描述 20
表 3.10 节点和线的重命名的用例描述 20
表 4.1 Web 层接口设计 22
表 4.2 控件使用说明表 23
表 4.3 保留字列表 24
表 4.4 界面设计简介表 25
表 5.1 系统功能测试列表 34
12
李丽媛
摘要: 在这个技术飞速发展、竞争日益激烈的社会中,交互性 Web 系统显得格外重要;面对众多软件公司,想要从根本上提高效率,软件过程支撑环境是必不可少的。Java EE 能快速开发和实现 Web 系统,并且便于扩展、方便管理和维护;JSF 能简化编程,具有 Seam、Facelets 等优秀框架的支持。本文主要阐述了 BeyondTrack 软件过程支撑环境 Web 层设计及实现。该系统采用界面驱动和 UCD(User-Centered Design)模型相结合的开发方式,功能包括:可视化的软件过程建模,软件过程流控制,自定制过程变量,过程变量粒度的权限管理,过程任务、参与者管理,基于 Wiki 的文档管理和追踪过程事件历史。Web 层采用 JSF 界面框架与 Seam 应用框架、 Facelets 模板框架相结合来实现,具有操作界面一致、配置简洁、本地化、多主题和多语言的特性;可视化的软件过程建模使用跨平台的JApplet 实现,保证了用户安全性,易于用户使用;结合用户体验对底层的接口进行封装,完成系统的整合与测试。整个软件过程支持环境逻辑与实现分离,具有丰富的用户体验,易于维护和扩展。
关键词: JSF、Seam、Java EE Web 层、软件过程支撑环境
BeyondTrack: the Supporting Environment of Software Process
- The Design and Implementation of Web Layer
LI, Liyuan
Abstract In an increasingly competitive society with the rapid development of information technology, interactive Web system is particularly important. There are many software companies which want to fundamentally improve the efficiency of application development. So a supporting environment of software process is essential in achieving this. Java EE can achieve the quick development of web systems and facilitate the extension and maintenance of these applications. JSF (Java Server Faces) can realize the simplification of programming, with these excellent frameworks of Seam, Facelets and so on. This paper represents the design and implementation of BeyondTack’s web layer. The development method of system adopts both interface-driven and UCD (User-Centered Design) model. This system includes these functions of visual software process modeling, the control of software process flow, the customization of process variables, permission management of process variable-scoped, the management of process tasks and actors, the Wiki-based document management and tracking the events of process history. The web layer uses JSF’s interface framework, Seam’s application framework and Facelets’s template framework, and it has these features of a consistent user interface, simplified configuration, localization, multi-themes and multi-languages. Visual software process modeling is implemented by the cross-platform’s JApplet, which ensures user’s security and usability. And the ultimate user experience combined with encapsulates the lower interfaces , complete system integration and test. The entire supporting environment of software process has logic separation from its implementation, rich user experience, and easy to do maintenance and extension.
Key Words JSF, Seam, Java EE Web tier, Software Process Supporting Environment
1绪论
1.1研究的背景和意义
在这个技术飞速发展、竞争日益激烈的社会中,具有交互性的系统,尤其是企业级 Web 应用系统显得格外重要。在一些科技发达的国家中,人们越来越多的依赖电子设备获取大量信息和服务,他们每时每刻都离不开这些信息技术,并且变得更加的依赖。今天,人们对这些技术所展现出来的交互情况有了新的期待和要求,他们希望这些交互性系统能够像桌面应用程序一样简单实用。看到了人们如此的期待,IT 届各位大头纷纷推出各种 Web 技术和产品。Web UI 技术也因此开始不断的发展,企业级 Web 应用系统也拥有了越来越多的 UI 交互功能,其特征也越来越接近桌面应用软件。
一个成功的企业级 Web 应用系统,界面丰富的表现是必不可少的,但效率,安全性能和服务器等方面也是不可低估的。如果你已经在这个领域中工作,你就应该知道当今企业级 Web 应用系统的要求非常高,必须设计、编译并产生符合企业级 Web 应用标准的程序,以缩减所需资金、获取更高速度并减少所需资源。为了缩减开发成本,快速跟踪企业应用的设计和开发,Java EE 技术提供了基于组件的设计方法——开发、集成、部署应用程序。Java EE 平台提供了多层分布式应用模式;一些可重用的组件;一个统一的安全模型;灵活的事务控制;借助基于可扩展标记语言(XML)的开放标准和协议的集成数据交换提供 Web 服务支持[1]。而面对 Java EE 的 Web 层,JSF 又是其中的佼佼者,它不仅简化编程,提高效率,还具有丰富的组件等等一系列优点。它们逻辑与实现分离,达到代码清晰,结构分明,易于修改、维护、复用、控制和延展的目的。能为基于组件驱动的 Web 编程提供支持;为业务组件化奠定基础;使开发人员只关注某一层,分工明确,提高开发速度;让接口被模块调用,减少重复开发,可用新的实现替换原有实现;令模型不依赖于视图,当用户界面更改时不会影响模型。因此可见,在除技术之外的相等条件下,选择 JSF 作为 Java EE Web 层的主流技术,无论在成本、性能和时间上都将具有无可比拟的优势。这样一个企业级 Web 应用系统失败的概率就远远降低,乃至为零了。
另外,在当今 IT 公司层出不穷的现状中,想要与时间和金钱赛跑,赢在所有人的前面,软件过程支撑环境是必不可少的。不论在国内还是国外,一个从本质上提高效率和质量,运营良好,有高额利润的 IT 公司都在某种程度上都具备一定规模的软件过程支撑环境。它不仅能减少沟通成本、节省大量时间,还可以看到整个生产线所存在的问题,以便及时的进行改进。
因此,针对以上现实情况。使用基于 Java EE 来实现软件过程支撑环境,并使用 JSF 进行 Web 层的实现是可行的,并且具有重要意义。
1.2国内外现状
结合表 1.1和图 1.1[14],我们不难看出无论在国内还是国外,Java 和JSF 在技术选型方面都占有非常重要的优势和地位。
至于软件过程支撑环境,要么是价格昂贵,性能稳定,为整个软件过程提供支撑的环境;要么是性能低下,价格便宜或免费的只涵盖了软件过程中某一部的支撑环境。对于落实方面,国内外有着明显的差别。在国外,软件企业都注重落到实处,能从中取得根本上的突破。可是在国内,许多软件企业进行过程改进只是为了通过 CMM 的认证,往往忘却了提高软件质量和生产力这一根本目的[15]。
1.3研究内容
1.3.1 Java EE 中 Web 层设计和实现
了解 Java EE 中 Web 层的概念;根据需求和底层提供的接口结合 UCD 模型进行 Web 层的设计;使用 JSF、Seam 等技术进行 Web 层的实现;与底层结合后进行系统的整合及测试,并逐步完善。
1.3.2 JSF 技术
JSF 页面导航,事件驱动,转换器,验证器,安全性能,自定义组件,EL 表达式,生命周期,国际化和本地化,组件模型,动态主题切换,Renderer等方面的技术研究及应用;JSF 与 Facelets 和 Seam 相结合的意义;根据使用体验和收集的资料对 JSF 进行客观的评价和展望。
1.3.3 JApplet
使用 JApplet 编写一个设计器,以便帮助用户对软件过程建模进行可视化的设计;根据设计结果生成符合软件过程定义语言规范的 XML 文档。
1.4论文组织结构
本论文主要介绍了 BeyondTrack 软件过程支撑环境 Web 层的设计和实现。主要为五个章节。第一章介绍了项目背景,项目研究的内容和意义。第二章对项目中使用到的技术进行简要的介绍,主要包括了 JApplet,JSF,Seam,Maven,UCD 模型,Java EE 分层模型和软件过程支撑环境。第三章对整个系统的功能需求进行了简要的描述,并介绍了需求从获取到分析的整个过程。第四章详细介绍了 Java EE 中 Web 层的设计,主要分为Web 层概要设计和界面设计两大部分进行阐述。最后一章介绍了 Java EE 中 Web 层的实现,综述了 JSF、Seam、Facelets 等技术在 Web 层中的详细实现;界面测试和系统应用实例。最后针对本次项目的研究内容进行总结和展望并对项目作出下一步的发展计划。
2相关技术介绍
2.1 JApplet
JApplet 是运行在 Web 浏览器中的 Java 小应用程序,是 java.applet.Applet 的一个子类,添加了对 JFC/Swing 组件架构的支持[16]。能完全跨平台兼容;安全性能高;具有面向对象的概念;其可扩展性能提高二次开发速度;可自动更新版本和下载插件。其生命周期参见图 2.1。
2.2 JSF(JavaServer Faces)
JSF 是 Java Web 应用程序的用户界面框架[4],其生命周期参加图 2.2。它具有简化编程,提高效率;遵循模型-视图-控制器(MVC)模式;提供事件驱动的页面导航模型;使用了POJO,控制反转(IoC)技术;其标准规范和大量第三方组件库的支持能让 Web 应用具有类似桌面程序功能等优点。但也存在学习曲线高;组件供应商不可能提供所有想要的组件;自定义组件编写过于麻烦;东西过多多乱;程序员和美工之间协作困难的缺点。幸运的是有 Facelets 和 Seam 这样优秀的框架为其弥补。
2.3 Facelets
Facelets是构建在 JSF 标准之上的一个视图处理模板框架,提供以 JSF 为核心且不依赖于 JSP 的视图技术 [5]。优点如下:纳入了 JSR314[17]规范;模板化;详细的错误报告;不需要 XML 配置文件;为 HTML 标准元素提供 jsfc 属性,使其在编译时转换为 JSF 组件;复合组件;定制的逻辑标记;表达式语言;对设计师友好的页面开发;创建组件库;支持任何JSF渲染器;API 不依赖web容器。
2.4 Seam
Seam 是一种企业级 Java 的应用程序框架[3],其框架参见图 2.3。它能与JSF完美结合,弥补其不足之处;简化EJB 3.0的开发;深度结合jBPM,减少开发时间;扩展的持久化上下文,简化开发;使用注解简化XML的配置;自动化集成测试;开放性标准与开源的结合。但它在 Tomcat 中部署,每一次改动都需要重新编译和部署。
2.5 Maven
Maven 是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System)和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑[6],其生命周期参见图 2.4。它拥有标准的项目布局和项目结构生成器;标准的依赖管理机制;多项目支持;在开发者需要的时候及时地下载新的插件和功能部件;生成最新项目信息的网站;集成了源代码控制软件:CVS和Subversion;内置的编译和打包应用的任务;与 Jetty、cobertura、pmd、findbugs集成等优点。但你有可能下载到破损的版本、插件和错误文档,需要一定的时间和知识积累来学习,不过总的看来它是非常优秀的。
2.6 UCD(User-Centered Design)模型
把设计用户体验的工作分解成各个要素,贯穿到 UCD 模型中的每一层。UCD 模型分为五层,从下到上依次分为战略层(用户需求、网站目标),范围层(功能规格、内容需求),结构层(交互设计、信息架构),框架层(界面设计、导航设计、信息设计)和表现层(视觉设计)[9],其模型参见图 2.5。UCD设计伴随着整个软件的生命周期;从中打破了以往传统的设计方法;能够使项目建立在需求稳定的基础上;满足用户的体验和需求;使项目达到最大的收益。
2.7 Java EE 分层模型
对于企业应用程序,Java EE 平台使用分布式多层应用程序模型,能根据功能将应用程序逻辑分成一些组件。组成Java EE 应用程序的各种应用组件应根据应用程序组件在 Java EE 环境中所属的层次,将这些组件安装在不同的计算机上[1]。如图 2.1 所示:
- 客户端组件运行在客服端计算机上
- Web 层组件运行在 Java EE 服务器上
- 业务层组件运行在 Java EE 服务器上
- 企业信息系统层运行在企业信息系统服务器上
2.8软件过程支撑环境
软件过程是指软件生命周期中所涉及的一系列相关过程,主要包括了管理过程、支持过程和培训过程等;其中过程又是由许多的活动组织而成,主要包括需求、设计、实现、确认和支持等活动;其中活动又是由很多任务构成的,任务是把输入转换成输出的原子操作[11]。
在整个软件过程中,需要对其进行静态的描述,从而获得软件过程模型。然后才能针对该模型进行不断的修改,使其逐渐演化成一个最终的应用系统。在这一过程中,我们需要根据现有的各方面资源进行适当合理的任务安排、计划、执行和总结。只有进行这样的控制,才能提高软件的生产质量和生产效率。在这个过程中,想要单纯靠人来管理是很困难的。起初,人们只能依靠文档的保存来进行记录、跟踪;随着人类不断的进步和网络的不断发展,软件过程支撑环境被逐步提上了这个舞台。一个良好的软件过程支撑环境能帮助人们在软件过程生产中大大提高效率。这主要取决于它能够提供文档、代码、设备、人力等整套的管理;能跟踪到软件过程中所有最细粒度的任务;能够把每一个活动根据上下文进行关联,符合人类的思考行为。这样一来便能节约大量的时间;减少程序员之间不必要的沟通;方便人员的管理。从而达到提高软件生产质量和软件生产效率的最终目的。
3 BeyondTrack 系统需求分析
3.1功能需求
ByondTrack 是一个基于 Java EE 平台的 B/S 结构的软件过程支撑环境。在该环境下,使用者可以进行:可视化的软件过程建模;软件过程流控制;自定制过程变量;过程变量粒度的权限管理;过程任务、参与者的管理;基于 Wiki 的文档管理;追踪过程事件历史。其功能需求概要请参见表 3.1。
3.2界面驱动的需求分析
本系统使用界面驱动的方式来进行需求分析。根据公司初步需求,用 Axure 软件绘制出原型。经过迭代和需求获取的深入,细节性的需求同步更新到原型上。当原型和公司所描述的需求大致相同时,就从软件实现的角度出发进行一系列的设计。
利用界面驱动的需求分析可以获取正确完整的需求和设计;使用户感性地认识系统,作出快速准确的判断;提高软件系统的友好性;降低系统实施成本;将客户需求明确化,消除异解。本系统的界面驱动需求分析结果如下:
内容太多,我已上传到csdn上面,地址找不到了,⊙﹏⊙b汗。。。
估计是还没审核吧。