公务员期刊网 精选范文 软件管理论文范文

软件管理论文精选(九篇)

前言:一篇好文章的诞生,需要你不断地搜集资料、整理思路,本站小编为你收集了丰富的软件管理论文主题范文,仅供参考,欢迎阅读并收藏。

软件管理论文

第1篇:软件管理论文范文

一般来说,软件工程师总是非常乐观。当他们在计划软件项目时,经常认为每件事情都会像计划那样运行,或者,又会走向另外一个极端。软件开发的创造性本质意味着我们不能完全预测会发生的事情,因此制定一个详细计划的关键点很难确定。当有预想不到的事情引起项目脱离正常轨道时,以上两种观点都会导致软件项目的失败。

目前,风险管理被认为是IT软件项目中减少失败的一种重要手段。当不能很确定地预测将来事情的时候,可以采用结构化风险管理来发现计划中的缺陷,并且采取行动来减少潜在问题发生的可能性和影响。风险管理意味着危机还没有发生之前就对它进行处理。这就提高了项目成功的机会和减少了不可避免风险所产生的后果。

2什么是风险

所谓“风险”,归纳起来主要有两种意见,主观说认为,风险是损失的不确定性;客观学认为,风险是给定情况下一定时期可能发生的各种结果间的差异。它的两个基本特征是不确定性和损失。IT行业中的软件项目开发是一项可能损失的活动,不管开发过程如何进行都有可能超出预算或时间延迟。项目开发的方式很少能保证开发工作一定成功,都要冒一定的风险,也就需要进行项目风险分析。在进行项目风险分析时,重要的是要量化不确定的程度和每个风险相当的损失程度,为实现这一点就必须要考虑以下问题:

要考虑未来,什么样的风险会导致软件项目失败?

要考虑变化,在用户需求、开发技术、目标、机制及其它与项目有关的因素的改变将会对按时交付和系统成功产生什么影响?

必须解决选择问题,应采用什么方法和工具,应配备多少人力,在质量上强调到什么程度才满足要求?

要考虑风险类型,是属于项目风险、技术风险、商业风险、管理风险还是预算风险等?

这些潜在的问题可能会对软件项目的计划、成本、技术、产品的质量及团队的士气都有负面的影响。风险管理就是在这些潜在的问题对项目造成破坏之前识别、处理和排除。

3风险管理

项目风险管理实际上就是贯穿在项目开发过程中的一系列管理步骤,其中包括风险识别、风险估计、风险管理策略、风险解决和风险监控。它能让风险管理者主动“攻击”风险,进行有效的风险管理。

在项目管理中,建立风险管理策略和在项目的生命周期中不断控制风险是非常重要的,风险管理包括四个相关阶段:

风险识别识别风险的方法常用的有风险识别问询法(座谈法、专家法)、财务报表法、流程图法、现场观察法、相关部门配合法和环境分析法等。

风险评估对已识别的风险要进行估计和评价,风险估计的主要任务是确定风险发生的概率与后果,风险评价则是确定该风险的经济意义及处理的费/效分析,常用的方法有:概率分布、外推法、多目标分析法等。

风险处理一般而言,风险处理有三种方法,①风险控制法,即主动采取措施避免风险,消灭风险,中和风险或采用紧急方案降低风险。②风险自留,当风险量不大时可以余留风险。③风险转移。

风险监控包括对风险发生的监督和对风险管理的监督,前者是对已识别的风险源进行监视和控制,后者是在项目实施过程中监督人们认真执行风险管理的组织和技术措施。

在IT软件项目管理中,应该任命一名风险管理者,该管理者的主要职责是在制订与评估规划时,从风险管理的角度对项目规划或计划进行审核并发表意见,不断寻找可能出现的任何意外情况,试着指出各个风险的管理策略及常用的管理方法,以随时处理出现的风险,风险管理者最好是由项目主管以外的人担任。

险识别

风险识别就是企图采用系统化的方法,识别某特定项目已知的和可预测的风险。常用方法是建立“风险条目检查表”,利用一组提问来帮助项目风险管理者了解在项目和技术方面有些风险。在“风险条目检查表”中,列出了所有可能的与每一个风险因素有关的提问,使得风险管理者集中来识别常见的、已知的和可预测的风险,如产品规模风险、依赖性风险、需求风险、管理风险及技术风险等。“风险条目检查表”可以以不同的方式组织,通过判定分析或假设分析,给出这些提问确定的回答,就可以帮助管理或计划人员估算风险的影响。软件项目一般有如下五类风险:

4.1产品规模风险

有经验的项目经理都知道:项目的风险是直接与产品的规模成正比的。与软件规模相关的常见风险因素有:

估算产品的规模的方法(LOC或代码行,FP或功能点,程序或文件的数目)。

产品规模估算的信任度

产品规模与以前产品规模平均值的偏差

产品的用户数

复用的软件有多少

产品的需求改变多少

4.2需求风险

很多项目在确定需求时都面临着一些不确定性和混乱。当在项目早期容忍了这些不确定性,并且在项目进展过程当中得不到解决,这些问题就会对项目的成功造成很大威胁。如果不控制与需求相关的风险因素,那么就很有可能产生错误的产品或者拙劣地建造正确的产品。每一种情况都会导致使人不愉快。

与客户相关的风险因素有:

对产品缺少清晰的认识

对产品需求缺少认同

在做需求中客户参与不够

没有优先需求

由于不确定的需要导致新的市场

不断变化需求

缺少有效的需求变化管理过程

对需求的变化缺少相关分析

4.3相关性风险

许多风险都是因为项目的外部环境或因素的相关性产生的。经常我们不能很好地控制外部的相关性,因此缓解策略应该包括可能性计划,以便从第二资源或协同工作资源中取得必要的组成部分,并且觉察潜在的问题。与外部环境相关的因素有:

客户供应条目或信息

内部或外部转包商的关系

交互成员或交互团体依赖性

经验丰富人员的可得性

项目的复用性

4.4管理风险

尽管管理问题制约了很多项目的成功,但是不要因为风险管理计划中没有包括所有管理活动而感到惊奇。在大部分项目里,项目经理经常是写项目风险管理计划的人,并且大部分人都不希望在公共场合暴露自己的弱点。然而,像这些问题可能会使项目的成功变得更加困难。如果不正视这些棘手的问题,它们就很有可能在项目进行的某个阶段影响项目。当我们定义了项目追踪过程并且明晰项目角色和责任,就能处理这些风险因素:

计划和任务定义不够充分

实际项目状态

项目所有者和决策者分不清

不切实际的承诺

员工之间的冲突

4.5技术风险

软件技术的飞速发展和经历丰富员工的缺乏,意味着项目团队可能会因为技巧的原因影响项目的成功。在早期,识别风险从而采取合适的预防措施是解决风险领域问题的关键,比如:培训、雇佣顾问以及为项目团队招聘合适的人才等。主要有下面这些风险因素:

缺乏培训

对方法、工具和技术理解的不够

应用领域的经验不够

新的技术和开发方法

不能正确工作的方法

5风险估计

风险估计,又称风险预测,常采用两种方法估价每种风险。一种是估计风险发生的可能性或概率,另一种是估计如果风险发生时所产生的后果。一般来讲,风险管理者要与项目计划人员、技术人员及其他管理人员一起执行四种风险活动:

(1)建立一个标准(尺度),以反映风险发生的可能性。

(2)描述风险的后果。

(3)估计风险对项目和产品的影响。

