欢迎访问发表云网!为您提供杂志订阅、期刊投稿咨询服务!

软件开发与定制大全11篇

时间:2023-06-01 15:57:16

软件开发与定制

软件开发与定制篇(1)

中图分类号:TP3-0文献标识码:A文章编号:1672-7800(2012)010-0009-03

作者简介:周春燕(1968-),女,常州纺织服装职业技术学院创意学院讲师、实验师,研究方向为计算机技术。

0引言

信息技术的飞速发展不仅使得各个传统领域的生产效率得到了提升,同时也给软件行业的发展提供了机遇。近年来,我国的软件行业飞速发展,大量的软件企业崛起,但是受限于发展的时间,我国当前90%以上的软件企业还是中小型企业,这些企业往往也只有能力开发中小型软件。这些公司是我国当前中小型软件的开发主体,但是由于自身的规模有限,往往不很重视软件开发的管理与控制,导致软件质量不高,开发周期过长。从这个角度来看,本文对中小型软件开发的管理以及控制进行分析具有非常重要的现实意义。

1中小型软件开发管理与控制中存在的问题

1.1开发管理不规范

软件工程主要包括过程、工具和方法三个要素。软件工程方法主要有形式化方法、面向对象方法和结构化方法。形式化方法是基于形式化数学变换的,其功能是将系统规格说明转换成可执行的程序;面向对象方法在一些交互性较强、复杂、大型的系统中比较有优势,其在表示方法和概念上保持了一致性,能够保证各项开发活动之间有着平滑的过渡过程;结构化方法是将系统生命周期划分为几个阶段,采用结构化技术来完成各个阶段的任务。传统软件工程主要集中在设计和分析阶段,是基于数据的对数据和数据流进行分析的方法。传统软件工程在设计阶段主要使用的工具是针对系统整体和详细设计的流程图;分析阶段主要使用的工具有数据流图、状态变换图、实体关系图和数据字典。

当前,我国的大部分中小软件企业对于软件开发的管理并不规范,没有建立起自身的软件质量控制制度,也没有相应的组织结构设计,基本上是开发到什么程度就算什么程度,存在的问题能够解决的就解决一些,不能解决的待到日后的升级完善中去逐一解决,使得软件质量无法得到保障。

1.2缺乏高素质的研发管理人员

从我国软件行业的发展现状来看,绝大部分软件企业并没有配备专门的研发管理人员,即使有也只是项目负责人对软件的开发过程进行例行的管理。除此之外,部分有研发管理人员的企业,研发管理人员的素质也并不足以对整个软件开发项目的质量进行管理和控制。

1.3缺乏合格的产品经理

产品经理在中小型软件开发过程中的作用同样是至关重要的,它需要对产品及其发展方向进行定位。这就使得产品经理必须对软件市场、用户实际需求有一个非常深入的认识或者了解,同时要具备较高的悟性、较丰富的管理经验和较强的管理能力。除此之外,产品经理还需要对IT技术的发展态势有非常清醒的认识,尤

其是需要对相关的开发工具以及开发技术有一个较为深刻的理解。从某种程度上来看,产品经理是否称职直接关系到软件开发的结果。但是,从当前情况来看,我国的软件企业普遍缺乏这种人才。

2中小型软件开发的管理与控制流程

将中小型软件的开发作为一个项目来对待有一定的科学性,在谈及软件的开发管理以及质量的控制之前,我们首先要将整个软件开发项目的基本流程进行分析。

2.1中小型软件开发项目的阶段划分

中小型软件开发项目从最初的可行性研究,到最后的项目完成基本上都需要经过8个阶段,如图1所示。

在可行性研究阶段,需要对项目的内容进行定义,对项目涉及到的技术进行分析,了解项目针对的细分市场,制定项目策略,做好投资与回报分析,分析当前已有的项目资源,并且对其它需要分析的因素进行考虑。在方案设计过程中,需要确定整个项目的技术支持,制定基本设备的布置方案,确定各方面的成本,制定粗略的项目预算。在初步设计阶段,需要根据中小型软件开发项目的具体需求,去制定一些细节信息,比如确定软件开发的基本流程,制定编写流程说明书,完成软件的标准确定,以及各模块的基本方案,制定较为准确的项目预算,并且确定软件开发过程中具体的实现技术。在详细的设计阶段,则是根据初步设计的结果,完成所有的技术细节工作。比如,确定各项开发流程中的细节,完成所有的工具选型以及软件开发前的准备工作,制定详细的流程说明以及使用说明,确定项目预算。在项目的实施阶段,则主要是根据项目的设计和提前准备的方案进行实施。在软件项目开发的过程中如果发现详细设计存在一定问题,则需要通过先行对设计进行修改,然后再进行软件的开发,确保软件开发的质量。在试运行阶段,主要是解决上述阶段中存在的问题,然后正式进行开发。

2.2中小型软件开发管理与控制的组织机构设计

为了确保中小型软件的开发能够得到较为科学的管理,确保软件开发的质量能够得到控制,软件公司有必要建立起相应的软件开发组织机构。详情如图2所示。

如图2所示,软件公司设置公司产品管理组,其下设研发部门以及产品管理两个部门,研发部门下设软件架构与质量控制机构,在早期对软件的开发提供质量管理支持。在其下再设置开发组和支持组,开发组根据项目的实际情况有多个,这需要根据软件开发过程中模块划分的实际情况进行确定。而在软件开发的支持组,则包括了软件的配置管理以及软件的测试与支持两个部分,由其负责对开发组开发过程中软件管理与质量控制提供支持。

在上述组织机构之中,软件架构与质量控制机构是整个中小型软件开发管理与控制的核心机构,其主要的职责是对软件开发的质量进行管理和控制,及时发现开发过程中存在的问题,并且积极地解决问题,确保进入到下一个阶段的设计符合设计规范的要求,从而实现软件开发的全程监控。这一机构是非常设机构,主要有项目的研发经理、产品经理以及系统分析员等人员组成,然后根据项目的进展需要,由研发经理召集进行项目的分阶段质量评审。

2.3软件开发项目组的角色

一般而言,中小型软件开发项目组由不同的角色人员构成,每一个角色在整个软件的开发过程中都能够起到不同的作用,他们互相协调,完成软件的开发、管理以及控制工作。一个典型的中小型软件开发往往需要如图3所示的6种角色。

在中小型软件的开发过程中,由于人力资源的局限性,每个人可能需要肩负不同的角色,而与软件的管理和控制密切相关的角色就是测试与质量保证。它是整个项目开发的重要保证,是保证系统符合功能规范的前提,为了确保零误码,测试以及质量保证人员应该积极地参与到软件的开发过程中去,确保开发出来的软件是与功能规范完全相吻合的软件系统。因此,测试工作与软件的开发工作是同时、独立进行的。

2.4中小型软件开发各个阶段的管理与控制目标

中小型软件开发的过程中,不同的阶段也有不同的管理与控制目标。

在可行性分析阶段,对于项目型软件开发,一般可以由用户自行完成,软件公司则是给予用户一些基本的技术支持;对于产品型的软件开发,这个阶段则是非常重要的一个环节。在这个阶段,①对项目进行定义:描绘出软件的运行环境、功能、用户群体的需求以及制约因素等;②技术分析:主要是对当前软件开发所需要应用的技术以及其运行的环境涉及到的技术的发展状况、成熟情况以及未来的技术走势进行综合的评判;③市场分析主要是针对国内外的同行业发展现状、市场的综合发展格局以及发展趋势,对市场容量统计数据进行推测,了解产品可能的市场占有率以及销售的基本情况;④产品策略:主要是对产品的技术策略以及产品的市场策略进行制定;⑤投资回报分析:具体包括了项目的投资总额、项目的成本核算、项目收益以及投资回报等;⑥项目的已有资源分析:主要是对资金资源、人力资源以及技术资源等进行综合的评价。

在需求分析阶段,则需要遵循可行性分析确定的基调,对中小型软件开发的技术路线、产品的基本功能以及产品的运行环境等问题进行定位,主要应该完成对用户应用流程的描述,也就是商业逻辑的分析,并且依据商业逻辑的具体需求确定该软件所需要的功能。

在项目实施阶段,要按照过程管理以及质量控制标准化的管理方式进行实施。过程管理是基于里程碑的过程模型,通过引入迭代过程模型,允许软件开发任务的重叠以及反复,从而确保软件的质量。第一步就是要制定里程碑,也就是项目的实施计划,每一个里程碑都需要清楚地定义该里程碑开始、结束的时间以及负责人,并且对该里程碑需要完成的任务进行规定,中小型软件开发的里程碑如图4所示。

图4中,每一个里程碑都对应一个质量控制节点,完成中小型软件开发的质量控制里程碑的设置之后,就可以根据上述节点构建软件开发的质量控制体系。每一个里程碑的质量控制节点都与具体的角色相关联,而每一个具体的角色由于和软件开发部门紧密联系,不同角色的业绩

评估以及管理必然归属于其自身所处的业务部门。因此,依据中小型软件开发质量控制里程碑建立起来的质量控制体系,能够真正实现对中小型软件开发的管理以及质量控制。

3结语

随着信息技术的不断发展和普及,社会各行各业对于定制化软件或者其它普适性较高的商业软件的需求量也在不断地上升。软件行业在这种背景下得到了充分的发展,然而整个行业的竞争也在不断的加剧。为了提升软件公司的竞争力,就有必要不断地加强对软件开发的管理与控制能力。一个良好的可操作的软件开发管理模式,对于确保软件开发达到预期目的具有非常重要的促进与保障意义,同时也有助于软件公司降低软件的开发成本,缩短软件开发的周期,降低软件维护成本,减少软件开发风险。文章分析了当前中小型软件开发管理与控制中存在的问题,并且试图建立起一套合理的软件开发管理模式,为丰富我国软件行业的软件开发管理模式,促进我国的软件开发管理体系的完善起到一定的启示作用。

参考文献:

[1]刘前,刘天波.关于提高软件质量方法的探讨[J].辽宁科技学院学报,2008(4).

[2]王伟.怎样适应需求不断变化的软件项目[J].成都电子机械高等专科学校学报,2008(3).

[3]王吟风.中小型软件开发团队的质量管理与控制:下[J].信息技术与标准化,2008(11).

[4]王吟风.中小型软件开发团队的质量管理与控制:上[J].信息技术与标准化,2008(10).

[5]杨全月,张利萍,樊秀梅,等.软件开发失败的常见原因及其对策[C].都市型高等农业教育教学改革论文专辑,2007.

[6]陈兰.谈如何做好软件项目的需求分析与需求变更控制[J].福建电脑,2006(11).

软件开发与定制篇(2)

中图分类号:TP311.52 文献标识码:A 文章编号:1674-7712 (2012) 14-0057-01

