软件开发与定制范例6篇

软件开发与定制

软件开发与定制范文1

【关键词】大规模 定制软件 敏捷开发 研究

如今应当说是一个高科技时代,人们的生活似乎被各种各样的高新科技所包围,无论是我们习以为常的网购还是离我们看似遥远的全自动化生产线无不显露着科技的风尚。人类已经进入了一个智能化的时代,因而各种专业化的软件需求量也就越来越大,每个不同的企业或者部门对于软件的需求也是不同的,定制软件看似容易实际上其操作起来难度是极大的,而针对定制软件开发最好的开发手段就应当说敏捷开发,这是一种将一个定制软件拆分成数个乃是数十个甚至成百上千个小项目进行软件开发的方式,其尤其适用于大规模定制软件的开发。

1 大规模定制软件的必要性

首先我们要对大规模定制的定义进行明确,大规模定制指的是大规模定制是指对定制的产品和服务进行个别的大规模生产,这种生产模式是把大规模生产与定制生产的优势有机地结合起来,这种生产方式一方面不会由于个性化定制而让企业的利益受到影响,另一方面也不会由于大规模的生产而忽视了软件定制的个性化,应当说这一种双赢的生产方式。对于企业而言其采用大规模定制能够在最大程度上降低生产成本而保证产品质量,对于客户而言其能够以较低的价格而获得质量优良且具有个性化定制色彩的产品,因此这是双方都乐见其成的。从大趋势来看大规模定制已经是大势所趋,同样也是工业3.0-的重要组成部分,因此我们必须对其给予一定的重视。

2 敏捷开发

大规模定制的_是一种极为有效的生产方式,不过这种大规模软件定制想要真正的实现是需要一定前提的,这个前提就是采用更加有效的产方式从而完全实现产品大规模生产与个性化定制并存。这个方式就是敏捷开发,敏捷开发将一个软件的开发转化为了数个乃至数十个不同的小项目,每一个项目都负责了软件的一部分,有的负责的可能是软件的界面,有的则负责开发软件的菜单,有的则负责软件的核心运算公式,在这数十个项目全部完成后再将其整合起来就成为一个大型的成品软件。例如同样是财务软件,可能企业需要侧重的是利润、库存等方面,而机关事业单位所需要的更多的是收入与支出的合理性,两者的需求不同因此不可能使用同一种软件,但是除了侧重之外其他的部分缺失完全相同的,因此如果采用传统的软件开发方式则必然需要反复开发两套软件来满足不同客户的需求,而敏捷开发只需要开发一套软件,而对于二者不同的需求只需要在开发其个性化部分就能够在降低开发成本的同时满足用户的个性化定制需求应当说这是解决大规模定制软件开发的最好方式。

3 敏捷开发的各个阶段

敏捷开发虽然对于大规模定制软件十分有利但是其真正操作起来却需要诸多方面的配合才能够真正实现敏捷开发,因此我们应当对敏捷开发的各个关键环节进行了解。

3.1 敏捷开发的起始阶段

敏捷开发与传统的软件开发不同,传统的软件开发几乎只需要开发部门一个部门在了解客户需求后进行软件的开发,而敏捷开发则不然其在软件开发的前期就需要企业当中不同部门的人员进行配合其中包括了软件设计师、程序编写员、营销人员、财务人员,而在企业外部其还需要客户的配合,这样做能够使得其各方面的问题能够在开发初期就被提出从而被解决,使得软件的基本框架被完全确定只有这样才能在软件开发过程中采用模块化的方式进行开发。

3.2 敏捷开发的开发阶段

在对客户意图以及软件设计师进行了充分沟通并确定了软件方案之后,就需要将软件拆分成数个乃至数十个小型开发项目,这些开发项目有些是软件的基础有些则是客户个性化定制部分,首先来说基础开发部分,其必须注重这部分程序的通用性,即其不能单纯地只能应用在一款软件上而是应当能够被未来多种不同的软件进行利用,这些通用程序一般包括了软件的数据输出、输入、导入导出程序以及各类软件的菜单和工具栏等等,只有确保了基础程序的通用性才能够成为大规模定制软件的开发基础。另一部分则是个性化定制部分,在这一部分最为注重的应当是充分满足客户对于软件的个性化需求。

3.3 敏捷开发的完成阶段

敏捷开发其本身实际上就是讲程序分为了多个不同的模块,在最终的完成阶段则是需要编程人员将开发完成的各类模块化程序进行汇总和有效地连接和融合从而使得其成为一个个不同的软件,这种模式与传统一气呵成的开发模式不同,其开发方式更加灵活便捷,许多软件模块都是通用的只需要在通用模块的基础上将个性化模块进行开发并且融入到整个软件当中就能够彻底完成个性化定制的软件。

4 结束语

大规模软件定制是时展的需要,其在软件开发领域的应用能够在最大程度上降低软件开发的成本并且提高软件开发的效率应当说这是极为可喜的事情,不过我们必须清楚地意识到大规模软件定制其本身必须是一敏捷开发为前提的,因此我们必须对敏捷开发这种软件开发模式进行深入的研究从而使得我们能够更好的掌握这种开发方式来支持大规模软件定制。

参考文献

[1]罗昱.浅谈大规模定制的软件开发模式[J].电子制作,2013(14):72-72.

[2]田清.软件敏捷开发过程Scrum中的缺陷管理方法研究及应用[D].重庆大学,2010.

软件开发与定制范文2

1.1盲目性应用

盲目性应用,即无论是产品型软件企业还是项目型软件产业,都没有一个适合自身企业特点的软件开发管理模式。随着信息化时代的来临,第三次革命的广大蔓延,使IT产业在我国得到了迅速的发展,相对应的各个软件的应用也逐渐增加。由于,我国的软件企业建设起步较晚,相关技术性软件缺乏有效的创新性。因此,在不合理的管理下,往往会造成为了追赶进度,而在短时间内生产一批软件,大大降低了软件开发的应用价值,造成程序在进入实际应用时,一改再改,上机漏洞百出,运行时间过长,甚至完全的开发使用受挫等问题。

1.2无规范性操作

无规范性操作,即相关企业缺少对软件开发的相关规定,检查督导力度不够,企业管理人员、企业技术人员的应用力度不到位等。我国大多数软件开发企业都属于中小型企业,所开发利用的产品大多效法与国外的软件产品,缺乏有效地创新能力,评估工作量能力欠缺。虽然,某些公司意识到了这一点,但在自己企业的软件开发与管理中,虽然建立了一些软件开发管理的规范,由于过于硬式化,可执行力不强,造成软件开发的操作上出现问题。操作中的无纪律、无规范性,使得很多软件的基本构架被砍掉,导致了所开发产品的质量不稳定,对以后的升级与维护造成负担,使用户对公司不满,最终损害了企业的利益。

2项目管理在软件开发中的应用措施

项目管理应用于软件的开发与利用中,即相关的软件开发项目人员,在有限的资源的前提下,运用所要规定的软件内涵、理念、方法及观点,进行有效的开发与管理。宣传并树立企业范围内的项目管理文化十分重要。实现项目全过程,包括软件开发项目的计划、软件开发项目的组织、软件开发项目的指导、软件开发项目的调控及软件开发项目的评价,得到全面的项目实现,创造企业利益最大化。将项目管理融入到软件的开发应用中应做到:

(1)对软件开发项目的成功标准做准确的设定。

(2)对项目之间的各种要求把握要合理。

(3)对软件的标准进行新的定义。

(4)建立适合的沟通渠道。

(5)制作个人计划。

(6)具备完备的需求说明。

(7)对任务进行有规律的分配。

(8)选择正确的技术并进行相应的估算。

