偶的毕业论文

时间:2023-01-24 20:00:50

 

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

 

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

 

 

 

BeyondTrack 软件过程支持环境—— Web 层设计及实现

目录

插图目录              iii

表格目录              v

BeyondTrack软件过程支撑环境 —— Web 层设计及实现              1

1绪论              3

11研究的背景和意义              3

12国内外现状              4

13研究内容              5

131 Java EE Web 层设计和实现              5

132 JSF 技术              5

133 JApplet              5

14论文组织结构              5

2相关技术介绍              6

21 JApplet              6

22 JSFJavaServer Faces              6

23 Facelets              7

24 Seam              7

25 Maven              7

26 UCDUser-Centered Design)模型              8

27 Java EE 分层模型              9

28软件过程支撑环境              9

3 BeyondTrack 系统需求分析              11

31功能需求              11

32界面驱动的需求分析              11

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

4 BeyondTrack 系统Web层设计              18

41 Web 层概要设计              21

411 Web 层架构及设计方法              21

412页面组织结构              21

413 Web 层接口设计              22

42界面设计              23

421 BeyondTrack 系统界面规范              23

422界面设计与关系图              24

423美学设计              26

5 BeyondTrack 系统实现              27

51 Web 层实现              27

511 JSF Facelets              27

512 JSF UI 组件自定义              27

513 JSF 页面导航与 Renderer              28

514 JSF 转换器、验证器及消息机制              28

515 JSF 国际化、本地化多主题              30

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

52系统整合              33

521运行环境              33

522 系统测试              34

53系统应用实例              35

总结              43

1工作总结              43

2工作展望              43

致谢              44

参考文献              45

附录              46

插图目录

1.1 2005年至2008年编程技术岗位需求              4

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

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.18 创建项目              36

5.19 项目列表及管理              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 能简化编程,具有 SeamFacelets 等优秀框架的支持。本文主要阐述了 BeyondTrack 软件过程支撑环境  Web 层设计及实现。该系统采用界面驱动 UCDUser-Centered Design)模型相结合的开发方式,功能包括:可视化的软件过程建模软件过程流控制自定制过程变量过程变量粒度的权限管理过程任务、参与者管理基于 Wiki 的文档管理追踪过程事件历史Web 层采用 JSF 界面框架 Seam 应用框架、 Facelets 模板框架相结合来实现具有操作界面一致配置简洁、本地化、多主题和多语言特性;可视化的软件过程建模使用跨平台的JApplet 实现,保证了用户安全性,易于用户使用;结合用户体验对底层的接口进行封装,完成系统整合测试整个软件过程支持环境逻辑与实现分离具有丰富的用户体验,易于维护和扩展。

关键词:              JSFSeamJava 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 JSFs interface framework, Seams application framework and Faceletss 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-platforms JApplet, which ensures users 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绪论

11研究的背景和意义

在这个技术飞速发展、竞争日益激烈的社会中,具有交互性的系统,尤其是企业级 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 层的实现是可行的,并且具有重要意义。

 

 

12国内外现状

结合表 1.1和图 1.1[14],我们不难看出无论在国内还是国外,Java JSF 在技术选型方面都占非常重要的优势和地位。

 

1.1 2009年编程语言排行

20094月排名

20084月排名

编程语言

百分比

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%

 

 

偶的毕业论文

1.1 2005年至2008年编程技术岗位需求

 

至于软件过程支撑环境,要么是价格昂贵性能稳定,为整个软件过程提供支撑的环境;要么是性能低下,价格便宜或免费的只涵盖了软件过程中某一部的支撑环境。对于落实方面,国内外有着明显的差别。在国外,软件企业都注重落到实处,能从中取得根本上的突破。可是在国内,许多软件企业进行过程改进只是为了通过 CMM 的认证,往往忘却了提高软件质量和生产力这一根本目的[15]

13研究内容

131 Java EE Web 层设计和实现

了解 Java EE Web 层的概念;根据需求和底层提供的接口结合 UCD 模型进行 Web 层的设计;使用 JSFSeam 等技术进行 Web 层的实现;与底层结合后进行系统的整合测试并逐步完善。

132 JSF 技术