对软件项目设计与开发的全过程进行有效的管理,不仅是要为了顺利实现软件的特定功能与性能,还要确保能够保质、保量、低成本的完成软件开发的任务,使软件在投入使用后也能够保持稳定性、可靠性、实用性和经济性。简单的说,软件设计与开发的过程就是要将需求转变为软件表达的过程,要想切实提高软件项目设计与开发过程管理的有效性,不仅要坚持正确的软件项目设计原则,还要明确软件的设计流程,在设计与开发的各个过程都采取行之有效的管理对策。

一、软件项目设计与开发的基本原则

(一)实用性

实用性指的是软件项目的设计与开发一定要能够满足现代企业经营管理的需求,能够促进企业的不断发展,要避免“形式主义”、“中看不中用”等问题,否则有可能导致企业软件开发资金的浪费,难以取得良好的投资回报效果。因此,在选择软件设计与开发技术时,不能过度追求先进性和高投入,而是应当在充分了解企业实际需求的基础上,结合企业的发展方向,充分满足企业在不同层次和环节上的管理需求,这也是决定软件开发项目成败的关键因素。

(二)先进性

毋庸置疑,在信息技术不断变化发展的时代背景下,先进性是软件项目设计开发过程中必须充分考虑的问题,这可以有效降低企业在未来的投入,避免未来在软件项目开发中的重复建设和系统升级等问题。因此,企业在进行软件项目的开发设计时,一定要面向社会经济的未来发展方向和人民生活需求的变化趋势,紧跟社会步发展的步伐,与信息技术、计算机技术、通信技术以及相关学科的发展方向保持一致,这样才能不断推动社会的进步。

(三)经济性

任何一个软件项目的设计与开发,都必须充分考虑到投入产出比的问题,力争用最小的经济投入获取最大的投资回报,实现最好的软件开发设计效果和更高的经济效益,这也是软件开发企业的主要目标。因此,在保证软件开发质量的前提下,软件的开发费用需要控制在合理的预算范围之一,并尽量压缩,在设计开发过程中必须要考虑到软件在后期运行维护过程中的费用投入,实现软件项目设计与开发全过程费用的节约。

(四)系统性

在软件项目的开发设计中,一定保证其整体功能的完整性,既能满足企业在整体上的管理需要,设计与开发的系统必须能够全面、完整覆盖企业管理的软件信息系统,又要能够满足采购、生产、销售等个别部门的管理需求,便于各个部门之间信息数据的传递和衔接。此外,还应当制定系统的软件项目设计与开发的管理规范,如开发文档的管理规范、报表文件规范、数据格式规范等,这是确保软件系统开发和操作水平的重要条件。

(五)可靠性

为了充分保证软件项目系统运行的高效、平稳和准确,不仅要保证软件系统在正常运行状况下数据传递的准确性和系统运行的可靠性,还需要确保软件系统项目在非正常状态下的可靠运行,因此在软件项目的开发设计过程中要提前针对一些紧急情况制定相应的应对策略。一个优秀、可靠的软件系统,必然是一个灵活的系统,即使在软、硬件环境发生故障时,仍旧能够保持部分使用或正常运行。

二、软件项目设计与开发的全过程管理

(一)软件项目设计与开发的启动

在软件项目的设计与开发过程中,实施全过程管理的第一个阶段就是项目的启动。在软件项目的启动阶段,首先,要明确软件项目设计与开发的目的,并在软件开发与软件使用的双方协议或者合同中进行约束,并对软件设计的主题、工程量进行量化,合理确定软件项目开发和设计的阶段目标和周期。其次,要加强同软件用户的充分沟通,了解用户的软件使用需求,理清软件记录的关键点,制定出完整的软件设计与开发流程;再次,对于在调研过程中所获取的原始资料,一定要进行加工处理,理清相关的约束条件和非功能性的客户需求,确保软件开发与建设项目具有很强的可实现性。

(二)软件项目设计与开发的规划

软件项目的规划,是软件设计与开发过程中比较复杂的阶段,也是决定软件开发质量和开发水平的关键,做好软件项目的整体规划将会为整个软件项目的运行奠定良好的基础。具体说来,软件项目规划主要包括项目预算、风险分析与预测、进度管理、质量控制等内容,在编制软件项目的开发计划时,一定要理清各个开发环节之间的关系,并制定出完整、科学的项目计划书,以期为软件项目设计与开发的全过程管理提供相应的参考依据。

(三)软件项目设计与开发的实施

软件项目实施阶段的有效管理,其目的就是要保证软件项目安装在预先设置的计划上正常运行,确保项目不要偏离预定的开发进程和设计目标。在软件项目的实施阶段,一定要按照软件项目的初步规划进行,并在实施过程中,增强对软件项目开发的有效控制,确保成本支出控制在相应的预算定额之内。同时,要对软件项目开发的成果进行动态的监控,随时与原先的计划过程进行比较,对于出现的偏差或缺陷要及时进行调整,确保各项软件开发指标和系统功能的顺利实现。

(四)软件项目设计与开发的结束

一个完善的软件项目管理过程,必然离不开软件项目的结束,这时相关人员要进一步确认软件项目在设计与开发过程中取得的成就,做好软件项目的交接、评审等工作。

三、结语

总之,为了提高软件项目设计与开发的质量和水平,软件设计人员需要首先认识到软件质量的重要性,树立应有的软件项目质量管理意识,要坚持正确的软件设计与开发原则,懂得加强过程管理与控制,同时还要对风险控制、配置管理等环节给予足够的重视,采用科学的技术方法和先进的管理技术来提高软件项目质量管理的有效性。

参考文献:

软件开发与定制篇(3)

(一)美国UCITA中的大众市场(Mass-mar-ket)

美国《统一计算机信息交易法》(UCITA)作为软件交易立法的先驱,其在第102条(43)项中提出了“大众市场许可”(massmarketlicense)的概念,并对于大众市场许可合同的效力与限制作了明确的规定。按照UCITA的官方注释:“所谓的大众市场,是指信息以出售前预先包装好并附有面向整体普通公众的一般类似条款的形式出现,并且普通大众,包括消费者,是作为经常参加者出现在其中的零售市场。”①因此,美国软件许可中的大众市场即通常所说的软件产品的消费者市场。同时,在大众市场许可中,软件出版商是软件的著作权人,而负责销售计算机软件产品的软件经销商并不是拥有许可权的主体,如果软件最终用户需要使用某个计算机软件产品,其必须得到软件的著作权人的授权。当然,一部分拥有许可权的经销商以及一部分捆绑软件的硬件制造商也可以在一定范围内作为许可权的主体授权软件用户使用软件产品。[1](P33~34)据此,计算机软件产品大众市场许可的过程中往往涉及三方当事人,并且存在两份协议:一份即为软件最终用户与软件经销商之间的软件产品交易协议,另一份为软件最终用户与软件著作权人之间的软件权利许可协议,而且,“作为受两份合同约束的被许可方,最终用户并没有取得计算机软件的所有权,取得的仅是一种受限制的使用权”。[2]因此,从法律性质上讲,大众市场许可事实上将软件最终用户与软件著作权人之间的许可直接认定为著作权意义上的许可。目前,中国学术界对软件在线许可法律性质的定位在很大程度上受到了大众市场理论的影响。立法上,中国《计算机软件保护条例》将软件许可认定为著作权许可。

(二)日本北川善太郎的复制市场(Copy-mart)

复制市场理论是日本学者北川善太郎教授提出的,其复制市场是指“通过动态电脑系统和信息网络构筑动态的著作权和著作物的流通市场”,[3]建立复制市场的目的是为了解决大量复制和多媒体的著作权问题。复制市场系由包括两种数据库构成的两种市场所构成,其一为个别著作权“权利信息”数据库,即登载著作权信息的登记市场,又称为著作权市场(copyrightmarket),另一则为集合著作物“著作内容”之数据库,即提供著作物的产品市场,又称为著作物市场(copymarket)。[3]简而言之,以软件为例,复制市场包括软件的著作权市场与著作物市场,著作权市场是软件权利信息市场,其主要功能为登录软件著作权权利信息的数据库,并可供他人查询。著作物市场是软件复制市场,其能够根据利用者的要求,以收取费用的形式,向他人提供软件产品的复制。因此,在复制市场中,虽然明确区分了权利市场与产品市场,但是软件著作权人与最终用户之间的许可在法律性质上仍然是著作权许可。

(三)日本林纮一郎的数字创作权市场

日本学者林纮一郎教授在1999年提出了“数字创作权”市场的构想,其是指包括计算机软件在线许可在内的所有数字作品的在线许可交易市场,其交易采用“d-mark”许可方式。所谓“d-mark”,系指对于网络上所发表之著作,著作权人可以自行或通过其人设定“数字创作权”的意思,其权利期间则为0年(指自公开发表时起即进入publicdomain之意)、5年、10年、15年等四种类型。②也就是说,在数字创作权的“d-mark”许可模式中,著作权人对其公开发表的数字作品可以自行设定相应的权利期间,并可以直接通过这样一个市场与用户之间建立数字作品的在线许可。关于林纮一郎教授数字创作权市场,其“d-mark”许可方式在一定程度上区分了数字创作权与数字创作物,但是其法律性质上依然将数字作品权利人与数字作品用户之间的许可认定为著作权许可。

二、现有的软件在线许可市场的批判与借鉴

