基于项目管理流程的校园软件项目协同平台
0、前言
随着信息技术的飞速发展,软件已成为人们生活必不可少的一部分,软件产品的规模也越来越庞大,对软件项目实施有效的管理显得尤为重要。现今,项目开发一直受到同学们的热捧,但是在校园软件开发过程中存在着种种的问题,通过建立基于项目管理流程的校园软件项目协同平台来为学生老师服务,可以提高校园软件项目开发的效率。
1、研究背景与研究意义
1.1.1 研究背景
随着信息技术的飞速发展,软件已成为人们生活必不可少的一部分,软件产品的规模也越来越庞大,对软件项目实施有效的管理显得尤为重要。现今,项目开发一直受到同学们的热捧,但是在校园软件开发过程中存在着种种的问题,通过建立基于项目管理流程的校园软件项目协同平台来为学生老师服务,可以提高校园软件项目开发的效率。
1.1.2 研究意义
在校园中,由于教师课业繁重,有了好的项目苦于找不到学生协作或找到的学生资源太少,以至于好的项目被搁浅甚至荒废,而学生恰恰又难以找到合适的项目或得到的项目信息太零散以至于无从下手的这种千里马遇不到伯乐,伯乐难寻千里马的障碍,基于本项目巧妙地解决了这一问题,该平台提供了教师发布项目的机会,并将各个教师所申请发布的项目归类,对于每个项目教师可将项目目的与任务、组织机构、参加项目要求、项目安排、项目评审规则、项目奖励、项目组织者联系方式等信息发布在该平台上,学生可通过自己的技术所长或爱好选择适合自己的项目,达到一箭双雕的效果。针对那些没有项目经验的不了解项目流程的学生来说,该平台提供了一系列项目管理开发流程模型,如科研项目流程模型、竞赛项目流程模型等,项目负责教师选择相应流程模型[3-8],定期要求项目团队提交相关资料,严格控制项目进度,督促学生完成分配的任务,从而可以规范一个软件开发团队的日常工作,提高工作效率,从而达到协同开发[9-12]的目的。
2、发展现状
2.1 业内人士对此类网站的研究及架构设计
近年来工作流和项目协同工作平台得到了快速发展。文献[1]应用J2EE体系架构和EJB技术实现科研管理系统。文献[2]应用开源工作流引擎和J2EE技术来实现科研项目管理,规范科研管理的业务流程和行为。前者的研究主要集中在协同设计、会议和化学等方面,而后者更注重固定流程和制度的控制,忽略了企业科研过程,具有业务流程易变、资源共享性差和系统安全性低的问题。在目前一些主流项目管理软件中,svn是一个开放源代码的版本控制系统,相较于RCS、CVS,它采用了分支管理系统,它的设计目标就是取代CVS,并且代码一致性非常高,管理方便,逻辑明确,符合一般人思维习惯。而Concurrent Version System也一度成为主流,不必担心数据流失,对中文路径名支持的较好,本地文件与库的对应可以多对多。但它却不支持文件改名且只允许存储文件。除此之外,GitHub提供Git存储库服务,基于web,允许你使用Git的源代码管理功能,或者其特性。但它可能不是捕捉创意过程和记录创意点子的最佳工具。
2.2 项目研究内容和拟解决的关键问题
2.2.1研究内容
2.2.1.1 校园软件项目主要特征的研究
针对校园软件项目的类型、规模、项目周期、资金支持度等进行调研,总结归纳出典型的几类校园项目的主要特征,同时对基于校园背景的软件项目其工作流程的差异性进行深入了解,尝试建立融合校园项目特征的项目的项目管理工作流模型。
2.2.1.2 不同类型校园软件项目管理工作流模型的建立
对主要特征研究后,接下来就要建立校园软件项目工作流模型了,工作流模型是本平台的灵魂,本平台将主要围绕工作流模型运转,故建立合适的工作流模型尤为重要。
2.2.1.3 基于项目管理流程的校园软件项目协同平台架构的设计
合理设计面向服务的平台架构,对多层中涉及的主要元素模块进行确定,为更好的实现开放式的能适应调整的架构做出相关的实验和研究。
2.2.1.4 校园软件项目协同工作平台的主要功能
在研究现有协同工作平台的主要功能的基础上,求同存异,找出共性功能,结合校园软件项目的主要特征及管理的工作流程,规划出满足高校学生需求的校园软件项目协同工作平台的主要功能。
2.2.2.拟解决的关键问题
2.2.2.1 校园项目管理工作流模型建立
计划通过对校园项目主要特征的深入研究后,将结合软件项目管理的基本原理、工作流程对不同类型的校园项目在考虑规模、周期、资金支持等因素的影响下,对该项目类型建立出合理的校园项目工作流模型。
2.2.2.2 协同工作
高效的协同工作是本平台的目的,我们需要通过对协同的深入研究来达到校园软件项目管理的高效目的。我们将通过对过程协同、数据协同、交流协同的研究让处于不同空间的项目组团队,感觉到他们无时无刻都在一起。
2.2.2.3 验收评判
验收评判的方式有很多种例如:线上专家打分制、线上投票制、在线答辩等一系列的方式,我们需要将结合学生,教师的实际情况选择一种合适的方式来进行验收评判。
2.2.2.4 结合校园软件管理
本项目旨在为学生服务,所以学生对于本项目才是主体,我们将会在前期调研中对学生的需求、困惑、自控力等做深入的分析,再对专业的软件项目管理做深入的研究后确定其最终的结论,从而将专业的软件项目管理和校园来软件项目管理有机的无缝结合。
2.3 系统实现所用技术简介
2.3.1 JSP技术
JSP全名为Java Server Pages,中文名叫java服务器页面,其根本是一个简化的Servlet设计,它是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件,后缀名为(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。本系统主要使用了ASP.NET和ADO.NET。
JSP的优点:
A.一次编写,到处运行。在这一点上Java比PHP更出色,除了系统之外,代码不用做任何更改。
B.系统的多平台支持。基本上可以在所有平台上的任意环境中开发,在任意环境中进行系统部署,在任意环境中扩展。相比ASP/PHP的局限性是显而易见的。
C.强大的可伸缩性。从只有一个小的Jar文件就可以运行Servlet/JSP,到由多台服务器进行集群和负载均衡,到多台Application进行事务处理,消息处理,一台服务器到无数台服务器,Java显示了一个巨大的生命力。
D.多样化和功能强大的开发工具支持。这一点与ASP很像,Java已经有了许多非常优秀的开发工具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。
2.3.2 MySQL数据库
MySQL是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,目前属于 Oracle 旗下公司。MySQL 最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件之一。MySQL 是一种关联数据库管理系统,关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。MySQL 所使用的 SQL 语言是用于访问数据库的最常用标准化语言。由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。
2.3.3 Ajax技术
Ajax 是一种不用刷新页面但可以跟服务器交互的技术,它可以有效地改善用户的体验,传统的请求响应模型是一种异步的模式, 用户的请求被服务器接收到以后,必须等到服务器的响应到达后,页面才会更新,这种更新是页面的完全刷新, 在等待服务器相应的过程中如果存在网络的速度等因素经常我们会看到一个空白的页面,Ajax 能够有效地解决这个问题,它是一种异步的请求响应模式, 客户端在等待服务器响应的过程中依然可以看到页面的内容并且能够感觉到相应到达后的页面局部改变,它不仅减少了页面重载的次数,而且可以将原来一些服务器端的工作利用客户端闲置的能力来处理,从而减轻服务器的负担。 Ajax 技术在本系统的用户信息管理模块得到了使用, 由于物品信息的发布必须是注册的用户, 在用户的注册界面使用Ajax 可以方便的实现用户明是否存在,密码格式,电子邮件格式是否正确等信息同时不用进行页面的完全刷新,提高了系统的性能。
同步和异步的处理方式如下:
同步:提交请求->等待服务器处理->处理完毕返回。这个期间客户端浏览 器不能干任何事。
异步:请求通过事件触发->服务器处理(这时浏览器仍然可以作其他事情)->处理完毕。
图2.1 Web的传统模型图
Web的传统模型。客户端向服务器发送一个请求,服务器返回整个页面,如此反复。
图2.2 Ajax模型图
在 Ajax模型中,数据在客户端与服务器之间独立传输。服务器不再返回整个页面。从上面两图中我们可以更加清晰的了解Ajax给我们开发所带来的好处。
2.3.4 SpringMVC框架
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等。
它是一个典型的教科书式的mvc构架,而不像struts等都是变种或者不是完全基于mvc系统的框架,对于初学者或者想了解mvc的人来说我觉得 spring是最好的,它的实现就是教科书!第二它和tapestry一样是一个纯正的servlet系统,这也是它和tapestry相比 struts所具有的优势。而且框架本身有代码,看起来容易理解。
2.3.5 Spring框架
Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson创建。简单来说,Spring是一个分层的JavaSE/EEfull-stack(一站式) 轻量级开源框架。
Rod Johnson在2002年编著的《Expert one on one J2EE design and development》一书中,对Java EE 系统框架臃肿、低效、脱离现实的种种现状提出了质疑,并积极寻求探索革新之道。以此书为指导思想,他编写了interface21框架,这是一个力图冲破J2EE传统开发的困境,从实际需求出发,着眼于轻便、灵巧,易于开发、测试和部署的轻量级开发框架。Spring框架即以interface21框架为基础,经过重新设计,并不断丰富其内涵,于2004年3月24日,发布了1.0正式版。同年他又推出了一部堪称经典的力作《Expert one-on-one J2EE Development without EJB》,该书在Java世界掀起了轩然大波,不断改变着Java开发者程序设计和开发的思考方式。在该书中,作者根据自己多年丰富的实践经验,对EJB的各种笨重臃肿的结构进行了逐一的分析和否定,并分别以简洁实用的方式替换之。至此一战功成,Rod Johnson成为一个改变Java世界的大师级人物。
Spring特点
轻量——从大小与开销两方面而言Spring都是轻量的。完整的Spring框架可以在一个大小只有1MB多的JAR文件里发布。并且Spring所需的处理开销也是微不足道的。此外,Spring是非侵入式的:典型地,Spring应用中的对象不依赖于Spring的特定类。
控制反转——Spring通过一种称作控制反转(IoC)的技术促进了低耦合。当应用了IoC,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建或者查找依赖对象。你可以认为IoC与JNDI相反——不是对象从容器中查找依赖,而是容器在对象初始化时不等对象请求就主动将依赖传递给它。
面向切面——Spring提供了面向切面编程的丰富支持,允许通过分离应用的业务逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的开发。应用对象只实现它们应该做的——完成业务逻辑——仅此而已。它们并不负责(甚至是意识)其它的系统级关注点,例如日志或事务支持。
容器——Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器,你可以配置你的每个bean如何被创建——基于一个可配置原型(prototype),你的bean可以创建一个单独的实例或者每次需要时都生成一个新的实例——以及它们是如何相互关联的。然而,Spring不应该被混同于传统的重量级的EJB容器,它们经常是庞大与笨重的,难以使用。
框架——Spring可以将简单的组件配置、组合成为复杂的应用。在Spring中,应用对象被声明式地组合,典型地是在一个XML文件里。Spring也提供了很多基础功能(事务管理、持久化框架集成等等),将应用逻辑的开发留给了你。
2.3.6 Mybaits框架
MyBatis 是支持普通 SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis 消除了几乎所有的JDBC代码和参数的手工设置以及结果集的检索。MyBatis 使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。
每个MyBatis应用程序主要都是使用SqlSessionFactory实例的,一个SqlSessionFactory实例可以通过SqlSessionFactoryBuilder获得。SqlSessionFactoryBuilder可以从一个xml配置文件或者一个预定义的配置类的实例获得。
用xml文件构建SqlSessionFactory实例是非常简单的事情。推荐在这个配置中使用类路径资源(classpath resource),但你可以使用任何Reader实例,包括用文件路径或file://开头的url创建的实例。MyBatis有一个实用类----Resources,它有很多方法,可以方便地从类路径及其它位置加载资源。
2.3.7 B/S结构和C/S结构的比较
B/S结构(Browser/Server结构)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。与C/S结构相比,B/S结构的优势在于:
A. 维护和升级方式简单;
对于B/S结构而言,开发、维护等几乎所有工作也都集中在服务器端,当企业对网站平台进行升级或维护时,只需在服务器端升级或维护即可,这减轻了异地用户系统维护与升级的成本,实现相对简单快捷。而对C/S结构来说,其客户端升级或维护时,在每台客户端上必须都要进行升级或维护,实现相对复杂。
B. 系统的性能;
在系统的性能方面,在用户使用系统时,无需安装客户端程序。任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用B/S系统的终端。操作更加便捷。
C. 投入成本比较;
B/S结构软件一般只有初期一次性投入成本。对于企业来讲,有利于软件项目控制和避免IT黑洞,而C/S结构的软件则不同,随着应用范围的扩大,投资会连绵不绝。
3、小结
本文针对校园项目开发结合相应网站的建设,综合分析了业内人士对此类网站的研究及架构设计,详细说明了目前同类网站所运用的新技术以及所涉及的新的框架领域。校园软件项目协同平台的主旨是为在校大学生提供一个项目开发的平台,能够让学生体验开发正规项目的流程,能够加强大学生的实践经验,同时可以加强大学生的日常交流。丰富大学生校内活动,同时加速大学生创业、创新意识。
4、参考文献
[1]Liu Zexuan,Jiang Chunhua, Design and implementation of science research management system based on J2EE technology [J]. Computer Engineering and Design, 2007,28(21):5218-5220(in Chinese)[刘泽轩,江春华,基于J2EE架构的科研管理系统的设计与实现[J],计算机工程与设计,2007,28(21):5218-5220.]
[2]Zheng Yang, Design and implementation of JBPM workflow based on scientific research
management information system [D]. Beijing:Beijing Jiaotong University,2011:8-25(in Chinese).[郑洋,基于JBPM工作流科研管理信息系统的设计与实现[D],北京:北京交通大学,2011:8-25.]
[3] Xv Liang,Zhang Li,Fan Zhiqiang.A real-time workflow modeling method based on UML study [J]. Journal of computer research and development, 2010,47 (7) : 1184-1191(in Chinese).[徐亮,张莉,樊志强. 一种基于UML的实时工作流建模方法研究[J]. 计算机研究与发展,2010,47(7):1184-1191]
[4]Zhang Ruisheng,Fan Xiaoliang,Wang Dongyun, etc. In the research of computer network research oriented collaborative working environment [J]. Journal of huazhong university of science and technology (natural science edition), 2007, 35 (z2) : 32-35(in Chinese).[张瑞生,范晓亮,王东云,等. 面向计算机研究的网络科研协同工作环境[J]. 华中科技大学学报(自然科学版),2007,35(z2):32-35]
[5]Yang Mingshun,Han Zhoupeng,Yu Ting, etc. The design and practice of a lightweight workflow engine [J]. Journal of xi 'an polytechnic university, 2013, 29 (1) : 20 to 26(in Chinese).[杨明顺,韩周鹏,余婷,等. 一种轻型工作流引擎的设计与实践[J]. 西安理工大学学报,2013,29(1):20-26]
[6]Chen Dan,Wang Yong,Wang Ying.Scientific research and realization of the collaborative platform based on workflow [J]. Journal of guangdong university of technology, 2014:1000-7024(in Chinese).[陈丹,王勇,王瑛. 基于工作流的科研协同平台的研究与实现[J].广东工业大学,2014:1000-7024]
[7]Tang Wenzhong,Lin Shidong,Deng Jingwen.The component model based on workflow technology research. Computer application research [J], 2008, 25 (7) [唐文忠,林时栋,邓靖文.基于工作流技术的构件模型研究.计算机应用研究[J],2008,25(7)]
[8]Zheng Yihua,Nan Kai,Yang Deting, etc. For the meeting activities of scientific research collaboration cloud platform implementation [J]. Journal of huazhong university of science and technology (natural science edition), 2011, 33 (z1) : 6, 176-179(in Chinese).[郑依华,南凯,杨德婷,等. 面向会议活动的科研协同云平台实现[J].华中科技大学学报(自然科学版),2011,39(z1):176-179]
[9]Zhang Zhiying,Wang Jianwei,Wei Xiaopeng. An instance modification method based on Petri net reasoning [J]. Computer system application, 2009, 17 (4) : 190-193.(in Chinese).[张智颖,王建维,魏小鹏. 一种基于Petri 网推理的实例修改方法[J].计算机系统应用,2009,18(4):190-193.]
[10]Li Hailing,Shi Benshan,Liu Kejian. Based on Petri net for the construction of the project implementation stage workflow modeling and simulation [J]. Journal of computer applications, 2011, 31 (10) : 2828-2831.(in Chinese).[李海凌,史本山,刘克剑. 基于Petri网的建设工程项目实施阶段工作流建模与仿真[J]. 计算机应用,2011,31(10):2828-2831.]
[11]Fan Xincan. JSP integrated project development case choreography. Higher education press. 2013(in Chinese)[范新灿.JSP综合项目开发案例精编.高等教育出版社.2013]
[12]Li Zhaofeng.ZhangDeshengJavaWeb project development case. Electronic industry press. 2010(in Chinese)[李兆锋.张得生.JavaWeb项目开发案例精粹.电子工业出版社.2010 ]