期刊大全 杂志订阅 SCI期刊 投稿指导 期刊服务 文秘服务 出版社 登录/注册 购物车(0)

首页 > 精品范文 > 软件开发项目总结

软件开发项目总结精品(七篇)

时间:2022-11-29 02:26:59

序论:写作是一种深度的自我表达。它要求我们深入探索自己的思想和情感,挖掘那些隐藏在内心深处的真相,好投稿为您带来了七篇软件开发项目总结范文,愿它们成为您写作过程中的灵感催化剂,助力您的创作。

软件开发项目总结

篇(1)

有时即使不开展项目管理工作,软件开发项目也能取得成功。但是如果乏项目管理,则难以将成本控制在一定范围内,容易导致软件企业面临着亏损的风险。在开展项目管理工作的过程中,需要借助技术、方法等,管理软件开发活动,如此既有助于实现软件开发目标,又能够控制软件开发的进度以及开发成本。当前,虽然有部分软件企业依据软件工程理论,制定了管理软件开发的制度,但是却没有严格控制软件开发的进度以及成本。这种做法不仅会延长软件开发的时间,还会增加软件公司的经营风险,最终损害到相关用户的利益。而在软件开发过程中,开展项目管理工作,就有助于保证软件开发工作的顺利完成,同时提高软件企业的经营管理效率。

2项目管理在软件开发中的应用现状

在二十世纪六十年代中期,人们发现了在开发软件过程中存在着很多问题,具体的问题表现在以下两个方面:一方面,不规范的生产过程;另一方面,不重视管理工作。为了能够有效解决软件开发过程中存在的问题,人们开始尝试利用过程管理方法。但是到了二十世纪八十年代,还是没有制定管理软件开发过程相关标准。近几年来,在信息技术快速发展的背景下,人们采取项目管理来控制软件开发的质量、软件开发的成本等,以此确保软件开发的质量和成本等因素,符合当时的既定标准。在软件开发过程中,每一个项目组的不同成员都应该承担不同的任务,并且企业管理者应该要求他们要在规定的时间内完成自身的任务,这种明确分工制度,有助于提高员工的工作效率。

3项目管理在软件开发中的应用

每一个软件开发项目都要经过以下几个阶段:提出问题、研究可行性、分析需求、测试等。因此项目管理工作应该贯穿于软件开发的整个过程。

3.1可行性研究

无法开发哪一个项目,都需要进行可行性分析与研究。通过利用项目管理来研究软件开发项目可行性的目的在于:在最短的时间内确定软件开发项目是否具有开发的价值。其中可行性研究的内容包括:

1)、研究技术的可行性。其主要是指:要合理地分析开发项目的功能与性能,分析其中所隐藏的技术风险。

2)、研究经济的可行性。其主要是指:估计所开发的项目给企业带来的经济效益,然后依据所估算的经济效益,确定该项目是否具有投资的价值。

3)、研究社会的可行性。其主要是指:分析此项目的运行方式是否正确,分析当前的人员技术水平以及管理制度是否具有可行性。

3.2软件项目估算

在软件开发过程中,首先要规划软件开发项目,如此便于项目管理人员制定切合实际的估算方案。规划软件开发项目的内容主要包括:明确软件开发的目标、明确软件开发过程中需要用到的各种资源、明确软件开发的进度等。在软件开发过程中,估算起着非常重要的作用。通过估算可以保证软件项目在规定的时间内完成,也可以确保软件项目的成本未超出预算。在估算资源、成本以及进度的时候,要依据自身丰富的经验以及相关的数据。但是当前所使用的估算方法较为单一,此种估算方法容易增加估算风险。对此,研究人员应该努力研究出更多科学、有效的估算方法。

3.3软件项目开发人员的管理

在开展软件项目开发人员管理工作的时候,首先要合理安排人员。通常情况下,是由多个小组成员共同完成软件开发项目。在具体安排人员任务的时候,要依据每位人员的优势进行,并且要明确小组内每一位成员的工作任务以及工作目标。在软件开发过程中,要确定不同的责任人,比如:项目经理、开发经理,并且为每一个小组安排一名组长,如此有助于确保软件开发项目的顺利完成,同时保证所开发出来的软件属于高质量产品。

4结束语

篇(2)

关键词 软件开发;进度;管理;80-20原则

中图分类号:F426 文献标识码:A 文章编号:1671-7597(2014)07-0166-02

软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展。因此,怎样对软件项目进行有效的管理是急需研究的课题,国内外专家学者也展开了相关的研究。

张家浩[2]以现代软件工程为核心,系统分析了项目管理领域中软件项目存在的问题,提出在理想和现实之间选择平衡点的建议和方法。林锐[2]编写的《IT企业项目管理:问题、方法和工具》一书为IT企业提供了专业性很强、行之有效的项目管理方法和相应的工具,解决了大多数IT企业的软硬件开发项目管理混乱、质量低下、进度延误、费用超支等问题。哈罗德・科兹纳[4]在《项目管理:计划、进度和控制的系统方法》一书中讨论了时间管理、冲突管理等问题,分析了影响项目成功的因素。石慧[4]运用动态规划的思想和网络计划的方法,利用马尔可夫链模型进行软件项目进度预测,对软件开发项目中的计划和控制应用进行研究,构建了一个并行的IT项目进度马尔可夫链预测模型。

由于缺乏相关的法规政策,软件项目开发的进度很大程度上取决于程序员自身的专业技能和职业道德水平。由于没有一个标准划分,管理上有很多问题不容易解决。本文对影响软件开发进度的主要因素进行分析,阐明了进度管理的重要性,并对具体的项目开发进度管理方法进行了探讨。

1 影响软件开发项目进度的主要因素

软件项目在开发过程中,有很多影响其进度的因素,内因、外因、主观、客观因素均有,情况比较复杂。为顺利管理软件开发项目进度,首先要对其中主要影响进度的因素有所了解。

1.1 80-20原则,未按原计划执行进度

80-20原则用在经济学中是指百分之八十的价值是来自20%的因子,其余的20%的价值则来自80%的因子。在计算机软件开发领域,我们可以这么理解:80%的项目工作可以在20%的时间内完成,而剩余的20%的项目工作需要80%的时间。

