文档组
是保证项目开发完毕的同时,内部文档和外部文档都同时完成。内部文档的及时产生和规范,是保证项目开发各小组能够更好的接口和沟通的重要前提,从另一个方面讲,也是保证工程不被某个关键路径所阻塞而延滞的前提。如上所述,文档组还是保证质量监督组得以发挥作用的基础。
文档组的主要职责包括: 完善各个部门发送需要存档和进行版本控制的文档; 对文档进行单向出入的控制; 对所有存档的文档进行版本控制; 书写文档规范,并传达到开发组中; 书写部分外部文档。
技术支持部
技术支持部的存在是保证软件在用户使用的过程中,为用户提供及时的技术服务,也为项目开发人员抽身进行新版本软件开发保证。技术支持部的人员能够作到对软件的使用人员进行软件的安装、配置、正确使用进行培训。能够解决由于软件的不当使用产生的各种问题。技术支持部的人员也有对软件系统分析监督的作用。技术支持人员是软件开发过程中的虚拟用户,也是说在软件未正式提交用户之前,技术支持人员充当用户的角色。
合作伙伴提供的保证
软件的开发我们选用微软公司的Windows平台和Visual Studio为主要开发工具。 我公司是微软(Microsoft)在中国大的技术方案提供商,在软件开发方面能够直接从微软公司获得快全面的技术支持。另一方面,公司能快速的获得微软新的企业解决方案的培训和咨询。同时我公司还是微软出版社中国总代理,公司拥有微软全面的书面资讯。
项目进度的保证
项目进度是项目进行是否顺利的直观表现。显然在项目开始之前,项目开发计划是必须的。如果项目开发计划的制定的是完全合理的,那项目进度也真正表达了项目与终的交付使用之间的距离,然而要制定完全合理的项目开发计划几乎不太可能。可见要保证项目进度,首先要保证项目开发计划尽可能合理。
项目计划的合理程度与项目计划制定者从事类似规模和类似业务的项目的经验有直接关系,通过经验往往能够预见潜在的阻碍,从而制定较为合理的项目开发计划。本公司已经开发过铁道部的结算系统,开发中的子项目多达六个,历时十五个月,目前多数项目已经开发完毕,有些系统已经投入运营五个月,项目金额数千万元。在这样的项目中,从管理者到开发人员到测试人员都积累了较为丰富的经验,特别是项目开发计划的制定,和项目进度的控制。
项目计划以里程碑为界限,将整个开发周期划分为若干阶段。根据里程碑的完成情况,适当的调整每一个较小的阶段的任务量和完成的任务时间,这种方式非常有利于整个项目计划的动态调整。也利于项目质量的监督。
里程碑是对项目在开发过程中完成的较大成果的定义,比如需求分析完毕、代码生产完毕、正确性测试完毕,都被定义为一个里程碑,每一个里程碑都需要对完成的界定方式进行定义。比如需求分析完毕为一里程碑,这一里程碑完成的定义是:《系统需求说明》必须经过客户的确认,并在文档组进行了相应的归档工作。当然把完成需求分析作为里程碑不一定恰当,因为系统开发往往伴随着需求的不断变化和新需求的不断产生。 如此又引出新的问题,即如何定义恰当的里程碑,如何界定里程碑的完成。 里程碑将项目分成若干个较小的段,通过保证每一个段的顺利完成,来保证整个项目顺利完成,同时通过每个段的完成质量,可以测度整个项目质量。同时里程碑保证各个阶段的产品的依赖关系尽可能的小,并以完备的文档作为里程碑完成的重要标志之一。在里程碑和完备文档的控制之下,项目已完成的阶段是受到保护的,在任何时间,人员变动,甚至是开发商的变动,都不至于造成特别重大的损失,通过完备的文档,原有的成果能够被延续进行开发。
项目开发方法对项目质量的保证
项目的开发方法对项目的质量和按时完成也有较大的影响。
面向对象的开发方法有利于对问题领域的深入理解,也有利于将问题空间向解空间映射从而得到更加理想和完整的系统模型。同时面向对象的开发方法和实现方法也有利于系统错误被局限在较小的范围内,不会出现骨牌效应。面向对象的开发方法也有不利的方面。开发人员对它的熟悉程度不如传统的结构化的开发方法。对面向对象中新出现的名词需要重新在开发队伍中进行定义,以便在开发的过程中彼此交流时表达的更加准确,从而减少开发队伍之间的通讯量。通讯量的降低意味着效率的提高,减少了占用开发时间讨论一个彼此立场根本一致的"问题"的时间。软件构架定义了该领域中特定对象必然发生关系的发生方式,这种发生方式以构架中抽象类之间定义的关系被固化在构件中,开发人员在开发应用系统时不必再为定义这种相互作用方式而书写代码,这为将来系统的维护奠定了坚实的基础,也为将来新版本软件的透明升级并保持兼容性和正确性提供了有利保证。通过面向对象的继承特性,可以在不伤害原有系统的情况下,任意替换功能模块,从而以效率更高的模块代替原有模块,从另一角度讲,也实现了软件模块的配置功能。要实现真正的软件模块的即插即用,还需要利用面向对象的另一优势--组件。
面向对象使得面向对象的类或对象可以以与语言无关的二进制方式被存储和调用。这是COM技术。显然软件构架实现的基础是COM组件。由于COM是二进制的方式被存储,因而它可以被任何语言编写的软件所调用。组件与系统分离,只是在发生系统调用时才被调入内存执行,这保证了系统更高层次的即插即用。
鉴于如此多的好处,采用面向对象的技术进行该项目的开发是值得的。
对于上面提到的面向对象的不利因素采用如下方法进行克服:第一,在系统开发之前,首先定义技术术语,然后定义领域术语,这样保证了开发过程中开发人员用同种"语言"进行交流,避免了文不对题的讨论或争论。第二,指定技术规范。在殊途同归的情况下,我们只允许那些在技术规范之内的技术来实现。技术规范定义了若干种对象技术,这些技术规范在整个开发小组中进行统一认识方面的学习。
开发策略是针对不同开发技术和问题领域而作出的策略性的考虑。显然开发策略与所用的开发方法、实现技术以及问题领域的特征密切相关。一般来讲,鉴于面向对象的"无缝"特性,采用原形法比较恰当,而开发过程则采用螺旋式开发方法。螺旋式开发方法提高了人员的利用率,使得软件开发的局部阶段相互重叠,在整体上形成多道流水线重叠并行。显然这又缩短了开发的总周期。
项目开发各阶段的质量保证