项目管理的质量保证_第1页
项目管理的质量保证_第2页
项目管理的质量保证_第3页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、项目管理的保证项目管理的主要目标是保证项目在规定时间内高质量的完成项目。 项目管理 包括了项目组开发各阶段的人员结构的配置, 质量控制的实施方略,内部文档和 产品文档的组织编写等各项工作。开发项目按照规范化软件的生产方式进行生产,在生产流程上采用IS09000的标准进行。项目开发参与的角色有项目经理,项目负责人,领域专家,系统分 析员,程序员,测试组,技术支持部,质量监督组,文档组。下面就各个角色一 一说明其主要职责。项目经理主要负责该项目开发商在开发和维护的过程中同客户的商务接洽和开发配 合方面的事物,包括:项目合同的签定;提交开发计划给客户;组织客户与分析人员进行需求确定;组织客户阶段性验

2、收; 协调客户提供测试环境;监督项目进度与质量; 提供开发人员所需的各种人力物力资源;负责项目开发过程中客户、开发项目组、质量监督部,文档组等相关部门的联络与沟通。项目的开发采用项目负责人责任制。项目的开发由项目负责人全权负责, 负责的范围包括: 项目开发计划的制定; 开发方法的确定; 技术规范的编制; 项目各阶段的人员配给与人员之间的配合;各阶段文档的生成和版本编号。领域专家主要责任是协同系统分析员认清领域边界, 确定领域内容。领域专家可以由 客户抽调技术骨干担任,也可以由开发商聘请担任。领域专家在开发过程中主要 参与的阶段是系统需求分析,在明确了系统将来要完成的主要任务之后, 领域专 家的

3、职责转向系统用户界面的确定上。开发出的系统能被客户接受的两个重要指 标一个是系统正确性,即系统是否正确的完成了用户希望它完成的任务;第二就 是系统操作的便捷性。便捷主要受到使用系统的客户的操作习惯的制约。领域专 家往往是多年从事该项工作的人员,他们的使用习惯会对系统的易用性非常有帮 助。领域专家参与的开发阶段受到开发方式的影响。系统分析员系统分析员是系统开发方法的贯彻者和系统实现的指导者。分析人员主要参 与开发阶段的需求分析和系统设计两个阶段(这两个阶段并不是截然分开的,由 开发方式的不同,可能会贯穿整个开发工期)。首先系统分析员和领域专家一起对领域进行分析,确定领域边界和领域内 容。在完成这

4、项任务后,系统分析员应当提交系统需求报告。系统需求报告由领域专家确认之后交给质量监督组进行复审,复审完毕由文档组进行文档规范化,进行存档和版本编号,与此同时,规范化的系统需求报告由项目经理转交给客户进行复审(项目经理对 系统需求报告的内容格式等有审查的义 务)。客户复审完毕之后通过项目负责人转交给系统分析员进行更新修正,并对版本进行升级。之后再经质量监督组和文档组等环节进行流转,直到该报告无须进 行再流转为止。 接下来系统分析员的一项主要任务是对领域进行分析和映射, 构造系统构架,即进行体系结构的设计。参与的系统分析员在不止一个时,首先由分析员委员会进行体系结构设计, 当体系结构基本确定之后,

5、定义分组和分组之间的接口,特别对将来需要密切接 口的部分要进行详细定义,包括彼此间的通讯协议,时间及方式等等。完成该 项工作后必须产生体系结构设计说明。体系结构设计说明生成后由项目负责人提交给质量监督组进行复审, 复审通过之后,由文档组进行格式化和版本 编号并存档。体系结构设计说明的完整流转过程在开发商内部,客户并不介 入。程序员为了有效的利用领域专家的资源,在体系结构设计的同时,可以由系统分析 员的指导之下,由程序员进行界面原形的开发。界面原形由领域专家进行评审。 评审通过后由客户进行复审。界面原形跳过质量监督由文档组进行格式化和存 档。质量监督有了解和监督界面原形变化的责任。程序员参与系统

6、详细设计,主要负责系统的实现工作,并对测试组提供相应的测试资源。由于详细设计的详 细程度不易把握,有程序员参与的情况下,系统分析人员与程序员的交流会有助 于系统开发进度。在项目代码生产的后期,程序员要进行相应的白盒测试。之后, 可执行体提交到测试组进行测试。系统详细设计说明由分析员和程序员共同 完成。通过项目负责人转交质量监督组进行复审,复审通过后,由文档组进行格式化和版本编号,并存档。测试组主要进行软件的测试工作。上面提到程序员在交给测试人员之前是进行过一 定的白盒测试的。测试人员根据详细设计的文档对软件要实现的功能进行一一测 试,保证软件的执行体正确的实现设计要求, 在此也只证明了软件正确