一般来讲,这剩余的两成工作属于比较难的技术关键部分,通常出现在后期。由于软件开发过程的不确定性,在任何技术关键点上都可能遇到难题,这与开发人员本身的分析、设计、编程风格有关,难以预测。在实际过程中,完全无法预测在什么时候会遇到(甚至可能在最后一步)能导致全盘重建的问题,因此原计划进度一般会调整。

1.2 预算、质量要求等的变更及适应性调整不及时

除了对项目本身的工作量估算不合理之外,设计人员的理解也可能造成问题。如开发人员理解的情况与实际情况有偏差,在没有充分沟通并确认时开展项目,过程中又会变更,在验收阶段可能才发现“审题错误”,造成资源浪费,同时与之相关横向、纵向项目的进度也会受影响,易产生“软件危机”。此外,其他问题如设备、人力不符合要求或调整,都会影响实际进度。

1.3 前期可行性分析不充分

由于项目参与人员的经验或素质原因,在项目开始前的准备不足,对项目状态信息收集的不足,没能好好把握项目的内容,容易造成对项目的了解不符合实际情况,加上高估自身工作能力,这就会对进度造成影响。如果没有充分的理解和准备,项目整体就会受到很大的影响,对项目本身的低估其实是对自身的一种高估,这样会使得预期的进度在实际进展过程中不仅很难实现,而且容易对工作人员的士气形成打击。

1.4 其他因素

假设、约束、风险等条件考虑“不周”造成项目进度计划中未考虑一些不可预见的事件发生。例如软件开发项目还会因为项目资源特别是人力资源缺失(如人员生病、离职、开发人员临时有其他救急任务)等原因,对项目进度控制造成影响致命影响。即项目及时完成是基于环境不变、任务不变、资源不变动等假设。软件开发主要是靠程序员来进行,软件体现出程序员的不同风格,因此程序员本身的主观性也会造成影响。在进度安排的时候应当适当配置应急预案,预留空余。

2 软件开发项目进度管理的目的

加强软件开发项目进度管理是软件开发行业发展的必要手段,也是必经之路。项目进度控制和监督的目的是:增强项目进度的透明度,及时发现项目中存在的问题并改正,对项目进展加以督促等,保证项目按时完成。

合理的管理手段可以加强项目的监督控制,对项目进度完成情况有一个大致的了解和评估,一旦出现问题可以及时沟通交流;遇到有落后进度情况及时督促,对有理解偏差的情况及时发现、及时纠正等。

软件开发时实施进度控制是项目管理的关键。一般一个部门同时会接多个项目,并行处理过程易造成混乱。通常,一个项目会由多部门的课题组共同负责,分项目之间横向并列或纵向承启,分部越多就越容易受影响。因此各分项目的准时能确保项目实施进度,对项目进度的合理管理可以起到协调作用。进度控制是项目管理过程中一项最重要的监控内容,负责对项目周期的整体把握与控制。通过软件开发项目进度管理方法,对各个分项目的进度进行控制,保证每个分项目各自按照项目计划书中的预期进度安排完成各自的内容,对于其中出现的问题及时予以纠正,从而保证项目整体的顺利完成。

3 软件开发项目进度管理方法

3.1 对项目本身充分了解

在制定项目计划书之前,首先应当对充分了解项目本身。项目进度控制的前提是有效地计划和充分掌握第一手信息,通过实际值与计划值进行比较,检查、分析、评价项目进度。对项目的充分了解是制定一个可行性分析报告的必要条件。除了了解项目相关技术内容、发展情况外,还应包括主要设备(工具软件)、项目参与者的情况,以合理分工、科学管理。

3.2 项目计划书与定期的进度报告

为了按期完成软件交付任务,目前软件开发单位陆续采取了很多控制进度的管理手段,其中最为广泛实用的就是项目计划书和定期的进度报告的提交。项目计划书和进度报告都是参考传统的工程项目管理方案,同时结合软件开发本身的特点进行的改进。作为项目进度控制的基准,项目计划书是项目的阶段成果完成情况的一个预期与管理依据。根据计划书中的时间安排,在项目的每个阶段点,项目负责人需要向相关管理人员(部门)书面提交阶段工作汇报与计划。在进度报告中,要有完成情况、存在问题、下一步安排等,实际上就是项目执行人员的对总结、分析、开发反思。

3.3 进度协调会

在软件开发项目中,一个项目通常由不同的项目团队合作完成,企业有专门的合同管理部门负责项目的分、转包、合同期与进度计划的协调。项目经理应该及时掌握这些情况,按计划进行计划进度与实际进度的动态比较,定期向客户提供可靠反馈。这通常是通过进度协调会来完成的,参与项目的每个团队负责人通过协调会了解相关方的进度、探讨问题,根据对方完成情况动态调整自己的进度。

3.4 阶段性审查与应急措施

软件开发项目进度管理过程需要从项目从准备到开始到进行到完成的各个不同阶段都采取不同的方法进行控制管理,全面把握项目进程。在准备阶段需要提供项目信息,同时确定项目研究进度;编制阶段计划和项目总进度计划;控制该计划的执行;而需求分析和设计阶段控制的任务是编制与用户的沟通计划、需求分析工作进度计划、设计工作进度计划,控制相关计划的执行等。最后,实施阶段进要求编制实施总进度计划并控制其执行;编制实施计划并控制其执行等。

在项目设计书中应当有关于应急预案的内容,这是我国现在工程管理、软件开发管理都比较容易忽略的一个内容,其本质是对项目过程中可能出现的干扰和影响的一个预测,对项目整体的合理把握。针对可能的问题,提出一定的解决方案,而在实际过程中,一旦出现问题,具体应当结合实际情况确定,避免产生相反的效果。

4 结束语

软件项目的开发与传统的工程项目具有很大的区别,软件本身具有无具体形态、缺乏标准等特点,开发过程不确定性大,主观因素影响对软件质量影响较大,因此进行项目进度管理探讨十分必要。本文通过总结进度管理上可能存在的问题,提出了可以采取的管理手段,希望能对实际工作有参考价值。

参考文献