项目管理在软件开发中的具体作用为:

(1)可实现人力、物力、财力的合理分配。

(2)对企业软件的启动、研发进行高标准的组织。

(3)合理的对各个项目进行合理的划分,实现层次管理、合理分配。

(4)调动员工的积极性,实现企业利益的最大化。因此,可以看出项目管理可有效地促进软件开发的进程与管理,是实现软件开发任务、资源管理、成本预算、项目跟踪及企业利益的良好标尺。实现项目管理与软件开发结合是企业形成良好的业务循环的重要手段。项目管理在软件开发中具体的应用措施有:

2.1完善制度

完善制度,即相关的管理人员应按照企业的任务需求合理的制定出一套相对应的管理流程。例如:企业的相关负责人可以根据企业的业务需求来制定《产品立项报告》,并根据各个部门的负责人的审批建议,做出《产品可行性调研》。后对风险进行有效的评估,然后做出产品的《初步设计报告》,并落实于人。(注:一般情况下为保障软件的质量与开发进度,新技术在软件中的使用比例应小于35%)

2.2初步设计

初步设计,即相关的管理人员根据所要开发软件的成本、进度、风险等进行准确的评估,并制定评估范围数值,并根据评估的范围,制定出项目总成本的耗资范围。例如:企业的相关责任人应集中硬件工程师、软件工程师与架构工程师三者进行商榷,并根据业务需求,企业软件系统开发规范,编码规范等,来制定出《项目建议书》、《软件总体设计》等方案,提交决策层评审,评审立项通过后方可进行下一步工作

2.3硬件选型

硬件选型的过程就是根据软件的运行状况选择其运行于哪种硬件上的过程。硬件设备的选择需要根据所开发软件的类别进行选择,例如:开发小型单机软件,需要一台电脑就够了,但是开发大型单机软件则不一样了,需要多台电脑、外网网线、路由器、局域网。项目管理的软件开发首先要构建软件系统,做好预算,不断改进设计模型,做好项目资源管理的控制和软件的优化方案。其次,需要对软件系统进行测试,根据项目管理对软件的需求设计科学合理的测试方案,不断完善硬件选型上的不足,做到硬件与软件的科学有效运行。

2.4软件设计

软件的设计是IT行业中的重中之重,是至关企业形象的良好标志。软件设计,即相关的管理人员对所要开发软件的成本、进度、风险进行精确的细化分析,制定出确实可行的软件开发项目。例如:项目经理需要根据企业的软件复用价值来确定,待开发与难开发两者,并根据《初步设计》的要求,写出《软件的详细设计》方案并编织代码,测试代码,软件设计的最终环节要在总工程师的辅助下完成,总工程师要做出详细的批示和完善措施,由此进行改进之后再进行大规模的生产与制作。不断提高软件设计产品的质量。

2.5软件的测试

软件的测试是检测所开发软件好坏的良好标尺。软件的测试,即由软件工程师编制代码后,按照《测试大纲》进行自测,并将自测后的数据进行可靠性的综合分析测试。其主要包括:

(1)功能性测试,即对产品的每一项功能进行逐一测试。

(2)应用性测试,即将所开发产品运行与实际操作中,进行现场模拟的EMC、EMI测试。并根据测试的结果,做好详细真实的记录,列出不合格项目,有待加强项目、研发人员定位等确立故障的具体原因,为故障的分析与改正打下基础。

2.6文件归档

文件的归档,即对所开发的软件项目做出完整的整合记录,实现软件的可升级性、可维护性、可继承性及可完善性的良好数据说明系统,是加强积极管理的有效手段之一。对于软件来说,确保一次性研发成功最好,若中途发生了变差,则需要进行修改,在对软件系统进行修改的时候,就需要对文件再次进行归档。所要归档的文件一般有:

(1)软件的研发报告。

(2)软件的可行性分析报告。

(3)软件的初步设计方案。

(4)硬件的详细设计方案。

(5)软件的详细设计方案。

(6)系统的结构详细设计。

(7)软件的测试结果。

(8)审批明确的生产文件。

(9)详细的使用说明书等。

3结束语

软件开发与定制范文3

随着信息工程建设的发展,计算机软件工程管理工作所具有的重要性也逐渐凸显,特别是在计算机软件工程项目的质量控制、进度控制以及成本控制方面,计算机软件工程管理工作发挥着重要的作用。本文在重点论述计算机软件工程管理工作中的质量控制与进度控制及主要方法的基础上,对计算机软件工程管理工作中的措施做出了探讨,同时对计算机软件工程管理发展中需要注意的问题进行了分析。

【关键词】计算机 软件工程 质量控制 进度控制 管理措施

在计算机软件工程开展过程中,软件产品的设计、开发、生产等都与管理工作具有着直接的关系,良好的管理工作不仅能够确保软件工程产品满足用户需求,同时能够对工程的收益以及风险做出有效的控制,所以对计算机软件工程管理工作作出研究以优化与指导计算机软件工程管理工作对于推动计算机软件工程管理的的发展而言具有重要的现实意义。

1 计算机软件工程管理中的质量控制与进度控制

做好控制工作时优化计算机软件工程管理工作的有效途径,计算机软件工程管理工作中所需要进行的控制工作是指依据特定标准对计算机软件工程项目实施情况开展定期或者不定期的检查与监控,通过与特定标准的比较来发展项目开展中所出现的偏离,并以存在的问题为依据采取有针对性的措施来解决这些问题。计算机软件工程管理工作中的主要控制要素包括成本、进度以及质量三个方面,但是当前计算机软件工程成本大部分都为定价合同模式,所以成本控制相对于质量控制以及进度控制而言并不是管理工作中的关键内容,所以做好质量控制以及进度控制,成为了当前计算机软件工程管理工作中最为核心的内容。

1.1 工程质量控制

质量控制是计算机软件工程管理工作的重中之重,对于计算机软件工程管理中的质量控制而言,主要的方法包括鱼骨图法、统计抽样与标准差法、帕累托分析以及评审与测试法等。其中鱼骨图法由于具有使用便捷且相对直观的特点而成为了计算机软件工程管理开展因果分析工作过程中被广泛采用的方法之一。在计算机软件工程管理中,某个问题的产生都是因为受到了众多因素带来的影响,而计算机软件工程管理工作者可以将造成影响的因素以及受到影响而产生的问题特性联系起来,并整理出具有分明层次的关联图,由于这种图类似鱼骨形状,所以这种透过现象来探析本质的方法被称之为鱼骨图法;统计抽样则是指通过在总体中选择部分样本进行检查,这种方法的应用要求工程管理人员具备丰富的统计知识与统计经验,以便能够在统计抽样中了解可信度引资、变异性以及标准差。标准差指的是数据中存在的偏差,标准差越小,则数据之间所产生的变化也就越小;帕累托分析指计算机软件工程管理人员通过对造成质量问题的因素进行分析从而确定主要因素,这种方法认为计算机软件工程中的问题有80%是由问题的20%引起的;测试与评审是计算机软件工程质量控制中应用最为广泛的方法之一。这种方法在计算机软件工程开展的整个过程中以相关标准为依据来对工程完成部门开展评审与测试。

1.2 工程进度控制

计算机软件工程中的进度控制包括活动定义、活动排序、历史估算、编制进度以及变更进度等。在活动排序工作中,项目网络图是应用十分普遍的方法,这种方法能够反映出活动与活动之间具有的顺序关系与逻辑关系,其中主要包括双代号网络图与箭线图法。其中箭线能够很好的反映出任务之间或者活动书书顺序的关系,而双代号网络图则使用字母与源泉来反应存在依赖关系的工程活动;在编制进度的工作中,计算机软件工程管理工作者需要对活动开始时间以及结束时间进行确定,所能够使用的方法包括甘特图、PERT分析、关键路径分析等。其中在计算机软件工程管理中应用的甘特图可以对精度做出显示从容让制定的计划具有更好的可读性。PERT分析则可以对项目进度做出评估与分析。关键路径图可以作为对项目进度进行编制以及控制的重要工具。