(4)确定风险的精确度,以免产生误解。

另外,要对每个风险的表现、范围、时间做出尽量准确的判断。对不同类型的风险采取不同的分析办法。

1.确定型风险估计

(a)盈亏平衡分析

盈亏平衡分析(Break-EvenAnalysis)通常又称为量本利分析或损益平衡分析。它是根据软件项目在正常生产年份的产品产量或销售量、成本费用、产品销售单价和销售税金等数据,计算和分析产量、成本和盈利这三者之间的关系,从中找出它们的规律,并确定项目成本和收益相等时的盈亏平衡点的一种分析方法。在盈亏平衡点上,软件项目既无盈利,也无亏损。通过盈亏平衡分析可以看出软件项目对市场需求变化的适应能力。

(b)敏感性分析

敏感性分析(SensitivityAnalysis)的目的,是考察与软件项目有关的一个或多个主要因素发生变化时对该项目投资价值指标的影响程度。通过敏感性分析,使我们可以了解和掌握在软件项目经济分析中由于某些参数估算的错误或是使用的数据不太可靠而可能造成的对投资价值指标的影响程度,有助于我们确定在项目投资决策过程中需要重点调查研究和分析测算的因素。

(c)概率分析

它是运用概率论及数理统计方法,来预测和研究各种不确定因素对软件项目投资价值指标影响的一种定量分析。通过概率分析可以对项目的风险情况做出比较准确的判断。主要包括解析法和模拟法(蒙特卡罗MonteCarlo技术)两种。

2.不确定型风险估计

主要有小中取大原则、大中取小原则、遗憾原则、最大数学期望原则、最大可能原则。

3.随机型风险估计

主要有最大可能原则、最大数学期望原则、最大效用数学期望原则、贝叶斯后验概率法等。

5.1建立风险清单

风险清单是关键的风险预测管理工具,清单上列出了在任何时候碰到的风险名称、类别、概率及该风险所产生的影响。其中整体影响值可对四个风险因素(性能、支持、成本及进度)的影响类别求平均值(有时也采用加权平均值)。

一旦完成了风险表的内容,就可以根据概率及影响来进行综合考虑,风险影响和出现概率从风险管理的角度来看,它们各自起着不同的作用(见图1)。一个具有高影响但低概率的风险因素不应当占用太多的风险管理时间,而具有中到高概率、高影响的风险和具有高概率及低影响的风险,就应该进行风险分析。

5.2风险评估

在风险分析过程中,我们对风险进行评估时可以建立一个如下的四元数组:

[ri,li,xi,yi]

其中,ri是风险,li为风险出现的概率,xi则表示风险损失大小,yi则表示期望风险。

一种对风险评估的常用技术是定义风险的参照水准,对绝大多数软件项目来讲,风险因素——成本、性能、支持和进度就是典型的风险参照系。也就是说对成本超支、性能下降、支持困难、进度延迟都有一个导致项目终止的水平值。如果风险的组合所产生的问题超出了一个或多个参照水平值时,就终止该项目的工作,在项目分析中,风险水平参考值是由一系列的点构成的,每一个单独的点常称为参照点或临界点。如果某风险落在临界点上,可以利用性能分析、成本分析、质量分析等来判断该项目是否继续工作。图2表示了这种情况。

但在实际工作中,参照点很少能构成一条光滑的曲线,大多数情况下,它是一个区域,而且是个易变的区域。因而在做风险评估时,尽量按以下步骤执行:

(1)定义项目的水平参照值

(2)找出每组[ri,li,xi,yi]与每个水平参照值间的关系

(3)估计一组临界点以定义项目的终止区域

(4)估计风险组合将如何影响风险水平参照值

5.3估计损失的大小

表1是风险分析表的一个例子,可以建立一个用风险、损失概率、损失大小和期望风险这样的风险评估表。

在表1所示的风险估价的例子中,一个理论项目已经识别了从1到20周期间的潜在的几个风险,风险发生的概率范围在5%到50%之间。在现实的项目中,可能会识别出比此表要多得多的风险。

损失的大小常常比概率更容易受到控制。在以上的例子中,可以很精确地估计出完全支持自动从主机更新数据的时间是20个月。根据管理层将在何时讨论项目建议书,可以知道项目不是在2月1日就是3月1日会被批准。如果假定会在2月1日批准,项目被批准的风险大小会比期望的长一些,也就是1个月时间。

如果损失的大小不容易直接估计出来,可以将损失分解为更小的部分,再对其进行评估,然后将各部分评估结果累加,形成一个合计评估值。例如,如果使用3种新编程工具,可以单独评估每种工具未达到预期效果的损失,然后再把损失加到一起,这要比总体评估容易多了。

5.4评估损失的概率

评估损失的概率要比评估损失大小更具有主观性。这里有许多实践方法可以提高主观评估的准确度。有以下方法:

由最熟悉系统的人评估每个风险的发生概率,然后保留一份风险评估审核文件。

使用Delphi法或少数服从多数的方法。使用Delphi法,必须要求每个人对每个风险进行独立地评估,然后讨论(口头或纸上)每个评估的合理性,特别是最高和最低的那个。一轮轮讨论,直到达成共识。?使用“形容词标准”。首先让每个人用表示可能性的形容词短语选择风险的级别,如非常可能、很可能、可能、或许、不太可能、不可能、和根本不可能。然后把可能性的评估转换为数量化的评估(Boehm1989)。

5.5整个项目超限和缓冲

实际上,表1中表示的期望风险的计算数值来源于一个被称为“期望值”的统计术语。设计欠佳引起的风险如果真正发生将花费15周的时间。既然它不是100%地会发生,当然不能预计损失15周时间。但它也不是没有可能发生,所以也不应指望不会发生损失。统计学认为,预计损失的数量是概率乘以损失大小,即15%乘以15周。因此,在这个例子中,预计的是损失2.25周。由于只是谈论计划风险,可以累加所有的风险暴露量来得到项目的全部可预料超标值。这个项目可预料的超标值是12.8到13.2周,这就是如果不做任何风险管理的话有可能超过计划的周数。

超出预期值的大小为整个项目风险控制级别的确定提供了依据。如果例子中的项目是个25周的项目,超出预期值的12.8到13.2周就很明显需要进行风险管理了。

6风险管理策略

风险管理策略就是辅助项目组建立处理项目风险的策略。项目开发是一个高风险的活动,如果项目采取积极的风险管理策略,就可以避免或降低许多风险,反之,就有可能使项目处于瘫痪状态。一般来讲,一个较好的风险管理策略应满足以下要求:

(1)在项目开发中规划风险管理,尽量避免风险

(2)指定风险管理者,监控风险因素

(3)建立风险清单及风险管理计划

(4)建立风险反馈渠道

7风险驾驭和监控

风险的驾驭与监控主要靠管理者的经验来实施,它是利用项目管理方法及其它某些技术,如原型法、软件心理学、可靠性等来设法避免或转移风险。风险的驾驭和监控活动可用图3来表示。

7.1建立风险驾驭与监控计划

从图3中可以看出,风险的驾驭与监控活动要写入RMMP(RiskMonitoringandManagementPlan风险驾驭与监控计划)。RMMP记述了风险分析的全部工作,并且作为整个项目计划的一部分为项目管理人员所使用。