[1]张家浩.软件项目管理―华鼎项目管理书库[M].北京:机械工业出版社,2009

[2]林锐,唐勇,黄曙江.IT企业项目管理:问题、方法和工具[M].北京:电子工业出版社,2005.

[3]Harold Kerzner.项目管理―计划、进度和控制的系统方法[M].杨爱华等译.第7版,北京:电子工业出版社,2012.

[4]石慧.软件开发项目的进度计划与控制研究[D].湖北:武汉理工大学,2009.

篇(3)

[关键词]投资决策;实物期权;净现值

[中图分类号]F270.7 [文献标识码]A [文章编号]1006-5024(2008)05-0015-03

[基金项目]国家自然科学基金项目“用多功能开放型企业供需网理念推进我国企业实施大批量定制生产的研究”(批准号:70472075);上海市重点学科资助项目“多功能开放型企业供需网中企业的核心能力与合作机制构建研究”(批准号:T0502)

[作者简介]徐 莹,浙江万里学院商学院讲师,博士,研究方向为企业信息化、投资决策;(浙江 宁波 315100)

徐福缘,上海理工大学管理学院教授,博士生导师,研究方向为系统工程;(上海 200093)

张颂焕,浙江万里学院商学院本科生,研究方向为电子商务。(浙江 宁波 315100)

一、引言

在不确定条件下的项目投资决策分析中,实物期权理论正替代传统的净现值法(NPV)而得到广泛的运用。许多学者也将该方法引入了IT项目的投资决策分析之中,如:Benarch和Kauffman运用Black-Scholes模型,近似地估算一电子银行网络项目中所包括的实物期权价值,他们将项目投资机会看成一个仿真的美国式买入期权(Pseudo-America Call Option),并考虑分红的情况,将项目现金流现值和看成是期权的基础资产;Taudes运用Black-Scholes期权定价模型分析软件升级项目的经济效益;Panagi和Trigeorgis运用实物期权理论分析了某通信项目的经济价值;Schwartz运用动态规划法(Dynamic Program-ming)讨论了两种IT项目的期权定价。

上述文献中存在着两个缺陷:一是虽然在软件开发项目经济分析时考虑了项目内含的实物期权价值,但在项目投资决策分析中却仍然遵循NPV方法的思路,而没有考虑实物期权的执行问题以及何时执行问题;二是缺乏对软件开发项目在生命周期的各个阶段所包含的实物期权作全面、系统的研究,大多只是考虑到项目中的等待期权。本文则对上述问题作了详尽的研究和分析。

二、软件项目的生命周期

从项目管理与项目经济分析的角度看,软件项目的生命周期可归纳为图1所示的一般过程:

在图1中,横坐标是时间,纵坐标是收益或投资成本,t0=0是项目的决策点。在决策时,I是项目可行性研究费用(成本),相对于项目的整个寿命期,一般来说项目的可行性研究阶段的时间很短,所以假设项目的可行性研究是在瞬间完成。t1是项目开发的起始点,t2-t1是项目前期开发阶段,在这一阶段,项目有一现金流C1支出,C1可能是常量,也可能是随时间的变量C1(t)。从t2时刻起,项目的首期开发完成,项目开始有收益,即现金流B1,B1也可能是常量,更一般的是随时间的变量B1(t),这一收入可能是企业出售软件或软件相关服务效益的收入。同时,对于大多数成功的软件项目来说,从t2时刻起,该软件项目又开始了进一步的开发,如增加软件的新功能,或将软件移植扩展到其他的计算机操作系统等。从t3-t2阶段是软件项目的第二次开发阶段,在这一过程中所发生的开发费用为C2,C2的特点也与C1相似。从t3到tn,其中可能包括多个与t3-t2阶段相似的软件项目的扩展(二次开发)阶段。T是该软件项目结束的时间。由于技术进步与消费者需求的变化,一般来说一个软件不可能永远继续下去,它可能在某一时刻被完全淘汰。综上分析,t0是项目的决策点,t1是项目的开发起始点,他们可能是同一时间,但大多数情况下可能是不同点。t1-tn是项目的开发阶段,其中t1-t2是项目的纯开发阶段,在这一阶段上,项目无收益。t2-T是项目的收益阶段,在这个时段上项目有现金流入,他们通常大于本阶段上的开发费用。值得指出的是,软件项目在t2-T阶段,企业可以中止并出售该项目,并一次性收取转让费。

三、软件开发项目内含实物期权分析

从图1的分析可以看出,一个软件开发项目包含了多个阶段。把软件项目看作是由一系列序贯开发的小项目所组成,这一观点在软件开发项目管理中已被广泛接受。在软件项目中,前一阶段的决策,决定了后续阶段的开发投资。所以,在前一阶段的经济评价中,应考虑本阶段的决策所带来的后续阶段投资机会的价值。从这一观点出发,可以分析在软件开发项目的不同阶段中项目可能包含的实物期权。

在t0点,即项目投资决策时,项目内含一个等待(wait)或推迟(defer)开始的实物期权,这相当于一个美国式的买方期权(Call Option)。该期权的执行条件是:推迟项目可以使得管理人员获得更多(额外)的有关项目的信息,在此基础上,有利于管理人员采取管理行动,而且,一般来说计算机硬件,软件的价格随时间迅速下降,推迟项目会有利于降低开发成本。但同时也应看到,推迟项目也可能导致项目收入的损失和企业竞争优势的丧失,即推迟项目具有机会成本。在项目决策时,应综合全面考虑这两方面因素。因而,在项目决策时,除了筛选项目外,还应考虑这一实物期权的价值,在时间许可的范围内,决定最佳项目开始时间。

在t0时,除等待期权外,项目还包含有第二阶段投资机会的实物期权。

在t1至tn时项目的开发阶段。在开发阶段上项目具有更大的管理柔性,项目可能包含的实物期权有:1.推迟或中止下一阶段的开发。2.若不期望的情况出现,并且继续下去,则可完全放弃该项目。3.根据新掌握的信息,扩展或缩减项目。4.发现新派生软件(项目)的投资机会。

最后,项目的经营阶段,项目还可能包括中止(出售)的期权,或由于条件的变化,进一步升级软件的机会。