如前所述,上述三大市场对软件在线许可的性质都无一例外地限定为著作权许可。究其原因,一方面是传统知识产权法学界出于担心软件开发者的权利不能得到有效的保护,因而通过著作权法对软件权利人进行扩大化保护,即不区分软件作品的许可与软件产品的许可,将知识产权许可与信息产品交易混为一谈,最终将知识产权法的范围延伸到信息产品交易的领域;另一方面则是大家在关注知识产权保护的同时却忽视了软件产品交易中一个新兴的权利———信息财产权。信息财产权是指信息所有人对其信息合法享有的支配权,如果我们把这个世界根据不同的存在形式划分成三个社会,那么这三个社会所对应的则是三个不同的绝对权:物质世界中调整物的物权;精神世界调整智力成果的知识产权;虚拟社会中调整虚拟信息的信息财产权。随着信息社会的迅猛发展,信息财产权的概念以及相关的权利内容已经得到越来越多的认同。在此基础上,反观软件在线许可整个过程中涉及的权利,已经远远不是一个著作权可以包容与调整的,因此,信息财产权视野下软件在线许可的市场体系,还值得进一步深入的研究与思考,事实上,上述三大市场也从不同程度上对此做出了尝试:首先,大众市场许可首次提出了软件信息上的“信息权”,当然,遗憾的是其并没有真正准确界定信息权的内涵与外延,将信息权与知识产权混为一谈,在这种理论的影响下,计算机软件在线许可中的最终用户对所购买的软件产品仅仅享有一种受限制的使用权。因此,最终用户对软件产品的使用在范围上受到很大的约束。其次,北川善太郎的复制市场在理论上首次区分了著作权市场与著作物市场,将著作权权利交易市场与著作物许可使用市场截然分开,其已经看到了软件交易中权利转移与产品流通的区别,并且根据这种区别在理论上构建了其相对应的两大市场。但是,北川善太郎的复制市场只是在形式上对软件交易中权利转移与产品流通进行区分,其事实上并没有真正区分著作权市场交易与著作物市场交易的法律性质,因为其认为著作权市场交易与著作物市场交易在性质上是一致的,都是知识产权交易,只不过是知识产权交易的两个不同的阶段。再次,林纮一郎的数字创作权市场最重要的创新即在形式上把“数字创作权”与“数字创作物”加以区分。其提出“对于同一数字创作物,著作权人一旦主张数字创作权后,即不得对此再次主张著作权”。也就是说,根据林纮一郎教授的观点,数字创作权市场奉行知识产权法一贯坚持的权利穷竭原则。现有的国内外著作权立法一般都通过在计算机软件领域否定权利穷竭原则来实现软件著作权人对已经进入流通领域的软件产品的控制。在此背景下,林纮一郎的数字创作权市场仍然坚持“数字创作物”上“数字创作权”权利穷竭原则,事实上已经从理论中将计算机软件著作权许可与计算机软件产品交易区分开来了,在数字创作权市场中,林纮一郎教授已经将“数字创作物”看成是一种特殊类型的信息产品,因此,其认为软件著作权人并不能对已经进入流通市场的产品再次主张著作权。这是“数字创作权”市场对于计算机软件产品在线许可最重要的理论贡献。当然,由于受到各种既有的理论与立法的双重影响,虽然林纮一郎教授事实上并没有完全把包括计算机软件产品在内的“数字创作物”交易认定为信息产品交易,而且其仍然将“数字创作权”市场中的“数字创作物”交易定义为著作权在线许可。但是,这并不影响林纮一郎教授对计算机软件产品在线许可中各个交易主体之间权利义务的准确定位。

三、信息财产权视野下中国软件

在线许可市场体系的构建综上所述,笔者认为中国计算机软件在线许可市场应分为著作权交易市场与著作物交易市场两大部分。其中,计算机软件作品在线许可所对应的交易市场为著作权交易市场,其交易的核心为软件著作权;而计算机软件产品在线许可所对应的交易市场为著作物交易市场,其交易的核心为软件产品的信息财产权。在整个计算机软件在线许可市场中,笔者将常见的计算机软件在线许可概括为计算机软件经营许可、第三方软件开发许可、计算机软件使用许可与计算机软件服务许可四种交易类型。其中,计算机软件经营许可与第三方软件开发许可属于著作权交易市场,其计算机软件使用许可与计算机软件服务许可属于著作物交易市场。

(一)计算机软件经营许可市场

计算机软件经营许可是计算机软件经销许可与计算机软件运营许可的总称,其是指计算机软件开发者通过计算机网络平台与软件经销商、软件运营商之间基于计算机软件作品的使用而达成的一种著作权许可。在计算机软件经营许可中,其交易双方关注的焦点虽然是计算机软件的著作权,但是其交易的目的是为了计算机软件商业价值的开发利用。当计算机软件开发者完成软件开发后,其需要在商业上对自己享有著作权的计算机软件进行推广与营销。在此情形下,软件开发者与软件经营者在主体上就发生了重合,并且在此情形中并不需要有一个关于软件经营的著作权许可,因为那样等于是自己把软件著作权许可给自己。只有当软件经销或软件运营不是由同一个主体即软件开发者完成的时候,才需要在软件开发者与软件经营者之间存在一个著作权许可协议。因此,计算机软件的经营许可是一个真正意义上的知识产权交易。

1.计算机软件经销许可市场

计算机软件经销在性质上其实就是计算机软件产品的销售,或者说计算机软件的经销就是软件经销商根据软件经销许可中的约定条件为计算机软件开发者销售软件产品。软件产品的在线经销与传统有形商品的经销有着显著的不同,在传统有形产品的经销过程中,其产品销售首先需要进行产品的批量生产或制造,因此,传统有形产品的经销商与产品生产商之间只是一种销售行为。当然,在包销的情形下,产品经销商与产品生产商之间本身就是产品交易行为。而在计算机软件经销过程中,其软件产品的在线经销并不需要像传统有形产品一样首先进行生产或制造,也就是说,在计算机软件经销中,并没有软件制造商或者软件生产商这样一个主体,因为软件的生产过程其实只是一个简单的复制过程,当然,这个复制就需要获得相应软件上合法的复制权,因此,计算机软件经销商与计算机软件开发者之间并不是像传统有形商品的经销那样是一种销售行为或产品交易行为,其核心是对计算机软件作品著作权中复制权能的一种许可,由此可见,计算机软件的经销首先是建立在合法获得软件著作权人授权的基础上的,因此,计算机软件经销许可是指软件开发者与软件经销商之间基于软件复制与软件产品销售的一种著作权许可。其中,在计算机软件经销许可中,软件著作权许可的内容一般包括复制权、发行权以及信息网络传播权。

2.计算机软件运营许可市场

计算机软件运营许可是指软件开发者与软件经销商之间基于软件复制与软件运营服务的一种著作权许可。与计算机软件经销一样,计算机软件的运营同样也是建立在软件运营商对软件享有合法复制权的基础上的,因此,软件运营商除了需要具备一个网络运营平台之外,其还需要与计算机软件开发者签订一份关于合法获取软件作品复制权的著作权许可协议,由此其才能取得对计算机软件的合法运营权,其中,在计算机软件运营许可中,软件著作权许可的内容一般包括复制权、发行权以及信息网络传播权。

(二)第三方软件开发许可市场

第三方软件开发是指计算机软件开发者完成软件开发后,软件开发者以外的其他组织或个人针对主程序软件在应用功能上的不足或者为个性化设计的需要而进行的更改或影响主程序软件应用功能的行为。第三方软件中所谓的“三方”,第一方主要是指主程序软件开发商、运营商等软件权利人,其在实践中也被称为“官方”;第二方主要是指软件最终用户;如果在此之外的某个组织或个人采取特定的技术手段对主程序软件的具体功能进行了修改,并将这种特定的技术手段以某种软件的形式固定下来提供给其他用户下载并使用,那么这个软件的“修改者”就是我们所说的第三方,其提供的软件就是第三方软件。第三方软件开发许可是指主程序软件著作权人与第三方软件开发者之间基于对主程序软件的修改或完善而达成的著作权许可协议。[4]第三方软件开发许可是第三方软件开发者影响或改变主程序软件具体应用功能的合法依据,其是主程序软件著作权人在法律上授予他人复制并修改其软件作品的权利,同时在一定程度上许可他人公开发行其开发的第三方软件产品。在第三方软件开发过程中,第三方软件开发者一般需要下载、安装、运行并在一定程度上修改与完善相应的主程序软件,另外,在第三方软件开发完成后,其第三方软件开发者还需要将其完成的第三方软件上传至网络并通过发售或免费使用的方式提供给众多的软件最终用户使用。因此,第三方软件开发许可中一般涉及主程序软件著作权中的修改权、复制权、发行权与信息网络传播权。目前,第三方软件开发许可的模式较为固定,其一般是主程序软件开发者自己开放其计算机软件的第三方开发平台,即通过计算机网络对外公布其软件应用程序调用接口,同时在后面附有一份第三方软件开发在线许可协议,主程序软件开发者在许可协议中事先约定双方的权利义务,第三方软件开发者在获得主程序软件应用程序调用接口时需要浏览协议并提交申请,其提交的申请经过主程序软件开发者评估并获得通过之后,第三方软件开发者便可获得主程序软件的第三方开发授权。

(三)计算机软件使用许可市场

计算机软件使用许可又称为计算机软件产品在线销售,其是指计算机软件经销商通过计算机网络平台向消费者或者用户发售计算机软件产品的电子商务模式。计算机软件使用许可中转移的是计算机软件产品的信息财产权。在计算机软件使用许可中,软件产品的交付是以电子的方式完成,其整个交易过程已经脱离了传统信息交易中所依附的物质载体,用户可以直接通过信息网络下载软件产品并安装至指定的计算机信息系统,这是计算机软件产品在线许可与有形产品交易最显著的区别。计算机软件使用许可事实上针对的是计算机软件产品的使用许可,或者说是计算机软件产品的在线销售。计算机软件使用许可是日常生活中人们最熟悉的软件产品交易方式。一般而言,计算机软件使用许可根据交易客体的不同可以分为通用软件产品销售与定制软件产品销售两种情形。[5]另外,计算机软件在线使用许可根据发售主体的不同还可以分为两种情形:一种是计算机软件开发者自行负责软件产品经销的情形,在此情形中,软件开发者与软件经销者在主体身份上合二为一,故而形成计算机软件开发者直接向消费者或者用户发售计算机软件的情形;另一种是计算机软件开发者开发完毕后将软件交给软件经销商来发售的情形。在这两种情形中,前者的法律关系存在于计算机软件开发者与用户之间,后者的法律关系往往同时还涉及计算机软件网络经销商这个不同主体。尤其是随着目前信息产业分工逐步细化的大背景下,计算机软件的交易市场将进一步完善,而软件开发者通过软件经销商来包销发售计算机软件产品的情形将会越来越普及。

(四)计算机软件服务许可市场

软件开发与定制篇(4)

中图分类号 F301

文献标识码 A

文章编号 (2014)13-0020-01

一、软件过程管理的概述

(一)软件过程的概念

软件过程是指软件生命周期中一系列相关活动按照确定的次序演绎变化的过程。依据GB8566的相关规定,软件过程一般包括获取、供应、管理、开发、运作、维护、支持和裁剪八个部分。由于具体的软件系统是依据实际需要来配置相关过程的,因此它不一定会包含八个过程及其活动。软件过程的质量往往决定了软件产品的质量,科学、合理与高效的软件过程能够提升软件开发团队的合作精神,提高软件的可重复使用性与可维护性,增强团队的软件过程技术与管理技能。

(二)软件过程管理的概念

软件过程管理基于系统工程的基本思想,采取可定义与可度量的工程实践手段对软件全过程进行管理与控制,是对软件的开发与维护实行的标准化、规范化与透明化的全过程管理。它关注的是软件组织进行软件开发时对需求、计划、合同、资源配置、项目跟踪与质量等采取的有效管理方式,不断提升软件生产的效率和软件产品的质量。

(三)软件过程管理的内容