风险管理策略可以包含在软件项目计划中,也可以组织成一个独立的风险缓解、监控和管理计划(RMMP计划)。RMMP计划将所有风险分析工作文档化,并由项目管理者作为整个项目计划中的一部分来使用。一旦建立了RMMP计划,且项目开始启动,则风险缓解及驾驭及监控步骤也开始了。正如前面讨论的,风险缓解是一种问题避免活动。风险驾驭及监控则是一种项目跟踪活动,它有三个主要目标:?判断一个预测的风险是否事实、是否发生。

进行风险再估计,确保针对某个风险而制定的风险消除活动正在使用。

收集可用于将来进行风险分析的信息。

风险驾驭及监控的策略如下:

与在职人员协商,确定人员流动原因。

在项目开始前,把缓解这些流动原因的工作列入风险驾驭计划。

项目开始时,要作好人员流动的思想准备,并采取一些措施确保人员一旦离开时,项目仍能继续。

制定文档标准,并建立一种机制,保证文档及时产生。

对所有工作进行细微详审,使更多人能够按计划进度完成自己的工作。

对每个关键性技术人员培养后备人员。

在考虑风险成本之后,决定是否采用上述策略。

7.2软件项目风险追踪工具

追踪风险的一个办法是将风险输入缺陷追踪系统中,缺陷追踪系统能将风险项目标示为已解决或尚未处理等状态,也能指定解决问题的项目团队成员,并安排处理顺序。可将软件风险项目依序排列出来,按照缺陷存在的时间与负责者等资料排列。这样,缺陷追踪系统就是追踪风险的工作能更好执行并且不那么单调。

第2篇:软件管理论文范文

WBSR模式是建立在WBS基础之上的,与责任融合后形成的一种新模式。从WBSR角度开展工作,能够确定软件项目的工作及产品范围,为工作顺利开展指明了方向,将工作细化之后,分配给每一个工作人员,促使工作人员明确自身职责,从而为项目计划制定、考核等工作奠定坚实的基础和保障。

2模型具体步骤划分

通过对模型进行深入分析和研究,并结合软件项目特征,能够确定责任范围,对整个项目进行结构分解,得到WBS集;软件项目的开发需要将用户需求作为核心,进而通过模型进行分解,获得PBS集;最后,要制定与项目开发相关的部署,确保每一个环节都能够顺利进行,保证项目进度,为工作提供依据,通过这种方式,不仅能够确保工作有条不紊进行,还能够有效提高工作质量和效率,从而促进软件开发工作进一步发展。

3模型主要应用流程

WBSR模型在软件项目管理中的应用主要涉及对项目的分解、工作目标的确认及更新。首先,建立工作小组,工作人员作为软件项目管理的核心,其成员综合素质直接影响工作能否顺利进行,基于此,小组成员一般选择项目经济、技术人员等,还可以增加用户代表等,以此来确保软件开发的合理、科学性;其次,工作、产品等结构分解,工作分解作为模式应用的基础,应结合实际情况进行合理分解,切勿盲目性,还需要结合成员经验等因素,为工作顺利开展提供支持;软件产品作为参与市场竞争的关键,分解产品开发,能够深度挖掘员工潜力,提高产品适应力,与客户达成共识;最后,还需要结合实际情况对项目范围进行及时调整,如果范围发生变化,相对应的工作流程也需要进行调整,实现统一、系统发展目标。

4模型应用情况

将软件项目管理与WBSR模式结合,将各个工作进行细致划分,能够为软件计划、预估等工作提供依据,确保工作顺利开展,在一定程度上推动了软件项目进一步发展,与此同时,在项目开展过程中,负责人加大对实际工作的监督和控制力度,能够及时发现不足之处,并采取有针对性措施,确保软件产品开发质量,该模式的应用,能够直观的反映组内成员的实际表现,为日后进行绩效考核奠定了基础,从而有效提高管理水平,促进企业可持续、健康发展。

5模式性能评价

通过对WBSR模式在软件项目管理中应用情况调查可知,模式对工作过程及产品开发从不同角度进行合理分解,提高了项目范围的精准性及有效性,避免工作失误情况的发生,并且将工作细化至每一个人受众,形成良性循环,促使员工能够认真、负责完成工作,起到了积极地促进作用。因此,面对社会发展新形势下,企业软件项目管理可以大力推广和普及WBSR模式,提高产品适应力及质量,从而实现企业经济效益最大化目标。

6结论

第3篇:软件管理论文范文

关键词:软件公司;成本控制;探索

1经营决策阶段的成本及其控制

经营决策阶段成本是指公司经营方向的选择,这是成本管理的第一个也是最为核心的环节。不过对于大多数IT软件业公司而言,这个阶段往往是最大的问题之所在,有时经常凭一个觉得是灵感的想法或者对市场初步的直观层面的调研就进行的决策。而这样的结果是往往没有摸透市场的真实情况,轻率上马项目,造成方向性错误,以至于导致企业的危机。

该阶段的成本控制,关键在于经营决策前科学而深入的市场调研及准确分析,目前很多中小型IT软件企业,其经营部的职员大多都并不是社会调查专业的,因而他们做市场调查的过程中所采用的方法不太科学,如在样本选取及抽样过程不合理,没有按照严格的社会调查方法进行调查和数据分析,甚至问卷设计都存在倾向性导致调查数据信度偏低。此外,大量的公司自我宣传的各种形式的软文和竞争对手有意的攻击性文章夹杂在其中,并不是很容易的进行分辨,更何况数据的随意性,来源的不可追溯性各种情况,所以只能作为参考。

2需求整理及分析确认阶段的成本及其控制

需求整理指市场经营人员根据高管对于市场方向的决策,而提出的具体的产品或者项目的原始需求,需求分析是指技术员对市场部门的需求进行分析,评估其可实现性以及实现难度,大致工时等,提交相关需求分析报告,最后市场经营部门进行确认这个阶段。

该阶段的成本控制,首先需要搞清这种沟通过程中产生偏差的原因,最为主要的往往并不是技术语言和市场语言的差异,或者市场人员和技术人员之间的思维定势的差异,而在于两者缺乏确定的科学的流程和在交流之前的准备以及相关概念约定俗成的定义造成的问题,同时还由于沟通和确认环节由于其特殊性,经常难以被有效的纳入进度管理程序流程当中。而提高该阶段的成本控制效率,必须逐一针对性的解决以上问题,首先要清晰的确定并严格执行市场和技术沟通的流程,尤其是要明确每个环节的控制点,也就是双方交付给对方的关键交付物,一定要有清晰的共同确认的模板,同时每次沟通前必须对于一些概念有着清晰的界定,然后公布这些信息,并在沟通前做好充足的准备,明确每次沟通前要沟通什么,要解决哪些问题,沟通结束后要交付哪些文档让双方进行确认等,同时一定要通过线上或者线下的管理模式,讲所有沟通环节全盘把握,并纳入进度管理。

3规划阶段成本及其控制

规划阶段成本是指在需求已经得到确认后,进入技术规划阶段的相关成本控制,该阶段有些软件开发公司常常出现的问题是对于规划予以过度的期望和过于沉重的内涵,在实际项目操作过程中,这个规划实际上包含着技术规划和非技术规划两个部分,因为对这两个部分的混淆,导致一些技术层面和市场层面的东西不必要的纠缠在一起,并且直接导致项目进度的拖欠,而且会导致由于非技术规划的不清晰,直接影响技术规划层面的实施。