虽然软件项目中所包含的期权不同,但一般情况下,影响他们价值的因素主要包括:1.执行项目中实物期权所产生的收益。对软件开发项目来说,这可能是项目在某一阶段的收益,一般来说,其他条件不变,收益越高,期权的价值也就越大。2.执行实物期权所需要的成本。对于软件开发项目而言,是投资于项目下一阶段的成本,一般来说,其他条件不变,成本越小,期权的价值也就越大。3.收益与成本的不确定性的程度。对于金融期权来说,其价值是建立在市场风险之上的,这个风险反映在证券资产的价格变化上。然而,其中之一变为不确定了,则项目所包含的实物期权价值会相应增加。4.实物期权的截止时间。对于软件项目来说,这一时间就是下一阶段项目管理决策的可能时间。在实践中,它经常是企业因素所决定的。实物期权的截止时间越长,则期权的价值也就越高。5.项目包含的实物期权执行的机会成本。若这一机会成本越高,则期权的价值也就越低。6.无风险折现率。无风险折现率越低,则期权的价值也就越高。

四、软件开发项目经济分析的目标与内容

Trigeorgis等学者提出,在考虑内含实物期权时,投资项目的价值包括两部分:一是传统的、被动的、静态的(static)项目直接现金流的净现值(NPV)。二是管理柔性或灵活性所产生的项目内含实物期权价值。这一思想可归纳为下式:

F=NPV+V (1)

(1)式中,F是扩展(Expand)的NPV,也是整个项目投资机会的价值;NPV是按净现值法计算出的项目净现值;V是项目内含期权的价值。

根据项目投资决策的NPV法则,内含实物期权的IT项目,其投资机会的价值大于零时,项目可行;筛选IT项目的多个独立方案时,选择投资机会最大的投资方案。在大多数投资项目的实物期权理论研究以及实证研究的文献中,都遵循这一准则。然而,这类投资项目的决策思路却值得重新审视。

传统的投资项目经济评价中,没有考虑项目中可能包含的实物期权,其经济评价是为其投资决策服务的。而投资决策的特点是在决策时只有投资或不投资两种选择,若项目选择投资,其经济评价的使命便告结束。若选择不投资,项目就放弃了。传统的投资项目决策的内容可归纳为下面三个基本内容:1.决定投资项目是否经济可行;2.若可行的投资项目存在多个相互排斥的投资方案,筛选最佳的投资方案;3.在企业资源(预算)约束的条件下,筛选多个项目的投资组合。然而,若投资项目中包含实物期权,项目经济评价中也考虑了项目内含实物期权的价值,那么投资项目不仅在经济评价的内容与方式上与传统项目的经济评价不同,而且项目的决策内容和方式也与传统项目的决策不同,具体体现在下面三个方面:第一,项目的决策不仅在项目最初的决策阶段(点)进行,而且还应延伸进项目的整个过程之中。第二,在项目最初的决策阶段(点),管理者不仅要决定项目是否可行,筛选最佳方案和选择投资组合,而且还要依据项目经济评价的结果,决定项目内含期权是否应该执行和何时执行。第三,投资项目内含期权的经济分析,不仅在项目决策阶段进行,而且还应延伸至项目开发的全过程。在项目开发的每一个阶段,根据项目经济分析的结果,决定当时项目所含实物期权是否实施、何时实施。

五、软件开发项目决策框架与准则

从上述分析可以看出,在软件开发项目经济评价中引入实物期权的概念和实物期权定价方法,是软件开发项目经济分析与决策管理的革命,它必然给原有的软件开发项目的管理带来深刻变革。本文构建了软件开发项目的经济分析与管理决策过程的框架,其主要内容是:1.确定本阶段软件开发的范围及下一阶段开发的可能范围,决定是否可引出相关的开发项目。2.构造确定本阶段开发项目包含的实物期权,如推迟开发、进一步扩展开发等。3.预估开发项目成本、收益、时间和无风险折现率,特别应分析确定成本与收益的不确定性特征,如变化方差等。4.根据开发项目的不确定源的特征,选择合理、恰当的市区期权定价模型,确定开发项目内含期权的价值。对于相似于美国式期权的实物期权,还应确定最佳执行时间。一般来说,实物期权定价模型主要包括:已有的期权定价模型、偏微分方程法和动态规划方法等。5.根据项目的经济分析结果作出管理决策。应该指出的是,在软件开发项目的不同阶段,管理决策的内容有所不同,下面详细分析不同开发阶段管理决策的内容与规则。

在软件开发项目的最初决策阶段,决策内容包括两个部分:一是传统项目投资决策内容相同;二是针对项目内含期权的决策。具体可归纳为图2所示:

具体的决策准则如下:

1.筛选可行项目。若软件开发项目的投资机会价值(扩展NPV)大于或等于零,则项目可行。

F≥0 (2)

2.在可行项目中,选择最佳方案。投资机会价值最大方案:

F*=max{Fi} (3)

i =1,…,N

3.投资方案的期权决策。最佳投资方案选定后,具体的管理决策选择可归纳为下表。

在软件项目开发过程中的开发阶段,管理决策的内容为:根据项目经济分析的结果,决定是否执行期权,何时执行。若项目包含的期权价值大于零,对于相似于美国式期权的实物期权,则选择最佳时间来执行;而对于相似于欧洲式期权的实物期权,则到期执行。在执行美国式期权时,涉及到最佳执行时间的确定。正如实物期权的定价没有统一的模型一样,这一时间的确定是没有统一的模型,而应根据项目不确定因素的特征来灵活掌握。

参考文献:

[1]Benaroch,M.,R. J. Kauffman.Justifying electronic banking network expansion using real options analysis [J].MIS Quart.2000,24(2) 197-225.

[2]Taudes,A.,M.Feurstein,A. Mild. 2000. Option analysis of software platform decisions:A case study[J].MIS Quart.24(2):227-243.

篇(4)

一、为什么需要软件度量

