偶的毕业论文

 


为了纪念逝去的JSF,淘汰的JApplet,友好的Facelets,实用的Seam,优秀的Maven,理论的UCD,经典的Java EE,再次回顾了我的毕业论文。


 


它本来是短小精简的,但是在导师的要求下,不情愿的加了很多东西。在这里和大家分享一下。


 


 


 


BeyondTrack

软件过程支持环境

——


Web


层设计及实现



目录




图目录




              iii




格目录




              v



BeyondTrack



软件过程支撑环境



——



Web



层设计及实现



             
1



1



绪论



             
3



1







1



研究的背景和意义



             
3



1







2



国内外现状



             
4



1







3



研究内容



             
5



1







3







1 Java
EE








Web



层设计和实现



             
5



1







3







2 JSF



技术



             
5



1







3







3
JApplet




              5



1







4



论文组织结构



             
5



2



相关技术介绍



             
6



2







1
JApplet




              6



2







2 JSF







JavaServer
Faces








              6



2







3
Facelets




              7



2







4 Seam



             
7



2







5 Maven



             
7



2







6 UCD







User-Centered
Design




)模型



              8



2







7 Java
EE




分层模型



              9



2







8



软件过程支撑环境



             
9



3 BeyondTrack



系统需求分析



             
11



3







1



功能需求



             
11



3







2



界面驱动的需求分析



             
11



3







3



可视化软件过程建模设计器的需求分析



             
18



4 BeyondTrack



系统



Web



层设计



             
18



4







1 Web



层概要设计



             
21



4







1







1 Web



层架构及设计方法



             
21



4







1







2



页面组织结构



             
21



4







1







3 Web



层接口设计



             
22



4







2



界面设计



             
23



4







2







1
BeyondTrack




系统界面规范



             
23



4







2







2



界面设计与关系图



             
24



4







2







3



美学设计



             
26



5 BeyondTrack



系统实现



             
27



5







1 Web



层实现



             
27



5







1







1 JSF







Facelets



             
27



5







1







2



JSF



UI



组件自定义



             
27



5







1







3 JSF



页面导航与



Renderer



             
28



5







1







4 JSF



转换器、验证器及消息机制



             
28



5







1







5 JSF



国际化、本地化多主题



             
30



5







1







6



可视化的软件过程建模设计器的详细设计



             
31



5







2



系统整合



             
33



5







2







1



运行环境



             
33



5







2







2



系统测试



             
34



5







3



系统应用实例



             
35








              43



1



工作总结



             
43



2



工作展望



             
43








              44




考文献




              45








              46






插图目录







1.1
2005




年至



2008



年编程技术岗位需求



             
4







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






3.1




编辑用户信息的界面需求分析



              12







3.2




创建用户的界面需求分析



              12







3.3




注册用户的界面需求分析



              13







3.4




维护自己帐号的界面需求分析



              13







3.5




管理用户列表的界面需求分析



              13







3.6




管理项目列表的界面需求分析



              14







3.7




创建项目的界面需求分析



              14







3.8




项目信息及成员管理的界面分析需求



              14







3.9




过程管理的界面需求分析



              15







3.10




创建任务的界面需求分析



              15







3.11




管理自己任务的界面需求分析



              16







3.12




管理过程变量粒度权限的界面需求分析



              16







3.13




任务详细信息的界面需求分析



              16







3.14




创建过程的界面需求分析



              17







3.15




任务相关信息的界面需求分析



              17







3.16




活动列表的界面需求分析



              18







3.17




可视化软件



过程



建模用例图



             
18







4.1 Web




层框架



              21






4.2




页面组织结构



              22







4.3




界面框架图



              24







4.4



页面关系图



             
26






5.1
Facelets




命名空间导入



              27







5.2
Facelets




定义逻辑区域



              27







5.3
Facelets




替换逻辑区域



              27







5.4
UI




自定义组件



              28







5.5 JSF




请求处理阶段和转换器



              29






5.6
Seam




中的验证器和消息



              29







5.7 JSF




请求处理阶段和验证器



              30






5.8




黑白主题和中文语言



              30







5.9




默认主题和英文语言



              31







5.10




设计器获取节点的时序图



              31







5.11




设计器保存文件的时序图



              32







5.12




设计器类和包关系图



              32







5.13




设计器类图



              33







5.14



可视化的软件过程建模设计器



             
35






5.15




编辑用户信息



              35







5.16




管理



用户信息列表



             
36







5.17



