ARQ项目管理系统-毕业论文_第1页
ARQ项目管理系统-毕业论文_第2页
ARQ项目管理系统-毕业论文_第3页
ARQ项目管理系统-毕业论文_第4页
ARQ项目管理系统-毕业论文_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ARQ项目管理系统 本科毕业论文(科研训练、毕业设计)题 目:ARQ项目管理系统姓 名:学 院:软件学院系:专 业:软件工程年 级: 学 号:指导教师(校内): 职称: 指导教师(校外): 职称: 年 月 日ARQ项目管理系统摘要 ARQ项目管理系统为系统设计方与系统开发方搭建起一个交流的平台,从而确保外包软件能按时、按量、按质完成。以下是对ARQ项目管理系统的一些说明: 通过改订历史查询可检索出整个项目的改订情况; 通过改订报告可检索并维护整个项目的改订情况; 通过质问历史查询可检索出整个项目的质问情况; 通过质问发行开发方可向设计方发出一质问需求; 通过质问报告可检索并维护整个项目的质问情况; 通过系统对象维护设计方可启动一个新项目; 通过模块维护可对某个项目增加或删除一个模块; 通过程序维护可对某个模块增加或删除一个程序; 通过站点维护可增加、删除或修改所有站点信息; 通过用户维护可增加、删除或修改用户的资料。关键字 项目管理 软件外包 系统改订 系统维护ARQ Project Manage SystemAbstract ARQ project manage system makes a flat communicate with the designer of system and the developer of system. Making sure that software outsourcing has been satisfactorily completed on time . The following are the explain of the ARQ project manage system:Searching the revises of the whole project by inquiring the historical revises; The designer of system send a requirement of the revises for developer of system by revising; Searching and safeguarding the revises of the whole project by revising report; Searching the query of the whole project by inquiring the historical query; The designer of system send a requirement of the query to developer of system by querying; Searching and safeguarding the query of the whole project by querying report; The designer of system starts a new project by the safeguard the system; Increase or delete a module in some project by the safeguard the system; Increase or delete a module in some module which in a project by safeguarding the program; Increase, delete or revise a information of the site by safeguarding the program; Increase, delete or revise a information of a user by safeguarding the user.Keyword Project Manage, Software Outsourcing, System Revises, System Safeguard目录第一章引言51.1.项目管理的来源51.2.ARQ系统开发背景5第二章系统功能概述72.1.系统的功能特征72.1.1.系统功能描述72.1.2.系统总体流程图72.2.系统业务流程82.2.1.系统业务流程描述82.2.2.系统业务流程图82.3.系统功能描述92.3.1.改订管理模块描述92.3.2.质问管理模块描述92.3.3.系统管理模块描述102.3.4.系统模块关联图及系统运行主画面10第三章系统管理模块详细设计123.1.系统管理模块功能细分123.2.系统管理模块功能数据流图(DFD)123.3.数据库设计133.3.1.数据库逻辑结构133.3.2.数据库表结构143.4.系统运行画面及部分源代码分析153.4.1.系统运行画面153.4.2.部分源代码分析16第四章感想和体会194.1.系统开发过程中的人员,问题和过程的控制方法和步骤194.2.开发工具的选用和特点204.3.开发标准214.4.程序测试23第五章结束语25致谢语26第一章 引言1.1. 项目管理的来源20年前,项目管理的应用仅限于美国国防部的承包商和建筑公司。如今,项目管理的基本思想已被广范应用于国防,建筑,制药,化工,电信,软件开发,银行,广告,会计,司法,政府和联合国等领域和机构。这些机构已经意识到了项目管理和生产率之间的紧密关系,及其在当今商业环境中的重要性。一项调查表明,大约70%的软件开发项目超出了估算时间,大型项目平均超出计划交付时间20%至50%,90%以上的软件项目开发费用超出预算,并且项目越大,超出项目计划的程度越高。因此,软件开发迫切需要进行项目管理。但是,软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程);另外,软件开发不需要使用大量的物质资源,而主要是人力资源;并且,软件开发的产品只是程序代码和技术文件,没有其他的物质结果。基于上述特点,软件项目管理(软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动)与其他项目管理相比,有很大的独特性,甚至可以说项目管理实施的好坏直接制约着一个软件系统的成功与否。软件项目管理的根本目的是为了让软件项目尤其是大型项目的整个生命周期(从分析、设计、编码到测试、维护全过程)都能在管理者的控制之下,以预定成本按期,按质地完成并交付用户使用。而研究软件项目管理是为了从已有的成功或失败的案例中总结出能够指导今后开发的通用原则、方法,同时避免前人的错误。项目管理过程,是一个复杂的大系统。从系统工程的观点看,项目管理普遍涉及到多个目标的要求,一个优秀的项目管理人员,应该注重实践中的分析问题能力,结合理论知识,形成一套行之有效的管理方法,并再通过实践来检验它的科学性。正如我们通常所说的,项目管理是一门艺术,而艺术是无止境的。1.2. ARQ系统开发背景ARQ系统(Ask, Revise, Question)是为了全面、系统地管理厦门阿尔法公司正在实施的外包项目的开发进度、状态而研究开发的。软件外包是指一个软件企业将其运营活动的一个或几个环节交给其他软件企业去做,外包的环节包括编码、系统分析、项目设计、软件测试、流程再造等。外包改变了企业的经营管理方式,不仅是为了降低成本,而且是企业追求卓越战略的组成部分。中日软件外包发展经历四个阶段:1. 日本的主要目标是降低成本。中国主要完成编码(简单编码)的软件外包初级工作;2. 日本主要起知识传递的作用。中国主要是学习阶段,例如,开发嵌入式应用等;3. 日本主要从事外包项目管理。中国与日本协作,提供开发商务应用服务;4. 日本提供完全外包。中国与日本形成合作伙伴关系,具有开发系统集成能力。目前阿尔法公司对日外包正处于第二和第三阶段之间,我们当前的主要任务就是学习软件外包的技术、管理流程和国际市场运作经验,壮大企业规模,提升外包能力和国际形象。但由于语言和事物的规范上的差异导致了这些问题:1. 不规范的开发管理。国外发包商把软件项目转包出去,希望得到什么?规范化管理下,保质、保量和准时是他们共同追求的。我国的软件企业具有较大的成本优势,但不规范的管理却产生了软件产品质量不稳定、延期交工的状况,给发包商带来很大的风险。2. 商业文化差距。西方的商业惯例和规则和我国有较大差异。西方注重管理流程和准则,我们在很多方面则显得更加人性化,相比之下,随意性也较大。3. 国际人才缺乏。缺乏专业的国际化人才。除了语言是我们天生的不足外,人才的国际性思维更是我们的缺陷。在软件外包这场全球竞争中,如何有效建立业务渠道,人与人之间的交流扮演着非常重要的角色。在阿尔法公司的外包项目实施的过程中就存在着系统设计方与系统开发方之间的交流、沟通等问题,如:1. 系统开发方对系统设计方的设计意图的理解不准确而盲目地进行开发。2. 系统设计方不能准确地掌握系统开发方的开发进度。3. 系统设计方在有新的设计修订时不能及时地传达给系统开发方。4. 系统开发方的开发人员对系统有不明点不能及时向设计方提问与沟通。5. 软件产品性能不稳定,系统设计方设计不能及时、准确地修改。6. 由于国家、语言的不同,存在软件开发中的不规范性需要寻求共同。上述问题的解决方法有很多,但其根源可概括如下:系统设计方和系统开发方怎样把企业有限的IT资源最有效地作用于企业核心业务的发展,实现对系统的完善管理,提高系统的可靠性和可用性,增加最终用户满意度。因此ARQ系统的研发就蕴运而生了。第二章 系统功能概述2.1. 系统的功能特征2.1.1. 系统功能描述ARQ系统是一基于Internet的WEB应用系统。该系统采用IBM公司的WSAD5.0作为开发工具,数据库采用SQL SERVER 2000,服务器可采用WSAD内部集成的也可采用Tomcat 5.0。本系统最直接的用户主要有两类:1. 设计方负责系统的总体设计,模块划分,详细设计等;2. 开发方负责系统的编码实现,后期维护等。系统的主要功能是对一个软件系统的开发进度以及在开发中所碰到的问题,解决的方法等诸多问题进行全面的系统的管理。2.1.2. 系统总体流程图InternetARQ系统ARQ管理代码、程序ID等信息登陆验收信息登陆验收员、工数等程序的开发员及工数登陆根据程序功能概要说明书进行程序开发程序开发验收通知开发完成厦 门日 本程序功能概要说明书修正通知程序测试过程、结果记录文书DB图2-1 系统总体流程图2.2. 系统业务流程2.2.1. 系统业务流程描述当设计方接到一个项目时,就通过登录ARQ系统向开发方发送一个新系统设计需求,若开发方想接手此系统的开发,则登录系统进行接受。到此一个项目就启动了。1. 设计方每设计好一个模块就输入ARQ系统,然后把此模块所需的程序具体的要求告诉开发方,开发方在接到设计方发来的设计书后开始进行开发,开发方每开发完一个程序也必须登录系统将所开发的程序的状态从“开发中”状态更新为“开发完毕等待验收”状态,此时设计方进行程序的验收并将程序的状态改为“验收中”,若合格则更新为“完成状态”,若不合格则更新为“送回”状态要求开发方重新开发,开发方登录系统查看自己所送交设计方验收的程序是否合格,若不合格则继续开发,测试,送交设计方验收直至合格;2. 当设计方对系统有修正需求时也必须登录系统将改订内容告诉开发方,开发方通过查看设计方所发出的改订票进行程序的改订;3. 当开发方对设计的设计意图不明确时,也可登录系统向设计方发送一个质问请求,设计方在接到开发方送来的质问票后组织技术人员进行解答并将解答内容通过系统告诉质问人;4. 若设计方想中止一个系统的开发也可登录系统直接将目前正在开发的系统的状态置为中止,此时开发方将停止开发。2.2.2. 系统业务流程图如图2-2所示。不合格,发修正票发设计书登录信息系统开发中止系统维护系统维护质问改订程序发行质问回答发改订票合格系统开发方厦门设计方日本Login处理改订管理程序开发程序测试等待验收验收系统开发完毕质问管理系统管理系统中止图2-2 系统业务流程图2.3. 系统功能描述2.3.1. 改订管理模块描述此模块的主要功能是当设计方对系统有改订的需求时,根据设计方的要求生成一改订票,开发方在接收到改订票后进行改订。通过此模块ARQ系统可记录整个系统所做的所有改订情况以及改订完成的情况,系统设计方和系统开发方都可通过登录此模块去查询系统的改订情况及改订的报告,但只有系统设计方有权限去发布一个改订,系统开发方只能接受改订而不能发布改订。2.3.2. 质问管理模块描述提问时,根据提问的信息生成一质问票,系统设计方在接收到质问票后进行回答。通过此模块ARQ系统可记录系统开发方的所有质问情况以及系统设计方的回答情况,系统设计方和系统开发方都可通过登录此模块去查询系统的质问情况及回答的报告,但只有系统开发方有权限去发布一个质问,系统设计方只能接受质而不能发布质问。2.3.3. 系统管理模块描述此模块(只有系统管理员才有权限进入此模块)的主要功能是对系统信息进行管理。包括站点的分配,用户的分配,权限的分配,以及新项目的启动,项目的维护等。只有系统设计方才有权启动一个新项目,并增加或删除一个模块或程序。通过此模块ARQ系统可记录每个计划开发或正在开发的系统的所有模块,各模块中的程序信息,以及所有系统设计方,系统开发方的信息,及系统设计方,系统开发方中的各个用户的资料。2.3.4. 系统模块关联图及系统运行主画面1. 系统模块关联图,如图2-3所示。图2-3 系统模块关联图2. 系统登录画面,如图2-4所示。图2-4 登录画面3. 系统登录后的主页面,如图2-5所示。图2-5 登录后的主页面第三章 系统管理模块详细设计3.1. 系统管理模块功能细分系统管理模块(此模块只有系统管理员才有权限进入,一般用户将被屏蔽此模块)根据功能细分为项目管理、模块管理、程序管理、站点管理、用户管理五个子模块。1. 项目管理子模块可供系统设计方新建,删除,修改一个项目的基础信息;2. 模块管理子模块可供系统设计方为某一项目增加或删除一个模块并可查看所有模块的信息;3. 程序管理子模块可供系统设计方为某一模块增加或删除一个程序并可查看所有程序的信息。4. 站点管理子模块用于记录所有设计方(可有多个)与开发方(可有多个)的基础信息;5. 用户管理子模块用于记录设计方和开发方的所有用户的资料。3.2. 系统管理模块功能数据流图(DFD)顶层:用户系统管理模块系统信息主表图3-1 系统管理模块功能数据流图项层 用户向系统管理模块发出的系统维护请求; 系统管理模块处理后的数据信息。第二层:用户项目管理模块管理系统信息主表程序管理站点管理用户管理图3-2 系统管理模块功能数据流图第二层 用户向项目管理子模块发出的维护请求; 用户向模块管理子模块发出的维护请求; 用户向程序管理子模块发出的维护请求; 项目管理子模块维护处理后的数据信息; 模块管理子模块维护处理后的数据信息; 程序管理子模块维护处理后的数据信息; 用户向站点管理子模块发出的维护请求; 用户向用户管理子模块发出的维护请求; 站点管理子模块维护处理后的数据信息; 用户管理子模块维护处理后的数据信息;3.3. 数据库设计3.3.1. 数据库逻辑结构如图3-3所示。图3-3 数据库逻辑结构从图3-3可以看出数据库的表之间的关联很少,这样设计目的是为了让不同的程序在代码中可以使用共同的函数来执行数据库的查询、插入、删除等操作,而无须另外编写SQL语句,从而提高代码的复用性,使代码更加清晰易读,提高可维护性。3.3.2. 数据库表结构1. 站点信息表(arq_m_site)用来记录系统设计方和系统开发方的信息。系统设计方可由多个公司组成,每个公司负责一个或几个模块的设计;系统开发方也可由多个软件公司组成,每个公司负责一个或几个模块的开发。如表3-1所示。No.字段名(中文)字段名(英文)字段类型备注1站点IDsite_idchar(04)主键2站点名称site_nmnvarchar(50)3站点类别site_kbnchar(01)4备注commentnvarchar(100)5添加日期add_yhdatetime6添加站点IDadd_site_idchar(04)7添加用户IDadd_user_idchar(08)8最后更新日期upd_yhdatetime9最后更新站点IDupd_site_idchar(04)10最后更新用户IDupd_user_idchar(08)表3-1 站点信息表2. 用户信息表(arq_m_user)用来记录所有登录该系统的用户信息,含系统设计方,系统开发方的系统用户和普通用户的信息。如表3-2所示。No.字段名(中文)字段名(英文)字段类型备注1站点IDsite_idchar(04)主键2用户IDuser_idchar(08)主键3用户名称user_nmchar(50)4密码passwordchar(08)5用户级别user_levelchar(01)6添加日期add_yhdatetime7添加站点IDadd_site_idchar(04)8添加用户IDadd_user_idchar(08)9最后更新日期upd_yhdatetime10最后更新站点IDupd_site_idchar(04)11最后更新用户IDupd_user_idchar(08)表3-2 用户信息表3. 项目基础信息表(arq_m_code)用来记录ARQ系统所要控制的所有项目的最基础的信息如项目名称、所包含模块、所包含程序等信息。如表3-3所示。No.字段名(中文)字段名(英文)字段类型备注1代码类别code_typechar(02)主键2检索关键字1key1nvarchar(10)主键3检索关键字2key2nvarchar(10)主键4检索关键字3key3nvarchar(10)主键5名称1name1nvarchar(50)6名称2name2nvarchar(50)7名称3name3nvarchar(50)8名称4name4nvarchar(50)9添加日期add_yhdatetime10添加站点IDadd_site_idchar(04)11添加用户IDadd_user_idchar(08)12最后更新日期upd_yhdatetime13最后更新站点IDupd_site_idchar(04)14最后更新用户IDupd_user_idchar(08)表3-3 项目基础信息表3.4. 系统运行画面及部分源代码分析3.4.1. 系统运行画面1. 查询所有项目的画面:图3-4 项目查询画面2. 查询PC-PYMAC项目所有模块的画面:图3-5 模块查询画面3. 新建用户时的画面图3-6 用户维护画面3.4.2. 部分源代码分析arq4040_01.js程序为一JavaScript程序。此程序的功能是通过四个函数doSearch, doDelete, doAddNew, doSelectRow来分别作查询处理,删除处理,增加处理及选行处理。JSP程序中的search, delete, addnew等按钮通过调用此程序中的函数来实现数据的查询,增加,修改或删除。/* 查询 */function doSearch() fn.action = arq4040_01.jsp?action_type=VIEW; fn.submit();/* * 删除多行数据 * * parameter: * parm : message to show * e00116 : Please select one row. * w00005 : Do you want to delete the data? * */function doDelete(parm) var row_chk = false; var e00116 = parm0; var w00005 = parm1; var rows = trim(document.all.item(tablelist).value); / selected row check for ( var i = 1; i = rows; i+ ) if ( document.all.item(rowtitle + i).checked ) row_chk = true; break; / no select check if ( !row_chk ) showMessage(1, e00116); return; / show warning message if ( !showMessage(2, w00005) ) return; / double click check if ( !checkDoubleClick() ) return; / form submit fn.action = arq4040_01.jsp?action_type=DELETE; fn.submit();/* * 插入 */function doAddNew() fn.action = arq4040_02.jsp?txt_process_kbn=1; fn.submit();/* * 设置复选框的值 * * parameter: * row : row number */function doSelectRow(row) if ( document.all.item(rowtitle + row).checked )document.all.item(rowtitle + row).value = checked; elsedocument.all.item(rowtitle + row).value = ;第四章 感想和体会4.1. 系统开发过程中的人员,问题和过程的控制方法和步骤ARQ系统的规模是4人月。在开发的过程中对人员,问题,过程进行严格控制。系统按子系统划分,程序按难度从大到小分成4个等级,这里所涉及到难度是从程序在开发工具的实现上、程序所涉及到的业务知识,还有逻辑上的难度等方面来说的。按程序的大小和难度确定程序开发的人日,程序按在系统中的先后顺序被启动,比如系统管理模块是首先被启动的,然后程序就被安排给各个程序开发人员,开发人员要求在工作日之内完成程序,完成时提交程序,测试数据,测试文档和TCN(Test Case Note测试票),如果程序在开发过程中发现超出了预期的难度要求,或是认为自己的能力不能在预定日期内完成程序则要提出延长工作日的申请,上述的过程是系统担当者通过文档进行管理,这样就实现了人员和程序进度的管理。另一方面人员的管理还包括新人加入程序开发当中的管理。新人通过一段时间的培训被加入到程序的开发过程中,由于刚开始的语言、标准还有业务上的不理解由熟练的leader带,leader可以提供技术和业务上的指导,还提供程序逻辑上的分析,协同做好程序以及测试。在工作中学习,逐步的培养成一个好的程序开发人员,公司内部已经形成了一个学习型的气氛,团队的精神也显的分外的重要。对问题的解决通过文档管理,开会和小组讨论进行解决,上面提到程序工作日安排的问题,很大程度上是按照系统的交货期限,预算,可用人员等因素考虑来分配的,如果遇到程序开发方面的问题,如:在开发过程中表的定义发生了改变,而前面已经开发的程序已经涉及到了这些字段,在开发的程序也将会涉及到的字段。遇到这样的情况项目担当者先把表定义进行修改(文档和备份的数据库) ,修改备份数据库不会影响到开发小组其他成员的进度,然后把小组成员都召集起来,把表的定义修改情况通知各位,在把备份的数据库更新到服务器上面去,要求各位开发人员修改手头的程序,担当者把以前涉及到的这样字段的程序统一进行修改。以上例子说明问题解决也要统一和有步骤的,充分体现了团体的精神,而且一切要从项目的交货期限考虑。如果项目开发过程中遇到人员不足的问题,要同其他工作组的项目担当者联系,申请增加开发人员。整个项目的开发过程,都是有步骤、有计划的,一定时间要提交目前程序完成的报告,和接下来的任务。按期限的长短分成周报和月报,这样就对整个过程进行严格的控制。程序开发人员按每日的代码行,和对开发设计书的理解以及其他学习,数据测试所花的时间等指标来度量开发速度,这些内容也要通过文档进行管理。这样可以很清楚的看到每个开发人员对程序开发熟练程度,也让担当者了解到项目的进度的具体情况。4.2. 开发工具的选用和特点本系统采用WSAD5.0为开发工具。WSAD(WebSphere Studio Application Developer)基于最新的Eclipse技术构建用来帮助企业开发人员快速、方便地设计、构建、测试和集成Java2平台企业版(J2EE)和Web服务应用。WSAD有以下几个特点:1. WSAD具有友好的开发界面,WSAD5.0为应用程序的开发提供了一个集成的开发环境,在此环境下,用户可以通过菜单、工具栏以及一些功能键方便快速地创建对象,录入事件处理程序。应用中的绝大多数功能都可以在此环境下现。2. 面向对象:WSAD5.0是面向对象的开发工具,具有面向对象编程语言的各种性质,与传统的开发工具有质的区别。传统的开发思路是“控制流”,即给程序预先定义了运行路径。而WSAD 5.0的思想方法是事件驱动,在编程的过程中没有预定义的路径。WSAD5.0支持对象的继承、封装和多态性等特点。WSAD5.0中对象的创建方式和用户对象技术是WSAD5.0面向对象的最佳体现。3. 组件技术:WSAD5.0支持组件开发,可以将非可视类用户对象编译成为标准的组件。通过组件,用户可以编写通用业务逻辑,组件的调用对其它应用程序透明。有了对组件的支持,WSAD5.0更适合于开发分布式应用和Web应用。4. 多种数据库支持:WSAD5.0支持多种流行数据库的接口,支持应用系统同时访问多种数据库,包括Oracle、Sybase之类的大型数据库,也包括小至FoxPro之类的支持ODBC接口的数据库。另外WSAD5.0开发环境随身携带的Sybase SQL Anywhere本身就是一个功能强的DBMS,对于不太大的应用系统来说,直接使用这个数据库是个质优价廉的选择。5. 编程简单:使用JAVA,JSP, JavaScript语言编写的程序同其它高级语言的程序类似,也是由注释、变量、常量、操作符、表达式和语句组成。同时,WSAD5.0提供了近千个函数和数十个系统对象,极大地方便了程序编写。而且,该语言中可以直接内嵌SQL语句,JSP中的变量也可以在SQL中引用,数据库操作结果也可传出到变量中。6. 支持分布式的应用:WSAD5.0支持分布式应用系统的开发,也就是说,用WSAD5.0不仅能够开发客户端应用程序,而且可以轻而易举地构造应用服务器,从而形成分布式应用。WSAD5.0增加了应用服务器对象共享技术、异步调用技术和推送(Push) 技术,这使得用WSAD5.0构件的多层应用系统结构功能更为强大。7. 支持Internet/Intranet:对Internet/Intranet支持是WSAD5.0增强的重点之一。在这个新版本中,WSAD5.0将以前单独出售的Internet工具箱集成到WSAD5.0的开发环境中,新的Java代理生成器使Java客户机能够直接访问应用逻辑和WSAD5.0对象。代理提供了一种插入商用逻辑的方法,从而确保了应用程序的灵活性、可伸缩性和可重用性,消除了重写和重新分发对象的时间。由于WSAD5.0的分布式应用体系结构特点,可以采用该工具构建用于进行WEB访问的应用。在WEB服务器上HTML页面中可以嵌入WSAD5.0的客户应用程序,构成动态发布数据库信息的WEB应用。8. 数据窗口功能:数据窗口是WSAD5.0中功能十分强大且独具特点的对象之一,在WSAD5.0中数据窗口功能又有了增强。对自由风格和列表风格的数据窗口来说,你可以在保持原有风格的同时将所需的内容自动转换HTML页面。你也可以在数据窗口中放上按钮对象,用户通过单击按钮完成系统预定义操作或编程人员自定义操作。利用组框可以把数据窗口中数据有机地组织在一起。9. 调试器技术:WSAD5.0提供了一个全新的调试器,它具备条件断点、查看内存中对象、浏览指定原代码、查看变量、单步执行、断点执行等一系列实用功能。10. 性能分析工具:WSAD5.0还提供了应用程序性能与分析工具,通过该工具,可以找到应用程序存在的性能瓶颈问题。4.3. 开发标准谈到开发标准就不得不先提到先祖,因为先祖在系统开发的统一性方面起到了举足轻重的作用。先祖顾名思义就是先前写好的一些代码,一些共通的部分,ARQ系统的先祖就是把程序的一个大的框架定好了,把一些经常被调用到的函数(对日期的处理函数,数据库的连接函数,出错函数,用户登录函数等) ,非可视化对象,结构体,底层窗口等做为共通的代码。这样做的好处就是简化了代码的重复性,给提高了编程的效率,也容易统一代码的格式标准。通过继承前面底层窗口可以减少很多重复的处理,比如:在查询时每个画面都要用到一个数据窗口显示数据,进行单行或是多行的维护,一个OK按钮,一个Cancel按钮,这样先祖就把这样具有共通的部分写到最底层,接下来开发人员如果要进行查询操作的时候就可以直接从先祖里继承下来,然后加上程序要求的具体的部分,可以避免了再重复去添加按钮OK和Cancel以及数据窗口了,节约了时间,提高了开发的速度。另外一方面先祖继承下来的窗口等数据是不允许修改的,一来破坏了画面的美观,如果你随意的拉大窗口或数据窗口的大小,在运行时候,窗口就大小不一。二来如果你修改了继承下来的按钮等数据,先祖如果对该按钮进行了其他的操作,你做的程序就不能相应的得到改变,影响了程序的功能。综上所述如果修改从先祖继承下来的数据是吃力不讨好的事情。这在开发过程中要特别的注意。在程序实现方面,每个人都有自己的一种实现方式,这也是一个具有想象力开发人员所应有的素质,但是这样就对程序的可维护和可读性,可运行性可测试性,可复用性造成了很大的阻碍,除此之外还存在其他的问题,每个人在变量和数据窗口的命名上也都凭着自己的兴趣而定,虽然每个人都知道命名的时候变量是要有意义的,但是你的意义在别人的眼中就一个混乱的符号,无法理解。为了处理上面提到的问题还一些潜在的问题,标准就出来了。每个系统,都有各自的标准,但是同一个系统要用到相同的标准,一个软件系统价格不菲,而且有的还要用上十年以上,十年以后谁还记得写了些什么呢?系统如何再维护,再复用,可见标准是如何得重要了。现在谈谈ARQ的标准。先从命名入手,在JAVA中有存在全局,实例和局部变量,三种变量的适用范围是不同的,命名的规则如下:gl_x (gglobal,llong) ,is_y(I=instance, s=string) , ls_row(l=local, s=sting)。从上面的例子可以看到变量名是由三部分组成的,第一个字母是变量所适用的范围,第二个字母是变量的类型,后面的字母是有意义的,有时候是字段的名字。这样就解决了命名的问题,接下来就是窗口上控件的布置了,控件的大小,颜色,背景等等也做了严格的规定,比如:输入框的长度字段的长度3216,数据窗口的背景颜色是button face。命名和界面的排版都完成了,接下来就是关键的代码和程序的功能实现问题了。先谈一下代码的大体格式,在说格式之前我们先看一下一段简单的代码:数据库连接。public Connection cn() throws SQLException / Get connection Connection con = DriverManager.getConnection ( strConn, DBusername, DBpassword ); if ( con != null ) System.out.println(Successfully connected); / Meta data DatabaseMetaData meta = con.getMetaData(); System.out.println(nDriver Information); System.out.println(Driver Name:+ meta.getDriverName(); System.out.println(Driver Version:+ meta.getDriverVersion(); System.out.println(nDatabase Information ); System.out.println(Database Name:+ meta.getDatabaseProductName(); System.out.println(Database Version: + meta.getDatabaseProductVersion(); return con;从上面的代码可以看出,全部的变量都在程序前面部分定义,然后在接下来使用,每段完整的程序都要做相应的注释,这样就使得程序一目了然,文字之间以一个空格的位置隔开,使得程序不会粘在一起,代码行与行之间做相应的缩进,在整个的ARQ中,缩进全部都是以一个tab键,也就是4个空格的位置隔开,这样做使得代码很有层次感,容易看出之间的条件或是循环的关系,代码的段与段之间以一个空行相间。在写代码的时候也应该注意全部的代码格式,在ARQ系统中全部代码都用半角小写英文。就这样按照标准和详细设计书一步步的完成了的代码的编写。4.4. 程序测试一遍写出来的程序大多是不能运行的,只能在调试中一步步使程序走向可以运行的状态,设置断点,查看中间状态,查看错误log(WSAD很方便的做到这一点,WSAD可以让程序一步步的走,让用户查看中间结果和错误log,以便用户看到程序的错误点) ,调试的步骤在就不做详细的解说了。调试完毕后就可以看到初步的成果了。但是可以运行的程序不代表是一个完美的程序,接下来要谈的就是程序的测试和测试数据的做成。黑盒,白盒的测试理论,个人对程序逻辑的理解,可以说只有在做测试数据的时候,才能理解到程序的精华之所在。做程序测试之前的准备:1) 在测试前,将详细设计书和程序进行手工debug,尽早掌握测试的结果。2) 测试时,必须以“bug是一定存在的”心态进行。3) 编程阶段必须注意的是,从编程一开始,要以“bug是不允许的”作为编程的信念,尽量利用已有的程序或者是模块进行模块化编程。4) 对每一个测试情形,测试结果必须事先想象出来。a) 编程时已经考虑的情形,不能有错误发生。b) 编程时没有考虑的情形,必须要作相应的测试数据进行测试。5) 程序的bug的发生往往是在程序员或者用户认为不会发生的情况下发生的,所以不能想当然。6) 很多的bug往往发生在对测试结果没有进行仔细完全的检查的基础之上。7) bug的特性:发现bug越多的程序,潜在的bug也就越多。8) 修改bug时的心理准备:a) 如果存在一个bug,别的bug存在的可能性时很高的。b) 不能只看到bug的表面现象,必须找到产生bug的原因。c) bug修改时,产生新的bug的可能性是非常高的。d) bug修改后,必须仔细检查和测试,保证新的代

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论