判断和衡量代码质量一直是开发过程中令人苦恼的问题,在同样完成功能的情况下,如何判别一种写法比另一种写法好呢?在代码重构的过程中,如何确定代码质量是在不断的改进当中呢?引入一种设计模式以后,代码真的变的比以前好了吗?大部分时候我们凭感觉和经验做这些事情,我们使用很多模糊的词语来描述我们的判断,比如这样做以后,代码的可维护性更好、可扩展性提高,等等。在越来越注重代码设计的今天,很多人开始使用更感性化、更形而上学的词语来形容软件质量,我们会听到评价软件结构很优雅,带来美的享受,甚至一些设计原则被提升到了哲学高度。

不得不承认这些词语的描述确实很符合我们看到一段高质量代码的心境,但是这些新词语的出现并没有帮助我们解决软件质量判定中遇到的问题。因为这些感性的判定,由于每个人的经验不同,经历不同,所得出的结论也不尽相同。而软件度量能解决这些问题。

众所周知,度量对任意一个工程产品研制都是很重要的,度量让人们更加了解产品、可以评价产品、衡量产品质量,从而进行改进。对于软件产品也一样,只有定性的评估是不够的,还要通过定量的评估才可以根本的解决评估软件产品质量问题。

二、什么是软件度量

如今计算机在我们生活的每个领域几乎都扮演了非常重要的角色,在计算机上运行的软件也越来越重要。因此,可预测、可重复、准确地控制软件开发过程和软件产品已经非常重要。软件度量就是衡量软件品质的一种手段。CMMI为软件产品及软件过程提供了一套定量的表示和分析模型,即软件度量。因此,软件度量分为软件产品度量和软件过程度量两大部分。

先简单介绍一下软件产品的度量,由三部分组成:

1、质量要素。包括:功能性、可靠性、易用性、高效性、可维护性、可移植性六条。

2、评价标准。包括:精确、健壮、通信有效、处理有效、设备有效、可操作等。

3、度量元。指软件的需求分析、概要设计、详细设计、CODING实现、设置测试、确认测试、使用维护七个阶段中的度量元素,比如各阶段的里程碑――文档等。

对于软件过程度量,在软件过程中,我们有必要知道掌握这个过程中的什么。因为我们需要在通过每一个软件过程后,能交付符合该过程需要的结果,即该过程产品及该产品性能是否达到组织的商业目标。为了让这个目标成功,让它所有过程中的行为在整个管理中可以预测,判断现阶段这个过程设计是否合理,我们不仅仅需要主管和经验丰富的开发人员的经验,还需要定量的数据作为分析、参考,并把每个软件过程记录入库,作为今后统计分析的参考数据,这样科学的辅佐开发人员将软件过程控制住。

可以通过对整个软件过程中的七个阶段进行离散分析,得出各阶段中缺陷的发现及解决比例,从而判断出哪个阶段问题最大,将解决重点放在该阶段。比如,如果在分析阶段缺陷比例最大,而后期依次减小至理想状态,这说明本软件过程是非常成功的;反之,如果在测试阶段甚至使用阶段缺陷比例很大,很可能说明这个软件过程在分析或者构架时就存在很大的问题。

三、软件度量的对象

从前面的论述我们知道,任何软件度量活动最想做的是识别我们想度量的实体和实体的属性。在软件中我们想度量其属性的实体可以分为三类,他们是:

1、过程:是与软件相关的一些活动,这些活动都有一个时间因素。

2、产品:是指在软件开发过程中产生的各种中间产品、的资料和文档等。

3、资源:是指在开发过程中输入给过程的东西。

在软件中要度量或预测的属性都是上述三种实体之一的属性。同时,我们有必要区分一下外部属性和内部属性:内部属性是能够纯粹用过程或产品或资源其自身来度量的属性;

外部属性是指由过程或产品或资源及与其相关的环境共同才能度量的属性。

在软件度量中,主要用于以下几个方面:

1、从产品、过程和资源中得来的数字。如,功能点数或代码行(LOC)/每人每月等。

2、度量的分类。客观度量一般为定量的度量;主观度量一般反映为专家意见;在这些基本度量(直接度量)的基础上,经过计算得到进一步的附加度量(或称推导度量,间接度量等)。

3、可识别的属性。

4、一个理论或数据驱动的模型。其描述的是一个依赖于独立变量(如大小)函数的可变变量;这种模型通常是用于预测目的的。

四、软件度量的过程

软件度量工作首先需要确定能够表示软件质量的各种属性和指标;然后分析软件、收集数据;接着运用公式换算代码的各种指标值;最后通过这些指标就可以分析代码的质量。确定哪些属性和指标可以表示软件质量、收集哪些数据、如何用公式推导指标,都是软件度量的研究重点。它所确定的各种软件度量指标为我们了解软件属性、衡量软件质量提供了科学依据。

软件开发过程中,不管哪种软件度量方法,都包括了其基本的软件度量过程。这些过程构成软件度量作业的一次循环,使得软件度量能够经由渐进式的循环得到螺旋式上升。软件度量的基本过程如下:

1、承诺度量。根据软件开发的技术和管理过程对软件度量的需求,决定并承诺实施软件过程度量,这是具有针对性地推进软件度量的第一步骤,也是高层管理者参与决策并提供相应资源的重要环节。

2、计划度量。基于软件度量承诺,根据软件开发的技术、管理、流程、绩效、问题等信息制定软件度量计划。在计划中正式确认产品、流程、角色、责任和资源相关问题及属性,为实施软件度量提供书面的、计划性的、具有可行性的、得到资源支持的保证。

3、实施度量。根据软件度量计划对软件开发的项目、产品和过程等度量对象实施度量。通过度量收集、存储、分析有效的软件度量数据,并将度量和分析结果用于控制和改善软件过程。

4、评估度量。对软件度量过程本身进行评估,对度量标准、度量流程、度量方法、度量对象、度量效用等做出评估,发现度量作业的问题点,总结度量作业的资产,并提出度量作业改善方案。

5、改善度量。根据度量作业的改善方案在后续的度量作业中加以实施,将改善方案导入下一次软件度量过程之中。改善并不是水平方向上的简单重复作业,而是基于经验和教训之上的螺旋式上升过程,将软件度量的效用在软件开发过程中展现出来。

五、软件度量方法