2 计算机软件工程中的有效措施

2.1 工程审核

工程审核是指计算机软件工程管理中对过程以及成果开展评估,这种措施可以评定工程进展是否与工程需求、工程计划以及工程合同相适应。在这项措施的实施中,计算机软件工程管理工作者有必要遵循以下几点原则:一是以工程计划规定为依据来确定审核节点;二是对工程审核过程中找出的问题以及解决的过程作出详细记录;三是在工程审核工作完毕之后,应当将审核结果加入文档,以便为计算机软件开发商和业主提供决策依据;四是在对计算机软件工程文档做出审核的过程中,计算机软件工程管理工作者需要做出考虑的问题包括文档测试需求与验收评审内容是否与软件产品验收工作相适应,测试数据是否做到准确规范,测试报告是否具有准确性,进度以及成本是否与计划相符等;五是在对计算机软件工程施工计划做出审核的过程中需要全面考虑计划内容与相关标准规范以及法律法规的适应性、计划内容的可行性与合理性、计划内容与总体计划以及合同内容的适应性等。

2.2 工程监督

计算机软件工程管理中的工程监督指计算机软件工程管理工作者对工程建设过程开展检查。其中相关标准、工程计划、工程合同以及一些其他与工程相关的规定是计算机软件工程管理工作者开展监督的主要依据。工程监督工作的目的在于构建工程开展情况可视性,从而为其他管理工作的开展以及相关策略的制定提供依据。在此过程中计算机软件管理工作人员需要将检查过程中已经完成的工作量、工程规模以及已经消耗的时间与造价开展比对,如果这些内容与计划内容不符,则应当责令纠正或者针对问题找出弥补办法。工程监督应当作为计算机软件工程管理工作中的日常业务,在监督工作开展中应当以管理需要为依据来做出监督记录,并有必要向软件开发商以及业主提供监督报告等。

2.3 工程测试

对计算机软件工程产品做出测试是确保计算机软件工程取得良好质量的关键,所以计算机软件工程管理工作者在管理过程中有必要对工程成果或者阶段性成果进行测试,这种测试的目的在于对工程开展状况以及产品开发状态做出了解,从而为下一步管理工作重点的确定提供必要依据。计算机软件工程管理人员有必要要求开发商提供测试规范与测试项目,并以此为依据获得测试结果。同时计算机软件工程管理工作者有必要让测试工作覆盖计算机软件的整个开发过程,并为软件工程的开展提供建议和意见,在此过程中,计算机软件工程管理人员有必要遵循以下原则:一是确保工程项目具备测量规范以及测量结果分析办法;二是对测量数据进行及时的收集与存储;三是对测量数据进行讨论与交流并制定报告;四是以为工程据测提供依据为出发点开展测量工作;五是构建完整的工程测量数据、报告记录。

3 计算机软件工程管理发展中所应注意的其他问题

3.1 完善管理制度

计算机软件工程管理制度的完善不仅能够有效的规范管理工作者行为,同时也能够提高管理工作者的管理能力。在此方面,有必要通过激励机制的构建来充分调动管理人员的工作积极性,通过发挥管理工作者的主观能动性来实现工程管理质量的提高。同时这一制度在软件开放人员的管理中同样适用,这对提高软件开放人员的责任心具有重要作用;另外,计算机软件工程管理工作中要重视针对软件工程管理队伍以及员工队伍开展培训,通过更新他们的软件工程理论知识、丰富他们的软件工程实践经验来提高软件高发的价值以及管理工作的效率。

3.2 规划统一的软件开发平台

统一的软件开发平台不仅能够提高计算机软件开发效率,同时能够降低计算机软件工程管理工作难度。从计算机软件工程成本控制角度来看,缺乏统一的软件开发平台也会增加工程成本,所以构建统一的软件平台以及统一的规则对于优化计算机软件工程管理工作而言具有重要意义。

3.3 管理模式的统一化

当前在我国计算机软件工程管理方面所具有的工作模式具有多样化的特点,如咨询类管理、测试性管理等。其中咨询类管理人员主要负责工程前期的可行性研究以及规划等工作,而测试型监理则主要负责对软件产品提供测试服务。这种内容分离的管理在计算机软件工程管理系统性方面比较欠缺,在实际管理中也容易因为沟通不到位而为管理工作带来困难。另外,一些管理人员甚至不知道如何开展工程管理工作,仅仅将自身工作定位于检查软件代码,在此过程中,管理人员仅仅能够在质量保证体系中发挥作用。从而导致软件工程开展过程中难以得到有效的控制。而这些问题的产生主要是因为计算机软件工程管理模式不一致导致的,所以在计算机软件工程管理的发展中,构建统一化的管理模式也是重要的发展方向之一。

参考文献

[1]李万军,曹艳云.论计算机软件工程管理工作[J].才智,2012(03).

[2]李建兵.计算机软件工程方法的进展研究[J]. 新课程(下),2011(08).

[3]田华.计算机软件工程管理方案初探[J]. 煤炭技术,2011(01).

[4]由智尧.计算机软件工程管理初探[J]. 数字技术与应用,2013(07).

[5]初旭.计算机软件工程管理与应用解析[J].中国管理信息化,2013(05).

软件开发与定制范文4

内容提要: 第三方软件是指主程序软件著作权人以外的其他组织或个人,通过各种技术手段来影响或改变主程序软件具体应用功能的辅助性软件。第三方软件可以分为授权的第三方软件和未经授权的第三方软件。未经授权的第三方软件从技术上又可以分为直接修改型、系统拦截型与封包拦截型,这三种未经授权的第三方软件在不同程度上侵犯了软件著作权人的著作权与企业的经营自主权,应该承担相应的法律责任。

2010年10月29日,北京奇虎科技有限公司推出一款名为“360扣扣保镖”的安全工具,宣称该产品具有全面保护QQ软件用户的安全,包括防止隐私泄漏、防止木马盗取帐号以及加速等功能。同日,深圳市腾讯计算机系统有限公司发表声明,指责“360扣扣保镖”通过外挂手段对QQ软件的多项功能进行破坏,严重影响其软件的安全和完整服务,是一种违法行为。至此,腾讯与360之间的“3Q之战”正式爆发。“3Q之战”在整个社会上引起了广泛的关注,并造成了恶劣的影响。不少学者就“3Q之战”引发的法律问题展开了讨论。其中,对“360扣扣保镖”是否属于“外挂”、法律上是否侵权,大家见智见仁,众说纷纭,但迄今为止尚无定论。对此,笔者尝试从第三方软件的角度来理解和阐述相关的法律问题。

一、第三方软件的概念

第三方软件(Third-Party Software)是指主程序软件著作权人以外的其他组织或个人,经过软件著作权人授权或者虽未经过授权却通过直接修改软件程序或通过拦截、更改软件数据传递的方式来影响或改变主程序软件具体应用功能的辅助性软件,即俗称的“插件”、“外挂”、“补丁”、“Plugin”以及游戏软件中的MOD等。[1]第三方软件中所谓的“第三方”是针对主程序软件开发商、运营商等软件著作权人的“官方”地位而言的。软件著作权人与软件用户分别是第一方与第二方,如果软件著作权人和用户之外的其他组织或个人采取特定的技术手段对主程序软件的具体功能进行了修改,并将这种特定的技术手段以某种软件的形式固定下来提供给其他用户下载并使用,那么其提供的软件就是所谓的第三方软件。总而言之,第三方软件就是主程序软件著作权人以外的其他组织或个人,通过各种技术手段来影响或改变主程序软件具体应用功能的辅助性软件。就“360扣扣保镖”而言,它是北京奇虎科技有限公司推出的针对深圳市腾讯计算机系统有限公司的即时通讯软件产品QQ而开发的辅助性软件,属于第三方软件。