JSF 页面导航,事件驱动,转换器,验证器,安全性能,自定义组件,EL 表达式,生命周期,国际化和本地化,组件模型,动态主题切换,Renderer等方面的技术研究及应用;JSF Facelets Seam 相结合的意义;根据使用体验和收集的资料对 JSF 进行客观的评价和展望。

133 JApplet

使用 JApplet 编写一个设计器,以便帮助用户对软件过程建模进行可视化的设计;根据设计结果生成符合软件过程定义语言规范的 XML 文档。

 

14论文组织结构

本论文主要介绍了 BeyondTrack 软件过程支撑环境 Web 层的设计和实现。主要为个章节。第一章介绍了项目背景,项目研究的内容和意义。第二章对项目中使用到的技术进行简要的介绍,主要包括了 JAppletJSFSeamMavenUCD 模型,Java EE 分层模型和软件过程支撑环境。第三章对整个系统的功能需求进行了简要的描述,并介绍了需求从获取到分析的整个过程章详细介绍了 Java EE Web 层的设计,主要分为Web 层概要设计和界面设计两大部分进行阐述。最后一章介绍了 Java EE Web 层的实现,综述了 JSFSeamFacelets 等技术在 Web 层中的详细实现;界面测试系统应用实例。最后针对本次项目的研究内容进行总结和展望并对项目作出下一步的发展计划

 

2相关技术介绍

21 JApplet

              JApplet 是运行在 Web 浏览器中的 Java 小应用程序,是 java.applet.Applet 的一个子类,添加了对 JFC/Swing 组件架构的支持[16]完全跨平台兼容;安全性能高;具有面向对象的概念;可扩展性提高二次开发速度;可自动更新版本和下载插件。其生命周期参见图 2.1

 

2.1 JApplet 生命周期

偶的毕业论文

 

 

22 JSFJavaServer Faces

JSF Java Web 应用程序的用户界面框架[4],其生命周期参加图 2.2具有简化编程,提高效率;遵循模型-视图-控制器(MVC)模式;提供事件驱动的页面导航模型;使用了POJO,控制反转(IoC)技术;其标准规范和大量第三方组件库的支持能让 Web 应用具有类似桌面程序功能等优点也存在学习曲线高;组件供应商不可能提供所有想要的组件;自定义组件编写过于麻烦;东西过多多乱;程序员和美工之间协作困难的缺点。幸运的是有 Facelets Seam 这样优秀的框架为其弥补。

 

2.2 JSF 生命周期

偶的毕业论文

 

23 Facelets

              Facelets是构建在 JSF 标准之上的一个视图处理模板框架,提供以 JSF 为核心且不依赖于 JSP 的视图技术 [5]优点如下:纳入 JSR314[17]规范;模板化;详细的错误报告;不需要 XML 配置文件;为 HTML 标准元素提供 jsfc 属性使其在编译时转换为 JSF 组件;复合组件;定制的逻辑标记;表达式语言;对设计师友好的页面开发;创建组件库;支持任何JSF渲染器;API 不依赖web容器。

 

24 Seam

              Seam 是一种企业级 Java 的应用程序框架[3]其框架参见图 2.3它能JSF完美结合,弥补其不足之处;简化EJB 3.0的开发;深度结合jBPM,减少开发时间;扩展的持久化上下文简化开发;使用注解简化XML的配置;自动化集成测试;开放性标准与开源的结合但它在 Tomcat 中部署,每一次改动都需要重新编译和部署

 

偶的毕业论文

2.3 Seam 框架