1、项目度量。项目度量是针对软件开发项目的特定度量,目的在于度量项目规模、项目成本、项目进度、顾客满意度等,辅助项目管理进行项目控制。

2、规模度量。软件开发项目规模度量是估算软件项目工作量、编制成本预算、策划合理项目进度的基础。规模度量是软件项目失败的重要原因之一。一个好的规模度量模型可以解决这一问题。有效的软件规模度量是项目成功的核心要素:基于有效的软件规模度量可以策划合理的项目计划,合理的项目计划有助于有效地管理项目。规模度量的要点在于:由开发现场的项目成员进行估算;灵活运用实际开发作业数据;杜绝盲目迎合顾客需求的“交期逆推法”。

3、成本度量。软件开发成本度量主要指软件开发项目所需的财务性成本的估算。主要方法如下:类比估算法、细分估算法、周期估算法。

4、顾客满意度度量。顾客满意是软件开发项目的主要目的之一,而顾客满意目标要得以实现,需要建立顾客满意度度量体系和指标对顾客满意度进行度量。顾客满意度指标以顾客满意研究为基础,对顾客满意度加以界定和描述。项目顾客满意度量的要点在于:确定各类信息、数据、资料来源的准确性、客观性、合理性、有效性,并以此建立产品、服务质量的衡量指标和标准。企业顾客满意度度量的标准会因为各企业的经营理念、经营战略、经营重点、价值取向、顾客满意度调查结果等因素而有所不同。

5、产品度量。软件产品度量用于对软件产品进行评价,并在此基础之上推进产品设计、产品制造和产品服务优化。软件产品的度量实质上是软件质量的度量,而软件的质量度量与其质量的周期密切相关。

6、过程度量。过程度量是对软件开发过程的各个方面进行度量,目的在于预测过程的未来性能,减少过程结果的偏差,对软件过程的行为进行目标管理,为过程控制、过程评价持续改善提供定量性基础。过程度量与软件开发流程密切相关,具有战略性意义。软件过程质量的好坏会直接影响软件产品质量的好坏,度量并评估过程、提高过程成熟度可以改进产品质量。相反,度量并评估软件产品质量会为提高软件过程质量提供必要的反馈和依据。过程度量与软件过程的成熟度密切相关。

篇(5)

我国金融电子业的发展和进步使得银行软件行业进入到了一个关键时期。银行之间激烈的竞争关系使得银行对于软件的的要求越来越高,国外优秀的同类软件也在不断的参与着国内市场的竞争。巨大的市场压力迫使软件开发商放弃了传统模式的手工作坊的开发方式,转而采取更加先进的技术和方法来提高软件开发的质量,以保证企业的可持续发展和进步。

关键词:

银行;软件开发;CMM;开发方法;改进

银行软件的开发过程的改进方法直接影响到银行业的进步和发展,对银行信息化水平的提高尤其重要。银行软件项目是由技术、过程和人才三个方面共同完成的,银行软件项目的开发和改进方法离不开以上三个要素的参与,只有提高银行软件的开发质量和工作效率才能吸引创造更多地利润,提高客户的满意度。

一、银行软件的开发方法和改进方式

1、以产品化为核心的软件开发方法银行软件业发展的初期阶段,软件商针对各银行服务项目的不同进行软件的定制是当时主要的银行软件开发方式。开发人员针对每个项目中实际的需求进行调研,设计出符合要求的开发方案再进行实施,但实际上,这种方式存在很大的局限性。首先定制软件需要软件开发商将大量的技术人员派遣到不同的项目中去,他们的工作重复率十分高,极大的浪费了人力资源,效率还得不到提高,使得开发成本的投入不断增加,给企业的进步和发展带来了阻碍,定制软件的稳定性还非常差,出错几率较大,在客户满意度上始终达不到高标准。[1]使用产品化的银行软件开发方法可以很好地解决以上问题,作为一种工程技术的方式,产品化的开发方法基本的研究思路是在同类软件产品的基础上,提取出相关的业务特征来予以实现,对于不稳定的部分进行参数化的处理,使其能够在较小的变化下满足大部分客户的需求。这样项目在经过首轮的开发研究之后,对不同银行的软件都能在最短时间内进行维护和保养,非常有利于提高软件质量、减少成本的投入和增加市场竞争力。银行软件的开发方式以银行具体的业务标准作为基础和标准。从理论化的角度来看非常适合产品化的开发方式。但是针对目前银行界的发展情况来看,各银行之间有自己独特的业务处理程序,在流程和业务的处理方式上也大不相同,给产品化的开发带来一定的阻碍。以产品化为核心的银行软件的开发过程是建立在技术平台的基础之上,通过业务逻辑的思维能力在部分定制条件下可以快速完成对于产品的开发和使用。银行软件业务的平台的开发步骤是在技术平台作为基础的情况下,再深入理解和分析银行内部的业务,建立和完善业务平台,然后在基本业务平台之上构建出一个完整的业务流程,对于具有近似流程的业务建立建立相关模板来用作更高层次的平台,以支付系统为例,大笔金额交易的流程必须经过录入、审核。传输、修改和修正等步骤,就可以做成一个完整的业务模板,通过对这个模板的修改和调整就可以用到其他类似的业务上。[2]以产品化为核心的开发方式除了开发制作方便快捷之外,在后期的软件维修保养和升级方面也十分快速,虽然以产品为核心的开发方法的业务平台并不是彻底的产品化方案,还需要相应的开发人员的针对具体的银行业务进行第二次的开发,但是却是非常适合当前银行业的的一种改进方式。

