基于构件的管理信息系统云开发平台研究.docx
《基于构件的管理信息系统云开发平台研究.docx》由会员分享,可在线阅读,更多相关《基于构件的管理信息系统云开发平台研究.docx(6页珍藏版)》请在冰豆网上搜索。
基于构件的管理信息系统云开发平台研究
基于构件的管理信息系统云开发平台研究
摘要:
本文研发了一种基于构件的管理信息系统开发平台,以平台即服务(PaaS)的模式提供管理信息系统的开发服务。
文章首先分析管理信息系统的基本功能,研发了一系列高效可靠的可复用构件,使管理信息系统的关键功能可以通过直接组装构件的方式实现;接着研发了一种开发平台,让开发者可通过浏览器在云端组装构件,以迭代的方式快速构建和部署系统功能。
对于不能用现有构件直接组装而成的业务,开发者可利用开发平台提供的新构件进行开发服务构建。
北京师范大学研究生学位系统、研究生质量监控系统等管理信息系统的敏捷开发实践表明,基于构件的PaaS开发模式,能够很好地契合敏捷软件开发理念,大幅提高系统的开发效率,减轻系统的维护负担,提升系统的构建质量,降低系统整体成本。
关键词:
云计算;敏捷开发;权限管理;混合编程;平台即服务
中图分类号:
TP315文献标志码:
A文章编号:
1673-8454(2016)07-0028-05
一、引言
管理信息系统是一个具有高度复杂性、多元性和综合性的人机系统,它全面使用现代计算机技术、网络通信技术、数据库技术,以及管理学、运筹学、统计学、模型论和各种最优化技术,为经营管理与组织决策服务。
[1]管理信息系统的研发团队不仅要有多个学科的背景知识,而且也要熟悉相关管理领域的业务流程。
因此相比于一般的软件开发,管理信息系统的开发尤其具有学习难度大、开发周期长、开发成本高、缺陷查到难、维护代价大的特点。
业界一直试图开发新的技术、使高质量计算机程序的开发和维护更容易、更快捷、成本更低廉。
[2]人们一直在研发更能表达编程中各种概念的高级语言和应用程序框架以提高生产率。
现代高级语言在命令式的面向对像编程基础上,发展了声明式、函数式和动态的特性,使其表达能力更接近人类的思考能力,方便开发者集中精力解决业务本身的细节。
[3]人们也一直在归纳设计经验,精练解决方案,总结能解决软件开发中最常见问题的设计模式,通过现成的抽象,把常见错误解决方案的细节予以制度化来减少缺陷。
[4]在各行业的管理需求的驱动下,涌现出了各种管理信息系统。
[5-6]
为了进一步提高某些领域的软件开发生产率,人们提出了基于构件的软件工程(CBSE)。
CBSE强调用可复用的“构件”来设计和构造软件系统,把构建重点从编码转移到组装,改变着大型软件系统的开发方式。
[2]一些大型企业,如SAP,提供的企业资源管理(ERP)的解决方案,正是采用了这种过程模型。
一些学者也开始在相关管理领域尝试基于构件的实践。
[7]然而在管理信息系统领域广泛使用CBSE之前,必须分析对应管理领域,寻找重复模式。
这就要求系统分析师不仅是软件构建专家,而且也要对管理领域有深入的了解。
云计算时代的来临,为解决这个问题提供了契机。
一些学者开始尝试软件即服务(SaaS)的应用模式。
[8-10]一个领域的SaaS很难能为其他领域提供服务,因此人们又提出了平台即服务(PaaS)的理念,即把软件研发的平台作为一种服务,以SaaS的模式提交给用户。
软件行业的领导者纷纷推出了PaaS,如GoogleAppEngine、AmazonEC2、WindowsAzure等。
PaaS的出现提高了应用的开发速度,加快了SaaS的发展。
然而这些服务的出现,缩短了开发周期,降低了开发成本,同时也增加了学习难度和缺陷查找成本。
本文结合CBSE和PaaS的优势,研发了一种基于构件的管理信息系统云开发平台。
第二部分论述通过分析管理信息系统的基本功能,研发的一系列高效稳定可复用的构件。
这些构件使开发者可以用组装的方式实现基本功能。
第三部分论述云开发平台。
该平台使开发者只要通过Web浏览器即可组装和开发新构件。
第四部分为敏捷开发实践,介绍基于此平台开发管理信息系统的成功案例。
第五部分为总结。
二、构件设计与开发
基于构件的软件工程(CBSE)正在改变大型软件的开发方式,其考虑的重点从编码转移到组装软件系统,考虑的焦点是“集成”,而不再是“实现”;基于构件开发缩短了70%的开发周期,减少了84%的项目开销,生产率指数可达26.2,而工业标准值为16.9。
[2]管理信息系统虽然涉及的学科多,而且相关的管理领域千差万别,但是其基本功能相对明确,主要包括数据处理、预测、计划、控制以及辅助决策。
这些功能存在很多共性,可对这些共性建模。
我们通过分析管理信息系统应用领域,开发了关系数据库管理、表单和CRUD网格、报表分析、权限管理、新构件开发五大可复用构件,如图1所示。
1.关系数据库管理
数据库(Database)是按照数据结构来组织、存储和管理数据的仓库,它是管理信息系统的核心部分,是进行科学研究决策的前提条件。
关系数据库建立在关系数据模型基础上,适合作为管理信息系统的主数据库。
人们已经开发了功能非常强大的数据库设计和管理工具,如PowerDesigner、Navicat、SQLyog等,但这些工具是作为一个独立的产品发布的,很难与其他构件集成。
我们开发了一种基于Web的轻量级数据库管理工具,通过分析关系数据库系统的元数据,识别各种实体和联系,实现在线数据管理、创建数据结构文档、生成ORM实体类及创建表单等功能。
在数据库设计之后,此工具可根据数据表结构自动生成表单,用表单和CRUD网格工具对所生成的表单进行配置,即可实现数据的采集和存储。
2.表单和CRUD网格
表单是利用网页进行数据采集的基本单位。
表单允许用户通过文本域、单选按钮、复选按钮等控件输入数据,提交信息,是用户和服务器之间进行信息交互的重要手段。
表单开发是整个管理信息系统开发的重要基础,其过程是根据采集数据的结构,对数据项设计合适的表单域,并在用户提交时进行数据合法性校验,将合法的数据存入数据库。
传统的表单开发需要前端工程师、后端工程师和数据库工程师的协作,开发成本较高。
2.构件组装
我们研发了基于Web的构件组装工具。
我们是基于资源的设计研发的云开发平台,可引用功能和数据都通过简明的URI被访问。
[24]因此开发者只需通过开发环境组织资源URI的拓扑结构就可实现构件的组装。
我们还设计了一种以数据为中心的构件快速组装框架,其用户界面是一个带工具栏的支持查找和分页的CRUD网格。
开发者可定义网格中显示的数据和工具栏中的按钮。
我们定义了常用的按钮点击事件处理程序,如需要确认后才执行、直接访问URI、访问选中数据格式化后的URI、访问以选中数据为参数的URI、把选中数据以AJAX形式提交、输入参数并把选中数据以AJAX提交等操作。
开发者只用关注构件的组装,而不用关注界面的设计。
另外,我们还开发了一个URI分析工具。
该工具能够分析URI的格式和参数,匹配URI对应构件的配置脚本或源代码,从而使开发者可以更快速地组装和维护构件。
下面介绍基于本文开发方法的敏捷开发实践案例。
四、敏捷开发实践
2001年,KentBeck和其他软件专家共同签署了“敏捷软件开发宣言”,声明个体和交互重于过程和工具,可以工作的软件重于面面俱到的文档,客户合作重于合同谈判,随时应对变化重于遵循计划。
[25]敏捷理念强调4个关键问题――小而高度自主的团队、项目共同利益者的交流合作、有效支持变化及快速交付满意的软件。
下面介绍基于构件的PaaS模式下,管理信息系统的开发实践。
1.研究生学位管理系统
随着研究生教学规模的扩大、学位授予类型的增加以及研究生教育改革的深化,研究生学位管理工作的需求也不断变化。
学位管理系统在研究生管理过程中具有业务流程清晰、数据严谨规范、权限要求严格等特点。
[26]
学位授予工作,主要有两条工作流。
一是论文评阅,即学生提交申请信息(科研成果、导师评语、论文等),教务员进行审核,经专家评阅合格方可进行答辩申请;二是答辩申请,即学生提交根据专家意见修改后的论文信息进行答辩,答辩秘书录入答辩结果,教务员审核答辩信息并确定分会名单,分会讨论录入分会结果,校会审议。
我们组织了三人的开发团队,遵循Scrum方法,对两条工作流设计了三个5天周期的迭代计划实现主要功能。
信息采集功能通过表单、CRUD网格构件和报表构件直接组装实现。
利用工作流构件,通过把有限状态机与表单和CRUD网格构件集成的方式,实现了论文评阅和答辩申请两条工作流。
学位授予数据的汇总和统计分析通过配置报表分析构件实现。
迭代周期结束之后,再根据业务的变化调整构件的配置或重新组装构件,灵活响应变化,优化系统。
利用本文方法开发的北京师范大学学位管理系统,具有架构先进、功能完备、数据准确、扩展灵活的特点,为我校学位管理工作提供有力支撑。
2.研究生质量监控与评估系统
教学质量是教育永恒的主题。
为了保证高等教育教学质量,使规模、质量、效益协调发展,应当构建一套科学可持续的质量监控与评估体系。
[27]研究生质量监控与评估系统主要以学生评教、专家督导、论文外审、公开答辩、毕业生满意度调查等措施为基础,监控教学过程的质量,构建评估与反馈系统。
信息系统主要实现数据的采集、公示和分析。
学生评教数据、排课数据位于第三方开发的教务管理系统中,需要跨数据库集成;外审、答辩数据位于自主开发的学生管理系统中,可直接引用;专家督导信息采集、答辩信息公开功能、满意度调查可用现有构件组装。
我们组织了二人研发团队,设计了两个5天周期的迭代计划快速构建信息采集、公示功能。
我们用Python编写了数据同步的脚本,从第三方教务管理系统读取排课信息;用CRUD网格构件实现了督导信息采集功能;读取答辩信息用模板引擎生成了答辩信息公开的网页;用问卷构件生成了满意度调查问卷。
此处要分析的数据维度大,采用SPSS统计软件辅助分析数据。
反馈功能主要通过学院教学经费、招生计划的调节实现。
利用本文方法开发的北京师范大学研究生质量监控与评估系统,为北京师范大学研究生质量监控和评估提供了基础数据,有利于提高监控和评估工作的质量和效率。
3.本文方法优势分析
本文方法结合了CBSE和PaaS,与传统方法相比,具有如下优势。
首先,本文方法进一步改善了质量。
传统的CBSE过程的构件合格性检验要考虑运行时需求、资源使用等因素的影响,而PaaS则使开发者不必考虑这些因素。
传统的PaaS模式具有较高的缺陷查找成本,而利用CBSE,随着构件的每一次复用,缺陷被发现并被消除,构件质量也随之改善,使缺陷一般出现在构件的集成中,极大提高了缺陷消除的效率。
其次,本文方法进一步提高了生产率。
软件开发过程一般为沟通、策划、建模、构建、部署的迭代过程。
CBSE降低了计划、模型、文档、代码和数据的创建工作花费的时间,同时PaaS无需配置复杂的开发和运行环境,使开发团队都可以在线实时协同,提高了开发效率。
最后,本文方法进一步降低了成本。
少构建多复用的CBSE肯定是成本合算的。
本文开发的平台以PaaS模式大幅降低了构件合格性检验、适应性修改与组装的成本。
同时,本文核心方法采用的是开放标准技术,没有商业授权成本,且相对容易学习,能减少开发团队磨合成本。
五、总结
本文研发了一种管理信息系统开发平台,以基于构件的PaaS模式提供管理信息系统开发服务。
该服务能改变管理信息系统的开发方式,让开发者在云端即可完成开发工作,把开发者考虑的重点从“编码”转移到“组装”,考虑的焦点从“实现”转移到“集成”。
北京师范大学研究生学位系统和研究生质量监控与评估系统的敏捷开发实践表明,本文的开发模式能够很好地契合敏捷软件开发理念,大幅提高系统的开发效率,减轻系统的维护负担,提升系统的构建质量,降低系统整体成本。
参考文献:
[1]张金城.管理信息系统[M].北京:
北京大学出版社,2001.
[2]RogerS.Pressman.SoftwareEngineering:
Apractitioner’sApproach[M].Beijing:
ChinaMachinePress,2009.
[3]SteveMcConnell.CodeComplete[M].Beijing:
PublishingHouseofElectronicsIndustry,2006.
[4]ErichGamma.DesignPatterns:
ElementsofReusableObject-OrientedSoftware[M].Beijing:
ChinaMachinePress,2007.
[5]赵仁铃,余洋.Web2.0环境下的研究生管理信息平台建设[J].学位与研究生教育,2013(5):
41-45.
[6]田媚,黄雅平,赵宏伟.毕业设计(论文)管理系统研究与实践[J].中国教育信息化,2015
(1):
65-67.
[7]于海军,朱明,苏厚勤.基于组件的轨道交通AFC设备运营管理系统的设计与实现[J].计算机应用与软件,2010(12):
161-163,201.
[8]向坚持,陈晓红.SaaS模式的中小企业客户关系管理研究[J].计算机工程与应用,2009(19):
232-235.
[9]谭健欣,刘宗妹.基于云计算的高校信息化建设思路与实现路径[J].中国教育信息化,2015(5):
15-18.
[10]陈展荣,全渝娟,何万宁.大学计算机实验教学平台建设与资源共享研究[J].中国教育信息化,2015(5):
41-43.
[11]邓超,周文平,申新鹏,杨刚.企业云开发平台研究[J].微电子学与计算机,2012(7):
162-166.
[12]徐小良,汪乐宇,周泓.有限状态机的一种实现框架[J].工程设计学报,2003(5):
251-255.
[13]AbrahamSilberschatz.DatabaseSystemConcepts[M].Beijing:
ChinaMachinePress,2008.
[14]陈明,李猛坤,张强.一种基于扩展MVVM模式的SaaS面向服务计算模型[J].微电子学与计算机,2010(8):
27-30.
[15]罗霄,任勇,山秀明.基于Python的混合语言编程及其实现[J].计算机应用与软件,2004(12):
17-18,112.
[16]任磊,杜一,马帅,张小龙,戴国忠.大数据可视分析综述[J].软件学报,2014(9):
1909-1936.
[17]夏榆滨,宣明付.基于RBAC的统一权限管理系统研究[J].微计算机信息,2006(30):
75,114-116.
[18]欧阳荣彬,王倩宜,李丽,刘云峰.基于属性规则的数据权限模型研究与实现[J].大连海事大学学报,2010
(2):
81-83.
[19]刘文,甘志春,李文,王更辉.基于XML和JSON的格式化网络参数文件研究[J].计算机与网络,2013(24):
54-57.
[20]刘亮,霍剑青,郭玉刚,袁泉,王晓蒲.基于MVC的通用型模式的设计与实现[J].中国科学技术大学学报,2010(6):
635-639.
[21]姬一文,吴庆波,杨沙洲.一种服务器端模板引擎的改进与实现[J].计算机应用研究,2011(3):
1077-1079,1087.
[22]阳康,黄长清.MATLAB与C#混合编程在轧制力预报中的应用[J].计算机工程与设计,2013(5):
1885-1888,1901.
[23]徐鹏,陈思,苏森.互联网应用PaaS平台体系结构[J].北京邮电大学学报,2012
(1):
120-124.
[24]潘冰.面向资源的RESTfulWeb应用研究[J].微计算机应用,2010(7):
38-43.
[25]RobertC.Martin.AgilePrinciples,Patterns,andPracticesinC#[M].Beijing:
Posts&TelecomPress,2010.
[26]王素美,黄宗英,来天平.基于业务流程的学位管理系统的设计与实现[J].华东师范大学学报(自然科学版),2015(S1):
330-334.
[27]王轶,陈敏.美国普通高校教学质量监控体系的特点及启示[J].首都师范大学学报(社会科学版),2015
(1):
135-140.
(编辑:
王天鹏)