二、第三方软件的类型

根据不同的标准,第三方软件有不同的分类。从软件功能上可分为良性的第三方软件与恶性的第三方软件;从软件应用上可以分为游戏类第三方软件与非游戏类第三方软件;从软件运行方式上可分为独立的第三方软件与挂接的第三方软件;从软件技术手段上可分为修改程序的第三方软件与拦截数据的第三方软件。其中,具有法律意义的区分是根据开发是否经过主程序软件著作权人的同意,第三方软件可以分为授权的第三方软件和未经授权的第三方软件。

(一)授权的第三方软件

授权的第三方软件是指第三方是在征得主程序软件著作权人同意的前提下开发的软件,通常是在主程序软件著作权人已经对外公布软件应用程序调用接口的情况下开发形成的。应用程序调用接口又称为API(Application Program Interface),包括操作系统API与应用软件API,前者是各种应用软件与操作系统的接口,应用软件通过调用操作系统的API才能在操作系统上运行。[2]例如微软提供的Windows API,是Windows提供的一个32位环境下的应用程序编程接口。[3]凡是在Windows工作环境下执行的应用程序,都需要调用Windows API;后者是主程序软件本身的API,是某种应用软件与其他第三方软件的接口,例如中国移动飞信对外了即时通讯软件Fetion的API接口,即允许第三方通过其公布的应用软件接口对其软件的相关应用功能进行修改或者增强。第三方组织或者个人都可以根据飞信的API编写需要改进的应用程序功能模块。在使用过程中,第三方软件通过调用主程序软件提供的相应的API函数将指定的功能模块加载到主程序软件的进程中,从而使主程序软件在应用功能上满足用户的特殊需要。通常而言,第三方软件的实现需要经过第三方以及主程序软件开发商严格的软件兼容测试,预防在使用过程中出现程序冲突,在测试无误之后第三方才向用户提供正式下载版本。因此,在授权的第三方软件中,主程序软件与第三方软件无论在技术上还是法律上都是统一的,故而一般不存在侵权争议。

(二)未经授权的第三方软件

未经授权的第三方软件即第三方未征得主程序软件著作权人的同意而擅自针对主程序软件开发的辅助性软件。现实生活中的“非法外挂”、“非法插件”即为典型的未经授权的第三方软件。第三方往往通过三种方式操作,即形成三种不同技术类型的未经授权的第三方软件:

1.直接修改型第三方软件。直接修改型第三方软件是指通过直接修改主程序软件源程序代码的第三方软件,即业界所说的“直接注入”。具体而言,就是将修改程序直接注入软件主程序,从而修改主程序的数据和代码来实现各种特定功能。由于主程序软件的源程序代码是软件的核心部分,所以软件著作权人一般不会对外公布源程序代码。因此,除了软件著作权人的程序员泄露之外,第三方一般通过软件反向工程获取自己所需的源程序代码,即通过反向分析主程序的相关函数功能、参数以及地址,从而将软件的目标程序还原为软件源程序。直接修改型第三方软件的常见类型即网络游戏《传奇》、《奇迹》中的大部分外挂。其中,曾在业界引起广泛影响的“珊瑚虫”版本QQ软件就是其典型代表。

2.系统拦截型第三方软件。系统拦截型第三方软件是指通过技术手段(例如API Hook)拦截系统信息来加载特定的功能模块来实现特定的应用程序功能。系统信息拦截,又称为本地拦截,其主要是指拦截操作系统与主程序软件之间的数据传递。应用程序与操作系统之间通过应用程序调用接口(API)进行联系。例如某个应用程序一旦启动,其会调用操作系统相应的API函数加载特定的功能模块,并将存储在计算机硬盘的模块数据调入内存。未经授权的第三方软件由于无法得到主程序软件的API函数,因此无法直接调用主程序软件API函数将指定的功能模块加载到主程序软件的进程中。但是Windows操作系统的API函数是早已开放的应用程序编程接口,因此第三方可以通过调用系统API函数拦截主程序软件与操作系统之间的数据传递,在恰当的时候迫使主程序软件执行第三方软件的程序。例如瑞星针对“360扣扣保镖”所作的第三方独立研究报告中有下列技术细节的表述:“用户使用扣扣保镖(1.0.0.1004版本)时,它会把自己的主要功能模块QGuard.dll通过全局钩子方式注入腾讯QQ进程,并拦截QQ进程的系统调用ShellExecuteExW和CreateProcessInternalW等……”。[4]如果瑞星的上述技术分析成立,则表明“360扣扣保镖”在使用时会拦截QQ进程中的系统调用API函数,并加载进自己的功能模块,从而起到拦截QQ软件部分功能的效果,此即为我们所称的系统拦截型第三方软件。

3.封包拦截型第三方软件。封包(Winsock Packet)是指服务器与客户端交换网络中传输的数据包,是基本的信息传输单位。封包拦截型第三方软件是指通过拦截客户端程序与服务器程序之间的数据传递,即使用抓包工具(例如Winsock Packet Editor)来拦截客户端与服务器之间的传输信息,并通过专业的解密技术来破解封包加密,然后通过修改客户端向服务器发送的数据包或者模拟客户端向服务器发送数据包,从而达到改变主程序信息或者主程序功能的效果。因此,封包拦截型第三方软件主要是针对需要通过网络服务才能运行的主程序软件。单机软件除了注册破解与在线升级之外,一般不会受拦截型第三方软件的影响。目前,市面上的在线网络游戏中所使用的各种“外挂”基本上属于这一类型的未经授权的第三方软件。

以上三种类型的第三方软件是目前市场上三种最典型的未经授权的第三方软件。当然,不排除某些未经授权的第三方软件采用不止一种技术来实现主程序软件的功能,即综合型第三方软件。

三、第三方软件的侵权分析

(一)直接修改型第三方软件侵权分析

计算机软件著作权人对计算机软件享有著作权。因此,第三方软件通常较容易侵犯主程序软件著作权人的著作权。如前所述,直接修改型第三方软件在技术上需要修改主程序软件源程序代码以实现软件的特定功能,而主程序软件则属于我国《著作权法》第3条规定的作品,同时受《计算机软件保护条例》的保护。因此,主程序软件著作权人对其开发的软件享有合法的著作权。直接修改型第三方软件的制作人未经软件著作权人授权,擅自修改他人享有著作权的计算机软件,其行为构成著作权侵权。具体而言,其行为在精神权利上侵犯了软件著作权人合法享有的修改权;在经济权利上侵犯了软件著作权人合法享有的复制权、发行权与信息网络传播权。