软件过程管理依据PDCA方法包括过程的定义、执行、度量与控制、改进四个流程。其中,软件过程的定义是过程管理的基本任务,指依据软件的实际情况具体的规定过程的输入、输出、限制条件和通过准则等内容;软件过程的执行是过程管理的重要方面,指依据相关模型和规划开展的一些列目标明确的活动;软件过程的度量与控制是过程管理的重点环节,指运用各种技术方法和度量数据分析过程性能,检测实际性能与可接受性能间的误差,分析并采取措施消除引起过程异常的关键因素,保障各项过程性能处于正常的范围之内;软件过程的改进是过程管理的关键环节,指通过分析现有过程的特点和影响因素,论证并实施改变过程的手段以使其更好地满足软件组织的发展需要与战略目标。

(四)软件过程管理的模型

1.软件生产能力成熟度模型

软件生产能力成熟度模型,简称CMM,是SEI提出的适用于软件的组织成熟度测评,它关注如何管理软件的开发过程以及如何提高和合理评估软件工程性能,可具体的划分为初始级、已管理级、已定义级、量化管理级和优化管理级五个级别。

2.ISO9000质量管理体系

国际标准化组织开发的ISO9000标准质量管理体系之一是ISO9001质量体系,该体系从二十个方面具体规定了质量体系的构成要素,是有效保障软件设计、开发、生产、安装与维护质量的参考文件。

3.ISO/IEC12207标准

ISO/IEC12207中“信息技术――软件生存周期过程标准”全面的描述了MIS生存周期的过程,具体可划分为主要过程、支持过程和组织过程三类,其中主要过程是软件生命周期过程的原动力。

4.个体软件过程

个体软件过程简称为PSP,是一种包含软件开发表格、指南和规程来进行控制、管理和改善个人工作方式的自我改进过程,它注重对企业相关软件过程的微观优化。

5.群体软件过程

群体软件过程简称为TSP,它通过有机结合CMM实施的管理与PSP开发人员的技巧进行成本的控制和保证软件的高质量。TSP阐述了如何培养综合素养高和管理能力强的工程小组、如何有效指导工程小组成员以及如何创造良好的工程环境等。

6.软件能力成熟度模型集成模型

软件能力成熟度模型集成模型,简称CMMI,是一套综合多学科的、可扩充的、适用于多种组织成熟度测评的产品集合,它是当前普遍采用的软件过程管理方法。它提供了一种渐进式的软件过程改进手段,为软件开发单位提供了更为成熟和更加规范化的过程框架。

二、新形势下有效实施软件过程管理的对策

当前普遍采用CMMI模型的软件过程管理方法是以过程域(PA)为主体,它不仅阐述了PA要实现的目标及实现该目标进行的实践过程,还分析了实践的效果。然而,企业不能照抄照搬CMMI模型,而应将其转换成与企业目标相匹配的体系。

(一)明确组织的发展目标,构建实施CMMI的组织机构

一方面,知识经济时代,企业要有机融合市场和技术实现以市场强化技术和以技术占领市场的持续发展之路,要建立可量化的业务目标并分阶段进行具体的操作,进而具体规划实施CMMI以有效管理组织内部软件开发过程。另一方面,企业要建立软件开发质量保证机构以强化对软件开发过程的管理与控制,要明确软件开发部门及相关人员的职责、权限与交流方式以提高软件过程管理的有效性。

(二)明确软件项目的开发过程和软件过程管理体系

一般地,软件项目的开发过程包括以下部分:首先,软件开发中心的项目经理依据软件需求计划起草软件开发计划书以明确开发团队的人员及其职责与培训计划、风险的识别与规避方法等内容;其次,邀请人资部、过程改进组与培训组进行项目开发仪式的启动并确定正式版的计划书;再次,项目的质量监察员依据开发软件计划书对项目的进度与质量进行评审,对存在的问题要及时责令项目经理进行整改;最后,项目经理在项目最终完成时要对项目开发过程中遇到的问题和采取的解决方案进行总结分析和经验分享。此外,企业要依据改进的CMMI软件过程标准制定科学、合理的软件开发过程管理体系以进一步规范各项目组执行的开发方法与流程。

(三)进行项目试点以保障体系的适用性,持续推进过程改进工作

企业通过选取覆盖一部分公司主营业务的项目作为试点项目,将制定好的过程文档和模板在试点项目中进行试运行,对试运行中不符合要求的地方进行进一步改进,对改进后的规范性过程管理体系进行认证和推广。

三、结语

软件过程管理是有效提升软件生产率与保障软件质量的重要手段,企业要依据自身的发展愿景与组织目标,制定科学、适宜、有效地软件过程管理体系,实现软件开发的高效率与高质量。

参考文献:

软件开发与定制篇(5)

2研究目的和意义

质量,通常指产品的质量,对软件行业来说,软件质量会导致整个软件的成败,一个小小的质量问题可能会导致非常致命的结果。做好软件的质量管理不但能促进项目决策的合理化、科学化,还能在项目实施过程中实现高效化、准确化,保障项目目标的最终实现,切实提高项目成功率。目前,国际上逐渐开始重视软件工程的项目管理,一系列理论和方法的出台提高了软件开发的效率和客户的满意度,为软件开发企业带来了非常客观的经济效益和社会效益。为此,以国际上的先进经验为参考,制定适合我国的软件开发的项目管理是十分必要的。分析水利信息化项目中软件开发质量的影响因素,通过对企业组织结构的优化和软件项目过程的改进,获得项目实施质量的提升,从而减少软件开发中产生的问题对开发部门造成的损失,降低开发成本,提升整体开发水平。

3影响软件开发质量的因素

就软件质量而言,影响软件项目质量包括以下两大方面因素。

3.1人的因素

软件项目的管理要以用户的想法为根本目标。产品生产就是为了满足用户的需求。一个能够满足用户需求的软件,就是一个优质的软件。客户的需求会随着开发的进行而不断调整。只有在开发的各个阶段都能满足用户的需要,达到用户的要求,这个软件的质量才能得到保证,而在软件开发过程中树立质量第一的思想就是体现在更好地为用户服务的行动上。

3.2开发流程

软件开发流程是在软件开发模式框架的指导下实施软件开发的全过程描述和定义,包括软件开发生命周期各阶段的定义、开始前提条件、参与者描述、产出物描述、完成条件等。一个合理定义的软件流程能够将软件开发模型的优点充分发挥出来,同时减少软件开发过程中产生的负面影响。

4应用分析

4.1项目开发质量目标

首先,项目总负责人向项目组成员指出水文测报软件在整体水文监测项目中的重要性,并强调质量是最优先考虑的。其次,各成员从自己的角度提出几个目标,如质量经理的目标是保证合格率、开发人员的目标是保证测试通过率等。再次,团队在一起讨论制定的目标的可行性,是否能够实现以及需要的条件。其中,每百段程序BUG数按照模块统计,本次制定的目标为每百段程序BUG数小于10处;单元测试分模块进行,本次目标为每个模块的单元测试通过率大于90%;集成测试、系统测试、验收测试为模块的集合体测试,按照百分制原则分别制定质量目标为得分80分以上及75分以上;本次软件开发项目计划工期45d,本次制定目标为在计划工期内完工;本项目概算总投资100万元,取利润10%,故目标经费使用为90万元;客户满意度按照优良中差四级评定,本次质量目标为取得客户满意度优。

4.2软件开发质量管理影响关键因素分析

4.2.1质量计划对软件开发项目质量的影响

软件的开发一般分为4个过程,即定义需求过程、预开发过程、开发过程和维护过程,通过资金使用的情况反映质量计划的影响。参考以往软件编制过程中4个阶段开发的使用情况和对开发结果影响力进行统计分析,影响力按照百分制计算,由参与软件开发的各方进行评分取平均数,100分为影响最大,0分为最小。软件开发阶段,资金在早期使用的效率最高,可以对项目结果起到比较大的影响,而软件开发计划的编制能够在软件开发的定义阶段即对软件开发的目标、组织、资金安排进行较详细的定义和计划,能够在早期按照合适的比例安排软件开发的资金,从而对结果产生比较大的影响。

4.2.2质量控制对软件开发项目质量的影响

软件开发中,发生编制错误的次数直接影响软件开发的质量。影响软件开发项目质量的因素很多,这里选取质量控制中的5个关键因素即控制点的选取、组织领导的责任、测试的规范性、环境因素以及质量计划。在此基础上,调查统计由于关键因素的原因导致软件开发发生编制错误的次数,并绘制直方图。,质量控制能够对软件开发质量产生直接的影响,集中体现在编制发生错误次数方面。

4.2.3质量保证对软件开发项目质量的影响

软件开发质量保证主要体现在软件开发的模型选择和应用上。原始的软件开发使用的是传统的瀑布模型,将软件开发项目作为一个整体进行设计,方式如图2所示。采用质量保证措施后开发模型转化为图3的形式,由图3可以看出,使用质量保证措施将每个开发阶段再次细化,可以对各个环节的变化情况加深认识,做到每个开发阶段出现的问题能够在本阶段解决,不拖入下一阶段,这对软件开发质量起到了保证作用。

4.3保证软件开发质量的措施

根据软件开发中曾经发生过的问题和预计会发生的问题,结合项目质量管理理论,使用质量管理工具,在质量计划、质量控制、质量保证3个方面对本次软件开发进行质量管理。

4.3.1软件开发项目的质量计划

(1)制作因果分析图。在进行质量计划时,首先明确质量计划的目标,即开发质量合格、便于使用、用户满意的软件,根据水文自动测报预警软件开发项目的产品说明和水务信息化建设相关规范要求,运用头脑风暴法对软件开发中可能会导致质量不合格的情况进行整理并绘制因果分析。(3)成果输出。①将总结形成的计划管理成果汇总,形成各个阶段的人员、组织、资金、资源、权限等管理计划,指导质量管理的进行;②通过一系列质量计划的管理,最终以质量计划检查表的形式输出质量计划成果。(2)编制软件开发工作流程图。本次项目开发时,分别从质量计划、质量控制、质量保证3个方面进行质量管理,在软件的可靠性、硬件的可靠性以及软件硬件结合后的可靠性方面都做了大量的工作。一方面,在项目前期阶段,通过对规划计划的质量管理,在项目初期树立正确的开发方向,从而在项目前期工作进行质量管理。另一方面,在软件的开发阶段,通过对人员和开发流程等方面的管理,实现对项目开发阶段的质量管理。最后,在项目的实施阶段中,执行项目计划,严格进行项目测试,通过演练、试运行等方式对整体项目进行质量管理。3个阶段中,每个阶段的质量管理都非常重要。软件开发质量管理流程。

4.3.2软件开发项目的质量控制

