基于MVC的项目管理系统设计与实现

2015-01-27 05:04:45张勇军熊庆国黎学文
自动化与仪表 2015年11期
关键词:视图管理系统项目管理

张勇军,熊庆国,黎学文

(1.武汉科技大学 信息科学与工程学院,武汉 430081;2.奥博思软件技术有限公司,武汉 430081)

随着企业项目规模的扩大、数量的增加、以及管理水平的不断提高,进行企业信息化不仅是增强企业市场竞争力的客观需要,也是解决企业管理中突出问题的有效措施[1-2]。由于在项目进展中通常具有阶段性和分布性的特点,因而易导致“信息孤岛”的存在[3],从而造成部分管理记录缺失。项目管理系统主要是借助计算机技术进一步提升项目管理水平,需要考虑企业项目的运作管理、项目资源配置、管理知识共享以及多项目管理等需求。系统主要业务参数是基于成本、时间、质量这3个静态指标[4]建立的,为了能有效提高项目管理效率和团队协作意识,因此设计和开发了适合企业发展的项目管理系统。该系统对于实现企业管理的战略目标,为企业管理提供全面的数据共享具有重大意义。

.NET作为一项主流且十分成熟的软件开发技术,在组织和管理数据方面,拥有众多新的设计研发模式。MVC模式就是其中一种非常优秀的设计模式,具有代码耦合度低、灵活性强、重用性高等优点。而将AJAX技术融入MVC模式系统的三层结构设计之中,利用AJAX的高交互性设计管理系统的Web页面[5],从而使页面能高效地获取和处理数据,提供良好的用户体验性。

1 系统架构设计与实现

系统采用三层架构,即由表现层、业务逻辑层、数据访问层组成,这样可以更加适合业务复杂的应用系统。在表现层使用MVC(model view controller)模式,将展示和逻辑彻底分开,一个Model可以适应多个View需求,这样当有不同业务需求时只关注View视图而不用改动底层代码。在数据访问层使用抽象工厂结合接口的设计模式,这样可以使系统兼容不同的数据库,而不用因为数据库的更换而修改数据访问层中的底层代码。这样的设计更好地贯彻了程序“高内聚、低耦合”的思想,使系统重用性高,更加易于拓展和维护,系统框图如图1所示。

图1 系统架构Fig.1 System frame block diagram

1.1 表现层设计

表现层是系统面向用户的窗口,视图设计的优劣影响到用户操作习惯和快速了解项目信息的进度。传统的WebForm技术采用后台代码隐藏技术CodeBehind,即每一个aspx前台页面都对应着一个.cs后台文件,这样虽然清楚地实现了视图和逻辑功能页面的分离。但是随着软件规模的增长,程序的扩展和维护就显得十分困难了。而MVC设计模式能够成功地实现.cs文件中逻辑功能和数据功能的分离,具有代码耦合度低、模型灵活性强、重用性高等优点。

从本质上看,MVC设计模式是由模型(model)、视图(view)、控制器(controller)3个部分组成[6],将应用程序的输入输出和处理功能彼此分开,采用分工合作的方式实现系统的功能,这种设计模式使程序代码结构清晰,有效地降低了模块之间的耦合度,易于维护和扩展。

1.1.1 Model的设计与实现

模型层实际上就是ViewModel,表示最终呈现在View上的数据,不包含业务逻辑,也不包含数据操作,只是负责显示实体类和从数据访问层中传递View所需数据。而Model元数据的一个主要作用就是控制Model对象在View上的呈现方式[7]。在MVC的3个部件中,模型拥有最多的处理任务,并且与数据格式无关[8],这样一个模型能为多个视图提供数据。正是由于同样的模型代码可以被多个视图重用,所以减少了代码的重复性,这样可以让开发人员更加灵活地操作数据库对象。

1.1.2 View的设计与实现

视图View是应用程序中实现与用户交互的部分,是模型的外部表现形式,其界面主要由HTML和XML元素组成,由JQuery实现动态效果,通常实现数据的输入和输出功能。当用户对视图界面进行交互操作时,控制器将访问模型中的数据并决定数据的显示形式,再交给视图渲染页面。也可以根据相同的数据模型显示不同的视图,比如网页端和移动设备端的视图页面。