首先,直接修改型第三方软件侵犯了软件著作权人的修改权。我国《计算机软件保护条例》第8条第(3)项规定:“修改权,即对软件进行增补删节,或者改变指令、语句顺序的权利”。同时《计算机软件保护条例》第16条第(3)项规定:“软件的合法复制品所有人享有下列权利:……(3)为了把该软件用于实际的计算机应用环境或者改进其功能、性能而进行必要的修改;但是,除合同另有约定外,未经该软件著作权人许可,不得向任何第三方提供修改后的软件。”上述规定表明,对计算机软件的修改权是软件著作权人一项重要的精神权利,其他人未经许可不得擅自修改软件的程序,但是法律同时又规定了修改权的一个例外情形,即“为了把该软件用于实际的计算机应用环境或者改进其功能、性能”的目的可以对他人的软件进行修改,但严格禁止修改者在未经软件著作权人许可的情形下将修改后的软件提供给他人。也就是说,未经许可对他人享有著作权的软件进行修改必须受到三个条件的限制:其一,修改的主体是限定的,即必须是软件的合法复制品所有人;其二,修改的目的是限定的,即必须限于法律特定的情形下;其三,修改后软件的使用范围是限定的,即必须限于个人使用。反观直接修改型第三方软件,第三方虽然是为了“改进功能、性能”的合法目的而修改了主程序软件的源代码,但是其将第三方软件在网络平台并提供其他用户下载的行为是违法的,因此其满足特定目的也不能成为其行为侵权的阻却性事由,因而从精神权利上讲,第三方软件侵犯了软件著作权人的修改权。

其次,直接修改型第三方软件侵犯了软件著作权人的复制权。复制权是著作权的核心,是软件著作权人一项重要的经济权利。在计算机软件领域,复制行为既包括对软件源程序代码的复制,也包括对软件目标程序代码的复制。《计算机软件保护条例》第16条规定:“软件的合法复制品所有人享有下列权利:(1)根据使用的需要把该软件装入计算机等具有信息处理能力的装置内;(2)为了防止复制品损坏而制作备份复制品。这些备份复制品不得通过任何方式提供给他人使用,并在所有人丧失该合法复制品的所有权时,负责将备份复制品销毁……”由此可见,软件的合法复制品所有人只有在安装、使用以及为防止复制品损坏而制作备份复制品的情形下才有权对软件进行复制。反观直接修改型第三方软件,其运行机理是将修改程序直接注入软件主程序,从而修改主程序的数据和代码来实现各种特定功能。因此,其修改源代码的过程从技术讲本身就是一个复制主程序软件的过程,因为其是直接在主程序软件源代码的基础上进行的修改,相当于是第三方将主程序软件修改后集成为符合其特定需要的其第三方软件。因此,第三方软件的复制主程序软件源代码的行为在法律上缺乏有效的依据,因而其修改后的第三方软件在经济权利上还侵犯了软件著作权人的复制权。

再次,直接修改型第三方软件侵犯了软件著作权人的信息网络传播权。《计算机软件保护条例》第8条第(7)项规定:“信息网络传播权,即以有线或者无线方式向公众提供软件,使公众可以在其个人选定的时间和地点获得软件的权利。”通俗地讲,信息网络传播权即将软件作品上传到网络并供他人下载使用的权利。事实上,信息网络传播权是由于信息技术的发展而从复制权派生出来的一种经济权利。法律赋予软件著作权人信息网络传播权以应对信息技术的飞跃发展而给著作权法带来的挑战。在美国,版权法是通过扩大复制权的范围来涵盖信息网络传播权的相应内容的,因为上传的行为本身就是一种特殊的复制。在直接修改型第三方软件中,软件本身是基于主程序软件源代码修改而成的,而作为第三方软件的制作者,通常又都会将软件上传到网络供他人下载,由此便进一步侵犯了主程序软件著作权人的信息网络传播权。

(二)拦截型第三方软件侵权分析

如前所述,直接修改型第三方软件侵犯了主程序软件著作权人的著作权。但是,在拦截型第三方软件中,无论是系统拦截还是封包拦截,其第三方软件都没有直接修改和复制主程序软件的源程序代码与目标程序代码。因为在系统拦截中,第三方软件拦截和改变的是系统调用API的动态过程;而在封包拦截中,第三方软件拦截和改变的是服务器与客户端网络传输之间封包的数据。《计算机软件保护条例》第3条第(1)项明确规定:“计算机程序,是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化指令序列或者符号化语句序列。同一计算机程序的源程序和目标程序为同一作品。”由此定义可见,从严格意义上讲,不能认定第三方软件拦截系统调用API或者网络封包数据属于对主程序软件的修改而构成著作权侵权。对此,有学者指出:“对我国《计算机软件保护条例》第3条定义的计算机程序的范围不应作狭义理解,即认为计算机程序仅限于代码化指令序列、符号化指令序列或符号化语句序列,而应作广义的理解。”[5]其认为软件程序所附带的各种数据都应该认为是计算机程序,因此采取扩展技术用语范围的手段将两种拦截看成是侵犯著作权的行为。笔者认为,对计算机程序的定义还是应该严格依照《计算机软件保护条例》的条文内容来理解。因为侵犯著作权不仅是民事侵权,情节严重者还构成刑事犯罪,因此对计算机程序的定义应该尤为谨慎。在没有具体司法解释的情况下,直接将系统拦截与封包拦截看成是对主程序软件的修改进而认定拦截型第三方软件的制作人构成著作权侵权,甚至构成侵犯著作权罪实有不妥。这也不难理解为何同属第三方软件,司法实务中将直接修改型的“珊瑚虫版”QQ软件的制作发行认定为构成侵犯著作权罪,而一般将封包拦截型的网络游戏外挂的制作发行认定为构成非法经营罪。

另外,有学者认为不管第三方软件是否修改或复制主程序软件,只要其符合《计算机软件保护条例》第24条第(3)、(4)项的规定,即未经权利人许可,所有避开或者破坏软件著作权人对主程序软件的技术保护措施或者改变权利管理电子信息的行为都构成著作权侵权。因此认定两种拦截型第三方软件都由于破坏主程序软件的技术保护措施而构成著作权侵权,笔者认为,《计算机软件保护条例》第24条第(3)项的“技术措施”是指“故意避开或者破坏著作权人为保护其软件著作权而采取的技术措施”,例如盗版破解补丁。盗版破解补丁针对的恰恰就是软件著作权人防止其软件被他人非法复制和非法使用而采用的加密技术。从本质上来讲其也属于一种第三方软件,并且从形式上符合上述著作权侵权的法定情形。但是盗版破解补丁从技术上讲较为复杂,即其既有修改程序的补丁,又有拦截数据的部分补丁。因此,在美国,制作和发行盗版破解补丁一般构成版权侵权中的“帮助性侵权”,而在国内,为盗版商提供破解补丁往往被认定为著作权侵权中的共同侵权。除此之外,大部分拦截型第三方软件都不具备《计算机软件保护条例》第24条规定的“故意避开或者破坏著作权人为保护其软件著作权而采取的技术措施”。综上所述,笔者认为,单纯的系统拦截型第三方软件与封包拦截型第三方软件都不构成著作权侵权。