(1)质量控制点设置与管理。质量控制点是实施质量控制的重要组成部分,软件开发的质量控制点是项目质量控制的重点对象。质量控制点应选择那些技术要求高、开发难度大、对工程质量影响大或是发生质量问题时危害大的对象进行设置。依照质量控制点的要求和特点,选择了本次软件开发中相应的质量控制点。设定了质量控制点,质量控制的目标和工作重点就更加明确。在软件开发中,首先要做好项目质量控制点的事前质量预控工作,包括明确质量控制的目标与控制参数、编制开发指导书和质量控制措施、确定质量检查方法及抽样的数量和方法、明确检查结果的判断标准及质量记录与信息反馈要求等。其次,还要做好软件开发质量控制点的动态设置,随着软件开发条件的变化,随时或定期进行控制点的调整和更新。应用动态控制原理,落实专人负责跟踪和记录控制点质量控制的状态和效果,并及时向项目负责人反馈质量控制信息,保持质量控制点的受控状态。

4.3.3软件开发项目的质量保证

运用PDCA循环法进行软件开发的质量保证,在预开发阶段、开发阶段、维护阶段3个阶段进行。预开发阶段指开发团队针对开发项目招标情况对软件开发项目做出的提前处理,工作体现在下列PDCA循环中:计划,提出软件开发的整体流程;实施,开发自己的技术提案,阐明将使用的技术及所拥有的技术工艺;检查,提出检查软件质量、纠正产品中缺陷的方法;总结,根据检查结果,提出改善质量控制的计划。开发阶段是指从软件产品开发开始,到移交产品且客户对软件性能予以肯定为止。这一阶段的PDCA循环活动有:计划,开发者根据需求和风险,提出详细的开发过程、要求使用的资源以及要得到的产品;实施,由开发组织执行开发计划;检查,开发组织和客户共同检查计划与预期得到的结果的一致性;总结,开发组织根据检查结果,审查并重新认识风险,作为下一个循环的基础。维护阶段是修复软件缺陷、提高软件性能的阶段。这一阶段的PDCA循环活动有:计划,制定处理缺陷的计划;实施,处理缺陷或根据需求变化提高软件性能;检查,判断开发维护目标是否已经达到;总结,根据检查结果审查并总结。

4.4成果数据分析

通过对本次水文自动测报预警软件开发项目的质量管理,大大提升了软件开发的质量,结合软件开发前期中制定的质量目标,与以往软件开发项目进行比对,分析进行软件开发质量管理对结果产生的影响。

4.4.1百段程序BUG数分析

根据质量控制点确定的各个模块统计各模块软件开发中每百段程序的BUG数量,结合以往类似软件开发中的统计数据进行比对。

4.4.2客户满意度比对

各模块软件开发完成后,分别对客户进行满意度调查,按照优良中差进行评价,经过与类似软件开发客户满意度比对。以往软件开发项目没有进行过模块化划分,整体项目一起进行开发,开发完成后统一进行评价,无法对内部存在的不足进行查找和梳理。本次划分了模块,根据各模块的用户满意度调查,可以在以后的软件开发中有针对性地进行改进,保证项目质量的良性发展。

软件开发与定制篇(6)

中图分类号:TP311 文献标识码:A随着现代计算机科学技术的迅猛发展,计算机软件在各个领域都得到了广泛应用,计算机软件已成为人们生活中乃至工作中不可或缺的部分,软件的失效,会导致整个应用系统瘫痪,数据丢失甚至引起更严重后果。软件的研制开发过程决定了软件质量,因此,对软件研制开发过程的质量进行监督,对保证软件质量起着至关重要的作用。软件是一种虚拟信息产品,给软件质量管理和控制带来了难度。软件研制开发过程中,影响软件的质量最主要的因素是软件技术状态管理和控制,而对此最好手段就是对软件进行配置管理。所以,控制软件配置管理,从而做好质量监督控制有其积极意义。

一、软件配置管理的定义

软件配置管理(SCM)是指在开发过程中各阶段管理计算机程序演变的过程,它作为软件工程的关键元素,已经成为软件开发和维护的重要组成部分。通过在配置管理过程中的变更所引起的质量变化,即对软件变更的标识、组织和控制,为后面的变更提供参考数据,保证整个生命周期过程产生所有配置项的完整性、一致性、可追溯性。

二、软件配置管理计划监督

在软件研制开发过程中,根据系统要求分析和设计软件配置管理计划。计划内容包括:配置管理机构、任务和主要职责,软件配置管理活动和配置管理流程等。软件配置管理的主要活动内容包括标识、版本控制、变更控制、配置审计和配置报告。正确标识配置项对整个管理活动起着关键作用,对软件开发过程中所有项目赋予标识符,便于进行控制和管理。配置审计确保了每个软件配置项的正确性、一致性、完备性、有效性和可追踪性,定期备份确保安全性和可用性。配置报告提供了软件开发过程历史记录,使整个软件研发过程中所有变更具有可追踪性,为质量控制提供了依据。

三、软件配置管理组织机构监督

3.1 软件配置管理组织构成要求

建立专门负责软件配置管理组织,负责软件研制过程中各阶段,各系统及其子系统的配置管理工作。明确与配置管理工作相关的所有角色,包括相应活动,在开发过程中,一项任务在同一时刻只能由一个角色执行。软件受控库和产品库由软件配置管理组织负责,软件开发库由各软件开发项目组管理。要求实施配置管理系统相关人员都经过相关培训,包括管理员培训、开发人员培训和管理流程培训。确保每个成员具有良好的专业知识和责任心,为软件配置管理质量控制提供保证。

3.2 软件配置管理组织职责

软件研制过程中,任务复杂繁琐,软件管理组织需要明确职责。主要包括:整个软件生存周期软件配置管理的活动规划;明确与软件配置管理相关的标准或规定并严格执行;选用合适的软件配置管理工具,并做好软件配置管理任务内容的规划和记录报告;收集、维护保存然建配置管理文档并妥善保管。

四、软件配置管理活动监督

4.1 定义基线

基线标志着软件开发过程一个阶段的结束,任一软件配置项形成文档后,审议通过即成为基线。基线分为三种:完成系统分析设计阶段的功能基线;完成需求分析阶段的分配基线;完成配置项测试的产品基线。每个基线对应受控配置管理项,相关评审和验收标准以及建立基线时用户和开发者参与情况。基线使各阶段工作内容明确,在连续的工作线上进行断点,便于检验阶段成果。

4.2 标识软件配置管理项

软件配置管理项即软件配置管理对象,是软件开发过程中所有工作产品,包括代码以及数据结构、文档、报告。软件配置管理项标识包括:文档标识、代码标识、运行文件标识。配置项的文档内容多而繁杂,需要建立一个安全可靠的知识库,用于保存开发过程中的文件和代码。根据实际需要,分门别类归入库中。保证配置管理工具检索便利,标识规则便于记忆,并保持组织一级的标识规则以执行。正确标识软件配置项对整个管理活动非常重要,是具有唯一性的标识符,便于对其控制管理。

4.3 定义软件配置库

基线技术将项目实施配置管理存储库分为:开发库、受控库、产品库。

(1)入库控制:受控软件配置管理项存入受控库。满足要求交付用户后的软件配置管理项由受控库转入产品库。各基线阶段产品经审计确认合格后入库。

(2)更改控制:整个软件生命周期中,已进入受控库或者产品库的软件配置管理项有更改情况时,提供软件问题报告文件并提交更改申请。根据软件级别和规模决定是否建立评审小组,评审小组包括软件配置项管理人员,总设计人员,软件质量保证人员。评审小组收到问题报告和更改申请后,分析是否有必要更改,可行性以及对比其他更改方案。结合软件配置管理项功能和性能分析,充分考虑合理性和可行性。经审批后更改申请送回软件开发组,根据审批意见由开发组实施更改。更改后的软件配置管理项连同更改说明,一并提交管理员重新入库。为确保软件配置管理项的一致性,更改的软件实体相关程序或文档同时完成。

4.4 软件配置管理记录与报告

提供开发过程的历史记录,内容包括配置管理项的现行状态以及入库变更情况等。在配置状态记录报告中,通常包括信息有规格说明和设计说明状态,更改申请和更改批准报告状态,产品版本或更改版本状态,安装、更新或交付报告,用户产品提供状态,以及有关项目开发报告等。配置人员应定期或在需要时提置状态报告。记录报告使软件配置管理一旦出现可追溯源头。

4.5 配置审计

包括物理和功能上的审计。要点有:应精心维护软件配置管理项的状态,验证其正确性、一致性、完备性、有效性、可追踪性;应对软件进行功能配置审计,确保软件的功能与软件需求规格的一致性;应对软件进行物理配置审计,以检查程序与文档的一致性以及与标准规范的一致性。定期备份软件配置。

结语

软件配置管理是一套规范、高效的软件开发管理方法,同时也是提高软件质量的重要手段。软件配置管理帮助开发团队对软件开发过程进行有效的变更控制,保障了软件开发过程的顺利完成,高效地开发高质量的软件,从而达到控制软件质量、提高软件水平的目的。

参考文献

[1]王耀志.强化计算机文档质量监督的探讨[J].机械管理开发,2010(5):2144-2145.

[2]于宏霞,陈凯,白英彩,等.基线技术在软件配置管理过程中的应用[J].计算机应用与软件,2005,12(37)1212~1214.

软件开发与定制篇(7)

中图分类号:TP311 文献标识码:A 文章编号:1672-3791(2012)04(c)-0169-01

随着国内市场的开放,我国的电信行业不仅要面对国内同类型企业的竞争,而且还要接受国外电信企业的挑战,甚至是与美国电话电报公司(AT&T)以及德国电信(Deutsche Telekom)等国际领军型的电信服务公司同台竞技。在这样的背景下,我国的电信业必须改变传统的经营理念与经营模式,快速建立起一套“以市场为导向、以客户为中心、以效益为目标”的新型企业模式[1]。而电信业要实现这一战略转型就必须具有高质量的信息系统,其中能够帮助企业提高运营效率的软件更是不可或缺。电信企业一般将软件开发的任务外包给专业的软件企业,因此,电信业的软件开发是一个复杂的项目,有效的项目质量是保证所开发的软件具有较高适用性以帮助企业达成战略目标的关键。

1 软件质量与软件项目质量

电信企业要想应对市场的挑战就必须转变经营模型,而转变经营模型则必须具有帮助企业提高经营绩效的软件,这一点已经成为许多电信企业的共识,很多电信企业的管理者也都意识到了软件质量的重要性,因此投入大量的人、财、物以开发高效的软件系统。然而值得注意的是,企业开发软件(电信企业一般将软件开发的任务外包给专业的软件企业)的过程是一个复杂的项目,该项目的质量并不等同于项目所开发软件的质量。软件质量是指软件产品能够满足客户需求的所有特征和性能的总和,而软件项目质量则是软件开发过程中所涉及的各项工作的质量,即对所开发软件质量的保证程度。电信行业的基础设施建设需要耗费很大的成本,因此对软件质量的过高要求必然会增加企业的经营负担。从这个意义上讲,对于电信业而言,电信企业软件项目质量管理的目的就在于通过软件开发过程的管理确保所开发软件的适用性,实现以较少的成本投入研发适合企业经营的软件产品。