7、的反映了 设计思想,但是否真正反映了用户的需求仍需要进一步的测试。在正确性测试完 成之后,需要测试的是软件的性能,软件的性能在本项目中占有重要的地位, 性 能要求有可能改变软件的设计,为避免造成软件的后期返工,测试在性能上需要 较大的侧重。同样,测试在不同的阶段需要不同的输入与输出。在正确性测试阶段, 不需要太详细的测试计划和测试策略的设计。而在性能测试时,需要分析人员提 出测试策略和测试用例,质量监督组同样会提出他们认为必要的测试策略和测试 用例,后者提出的测试策略和测试用例被认为是对前者的抽样调查。无论是前者还是后者提出的测试策略和测试用例,都由测试组组织实施。质量监督组保证软件透明开发的

8、主要环节。在项目开发的过程中几乎所有的部门都与质 量监督组有关。质量监督组对项目经理提供项目进度与项目真正开发时的差异报 告,提出差异原因和改进方法。在项目进度被延滞或质量监督组认为某阶段开发 质量有问题时,提请项目经理、项目负责人等必要的相关人员举行质量会议。 解 决当前存在的和潜在的问题。质量监督是建立在文档的复审基础之上,因而文档 版本的控制,特别是软件配置管理,直接影响软件质量监督的影响力和力度。文 档组则是保证软件质量监督的得以实施的重要保证。质量监督组的监督范围包括:系统分析人员是否正确的反映了用户的需求; 软件执行体是否正确的实现了分析人员的设计思想;测试人员是否进行了较为彻底的

9、和全面的测试; 文档组是否对文档的规范化进行的比较彻底,版本控制 是否有效;文档组是保证项目开发完毕的同时,内部文档和外部文档都同时完成。内部文档的 及时产生和规范,是保证项目开发各小组能够更好的接口和沟通的重要前提, 从 另一个方面讲,也是保证工程不被某个关键路径所阻塞而延滞的前提。 如上所述, 文档组还是保证质量监督组得以发挥作用的基础。文档组的主要职责包括:完善各个部门发送需要存档和进行版本控制的文档;对文档进行单向出入的控制;对所有存档的文档进行版本控制;书写文档规范,并传达到开发组中;书写部分外部文档。技术支持部技术支持部的存在是保证软件在用户使用的过程中,为用户提供最及时的技术服务

10、,也为项目开发人员抽身进行新版本软件开发保证。技术支持部的人员能够作到对软件的使用人员进行软件的安装、配置、正确使用进行培训。能够解决由于软件的不当使用产生的各种问题。 技术支持部的人员也有对软件系统分析监 督的作用。技术支持人员是软件开发过程中的虚拟用户,也就是说在软件未正式提交用户之前,技术支持人员充当用户的角色。合作伙伴提供的保证软件的开发我们选用微软公司的 Windows平台和Visual Studio为主要开发 工具。我公司是微软(Microsoft )在中国最大的技术方案提供商,在软件开发 方面能够直接从微软公司获得最快最全面的技术支持。另一方面,公司能最快速的获得微软最新的企业解

11、决方案的培训和咨询。同时我公司还是微软出版社中国 唯一总代理,公司拥有微软最全面的书面资讯。项目进度的保证项目进度是项目进行是否顺利的最直观表现。 显然在项目开始之前,项目开 发计划是必须的。如果项目开发计划的制定的是完全合理的, 那项目进度也就真 正表达了项目与最终的交付使用之间的距离, 然而要制定完全合理的项目开发计 划几乎不太可能。可见要保证项目进度,首先要保证项目开发计划尽可能合理。项目计划的合理程度与项目计划制定者从事类似规模和类似业务的项目的 经验有直接关系,通过经验往往能够预见潜在的阻碍, 从而制定较为合理的项目 开发计划。本公司已经开发过铁道部的结算系统,开发中的子项目多达六个

12、,历时十五个月,目前多数项目已经开发完毕,有些系统已经投入运营五个月,项目金额数千万元。在这样的项目中,从管理者到开发人员到测试人员都积累了较为 丰富的经验,特别是项目开发计划的制定,和项目进度的控制。项目计划以里程碑为界限,将整个开发周期划分为若干阶段。 根据里程碑的 完成情况,适当的调整每一个较小的阶段的任务量和完成的任务时间, 这种方式 非常有利于整个项目计划的动态调整。也利于项目质量的监督。里程碑就是对项目在开发过程中完成的较大成果的定义,比如需求分析完 毕、代码生产完毕、正确性测试完毕,都被定义为一个里程碑,每一个里程碑都 需要对完成的界定方式进行定义。比如需求分析完毕为一里程碑,这