系统拦截型第三方软件与封包拦截型第三方软件不构成著作权侵权并不表示其具有应用上的合法性。事实上,上述两种拦截型第三方软件侵犯的是软件著作权人的经营权。经营权又称经营自主权,其是指企业依法享有的正常经营并且不受他人干涉的权利。我国《公司法》第5条规定:“公司从事经营活动,必须遵守法律、行政法规,遵守社会公德、商业道德,诚实守信,接受政府和社会公众的监督,承担社会责任。公司的合法权益受法律保护,不受侵犯。”本条被认为是《公司法》中对公司的合法经营权的保护。同时,根据《私营企业暂行条例》第21条第(2)项的规定:“私营企业在生产经营活动中享有下列权利:……在核准登记的范围内自主经营……”。本条规定私营企业在核准登记的范围内自主经营,不受其他单位和个人的非法干涉。由此可知,经营自主权是企业依法享有的权利,企业的经营自主权不容侵犯。任何单位和个人都不得对其经营自主权非法干涉,否则要承担法律责任。在软件销售市场与软件服务市场中,软件开发商提供的软件产品或者软件服务相当于是软件开发商的自主经营活动。作为一个企业,软件开发商对软件的销售、软件的服务、软件的保护与软件的升级等商业行为都享有合法的自主经营权,除了行政部门的管理之外,任何组织与任何人都不能干涉软件开发商对软件的经营行为。而拦截型第三方软件在使用过程中对主程序软件的系统调用与传输数据进行拦截,无论其是系统拦截还是封包拦截,都是对主程序软件的一种破坏,都构成对主程序软件开发商基于软件商业运营的干涉,即对主程序软件开发商自主经营权的一种侵犯。例如网络游戏的运营中,如果某一款第三方软件的出现,或者破坏了游戏的平衡性,或者删改了游戏的用户信息,或者屏蔽了游戏的广告,其行为都无一例外地构成了对网络游戏运营商经营行为的干扰和破坏,即侵犯了游戏运营商的经营自主权。即使第三方认为主程序软件开发商在经营活动的过程中存在故意侵犯软件用户权益的行为,例如非法获取用户的个人信息,其也没有擅自代表软件用户通过第三方软件对软件开发商的经营进行直接干涉或直接阻止的权利。也就是说,不能以非法行为去制止另一种非法行为,只能通过其他合法的方式进行。综上所述,两种拦截型第三方软件在使用过程中的非法拦截行为侵犯了主程序软件著作权人合法享有的经营自主权。

四、结论

由此可见,“360扣扣保镖”属于第三方软件中的“外挂”。“360扣扣保镖”没有直接修改主程序软件QQ,因此其并不侵犯QQ的软件著作权,但是其通过技术拦截改变了主程序软件QQ的部分功能,属于未经授权的拦截型第三方软件。而无论是修改型第三方软件还是拦截型第三方软件,由于其是在没有经过软件著作权人授权的情形下开发的产品,并且构成了对主程序软件著作权人或者用户经营活动的干扰,构成不正当竞争。

注释:

[1]其中插件、外挂与补丁等软件在现实生活中常分为官方的与非官方的两种形式,本文中所指的第三方软件是指非官方的。

[2]参见隋永朋、魏振钢:《WIN32 API函数的重要作用及调用》,载《山东理工大学学报》2006年第6期。

[3]梁小满:《调用Windows API函数操作注册表》,载《电脑学习》2004年第6期。

软件开发与定制范文5

[关键词] 项目管理 软件需求开发 进度 成本 质量 管理模型

一、引言

软件需求开发是软件工程的一个重要环节,在软件生命周期中的需求、设计、编码、测试和维护等各个阶段中,需求开发处于软件工程的开始部分,它提供构建软件项目的根基,决定软件开发成果满足客户需求的匹配程度。软件需求开发环节的失误会随着开发进度的扩大而蔓延,资料表明,软件项目中由于需求开发管理混乱而造成的返工开销几乎占了总开发的50%。本文应用项目管理理论分析软件需求开发阶段的系统构成,并设计管理模型来提高软件需求开发的管理效率。

二、软件需求开发管理过程

由于计算机技术的迅速发展,使得软件需求具有模糊性、不确定性、变化性、主观性等特点,并带来软件需求开发管理的复杂性。软件需求开发是一定的组织利用有限的资源在规定的时间内完成,可以作为项目来进行管理,其管理过程由需求获取、需求分析、编写软件需求规格和需求验证四个阶段构成。

1.需求获取

需求获取是在问题和最终解决方案之间架设桥梁,其主要任务是和用户方的领导层、业务层人员进行沟通,获取用户的具体需求,并了解用户的组织架构、业务流程、硬件环境、软件环境、现有的运行系统等具体情况,同用户建立起良好的沟通渠道和方式。软件需求获取的方法有:与用户交谈,向用户提问题;参观用户的工作流程,观察用户的操作;用户工作的情景分析;现有系统的问题报告和改进要求,事件和响应;市场调查和向用户群体发调查问卷;与同行、专家交谈,听取他们的意见;分析已经存在的同类软件产品,提取需求;从现有产品或竞争产品的文档中提取需求;从行业标准、规则中提取需求;从 Internet上搜查相关资料等。

2.需求分析

需求分析主要通过建立业务模型的方式来描述用户的功能需求,为客户、用户、开发方等不同参与者提供一个交流的渠道。业务模型可以映射出软件产品的核心需求,即功能需求。功能需求应描述软件提供的功能和服务、对输入的响应,并描述特定条件下的系统构成等。软件产品本身可能还存在与业务无直接关系的非功能需求,具体与系统的总体特性有关,如可靠性、响应时间、存储空间等。非功能需求定义系统提供服务或功能的约束,包括时间约束、空间约束、开发过程约束及应遵循的标准等。通常这两类需求构成软件需求的总集。

3.编制软件需求规格

软件需求规格的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础,需求分析完成的标志就是提交一份完整的软件需求规格说明书。软件需求规格说明书以一种开发人员可用的技术形式阐述软件必须提供的功能和具备的性能,以及必须考虑的限制条件。软件项目客户通过软件需求规格了解软件项目能够提供的软件产品,检查软件需求是否满足需要;项目管理人员根据软件需求规格制定项目的开发计划和管理过程;软件开发人员通过软件需求规格理解要开发的产品及具体要开发的内容;软件测试人员通过软件需求规格验证软件。

4.需求评审

编写的软件需求规格说明书还应当进行需求评审,确保需求确定的科学性。可采用下列指标进行评审:(1)正确性:每条需求都正确代表构建软件系统所要完成的事情。(2)无歧义:每条需求只有一种解释。(3)完备性:需求不能发生遗漏,应全面考虑相关问题。(4)一致性:用户需求必须和业务需求一致,功能需求必须和用户需求一致。(5)重要性和稳定性分级:现有资源不足以实现所有需求时,可以根据级别的高低决定实现的先后,舍弃一些级别低的需求以保证项目的按期交付。(6)可验证性:需求分析是可测试的,只有系统的所有需求都是可以被测试的,才能够保证软件始终围绕着用户的需要,保证软件系统是成功的。(7)可修改性:每一条需求都易于完整一致的进行变更,且不改变需求集的结构和风格。(8)可跟踪性:每条需求都是可溯源的,且存在一种机制使得在以后的工作中引用需求是可行的。(9)可理解性:用户和开发人员都完全理解需求集的整体行为、所提供的功能及其中的每条需求的含义。

三、软件需求开发管理模型

1.软件需求开发管理模型构建原则

软件需求开发是一项复杂的系统工程,管理模型的构建应遵循下列原则:(1)程序性原则: 软件需求开发管理应遵循固定的业务流程,可将其划分为需求获取、需求分析、编写软件需求规格和需求验证四个阶段,前一阶段的工作完成后才能进入下一阶段。(2)系统性原则:软件需求开发要在限定的时间、成本条件约束下达到一定的质量,实现软件系统的最优,要求管理遵循系统管理原则,实现目标最优。(3)简化性原则:化繁为简,将模糊的、潜在的复杂问题明确化,以图表的形式表示出,并以简化的解决方案解决问题,便于项目管理。(4)平衡性原则:管理软件需求开发的具体事务要有一定的侧重。对于需求开发过程事项,应根据影响大小分清主次,关键的事项或者事项里的某个多发问题点,着重管理,达到在管理上的主次平衡。(5)高效性原则:模型的设计必须以促进需求开发目标的实现为前提,提供给相关人员一个展示需求开发管理和有效解决方案的平台。(6)时时控制性原则:及时控制需求开发过程中影响进度、成本、质量等问题,及时发现解决冲突事件,做到事前、事中、事后控制,保证项目按时保质保量完成。(7)动态性原则:开发中应关注信息技术的发展,将先进的技术应用到软件需求开发中,并学习借鉴相关软件需求开发的成果。

