为了纪念逝去的JSF,淘汰的JApplet,友好的Facelets,实用的Seam,优秀的Maven,理论的UCD,经典的Java EE,再次回顾了我的毕业论文。
它本来是短小精简的,但是在导师的要求下,不情愿的加了很多东西。在这里和大家分享一下。
BeyondTrack
软件过程支持环境
——
Web
层设计及实现
BeyondTrack
软件过程支撑环境
——
Web
层设计及实现
1
2
.
6 UCD
(
User-Centered
Design
)模型
8
图
2.1 JAp
p
let
生命周期
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
、
Facelet
s
等优秀框架的支持。
本文
主要阐述了
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 Implement
ation of Web Layer
LI, Liyuan
Abstract
I
n an increasingly
competitive society
with the rapid
development
of information
technology
, interactive Web system is
particularly important
.
T
here
are
many software companies
which
want to fundamentally improve the
efficiency
of
application development
. So
a support
ing
environment
of
software process is essential
in achieving this. Java EE can
achieve the
quick develop
ment of web systems
and facilitate the
extension
and maintenance
of these applications.
JSF
(
Java Server Faces
)
can
realize
the
simplif
ication of
programming,
with
these
excellent framework
s of
Seam, Facelets
and so on.
T
his 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
customiz
ation of
process variab
les
,
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 w
eb layer us
es
JSF
’
s
interface
framework, Seam
’
s
application framework
and Facelets
’
s
template framework
, a
nd it has these features of
a consistent user interface,
simplified
configuration
,
localiz
ation
, multi-them
es
and multi-language
s.
V
isual software process
modeling
is
implemented
by
the cross-platform
’
s
JApplet
, which
ensure
s
user
’
s security and usability
.
And
the ultimate user experience
combined with
encapsulates the lower interfaces
, complete system integration
and test
.
T
he entire
supporting
environment
of software process has
logic
separation from its
implementation
,
rich user experience
,
and
easy to
do
maint
e
n
ance
and
extension
.
Key Words
JSF, Seam, Java EE Web tier,
Software Process Support
ing
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
的认证,往往忘却了提高软件质量和生产力这一根本目的
[1
5
]
。
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汗。。。
估计是还没审核吧。