该阶段的成本控制,必须清晰的区分非技术规划和技术规划,尤其在公司内部技术部门和市场经营部门之间的职责,需要设立一个在提出需求到技术规划之间过渡的位置,即对于需求具体细节的整理,要对于交付物有着清晰的确定,尤其是在不同时期交付不同的关键文档,如除了上面说的那六个文档外,技术部项目组长在需求分析的时候,还应该明确提交功能模块分析,开发代价,功能流程图,功能关联性图,可维护性及可拓展性分析等六个文档,此外在项目开发规划阶段,还要对于控制点的一些要素进行详细的规划用来提交给市场部门,如详细页面元素,页面元素价值度分析,表现形式,页面结构,页面效果等。

4开发阶段的成本及其控制

开发阶段的成本指需求确定并且规划清晰后的具体开发过程的成本管理问题,该阶段相对其他阶段来说比较清晰,但这里笔者认为需要关注的是,如何使得人力资源得到最大程度的利用,它是指公司第一线技术人员的能力最大程度发挥的状态,包含几个层次,(1)全部时间利用,(2)最大效率利用,(3)最大潜力激励利用,这三步需要逐步递进实现。这个需要一种完善的内部管理制度,以及公平公正的价值认定模式和绩效制度,从而一方面促进员工本身的发展,一方面增加对人才的吸引力。

该阶段的成本控制,可以引入最大可控制成本的概念,这里是指人力资源最大程度发挥后所能控制的成本,是公司在一定投入前提下,最大的可能的减少因管理导致人力发挥不足够而造成的成本,该成本为人力资源的极致成本,无法再进一步降低,此成本状态下的仍然出现效益不佳情况,则可说明在经营定位和经营方向上的问题,而非内部问题。促使人力资源得到最大利用度和发挥度,在此基础上的成本,为最大可控制成本,以上可以通过内部的管理系统来很好的实现。5需求变更成本及其控制

需求变更成本指在开发过程中,由于市场部门的需求改变导致的成本增加而实施的控制,对于项目开发的过程中,需求的频繁变更就成本控制而言是致命的,很多项目由于需求的变更而导致破产。

该阶段的成本控制,最关键的是要对于需求变更过程进行严格的管理,要从需求变更的开始,对于整个变更的每个具体的步骤进行跟踪,并且严格核算每次变更所需要的工作时,从而做好评估。同时,务必要明晰需求变更的必要性和风险性,以及所带来的实际成本的增加,所以需求要尽量经过详细的论证。

6测试成本及其控制

测试成本指项目开发完成阶段,在交付验收前进行的测试过程中导致的成本及其控制,测试阶段对于一个项目的最终交付具有重大的意义,往往在测试阶段要才是使得项目真正完善的阶段,很多细节的修补都在测试阶段完成,正是测试使得一个项目成为一个可以交付,可以应用,可以产生效益的产品。但对于一些中小型软件开发公司而言,往往缺乏真正建制齐全的测试部门和专业测试人员,经常是技术人员进行兼任,这种方式相当普遍。但同时也导致了一些问题,主要是对于测试缺乏经验积累管理,或者说是错误管理,经常上次测试完出现的问题,过段时间又会出现,或者是开发下个项目的过程中又再次出现,增加不必要的成本。

该阶段的成本控制,笔者认为最关键的是对测试进行错误管理模式,采取“有错必改,凡错必究,错不再犯,预错于先”的管理办法,尽量在项目开发之前,就能整理出之前开发中出现过的所有问题,并用列表的方式进行技术会议,让所有开发人员进行错误共享,尽量把测试中可能出现的问题消灭再开发阶段,另外需要把测试过程化、即时化,每周甚至每天都要求每个开发人员在交付自己的子模块的之前就暗中预先准备的测试手册进行测试,通过后再提交,同时定时抽查某些核心功能模块,进行某个点的测试,这样全过程的控制,会最大程度的减少测试成本,同时要加快反应速度,一发现开发中,或者测试过程中的相关问题,必须跟进彻底解决,并纳入绩效考核中,杜绝再犯。

参考文献

[1]颉茂华,现代市场经济成本的成本控制新理念[J].财会月刊2002,(06).

第4篇:软件管理论文范文

论文关键词:软件项目管理软件产品质量因素

论文摘要:软件项目管理的核心是全面客户满意。其管理体系包括:战略管理、范围管理、成本管理、时间管理、人力资源管理、沟通管理、风险管理和质量管理。

在软件和信息科技行业,项目管理经常决定了一个产品或者企业能否成功。项目管理得到越来越多的企业和政府部门的重视,例如中国于2002年4月召开了有关项目管理的首次国际研讨会。具体操作与项目最根本的不同在于具体操作是具有连续性和重复性的,而项目则是有时限性和唯一性的。项目是一项为了创造某一唯一的产品或服务的时限性工作。所谓时限性是指每一个项目都具有明确的开端和明确的结束;所谓唯一是指该项产品或服务与同类产品或服务相比在某些方面具有显著的不同。各种层次的组织都可以承担项目工作。项目有时只涉及一个组织的某一部分,有时则可能需要跨越好几个组织。项目是执行组织商业战略的关键。

一、软件产品项目管理的重要性

20世纪80--90年代,许多大型企业管理信息系统MIS的开发都以失败而告终。这是为什么?一个重要原因是软件项目管理水平上不去,尤其是需求分析管理水平上不去,使得项目快要验收或交付时,却出了大问题:要么发现用户需求获取不准确,要么发现用户需求变了,致使做好的系统不能用或不好用。20世纪90年代初,上海一家公司在青岛做一个港口MIS项目,北京有一个单位在天津做一个港口MIS项目,都是因为甲乙双方软件工程基本知识不具备,使得项目管理不到位,导致2个大型项目不成功。现在软件应用领域空前广阔,深人到社会和科学研究等领域的各个方面。软件的需求也比以往更加多,软件系统设计也空前复杂。软件的项目管理问题也就因此而产生了。90年代中期,软件项目管理不善的问题仍然严重。据美国软件工程状况调查,只有10%的项目能够在预定的费用和进度下交付。于是软件项目管理成为软件项目发展中最重要的核心问题。为了使软件项目开发获得成功,必须对软件开发项目的工作范围、可能遇到的风险、需要的资源(人、硬件、软件)、要实现的任务、经历的里程碑、花费的工作量(成本),以及进度安排等做到心中有数。软件项目管理的目的就是提供这些信息,分析信息,并根据分析结果对项目做出调整。软件项目管理开始于技术工作之前,在软件开发的整个过程中持续进行,最后中止于软件过程结束。

二、软件项目管理体系

随着软、硬件技术以及通信技术的日益成熟,软件技术可以与所有的传统产业相结合,促进产品的更新换代,大幅度提高产品的附加值,提高劳动生产率,推动产业结构与产品结构的调整。因此,软件的开发以及应用不仅仅是软件开发机构的任务,更深地涉及软件使用者的切身利益,尤其像管理信息系统MIS(ManagcmentInformationSystem)、计算机集成制造系统CIMS(ComputerIntegrationManufacturingSystem)、企业资源计划ERP(EnterpriseResourcePlanning)及商业智能BI(BusinessIntelligence)等大型的复杂软件更是综合了管理科学、计算机科学、通信技术以及数学等各方面的知识,需要各类人员的协调工作才能完成。因此也就有必要从项目管理的角度去管理软件的开发和运行。从用户的角度来看,软件项目的生命周期应该包括项目前期的论证工作、项目计划、软件开发、运行、维护以及项目后评价。由此可见软件项目管理的范围不仅包括传统的软件开发过程,还应该包括开发之前的准备工作以及运行中的维护工作和对项目的总结工作。同时,在软件项目生命周期中存在着许多活动。根据活动之间的相关性,可以将软件项目的各种活动分为九大类。