2.软件需求开发管理模型

基于以上分析,本文构建了软件需求开发管理模型,见下图:

该模型遵循了软件需求开发的管理流程。启动阶段,软件开发进行了可行性研究,软件项目已立项,项目正式启动。软件需求开发管理阶段是模型的主要部分,按照项目流程,依次划分为需求获取、需求分析、编写软件需求规格和需求验证四个阶段。总结阶段,对软件需求开发管理进行总结,并进入到软件程序设计阶段。模型的核心部分是应用项目管理的进度管理、成本管理、质量管理,对软件需求开发进行动态管理。进度管理就是制定出经济合理的进度计划,然后在计划执行过程中,检查实际进度与计划进度之间的差异,并及时找出出现差异的原因,采取有效的补救措施,以确保项目按时按质完成。进度管理应加强沟通,掌握可能延误进度的环节,并严格控制进度变更。成本管理就是对项目所需的成本情况进行详细地分析和估算,编制资源需求计划,并编制项目所需的成本估算和预算,在执行过程中,采取相应的措施对项目成本进行控制。成本管理应严格控制加班、浪费等额外支出。质量管理是为了保证项目的可交付成果能够满足客户的需求,围绕项目质量而进行的计划、协调和控制等活动,其具体内容涉及质量规划、实施质量保证和质量控制。通过进度管理、成本管理和质量管理,使软件需求开发成为进度快、成本低和质量合格的有机统一体。

该模型规范了软件需求开发的业务流程,并在整个软件需求开发的不同环节之间建立联系,明确需求开发过程与自身各任务项之间以及项目其余环节所存在的各种联系。模型各环节间的相关性、可追溯性保证了软件项目需求开发过程,可以遵循统一的管理模式。该模型具备可配置性。每个软件项目,都具有个性化管理需求,在进度管理、成本管理、质量管理等方面有不同的要求,可以针对具体的开发团队,项目要求,管理侧重点,扩增相应的管理模块,将此模型推广到任何一个软件需求开发项目。

3.模型应用

由于软件需求开发具有复杂性,其主要表现为需求描述问题,明确表达需求较难确定,并且难以统一;需求完备问题,需求没有遗漏,难以准确划定系统范围;需求的变更问题,需求变化是永恒,需求不可能是完备。模型应用需做好以下工作:(1)文档化管理。需求必须有文档来记录,该文档必须是正确的,是经过验证的,是在受控的状态下变更的。开发或管理人员常常会在含糊的情况下把认为是相对简单的需求忽视而省略文档记录,其实未必简单,只有想清楚、写清楚、说清楚才说明已经真正把需求整理清楚了,同时方便日后维护工作的展开。需求含糊的情况下要进行会议形式处理,并邀请相关人员参加进行需求澄清及确定,需求在进行多方确定后进行归档。同时软件需求的复用率也是相当高的,可以避免升级时重新将需求再次获取,只需要在原来的基础上作为文挡需求复用升级处理。(2)审核评估需求变更,减少变更的影响。在管理软件开发过程中,需求渐变是必然的,无论需求变化的程度如何,只要需求变更就必须进行评估。在需求变更之前必须由项目管理人员审核,再传给开发人员进行评估等工作。管理人员必需依据对整套系统的了解程度分析需求变更过程中可能受影响的系统及受关联的功能模块,并制定积极应对措施。(3)整体管理。应识别、确定、结合、统一与协调软件需求开发管理过程中所需要进行的各种过程和活动,保证进度、成本、质量等各要素的相互协调。

四、结语

软件需求开发在软件项目管理中具有重要地位。本文应用项目管理理论,设计了软件需求开发管理模型。该模型遵循项目管理流程,将软件需求开发划分启动、需求开发过程、总结三个阶段,并将软件需求开发过程划分为需求获取、需求分析、编写软件需求规格和需求验证四个阶段,模型应用项目管理的进度管理、成本管理、质量管理,对软件需求开发进行动态管理,实现软件需求开发项目目标最优。该模型能够提高软件需求开发管理效率,确保软件开发能够按进度,低成本,高质量地完成。

参考文献

[1]景慎艳:软件项目需求管理的探索与实践 [J].电脑知识与技术,2008(27)

[2]左怀远:软件项目中的风险管理研究[J].世界科技研究与发展,2008(3)

[3]孙琦龙:加强软件项目管理的实践模式[J].科技信息,2008(7)

[4]潘加宇:软件工程与项目管理[J].程序员,2007(12)

软件开发与定制范文6

关键词:现状;软件产业;高技术产业

中图分类号:F27

文献标识码:A

文章编号:1672-3198(2010)21-0121-02

软件产业是经济增长的“倍增器”、产业升级的“助推器”,是江苏省落实科学发展观、加快产业结构调整和经济增长方式转变的标志性产业。积极实现软件产业跨越式发展,推动科技创新不断调优提速,也是促进苏州高技术产业发展的重要战略举措。由此可见,软件产业发展与区域经济发展之间具有密切的相关关系。

1 发展软件产业的现实意义

1.1 有利于推进高新技术产业的转型升级

经过改革开放近三十年的经济发展,苏州已处于工业化中后期阶段,根据美国经济学家钱纳里的研究,优化产业结构是工业化中后期阶段加快经济增长,提升区域竞争力的主要手段。作为高新技术产业的软件产业在苏州的产业结构中占有重要地位。

目前,江苏省现有的软件产业规模主要集中主要聚集在南京、苏州、无锡、常州等苏南地区,表现为小型化、应用软件为主体、全球性研发服务等特点。近年来呈现爆发式增长,产业规模不断扩大,出口大幅增加。2008年全省实现软件产业销售收入超过1200亿元,2009年上半年实现销售收入798亿元,增速达到40%,占全国的比重从2004年的7%上升到15.9%,居全国第3位。但总体而言,苏州软件产业的发展与国内先进省市相比,仍存在多方面的差距,如企业集中度不高,产品覆盖面不宽,许多软件领域有待开发创新等。软件产业只有在规模化发展的过程中才能走向成熟。苏州具有外向型经济的突出优势,可以积极引入国际知名的、有实力的软件研发企业落户,利用雄厚的跨国企业基础承接软件外包,增强苏州软件产业生产研发的竞争力,通过国际资本支持下的国际技术转移,形成全国乃至全球的软件生产和研发体系。

1.2 有利于推进IT产业集群创新体系建设

近年来,苏州产业布局从传统产业向以电子信息为主的新兴产业转变,已逐渐形成一定规模的高科技产业集群。经过十几年的发展苏州目前已成为我国重要的IT产品生产基地之一,形成了计算机及外部设备,通讯类产品,消费类电子产品,电了元器件及电子材料四大门类IT产品,其中液晶显示器、水晶振子机壳等零部件产量居世界首位。同时软件产业稳步发展,初具规模。由苏州工业园区软件园、高新区软件园和昆山软件园组成的苏州软件园在网络平台软件、IC设计嵌入式软件、数字媒体软件和行业应用软件等领域具有一定的竞争优势。苏州市现有软件企业数量已达到450家左右,经认定的软件企业达到了291家,软件从业人员近100000人,列江苏第二位,研发和设计能力正逐步形成。

