一种基于轻量级数据库的任务管理系统
2020-06-05史雪辉穆加艳
史雪辉,穆加艳,魏 兵
(1.海军装备部驻南京地区第二军事代表室,南京 211153;2.中国船舶集团有限公司第八研究院,南京 211153)
0 引 言
各行各业都离不开信息处理。在管理方面,传统的人工方式管理计划任务,效率低;需要空间存放和专人管理,成本高。在现代的管理工作中,使用计算机处理信息不仅提高了工作效率,而且提高了数据的安全性。信息数据被计算机管理起来方便查询历史信息。这些优点成为企业的科学化、正规化管理的基础。[1]
在制定项目计划过程中,要从许多具有不同完整性和可信度的信息源收集信息。项目管理计划要设计关于范围、技术、风险和成本的所有方面。在项目执行阶段出现并被批准的变更都可对项目管理计划产生重大的影响。项目计划为了满足项目已经定义的范围提供了大体上准确的进度。计划编制是一个反复和持续的过程。
1 系统需求分析
1.1 管理流程
计算机管理是在科学管理的基础上发展起来的,只有合理的管理制度才能考虑应用计算机把管理程序化。根据PDCA流程,项目的实现需要策划、实施、检查和分析4个阶段。在项目的策划阶段,把项目的各个阶段的时间划分好,具体的落实在文字上,然后每个月实施的时候再具体细化各个阶段的计划。任务计划管理的流程如图1所示。
图1 管理流程
1.2 系统需求分析
项目管理工作需要完成任务计划的管理,包括添加、修改、查询和删除计划等操作。一条考核计划包括的信息有工作内容、计划开始时间、计划结束时间、执行人员等信息。
(1) 任务添加
系统要在软件界面上可以输入任务计划的信息,然后录入数据库。
(2) 任务修改
系统可以选择某一条已有的任务,修改任务的信息,保存到数据库。
(3) 任务查询
系统需要完成对任务计划的查询,用户在界面上填写查询条件,包括时间、执行人员、部门等。系统完成查询并把查询结果显示在任务列表里。
(4) 任务删除
系统需要完成对数据库里计划的删除,同时软件界面上任务列表里也要清除。
由于用户的办公条件等因素,本系统选择轻量级的数据库Access,采用本地存储的方式。
1.3 系统架构设计
针对以上的需求,本文采取了分层的系统结构[2],主要分为表现层、业务逻辑层和数据访问层,见图2。利用轻量级本地数据库Access,开发环境用VS2010,采用ODBC的方式连接数据库。表现层主要是界面元素,提供人机交互。业务逻辑层主要利用操作策略组织编辑SQL语言。数据访问层利用系统提供的访问构建访问数据库。采取这样的架构有利于各种各样的用户环境。如果用户安装了32位的office,则需要在系统盘的SysWOW64文件夹下面odbcad32.exe来配置数据源;如果是64位的office,可以通过控制面板里的数据源配置工具来配置数据源。
图2 系统架构
2 数据库设计
2.1 实体设计
在数据库这个领域里,实体往往指某类事务的集合。把一类数据对象的个体称为实体。在任务管理系统中,任务是一个实体,其属性包括任务来源、项目令号、工作内容、任务分值、任务执行部门、人员姓名、人员工号、人员部门、计划开始日期、计划结束日期、备注。人员是一个实体,其属性包括人员姓名、人员工号和人员部门。项目是一个实体,包括的属性有项目编号和项目名称。[3]
2.2 数据库表设计
数据库里任务表主要字段及数据类型如图3所示。
图3 任务表的设计
2.3 SQL语句设计
2.3.1 任务添加
在“添加任务”区域输入任务的相关信息,完成对任务的添加,主要包括任务来源、项目令号、工作内容、任务分值、接任务部门、人员姓名、计划开始日期、计划结束日期和备注。
界面信息首先通过合法性检查,然后调用添加信息的SQL语句,把该条记录录入数据库。SQL语句如下:
Insertinto task
(tasksource,prjname,taskname,taskscore,staffname,staffnumber,staffdept,taskdate,taskDeptExe,taskdateEnd,remark1,remark2,remark3,remark4,remark5) values ('部门2','项目1','软件模块1编码实现','5.00','张某1','N.001','部门1',#2019-09-17#
2.3.2 任务查询
在“查询任务”区域的界面上选择相关的查询条件,点击“查询”按钮,左边的表格里会显示满足查询条件的任务。查询条件包括以下几个:(1)任务来源,(2)项目令号,(3)接任务部门,(4)人员姓名,(5)人员工号,(6)查询日期(指任务的“计划开始日期”)。它们可以随意组合。如果没有选择查询条件,点击“查询”按钮,那么查出来的结果是整个数据库里任务表里的任务。
查询任务的SQL语句如下:
select *from task where 1=1
and tasksource='部门1'
and prjname='项目1'
and staffname='张某1'
2.3.3 任务删除
在“添加任务”区域输入任务的相关信息,完成对任务的添加,主要包括任务来源、项目令号、工作内容、任务分值、接任务部门、人员姓名、计划开始日期、计划结束日期和备注。删除任务的SQL语句如下:
delete from task
where tasksource='部门1' and prjname='项目1'
andtaskname='模块1编码实现'and taskscore=5.00
and staffname='张某1' and staffnumber='N.001'
and staffdept='部门1' and taskdate=#2019-9-17#
and taskDeptExe='部门1' and taskdateEnd=#2019-10-24#
3 系统实现
本软件开发方法是基于体系结构的软件设计方法(ABSD方法)。ABSD方法有3个基础,包括功能分解、体系结构风格的选择、软件模板的使用。在任务管理系统的开发过程中,首先是完成功能分解,主要分为软件界面设计、主要模块设计、项目甘特图设计;其次是体系结构的选择,采用的是分层的系统结构;最后系统提供一种任务分解的模板,方便用户使用。
3.1 软件界面设计
软件主界面如图4所示。
图4 任务管理系统软件主界面
软件界面主要分为3大区域,具体如下:
• 任务表格显示区:位于软件界面左边,表格显示数据库的任务以及查询出来的任务;
• 操控命令区域:位于软件界面右边,用户在界面输入参数,通过按钮操作完成相应的功能;
• 统计分析区域:位于软件界面下方,主要是统计上面表格里任务的任务数和总分数,以及某部门每个月的任务数分布情况。
3.2 主要模块设计
3.2.1 批量导入导出任务
系统通过excel文件,完成了任务的批量导入导出操作。
在“导入导出”区域,点击“读Excel”按钮,会弹出“打开文件”对话框,选择需要导入的excel文件(后缀是*.xls),完成任务的批量导入功能,导入成功后会弹出导入的任务数量提示信息;点击“写Excel”按钮,会弹出“另存为”对话框,输入文件名,点击“保存”按钮,弹出已经保存的excel界面,完成任务的批量导出功能。
3.2.2 统计分析
在“统计分析”区域,点击“统计分析”按钮,完成对表格里显示任务的任务总数和总分数的统计,该功能模块利用BCG控件实现。在该区域选择相应的部门也会统计出表格里该部门的每个月任务总数的分布情况。采用柱状图进行显示,直观地展示出每个月的任务数量。
3.3 任务分解模板
本系统提供软件开发项目的任务分解模板,根据常用的瀑布生存周期,在此基础上有一些改动。工作任务分解利用excel模板,可把模板表格导入任务管理系统后再修改任务的执行人、日期等信息,即完成一个软件开发的项目管理策划工作,见表1。
表1 软件开发的任务分解模板
3.4 项目甘特图设计
系统提供甘特图功能,可查看项目的计划进度,直观明了。用图形化的方法能方便地掌握项目进度。当一个项目的任务进行分解后导入任务管理系统,可以界面查看项目的甘特图,见图5。该功能模块利用BCG控件实现。
图5 某项目的甘特图
4 结束语
在项目管理实际应用中,本系统相关的功能完善,系统维护便捷,界面友好,用户操作简单方便,节省了许多人力和物力,增强了信息的安全性,提高了项目管理能力。针对普遍存在的工期紧、任务重、涉及新技术等问题,管理人员在做计划时就需要准确估算工期,首先明确任务(WBS分解),并对任务计划进行定义、排序与资源估算,这样才能更好地确定整个项目工期。