(1)战略管理。根据用户的经营目标制定软件项目的策略,以便为其他各方面的活动提供指导。在制定项目策略的时候应该充分考虑用户和其他利益相关者的实际需求和市场因素。另外创造和谐的项目环境和连续改进也是战略管理的重要任务

(2)范围管理。其目的是控制软件项目的全部活动过程都在需求范围内,以确保项目各种资源的高效利用。成功的项目管理离不开用户、软件开发队伍和项目经理的一致理解和协调配合

(3)成本管理。软件项目的成本不仅包括开发成本,也包括开发之前立项阶段以及软件在运行中的费用。操作者的培训费用和项所使用的各种硬件设施费用也都是整个项目成本的一部分。这些成本都需要很好地计划和控制。

(4)时间管理。其内容有确定各项活动之间的时间相关性;估计各项活动的持续时间,跟踪各项活动的进展情况,动态调筷各项活动之间在时间上的协调。

(5)人力资源管理。在软件项目中应该为软件开发人员和管理人员等各类项目人员创造一个和谐良好的工作氛围。使他们能感到项目成功的把握和积极的工作心态,确保项目队伍的稳定性和连续性。

(6)沟通管理。沟通管理是一个收集、存储、配置和项目生命周期内所形成的各种信息的过程为了让每个项目相关人员及时得到所需的信息,需要很好地解决“什么时候、向什么人礼报什么的”的问题,此外软件开发队伍和用户之间的沟通也是沟通管理中的一项重要工作。

(7)风险管理。由于软件项目中存在着很多的不确定因索,也就必然存在着各种风险而且风险有可能造成不良的结果,对风险进行分析和监控贯穿于整个软件项目生命周期。

(8)质量管理。目前软件的质量还是一个模糊的概念并且难以衡量由于软件质量主要是在开发阶段形成的,因此软件项目质量管理的重点应放在系统分析、系统设计和编码阶段,走查、评审、调试和测试是保证软件质量的重要手段软件工程能力成熟度模型CMM(CapabilityMaturityModel)较好地解决了软件开发过程中的质量管理问题。

综合管理。综合管理的任务是对前面讨论的各类管理活动进行协调和控制,使这些活动相互配合。其核心任务是对各种方案进行评价,协调各方面的利益冲突确保项目总体标的最终实现。

三、软件项目管理的核心是全面客户满意

当前,不少软件业管理人上认为,软件开发的问题主要在软件开发的工程化、规范化和软件开发管理体制。他们按照CMM(CapabilityMaturityModel),IS09002的标准来建立他们的管理体系。这里有商业竞争的因素在起作用。但是,他们忽略了商业竞争中取胜最重要的因素—客户满意。他们没有考虑到他们的管理方法能否满足客户不断变化的需求。从长远来看,软件项目真正的成功是客户的全面满意。以客户满意为中心的质量是必需的。漠视质量或只关心产品/服务是否符合需要的方法再也不足以留住和获得客户。因此,软件开发项目组织必须先确定什么产品/服务可以让顾客满意,然后再努力满足客户的需求和期望。要实现此目标,组织必须识别对软件产品的各种特性中哪些是对客户的满意起决定作用的要素。例如,服务器操作系统软件,需要长时间稳定连续工作。稳定性则是该软件产品的关键要素。因此系统的开发管理围绕着这一关键要素来展开。尽管不少的组织明白没有客户一个组织就不能生存和发展,或者说没有客户就没有组织,但在项目实施过程中,仍然存在着客户满意的障碍:

(1)项目管理组织没有发展和完善对客户不断变化的需求和期望作出快速响应的能力。

(2)项目管理组织没有听取客户意见和建议的能力。

(3)项目管理组织努力倾听客户对项目的要求,却没有确认客户的需要和期望。

第5篇:软件管理论文范文

1 计算机软件工程管理的概述

计算机软件工程是个大范围的概念,包含的范围非常广泛。首先在计算机软件工程管理中要涉及到软件开发人员和管理人员。在计算机软件工程管理过程中,首先要对这些人进行管理。这些人员的能力水平,擅长的领域都不同,因此管理者应当针对不同的工作将这些人进行分组管理,让不同的人分管不同的工作,既能够方便管理者进行统筹管理工作,又能够充分发挥工作人员的能力,提高工作效率。其次,计算机软件管理还要关注软件开发的质量。要保证计算机软件的质量,就要对整个开发和管理的全过程进行管理,包括数据、设备等。除此之外,计算机软件工程的管理还包括对风险的管理。计算机软件工程存在着较大的风险,既有软件开发失败的风险,又包含信息泄露的风险。管理者应当提升风险意识,加强对计算机软件风险的管理和控制,最大限度的降低风险。

2 计算机软件工程管理中存在的问题

在计算机软件工程管理中管理的范围广,项目管理水平仍不成熟,管理者尚未意识到自动化管理对软件工程管理的意义。目前,在计算机软件工程管理方面存在的以下问题。

2.1 软件管理数据存在问题

计算机软件的开发和运行,离不开对数据的有效管理和运用。因此,管理者应当加强对软件数据管理的重视程度,加强对数据采集和存贮,数据存储过程中要加强风险意识,避免数据丢失、被盗或被病毒侵入。在不采用自动化的前提下,计算机软件工程的数据需要进行人工操作和管理,人工操作和管理不可避免地會存在精确度不高,易出错,难以校验等缺点。

2.2 对环境设备的管理不足

计算机软件工程的环境设备包含几个方面。首先,计算机软件工程开发需要大量计算机设备,这些设备的管理过程中存在着一定的问题,如计算机硬件的防尘、防潮不到位,计算机工作环境易受周围环境的影响,要保持干净除尘等,但实际工作中由于管理存在着一定的问题,工作人员意识度不高,导致计算机运行环境受到灰尘、烟雾、磁场等的影响。其次,在环境设备管理方面,计算机软件工程开发需要功能强大的计算机,能够保证计算机软件正常开发,但在实际工作中,常常会出现计算机兼容性差,运行速度慢,严重影响软件工程的开发效率。

2.3 软件测试管理不足

计算机软件工程是一项浩大的工程,软件测试是整个工程项目中一个十分重要的部分。因此,软件测试管理工作就显得尤为重要。但是目前有很多工作人员不重视软件的测试工作,或者没有及时进行测试,忽略了软件中存在的漏洞,给软件的使用和安全性造成了重大影响。

2.4 安全管理不足

计算机软件工程开发中,软件的安全性问题影响着整个工程项目的顺利开展。管理者应当加强安全意识,并加强对员工安全意识的培养,设置安全性管理策略。但是仍有一些员工的安全管理意识不够,没有严格执行企业的安全管理要求,导致信息泄露或者被病毒侵入,给企业造成严重的损失。

2.5 需求与实际不符

开发计算机软件是为了满足客户的需求,但是实际工作当中,软件开发人员更注重业务数据、测试及开发活动,缺乏对项目的整体规划和管理,需求分析不足,与客户的沟通协商缺乏,导致开发的软件与客户的需求不符。

3 计算机软件工程的自动化管理措施

为解决以上的计算机软件工程管理中存在的问题,提升管理水平,可以将自动化理念实施到计算机软件工程管理当中。

3.1 对软件数据的自动化管理