2 电信业软件项目质量管理

软件项目质量管理的涵义是确定软件项目的质量方针、目标和职责,并通过质量计划、质量保证与质量控制各项工作确保软件开发项目中各项工作的质量,进而保证所交付的产品满足客户的需求。

2.1 质量计划

对于软件项目质量管理而言,必须先制定出一套较为完善的质量计划,才能够以较大的概率完成软件项目质量管理的目标。制定软件项目质量所依据的应该是企业对与项目质量所制定的的战略目标。我国企业采取的等级结构一般都是典型的金字塔型结构,管理者特别是高层管理者的理念与意识对于企业的各项工作能够产生非常大的影响。从这个意义上讲,质量计划应该是电信企业与软件企业高管层的责任,而软件项目的质量就应该是由企业高管层所规定的关于项目质量的战略规划以及工作的方向。

软件项目质量计划的目的是确保软件项目的质量,因此就涉及到了衡量软件质量的问题,即判断质量计划中的项目质量是否已经达到较高的标准。对于这一问题,软件开发企业通常所采用的做法通常是与行业内项目质量的均值作比较,以此判断本项目的质量能否达到行业内的平均标准。

2.2 质量保证

质量保证的一般含义是为了证明项目能够达到有质量的标准而在质量体系中所进行的工作。因此,质量保证工作必须确保项目涵盖了能够达到质量要求的所有工作。若质量保证工作确定项目已经满足要求,则可以继续进行下一个环节的工作,即质量控制,反之,则要先完善项目质量计划工作。

对于软件项目而言,质量保证的具体内容包括几个方面:(1)具有清晰的软件需求分析。需求分析是软件达到客户要求的基本评价标准,也是软件项目质量评价的基本依据,因此,必须确保软件项目具有清晰、可行的需求分析。(2)具有科学的软件项目质量体系与质量标准。需求分析是判断软件质量的标准,而根据前文所述,软件质量是否达标只是评价软件项目质量的基本标准。因此,但仍然有必要从多个维度建立、健全软件项目的质量体系以及质量标准。特别是对于电信企业而言,所面对的市场具有很大的不确定性,有鉴于此,电信企业软件的项目质量更需要建立、健全质量评价体系,制定完善的评价标准。(3)具有完成项目所必需的各种资源。电信企业的基础设施建设需要耗费大量的成本,电信企业的软件项目也同样需要大量的人、财、物等资源。因此,在质量保证工作当中需要确定企业具有达到项目质量标准所必需的各种资源,以保证软件项目能够达到其预定的标准。

2.3 质量控制

质量控制工作是指评价项目成果是否符合相关的质量标准,并且当项目成果未达到标准时,对其原因进行分析并找到解决的方法。当项目的成果达到质量标准时,相关产品就可以交付使用了,反之,则需要对质量计划与质量保证两项工作进行改进,以保证项目成果能够符合相关规定。

具体到软件项目,质量控制包括两项具体的工作:(1)判断所开发的软件是否达到客户所指定的标准,若已经达到,则可以继续开发,反之,则要对产品进行改进,保证产品能够满足客户需要。(2)判断项目的成本与进度执行是否达到质量计划中的标准,若已经达到,则项目可以继续进行;反之,就要判断,是质量计划制定得过高,抑或是具体的执行工作还有待改进以及怎样改进。

上述这两项工作实际上都是反馈控制(即事中控制),即在软件开发项目的执行过程当中对开发工作的绩效进行判断。电信行业的市场特征使得电信行业的软件项目具有较大的不确定性,采用事前控制的策略是较为困难的,而事后控制策略对于当前正在进行的项目并没有太大的实际价值,若当前的软件项目在执行过程中已经产生成本浪费,使用事后控制策略不能及时发现问题进而采取措施。因此,在质量控制工作当中应该采用反馈控制策略对各项工作进行合理的规划。

3 结语

电信业软件项目质量管理对于电信企业以及与之合作的软件企业的发展都有很大的意义,相关企业的管理者应该给予充分的重视。在具体的项目质量管理工作中,相关企业的领导者要根据企业对于项目质量的战略目标制定合理的质量计划,通过质量保证工作确定项目涵盖了能够帮助达成质量计划的所有工作,并通过质量控制工作对产品以及项目的成本与进度进行反馈控制,以此提升项目的质量,即所开发软件满足客户需求的基础上,做到节约项目成本、加快项目进度。

软件开发与定制篇(8)

广东虚拟型软件园主要从事软件产业指导、技术指导、学术与技术交流、信息服务和产品销售。实体型软件园主要从事软件产品和软件企业的孵化。

建立广东软件库和广东软件信息库,向国内软件企业提供咨询和服务。经认证的软件企业、工程技术中心可进入虚拟型软件园,享受实体型软件园内同样的优惠政策。

无论实体型软件园区,还是虚拟型软件园区,其建设都必须坚持市场配置资源的原则,以市场规范进行科学管理。

实体型软件园建设必须在有龙头软件企业和软件企业群的基础上进行。

各软件园区在规划建设的同时,要加紧制定切实可行的园区管理制度,实现规范化、标准化运作。各软件园区要及时制定入园企业认定办法。

(二)培育龙头企业,形成规模优势

1.择优扶持若干大型软件企业,促使其迅速发展壮大,形成规模效益

鼓励资源的优化组合,培育和认定一批大型软件企业,促进强强联合,培育软件品牌,省有关计划项目给予重点扶持。

2.促进软件企业资产重组、资本经营,为股票上市创造条件

对软件企业间的并购重组,扩大规模,实行资本经营的,给予鼓励和扶植。

根据软件企业普遍净资产比例较低的特点,适当放宽软件企业上市净资产规模的限制。充分利用"买壳上市、借壳上市"政策,组织证券商积极向具备条件的软件企业提供上市公司壳资源;为软件企业股票上市开辟多种途径。

(三)加强技术创新,抢占产业制高点

1.重视技术研究,强化产业基础

依托大型软件企业,联合科研机构和高等院校,组建"广东省软件工程技术研究开发中心",集中力量专门研究现代软件开发技术和软件核心技术。有计划地推广现代软件开发技术,从整体上提高广东省的软件开发和技术水平。

2.扩大合作与交流,提高产业水平

与国内外软件企业合作开发项目,实现优势互补,利益共享。鼓励软件企业在国内外设立研究开发机构和分支机构。提供必要的条件,欢迎和吸引软件专业水平领先的国内外著名机构在广东设立研究开发分支机构。积极加入软件技术/产品/市场国际组织,及时掌握国际动态。积极组织软件技术/产品/市场/产权国际会议,加强国际学术交流。

3.加强人才培养,保障产业发展

鼓励省内高等学校、科研机构、企业与国内外知名大学联合招收软件专业硕士生、博士生,加强软件高层次人才培养。集中*地区高校的力量,政府推动,企业参与,完善在职人员计算机应用与开发继续教育和培训。

4.广开渠道,引进人才

制定优惠政策吸引外省软件人才来粤,组织力量招聘海外优秀软件人才,并充分发挥老专家的作用。

(四)拓展软件市场,扩大市场占有率

1.建立软件孵化机制,推动软件技术成果商品化

在各软件园采取公平竞争的原则,创建孵化(产品孵化/企业孵化)中心,促进具有市场潜力的软件技术成果商品化并以该产品为核心构建新的软件企业,技术成果入股比例可达35%。孵化中心的资金来源主要为风险投资基金和入股资金。

2.软硬结合发展数字化电子设备专用软件

软件和集成电路是数字化技术的两大支撑,软件产业不仅仅是以电脑为中心的产业,软硬结合是促进我省电子信息工业数字化的关键。

3.发展家庭娱乐教学软件

发展教育、娱乐、家政软件是促进电脑进入家庭,提高全民素质的重要措施,是软件产业的一项重要内容,省将在软件出版、产权保护等方面予以扶持。

4.加强国民经济和全社会信息化进程,开拓软件市场,扩大软件需求

以推动信息化和工业化相结合,促进产业智能化为重点,抓好CAD、CIMS应用工程;利用软件技术改造传统产业,运用数控技术、CAD/CAM、柔性制造技术等提高制造业的劳动生产率。

大力发展计算机信息服务,以项目为重点,协调部门利益,实现信息共享。

5.实行政府采购政策,带动市场扩大

(1)政府部门购买的一般软件产品和软件工程均采取招标方式。

(2)鼓励软件企业对国家重大软件项目的投标,政府向优秀的软件企业提供一定资助。

6.开拓国际市场,积极发展软件加工业

采用国际软件企业管理规范与模式,加强国际合作,鼓励和扶持出口软件加工业,积极开拓国际市场。

(五)完善运行机制,保障健康发展

1.建立质量监督机制

?D?D推动ISO9000和SEI-CMM质量认证的实施。对通过ISO9000或SEI-CMM质量认证的软件企业,优先认定为广东省高新技术企业并享受有关软件产业和高新技术企业的优惠政策。

?D?D推行与国际接轨的"软件开发规范",形成科学的软件开发体系,使软件开发规范化、标准化、工程化。

?D?D利用市场机制,加强软件产品与软件工程监理测评:

(1)对软件工程建设的投标评估、方案设计、工程报价、建设过程、工程验收、相关技术与服务实行公平、公正、公开的监督,以保证软件工程严格按照中标合同进行,工程质量达到既定的标准。

(2)使用先进的、标准的检测设备和手段,对软件产品进行检测和评估,根据评测结果给予相应的质量等级认定。

2.完善知识产权保护制度,保护软件市场

(1)严厉打击软件盗版,保护正版软件市场。建立盗版软件鉴定机构,制定盗版软件鉴定标准。

(2)引导市场适当下调正版软件价格:要提倡软件产品合理的利润率水平,鼓励正版软件薄利多销的经营方式。加强软件的版权登记。

软件开发与定制篇(9)

【中图分类号】G40-057 【文献标识码】A 【论文编号】1009―8097(2009)07―0049―03

当前国内的论著和教材中提出的教学软件设计与开发模式大体可以归为两类。一类是对教学系统设计模式修改而来的,如对ADDE模式的修改;另一类是在软件工程的线性开发模型中插入教学设计环节的,例如“项目定义教学设计系统设计脚本编写素材准备软件编辑试用评价产品出版”。这两类模式都忽略了教学设计与软件工程的内在联系,不能很好地指导教学软件开发。

教学软件既是一种教学材料,又是一类应用软件。作为教学材料,属于教学系统设计的对象,作为应用软件,是软件工程的产品。 因此教学软件开发过程中有两条并行交叉的过程。本文在分析开发过程的基础上,提出两者结合的开发模式。