2、以CMM为核心的软件开发方法CMM是管理学理念在软件行业中的具体表现,在过去的几年时间内CMM用具体的成绩证明了他对改进软件开发过程的价值,是一种更加先进的改进方式,但是并不是所有银行的软件项目都适合CMM的管理理念,比如以算法为基础的银行研究性开发项目就不行,CMM为核心的软件开发方式只适合控制方便的业务型开发项目。目前我国银行的软件大部分都是以业务作为核心的行业软件,因此在具体开发技术上是不需要十分高深的算法和复杂的逻辑的,因此十分适合使用CMM的理念对银行软件项目进行开发和使用,由于开发方式的产品化等特征,虽然整体的研究成本得以降低,但是在第一次的开发程度上却十分复杂,需要更加优良的管理方式才能保障以CMM为核心的软件开发成功。[3]我国目前对于CMM的研究已经取得了很多的成果,例如对KPA中关键过程的实践内容的解析和证明,每个目标如何在单独的软件开发项目中完成。但是CMM在银行软件的开发实施需要企业文化作为基本保障,才能确保该方法的顺利进行。CMM的管理理念提供了一系列的方案来保障银行管理的制度化,如在具体的银行业务中,软件工程作为立法机构提出相应的规范内容,所以软件在在开发过程就必须按照这些制度来执行,保障软件的质量监督规范的实施,这样就能确保软件管理的有效性。但是传统制度下的银行软件开发企业的管理者来说,自身也处在制度之下,只有企业内形成法制化的企业文化,才能保障新方法的推行管理过程。需要参与CMM为核心的各组织相对独立的发展空间。只有在不会互相影响的情况下,各组织的评估和监督工作才能从真实性和客观性出发,对软件的管理和理解才加具有意义。例如在对软件工程过程组的计划评估中,由测试组对软件工程组的产品进行性能测试时双方都需要相对独立的空间的作为前提,但是在我国的发展过程中,企业管理人员的职责范围不明确,各组织属于从属的关系非常多,个别企业甚至是一组人员负责两个项目,自我监督效果极差。这样虽然从客观上采用了CMM的理念,但是在实际操作过程问题就会不断的出现,对于开发过程并没有起到明显的作用,所以对于软件开发企业来说这是必须要面对的问题。CMM是作为一个评估系统的依据和过程改进的结构出现的,主要是针对如何建立科学有效的管理方法给出了确切的目标和建议,CMM在银行软件的开发方法中的具体实现就需要结合实际的银行业务水平和企业自身的结构,来制定出合理有效的管理方案。正确实施CMM的方法是根据各个项目中开发人员的技术经验来完成对KPA关键过程的目标实践并完成制定的目标。完成CMM2之后再从对多个项目的总结方案上开始对于CMM3的KPA研究分析,形成一个系统的组织结构,最后再反向推广,以完成对过程管理的改进。[4]

3、重视对人才的培养工作不论是以产品化为核心的银行软件开发方式还是以CMM为核心的开发方式,这些方案的实施基础是有足够的技术人员来进行操作,对于软件企业来说人才来说专业的技术人员可以分为单一的技术型、纯业务型和管理者三种,他们各自倾向于自身领域中知识的学习和管理,目前我国的软件企业内存在着管理缺乏的现象,更是在业务型人才的培养上十分薄弱,这对软件的开发和推广以及后期的维护和管理是十分不利的,软件从性能上可以看成是一种针对其他行业发展的服务,缺乏业合格的管理人员和业务人员的软件企业无法开发出优质的软件系统的。从银行软件的角度来说,业务人员是最重要的组成部门,因为银行业的主要工作就是以业务为主,本身也具备相对复杂的程序,只有技术丰富银行软件人员才能做好银行软件的开发工作。

二、结束语

银行软件的开发和改进方法主要就是包括对技术、应用过程和人才的培养上,这三个是相互关联的相互影响的,如果其中一个方面有缺失必然会相应其他方面的进步和发展,造成资源地浪费,因此在对银行软件的开发和改进中要注意对这三个方面齐头并进,避免造成短板效应,才能真正提升银行软件的质量和效率。

参考文献:

[1]侯晓靓.基于CMMI的软件项目风险管理研究[D].北京邮电大学,2012-11-12.

[2]张健.基于FPA方法的某银行软件开发项目的工作量估算研究[D].中国科学院大学(工程管理与信息技术学院),2015-07-23.

[3]王峤.银行业软件项目全生命周期的质量度量指标体系研究[D].山东大学,2014-10-03.

篇(6)

随着信息技术的飞速发展,软件产品的规模也越来越庞大,个人单打独斗的作坊式开发方式已经越来越不适应发展的需要。各软件企业都在积极将软件项目管理引入开发活动中,对开发实行有效的管理。我公司是西安一家中型软件企业,在公司中已经实行了项目管理制度,软件项目管理是整个项目管理中的一个重要组成部分。

从概念上讲,软件项目管理是为了使软件项目能够按照预定的成本、进度、质量顺利完成,而对成本、人员、进度、质量、风险等进行分析和管理的活动。实际上,软件项目管理的意义不仅仅如此,进行软件项目管理有利于将开发人员的个人开发能力转化成企业的开发能力,企业的软件开发能力越高,表明这个企业的软件生产越趋向于成熟,企业越能够稳定发展(即减小开发风险)。

软件开发不同于其他产品的制造,软件的整个过程都是设计过程(没有制造过程);另外,软件开发不需要使用大量的物质资源,而主要是人力资源;并且,软件开发的产品只是程序代码和技术文件,并没有其他的物质结果。基于上述特点,软件项目管理与其他项目管理相比,有很大的独特性。

二、软件项目管理的组织模式

软件项目可以是一个单独的开发项目,也可以与产品项目组成一个完整的软件产品项目。如果是订单开发,则成立软件项目组即可;如果是产品开发,需成立软件项目组和产品项目(负责市场调研和销售),组成软件产品项目组。

公司实行项目管理时,首先要成立项目管理委员会,项目管理委员会下设项目管理小组、项目评审小组和软件产品项目组。

1、项目管理委员会

项目管理委员会是公司项目管理的最高决策机构,一般由公司总经理、副总经理组成。主要职责如下:

(1)依照项目管理相关制度,管理项目;

(2)监督项目管理相关制度的执行;

(3)对项目立项、项目撤消进行决策;

(4)任命项目管理小组组长、项目评审委员会主任、项目组组长.

2、项目管理小组

项目管理小组对项目管理委员会负责,一般由公司管理人员组成。主要职责如下:

(1)草拟项目管理的各项制度;

(2)组织项目阶段评审;

(3)保存项目过程中的相关文件和数据;

(4)为优化项目管理提出建议。

3、项目评审小组

