




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于Java技术的Web应用项目管理系统的设计与研究李育涵(上海交通大学软件学院 上海 200240)摘 要:如今随着信息技术的飞速发展,软件项目的规模也日趋扩大,此时必须将软件项目管理引入开发活动中,对项目的人员、进度和质量进行有效的管理和控制。在本篇论文中,讨论了基于Java技术,使用Tomcat作为web应用服务器来是设计的项目管理系统原理、设计和实现。该系统根据用户特定的开发模式,提供了项目工作分解结构、人员以及规格说明书的管理,并且能使项目经理对项目中的每个部分进行实时的进度监控,从而能够大幅度提高项目效率。关键词:B/S架构,Tomcat,Java 软件开发Research and Design ofJava based Web application Project Management systemLi Yu Han(School of Software, Shanghai Jiao Tong University, Shanghai, 200240)【Abstract】Nowadays, the information technology is developing rapidly, and the scale of the software development project enlarges greatly. So the software project management must be involved in the daily development activities to ensure efficient management and effective control over the staffs, schedule and quality of the project. This paper discusses the concepts, design and the implementation of the project management system by means of Tomcat base on the Java technology: The Project developed according to the use pattern of our client, provides the Work Breakdown Structure (WBS) management, stuff management and specification management, and also provides the project lead with the ability to monitor the real-time progress of each part of the project, which greatly improve the efficiency of the project.1. 绪论 对于软件项目开发来说,如何进行科学、有效的管理是摆在项目经理和整个软件开发团队面前的巨大的挑战。如果没有能够很好的对整个项目管理,对项目资源进行合理分配,那么项目必将会是一个失败的案例,目前,国内外已经有很多成熟的项目管理软件用来进行对于整个项目管理以及监控,我们熟悉的有Microsoft Project,IBM Rational Portfolio Manager等等。这两个产品的功能都非常的成熟和完善。然而其不足之处也是显而易见的,首先昂贵的授权费用以及复杂的项目流程培训都无疑是一个巨大的门槛,对于一些预算紧、内部临时组成开发周期短的小项目来说不是很适用甚至有牛刀杀鸡不是很适宜。1 在本篇论文中,使用Tomcat作为web应用服务器来是设计一套内部使用的项目管理系统。这个系统可以根据企业内部需求开发模式,把项目分解为工作任务分解结构(WBS)和规格说明分解结构(SBS)两个树形结构。同时提供了多项目并行、人员合理分配等协作性管理、能使项目经理对项目中的每个部分进行实时的进度监控,明确个人分工和专业化。能追踪到项目的状态、产生项目详细的报告,从而大幅度提高项目效率。2. 系统需求分析2.1项目基本元素 企业内部项目开发模式一般具有下面几类元素:项目组、项目、任务、需求规格。总体的架构如下图2-1所示:图2-1项目元素结构Fig.2-1 Project elements structure (一)项目组是若干项目的集合,表示有着一类共同属性的项目。相对于软件开发项目来说,一个项目组通常代表着一个产品系列。项目组由项目经理创建或者删除,在创建时同时设定项目组的名称、优先级、状态、开始日期以及结束日期、项目组描述,并且可以附加若干文件作为附件;系统能够自动记录项目组的创建日期、时间,以及创建人。项目经理随后可以创建项目组下面的每一个项目并任命相应的产品经理。 (二) 项目是完成某项工作的任务的集合。对于软件开发来说,通常是指一个产品的某个版本的整个开发过程。 项目是由项目经理来进行创建、删除和维护。创建的时候设置项目的名称和描述(可以附加文件)以及优先级,状态以及起止日期,并指定一个或者多个产品经理,而产品经理只能对自己负责的项目进行需求规格的维护工作。系统自动生成项目的创建日期时间以及创建人。其中项目的优先级包括:紧急(Ugent)、高(High)、 正常(Normal)和低优先级(Low);项目的状态包括:新建(New)、计划(Planned)、活动(Active)、完成(Completed)、暂停(On hold)和取消(Cancelled)。 此外,每个项目具有一个完成百分比属性,表示这个项目当前的进度。这个是根据其下的第一级任务的完成情况计算得出。 (三) 任务(Task) 任务是项目中的工作单元,代表着需要完成的一组工作。任务可以嵌套子任务,可以无限制向下分解。 任务由项目经理创建,创建的时候需要指定任务名称、描述(可以包括附件)、时间、优先级、状态、任务所有者和任务成员以及估计的期望工作量(人天数),系统自动生成创建时间以及创建人。还可以指定一个规格说明相关联。 这里尤其是在做某个项目需要众多部门的同事协作共同参与时,在创建任务同时还可以指定参与这个项目的成员组成一个虚拟团队(Virtual Team)。任务如果有虚拟团队且关联了规格说明,则对应的规格说明的产品经理自动成为这个虚拟团队的产品经理角色。 (四) 需求规格是指项目需要完成的目标,在客户的开发模式中,需求规格可以进行分解,每一项需求规格概括了一项软件产品开发的一个功能,而每一项子需求代表组成上一级功能的若干子功能之一。 需求规格具有树状结构,可以无限制分解。每需求规格由产品经理创建,删除或者维护。创建的时候需要设置的信息包括:需求规格的名称,描述(可包括附件),优先级。系统自动生成创建时间以及创建人。产品经理创建需求规格时还会估算一个用于参考的大致的人天数。每个需求规格之后还可能跟一个任务相关联,代表实现这个需求规格需要进行的任务。 (五) 人员角色在一个项目中,每一个节点都会关联着若干的成员。并且有着上下级包含的关系,即项目中任务的成员必定是项目的成员的一部分,下级任务的成员一定是上级任务成员的一部分。 在客户的开发项目中,通常会有下面几种特殊的人员角色:项目经理 (Project Lead, PL), 产品经理 (Product Manager, PM), 任务拥有者 (Task Owner), 任务成员 (Task Member), 系统管理员 (System Admin)2.2项目开发流程图图2-2 项目开发流程图Fig.2-2 Project development process diagram2.3报表生成以及其他需求可以在任意节点下按照某类条件搜索所有的子节点,可以包含的条件包括:a. 拥有者b. 相关人(在节点的用户组中)c. 状态d. 日期范围(包括 开始日期/结束日期早于/晚于指定的日期)f. 节点类型g. 完成百分比范围(修改) 各个条件之间用于关系连接,搜索结果按照深度优先顺序排列。查询结果格式如图2-3所示:图2-3 报表实例Fig.2-3 Report example3 系统设计3.1系统总体架构协作型项目管理系统使用典型的三层架构,底层是数据库实现。通过JDBC标准化接口可以支持不同类型的数据库。中间层是主要的业务逻辑模块,提供系统的主要业务逻辑实现。最上端是JSP表现层,负责将业务逻辑界面生成HTML代码在客户端的浏览器中进渲染。如图3-1所示。图3-1 B/S协作型项目管理系统使用典型的三层架构Fig.3-1 Three lawyer of B/S architecture collaborative project management system3.2数据流图图3-2 顶级数据流图Fig.3-2 Top level Data Flow Diagram3.3数据库的设计与建模 整个数据库采用开放源码的关系型数据库Mysql作为系统数据库管理系统。对于一般的个人使用者和中小型企业来说,MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体拥有成本。 系统整个分为: 节点信息, 用户信息,附件信息, 项目论坛信息, 系统用户角色信息, 规格说明信息, 节点用户组和虚拟团队, 部门信息, 历史数据快照信息等数据表格。 如下图3-3,显示这些表的大致关联:图3-3数据库关系图Fig.3-3 Database list relationship3.4模块设计 在模块初期设计过程中,我们使用UML统一建模语言进行建模,UML符号集只是一种语言而不是一种方法学。这点很重要,因为语言与方法学不同,它可以在不做任何更改的情况下很容易地适应任何公司的业务运作方式。UML还提供了多种类型的模型描述图(diagram),最常用的UML图包括:用例图、类图、序列图、状态图、活动图、组件图和部署图。 在系统地详细设计过程中,我们使用UML的类图来描述我们设计的类的结构,这样做的好处包括:首先,类的结构非常清晰易懂;其次,我们接下来可以通过工具直接自动地把类图转化为Java类文件,迅速搭起系统框架。一个典型类图类使用包含三个部分的矩形来描述。最上面的部分显示类的名称,中间部分包含类的属性,最下面的部分包含类的操作或者方法。项目管理模块是系统的核心模块之一,主要提供对项目组、项目、任务、需求规格的类的实例化以及管理的功能。在这个包内具有如下几个类,见表3-1:表3-1 项目管理模块类列表Table 3-1 Project management module classes list类名描述Node父类,提供ProjectGroup Project Task的公共属性ProjectGroup继承Node,表示一个项目组Project继承Node,表示一个项目Task继承Node,表示一个项目任务结点Spec表示一项规格说明NodeFactory用来产生Node节点实例的工厂对象人员管理模块也是系统的核心模块,主要提供了系统中关于人员的实现和管理。其中包括与节点相关联的用户组和虚拟团队、系统用户的实现和管理、以及用户所属部门的管理。包内主要成员类有,见表3-2:表3-2 人员管理模块类列表Table 3-2 People management module classes list类名描述User每一个实例代表系统中的一个用户UserManager提供对系统中用户的管理的一组静态方法DepartmentManager对系统中的用户所属部门进行管理NodeUserGroup每一个实例代表着每一个节点所关联的用户组SystemUserGroupManager管理系统用户的角色 除了上述两个重要模块外系统还有: 系统配置模块仅仅包括一个类,用来读取系统的配置文件并且动态更改系统的运行参数。 数据库连接模块主要包括三个类,用来管理系统所用数据库的连接池、并且将SQL查询操作进行封装。 搜索引擎模块负责对项目管理系统内项目组、项目、任务、规格说明和用户进行搜索。并负责生成报表功能,能够对项目的任意一级任务或者对整个项目产生详细的WBS的报表。 标签库实用程序模块通过Java的标签库TagLibs的技术特性,主要是实现了很多在JSP表现层使用的标签,极大的降低了JSP表现层的复杂性,更好的做到了表现层和业务逻辑层的分离,无论是对开发还是后期的维护都有着极大的好处。公用实用程序模块,这个模块主要是一些实用程序类。为系统提供一些低层的处理函数。4 信息系统实现4.1开放集成开发环境Eclipse Eclipse 是IBM向开源社区捐赠的一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。 Eclipse不仅仅可以作为一个Java IDE来使用。Eclipse还包括插件开发环境(PDE),用来使得软件开发人员可以无限的扩展Eclipse的功能。 尽管Eclipse是基于Java语言开发的,但它还具备支持诸如C/C+、COBOL和Eiffel等等编程语言的插件。Eclipse框架还可用来作为与软件开发无关的其他应用程序类型的基础,比如内容管理系统。 基于Eclipse的应用程序的突出例子是IBM Rational Application Developer,通过添加了对JSP、servlet、EJB、XML、Web 服务和数据库访问的支持,RAD成为了IBM强大的J2EE软件开发平台。 由于Eclipse是基于Java技术的,因此它具有Java与生俱来的优良特性:跨平台。我们的开发环境可以无需任何更改在Windows和Linux平台上自由切换完美运行。4.2 Java软件开发工具包J2SE SDK J2SE SDK的全称是Java 2 Platform Standard Edition Software Development Kit。SDK中提供了在桌面、服务器以及嵌入式领域开发Java应用程序的完整环境,其中包括了Java编译器和JRE等组件。JRE是Java Runtime Environment的缩写,中文名称为Java运行环境。JRE为运行使用Java语言编写的Applet和应用程序提供了一组库,Java虚拟机以及其他的必需组件。Java程序经过Java编译器进行编译生成字节码,也就是我们见到的.class文件。字节码文件随后就可以在各个操作系统的Java虚拟机中运行,达到了一次编译,到处运行的效果。4.3. 开源应用程序服务器TomcatTomcat是一个免费的开源的Serlvet容器,是Apache组织Jakarta项目中的一个重要的子项目(具体可以见/ products/jsp/tomcat/) 最新的Servlet和Jsp规范总能在Tomcat中得到体现, Tomcat短小精悍,配置方便,能满足我们需求所以在这次项目自然选择了Tomcat作为我们的web应用程序运行环境。4.4 开放源代码数据库mysql MySQL被广泛地应用在Internet上的中小型网站中。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库,对于一般的个人使用者和中小型规模项目来说MySQL提供的功能已经绰绰有余,而且由于MySQL是开放源码软件,因此可以大大降低总体成本。4.5 开放操作系统Linux 由于Linux是一个开放源代码的操作系统,全世界所有的Linux开发人员都是Linux的开发团队,从而使得Linux是最具活力的操作系统。如今,Linux已经具备了现代操作系统的很多特性,在很多领域,无论从技术、性能、稳定性和安全性上已经达到或者超过了很多主流的商业操作系统。与此同时,在Linux平台上的优秀的应用程序也极其丰富,基本涵盖了各个方面。Linux以其优异的特性,已经成为了服务器极其理想的操作系统平台。5系统技术要点讨论5.1 Taglibs Taglibs将标签的功能移到对应实现标签的Java类中,从而减少了在JSP页面中混合大量Java脚本的必要性。通常的脚本混合的做法是一种快而杂的编码方式,但是这种方法使得程序错综复杂、难以调试和管理。而且可能导致一段代码出现多个版本。因此从长远来看,JSP页面的表示需要一种清晰的解决方案。此时可以通过Taglibs将可以重复使用的混杂在JSP中的Java代码片断组织成清晰的模块,在所有的JSP中可以方便的调用。在此管理信息系统中,我们大量使用了自定义标签库,由此带来的直接的好处包括:大幅度提高开发效率、页面风格很容易达到一致、代码修改和调试变得非常容易。下图就是系统中使用Taglibs一些界面实例。图5-1 Taglibs实例图Fig.5-1 Taglibs Sample Diagram我们拿中间部分的SelectUserTag元素举例:具有(修改)这样复杂界面和大量的客户端JavaScript的JSP页面,其源代码仅仅如下一行:Users:teamweb:selectUser nodeID= parentNodeID=/5.2 Tomcat集成身份认证 项目管理系统还使用Tomcat提供的认证服务进行用户认证。这样可以在应用程序级进行认证工作。这样做的好处是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 细胞荧光技术基本原理与应用
- 上级医院参观汇报
- 糖尿病足干性坏疽治疗
- 宣泄心理学讲解
- 外科创伤急救技术
- 女职工特殊疾病互助保障讲解
- 软件技术方案演讲
- 乳房炎诊断技术
- 社会恐惧症病理解析与应对策略
- 社戏精彩片段讲解
- SWITCH暗黑破坏神3超级金手指修改 版本号:2.7.6.90885
- 水工闸门课件
- 通信原理教案
- 2.AD830机台板面操作讲解
- 《诺丁山》经典台词
- 职高英语词汇表优质资料
- YY/T 0752-2009电动骨组织手术设备
- GB/T 40080-2021钢管无损检测用于确认无缝和焊接钢管(埋弧焊除外)水压密实性的自动电磁检测方法
- GB/T 2-2001紧固件外螺纹零件的末端
- 路基土石方工程施工方案
- 教育评价学全套ppt课件完整版教学教程
评论
0/150
提交评论