许统德, 李法春
(1.广东农工商职业技术学院教务处, 广东 广州 510507;2.广东农工商职业技术学院机电系, 广东 广州 510507)
基于三层架构与MVC模式的项目管理系统设计与实现
许统德1, 李法春2
(1.广东农工商职业技术学院教务处,广东广州510507;2.广东农工商职业技术学院机电系,广东广州510507)
本系统在研究分析项目管理理论与实践,结合我院省示范性高职院校建设项目等特色项目的建设管理实践,开发设计了一套基于三层架构与MVC模式的系统架构,且多用户管理人员能在线实时采集项目建设信息,实现项目管理的进度监控、智能反馈及统计等功能的项目管理系统,并在我院进行了应用实践,实践证明了该系统研制的正确性和有效性。
高职院校;项目管理系统;MVC模式;RBAC方法
应用项目管理系统对项目进行信息化管理,可以有效地组织项目计划,协调企业资源和业务活动,控制成本、进度和风险[1]。根据文献检索,国内外涉及项目管理系统开发的文献较多,特别是博士论文或硕士论文中有关项目管理系统开发的论文特别多,包括基建项目、工程项目、科研项目、政府项目等管理系统[2],表现出项目管理系统已经得到了广泛的应用。但从现状来看,我国的项目管理系统中信息技术的运用尚处于起步阶段,而且层次相差也比较大,尤其是同国外之间的差距,不仅仅体现在信息工具本身,更多的是意识、量化以及细化管理方面上。我国在项目管理的基本程序以及工具上相当缺乏竞争力,而且在组织形式上也很不重视。归纳起来,项目的信息化管理大体分为三个层次:①大多数属于初级水平,即项目管理仅限于辅助打字、报表以及概预算应用等方面;②少数达到了中级水准,即能够进行局部的系统应用。比如项目的进度、材料以及估算和综合检测等;③极少数能够达到较高级的水平。
近年来,各高职院校随着内涵建设地不断深入,加大了投入和建设力度,积极申报了各级各类质量工程等特色内涵项目,其中部分项目建设期长、投入大、影响力广泛等特点,使得项目建设管控、资源共享、数据统计的及时性和有效性都难于按期保质保量完成,如我院省示范性高职院校(以下简称示范校)建设项目,虽然各子项目建设团队根据建设方案和任务书开展了一系列工作,但是还存在一定问题,主要包括:①缺乏对项目计划的有效管理,无法及时共享项目计划信息,也无法实现对项目组成员所需进行工作的管理和提醒。②缺乏对项目执行过程的有效监控,预防项目风险的发生。项目组成员无法对项目进度状态有总体的把握和清晰的认识,存在的问题没有得到及时的反馈解决。③项目数据和资料等没有得到及时共享和更新,项目文档没有得到合理的管理。④项目绩效评价缺乏数据支撑。项目建设的绩效评价,往往依赖于主观评价,缺乏量化的数据支撑。⑤项目组成员缺乏及时的沟通。对于待处理和审核的任务、文档和问题等,因缺乏有效的沟通机制,没有得到及时地处理,延长了项目周期。⑥子项目间资源存在冲突。示范校建设项目中包括多个子项目,项目间的人力资源、设备资源等可能产生冲突,有必要对项目间的资源进行统筹规划。⑦项目经费使用不及时,使用状况不清楚明了。
综上所述,如何开发设计一套基于三层架构与MVC模式的系统架构,且多用户管理人员在线实时采集项目建设信息,实现项目管理的进度监控、智能反馈及统计等功能的项目管理系统,利用该系统平台对各级各类建设项目实行全面管理,及时了解项目建设情况,实现管理的标准化、规范化、科学化及高效化,为各高职院校管理各级各类项目提供示范及借鉴,是笔者研究的出发点。
通过比较国内外现有的项目管理理论与实践,结合我院示范校项目建设情况,将项目管理内容划分为项目信息管理、项目计划管理、项目进度管理和项目经费管理等四个方面内容进行项目管理。根据RUP理论[3],系统主要设计如下:
(一)功能模块设计
整个系统功能分成五个模块,包括项目信息管理模块、项目计划管理模块、项目进度管理模块、项目经费管理模块和系统管理模块等5个模块。如图1所示,具体描述如下:
(1)项目信息管理模块:实现项目基本信息的管理,具有添加、删除、修改和查询等功能;
(2)项目计划管理模块:实现项目计划、内容和目标的管理,具有添加、删除、修改、查询和导入等功能;
(3)项目进度管理模块:实现项目进度状况、实施登记和检查评价的管理,具有上传、删除、修改、分类查询统计和导出等功能;
(4)项目经费管理模块:实现项目经费预算、报销和使用状况的管理,具有添加、删除、修改、分类查询统计和导出等功能;
(5)系统管理模块:实现用户管理、资源管理、安全管理等功能,其中用户管理包括用户登录、注册、密码修改等功能,资源管理和安全管理主要包括数据备份、导入导出、系统日志以及权限设置等功能。
(二)数据库设计
图1 系统主要功能模块
系统的数据库采用微软公司的SQL Server2008数据库管理开发平台,它是一种广泛使用的数据库系统,具有强大的数据存储和管理能力[4-5]。根据系统功能模块的设计,对应数据库设计涉及到20张数据库表,其有用户管理表、角色表、部门表、主项目表、子项目表、主成员表、子成员表、建设内容表、项目投入表、项目计划表、项目报销表、系统设置表等等,具体内容不再详细描述。系统中的数据库模型采用的是关系数据模型,所涉及的主要实体及其之间的联系如图2所示。
(三)用户流程设计
图2 数据库表关系图
UML统一建模语言是面向对象软件的标准化建模语言,因其简单、统一的特点,且能表达软件设计中的动态和静态信息,目前已成为可视化建模语言的工业标准。在软件开发过程中,统一建模语言可以在整个设计周期中使用,帮助设计者缩短设计时间,减少改进的成本,使软硬件分割最优。该系统管理涉及四类用户,包括系统管理员、项目管理员、示范办/学院领导、财务人员,以项目管理员用例图为例,如下图3所示。
图3 项目管理员权限流程图
(一)基于三层架构与MVC模式的系统架构
系统采用基于模块和组件化的ASP.NET技术设计与开发,具有优秀的定制性与拓展性,并基于此搭建基础三层架构,即由表现层(UI)、业务层(BLL)、数据层(DAL)组成,MVC模式的代码结构置于三层中的表现层,这样的多层设计思想可以更加符合学校项目复杂业务的应用需求。
表现层主要是通过Web方式显示界面的输入与输出,表示层视图设计的优劣直接影响到用户操作习惯和快速了解项目信息的进度;业务层主要是针对表现层的具体业务需求,为表现层的数据提供可调用的方法支持,如果逻辑层的业务方法设计得十分完善,尽管表现层的需求随意变更,逻辑层都能充分地提供数据服务支持;数据层则是通过读取XML文件,或者通过EF技术实现对数据库的数据访问,其主要是为表现层和业务层提供实体类和数据操作服务。
MVC作为一种设计模式,它的使用并不限于任何语言,将其与.NET技术的结合使系统具有优秀的扩展性。基于MVC的设计思想将应用程序分解为模型—视图—控制器(Model—View—Controller)三个部分[6],相对于传统的WebForm的实现方式,其将展示和逻辑彻底分开,每部分都相对独立,职责单一。
模型(Model)是用于处理应用程序中数据逻辑的部分[7],针对本系统的业务复杂性,模型层主要是实现视图模型的功能,即View-Model,为视图层提供对象支持。而将流程引擎模型处于数据访问层中,流程引擎是流程处理的核心,负责流程业务的定义和规则制定。数据访问层中还集成了与数据库实体对应的数据对象以及一系列的业务方法,主要实现对数据库以及XML文件中数据的访问操作。
视图(View)是应用程序中的用户界面(UI)组件,在.NET框架中主要有Razor和WebForm两种视图表现方式[7-8],传统的WebForm方式采用事件驱动模式来控制应用程序对数据的请求,由于Web页面的状态是不能持久的,因此大量的服务器端控件使页面状态管理变得轻松,但是这样造成页面显示与逻辑控制是紧耦合的状态,即页面需求的变化会影响后台逻辑代码的变化。而随着系统业务复杂性和程序规模的增大,其功能扩展与维护变得越来越困难,而Razor视图则减少了程序中的耦合度,只是对用户的数据请求进行请求响应,而不进行业务流程上的数据处理,这样能对应用程序的行为有灵活的控制。
控制器(Controller)是视图与模型之间的桥梁,是处理与用户界面的交互、并生成视图层需要的视图模型,然后根据获得的数据选择合适的视图来显示数据的基础组件。通过MVC的路由机制,使控制器中的Action()方法接收用户发来的数据请求,然后根据业务需要从数据模型中访问数据,并将结果返回给Controller,最后由Controller选择合适的分布视图进行输出显示。也就是说控制器并不对数据进行处理,而只是对模型中的业务方法进行调用并访问数据,然后选择相应的视图呈现数据的组件。系统架构结构关系图如图4所示。
图4 系统架构结构关系图
虽然使用MVC模式开发具有很多优点,但严格执行MVC设计模式的Web程序对于一些简单功能界面而言,却是增加了代码实现的复杂性。因为其严格遵守MVC模式的原则,使模型、控制器与视图彻底分离,原先的WebForm方式的页面继承原则和服务器控件不能使用,并且一个视图页面可能多次访问数据模型,由此可能产生重复的数据访问,从而影响系统的执行效率。
本系统在代码组织结构上并不是严格的MVC组织方式,而是将MVC的代码放在展现层中,并在数据访问层划分为多个层,层与层之间使用抽象工厂结合接口的设计模式,这样可以使系统代码具有更好的扩展性和兼容不同的数据库,而不用因为数据库的更换而修改数据访问层中的底层代码。这样的设计更好地贯彻了程序“高内聚、低耦合”的思想,使系统具有高度的重用性,更加易于功能扩展和维护的实现。
(二)基于角色的访问权限控制的设计与权限实现
由于每一个项目往往涉及的部门比较多,且事务具有保密性,因此,对于不同用户的访问及浏览应具有严密的权限管理。本文采用基于角色的访问权限控制(RBAC)方法,以实现使用人员的权限及系统安全的控制,达到既使系统的运行及使用达到保密的要求,只能专人专用,无关的人不能随便使用该系统及相关信息,达到与SG-186工程所要求的“单点登入”的相同功能,又使得系统管理员能够灵活方便地管理该系统,以维护系统的正常运行。
RBAC模型的基本工作原理是根据不同组织结构中不同的职能岗位划分不同的角色,接近于组织中自身的管理规则。RBAC通过分配和取消角色来完成对用户权限的授予和取消,并且提供角色分配规则。管理员根据需要定义各种角色,并设置合适的访问权限,角色的权限是角色所拥有的系统访问的功能,表现在对某一模块或菜单项的可执行功能上。用户根据其责任和资历被指派为不同的角色,当用户登录系统时,系统通过它所具有的角色的权限来判断是否可以访问系统资源以及可进行什么操作。这样整个访问控制过程就分成两个部分:即访问权限与角色相关联,角色再与用户关联,从而实现了用户与访问权限的逻辑分离。RBAC基本模型如图5所示。
图5 RBAC结构
本系统通过用户管理表、角色表等信息表的定义来实现对不同用户的授权,具体信息表之间的关系和结果如图2所示,不再描述。在安全控制方面,采用RBAC方法设置了用户和密码验证、Session验证、数据库管理控制、角色权限验证等4层安全控制,以达到系统运行及信息的安全性和保密性。
(三)主要界面实现和应用
按照软件工程的原理,系统采用Visual Studio 2010集成开发环境,数据库服务器采用Microsoft SQL Server 2008关系型数据库,基于WEB标准设计,采用三层架构和MVC模式开发项目管理系统软件。如图6-7分别为系统登录界面、系统管理员操作界面所示。
图6 系统登录界面
图7 系统管理员操作界面
本系统已开发完成,并进行了测试且录入了大量数据,实现了示范校建设项目建设情况的实时上报和进度监控,为各用户全面掌控项目完成情况,有效地推进项目建设提供了便利。笔者将根据项目管理系统的实践应用,进一步完善系统功能,升级开发成省校两级的项目管理系统平台,为学院以及上级主管部门提供更加合理、更具可操作性的项目管理系统平台。
[1]罗萍萍,夏巍,等.工程项目管理系统的设计与实现[J].电力系统及其自动化学报,2011,(3).
[2]王奇.面向工程机械行业的项目管理系统研究与实现[J].计算机工程与设计,2012,(9).
[3]管红杰,王珂等,许新征.SOA架构的工作流管理系统的研究与应用[J],计算机工程与设计.2011,(5).
[4]于楠,胡金炎,等.一种母婴安全监护系统数据库的设计和实现[J].计算机应用与软件,2013,(5).
[5]侯成义,赵永强.高校大型科研项目管理系统优化模型研究[J].科技管理研究,2012,(6).
[6]曾玉成,王俊川.企业战略管理与项目管理耦合研究[J].四川大学学报(哲学社会科学版),2014,(3).
[7]Jason N.Gaylord.李增民,苗荣,译.ASP.NET 4.5高级编程[M].北京:清华大学出版社,2014.
[8]唐永瑞,张达敏.基于Ajax与MVC模式的信息系统的研究与设计[J].电子技术应用,2014,(2).
(责任编辑:魏树峰)
Design and implementation of project management system Based on the three layer architecture and MVC pattern
XU Tong-de1,LI Fa-chun2
(1.Office of Academic Affairs,Guangdong AIB Polytechnic College,Guangzhou 510507 Guangdong;2.Department of Electromechanical Engineering,Guangdong AIB Polytechnic College,Guangzhou 510507 Guangdong)
In the research and analysis project management theory and practice,combined with the construction management practice of characteristic project in our demonstrative higher vocational college construction project,this system has been developed and designed of a project management system based on three tier architecture and MVC model.Multi-user can collect project construction information on-line,realize the progress monitoring,intelligent feedback and statistics on project management.This system has been applied in practice and proved its correctness and validity in our college.
Vocational Education;project management system;MVC pattern;RBAC method
TP315
A
1671-802X(2016)01-0005-06
2016-01-25
许统德(1980-),男,硕士,助理研究员,研究方向:数据挖掘、信息安全。E-mail:52679834@qq.com.
李法春(1968-),男,硕士,教授,研究方向:计算机应用及高职教育教学研究。
广东省高等职业教育教学改革立项课题《基于省、校两级的项目管理系统的应用开发及推广——以广东农工商职业技术学院示范校建设项目管理为依托》(201401154)、校级重点课题“《基于示范校建设的项目管理系统的开发及应用》”(xyzd1305)的研究成果