用自动化方式对软件工程项目进行管理,需要工作人员对自动化设备进行定期检测,以防设备出错,并对软件数据进行管理,加强对软件数据的校验,加强对软件的调试工作,判定运行是否会出错,若有错误出现要及时进行修改处理。其次,在数据的自动化管理方面也要重视数据的备份,防止数据丢失、被盗、病毒侵入等。一般情况下可以利用计算机、硬盘等设备进行存储,也可以采用云储存进行备份,云储存与传统的储存方式相比较有很多好处,如储存量大、不易丢失、易恢复等特点,可以有效保存数据,提高备份的安全性。

3.2 对环境设备的自动化管理

在计算机工程自动化管理的过程中,还有一项重要内容,就是对计算机软件的运行设备进行管理。计算机设备的正常工作对环境有一定的要求,要保持环境干燥、防止烟雾和灰尘对计算机磁场造成一定程度的影响。噪音对计算机的工作也有一定的影响,因此也要注意防止噪音对计算机环境的影响,注意隔音和消音。计算机软件对兼容性要求也很高,因此,当计算机软件工程需要用到第三方设备时也要先检测兼容性,保证软件能够在第三方品台正常运行,针对兼容性的问题,也要加强监督,实施监控数据,一旦出现问题,可及时修改。工作人员要定期对计算机硬件环境进行检测和维护,定期检测。

3.3 对软件测试的管理

软件测试管理是计算机软件工程的核心内容之一,对确保计算机正常运行有着重要意义。对软件进行测试是为了及时发现漏洞并进行纠正。采用自动化技术对软件进行测试可以提高检测效率,大大节约人力成本,对系统进行自动检测的修复,可以提高软件工程的效率和效果。利用自动化检测可以及时发现问题,随时掌握整个系统的运行状态,能够彰显出自动化管理的优势。计算机自动化测试是通过预先设定好检测程序,对需要检测的系统实施完成的测试,可以极大地减少人为检测的不足,程序还可以准确跟踪和定位检测的进程,可以准确定位系统的问题所在,有利于采取针对性的办法解决问题。

3.4 对软件安全的自动化管理

企业的计算机软件是企业的核心机密,必须保证其安全性。这里的安全性一方面是指信息被外界侵入;另一方面是指因管理不善,信息出现丢失、毁损、泄露等等情况。对此,企业应当要求相关工作人员遵守保密要求,不能私自将信息带出企业。对于企业存储的数据和工作过程中运行的数据,企业也需要加强管理,可以配置专门的人员进行安全管理,也可以利用计算机设置密码进行保护,对密码进行自动化管理,定期检测。

3.5 要制定清晰的计划,关注用户的需求

在软件开发以前,首先需要进行设置严密的计划,对用户的需求做可行性分析的,分析需求状况,根据需求进行决策。在计划阶段,要考虑项目的计划性、动态性。经济性和相关性。

4 计算机软件工程自动化管理的意义

将自动化技术运用到计算机软件工程项目的管理中对软件工程的开发维护、软件开发人员的管理、软件的质量以及软件开发的效率和效果,甚至是人们的生产和生活都有着深远的影响,有效提升管理效率,改善管理理念。具体意义阐述如下。

4.1 提高软件工程管理的效率和效果

将自动化引入软件工程管理当中,利用自动化技术对软件工程进行管理,有利于提高管理的效率。通过自动化技术,自动化设备可以按照人為输入的指令进行操作,完成需要管理的任务。自动化管理与人工管理相比,管理的任务量少,速度快,准确度高,使得软件工程项目管理效率更高,效果更好。

4.2 方便生活和工作

自动化管理技术将人从简单重复劳动中解放出来,大大改善了生产方式。同时,计算机软件的自动化管理的进一步升级,使得管理技术从生产领域运用到生活领域,极大的方便了人们的生活。

4.3 推动项目管理技术的发展

将自动化运用到计算机软件工程开发的项目管理,是自动化技术的一个新尝试,使得项目管理水平上升了一个新台阶,促进计算机软件更好地开发利用,为管理技术提供了一个新理念。

第6篇:软件管理论文范文

软件工程是一项专业性强、难度大的学科,目前软件工程管理还处于发展期,但其放在何处都会成为一个性质有效的管理。我国部分小型软件企业要想在激烈的市场竞争中获取成功就必须要进行软件工程管理。不过对软件工程进行管理并不是一件容易的事,在整个管理过程中需要面临以下问题。缺乏系统的培训。现在我国的一些软件公司的实际情况都是任命专业能力过硬的人员为项目经理,而这些专业知识过硬的技术人员通常没有过硬的软件工程管理功底,而企业没有系统的培训,导致了项目经理在软件开发过程中无法对整个过程中进行系统的管理。缺乏计划意识。项目经理对软件开发中计划的作用没有一个正确的认识,导致了开发项目没有一个合理的可行性计划,这样在软件开发过程中,因为人员因素或外界因素经常会导致计划好的事情被拖延,从而造成进度受到拖延[3]。缺乏管理意识。因为在软件开发中,项目经理经常投入到技术工作之中,从而忽略了对软件工程的整体管理。这样经常会造成项目开发过程中,每个工作人员的任务得不到适当的安排,造成计划不周,资源浪费等。项目经理没有将任务合理地分配到工作人员手中,造成许多任务都需要自己埋头苦干,没有精力对整个项目进行管理。风险管理中的问题。部分项目经理在管理中缺乏风险意识,很少对项目中存在的风险进行合理分析,制定的风险管理也比较随意,没有真正起到风险防范的作用。软件工程复杂化。近年来软件项目规模不断增大,参与同一软件项目的人数也在急剧增加,同时软件工程管理的困难也变得更大,在软件工程管理中需要解决的问题也在增加,这些都增加了软件工程管理的难度[4]。

2软件工程的管理方法

2.1构建软件工程管理体系

构建合理的软件工程管理体系主要包括以下内容:第一,构建人才体系。在软件工程管理中,人才对管理有着重要的作用,人才是做好软件工程管理的前提。第二,为了提高工作人员工作中的积极性,确保项目中所有目标能够得到落实,应当加强人力资源管理。第三,在人才的管理中切记要以平等的态度进行管理,而不是控制[5]。

2.2加强风险管理和进度管理

对于软件项目管理中的风险管理和进度管理,我们也应当分为两个方面来进行探讨。第一,构建风险管理体制,只有这样才能及时发现软件工程管理中存在的风险,并对存在的风险进行及时处理。第二,提高项目中风险管理人员的风险意识,确保风险管理人员能够对风险有一清楚的认识,并且能够对风险进行合理的分析,针对风险提出有效的风险防范制度。在风险管理中风险管理人员应当将风险报告提交给项目经理,对项目中存在的风险进行有效的防范,阻止风险出现,确保企业的顺利发展[6]。

2.3加强对项目团队的管理

首先,应当增加工作人员之间的联系与沟通,使整个团队中的人员都具有沟通意识和团队合作精神。其次,对各个工作人员的工作内容进行明确分工,合理地将责任分配到每个工作人员,保证工作开展后一切都能顺利地进行。最后,调动项目中工作人员的积极性和注重性,使团队中的工作人员都能够完全投入到工作之中,提升团队工作能力,改善工作人员的工作态度,做好软件工程管理工作。

2.4对软件工程进行监督

