1、项目评估考核系统第 1 页本科毕业论文(科研训练、毕业设计)题 目:中国建行厦门开发中心-项目评估考核系统姓 名:学 院:软件工程系:专 业:软件工程年 级: 学 号: 指导教师(校内): 职称: 指导教师(校外): 职称: 年 月 日项目评估考核系统第 2 页中国建行厦门开发中心-项目评估考核系统摘要 本系统是建行厦门开发中心项目管理部门所要开发的项目管理系统的一部分。也可以把它看作为总体系统的一个子系统。系统采用的是一种B/S的三层架构方式,WEB层用的是IE 来支持,在开发时,服务器选用的是Tomcat5.0,而正式的搭建是放在中心的Weblogic服务器上。数据库采用的也是中心的SQL
2、Server 2000.本论文主要描述了如何运用软件工程思想来开发系统的全过程。从需求分析,数据库设计,系统详细设计直到编码和测试运行都有详尽的介绍。系统大致上分为三大模块,指标的创建,考核表的生成以及人员进行考核的过程。在详细设计里面已经将所涉及的关键功能模块的实现作了仔细的阐述。总的来说,系统对于考核的基本功能已经都实现,只是当初的设计思想是想把这系统做的更通用一些。使得这个评审系统不拘泥于考核,还可以用于其他的评审方法,在这点上还需要进一步的改进。关键词 B/S 构架 指标 评审表 软件工程项目评估考核系统第 3 页Xiamen Development Center of China C
3、onstruction Bank- The Assessment System of Project EvaluationAbstract This System is a part of Project Management System to be developed for the Department of Project Management of the Project Development Center of China Construction Bank in Xiamen. You can look it like a subsystem. It adopts Browse
4、r/Server structure to accomplish. Using the IE as Web layer and using weblogic as Server and also using SQLServer2000 Database. This paper mainly describe a whole process about how to use the thinking of Software Engineer to develop the system. It has given a detail description from requirement anal
5、yse , database design, details design to coding ,run and test. The system can be divided into three, add a new guide line, create a new evaluation table and the process of how people accomplish evaluation tables. In balance, it has basically come true the mainly functions. Originally, it is designed
6、 to be more all-purpose, not be just for assessment and can be for other way of evaluation. In the point, it can be improved betterKey Words Browser/Server Guide Line Evaluation Table Software Engineer项目评估考核系统第 4 页目录第 1 章 引言 .51.1 系统开发背景 .51.2 系统应用背景 .51.3 系统开发意义 .51.4 论文写作目的 .61.5 论文的组织结构 .6第 2 章 系
7、统总体设计 .72.1 需求分析 .72.2 用例分析(USECASE DIAGRAM) .92.3 数据库设计 .102.4 系统构架设计 .132.5 系统运行环境 .15第 3 章 系统详细设计 .173.1 两个主要的 JAVABEAN 设计 .173.2 系统模块设计 .23第 4 章 结论与展望 .35致谢语 .36参考文献 37项目评估考核系统第 5 页第 1 章 引言1.1 系统开发背景Internet 和 WWW 为企业提供了构建信息化经济的坚实基础和平台。在这种全新的经济模式下,信息与产品及服务有着同样重要的战略意义,成为市场中一个不可或缺的主体。在信息化经济的竞争性环境里
8、,响应时间对于定制应用程序在企业中的价值而言是一个关键方面。企业需要快速开发和部署这些定制应用程序,并且能够很方便地完善和增强他们的功能以适应需要。Java 技术已经从一门开发独立于机器的嵌入式系统编程语言发展为一种健壮的、与厂商无关、独立于机器的服务器端技术,它使公司团体认识到以 WEB 为中心的应用程序的完全潜力。传统上企业系统使用客户机/服务器模型,在这种模式下客户端系统请求服务端系统的处理。然而,企业系统自身也在进行变革。一种新的称为 WEB 服务的模式逐渐取代了企业中的客户/服务器模型。应用程序员用各种称为 WEB 服务的处理组件来装配应用程序。每个 WEB 服务与其他 WEB服务和
9、应用程序相比是独立的。客户端应用程序与中间层、服务器端应用程序通信,后者在和所需的 WEB 服务交互。1.2 系统应用背景本系统是在中国建设银行厦门开发中心项目管理部门实习的过程中产生的,是一套项目管理开发系统的一部分。中心采用的是 J2EE 的平台开发企业的应用系统。在这样的前提下,结合以前学习的 JAVA,软件工程,软件实例分析,数据库设计,UML 建模等基础知识,实践开发这套项目管理评估考核系统。1.3 系统开发意义中心成立不久,很多项目都在开发进行中,尽早拥有一套成熟的项目管理系统无疑能提高部门对项目开发的管理,对项目开发流程的监督并为以后项目开发积累必要的经验和积累决策的依据。项目评
10、估考核系统第 6 页1.4 论文写作目的此论文来源主要是配合所开发的系统形成的。将三个月来的实习以书面的形式表达出来。通过实习,把在学校学到的知识运用到实践上去,真实体会所掌握的知识,并且深刻的了解如何去开发一套系统的一般流程和必备的技术条件。1.5 论文的组织结构第一章:引言 主要概述了系统的开发的背景和意义同时交代了论文的写作目的,并且罗列了论文的组织结构第二章:系统总体设计从需求分析开始对系统进行策划和描述,并按照软件工程的思想来开发,给出了数据库的详细设计。随后在系统架构的设计中阐述了用 B/S 构架的原因。第三章:系统详细设计对系统的每一个模块都作了详细的介绍。并对实现的过程进行详尽
11、的描述第四章:结论与展望把经过测试后的问题进行总结和归纳,回顾了整个的开发过程,提出实践的体会与结论并且对系统进行展望本章小结该章节主要概述了系统的开发的背景和意义同时交代了论文的写作目的,并且罗列了论文的组织结构项目评估考核系统第 7 页第 2 章 系统总体设计2.1 需求分析2.1.1 系统描述项目评估考核系统面向的是全体员工,每位员工根据他所在不同的部门,将去评定相应的评审表,并且根据这些结果汇总成项目的最终评审结果,从而达到对项目合理的评审,能为今后项目决策提供有利的参考依据。考核是其中重要的子系统。用户确认进入系统密码输入是拒绝进入否查看根据不同权限进行不同操作评估制定考核表流转是否
12、流转至下一个完成否是图 1-1 总体系统描述图项目评估考核系统第 8 页2.1.2 系统开发模型通常在软件工程中,把软件的开发分为四个阶段,需求分析,系统设计(系统总体设计,系统详细设计) ,代码编写,测试阶段。针对这次的实习,在指导老师的建议下,也采用此模式进行系统开发。这种开发模式叫瀑布模型线性开发模式。图 2-1 瀑布模型由于时间的关系,维护阶段要等整个系统都成型了才能进行,我们这次并未设计。由于经验的不足,测试与程序设计是同时进行。通过不断的测试已有的功能模块来开发。目前的开发一般不会采用单纯的瀑布模型,我们这次的开发是采用一个原型模型和瀑布模型结合的开发方式来进行的。起初设计时就先做
13、了一个原型,然后按着这样的原型进行,每一个模块的开发用的是瀑布的模型,而新的模块的开始也是一个新的瀑布模型的开始。2.1.3 项目名词解释A) 指标指标是组成整个考核系统的最基本单位。它具有上下级的关系。B) 权重权重的主体相对所在环境中的比重地位C) 考核考核是对项目评定的一种手段。一般有分项目组的考核,项目人员的考核,项目经理的考核。还可以按照项目开发的周期,划分为项目季度考核,项目周期考核等。总之,考核的目的是对项目开发起到监督和质量控制等作用。D) 评审评审是对设计方案的统筹的监督和质量把关。评审是考核的一个外延。项目评估考核系统第 9 页E) 评审表从逻辑上看,评审表是指标的集合。可
14、以根据需要设计多层结构的指标集合。通常分为指标维度,一级指标,二级指标就可以对项目进行评估了。中心每个员工根据所在的不同部门有相应的评审表进行填写。待确认后,汇总成最终评审结果。因此,评审表不但为以后的查看提供了依据,也为统计提供了便利。能对项目的开发作出客观的评估。2.2 用例分析(UseCase Diagram)图 2-2 指标基本操作图 2-3 评审表生成项目评估考核系统第 10 页图 2-4 评审制定评审表格 评审表结构生成 评审对象指标库评审结果生成评审报表库图 2-5 工作流程图2.3 数据库设计数据库的设计基本上按照工作的流程思路去设计的。基本上有两个概念,一个是定义角度上的概念
15、,另一个是数据角度上的概念。见(图 2-6) 数据库的逻辑视图。见表 2-1 至表 2-8 是数据库表视图项目评估考核系统第 11 页图 2-6 逻辑视图表 2-1:数据库表总汇表代号 表名T_ZHIBIAO 指标定义表T_PROJECT 项目定义表T_PINGSHEN 评审表定义表T_PEOPLE 人员信息表T_DEPARTMENT 部门信息表T_PINGSHEN_CONSTRUCT 评审表和指标关系表T_PINGSHEN_RESULT 评审结果表表 2-2:指标定义 T_ ZHIBIAO字段代号 数据类型 字段说明 类型id int 指标编号 PK,NNfather int 上级指标代号
16、FK,NNname varchar 指标名称 NNdescribe varchar 指标说明department int 评定该指标的部门 FK,NN项目评估考核系统第 12 页表 2-3:项目信息 T_ PROJECT字段代号 数据类型 字段说明 类型id int 项目编号 PK,NNname varchar 项目名称 NNmanager int 项目经理 FK,NN表 2-4:评审表定义 T_ PINGSHEN字段代号 数据类型 字段说明 类型id int 评审表代号 PK,NNfather int 上级评审表代号 FK,NNname varchar 评审表名 NNdesc varchar
17、 评审表说明表 2-5:人员信息 T_ PEOPLE字段代号 数据类型 字段说明 类型id int 人员编号 PK,NNname varchar 人名 NNdepartment int 所属部门 FK,NN表 2-6:部门信息 T_ DEPARTMENT字段代号 数据类型 字段说明 类型id int 部门编号 PK,NNdepart varchar 部门名称 NN表 2-7:评审表结构 T_ PINGSHEN_ CONSTRUCT字段代号 数据类型 字段说明 类型pingshen_id int 评审表编号 FK,NNzhibiao_id int 指标编号 FK,NNquanzhong floa
18、t 权重 NN项目评估考核系统第 13 页表 2-8:评审结果 T_ PINGSHEN_RESULT字段代号 数据类型 字段说明 类型id_pingshen int 评审表编号 FK,NNid_people int 人员编号 FK,NNid_zhibiao int 指标编号 FK,NNid_project int 项目编号 FK,NNdefen float 得分 NNzhouqi nvarchar 周期 NN2.4 系统构架设计系统的结构是系统科学的基本范畴。任何系统都有一定的结构。系统的结构就是系统保持整体性及具有一切功能在内的依据,也是系统内部各组成要素之间在时空方面有机联系与相互作用的方
19、式或顺序2.4.1 常用的系统构架C/S 结构C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过他可以充分利用两端硬件环境的优势,将任务合理分配到 Client 端和 Server 端来实现,降低了系统通讯开销。C/S 这种两层结构比较适合小规模、用户较少、单一数据库在安全、快速的网络环境。它是单一服务器且以局域网为中心的,所以难以扩展止大型企业广域网或是 Intranet。未能很好的剥离,这样系统受限制于供应商,程序的升级等还要外包给供应商。B/S 结构B/S(Browser/Server )结构即浏览器和服务器结构。它是随着 Interne
20、t 技术的兴起,对 C/S 结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过 WWW 浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)以目前的技术看,局域网建立 B/S结构的网络应用,并通过 Internet/Intranet 模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点、以不同的接入方式访问和操作共同的数据库,它能有效地保护数据平台和管理访问权限,服
21、务器数据库也很安全。项目评估考核系统第 14 页2.4.2 本系统构架选取 B/S 结构比较了 B/S 和 C/S 的结构之后,发现它有两大优点,分别就是维护和升级方式比较简单,成本降低,选择更多。由此看来,三层相对完整的剥离是发展的趋势。因此决定采用 B/S 三层结构去实现。图 2-7 B/S 结构2.4.3 数据处理方式数据显示方式业务逻辑处理程序先将数据库表中的数据取出,存放于实体 bean 中,由 jsp 转换成html 页面显示图 2-8 数据显示流程项目评估考核系统第 15 页数据提交方式用户通过 html 提交页面由 jsp 传递给业务逻辑,通过 bean 与数据库进行交互处理数
22、据图 2-8 数据提交流程2.5 系统运行环境2.5.1 硬件环境中心服务器配置2.5.2 软件环境数据库:SQLServer 2000服务器:Weblogic/Tomcat(测试) 浏览器:IEJava 运行包:j2sdk1.5项目评估考核系统第 16 页2.5.3 开发工具Java 工具:JCreator LE 3.1Jsp 文本编辑工具:UltraEdit-32Html CSS 编辑工具: DreamWeaver MX 2004本章小结从需求分析开始对系统进行策划和描述,并按照软件工程的思想来开发,给出了数据库的详细设计。随后在系统架构的设计中阐述了用 B/S 构架的原因。项目评估考核系
23、统第 17 页第 3 章 系统详细设计3.1 两个主要的 JavaBean 设计3.1.1 执行数据库操作 Bean(DBUtil.java)A. 建立数据库连接 getConnection()相关方法:查看某条记录的任意一列数值,见(图 3-1)输入:sql 语句代表选取该记录的语句;num 代表列的第 N 列返回:以 String 的形式返回图 3-1 DBUtil.view项目评估考核系统第 18 页B. 将 ResultSet 结果集合转换成 ArrayList 的形式,见(图 3-2) 输入:ResultSet 通常查询完的结果集输出:ArrayList 集合设计原因:若采用 Res
24、ultSet 形式返回,在取数据上有很多的不方便。首先,必须保持同数据库的连接,其次,必须按照表中列的先后依次去取数据。因此将其转换成ArrayList,就可以摆脱和数据库如此紧密的耦合。但一定要处理成与 ResultSet 完全对应的样子,也就是将结果集映射为集合的一个过程。图 3-2 DBUtil.rsToListC. 处理带有一个变量的查询语句,将结果用 ArrayList 集合返回,见(图 3-3)输入:sql 语句 (如:String q1=“select * from T_ZHIBIAO where id=?“;)param代表?的值输出:结果集映射后的 ArrayList 集合说
25、明:由于我整个系统最多只用到的带一个变量的查询,若以后有需要扩展到两个变量的话,可以重载这个方法,变量可以继续添加 param1,param2,.项目评估考核系统第 19 页图 3-3 DBUtil.viewQueryD. 处理不带变量的查询语句,以 ArrayList 的形式返回结果 view(String sql)输入:sql 语句 (如:String q1=“select * from T_ZHIBIAO)输出:结果集映射后的 ArrayList 集合E. 处理需要更新的语句操作,如 update,delete,无返回值 updateQuery(String update)输入:Stri
26、ng update 表示执行的 sql 语句如:String update=“delete T_PINGSHEN_CONSTRUCT where zhibiao_id=100“;说明:可以重载此方法,更新相应的数值,在本系统中一次更新所带的参数不超过 4 个。以下是所有的重载方法相关方法:带有一个参数的更新:updateQuery(String update,String param)String update=“delete T_PINGSHEN_CONSTRUCT where zhibiao_id=?“参数变量 param 取代?的值带有两个参数的更新:updateQuery(String
27、 update,String param1, String param2)带有三个参数的更新:updateQuery(String update,String param1, String param2,String param3)带有四个参数的更新:updateQuery(String update,String param1, String param2,String param3,String param4)项目评估考核系统第 20 页3.1.2 控制与处理指标相关信息的 Bean(Zhibiao.java)方法一:指标属性变量的一系列 set ,get 的方法,见(图 3-4)说明:方
28、便 JSP 页面中传递参数图 3-4 Zhibiao.java(注:get 的方法类似。 )方法二:计算“权重*得分”数值的方法 getresult()输入:this.quanzhong输出:float result说明:指标内有两个属性值 result,quanzhong,计算的时候,取得 this.quanzhong 将计算值放入 this.result 中。项目评估考核系统第 21 页方法三:解析指标所涉及的部门 ,见(图 3-5)输入:this.department输出:解析后,以所需要的部门显示形式的字符串说明:指标与部门并不一定是一一对应的关系。而且也不可能按照显示的形式将其放入数
29、据库中,因为那样不方便以后的比较操作,必须用部门编号进行存放,而显示的时候才解析。图 3-5 Zhibiao.getdepartname方法四:解析指标的树形结构boolean firstclass()boolean secondclass()见(图 3-7)输入:this.id输出: 若是属于 firstclass 则 true;否则 false若是属于 secondclass 则 true 否则 false说明:指标 id 是符合一定的结构进行编排的。算法:比如父亲的 id 标记为 fid 儿子的 id 标记为 zid儿子是父亲的第 n 个孩子(从左向右统计)那么 zid 按照 Strin
30、g 的方式相加表示为Zid=fid+n;项目评估考核系统第 22 页如(图 3-6):举例推导如下:ID=111 的父亲是 ID=11Zid=111;fid=11;n=1Zid=fid+n()图 3-6 指标 id 结构图一般子类指标不超过十个,所以可以采用这样的算法。通常也是分三层分别代表指标维度,一级指标,二级指标的含义。图 3-7 指标分类方法 Zhibiao.firstclass;Zhibiao.secondclass项目评估考核系统第 23 页3.2 系统模块设计3.2.1 指标操作指标的操作主要是有用户提交指标一系列的相关数据,然后在数据库中进行添加。也可以对数据库中现有的指标进行
31、一些的修改。A. 功能一: 添加一个新的指标图 3-8 页面 zhibiao/addZhibiao.jsp输入项:指标名,指标权重,指标说明,涉及该指标的相关部门输出项:后台提交一条指标记录添加到数据库设计技巧(算法):1. 创建一个 DBUtil 对象作为 session 中的 Bean 取名为 db。创建一个 Zhibiao 对象作为session 中存放添加指标数据的 Bean 取名为 zb。2. 添加完提交到当前页面3. 具体实现:由当前页面取得变量,放如 zb 的相应的属性中,在后台进行添加入数据库。部分代码如下:项目评估考核系统第 24 页图 3-9 创建新指标B. 功能二:查看所
32、有的指标,并且选定一个指标图 3-10 页面 zhibiao/viewZhibiao.jsp输入项:选定一个指标,页面提交的输入数据是指标的 id输出项:通过指标 id,从数据库提取信息产生输出页面设计技巧(算法):1. 显示指标的树状结构利用 zb 中 zb.firstclass(),zb.second()方法2. 需要用到分页技巧去处理所有指标的显示。项目评估考核系统第 25 页写一个 PageNumber 的 JavaBean 来控制页面中显示指标的数量,当超出规定的数量时候,就进行翻页。见(图 3-11)图 3-11 pageNumber.java3. 用 session 保留表单提交
33、的变量值,用 jsp 语句实现跳转页面C. 功能三:对已选定的指标进行修改(包括指标的权重,指标说明,指标所涉及的部门,删除该指标)图 3-12 页面 zhibiao/updateZhibiao.jsp项目评估考核系统第 26 页输入项:从 session 把选定的指标编号取得,放入 zb 中输出项:根据所修改的内容而定。权重值,指标说明,部门的更新,这些其中的一项,或者说几项皆有。设计技巧(算法):1. 变量名由跳转页面得到,流程如下:viewZhibiao.jspforUpdate.jsp(保存指标变量入 session)updateZhibiao.jsp2. 这是带有变量的更新数据,要用
34、到db.updateQuery(sql,param1,param2)3. 在当前页面处理,后台更新数据尚未处理的问题:应该添加相应的成功添加数据的页面3.2.2 评审表制订评审表的制订是由专人负责将评审表所对应的指标添加进来的操作。不同评审表所对应的指标是不一样的。A. 功能一:显示评审表,并选定要操作的评审表图 3-13 页面/pingshen/indexx.jsp项目评估考核系统第 27 页输入项:评审表的编号输出项:评审表操作设计技巧(算法):1. 评审表树状结构的显示与指标类似的解决方法,评审表在数据结构中的存放形式也按上下级的方式保存。留出一个评审表编号作为评审表的根编号。由于评审表
35、的操作没有指标操作那样复杂,所以不必要写一个专门的 Bean。在选取结点的时候,只要用一句 sql 去控制便可(select * from T_PINGSHEN t1,T_PINGSHEN t2 where t1.id=t2.father)再通过 db 去与数据库进行交互。2. 选定评审表,取得评审表 ID方法上大致和指标操作中将指标 ID 保留的方法一致,创建 session 对象将值保留下来,方便后面的操作。页面流转如下:indexx.jspforGet.jsp(保存指标变量入 session) addMoreZhibiao.jsp图 3-14 展开指标集合项目评估考核系统第 28 页B.
36、 功能二:为选定的评审表添加指标图 3-15 页面/pingshen/selectZhibiao.jsp输入项:所添加的指标编号输出项:选定的评审表 id,选定的指标 id设计技巧(算法):1. 从 session 中取得当前执行的页面的 id 值(pid)2. 显示还未评审过的指标,用一句 sql 语句便可以控制。String selectZB=“select * from T_ZHIBIAO where id not in (select zhibiao_id from T_PINGSHEN_CONSTRUCT where pingshen_id=“+pid+“) order by id“
37、;3. 页面流转:addMoreZhibiao.jspselectZhibiao.jsp4. 在处理更新数据的时候,其实是将根据指标库里的指标是否有被选中来判断的,如果有选中则记录 id,在一个循环中,暂时放在 zb 中,当前循环结束项目评估考核系统第 29 页时,更新数据。C. 功能三:查看评审表已有的指标图 3-16 页面 pingshen/operate/selectZhibiao.jsp输入项:从 session 取得的评审表 ID 的值(pid)输出项:该评审表所拥有的指标设计技巧(算法):从表 T_PINGSHEN_CONSTRUCT 中去取。相关的 sql 语句是:String
38、sql=“select zhibiao_id from T_PINGSHEN_CONSTRUCT where pingshen_id=“+pid+“order by zhibiao_id“;String q1=“select * from T_ZHIBIAO where id=? order by id“;三个操作相关页面流转:修改指标:pingshen/operate/editSelectedZhibiao.jsp继续添加:pingshen/operate/addMoreZhibiao.jsp评审完毕:pingshen/ index.jsp项目评估考核系统第 30 页D. 功能四:删除评审表中已有的指标图 3-17 页面/operate/editSelectedZhibiao.jsp输入项:从 session 取得的评审表 ID 的值输出项:待调整的指标 ID设计技巧(算法):这里所涉及的 sql 语句:delete from T_PINGSHEN_CONSTRUCT where pid=? and zid=? 两个页面跳转流程:删除当前指标 pingshen/operate/deleteZhibiao.jsppingshen/operate/viewPingshenZB.jsp继续添加指标 pingshen/operate/addMoreZhibiao.jsp