视图层的开发采用视图引擎Razor,Razor简洁的语法和灵活的布局使得前端的开发变得更加容易,View实质就是在C#语法与HTML代码之间进行切换,为了使部分界面风格保持一致,本系统中视图采用继承模板和分布视图的方式,然后再根据不同的需求,绑定视图的具体内容。在视图的显示方式上,使用JQuery UI等优秀的前端技术,降低了视图的开发难度,有利于创建个性化的前端界面,提升用户体验度。在视图层与控制层数据交互的过程中,尽可能地使用异步AJAX方式请求数据[5],将得到的JSon格式数据渲染在前端界面上,这样可以在提升用户体验的同时,获取更高的数据处理效率。

1.1.3 Controller的设计与实现

控制层在MVC模式中有着非常重要的作用,是模型与视图的桥梁,保持模型和视图之间的同步[9],它接收并解释由浏览器传入的用户请求,再调用模型和视图去完成浏览器的不同请求。Controller实现传统的Webform开发方式中的业务逻辑和数据显示分离的功能,使各模块间的耦合性降低。当用户发出数据请求时,会自动调用Controller中相应Action方法,将请求传递给Model处理,并将处理的结果以ViewModel的形式返回给相应的视图,实现对界面数据显示的控制和更新Model对象的状态。

1.2 业务逻辑层设计

业务逻辑层是表现层和数据层之间的衔接,包含了业务规则相关的算法和处理代码。逻辑层主要面向表现层的业务应用,为表现层提供相关业务服务。对系统中涉及的管理模块进行有效封装,其中主要包括流程审批模块、项目管理模块、工时填报模块等。同时,在这个层次中,还封装了系统基础模块,包括用户管理、角色和权限管理、日志管理、参数配置等。

1.3 数据访问层实现

数据访问层包含数据处理代码和数据存储代码,负责与数据库之间的通信。这个层次与MVC的Model实现的功能是有区别的。在本系统中,Model主要是负责数据的传递,当数据变化时,通过Controller实现对View的刷新,而对数据的读取操作是在数据访问层进行的。三层结构的每一层在程序处理的任务上分工明确,层与层之间逻辑分离,但又存在通信接口,最大限度地实现程序的“高内聚,低耦合”设计思想。

数据层采用LINQ技术,用LINQ来处理数据的对象关系模型(ORM),可以实现Linq to SQL、Linq to EF、Linq to XML等不同类型的数据操作,从而提高数据访问和存储效率。其中的 EF(entity framework)技术可以方便地实现对数据库的增删查改等操作,它通过ORM(对象-关系映射)封装了繁琐的底层SQL代码,ORM实现数据库表中字段与实体对象属性之间的映射,简化了程序员的工作量,从而提升系统开发效率。

2 系统设计与实现

2.1 功能模块

项目管理系统需要实现大量的数据检索与分析、流程申请与审批、报表的打印与导出等功能,同时需要实现与企业内其他办公系统(CRM、ERP)之间的接口,系统功能图如图2所示。

图2 系统功能Fig.2 System function diagram

本文中的项目管理系统是以项目管理为核心[10],集成了流程管理、文档与知识管理、质量管理、研发需求管理、成本与费用管理、客户与合同管理等功能,是一个一体化的企业项目管理和运营平台。

流程管理系统底层拥有一套完整的类库与方法,可以实现不同业务需求的流程审批功能,并且可以根据不同部门的不同需求实现管理人员的流程自定义功能,只需要在后台进行相关的配置就可以适应业务需求变化,并且支持项目任务计划的审核模式、冻结模式。

文档与知识管理操作人员上传的文档可以根据不同需要保存在不同的目录下。申请时上传的文档保存在项目目录,流程审批过程中上传的文档可以同时保存在项目目录与流程目录下。平时产生的一些知识记录可以保存在系统公共空间中,以便实现知识的共享。

模板功能系统还拥有强大的模板功能,在创建新项目时可以选择是否启用项目模板,不同类型的项目,可以配置不同的项目计划模板。项目计划模板包括任务WBS结构、里程碑定义、工期估算、任务关联定义、预期文档定义、阶段关联定义、责任角色和岗位定义、审核角色和岗位定位等。可以从项目中导出到模板,也可以从项目模板中快速复制。项目模板有效地提高了项目的标准化程度,也促进了项目知识的积累和共享。