软件工程监督是软件工程管理中的重要方式,工程监督指的是对项目所自制定的目标进行实时监测,软件工程监督要贯穿整个项目,其目的在于对软件开发的流程进行规范。软件工程监督,可以使开发过程中的成本、进度、质量实现透明化。在对软件监督过程中软件需要完成以下任务。由项目负责人对项目进行监督,在监督过程中,要对监督数据进行总结,并对数据进行合理分析,及时发现问题并解决问题。将CMM标准应用于软件工程管理之中,CMM标准的引用可以提升软件开发效率,降低软件开发中的成本以及风险,缩短开发时间,提高软件质量,总之将CMM标准运用到软件工程管理之中,能够确保用户得到理想的软件产品。

3结语

第7篇:软件管理论文范文

关键词:软件公司;成本控制;探索

1经营决策阶段的成本及其控制

经营决策阶段成本是指公司经营方向的选择,这是成本管理的第一个也是最为核心的环节。不过对于大多数IT软件业公司而言,这个阶段往往是最大的问题之所在,有时经常凭一个觉得是灵感的想法或者对市场初步的直观层面的调研就进行的决策。而这样的结果是往往没有摸透市场的真实情况,轻率上马项目,造成方向性错误,以至于导致企业的危机。

该阶段的成本控制,关键在于经营决策前科学而深入的市场调研及准确分析,目前很多中小型IT软件企业,其经营部的职员大多都并不是社会调查专业的,因而他们做市场调查的过程中所采用的方法不太科学,如在样本选取及抽样过程不合理,没有按照严格的社会调查方法进行调查和数据分析,甚至问卷设计都存在倾向性导致调查数据信度偏低。此外,大量的公司自我宣传的各种形式的软文和竞争对手有意的攻击性文章夹杂在其中,并不是很容易的进行分辨,更何况数据的随意性,来源的不可追溯性各种情况,所以只能作为参考。

2需求整理及分析确认阶段的成本及其控制

需求整理指市场经营人员根据高管对于市场方向的决策,而提出的具体的产品或者项目的原始需求,需求分析是指技术员对市场部门的需求进行分析,评估其可实现性以及实现难度,大致工时等,提交相关需求分析报告,最后市场经营部门进行确认这个阶段。

该阶段的成本控制,首先需要搞清这种沟通过程中产生偏差的原因,最为主要的往往并不是技术语言和市场语言的差异,或者市场人员和技术人员之间的思维定势的差异,而在于两者缺乏确定的科学的流程和在交流之前的准备以及相关概念约定俗成的定义造成的问题,同时还由于沟通和确认环节由于其特殊性,经常难以被有效的纳入进度管理程序流程当中。而提高该阶段的成本控制效率,必须逐一针对性的解决以上问题,首先要清晰的确定并严格执行市场和技术沟通的流程,尤其是要明确每个环节的控制点,也就是双方交付给对方的关键交付物,一定要有清晰的共同确认的模板,同时每次沟通前必须对于一些概念有着清晰的界定,然后公布这些信息,并在沟通前做好充足的准备,明确每次沟通前要沟通什么,要解决哪些问题,沟通结束后要交付哪些文档让双方进行确认等,同时一定要通过线上或者线下的管理模式,讲所有沟通环节全盘把握,并纳入进度管理。

3规划阶段成本及其控制

规划阶段成本是指在需求已经得到确认后,进入技术规划阶段的相关成本控制,该阶段有些软件开发公司常常出现的问题是对于规划予以过度的期望和过于沉重的内涵,在实际项目操作过程中,这个规划实际上包含着技术规划和非技术规划两个部分,因为对这两个部分的混淆,导致一些技术层面和市场层面的东西不必要的纠缠在一起,并且直接导致项目进度的拖欠,而且会导致由于非技术规划的不清晰,直接影响技术规划层面的实施。

该阶段的成本控制,必须清晰的区分非技术规划和技术规划,尤其在公司内部技术部门和市场经营部门之间的职责,需要设立一个在提出需求到技术规划之间过渡的位置,即对于需求具体细节的整理,要对于交付物有着清晰的确定,尤其是在不同时期交付不同的关键文档,如除了上面说的那六个文档外,技术部项目组长在需求分析的时候,还应该明确提交功能模块分析,开发代价,功能流程图,功能关联性图,可维护性及可拓展性分析等六个文档,此外在项目开发规划阶段,还要对于控制点的一些要素进行详细的规划用来提交给市场部门,如详细页面元素,页面元素价值度分析,表现形式,页面结构,页面效果等。

4开发阶段的成本及其控制

开发阶段的成本指需求确定并且规划清晰后的具体开发过程的成本管理问题,该阶段相对其他阶段来说比较清晰,但这里笔者认为需要关注的是,如何使得人力资源得到最大程度的利用,它是指公司第一线技术人员的能力最大程度发挥的状态,包含几个层次,(1)全部时间利用,(2)最大效率利用,(3)最大潜力激励利用,这三步需要逐步递进实现。这个需要一种完善的内部管理制度,以及公平公正的价值认定模式和绩效制度,从而一方面促进员工本身的发展,一方面增加对人才的吸引力。

该阶段的成本控制,可以引入最大可控制成本的概念,这里是指人力资源最大程度发挥后所能控制的成本,是公司在一定投入前提下,最大的可能的减少因管理导致人力发挥不足够而造成的成本,该成本为人力资源的极致成本,无法再进一步降低,此成本状态下的仍然出现效益不佳情况,则可说明在经营定位和经营方向上的问题,而非内部问题。促使人力资源得到最大利用度和发挥度,在此基础上的成本,为最大可控制成本,以上可以通过内部的管理系统来很好的实现。5需求变更成本及其控制

需求变更成本指在开发过程中,由于市场部门的需求改变导致的成本增加而实施的控制,对于项目开发的过程中,需求的频繁变更就成本控制而言是致命的,很多项目由于需求的变更而导致破产。

该阶段的成本控制,最关键的是要对于需求变更过程进行严格的管理,要从需求变更的开始,对于整个变更的每个具体的步骤进行跟踪,并且严格核算每次变更所需要的工作时,从而做好评估。同时,务必要明晰需求变更的必要性和风险性,以及所带来的实际成本的增加,所以需求要尽量经过详细的论证。

6测试成本及其控制

第8篇:软件管理论文范文

关键词:PCI总线WDM驱动MPEG-1压缩卡

随着计算机技术、多媒体和数据通信技术的高速发展,人们生活水平的提高,对计算机视频的需求和应用越来越多,如视频监控、视频会议、计算机视觉等。计算机视频提供给人的信息很多,但是视频的数据量很大,不利于传输和存储,使其应用受到不少限制。为解决视频数据的存储和传输,唯一途径就是对视频数据进行压缩。

目前常见的视频压缩方法有MPEG-1、MPEG-2、MPEG-4、H.261、H.263等。考虑压缩技术的成熟度和该压缩卡的主要用途,本文采用MPEG-1作为压缩标准,研制了基于PCI总线的MPEG-I压缩卡。该卡适用于视频监控、视频会议等多种应用场合。该卡加上一台主机、摄像头和软件可构成一个完整的视频采集压缩系统。

1系统特点

(1)支持BNC、RCA、S-VIDEO视频接口;

(2)支持PAL和NTSC制式;

(3)可对视频实时预览,最大分辨率可达720×576×32;

(4)可对声音进行同步监听;

(5)可对音、视频信号进行MPEG-I压缩,生成MPEG文件和VCD文件;

(6)用户可编程MPEG-1编码设置,可支持CBR和VBR;

(7)可一机多卡同时工作;