但就整个IT产业集群结构而言,苏州的IT产业仍偏重以硬件为主导的产业结构,属于制造高技术产品的制造业,只是IT产业链中的加工装配环节,在核心技术的研发和创新方面与发达国家存在很大的差距。因此,通过承接软件外包业务,一方面可以学习先进的管理技术和相应的国际化标准,积累承接大型项目的经验,提升企业的综合实力;另一方面更为重要的是在为别人做项目的同时加强自主创新,培育企业的核心技术,推进IT产业集群创新体系的建设,使苏州真正发展成为高新技术产业中心,改变其仅作为跨国公司全球性的加工组装生产基地和“代工中心”的不利状况。

2 苏州软件产业发展现状

2.1 软件产业总体规模不断扩大

苏州作为20个国家服务外包示范城市之一,近年来,在市委、市政府的领导下,软件产业持续高速增长。截至2008年,苏州软件产销售收入达380亿元,连续8年保持了30%以上的高增长率,特别是苏州市的软件产业在2005年实现了井喷式的发展,增长速度达到了890%,增长速度惊人,与全国同类城市相比,苏州市软件产业总体规模2007年以273亿元排名全国第8位,2008年,苏州市软件业务收入实现380亿元,同比增长达到了39.71%,排名上升1位,居20个国家服务外包示范城市的第7位。

2.2 软件出口和外包占有重要地位

近年来,苏州市离岸软件出口和外包服务外包产业发展十分迅速,已经形成了以苏州软件园为载体,嵌入式软件为主打的软件外包为内容,欧美高端市场为目标的出口软件产业,产品覆盖网络平台软件、IC设计、嵌入式软件、数字媒体软件和行业应用软件等各方面。2008年,苏州软件出口13亿美元,约占全省软件出口的2/3,名列20个国家服务外包示范城市第2名,2007年苏州软件出口10.1亿美元,名列20个国家服务外包示范城市第3名。集中反映出苏州软件出口和外包的明显优势。

2.3 具有一定的自主创新能力和竞争力

经认定的软件企业和软件产品数量是反映一个城市软件产业和软件外包竞争力的重要指标。2008年,苏州市经国家认定的软件企业291家,软件产品1553项。对比国内软件产业发达城市,苏州市软件企业和软件产品数量分别位于第11位和第10位,属于中等水平。结合苏州市软件产业发展现状,嵌入式软件是苏州软件产业的最大特色,而嵌入式软件开发企业往往仍归属于制造业企业,如能将具有嵌入式软件的企业和产品从制造业中剥离出来,则双软认定数量还将有所提高。

不仅如此,一批软件外包重点企业分别与微软、IBM、西门子、花旗、摩托罗拉等世界500强公司建立了长期合作关系,形成了稳定的软件外包业务渠道和市场份额。在科技部火炬中心举办的“中国软件欧美出口工程”(COSEP)评选中,苏州软件园内捷讯软件、联创国际、新宇软件、新电信息、欧索软件、宏智科技、南大苏富特7家企业先后被评为COSEP试点企业。在江苏省入选的9家企业中,苏州市占该省入选软件企业总数的78%。苏州软件园也因此被列入全国7个COSEP试点基地之一。CMMI认证企业达18家。

3 发展苏州软件产业的对策和建议

3.1 “软硬结合”,发展制造业嵌入式软件开发

苏州制造业基础雄厚,嵌入式软件系统开发是当前发展软件业务的重要突破口,其好处显而易见。一方面,嵌入式软件系统是制造业的灵魂,发展嵌入式软件外包可以为制造企业提供强大的技术支持,进一步促进这此制造业企业快速发展和出口增长;另一方面,制造业出口创造的巨大商机和国外需求反过来会进一步刺激软件外包的持续发展,实现软件外包产业发展与传统产业发展的良性互动。当前苏州基于通讯、机电控制、数字家电等领域的制造业嵌入式软件发展空间广大,但企业在进入嵌入式软件外包业务时,普遍存在技术基础薄弱、软硬件结合能力弱、设计能力不足等问题。究其原因,主要是因为嵌入式软件系统开发较高的技术门槛与企业相对较弱的技术开发水平存在较大的差距。一方面,嵌入式软件开发具有软硬件相结合,涉及的硬件平台、底层软件、中间软件及应用软件的界限与层次区分不明显的特征,故多数为“全工程”开发业务,适合整体外包,对外包企业设计能力要求较高;另一方面,嵌入式软件产品多数面向网络、通信、消费电子等高端领域,这些领域往往存在一定的标准体系或专利等技术壁垒,特别要求企业具有专有的技术与研究能力。因则现阶段软件外包企业应有针对性、分阶段地进行技术能力强化:其一,注重企业自身的技术基础,提高开发团队的软硬结合开发能力;其二,积极开展自主技术预研,保有一定的自有知识产权,在特定的技术领域形成特有的技术优势。

3.2 发展软件创新模式,开拓“高端”软件外包

目前,苏南地区软件企业承接的外包项目大多数属于低端业务,仅为简单的软件编码和测试工作,在出口方面只能赚取低廉的利润。不仅如此,由于低端外包业务的技术含量软低,长远来看并不利于软件产业整体技术提升和行业可持续发展。因而当前应注重提高产品的创新能力,加强对软件核心技术的研究开发,突破制约产业发展的关键技术,建立信息产业技术创新体系,并在这一过程中,努力提升企业自身的软件外包价值链水平,向“高端”软件外包业务发展,将简单的成本优势转化为技术优势。如前所述,苏南地区具有突出的外向型经济发展优势,软件外包承接企业可积极与外资建立合作研发中心,加快学习国际顶级软件公司的技术,提升自身的技术竞争力,同时也可借助跨国企业在全球的品牌优势,及其强大的客户资源与渠道优势,加速开拓国际软件外包的高端市场。

3.3 培育和吸引更多的高素质软件人才

软件开发不同于普通的制造业,在开发过程中融入了更从的人文因素。一方面,人才培养难、保有难是困扰软件企业的突出问题。软件开发的技术人员不仅需要具备较强的软硬件技术,也要具备丰富的工程开发经验;离岸开发成本、质量风险等管理也需经验丰富的项目管理人员参与。但是在我国的教育体系中,普遍存在理论与实践脱节的弊端,所培育专业人才往往还需企业长时间深入培训,企业付出的成本较高。因而人才的培养应促进企业和高校更紧密结合,高校可以为企业开设定制化课程技术培训,同时企业为毕业生提供实习机会。例如在软件外包的人才培养文献,国内软件业的龙头企业东软集团在大连、南海和成都等地建立了IT学院,培训大量既懂日语又懂IT软件外包的专业人才。同时还应拓宽人才培养途径,积极吸引和聘用海外软件开发高级人才,鼓励他们人员回国创业,这些海外软件开发高级人才具备软件外包项目的实战经验,将对国内软件外包的发展产生巨大的推动作用。

不仅如此,各级政府也应积极发挥作用,在软件产业基地建设,技术培训、资质认定、企业个人税收等方面推出优惠鼓励措施,同时扶持企业整合资源,扩大规模,促进软件产业集群建设,切实实现信息资源共享。

参考文献

[1]史嵘.发展软件外包推进苏南高新技术产业升级[J].江苏商论,2008,(9).

[2]黄庐进,康文娟.发展对日软件外包提升中国软件产业国际竞争力[J].经济与管理,2008,(1).

[3]夏海力,廖瑛.台湾新竹发展高新技术产业的经验及对苏州的启示研究[J].科技创新月刊,2006,(11).

[4]朱华燕.走有中国特色的国际软件外包业务发展之路[J].世界经济情况,2007,(12).

[5]郭昶.嵌入式软件离岸外包的共通课题[J].软件世界,2008,(1).

[6]李岳云,席庆高.国际服务外包与我国服务外包的发展[J].南京农业大学学报,2007,(9).