一 教学软件开发过程分析

1 教学材料的系统设计

在教学系统设计中,教学材料的开发是放在整个系统中考虑的,是一系列的相关分析和决策的结果。

教学系统设计有多种模式。图1所示的是美国学者迪克(Walter Dick)和凯里(Lou Carey,James O. Carey)提出的模式,这个模式有广泛的应用。

对于整个设计过程,可以分为两个阶段,即分析阶段和决策阶段。分析阶段的结果是编写出绩效目标。以绩效目标为依据,设计者开始做出的决策,形成如下的设计文件:

评价学习的试题和量表;

教学内容和活动的顺序与组织方案;

教学材料和教师手册的初稿;

对教学和教学材料的形成性评价方案;

对教学和教学材料的总结性评价方案。

2 教学软件产品的开发

教学软件产品的开发要遵循软件工程的规律。软件工程是“采用工程化的原理与方法对软件进行计划、开发和维护。” 目的是提高软件开发的效率和可靠性。软件开发的基本模型如图2。

这样的线性过程不适合于教学软件开发。首先这种模型是以编写程序代码为中心的,而教学软件除了程序代码,还有大量的媒体元素,如图像、动画、音频、视频等。这些元素的制作是与程序编写并行或交叉进行的,该模型反映不出媒体制作的工作过程。其次是在教学软件设计的初期,由于教学本身的复杂性,设计者不可能完全确定设计的细节,不可能在分析阶段解决所有的分析问题,经常需要在开发过程中修改他们的设计,该模型没有考虑到开发过程中的不确定性。

在对软件开发模型改进的过程中,人们提出了快速原形法、增量模型、螺旋模型等,这些模型的共同特点是把软件开发看作多次循环改进的过程,在多个循环过程中有多次的评估和修改,或是从软件的核心逐步丰富。图3示意了原型法与螺旋模型结合。无论是哪种模型,都有软件开发的基本步骤:分析、设计、开发、测试。

3 教学系统设计与软件开发模型的结合

教学软件与管理软件、工具软件等功能性商用软件最显著的不同,是不能用“功能”来衡量。例如一个文字处理软件,如果测试者能够用软件录入文字,实现任何格式的排版就表明该软件的功能实现了,而教学软件无论运行多么流畅,严格地讲都不能说它具有了功能,因为教学软件的作用效果,不是自身表现出来的,这是具有不确定性的。因此对教学软件,开发是否成功要看教学性,而不是“功能”,而教学性要靠教学系统设计来保证。

无论是从教学系统设计的角度,还是从软件工程的角度,教学软件开发过程都可以分为两个阶段,一个是设计阶段,一个是开发阶段。两个阶段之间有反复调整修改的环节。教学系统设计的理论和方法,主要应用在设计阶段,以实现软件的教学性,为开发提供蓝图。软件工程的思想和方法,贯穿整个设计和开发过程,但重点是开发阶段的组织与管理,以实现软件的技术性能。一个好的教学软件开发模式,应该以教学系统设计为基础,结合软件工程的思想和方法。对这种结合可以用图4示意。该图的内圈表示教学设计过程,外圈表示软件开发过程,两个过程是同时启动同步进行的,交织成一个软件开发循环周期,但是在各个阶段两者的重要程度和工作任务的分量不同。

二 教学软件开发模式描述

1 模式的构成

该模式是借鉴美国学者Stephen M. Alessi和Stanley R. Trollip提出的模式,结合国内实际情况和我们的工作经验提出来的,见图5。

这个模式在整体上是软件开发的螺旋模型中的一个周期,也可以看作增量模型的一个构件的实现过程,这取决与软件开发的任务和条件。这个模式具有一定的普遍性,适合教学软件专业开发,也可供学校的教育技术人员和各科教师制作课件参考。

设计与开发模式有三个要素和三个阶段。三个要素是标准、评价和管理,三个阶段是计划、设计与开发。三个要素始终与三个阶段相互作用,是指在制作的全过程中都要注意,是全过程的活动原则,保证项目的成功。计划和设计两个阶段用环形表示阶段内部有反复的修改,开发阶段用竖的框架表示多项工作可能会并行或交叉开展。

这个模式涉及到开发者和用户两个方面,开发者包括教学设计人员、教学与培训专业人员、媒体素材制作人员和美工人员、程序编写和测试人员、项目管理人员等。在专业开发中,用户是指接收产品的客户,如学校、培训机构或出版商。在学校或培训机构内部开发时,用户是指使用软件的教学者,通常是教师。

2 模式的特点

(1) 基于标准的过程

从项目一开始,开发者与用户等共同明确软件最终产品所有方面的一致的标准,每个开发人员都知道应该怎么做,始终坚持确定了的标准。

(2) 实证的方式

全过程是初步设想、评价、修改的反复循环,直到最后完善。在计划和设计阶段需要完成两个原型,体现了原型法的思想。软件开发虽然有理论指导,但是最保险的还是不断地试验修改,直到合适为止。在全过程中坚持按标准评价,既不拔高也不降低。

(3) 全过程管理

软件开发中有一种现象是偏离原定方案,到了最后又耗费时间、人力和财物进行修改。好的项目管理能保证方案实施,坚持既定标准。

(4) 重视决策阶段

该模式中把计划与设计分为两个阶段,在全过程中花费较多的时间,意图是制作人员多花一些时间讨论,提出初步设想,做出正确决策,然后进行技术实现。这样不仅能少走弯路,提高工作效率,更重要的是能开发出体现教学设计魅力的软件,而不是炫耀技术水平和艺术效果的展品。

(5)倡导集体协作

全过程贯穿了集体协作的工作方式。首先是因为设计与开发所需要的技能与知识不是一个人能全部具备的,决策需要集思广益,需要有各方面专长的人合作;其次是协作方式能够在参与者共同监督下,保证原定的标准与方案。

3 模式的要素

(1) 标准

标准是一个好的项目的起点和基础,规定了开发人员持续努力所要达到的质量。在典型的情况下,一套标准来自两个方面。第一,是由开发人员提出来的,开发人员都应知道质量标准,并且在全过程中遵守;第二,是由客户或教学人员提出来的,往往比较具体,例如规定了总体印象、内容详细的程度、字体、颜色等等。来自两方面的标准一般是不会冲突的,能够协调为一套标准。

(2) 评价

标准只有在软件开发中坚持才有用,这就要求对所做的每一件事进行评价,每个人员也必须执行标准,以标准来衡量自己所做的工作。如果等到项目接近完成时,才来看是否应用了标准,既不现实,也没有用处。

进行全程评价关系着项目的质量,通过设计与开发过程中反复的设想、试验、评价、修改,使每一步工作都符合质量,则最终的产品才能具有高质量。

(3) 管理

成功与不成功的项目的差别很大程度上在于管理。对整个软件开发项目的资源、经费、时间等要从始到终严格控制,进行的良好管理,否则项目容易偏离预定计划和标准。加强项目管理,首先是要制定好计划,其次是要做好监控工作,最后是要保持项目组成员之间以及与用户之间的交流和沟通。

4 模式的阶段

(1) 计划阶段

计划阶段奠定多媒体教学软件开发项目的基础,形成总体设想,以保证项目各方面顺利进行。

计划阶段应确定项目的目的,也就是学习者完成软件学习后应掌握的知识、技能及应形成的能力、态度等。目的的确定涉及到教学内容范围,学习者的起点知识技能,以及一般特点。明确工作的限制条件也是必要的,例如运行软件的计算机环境,用户对信息呈现的特殊要求、软件内容的指定范围等。

计划还包括收集资料,明确所需要的资料是否都能得到,能否改编或自制,如果有些资料不可能解决,决定是否需要改变软件的内容。计划阶段应开展头脑风暴活动,项目组成员共同讨论,形成对软件的内容、结构、外观、风格等方面的初步设想,用原型或文字描述出来。在这一阶段需要频繁地与用户沟通,应编制一些文件,包括项目说明、计划书、项目标准等,使项目管理有章可循,并得到用户认可。

(2) 设计阶段

设计阶段进行软件的教学内容的组织,明确软件的教学目标,形成对软件的具体描述,为技术实现提供指南。

设计是软件开发的核心阶段,时间用得最多。在这一阶段,要综合应用教学理论,使用控制与交互的各种方法,体现信息呈现的要求。在设计过程中,制作人员之间,以及制作人员与用户之间,要继续交流,对软件最终的样式达成共识,完成原型和设计文件。

(3) 开发阶段

开发阶段使设计的结果最终转化为实际的产品。

这一阶段要运用各种技术手段,包括硬件设备和工具软件,利用和改编现有资料,制作文本、图像等多媒体素材,用编程或创作软件集成软件,经过多种不同水平的测试和试用后,最终完成软件。并且安排软件的总结性评价。

在开发阶段,素材制作、软件编程、手册编写等多项工作往往是并行或交叉开展的,素材创作和程序编写人员是工作的主体,但设计人员和用户仍以不同的角色参与制作过程,同时又在动用所有的技术资源,因此组织管理和质量控制十分重要。

参考文献

软件开发与定制篇(10)

目前软件的应用已经深入到企业、政府及我们日常生活的方方面面,其中大量的开发是由中小型软件企业承担的。由于中小型软件企业在体制、人力资源投入力度和关心程度等方面存在差异,开发软件产品时与专业软件企业有很大的不同,因此对中小型软件企业的软件项目管理进行研究,有助于提高软件项目管理水平,增强客户的满意度。

1软件项目管理与中小型软件企业

软件项目管理既具有一般项目管理的属性,又具有其特殊性,软件项目管理的重点在于标准的制定和推行。为了加强我国软件业的国际竞争力,需要发展一大批具有遵循开发过程与注重质量的文化氛围的企业。而制定和推行标准的目的正是要引导软件企业逐步走向成熟,使其工程和管理水平稳步提高,同时为它们提供全方位的服务,以支持软件产业的整体发展。

软件项目管理在20世纪70年代中期引起了广泛的注意。美国国防部通过研究发现了所谓的“软件危机”,即“管理是影响软件研发项目全局的因素,而技术只影响局部”。目前国内的中小型软件企业,由于其企业规模,研发能力等限制,造成其软件开发管理的问题非常普遍。不恰当的组织结构,工作流程不规范,缺乏项目管理概念和软件工程概念等是中小型软件企业面临的主要问题。

1.1中小型软件企业中软件开发的特点

国内的中小型软件企业虽然涉足软件开发业务,但对软件的认识停留在“程序员编代码”的水平上。对企业内部的软件开发缺乏管理意识,具体体现在以下几方面:首先,项目负责人项目管理经验不足,项目功能相对较少,涉及面相对狭窄;其次,项目开发人员较少,人员结构简单;再次,项目进度缺乏控制,项目成本预算较难,缺乏完整的项目文档;最后,缺乏后续维护。