(8)可从动态影像中捕获单帧,生成JPG和BMP文件;

(9)支持Win98/Win2000。

2系统硬件设计

2.1系统组成

该系统主要由视频解码、音频解码、压缩核心和PCI接口等组成,其总体框图如图1所示。

2.2视频解码设计

视频解码部分主要完成模拟视频到数字视频的处理,以供后面预览、压缩用。视频解码芯片常用的有SAA7110、SAA7113和SAA7114等。本方案中采用Philips公司的SAA7114。SAA7114有六路模拟输入,内置模拟源选择器可构成6×CVBS、2×Y/C2×CVBS、1×Y/C和4×CVBS;两路模拟预处理通道,内有抗混迭滤波器;CVBS或Y/C通道含完全可编程静态增益控制或自动增益控制功能,对CVBS、Y/C通道可进行自动钳位控制;能自动检测50Hz/60Hz场频,并可自动在PAL和NTSC制式进行切换;能将PAL、NTSC和SECAM信号解码及模数变换得到符合ITU-601/ITU-656的数字电视信号。该芯片是目前视频解码芯片中接收视频源的宽容性及视频解码图像质量最好的一种。其通过I2C接口,进行初始化设置。

本系统采用ImagePort作为数字视频输出端口,数字视频格式采用ITU-656AI11(PIN20)作为BNC/RCA输入脚,AI12、AI22作为S-VIDEO输入脚。

图2SAA7146A方框图

2.3音频解码设计

音频解码的数据一部分提供给SAA7146A作声音监听用,另一部分用于压缩。考虑到成本,本系统采用BURR-BROWN公司的PCM1800E。该芯片是双声道单片ΔΣ型20位ADC单+5V电源供电,信噪比为95dB(典型值),动态范围95dB(典型值),内嵌高通滤波器,支持四种接口方式和四种数据格式。其采样频率为32kHz、44.1kHz和48kHz可选。

本系统采用从模式,20位I2S数据格式。主时钟由SAA7114提供。

2.4MPEG-1压缩部分设计

本系统中MPEG-I压缩芯片选用ZAPEX公司的SZ1510。该芯片基于TI的TMS320C54xDSP内核,能对ITU-601/ITU-656数字电视信号和PCM音频流进行MPEG-1实时压缩,可生成多种流,如音频基本流、视频基本流、音视频复合流等。

该芯片外接27MHz晶振,可支持多种主机接口,可工作在复用或非复用、Intel或Motorola类型总线。通过输入管脚HCONFIG1:0和SysConfig寄存器可设置成六种总线接口类型:Intel8051类型的数据/地址复用的8位总线、Motorola类型的数据/地址复用的8位总线、Intel8051类型的非复用的8位数据总线、Motorola类型的非复用的8位数据总线、Intel8051类型的非复用的16位数据总线和Motorola类型的非复用的16位数据总线。支持I2S声音接口。

本系统中采用Intel8051类型的非复用的16位数据总线。

2.5PCI接口部分设计

本系统中PCI接口芯片选用SAA7146A,该芯片并不是通用的PCI接口芯片,而是一个多媒体桥(MultimediaBridge)。方框图如图2。该芯片符合PCI2.1规范。它有八个DMA通道,三个视频,四个音频,一个DEBI(DataExpansionBusInterface)。还具有两路视频通道,可对视频数据进行缩放,一路可无级缩放HPS(HighPerformaceScaler,其纵向可达1:1024、横向可达1:256;另一路有级缩放BRS(BinaryRatioScaler支持CIF和QCIF格式。

音频接口以I2S为基础,通过编程控制以支持MSB-FIRST的不同格式及不同的时序格式。

本系统中该部分主要实现功能如下:

(1)通过DEBI接收SZ1510产生的MPEG-1数据,传输到内存;

(2)通过视频接口,接收SAA7114输出的视频解码信号,并进行亮度、色度、饱和度的控制,并实现无级缩放功能实现视频预览功能;

(3)通过音频接口,接收PCM1800E输出的PCM编码信号,传输到内存,实现声音监听功能;

(4)提供符合PCI2.1规范的接口,将板上数据传输到主机内存。

3软件设计

软件设计主要包括驱动程序设计和应用层的API设计。驱动程序主要负责与硬件打交道,应用层API主要负责与驱动程序接口。由于设计了应用层的API,应用程序可很容易在上面进行开发。

3.1驱动程序设计

为了支持Windows2000和Windows98采用WDMWindowsDriverModel驱动程序。WDM作为微软的最新驱动程序模型与传统的Win3.x和Win95使用的VxD驱动完全不同。WDM可支持电源管理、自动配置和热插拔等。WDM驱动的设计可以采用DriverStudioDS、Windriver、DDKDriverDeviceKit等。本系统驱动采用Windows2000DDK借助VC6.0设计。

3.1.1MPEG-I压缩部分

在驱动中,重置SZ1510后,就可以装载相应工作模式的微码;根据需要,设置好相应寄存值后就可以启动SZ1510对视频数据进行MPEG-1编码。每当产生的压缩数据超过SZ1510内部的FIFO门限后,SZ1510产生相应中断,内核调用中断例程,在中断例程中调用中断延迟例程DPC,在中断延迟例程中接收产生的压缩数据。SZ1510提供两种方式提取数据,一种用I2C总线接口方式,另一种用DEBI方式。

在本系统中,采用DEBI进行压缩数据的传输。考虑到压缩数据产生的速度,本系统开了32页大小的缓冲区,在中断延迟例程中填充该缓冲区。每当填满8页大小后,产生一个事件通知应用层进行数据读取。通过这种方式,可以避免压缩数据的丢失。

其流程图如图3所示。

在驱动中,压缩数据的提取方式将极大地影响生成MPEG文件的质量。如果处理不当,将导致马赛克、跳帧等现象。

3.1.2驱动程序中用户缓冲区的访问

驱动程序访问用户内存主要通过缓冲I/O和直接I/O。缓冲I/OI/O管理器创建一个内核模式拷贝缓冲区,并把用户缓冲区的内容拷贝到该缓冲区中,并在IRP首部的AssociateIrp.SystemBuffer域中存储该非分页内存地址。驱动程序可简单地读写该块内存。直接I/O,I/O管理器为输入数据提供一个内核模式拷贝缓冲区,对输出数据提供一个内存描述符(MDL)。为了使用缓冲I/O或直接I/O在创建设备时,必须设置设备对象的Flags域中的DO_BUFFERED_IO标志位来使用缓冲I/O或设置DO_DIRECT_IO标志位来使用直接I/O。

在本驱动中由于缓冲I/O和直接I/O都被使用,DO_BUFFERED_IO标志位和DO_DIRECT_IO标志位都被设置。

在定义IOCTL码中,对缓冲I/O使用METHOD_BUFFEERED对直接I/O使用METHOD_OUT_DIRECT。

3.2应用层API设计

应用层对驱动程序的访问通过调用Win32I/O函数(如ReadFile、WriteFile和DeviceIoControl)访问。当应用层调用Win32I/O函数以请求I/O后,该请求由内核的I/O系统服务接收,I/O管理器对该请求构造合适的IRP包,并将其传给驱动程序栈,IRP在栈中进行传递,传到驱动程序进行处理,并将结果返回给应用程序。

第9篇:软件管理论文范文

1.1工程质量控制

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

1.2工程进度控制

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

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

2.1工程审核

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

2.2工程监督

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

2.3工程测试