当前登录用户维护自己的帐号



             
36






5.1



8



创建项目



             
36







5.1



9



项目列表及管理



             
37







5.20



项目信息及成员管理



             
37







5.21



过程模板列表及项目成员角色管理



             
38







5.22



上传软件过程建模模板



             
38







5.23



过程的开始活动节点



             
39







5.24



开始节点下的任务、任务模板及可
选分支




              39







5.25




过程的第一个活动节点



              39







5.26












个活动节点下的任务模板及可选分支



             
39







5.27




过程的第二个活动节点



              40







5.28




第二个活动节点下的任务模板及可选分支



              40







5.29




过程的结束活动节点



              40







5.30




结束活动节点下的任务模板及结束选项



              40







5.31




过程列表



              40







5.32




创建



任务及人员分配



             
41







5.33




当前登录用户的任务



              41







5.34




过程变量的权限



管理



             
41







5.35




任务详细信息



              42







5.36




创建



过程



             
42





表格目录





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






BeyondTrack


软件过程支撑环境




——


Web





设计





实现




丽媛



摘要:

              在这个技术飞速发展、竞争日益激烈的社会中,交互性

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

在技术选型方面都占




常重要的优势和地位。



 












1

.1
2009


年编程语言排行












































































2009





4


月排名








2008





4


月排名








编程语言








百分比








1







1







Java







19.431%







2







2







C







15.471%







3







3







C++







10.741%







4







4







PHP







9.888%







5







5







(Visual)Basic







9.097%







6







7







Python







6.080%







7







8







C#







4.059%







8







9







JavaScript







3.678%







9







6







Perl







3.462%







10







10







Ruby







2.569%



 


 


indeed-jsf-1.png









1

.1 2005

年至

2008

年编程技术岗位需求


 









至于软件过程支撑环境,

要么是价格昂贵



性能稳定

,为整个软件过程

提供支撑的环境;要么是性能低下

,价格
便宜或免费的


只涵盖了软件过程中某一部的支撑环境。

对于


实方面,国内外有


着明显的

差别。在国外,软件企业都注重落到实处,能从中取得根本上的突破。可是在国内,许多软件企业进行过
程改进只是为了通过


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.1 JAp

p

let


生命周期


D:\Thesis\Myself\doc\pic\JApplet.bmp


 


 








2



2
JSF




JavaServer Faces




JSF



Java Web

应用程序的用户界
面框架


[4


]


,其生命周期参加图

2.2






有简化编程,提高效率;


遵循模型

-

视图

-