13、一里程碑完 成的定义是:系统需求说明必须经过客户的确认,并在文档组进行了相应的 归档工作。当然把完成需求分析作为里程碑不一定恰当,因为系统开发往往伴随 着需求的不断变化和新需求的不断产生。如此又引出新的问题,即如何定义恰当的里程碑,如何界定里程碑的完成。里程碑将项目分成若干个较小的段,通过保证每一个段的顺利完成,来保证整个项目顺利完成,同时通过每个段的完成 质量,可以测度整个项目质量。同时里程碑保证各个阶段的产品的依赖关系尽可 能的小,并以完备的文档作为里程碑完成的重要标志之一。在里程碑和完备文档 的控制之下,项目已完成的阶段是受到保护的,在任何时间,人员变动,甚至是 开发商的变动,都不至于造

14、成特别重大的损失, 通过完备的文档,原有的成果能 够被延续进行开发。项目开发方法对项目质量的保证项目的开发方法对项目的质量和按时完成也有较大的影响。面向对象的开发方法有利于对问题领域的深入理解,也有利于将问题空间向 解空间映射从而得到更加理想和完整的系统模型。同时面向对象的开发方法和实 现方法也有利于系统错误被局限在较小的范围内,不会出现骨牌效应。面向对象 的开发方法也有不利的方面。开发人员对它的熟悉程度不如传统的结构化的开发 方法。对面向对象中新出现的名词需要重新在开发队伍中进行定义,以便在开发的过程中彼此交流时表达的更加准确,从而减少开发队伍之间的通讯量。通讯量 的降低意味着效率的提高,减

15、少了占用开发时间讨论一个彼此立场根本一致的问题的时间。软件构架定义了该领域中特定对象必然发生关系的发生方式,这 种发生方式以构架中抽象类之间定义的关系被固化在构件中,开发人员在开发应用系统时不必再为定义这种相互作用方式而书写代码,这为将来系统的维护奠定 了坚实的基础,也为将来新版本软件的透明升级并保持兼容性和正确性提供了有利保证。通过面向对象的继承特性,可以在不伤害原有系统的情况下, 任意替换 功能模块,从而以效率更高的模块代替原有模块,从另一角度讲,也实现了软件模块的配置功能。要实现真正的软件模块的即插即用,还需要利用面向对象的另 一优势-组件。面向对象使得面向对象的类或对象可以以与语言无关

16、的二进制方式被存储 和调用。这就是COM技术。显然软件构架实现的基础是 COM&件。由于COM是二 进制的方式被存储,因而它可以被任何语言编写的软件所调用。 组件与系统分离, 只是在发生系统调用时才被调入内存执行,这就保证了系统更高层次的即插即 用。鉴于如此多的好处,采用面向对象的技术进行该项目的开发是值得的。对于上面提到的面向对象的不利因素采用如下方法进行克服:第一,在系统开发之前,首先定义技术术语,然后定义领域术语,这样保证了开发过程中开发 人员用同种语言进行交流,避免了文不对题的讨论或争论。第二,指定技术规 范。在殊途同归的情况下,我们只允许那些在技术规范之内的技术来实现。技术规范定义了

17、若干种对象技术,这些技术规范在整个开发小组中进行统一认识方面 的学习。开发策略是针对不同开发技术和问题领域而作出的策略性的考虑。显然开发策略与所用的开发方法、实现技术以及问题领域的特征密切相关。一般来讲,鉴于面向对象的无缝特性,采用原形法比较恰当,而开发过程则采用螺旋式开发 方法。螺旋式开发方法提高了人员的利用率,使得软件开发的局部阶段相互重叠, 在整体上形成多道流水线重叠并行。显然这又缩短了开发的总周期。项目开发各阶段的质量保证需求分析需求分析是开发人员对系统需要做什么和如何做的定义过程。从系统分析的经验来看,这个过程往往是个循序渐进的过程, 一次性对系统形成完整的认识是 困难的。只有不断地