1.2中小型软件企业中的软件开发组织

与专业软件公司的软件开发组织相比较,中小型软件企业中的软件开发工作机构小、人员少,开发人员待遇低,难以吸引高水平的人才,人才流失率达到50%以上。由于没有高水平的开发人员和技术管理人员,软件工作状况处于初级水平,软件开发不能按照软件工程的要求执行。

软件系统建立过程中需要多方面的人员:需求方人员、懂得软件项目管理的人员、软件程序员、系统分析员。普通企业由于对软件生产不了解,往往由软件需求方人员对软件工作直接管理。这个工作显然超过了其能力范围,不符合软件工作的相关原则。业务人员作为项目的负责人,既不能合理地计划软件开发工作,也不可能管理好软件工作中的各种风险,这将使软件开发处于无序的风险状态之中。

1.3中小型软件企业中的软件开发沟通

在需要团队协同工作的今天,沟通可以说已经变得无比的重要。在软件业,沟通可以说是快速学习和掌握新知识,达到技术上更高层次的最佳途径。如果小组成员在协调上出了漏洞,会导致很大的问题,所以项目负责人必须随时监控开发人员的工作,包括内容是否与要求发生偏差,进度是否滞后等等。

项目组与组织之间、项目组与项目组成员之间,甚至与一个项目组的不同成员之间,如果没有足够的沟通意识和沟通制度、沟通工具,就有可能造成信息不畅,从而加大项目失败的风险。中小型软件企业开发人员少,意味着不同人员的程序之间交互、接口相对少一些;缺少文档资料或者文档资料不规范也是软件项目管理中的普遍问题。由于讨论时忽略了某些情况,当大家都按当时的分工完成属于自己的工作后,才发现各个模块组合起来却不能形成一个完整的系统。其根源在于没有一个负责协调的人员不断监控整个开发过程。一旦有人中途退出开发队伍,其他人加入时,新来的人难以理解以前别人做好的代码,索性自己从头做起。

1.4中小型软件企业中的软件开发工作流程

与一个标准的软件开发流程相比,中小型软件企业内部的软件开发“节省”了不少步骤。例如不经过单元测试而直接进入系统测试等。由于这种测试不完全,真正运行系统,当调用某模块时,可能大部分时候都是正常数据,极少出现边界情况,但某些边界情况容易被忽视,很久之后才被发现。但是如果对每个模块进行单元测试时都进行边界测试,就会很容易消除这些隐患。

2中小型软件企业软件开发过程改进模型

软件开发模型是软件开发全部过程、活动和任务的结构框架。它能直观表达软件开发全过程,明确规定要完成的主要活动、任务和开发策略。一个企业的管理,大公司有大公司的方式,小公司也有小公司的模式,如果把别人的经验生搬硬套到自己身上,可能会适得其反。同样,管理一个软件项目也一样,大项目和小项目的方式不可能完全一样。但从另一个角度来看,项目的大与小并没有本质区别,很多方法是共通的。因此为了改进软件开发过程,可参考模型如图1

2.1制定软件开发规范

一切沟通与交流,首先都要有可见的依据,这可以从制定软件开发规范入手。具体可以从以下四个方面制订:软件开发工作流程规范、产品文档规范、软件开发文档规范、开发管理文档规范。编写规范,可以参考国家标准的计算机软件工程规范,也可以结合开发经验制定出适合本企业使用的开发规范。

详细制定这些文档使用方法和规则,要保证文档便于书写、形式一致,这不仅要有文字描述,还应制定相关文档模板,形式上要保证简洁明了、实用、符合使用习惯。根据项目规模的不同,还可以制定不同的文档模板,小型项目可以写一个相对简化的小型项目文档,复杂项目可以使用较全面和大型的文档模板。

2.2软件开发人员培训

软件开发中人的因素占有很大的比重,因此对软件人员的培训是非常重要的。一个团体的软件水平并不是个别程序员的程序水平,而是整体的认识和系统建设的水平。可以先在内部对软件开发人员进行培训,内容包括软件工程、己经制订的各种规范、项目管理知识。通过共同分析软件工程对软件开发和开发者的益处,可以得到开发人员的认同,以便共同遵守和执行初期规范,更好地完成开发目标。

2.3加强软件生产过程规范性

软件开发是一个知识密集型领域,对人才的依赖很强。加强生产过程的规范性并规范管理,可以加强人的执行能力。

在中小型软件企业中,很少有成本核算和严格的进度控制。影响项目的因素也比较多:需求的提出比较随便,甚至业务需求还不明确的时候就要求程序员开始编程序,没有合理的措施控制透彻的分析业务需求;时间进度由领导规定,而不是根据需求客观确定,这样使软件质量根本无法保障。因此要通过加强管理使软件开发过程可视化,软件开发工

作协调、有效。

在规则明确、组织机构确定、有一定的理论认识之后,可以通过一些管理要求,强制执行软件工程的一些基本过程,要求的提出要简单明了。例如:项目要有正式立项启动、项目结项,有时间控制要求、计划要求。要求项目有开发计划,计划中确定开发工作的人员保障、开发周期、开发进度计划,并允许项目进行中在一定范围内调整计划与进度。上级领导也应出面协调和帮助解决相应问题。

2.4软件配置管理机制

软件开发不是一个短期行为,但是,由于许多开发工作因缺少管理而成为个人行为,对于软件成果没有保护意识,更不能达到软件的共享与重用。通过“统一配置管理”这一具体的做法,能够强化软件完成后的总结工作。

建立基本的软件配置管理机制,在开发中和开发后都要求程序员及时备份源文件。进行这项工作要首先选择一套适合的配置管理软件,如visual sourcesafe、cvs(concurrent versions system)等。项目主管应该要求程序员在开发全过程中使用软件来管理源文件,在全过程的配置管理的基础上,整个项目组更容易完成统一编码、测试组装产品等工作。

以上步骤,可以保障内部开发工作达到初级的项目可视化,在软件开发部门内部建立起对满足业务需求完成的信心,以满足业务需求的承诺。通过这些工作,可以在企业内获得对软件规范性的一定认识以及对执行方式的认同,这对软件开发工作会有不同程度的帮助。

2.5持续改进过程和管理模型

软件开发与定制篇(11)

一、引言

目前,汽车研发与生产所利用现代硬件与软件整合技术越来越多,整天电子控制系统对嵌入式软件的依赖度越来越高。由于汽车电子硬件系统的多样性,ECU软件的开发收到硬件配置的制约,相关约束条件的更新都会导致程序的重新编写和调试。因此,如有一套统一标准规范的行业体系来规范ETU的相关联系开发。AUTOSAR体系结构是现阶段正被内外广泛采用的标准软件框架,其独立于汽车物理硬件的软件开发标准,为汽车电子产品之间的通用提供了可行性。

二、AUTOSAR的涵义以及在嵌入式软件开发中发挥的作用

1.AUTOSAR简介

AUTOSAR是由全球汽车生产行业所共同制定的开发性的系统框架标准。其实现的主要功能包括规范ECU开放式嵌入软件结构,定义统一的软件模块接口等多个方面。AUTSAR为分布式系统控制软件开发开辟的新的方法,此方法以基于模型和分布式系统描述开始,最终实现代码的自动生成以及可重复性程序调试。同时,AUTOSAR也定义了相关的硬件平台标准。

2.作用性

(1)AUTOSAR所制定软件模型规范,很大程度上简化了各个ECU的开发流程,实现了软件和硬件模块的部分通用性,设计层面的可交流性缩短了产品的研发周期,提高了汽车控制系统嵌入式软件的可靠性,有效的降低了研发和整车成本,为汽车生产厂商提供了更高的经济效益。

(2)AUTOSAR体系所体现的可靠性:

①有效控制错误事件的扩散。

②一旦发生故障,能及时的实现对其他系统的隔离保护。

③对关键数据的可靠性保护。

其中前两点是对汽车电子操作系统所提供的保障,第三点是针对非易失性存储。

三、AUTOSAR体系结构

基于AUTOSAR的汽车ECU架构如图1所示:

图1 AUTOSAR体系结构

1.微控制器抽象层

这一层是典型的物理设备的抽象,包含了汽车硬件设施的驱动程序,同时能够模型部分微型控制器无法实现的服务功能。

2.ECU抽象层

ECU抽象层,以相关ECU设备为基础,为其实现的服务功能提供相关的驱动程序。

3.服务层

服务层为汽车电子系统提供各种服务性控制,其中包括网络连接、车载视听系统、移动通信以及内存管理等方面,其实现的功能大多独立于汽车硬件架构。

4.运行时环境

运行环境RTE层是整个AUTOSAR体系结构的核心,实现了应用软件与基础软件的体系分割,其负责应用软件之间以及应用软件与基础软件之间的数据交换。RTE层的存在实现了对应用软件模块的重用。同时,由于RTE对相关的接口进行了预定义,为软件的嵌入提供了极大的可行空间。

四、基于AUTOSAR的嵌入式软件开发流程

AUTOSAR框架体系在规范ECU标准的同时,也定义了相关软件模块的开放方式。这就在软件开发的早期调试中提供了更多的标准性参考,同时采用标准的软件模块简化了开发流程,确保了嵌入式软件运行的可靠性。AUTOSAR为了保证开发过程中相关标准的通用性,定义了基于XML的文件格式。其具体嵌入式软件开发流程如图2所示:

图2 嵌入式软件开发流程

1.输入描述

(1)软件架描述。主要描述独立于汽车硬件配置的软件特性,包括:硬件资源需求、软件的通用特点、内部框架的构建、通信协议等,并通过开发工具生成标准描述文档。

(2)硬件资源描述。描述独立于软件架构的硬件信息,包括:工作状态、通用特性、信号传输路径等,并通过开发工具生成标准文档。

(3)系统描述。主要实现整车需求信息的描述,包括电源系统、软件架构与硬件信息映射、消息矩阵等方面,并通过开发工具生成标准描述文档。

2.系统配置

解决输入描述阶段的文档数据,进行系统设置反复调试与,目的是生成标准系统配置文档以及各个ECU的相关描述文档。

3.ECU配置

通过系统配置阶段生成的ECU描述文档,结合RTE运行环境的具体配置资源数据,建立标准的ECU配置文档。

4.ECU软件生成

此阶段需要结合确立的标准ECU配置文档,通过AUTOSAR资源配配置标准通过配置工具开发以及调试并最终生成可应用的ECU软件。如果1,2,3阶段的文档信息发生表更,需要对ECU软件生成结构进行重新校正,以实时的更新ECU软件。最后,将生成的ECU软件进行硬件运行环境的实际测试,如果嵌入软件出现不兼容现象或者相关硬件资源有更新,则需要对ECU软件进行校正优化和适应性调整。

参考文献

友情链接