任务管理系统的设计与实现毕业论文.docx
《任务管理系统的设计与实现毕业论文.docx》由会员分享,可在线阅读,更多相关《任务管理系统的设计与实现毕业论文.docx(37页珍藏版)》请在冰豆网上搜索。
任务管理系统的设计与实现毕业论文
任务管理系统的设计与实现毕业论文
1绪论
1.1前言
信息技术的迅速发展使市场竞争异常激烈,因此给软件企业的发展带来了前所未有的压力。
我国软件企业结合自身企业的特点生产出自己的软件项目管理系统来提升对项目的估计与控制能力,在实现自己企业信息化的过程中开发出能满足其他企业信息化的、能为其他企业创造最大价值的优秀的产品,使自己立于不败之地是一个值得研究的重要课题,特别在软件项目工程中对软件开发的任务分配以及进度管理等部分是项目工程管理中的重中之重。
软件产业已经作为一个新兴的高技术产业在我国崛起。
但与发达国家相比,无论在开发能力还是在管理水平上都还存在相当大的差距,尤其是落后的软件过程管理制约了开发能力的发挥。
软件外包是我国软件业发展的一个机会,也是一种挑战,要提高我国软件外包份额比例和利润率,就得要先解决我国软件企业普遍存在的规模小、软件过程能力低的问题,这就要求我们要有一套完整的软件项目管理系统。
开发软件开发公司程序员任务管理系统目的是为了将企业在软件开发过程中的对于程序员的管理进行更进一步的优化和对其的任务完成情况以及质量进行有效的了解和控制。
通过内部评估诊断我们发现,程序员其实也很希望能够按照我们的过程规范来开展工作,但我们的过程规范似乎每一步工作都有规程,都有条条框框,工作量的数据、缺陷记录等,但是大部分的研发人员认为大量低层次的沟通和大量的文档浪费了他们很多时间,他们愿意按照过程规范去做,但并不希望成为过程专家。
这给软件过程的实施带来了极大的挑战。
1.2国内外研究成果
国内外技术现状:
软件项目管理最早源自于70年代中期。
当时美国国防部曾立题专门研究软件项目做不好的原因,发现70%的项目是因为软件过程管理不善引起的,而并不是因为技术实力不够,进而得出一个结论,即软件过程管理师影响软件研发项目全局的因素,而技术只是影响到局部。
从那时开始,业内人士就着手软件项目管理的研究,到目前为止,在该领域起着重要作用的管理思想有:
软件能力成熟度模型集成CMMI和1509000系列标准。
我国软件企业起步较晚,从80年代发展至今,经过这20年来的成长,发展了一些具有一定规模的软件企业,但总体来说规模不够、开发成熟度不高,普遍存在软件生产低效性,大多数项目不是延期、成本上升,就是品质低、返工现象严重,软件过程能力低。
我国的许多软件企业在发展的过程中,长期忽视了企业的信息化,特别是软件过程管理信息化,为追求短期的效益而忽略了重要的软件过程控制和开发流程,使得软件的质量很难达到预期的目标。
在软件业发达国家的软件企业中,非常重视软件过程管理的信息化,达到要求的成熟度有助于提高公司的软件开发与项目控制能力,提高公司在国际软件业的地位和信誉度。
1.3本文主要研究的内容
程序员管理任务管理系统包括:
用户登录模块、文件提交模块、系统管理功能模块和项目管理功能模块。
用户登录模块是为了判定用户的登录用户名和密码的正确性所设定的。
文件提交模块主要是程序员的程序任务进度情况、测试员的测评情况、测试员对程序员的反馈信息、对个人工作的评价信息的提交以及对每天的所有已执行任务的汇总文件提交。
系统管理功能模块主要包括:
个人信息管理、部门员工管理。
个人信息管理主要为用户密码修改等功能。
部门员工管理可以添加,修改,删除员工信息。
项目功能管理模块主要包括:
任务划分、工作量统计、项目进度管理、项目质量管理。
任务划分:
项目经理可以将项目的每一个任务分配给具体的人,并设定本人任务的时间以及本任务的说明,是进度管理的依据。
工作量统计:
根据不同项目的项目系数,软件质量以及任务的完成情况,依据合理的量化计算方式,统计出各程序员的具体工作量情况,以便完成对工作人员的量化管理。
项目进度管理:
对任务的执行情况进行跟踪,可以查询任务的执行进度,以便于实行对项目任务的合理分配。
项目质量管理:
目的是让上层管理人员对项目完成的实际情况作出明确的了解,以便于去对各自员工的能力比较直观的了解。
设计方案:
应用实现上采用即Browser/Server(浏览器/服务器)结构,整个系统由Web浏览器,Web服务器和数据库服务器三层组成,应用程序存放在Web服务器上,数据库存储在数据库服务器中,用户可以在Internet上任意客户端上的浏览器中通过Web服务器管理,访问数据库中的公司信息。
因此系统具有大用户量支持、良好的可伸缩性和可移植性等优点。
设计方法:
采用基于C#的数据库访问技术:
ASP.NET,使应用程序具有C#语言的平台无关性,因而系统具有良好的移植性。
使用ASP.NET+C#模型,在C#中实现数据库连接池,提高了连接的使用效率和应用程序访问数据库的性能,同时利用C#封装了对数据库的增加、查询、删除、更新等操作,提高了代码的重用性,简化ASP.NET应用程序的编程。
本系统选用B/S结构模式;系统的开发以Windowsxp中文版操作系统为服务器网络操作系统,IIS为Web服务器,SQLSERVER2005为数据库服务器,Windowsxp为客户端操作系统。
2核心技术介绍
2.1B/S
传统的软件系统设计都采用的是C/S结构,即客户端/服务器结构。
它主要是由两部分组成,一部分是服务器端程序,负责数据的处理和存储;另一部分是客户端,客户端通常是一个安装程序,它在客户机上拥有自己的处理程序,可以独立对用户数据进行处理和存储,并可以和服务器进行直接连接传递数据。
B/S结构的软件是相对传统的C/S结构而言的。
C/S结构将程序分为两部分,一部分是由多个用户共享的信息与功能,这部分称为服务器端;另一部分是为每一个用户所专用,称为客户端。
C/S结构应该具有这样的特征:
客户端、服务器端都安装相应的软件,客户端、服务器端各完成相应的计算工作,服务器端保存数据库。
而B/S结构应该具有如下特征:
服务器端都安装相应的软件,客户端不安装任何软件(不需要维护)。
客户端运行程序是靠浏览器软件(如IE,Netscape等)登陆服务器进行的。
客户端在浏览器里完成一定的计算任务。
图2.1基于Web的浏览器/服务器B/S(Browser/Server)结构示意图
2.1.1B/S模式的优缺点
1、B/S结构的优点
Ø具有分布性特点,可以随时随地进行查询、浏览等业务处理。
Ø业务扩展简单方便,通过增加网页即可增加服务器功能。
Ø维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
Ø开发简单,共享性强
2、B/S模式的缺点
Ø个性化特点明显降低,无法实现具有个性化的功能要求。
Ø操作是以鼠标为最基本的操作方式,无法满足快速操作的要求。
Ø依赖网络,响应速度明显降低。
Ø功能弱化,难以实现传统模式下的特殊功能要求。
2.2ASP.NET
ASP.NET是基于通用语言的编译运行的程序,它的强大性和适应性,可以使它运行在几乎所有的windows操作系统的平台上。
通用语言的基本库,消息机制,数据接口的处理都能无缝的整合到ASP.net的Web应用中。
ASP.net同时也是language-independent语言独立化的,所以,你可以选择一种最适合你的语言来编写你的程序,或者把你的程序用很多种语言来写,现在已经支持的有C#(C++和Java的结合体),VB,Jscript。
ASP.NET一般分为两种开发语言,VB.NET和C#,C#相对比较常用,因为是.NET独有的语言,VB.NET则为以前VB程序设计,适合于以前VB程序员。
ASP.NET优点主要表现在:
可管理性:
ASP.NET使用基于文本的、分级的配置系统,简化了将设置应用于服务器环境和Web应用程序的工作。
配置文件的任何变化都可以自动检测到并应用于应用程序。
易于部署:
通过简单地将必要的文件复制到服务器上,ASP.NET应用程序即可以部署到该服务器上。
不需要重新启动服务器,甚至在部署或替换运行的已编译代码时也不需要重新启动。
增强的性能:
ASP.NET是运行在服务器上的已编译代码。
与传统的ActiveServerPages(ASP)不同,ASP.NET能利用早期绑定、实时(JIT)编译、本机优化和全新的缓存服务来提高性能。
扩展性和可用性:
ASP.NET被设计成可扩展的、具有特别专有的功能来提高群集的、多处理器环境的性能。
此外,Internet信息服务(IIS)和ASP.NET运行时密切监视和管理进程,以便在一个进程出现异常时,可在该位置创建新的进程使应用程序继续处理请求。
与.NETFramework集成:
因为ASP.NET是.NETFramework的一部分,整个平台的功能和灵活性对Web应用程序都是可用的。
也可从Web上流畅地访问.NET类库以及消息和数据访问解决方案。
ASP.NET是独立于语言之外的,所以开发人员能选择最适于应用程序的语言。
另外,公共语言运行库的互用性还保存了基于COM开发的现有投资。
另外ASP.NET优点还包括了ASP.NET启用了分布式应用程序的两个功能:
Web窗体和XMLWeb服务。
相同的配置和调试基本结构支持这两种功能。
Web窗体技术使您建立强大的基于窗体的网页。
Web窗体页面使用可重复使用的内建组件或自定义组件以简化页面中的代码。
使用ASP.NET创建的XMLWeb服务可使您远程访问服务器。
使用XMLWeb服务,商家可以提供其数据或商业规则的可编程接口,之后可以由客户端和服务器端应用程序获得和操作。
通过在客户端/服务器和服务器/服务器方案中的防火墙范围内使用标准(如XML消息处理和HTTP),XMLWeb服务可启用数据交换。
以任何语言编写的且运行在任何操作系统上的程序都能调用XMLWeb服务。
2.3SQLServer2005
2.3.1SQLServer2005简介
SQLServer2005是微软公司的大型数据库服务器,其性能指标在各方面都有赶超Oracle数据库的趋势。
从SQLServer2000到SQLServer2005,不仅仅是数据库系统具有更高的性能、处理能力,新版本的系统还带来了许多新的、在旧版本中从未出现的特性。
而这些新特性也都是和现代数据库的发展方向一致的。
2.3.2SQLServer2005的优势和特点
(1)可编程性:
CLR(CommonLanguageRuntime,公共语言运行时)集成。
CLR集成是指你可以使用任何一种.NET语言编写SQLServer2005的存储过程,触发器,函数,自定义类型,甚至是自定义的聚合函数。
想想以前的扩展存储过程,编程非常不容易。
代码中一不小心就会引起内存泄漏。
(2)安全性:
SQLServer2005的安全达到了很强大水平,有着很更清晰的安全模型即主体,安全对象和权限。
(3)异步处理能力:
ServiceBroker提供了一个功能强大的异步编程模型。
Broker的最大好处一是异步执行能力,提高了可伸缩性,二是可靠执行,三是集成于数据库中,备份数据库就备份了broker的消息队列。
(4)支持通过HTTPSOAP协议直接访问数据库,增加XML数据类型,支持Xquery,使用新的SQLServerManagementStudio等等。
以前都是大项目用ORACLE或者DB2,因为只有ORACLE和DB2能胜任,现在情况有些变化了。
不少在Windows构架下的大项目还是倾向于用SQL的,像镜像,高可用性,页面级的恢复,联机索引,多CPU支持等高级特性,SQL也不比ORACLE差。
3需求分析
在对软件系统进行详细的需求分析之前,首先进行技术可行性分析。
通过对现有且成熟的软件系统开发语言进行分析,并结合开发人员自身的业务水平,分析使用各个开发语言所需要的时间、花费等,从而得出此软件系统是否有必要进行开发。
当此软件系统值得开发时,才进入下一步,既需求分析。
需求分析是通过对软件功能的假象,分析系统在现有的技术下,可以实现的各种功能及相关需求。
并将此分析作为日后软件系统开发的重要依据。
3.1可行性分析
3.1.1技术可行性分析
程序员任务管理系统采用基于B/S的三层体系结构。
用户可以在任意网络环境中使用任意一个流浏览器,即可对系统进行操作管理。
B/S结构具有分布性特点,可以随时随地利用浏览器进行查询、浏览等业务处理,不受客户机限制。
浏览器于服务器之间使用HTTP协议进行通讯,服务器得到浏览器服务请求之后,进行数据的相关处理。
当数据处理完成之后,将处理结果通过HTTP协议返回给客户机浏览器。
具体实施办法包括:
由于B/S架构业务扩展简单方便,通过增加相应功能页面即可增加服务器功能。
维护简单方便,只需要改变网页,即可实现所有用户的同步更新。
开发简单,共享性强,不同浏览器兼容性良好,不同服务器架构也可无缝移植,无需重新编译代码。
因此整个系统开发难度也较低。
服务器端采用Apache作为Web服务器,其功能是接受远程用户的访问请求并作出回复。
采用SQLServer2005作为数据库,用来存储系统的所有数据。
由于ASP.NET、C#和SQLServer2005在应用上都是很普遍的,且市面上有很多相关书籍介绍,无论从技术角度还是从适用性角度都没有困难。
在客户端中,通过ASP+SQLServer2005,实现调用服务器和客户机对数据进行处理,并能实时在网页上显示处理结果。
这些技术都是时下非常成熟的技术,且有大量的教程以及示例用来学习,所以从技术角度来分析也是没有困难的。
3.1.2社会可行性分析
现代社会已经步入信息高速发展的时代,在对于公司项目的任务管理方面,只依靠人为的去操作会出现很多弊端,选择应用任务管理系统不但能更好的对当前项目进行管理,而且能对公司的管理运作形成良好的监管制度,从而达到提升效率的效果。
目前已经成为了软件开发中必须的工具。
3.1.3经济可行性分析
对于软件公司程序员任务管理系统来说,其应用的技术手段投资很少,并且在管理系统投入使用之后,可以在对软件项目的管理中不再陷入不必要的混乱,能更合理的安排工作到个人,使工作的进度效率得到提升,应用先进的工作量量化管理辅助公司人员管理,能够给公司的员工考核以及员工的竞争力方面都有提升,从另一方面节约了软件开发的成本,避免了多次重复效率不高的工作。
3.1.4法律可行性分析
本系统的开发是由本人在指导老师的指导下完成,不涉及任何公司任何个人的私有信息,不存在任何侵权和知识产权问题。
3.2系统功能需求
程序员任务管理系统总的目标是:
实现软件开发任务的组织,软件开发任务的网上分配,每日的工作安排,每日的工作验收,实时统计程序员日常工作量,程序员软件开发任务完成提交,软件开发任务完成情况测试与评价。
经过前期的可行性研究,结合现有实际情况,程序员任务管理系统采用B/S架构开发,开发语言为C#,数据库采用SQLServer2005。
系统功能主要包括:
用户登录,文件提交,系统功能管理,项目功能管理四个方面。
3.1.1用户登录
用户登录包括不同权限的用户对系统的操作影响。
可以通过用户名和密码的验证来判断是否成功登录,并且通过对当前用户的权限判断,来决定到底跳转到哪个页面。
当用户名或密码输入错误的时候,提示错误信息。
3.1.2任务提交
任务提交包括对目前的任务进展情况,任务完成质量情况以及程序员与测试员当天的工作内容进行上传管理。
上传文件:
对上传的文件将其存储在服务器端的固定文件夹内,数据库中标示其所有的路径信息。
方便对文件的管理,并且在上传文件的同时,在文件前方自动生成真实名称,即上传文件的原有名称前添加文件编号,用于多个相同文件上传时,原有文件不被覆盖。
文件下载:
可以通过的文件名称或者上传时间进行对所有文件的模糊查询。
并且根据权限的不同,可以选择删除原有文件,或者下载选定文件。
3.1.3用户信息管理
用户信息管理主要分为两部分。
第一部分是个人信息管理,即所有用户可以对当前自己的密码进行修改操作。
第二部分是部门员工管理,即项目经理可以对所有员工的信息进行修改,删除,添加等操作。
针对不同类型的用户,可以设置不同的权限,低权限的用户无法进行高级操作。
主要包括对用户名,密码,权限的分配,以及删除,查询功能。
3.1.4项目功能管理
本功能为程序员任务管理系统的核心功能。
主要是对软件项目进行统一的管理,包括任务划分,任务分配,项目进度以及工作量统计。
任务划分:
任务划分是产生任务的地方,由项目经理将要完成的项目根据模块或者功能划分成为独立的任务,划分的任务应该尽量保持高内聚,低耦合,以降低对成员之间交流的依赖程度,让大多数成员无需考虑太繁杂、不相干的东西,对于划分好的任务,要仔细分析其难点和工作量,这些都是任务分配所必须的约束条件。
任务分配:
任务分配的实施者是项目经理,任务分配的目的是将每一个任务分配给具体的人,并设定本人任务的开始时间、结束时间、参加评审人,是进度管理的依据,任务分配由项目经理根据实际情况做出调整。
任务分配的原则是减少对交流的依赖,对于不同的人来说,同一个任务的难度是不相同的,因此要调整分配,让合适的人做合适的工作,减少整体难度,分配过程中,尽量把高耦合的任务分配给一个员工,避免把过多过琐碎的无关任务分配给同一个人。
项目进度:
进度管理的目的是对任务的执行情况进行跟踪,可以以多种方式查询任务的执行进度,统计在执行过程中的进度执行状况,是项目经理调整计划,以及实施下一步计划的重要依据。
工作量统计:
根据项目系数,软件质量以及任务的完成情况,根据不同公司的规模大小以及管理制度,制定不同的计算规则,可以相对直观的体现出程序员在项目中的工作量等信息,是项目经理对任务分配原则的宏观把握的依据。
在人月神话一书中比较深刻的阐述了当前的软件系统问题,并且根据其中的理论验证,工作量的统计方式不论在国际还是在国内都没有一个统一的标准,不同公司的不同标准只是反应了其公司的规模以及其管理层人员对待员工的水平而已,这也是管理层对管理员工方面的一处很头疼的地方,而且,工作量在不同的场合的度量方式也是不相同的。
对于需求和设计阶段来说,量上当然是文档的页数,质量上应该是复杂度和每页发现的缺陷数是否达到了质量目标;编码阶段就是代码量+缺陷密度;测试阶段是每天的用例执行数;对于此系统,我采用的方式是目前国内中小型企业一般情况下采用的量化方式,即工作量受软件质量,项目系数以及任务的总体完成情况制约。
软件质量受当前软件的BUG等级和每千行代码的BUG个数,回归次数。
模块的重要系数来决定。
项目总体系数的制定,是根据本项目是否应用新技术,是否有过成功的开发经验等条件进行判断。
3.2系统运行要求
3.2.1系统硬件环境
a.服务器端
处理器:
InterCoreT24502.0GHz或更高
内存:
1GB以上
硬盘空间:
80GB
光驱:
DVD/CD-RWcombo
显卡:
ATIHD2300
b.客户端
因为客户端主要用于浏览和操作数据,所以对客户端的硬件要求不高,不过现在的电脑具有很高的性价比,因此需要的配置应该高于下面的配置:
处理器:
InterPentium1.0GHz或更高
内存:
32MB
硬盘空间:
40GB
3.2.2系统软件环境
a.服务器端
操作系统:
WindowsXP及其以上版本
网络协议:
TCP/IP
web服务器:
InternetInformationServer6.0
数据库:
MircrosoftSQLserver2005
浏览器:
InternetExplorer6.0以上
b.客户端
操作系统:
Windows98/2000/2003/XP/7
网络协议:
TCP/IP
浏览器:
InternetExplorer6.0以上
4概要设计
4.1系统工作原理网络结构图
图4.1系统工作原理网络结构图
4.2系统的功能结构图
图4.2系统功能结构图
4.3总体框架设计
根据.NET的结构体系,对软件项目管理系统实行层次化处理,使层与层相对独立,每层的变动不会对其它层造成太大的影响,不会引起其它层的太大的变动,而且为增加功能、扩展系统提供方便。
本系统采用三层结构为:
显示层(PresentationLayer)、事务逻辑层(BusinessLayer)、数据访问层(DataAccessLayer)。
三层体系的应用程序将业务规则、数据访问、合法性校验等工作放到了中间层进行处理。
通常情况下,客户端不直接与数据库进行交互,而是通过COM/DCOM通讯与中间层建立连接,再经由中间层与数据库进行交互。
系统体系结构图如图4.3。
图4.3系统体系结构图
第一层(显示层):
负责系统与用户的交互工作。
显示层由两部分组成:
即Web客户端和Web服务器。
Web客户端驻留在用户计算机中,通常用来接受Web浏览器的表格。
Web服务器位于Web主机地址上,用来生成动态Web页面和组成系统的表格。
web客户端与Web服务器端通过“请求—回应”的方式来相互通信。
web客户端向Web服务器发出请求,Web服务器根据请求作出回应。
HTML嵌入了Web服务器发出的回应,该回应用来指示浏览器显示什么内容。
第二层(事务逻辑层):
事务逻辑层从显示层获取数据,访问(获取和保存)数据库层的数据并执行必要的运算并且/或者处理数据,然后将结果返回显示层。
所以当单击Web页面中的超链接和发送HTML表单时,控制器本身不输出任何东西和做任何处理。
它只是接收请求并决定调用哪个模型构件去处理请求,然后确定用哪个视图来显示模型处理返回的数据。
第三层(数据访问层):
数据库服务器。
在数据库层中包含系统的数据处理逻辑,位于数据库服务器端。
它的任务是接受事务逻辑层对数据库操作的请求,实现对数据库查询、修改、更新等功能,把运行结果返回给事务逻辑层。
4.3.1显示层设计
软件项目管理系统的显示层采用ASP.NET页面。
用户的浏览器在客户端运行,并从一个WEB服务器上下载WEB层中的静态HTML页面或由ASP.NET生成动态的HTML页面,客户端用户的界面由一系列ASP.NET页面构成,用户的所有输入都由这些页面来完成。
同样系统的所有输出也在这里显示。
ASP.NET页面文件.ASPX为视图,.ASPX.CS文件为控制器,模型只与数据库相关,与视图不相关。
这样就实现了不懂程序设计的人员避开程序数据,这样在系统具体设计中将1.减少代码重复;2.分离职责和问题:
通过分离视图和模型,各个领域的专业人员可以并行工作;3.优化的可能性:
将职责分成特定的类可以提高进行优化的可能性。
在某些情况下可以对数据进行缓存,这样可以提高应用程序的总体性能。
但是,如果不分离代码,缓存数据就会很难实现,或者不可能;4.可测试性:
通过将模型与视图分离,您可以在ASP.NET环境以外测试模型。
4.3.2事务逻辑层设计
为了避免用户直接与数据库打交道,减轻数据库的负荷,软件项目管理系统把所有业务逻辑处理放在ASP.NET页面的后台文件(.ASPX.CS)和业务逻辑处理类中,由其负责响应用户的服务请求,再按需求调用业务逻辑处理类中相关函数,此函数再调用数据库层函数对用户服务请求进行业务处理,处理完后将结果返回给用户。
这里用户通过浏览器与Web服务器进行交互。
4.3.3访问层设计
应用必须永久保存一些对象,因此必须用数据访问层来提供这些服务,数据访问层设计是系统设计中很重要的一部分,设计质量的好坏,数据结构的优劣,直接影响到系统的成败,数据访问层设计是对一个给定的应用环境,构造最优的数据库层模式,建立数据库及其应用系统,使之能够有效地存取数据,满足各种