18、和客户领域专家进行交流确认,方能逐步明了用户的需求。 从系统开发的过程得知,系统分析时犯下的错误,会在接下来的阶段被成倍的放 大,越是在开发的后期,纠正分析时犯下的错误所花费的代价越是昂贵,也越发影响系统的工期和系统的质量。同时,想在某个时间点上宣布需求分析已经完毕, 不再需要进行进一步的需求分析,这也是不现实的。经验告诉我们,往往在测试过程中会发现,用户真正想要的并非您脑海中的设想, 另一方面用户往往知道自 己肯定不需要什么,而无法明确告知他们需要的是什么。面对这些事实,我们无法期望改变用户;比如提高用户同分析人员的沟通能力,让他们说出的话更能 被分析人员理解。唯一的做法是采用一定的方式方法

19、,诱导用户尽可能早地将需 求表达出来,表达得完整。在某个项目中我们的做法有两个方面:一是请领域专家参与到系统开发的早 期阶段;二是开发系统原形,原形包括功能性的原形和用户界面性的原形,也可以是二者混合的原形,用这些原形确认用户的需求。让领域专家参与开发的早期 阶段,是保证分析人员有充足的时间和领域专家进行充分的交流和确认。在这个阶段,原形可能在提交到用户之前, 首先被领域专家确认,这样保证了原形被认 可的程度和认可过程耗费的时间尽可能的短,从而在提高效率的同时保证了质 量。在开发方内部还有三项保证措施: 系统分析委员会保证系统分析集思广益; 质量监督组对分析工作的监督;技术支持人员参与需求调研

20、。分析委员会的意义在于任何分析人员在提交其所分析部分的分析说明书前, 必须通过委员会的共同审议,委员会的成员根据各自的分析经验和自身所分析的 部分对他人的分析报告提出质疑。如此审议过后保证了各部分间相互关联的部分 被明确定义,避免了由于疏忽造成系统在后期进行整合时出现较严重的系统鸿 沟或系统重叠。质量监督组在项目的任何阶段都要提出监督计划。按照监督计划分配相应的 资源来保证某阶段的开发质量。分析阶段的监督计划会在分析任务之前被项目经 理,项目负责人、系统分析员以及技术支持所了解。为保证分析工作高质量进行, 同时分析工作又不被过分打扰,质量监督组则主要针对系统分析报告进行复审,只在认为确实有必要

21、的情况下才召开质量复审会议。质量复审会议的主要参 与者是项目经理、项目负责人、分析人员和质量监督组组长。 会议的主要议题是 提出质量质疑,给出改进建议即可。具体是否存在质量问题,是否需要改进,不 在会议中进行讨论。以此保证了会议参与的人数较少,会议的时间尽可能的短。通过技术支持的职责可以发现,技术支持参与分析调研有利于对分析工作的 监督,在获得用户需求的口头表达之后,能帮助技术支持更好地扮演开发阶段用户的角色。技术支持具有相当的计算机技术背景,在接下来的开发过程中就 能较好的起到监督的作用,也为将来维护和为用户提供更好的服务奠定基础。系统设计优良的体系结构应当具备可扩展性和可配置性, 这两方面

22、因素的实现是通过 Win dows DNA的应用完成的,正如建议书中所述,在此不再赘述。实现实现也就是代码的生产过程。从设计的结构图中可以看出,生产的类别有类 的生产,组件的生产,构件的生产,应用系统的整合,以及各种测试用例的生产。 为了能够提高生产的质量,我们将生产的程序人员按职能分成两组,测试用例的 生产和测试用例生产,也就是说如果某个程序员生产了某个组件,则其测试用例 不能再由该程序员来生产,但他可以生产其他组件的测试用例。这样交叉生产更 容易发现组件的存在的问题。测试人员按照测试用例来测试组件的各项指标提出 测试报告。随生产的不断深入,组件的生产日趋减少,构件的生产的量开始逐步增加,

23、生产构件的过程又是对组件的考验过程。因此描述组件实现的文档是非常重要 的,它将有可能成为阻碍进一步生产的瓶颈。 文档组在生产过程中的重要工作是 对各类部件的文档进行丰富和规范,同时进行版本的控制。文档的完备与否,在开发的后期,对项目进度有至关重要的影响。文档是共享前期开发成果的唯一手 段。根据上一节描述的应用系统体系结构来看,整个开发环节丝丝相扣,每一步 都受到上一步的制约。为了控制系统开发过程中的往复,不至于产生重大过失和往复的泛滥。 文档 组和质量监督组协同完成软件开发的配置管理。软件配置管理的目的在于控制软件开发过程中的 变化,这种变化可能是外 部引起的,如需求的变化。也可能是来自于内部

