如何做好软件项目的验收
项目验收是公司乃至每个项目成员都想要的结果,一旦验收对公司来说就是,可以收验收阶段的款了,不需要再投入那么多人力到项目当中,项目终于可以告 一段落,大家都可以轻松一下了。
项目验收是一系列细致工作完成到位的结果,而不是某一点的成功或某个人能力就可以促成的事情。
一个项目的验收,一般是由一 系列验收准备工作组成的。
如果我们在最终验收前,已经将很多阶段的工作细化并得到认可执行,那么项目验收也就是水到渠成的事情了。
首先我们要明确进入验收的前提。
很多人都认为只要我们完成了合同中规定的内容,完成了需求规格说明中规定的工作,并且按合同试运行了几个月,应该就可以验收了。
就可以拿着合同或技术协议与客户谈论验收的相关事宜了。
但 实际上客户往往不同意在此时验收。
他们的判断往往不是招标书、合同、技术协议、需求规格说明书等文档。
其实这些文档无论做得如何细致,对用户而言并没太大 的参考价值。
客户关心的是他们的业务是否真地在系统中运作,并且运行良好,并以此作为检验项目验收的标准。
当然有的项目也可以通过商务运作,在业务实现不 太好的情况下验收。
1、在项目实施过程中注重里程碑的确定,制定阶段性目标如果要做好一个项目,完成项目的验收条件,主要还是以业务是否可用作为衡量的。
不是一定得实现所有用户的需求(这里指的是口头上的需求,如果落实到文字上的还是要实现的),也不是只有将一些所谓的技术难点解决用户就会同意验收,而是我们可以完成一定的阶段应用业务目标。
我们从进行需求调研的时候就要主动控制项目的边界,将一个一个业务流根据客户方的实际情况合理组织实施顺序,形成我们项目实施计划中的里程碑点,明确达到里程碑点的条件,并得到双方一致正式认可。
没有双方高度达成一致的里程碑认可,也就是没有项目目标约定,没有目标约定的项目实施计划一定会经常变更内容、变更初始设定目标,导致计划不可控制,更谈不上验收。
很多人希望通过详细的系统需求规格说明书来定义项目要实现的内容和业务目标,这是很有必要的,但需求规格说明书得到认可并非是通过用户审核就可以的结果,应该想办法让用户一起参与到需求规格说明书的制定过程中来,变成用户自己推导出来的业务实施目标,未来才不容易变形。
2、积极主动地与客户进行沟通沟 通的作用对于高管是让他们清楚我们一直按照项目目标前进,每个阶段工作进展是否顺利,影响项目正常运做原因是什么,需要哪些资源帮助。
和高管沟通比较多的 话,第一个好处是高管经常听汇报就知道项目进展程度,可以安排反馈检查,看是否具备我们所说的进展,这样一旦认可了各个阶段目标后,最终要求高管签字确认 也就顺理成章了。
给高管汇报技巧就是简洁明了,真实客观,有理有据分析问题,提出对策建议请其决策即可。
中层往往是项目主要的推动力量和实际执行者,也往往是对具体业务需求最主要的要求者,他们对企业实际运做过程最清楚,提出要求最具体,而且项目验收与否没有中层的同意往往也是不太容易做到的。
和基层的沟通主要体现对最终用户的关怀,定期主动和最终用户沟通,消除一些怨气,让用户能坚持用下去,这个时候我们往往发现很多用户真的是非常好相处,尽管软件还有很多值得改进的地方,但他们一旦认可我们团队,反而会尽心尽力帮助我们推动项目的进行。
目前我们公司一般要求每个项目经理在项目进行中都要填写详尽的项目月报,反映项目的进度,与计划的偏差,完成的项目内容,投入人力,目前项目存在的问题,以及预计项目下月的进度等等。
将进度月报交部门负责人、项目管理中心、总经办审阅。
类似地也要制定针对客户的月报甚至是周报,将相关的信息反应到客户方的负责人,及相关高层。
可以先发邮件,然后还要电话落实收到并口头简要汇报,特别是高管层,千万不要以为发了就等于别人会去看,一定要口头跟进汇报一次,保证客户各方面负责人对项目进展做到心中有数。
在 项目的过程中,我们也需要注意平时做人的积累,比如要做到讲诚信,讲原则。
主要是三条:1)做不到的事情千万别随意承诺;2)承诺的事情一定要努力做 到;3)每次做到的事情都进步一点点。
按这三条做事,即使在系统的使用过程中总会有这样或那样的一些不方便,用户也会慢慢接受稍微长一点的响应周期,也会 用更多积极性眼光看现在的问题,也相信问题一定有人响应,也一定可以得到解决。
进而使我们和客户之间形成一种较为和谐的关系。
3、写好备忘录和问题跟踪记录在一个漫长项目周期中,很多工作做了也就做了,认可了也就认可了,时间一长也就忘记了很多承诺和约定,到了验收的时候就可能重新翻出来,这种事情很多人可能都经历过,明明说可以先不做的内容最终验收的时候又成了必要条件。
每次备忘录要口头交流认可后才打印签字确定阶段性工作成果。
下次工作则根据前次备忘录的双方约定继续进行,保障项目在每次工作基础上不断前进,并用备忘录约束双方的行为。
同 时我们建议在收集项目出现的各种问题时,采用问题跟踪记录表的形式,这样可以一目...
软件项目进度管理怎样计划项目发挥真正的作用,而不成为挂在墙上的...
1、任务分配、人力资源分配、时间分配要与工程进度相协调在小型软件开发项目中,一个程序员能够完成从需求分析、设计、编码,到测试的全部工作。
随着软件项目规模的扩大,人们无法容忍一个人花十年时间去完成一个需要十几个人年才能完成的软件项目。
大型软件的开发方式必然是程序员们的集体劳动。
由于软件开发是一项复杂的智力劳动,在软件开发过程中加入新的程序员往往会对项目产生不良影响。
因为新手要从了解这个系统和以前的工作做起,当前正在从事这项工作的“专家”不得不停下手中的工作,抽出时间对他们进行培训。
于是,在一段时间内,工作进度便拖后了。
软件开发人数的增加将导致信息交流路径和复杂性的增加,项目进行中盲目增加人员可能造成事倍功半的效果。
适用于大型项目的Rayleigh-Norden曲线[4]表明,完成软件项目的成本与时间的关系不是线性的,使用较少的人员,在可能的情况下,相对延长一些工作时间可以取得较大的经济效益。
然而值得指出的是,程序员小组的正常技术交流能改进软件质量,提高软件的可维护性,减少软件错误,降低软件测试和正确性维护的开销。
任务、人力、时间三者之间存在最佳组合,必须引起项目负责人的足够重视。
2、任务分解与并行化软件工程项目既然需要软件开发人员集体的劳动,就需要采取一定的组织形式,将软件开发人员组织起来。
软件人员的组织与分工是与软件项目的任务分解分不开的。
为了缩短工程进度,充分发挥软件开发人员的潜力,软件项目的任务分解应尽力挖掘并行成分,以便软件施工时采用并行处理方式。
3、工作量分布 用前几节介绍的软件估算技术可以估算出软件开发各个阶段所需要的工作量,通常用人月或人年表示。
软件在需求分析和设计阶段占用的工作量达到总工作量的40%~50%,说明软件开发前期的活动多么重要。
当然这也包括分阶段开发原型的开销。
大家熟悉的编码工作只占全部工作量的10%~20%,而软件测试和调试的工作量占到总工作量的30%~40%。
这对于保证软件产品质量是十分必要的,实时嵌入式系统软件的测试和调试工作量所占的比例还要大些。
4、工程进度安排 软件项目的工作安排与其他工程项目的进度安排十分相似,通常的项目进度安排方法和工具稍加改造就可以用于软件项目的进度安排。
目前,程序评估与审查技术(PERT)和关键路径方法(CPM)是两种比较常用的项目进度安排方法。
两种方法都生成描述项目进展状态的任务网络图。
网络图中按一定的次序列出所有的子任务和任务进展的里程碑,它表示各子任务之间的依赖关系。
网络图也是作业分解结构(WBS)的发展。
20世纪70年代,作业分解结构就已广泛应用于航天、航空、航海、雷达、通信、火控系统等领域的基于计算机项目的分解,并用以命名各项子任务,这些子任务不仅可以用网络图的形式表示,还可以用树型或层次结构图表示。
PERT和CPM方法为软件规划人员提供了定量描述工具,包括:①关键路径。
完成关键路径上所有任务时间的总和,就是项目开发所需要的最短时间。
②用统计模型估算开发每个子任务需要的工作量和时间。
③计算各子任务的最早启动时间和最迟启动时间,即确定启动子任务的时间窗口边界。
某个子任务的最早启动时间被定义为该子任务的所有前导任务完成的最早时间。
反之,某个子任务的最迟启动时间被定义为在保证项目按时完成的前提下,最迟启动该子任务的时间。
与最早启动时间和最迟启动时间对应的概念是最早结束时间和最迟结束时间。
它们分别是最早启动时间和最迟启动时间与完成该子任务所需要时间的和:在任务进度安排过程中,应先寻求关键路径并在关键路径上安排一定的机动时间和节假日,以便应付意想不到的困难和问题。
采用这些工具可以大大减轻软件项目管理人员在制定软件项目进度表方面的工作量,并可提高工作质量。
一个软件项目如何评估工作量和成本?
你可以采用清流的等值线软件conmas,比surfer还好用。
清流等值线软件Conmas是一款通用等值线绘制软件,可以广泛用于地质、测绘、气象、水利等多个行业。
Conmas可以根据散点数据进行插值,支持6种插值算法,生成格网数据,追踪生成等值线(面),并且可以在此基础上剪裁边界、绘制剖面图、计算特殊区域,在工程和科研领域具有广泛的用途。
它具有以下特点:1. 对散点进行可视化编辑,实现等值线的在线修改。
2. 支持shape、xls、dat、grd、bln等多种格式的文件导入导出。
3.支持边界剪裁和边界外扩,支持地图叠加。
4.支持二次开发,完美嵌入其它系统。
5. 多种插值算法,实现散点到网格数据的插值。
详细信息可以访问“北京清流技术发展有限公司”的网址
信息系统的生命期与信息系统项目的生命期有什么联系和区别?
(一)信息系统项目的生命期1)初始阶段:系统地阐述项目的范围、确定项目的边界,选择可行的系统构架,计划和准备商业文件。
商业文件包括验收规范、风险评估、所需资源估计、体现主要里程碑日期的阶段计划。
(2)细化阶段:分析问题领域,建立健全体系结构并选择构件,编制项目计划,淘汰项目中最高风险的元素。
同时为项目建立支持环境,包括创建开发案例,创建模板、准则并准备工具。
(3)构建阶段:完成构件的开发并进行测试,把完成的构件集成为产品,测试产品所有的功能。
构建阶段是一个制造过程,其重点放在管理资源及控制运作以优化成本、进度和质量。
4)交付阶段:交付阶段的目的是将软件产品交付给用户群俸。
当本次开发的产品成熟得足够发布到最终用户时,就进入了交付阶段(二)信息系统生命周期由系统分析、系统设计、系统实施以及系统管理和维护四个时期组成,每一个时期又进一步划分成若干个阶段。
1.系统分析系统的分析,也叫系统的调查与分析,是信息系统生命周期的第一个阶段,也是最重要的一个环节。
系统分析时期的任务包括确定信息系统必须完成的总目标,确定工程的可行性,导出实现工程目标应该采取的策略及系统必须完成的功能,估计完成该项工程需要的资源和成本,并且制定工程进度表2.系统设计系统设计是信息系统生命周期中另一个重要阶段。
系统设计的主要目的就是为下一阶段的系统实施制定蓝图3.系统实施系统实施是新系统开发工作的最后一个阶段。
4.系统维护系统维护是系统投入正常运行之后一件长期而又艰巨的工作
列举身边用到的测试系统
你好!关于web测试的文档,网上有很多,你可以参考一下在一个软件项目开发中,系统测试是保证整体项目质量的重要一环,本文将就网站的测试技术及相应的自动测试工具做一个简要的介绍。
主要就如下几个方面进行探讨:功能测试性能测试安全性测试稳定性测试浏览器兼容性测试可用性/易用性测试链接测试代码合法性测试2测试内容2.1功能测试在实际工作中,功能在每一个系统中的具有其不确定性,而我们不可能采用穷举的方法进行测试,因而导致了功能测试较为困难,我们依据80/20原则(即80%的错误存在于系统的20%的部分)对于测试用例的设计采用如下两种方法2.1.1白盒测试白盒测试即使用程序设计的控制结构导出测试用例。
基于目前的现状我们采用基本路径测试方法进行白盒测试,此种方法简单高效。
基本路径测试方法的简单说明如下:¨首先通过系统设计的流程图导出数据流图¨根据数据流图计算其环形复杂性V(G)=E-N+2或V(G)=P+1V(G):环形负责性E:流图中边的数量N:流图中节点的数量P:流图中判定节点的数量¨我们设定V(G)条路径¨我们设计V(G)条路径的模拟数据¨根据数据进行相应的测试2.1.2黑盒测试黑盒测试即派生出执行程序所有功能需求的输入条件,从而导出测试用例,进行测试的方法,黑盒测试用于辅助白盒测试。
我们采用等价划分的方法进行测试,即为将程序的输入域划分为数据类,以便导出测试用例。
一般情况下输入条件为:一个特定的数值、一个数值域、一组相关值或者一个布尔条件。
2.1.3网站功能测试对于网站的测试而言,每一个独立的功能模块需要单独的测试用例的设计导出,主要依据为《需求分析》,对于应用程序模块需要设计者提供基本路径测试法的测试用例具有测试用例后可以采用OpenSTA(OpenSystemTestingArchitecture)进行自动化测试2.2性能测试网站的性能测试对于网站的运行而言异常重要,但是目前对于网站的性能测试做的不够,我们在进行系统设计时也没有一个很好的基准可以参考,因而建立网站的性能测试的一整套的测试方案将是至关重要的。
网站的性能测试主要从两个方面进行:负荷测试(Load)和压力测试(Stress),负荷测试指的是进行一些边界数据的测试,压力测试更像是恶意测试,压力测试倾向应该是致使整个系统崩溃。
性能测试可以采用相应的工具进行自动化测试,我们目前采用如下工具ab-----Apache的测试工具OpenSTA—开发系统测试架构2.3安全性测试目前网络安全问题日益重要,特别对于有交互信息的网站及进行电子商务活动的网站尤其重要。
目前我们的测试没有涵盖网站的安全性的测试,我们拟定采用工具来测定,工具如下SAINT-------SecurityAdministrator'sIntegratedNetworkTool此工具能够测出网站系统的相应的安全问题,并且能够给出安全漏洞的解决方案,不过是一些较为常见的漏洞解决方案。
2.4稳定性测试网站的稳定性测试是指网站的运行中整个系统是否运行正常,目前没有更好的测试方案,主要采用将测试服务器长时间运转进行测试。
2.5浏览器兼容性测试通过白盒测试或者黑盒测试导出的测试用例,采用相应的工具进行测试,可以采用OpenSTA进行测试,此测试工具可以采用不同的浏览器进行测试。
2.6可用性/易用性测试可用性/易用性方面目前我们只能采用手工测试的方法进行评判,而且缺乏一个很好的评判基准进行,此一方面需要大家共同讨论。
2.7链接测试超级链接对于网站用户而言意味着能不能流畅的使用整个网站提供的服务,因而链接将作为一个独立的项目进行测试。
目前我们已经有了一个测试工具Xenu------主要测试链接的正确性的工具可惜的是对于动态生成的页面的测试会出现一些错误。
2.8代码合法性测试代码合法性测试主要包括2个部分:程序代码合法性检查与显示代码合法性检查¨程序代码合法性检查程序代码合法性检查主要标准为《intergrp小组编程规范》,目前采用由SCM管理员进行规范的检查,未来期望能够有相应的工具进行测试。
¨显示代码合法性检查显示代码的合法性检查,主要分为Html、Javascrīpt、Css代码检查,目前采用HTML代码检查------采用CSEHTMLValidator进行测试Javascrīpt、Css也可以在网上下载相应的测试工具。
3测试工具OpenSTA主要做性能测试的负荷及压力测试,使用比较方便,可以编写测试脚本,也可以先行自动生成测试脚本,而后对于应用测试脚本进行测试。
SAINT网站安全性测试,能够对于指定网站进行安全性测试,并可以提供安全问题的解决方案。
CSEHTMLValidator一个有用的对于HTML代码进行合法性检查的工具Ab(ApacheBench)Apache自带的对于性能测试方面的工具,功能不是很多,但是非常实用。
Crash-meMysql自带的测试数据库性能的工具,能够测试多种数据库的性能。
软件开发方法?
常见的软件开发方法有结构化方法、Jackson方法、维也纳开发方法(VDM)和面向对象的开发方法。
1.结构化方法:指导思想:自顶向下,逐步求精;基本原则:功能的分析与抽象。
优点:1、 适用于数据处理领域的问题;2、支持工具较多,发展成熟。
缺点:1、不适应规模大的项目;2、不适应特别复杂的项目;3、难于解决软件重用的问题;4、难于适应需求变化的问题;5、难于彻底解决维护问题。
2.Jackson方法:这是一种面向数据结构的方法过程:JSP—>JSDJSP方法:1、以数据结构为驱动;2、首先描述问题的输入,输出数据结构,分析其对应性,然后退出相应的程序结构,从而给出问题的软件过程描述。
JSD方法:1、以事件作为驱动;2、首先建立现实世界的模型,再确定系统的功能需求,对需求的描述特别强调了操作之间的时序性。
3.维也纳开发方法(VDM):这是一种形式化的开发方法,是一个基于模型的方法。
主要思想:将软件系统当做模型来给予描述,具体说是把软件的输入,输出看做模型对象,而这些对象在计算机中的状态可看做为该模型在对象上的操作。
借助工具:描述工具语言Meta-IV。
4.面向对象的开发方法:定义:以对象作为最基本的元素,是分析问题,解决问题的核心。
对象:具体的事物,事件,概念和规则。
基本点:尽可能按照人类认识世界的方法和思维方法来分析和解决问题。
不做作业