质量管理项目管理中很重要的一个功能就是实现项目的质量可控。甘特图和里程碑视图,各种统计图表都可以很好地实现这个功能。在质量管理中集成了计划编辑、问题跟踪、风险管理、周报月报管理等功能,通过智能化的项目预警机制,预警消息支持邮件、短信、站内消息及在线即时通知等方式,旨在提高项目质量。

成本与费用管理项目管理人员可以清楚地掌握项目各阶段的资源分配量以及利用率,从而制定出合理的资源分配使用制度,进而降低项目成本。

商务管理系统拥有完整的商务管理功能,包括合同管理、客户管理和供应商管理。

参数配置系统提供了丰富的参数配置功能,并且有完整的日志记录功能,以适应不同部门的个性化需求。同时提供可扩展的、标准的数据接口,很容易实现与企业内其他办公系统之间的接口,例如OA或者门户系统的单点登录。

2.2 数据库设计

数据库设计是整个管理系统设计的核心部分,它的设计优劣直接关系到系统代码执行的效率与稳定性[11]。对于数据库设计来说,最重要的是遵循数据库设计的一般原则,即安全性、完整性、一致性、规范性。系统中涉及到3个数据库,分别是项目数据库、用户数据库、文档数据库,这样设计是为了不同数据的增删查改操作不同的数据库对象,从而提升系统性能。

2.3 系统实际应用效果

系统部署在Window 7操作系统上,经Google、Fox、IE8及以上等主流内核浏览器测试,皆具有良好的稳定性以及体验性,能很好地实现所需要的功能。系统实现后的管理员部分界面如图3所示,普通用户部分界面如图4所示。

图3 管理员界面Fig.3 Administrator interface diagram

图4 用户界面Fig.4 User interface diagram

3 结语

本系统通过对基础对象和功能模块的详细设计,充分利用MVC模式在降低代码耦合度,增加系统健壮性等方面的优势,以及AJAX技术在提高系统页面交互性的高效处理作用,完成了企业项目管理系统的各系统角色的功能需求开发。系统提供了友好的用户界面,提高了企业的项目管理质量与水平,达到了预期的效果。

[1] 曾玉成,王俊川.企业战略管理与项目管理耦合研究[J].四川大学学报:哲学社会科学版,2014,3(13):86-96.

[2] 黎学文,金辉辉.奥博思软件-项目管理系统解决方案[EB/OL].(2014-10-14)[2014-10-14].http://123.56.92.205/PowerProject2/ Pages/Documents/DocumentList.aspx?Category=Company.

[3] 张文涛,常红星.基于ASP.NET的B/S架构下的项目管理系统的网络安全模式设计[J].计算机科学,2008,35(2):47-53.

[4] 黄巍.项目管理中范围与时间、成本、质量的关系研究[D].上海:上海交通大学,2008.

[5] 唐永瑞,张哲敏.基于Ajax与MVC模式的信息系统的研究与设计[J].电机技术应用,2014,40(2):128-131.

[6] 刘淑珍,王文帅.基于MVC模式的研究所评审系统的设计与实现[J].核电子学与探测技术,2014,34(1):59-62.

[7] 蒋金楠.ASP.NET MVC4框架揭秘[M].北京:电子工业出版社,2013:123-124.

[8] 唐永瑞,张达敏.基于SSI的应急事务管理系统的设计与实现[J].计算机技术与发展,2014,24(4):151-155.

[9] 匡芳君.基于MVC模式的网络教学平台设计[J].计算机技术与发展,2010,20(12):251-254.

[10]Xiang Pengcheng,Zhou Jin,Zhou Xiaoyu,etc.Construction project risk management based on the view of asymmetric information[J].Application of Asymmetric Information Theory to Construction Project Risk Management,SCI,2012,138(11):158-165.

[11]王基础.基于WEB的蜀南气矿项目管理系统的设计与实现[D].成都:电子科技大学,2014.

猜你喜欢
视图管理系统项目管理
装配式EPC总承包项目管理
基于James的院内邮件管理系统的实现
基于大数据分析的集合式EPC总承包项目管理软件技术的应用
项目管理在科研项目管理中的应用
现代企业(2021年2期)2021-07-20 07:56:54
未来如何更高效地进行工程项目管理
基于LED联动显示的违停管理系统
5.3 视图与投影
视图
Y—20重型运输机多视图
现代兵器(2017年4期)2017-06-02 15:59:24
SA2型76毫米车载高炮多视图
现代兵器(2017年4期)2017-06-02 15:58:14