项目评审小组对项目管理委员会负责,可下设开发评审小组和产品评审小组,一般由公司技术专家和市场专家组成。主要职责如下:

(1)对项目可行性报告进行评审;

(2)对市场计划和阶段报告进行评审;

(3)对开发计划和阶段报告进行评审;

(4)项目结束时,对项目总结报告进行评审。

4、软件产品项目组

软件产品项目组对项目管理委员会负责,可下设软件项目组和产品项目组。软件项目组和产品项目组分别设开发经理和产品经理。成员一般由公司技术人员和市场人员构成。主要职责是:根据项目管理委员会的安排具体负责项目的软件开发和市场调研及销售工作。

三、软件项目管理的内容

从软件工程的角度讲,软件开发主要分为六个阶段:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、安装及维护阶段。不论是作坊式开发,还是团队协作开发,这六个阶段都是不可缺少的。

根据公司实际情况,公司在进行软件项目管理时,重点将软件配置管理、软件质量管理、软件风险管理及开发人员管理四方面内容导入软件开发的整个阶段。

在八十年代初,著名软件工程专家B.W.Boehm总结出了软件开发时需遵循的七条基本原则,同样,我们在进行软件项目管理时,也应该遵循这七条原则。它们是:

(1)用分阶段的生命周期计划严格管理;

(2)坚持进行阶段评审;

(3)实行严格的产品控制;

(4)采用现代程序设计技术;

(5)结果应能够清楚地审查;

(6)开发小组地人员应该少而精;

(7)承认不断改进软件工程实践地必要性。

篇(7)

关键词:需求分析;项目干系人;系统分析员

中图分类号:F270 文献标识码:A 文章编号:1003-3890(2012)05-0056-03

需求分析是软件开发过程的核心,其结果直接影响到整个的软件开发过程。据相关资料显示,因需求分析因素所造成的软件项目失败或缺陷约占60%,属于系统实施阶段的代码错误,而导致软件项目失败的比率约为40%。项目失败的根源在于需求分析不明确,需求调研不彻底,从而引发需求不断变更,最终导致项目停滞。这些变更不仅加大了开发成本、项目无法按时完成等严重问题,而且,还有可能引发用户方与开发方之间互相指责,导致项目搁浅。

一、软件项目需求分析的重要性

软件系统的开发主要分为五个阶段,分别是系统的需求分析阶段、系统设计阶段、系统实施阶段、系统测试阶段和系统维护阶段。而需求分析阶段是整个五阶段中的重中之重,在该阶段所占的工作量大概是整个软件开发项目的50%,逻辑方案是该阶段的最终成果。逻辑方案不仅是进行系统设计的依据,而且,还是系统最终验收的说明性文件。从以往的经验来看,需求分析做的不彻底,没有深层次的挖掘用户需求,往往可能导致整个项目无法达到预期的效果,或者说设计开发出来的产品不能满足用户的需求。

需求分析首先要对现有系统有充分的认识和了解,在此基础上,通过识别关键问题、分析项目的可行性、详细调查研究、系统化分析,最终设计完成该项目的新系统逻辑方案。只有系统分析员明白了用户的真正需求,才能开发出满足用户的软件产品。在这里,要强调一点的是,在做需求分析的时候,开发方一定要指派有实际工作经验的系统分析员来与用户沟通,而不是指派具体的开发人员,这将避免一些沟通不畅的问题发生。系统分析员在了解用户的基本需求之后,要以书面的形式,准确地制定出软件需求报告。该报告主要说明系统的行为属性,是项目开发过程中对系统的制约。要实现这一目标,就需要系统分析员与用户之间做到紧密协作,甚至系统分析员要深入到用户方的实际业务当中,把自己当做是用户,从用户的角度思考问题,只有这样,开发方才可以真正了解用户需要什么,系统应该做什么。

二、规范执行需求分析的流程

需求分析的过程,要严格执行规范化操作,囫囵吞枣式的需求调研是不可取的。开发方在做需求分析过程中,一定要严格把关,从对用户负责的角度出发,并且也为了降低自己的开发成本,对无法与用户实现很好沟通的项目经理要及时叫停,避免后续工作无法正常进行。

按照需求分析的过程,同样也可将其分为五个阶段:首先要获取用户需求,其次是分析用户的需求,第三是编写需求文档,第四是评审需求文档,最后是管理需求。规范执行需求分析的流程,是需求分析能否成功的关键。图1是根据实际工作经验总结出的需求分析工作流程:

在需求分析过程中,开发方要深入用户方的各个部门,最简单的项目也要做到用户确认需求和需求评审两个过程,复杂的项目甚至要做到多次。

三、尽快熟悉项目用户方干系人全貌

项目干系人又称为项目相关利益者,是指积极参与项目、或其利益会受到项目执行或完成情况影响的个人或组织,项目干系人对项目的目的和结果施加影响。项目管理团队,即开发方,必须识别项目干系人,确定他们的需求和期望,尽最大可能地管理与需求相关的因素,以获得项目的成功。因此,应当从项目的启动开始,系统分析员用户方相关人员的配合下,逐步分清项目用户方干系人具体包含哪些人和部门,通过开方法与其沟通加之用户方领导的协调以驱动他们对项目的支持,从而减小其对项目的阻力。

有些项目在做需求调研时,因受用户方提出的进度要求等因素影响,有些系统分析员不愿与用户过多地交流,只是发一些调研表做一些大概的了解。往往是因为开发方已有与该建设单位相似的原型,会亟不可待地去推广,这样会导致某些差异需求得不到深入了解,用户方只能被动地去适应原型系统,这样的做法是不可取的。另一种情况则是开发方与用户方的技术部门交流比较多,而向业务部门和实际使用人员调查的力度不够,往往容易造成原型试用后,与用户的需求不一致,不得不再对需求做较大调整,造成开发周期不断延期,开发成本大大增加。因此,熟悉项目用户方干系人全貌是进行需求调研的第一步,也是需求调研的基础。在定制的开发项目中,最重要的是要弄清楚用户方中的组织结构关系、业务流程关系、数据流程关系。制定该项目的牵头单位,在此基础上,使用图表的形式将这三种关系表现出来。

四、采取正确的方法获取用户需求