基于软件协作开发的方法及建议
来源:用户上传
作者: 逯柳
计算机硬件和计算机软件共同构成了计算机系统。随着硬件的不断进步,计算机软件也得到了飞速的发展,积累了丰富的软件资源。在软件开发过程中,逐渐建立了有关软件开发的方法理论,如《软件工程学》等,为计算机软件开发奠定了理论基础,并提出了软件开发公司协作开发的方法及建议。
一 软件协作开发的必要性
1、为缩短软件开发周期,必须进行协作开发。计算机软件开发有时间上的要求。一个软件的开发是为了解决一定的实际问题,因此软件越早完成越好,否则很可能由于软件开发周期过长,开发出的软件已经不能适应新时期下的问题而被淘汰。这就要求软件的开发周期不能过长。
随着计算机技术飞速发展和广泛应用,计算机已经不是少数专业人员的专用品,越来越成为各行各业的各类人员的日常工作和生活中必不可少的工具。因此,要求计算机软件更易用和所实现的功能更全面。程序员除了要完成基本功能的编码外,还要完成包含界面、异常处理、联机帮助等其它方面的大量编码工作,软件的开发工作量随之越来越大。对于一个较大的软件,其开发工作量无法由一个人来完成。因此,从缩短软件的开发周期方面考虑,一个使用方便和功能全面的软件开发,要一个项目组或以其它组织形式的团队来协作开发完成。
2、为实现软件开发人员知识互补,必须进行协作开发。随着计算机技术的发展,技术体系不断增大,分类也越来越细,各种具体技术如网络、多媒体、数据库等都在包含一系列的理论和标准。每一门技术都有着大量的知识,由于人的能力的局限性,一个人不可能在计算机技术的每个领域都成为专家,使得一个人不可能全部精通计算机领域内的知识。而现今的一个软件项目往往同时涉及到网络通信、网络安全、数据库管理、多媒体的界面等内容。因此在开发一个软件时,需要组织具有不同知识结构的人参加到一个项目组来,共同协作,完成软件的开发工作。
3、为实现开发工具的优势互补,必须进行协作开发。不同的软件开发工具有着不同的优势和特点,例如VB制作界面很方便,如果要进行底层操作,用VC++更方便灵活一些,如果主要是对数据库的操作管理,目前的PB则较其它产品有着独到的优势。因此在一个软件开发过程中,程序员各自采用自己熟悉的开发工具完成所擅长的工作,如此协作开发,将会事半功倍,形成不同开发工具的优势互补。
4、为实现资源共享,必须进行协作开发。软件的协作开发也是资源共享的一种要求。在软件的开发过程中,经常遇到一些功能模块与他人的工作有重复,即多个程序员所解决的具体问题虽然不同,但可能都同时用到具有相同功能的模块。假如每个人都自己完成,则会形成资源浪费。如果软件协作开发,就可以省掉这部分的工作量,这也是软件资源的一种共享,提高了软件资源的利用率。目前国际上就有专门做中间件的软件公司,提供一些通用的软件模块,这也是软件协作开发的一种有效形式。
二 软件协作开发的实现方法
1、面向对象的编程方法。该方法是目前用来指导软件开发的理论。目前流行的软件开发工具和语言大部分都支持面向对象的编程方法,如VB、VC++、PB、Delphi、Visual Age for Java等。面向对象的编程方法主要有四个特性:抽象性、封装性、多态性、可继承性。该特性使得软件开发过程中可以通过类的继承和派生,对已有的部件重用。这样,不只是自己重用开发好的类,还可以提供给他人,使他人在已有的基础上继续开发。这编程方法为软件的协作开发打下了坚实的基础。
2、从动态链接库到OLE技术。对于Windows程序来说,DLL(动态链接库)是一种比较常用的计算机技术,它将完成一定任务的功能模块封装在动态链接库中,提供入口点和出口点,在程序运行时动态的调用和销毁。动态链接库可由多种语言开发完成,同时,也能被多种编程语言调用。这样,同一个项目组的技术开发人员可以通过提供动态链接库的形式来协作开发,对每个开发人员所用的开发工具和编程语言没有其他限制。OLE技术则更进步,按照此技术所生成的组件,在系统中注册后,其功能不只是在同项目中可以互用,而且可以被其他软件调用其功能。例如,支持OLE功能的Word软件和PowerPoint软件,在Word文档中可以嵌入幻灯片,在PowerPoint中也可以嵌入Word文档。
三 存在问题及建议
1、软件开发的规模小。总结某软件开发公司的经验发现,有相当部分的软件是单兵作战完成的。规模较小,难以开发出一个较高质量的软件。当前的计算机软件,除了要具有基本功能外,在使用方便程度、界面的设计联机帮助等方面要求也越来越高。如果一个项目只有一个人来做的话,将很难考虑周全,或者没有精力来完成所有的工作量。
2、计算机人员与专业技术人员协作不够。某软件开发公司开发项目所要完成的计算机应用软件,大多数都是由开发人员自己提出的项目,软件开发人员与专业人员的沟通是一个请教的过程。软件开发人员因对专业不熟,很可能抓不着重点,不知应该问些什么,结果往往是在软件的设计时就存在了疏漏或不足的问题。从软件协作开发的思想来看,某公司软件的开发,应由负责具体业务的专业技术人员提出需求,然后由计算机专业人员参与,看是否能够研制或编制出此软件及预算所需费用,待确立项目后,由专业技术人员与计算机人员组成项目组,由专业技术人员负责完成软件在功能上和逻辑上的总体设计,提供必要的算法,解释基础数据的意义,由计算机专业人员负责完成软件功能模块的划分和设计和编码,最后由专业人员参与项目的测试工作及最后的验收。计算机人员和专业技术人员应该是互相协作的关系,而不是请教和被请教的关系。
3、计算机专业人员之间要具有相互协作性。由于计算机技术的飞速发展,出现了许多新技术,如网络、多媒体等。针对某一领域,由于各种各样原因,其产品也是多种多样的。如数据库,实际的产品就有Fox Base、FoxPro、Access、Oracle、5QLServer、DB2等不同的数据库,所以不可能让一个人掌握所有的计算机技术。在实际工作中,一个软件开发项目很可能要涉及到许多方面的计算机知识,因此,应该按照需要将具有不同特长的计算机专业人员组织在一个项目组中,相互协作,取长补短。
四 结束语
目前,已形成了许多基于这种协作开发思想的计算机技术,如由面向事件发展到面向对象的编程方法,DCOM、CORBA、OLE、ActiveX、JavaBeans等技术,不断丰富软件开发工具,软件开发公司应加强具体负责专业技术人员与计算机人员之间的协作性,同时也促进了计算机人员之间的协作,保证开发出的应用软件具有易用、实用、高质量的特点,充分发挥计算机在各行各业中的重要作用。
转载注明来源:https://www.xzbu.com/2/view-422207.htm