25 Maven

              Maven 是一个项目管理工具,它包含了一个项目对象模型(Project Object Model),一组标准集合,一个项目生命周期(Project Lifecycle),一个依赖管理系统(Dependency Management System和用来运行定义在生命周期阶段(phase)中插件(plugin)目标(goal)的逻辑[6]其生命周期参见图 2.4它拥有标准的项目布局和项目结构生成器;标准的依赖管理机制;多项目支持;在开发者需要的时候及时地下载新的插件和功能部件;生成最新项目信息的网站;集成了源代码控制软件:CVSSubversion;内置的编译和打包应用的任务;与 Jettycoberturapmdfindbugs集成等优点但你有可能下载到破损的版本、插件和错误文档,需要一定的时间和知识积累来学习,不过总的看来它是非常优秀的。

偶的毕业论文

2.4 Maven 生命周期

 

26 UCDUser-Centered Design)模型

              把设计用户体验的工作分解成各个要素,贯穿到 UCD 模型中的每一层。UCD 模型分为五层,从下到上依次分为战略层(用户需求、网站目标),范围层(功能规格、内容需求),结构层(交互设计、信息架构),框架层(界面设计、导航设计、信息设计)和表现层(视觉设计)[9],其模型参见图 2.5UCD设计伴随着整个软件的生命周期从中打破了以往传统的设计方法能够使项目建立在需求稳定的基础上满足用户的体验和需求使项目达到最大的收益。

偶的毕业论文


2.5 UCD 模型

 

27 Java EE 分层模型

              对于企业应用程序,Java EE 平台使用分布式多层应用程序模型,能根据功能将应用程序逻辑分成一些组件组成Java EE 应用程序的各种应用组件根据应用程序组件在 Java EE 环境中所属的层次,将这些组件安装在不同的计算机上[1]。如图 2.1 所示:

  •          客户端组件运行在客服端计算机上
  •          Web 层组件运行在 Java EE 服务器上
  •          业务层组件运行在 Java EE 服务器上
  •          企业信息系统层运行在企业信息系统服务器上

 

偶的毕业论文

2.6 Java EE 多层应用框架

 

 

28软件过程支撑环境

软件过程是指软件生命周期中所涉及的一系列相关过程,主要包括了管理过程、支持过程和培训过程等;其中过程又是由许多的活动组织而成,主要包括需求、设计、实现、确认和支持等活动;其中活动又是由很多任务构成的,任务是把输入转换成输出的原子操作[11]

    在整个软件过程中,需要对其进行静态的描述,从而获得软件过程模型。然后才能针对该模型进行不断的修改,使其逐渐演化成一个最终的应用系统。在这一过程中,我们需要根据现有的各方面资源进行适当合理的任务安排、计划、执行和总结。只有进行这样的控制,才能提高软件生产质量和生产效率。在这个过程中,想要单纯靠人来管理是很困难的。起初,人们只能依靠文档的保存来进行记录、跟踪;随着人类不断的进步和网络的不断发展,软件过程支撑环境被逐步提上了这个舞台。一个良好的软件过程支撑环境能帮助人们在软件过程生产中大大提高效率。这主要取决于它能够提供文档、代码、设备、人力等整套的管理;能跟踪到软件过程中所有最细粒度的任务;能把每一个活动根据上下文进行关联,符合人类的思考行为。这样一来便能节约大量的时间;减少程序员之间不必要的沟通;方便人员管理。从而达到提高软件生产质量和软件生产效率的最终目的。


3 BeyondTrack 系统需求分析

31功能需求

              ByondTrack 是一个基于 Java EE 平台的 B/S 结构的软件过程支撑环境。在该环境下,使用者可以进行:可视化的软件过程建模;软件过程流控制;自定制过程变量;程变量粒度的权限管理;过程任务、参与者管理;基于 Wiki 的文档管理;追踪过程事件历史。其功能需求概要请参见表 3.1

 

3.1 系统功能需求表

用户视图

功能说明

系统管理员

维护自己的账户信息

增删改用户

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

管理用户帐号的使用状态

项目经理

维护自己的账户信息

创建和修改项目

可视化的软件过程建模

上传建模好的文档到已有项目

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

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

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

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

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

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

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

般用户

维护自己的账户信息

管理分配给自己的任务

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

追踪分配给自己的任务

 

32界面驱动的需求分析

本系统使用界面驱动方式来进行需求分析根据公司初步需求,用 Axure 软件绘制出原型。经过迭代需求获取的深入,细节性的需求同步更新到原型上当原型和公司所描述的需求大致相同时就从软件实现的角度出发进行一系列的设计

利用界面驱动的需求分析可以获取正确完整需求和设计;使用户感性地认识系统,作出快速准确判断提高软件系统友好性降低系统实施成本将客户需求明确化,消除异解。本系统界面驱动需求分析结果如下:

 

 

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

估计是还没审核吧。