24、的变化,如早期设计的某个部件 不够完备,需要修改等。为了控制这些变化,把变化引起的波动尽可能的控制在 有限的范围内,配置管理的管理模型如下图:配置项是指需要进行控制的任何文档单元, 它可能是需求说明报告,也可能 是需求说明报告的某个点。在本项目中需要控制的内部配置项包括需求报告,设计报告,组件代码,组件接口文档,构件及构件相关文档;外部配置项包括项目 计划书,使用手册,系统安装说明和系统配置说明等。上图完整描述了软件配置管理的流程。从图中可以看出在文档没有被提交出开发组以前,文档可以在开发组内部任意地被修改,但一旦文档被提交,则相关的部门就会被调动,来维护文档的 质量。因此为了保证工作效率,开

25、发组提交文档之前必须慎重,以免引起不必要 的工作量的增加。从另一角度来看, 开发部受到严密的监督,从而保证了开发的 各个环节对于开发的全过程保持透明,避免了因为个人的原因造成整个开发的瘫 痪或受阻。项目经理通过质监报告可以了项目开发的进度和质量情况,为调整开发计划提供有利的依据。显然开发部的内部流程在配置管理的过程中受到的监管是非常有限的。配置管理所能起的作用完全是建立在文档之上。 当项目进度非常紧张时,开发部可能 书写文档的时间会非常少,在此情况之下质量监督组和文档组就肩负将开发部提 供的文档进行丰富和完善的工作,从而减少开发部书写文档的时间,当然这是增 加质量监督组与开发部的口头交流为代价

26、的。测试测试组的工作被分成若干阶段,不同阶段的划分是以保证软件质量的不同指 标为目标的。测试的软件指标分别包括: 软件的正确性:正确性测试主要是测试软件的 功能是否被正确的实现。测试的方式主要是按照功能的要求按照给定的输入,看是否有给定的输出。在非标称输入时, 输出是否异常等。一方面测试软件的功 能是否实现,同时是否实现的完整。性能指标:该项目对性能的要求非同一般的软件项目。 性能测试往往包含了 压力测试、攻击性测试等测试,软件所能承受的极限是多少,一般来将软件的极 限应当高出用户要求的性能,各种指标也应当为用户所了解。易用性:软件的使用界面在设计实现的时候应当设法使之与功能的实现相脱 离。脱

27、离的原因在于易用性是通过友好的界面实现的。然而让开发人员以使用者 的角度来确定软件是否易用是件非常困难的事情,在确定使用界面时往往需要多 次的反复修改,甚至只能在软件的最后交付之前或用户使用一段时间之后才被提 出来。鉴于这种特点,软件在开发的不同阶段都作了相应的保证措施, 比如在软 件需求界定的时候请领域专家参与,在软件设计阶段,让功能的实现尽可能地包 含在软件的组件之中,也就是没有界面要求的底层实现。 界面的实现仅仅依赖于 一个数据接口,界面仅仅负责将用户输入的数据送到指定的数据块中,用于显示的数据也在指定的数据块中提取,只要保证数据块被互斥的访问就可以了。 有了 这样的设计结构,软件的易用

28、性也就相当容易保证了。当测试中发现易用性的问 题时,软件不会伤到筋骨,皮毛的修改总是非常容易的。测试人员的角色也是逐步的由开发向用户方向转移。测试存在两个非常重要的问题,一是保证测试的结果真正是反映了软件的质 量。一般来讲,如果测试测出的错误数是收敛的情况, 基本认为测试本身应当是 比较全面的和足够深入的。二是测试结果的反馈。测试报告是测试结果的正式书 面反馈形式。测试报需要经过质量监督组的复审,并进行统计,再形成质量监督报告的一部分,提交到项目经理和项目开发组组长处。同时,测试组产生的测试报告和测试统计报告也要进行归档, 以便跟踪软件的质量进展。这也是软件进行 版本编号的一个重要依据。文档维护文档维护主要是文档组的工作。文档从用途上分主要分为内部文档和外部文 档。内部文档包括: 项目开发计划; 需求分析;体系结构设计说明; 详细设 计说明;构件索引;构件成分说明; 构件接口及调用说明; 组件索引;组 件接口及调用说明; 类索引;类属性及方法说明; 测试报告;测试统计报告; 质量监督报告; 源代码;文档分类版本索引; 软件安装打包文件。外部文档主要包括: 软件安装手册; 软件操作手册; 在线帮助;系统性 能指标报告;系统操作索引。文档的重要性在前面的章节中已经多次提到。 如何保证文档的全面性,使其 真正为项目的进度提供保证,又不因

温馨提示

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

评论

0/150

提交评论