控制器(

MVC


模式;提供事件驱动的页面导航模型;使用了


POJO

,控制反转(

IoC

)技术




标准规范和大量第三方组件库的支持能让

Web

应用具有类似桌面程序功能

等优点






存在学习曲线高;组件供应商不


可能

提供所有想要的组件;自定义组件编写过于麻烦;东西

过多多乱

;程序员和美工之间协作困难的

缺点

。幸运的是有

Facelets



Seam


这样优秀的框架为其弥补。


 








2.2 JSF

生命周期


D:\Thesis\Myself\doc\pic\jsf.bmp


 





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.3
Seam


框架



2



5 Maven


              Maven

是一个项目管理工具,它包
含了一个项目对象模型(


Project
Object Model


),一组标准集合,一个项目生
命周期(


Project
Lifecycle


),一个依赖管理系统(

Dependency Management System




用来运行定义在生命周期阶段(


phase

)中插件(

plugin

)目标(

goal


的逻辑


[


6


]





生命周期


参见图

2.4




拥有


标准的项目布局和项目结构生成器;标准的依赖管理机
制;多项目支持;在开发者需要的时候及时地下载新的插件和功能部件;生成最新项目信息的网站;集成了源代码控制软件:


CVS



Subversion

;内置的编译和
打包应用的任务;与


Jetty



cobertura



pmd



findbugs

集成

等优点



但你有可能下载到破损的版本、插件和
错误文档,需要


一定的时间和知识积累来学习,不过总的看来
它是非常优秀的。



D:\Thesis\Myself\doc\pic\maven.bmp








2.4 Maven

生命周期


 





2



6
UCD




User-Centered Design

)模型


             
把设计用户体验的工作分解成各个要素,贯穿到

UCD

模型中的每一层。

UCD


型分为五层,从下到上依次分为战略层(用户需求、网站目标),范围层(功能规格、内容需求),结构层(交互设计、信息架构),框架层(界面设计、导航设
计、信息设计)和表现层(视觉设计)


[


9]


,其模型参见图

2.5



UCD

设计伴随着整个软件的生命周期




中打破了以往传统的设计方法




能够使项目建立在需求稳定的基础上



满足用户的体验和需求



使
项目达到最大的收益。

















2.5

UCD

模型


 








2



7 Java EE

分层




模型


             
对于企业应用程序,

Java EE

平台使用分布式多层应用程序模型

,能

根据功能将应用程序逻辑分成一些
组件




组成

Java EE

应用程序的各种应用
组件




根据应用程序组件在

Java EE

环境中所属的层次,将这些组件安装在不同的计算机上

[1]


。如图

2.1

所示:



  •         
    客户端组件运行在客服端计算机上


  •         
    Web

    层组件运行在

    Java EE

    服务器上


  •          业务层组件运行在

    Java EE

    服务器上


  •         
    企业信息系统层运行在企业信息系统服务器上



 













2

.

6

Java EE

多层应用

框架


 


 





2



8

软件


程支撑环境



软件过程是指软件生命周期中所涉及的一系列相关

过程,主要包括了管理过程、支持过程和培训过程等;其中过程又是由许多的活动组织而成,主要包括需求、设计、实现、确认和支持等活动;
其中活动又是由很多任务构成的,任务是把输入转换成输出的原子操作


[11]





    在整个软件过程中,需要对其进行静态的描述,从而获得软件过程模型。然后才能针对该模型进行不断的修改,使其逐渐演化成一个最终的应
用系统。在这一过程中,我们需要根据现有的各方面资源进行适当合理的任务安排、计划、执行和总结。只有进行这样的控制,才能提高软件





产质量和生产效率。在这个过程中,想要单纯靠人来管理是很困难的。起初,人们只能依靠文档的保存来进行记录、跟踪;随着人类不断的进步和网络的不断发展,
软件过程支撑环境被逐


步提上了这个舞台。一个良好的软件过
程支撑环境能帮助人们在软件过程生产中大大提高效率。这主要取决于它能够提供文档、代码、设备、人力等整套的管理;能


跟踪到软件过程中所有最细粒度的任务;能




每一个活动根据上下文进行关联,符合人类的思考行为。这样一来便能节约大量的时间;减少程序员之间不必要的沟通;方便人员





理。从而达到提高软件生产质量和软件生产效率的最终目的。









3 BeyondTrack


系统需求分析




3



1

功能需求


              ByondTrack

是一个基于

Java EE

平台的

B/S


结构的软件过程支撑环境。在该环境下,使用者可以进行:
可视化的软件过程建模;软件过程流控制;自定制过程变量;




程变量粒度的权限管理;过程任务、参与者




理;基于


Wiki

的文档管理;追踪过程事件历史。

其功能需求概要请

参见表

3.1




 











3.1

系统功能需求表










































































用户视图








功能说明








系统管理员







维护自己的账户信息







增删改用户







管理用户角色(项目经理、一般用户)







管理用户帐号的使用状态







项目经理







维护自己的账户信息







创建和修改项目







可视化的软件过程建模







上传建模好的文档到已有



项目









在已有项目中增加和删除成员







在已有项目中根据建模的角色,对成员进行角色上的赋予或删除







在已有项目中根据所建模的过程变量进行权限管理(查看、修改)







在已有项目中根据所建模的文档创建
流程








在已有项目中根据所建模的任务创建
新任务并分配给相关人员








在已有项目中对每一个任务的进度进行跟踪







在已有项目中控制所创建的流程流向和进度









般用户









维护自己的账户信息







管理

分配给

自己的任务







修改任务的下面的变量值和任务进度







追踪分配给自己的任务



 



3



2

界面

驱动的

需求

分析


本系统使用

界面

驱动



方式来进行

需求分析



根据公司

初步需求,用

Axure

软件绘制出

原型。经过迭代



需求

获取


深入,


细节性的需求同步更新到原型上




原型和


公司

所描述的需求

大致相同时



就从软件实现的角度出发进行一系列的设计




利用界面

驱动的需求分析

可以

获取




完整




求和设计


;使

用户感性地认识系统

,作出快速

准确








提高软件系统



友好性




低系统实施成本




将客户需求明确化,消除异解。

本系统



界面驱动需求分析

结果

如下:


 


 


内容太多,我已上传到csdn上面,地址找不到了,⊙﹏⊙b汗。。。


估计是还没审核吧。