软件开发过程管理
已经发送,在网上找了好久,觉得满意就给分哈。
软件过程管理的作用(软件过程管理的作用包括)
软件过程管理的作用(软件过程管理的作用包括)
软件过程管理的作用(软件过程管理的作用包括)
y在选择3G 培训机构的时候要起码的了解一些情况,
比如师是否有线上真实的应用?教学设备如何?是不是真正的先 就 业后 付款?
华夏 博大3G学 院,
很好,采用PC机教学。看看吧
软件项目管理的实际作用?
软件项目管理是为了使软件项目能够按照既定的成本、进度、质量顺利完成而对成本、人员、进度、质量和风险进行分析和管理的活动,它是决定软件项目能否高效、顺利进行的基础性工作。目前的软件开发过程中尚存在开发环境复杂、代码共享困难、程序规模增大、软件重用性程度不高以及软件维护困难等问题,因此,对软件项目的管理就显得尤为重要。软件项目管理较其他类项目管理的特殊性主要体现在如下方面:
(1)与普通项目不同,软件项目涉及的是纯知识产品,其开发进度和质量难以准确估计和度量,很多软件项目交付的成果事先不可见。有的应用软件已经不再是业务流程的电子化,而是同时涉及业务流程再造或业务创新,这就造成了项目需求获取环节的困难。
(2)软件项目开发的周期长、复杂度高、变更可能性大。软件项目开发周期一般比较长,一般大型的软件项目开发周期达到2年以上。软件系统的高复杂度使软件开发过程的各种风险难以预测和控制。软件项目的变更主要来自外部和内部两个方面,外部变更包括商业环境、政策法规等对项目范围和需求造成的影响;内部变更包括组织结构、人事变动等对项目造成的直接影响。
(3)软件需要满足目标客户的期望。软件项目给客户提供的是服务,服务质量不仅由终交付产品决定,更取决于客户的满意度。不同行业的客户对项目的关注点也不相同,因终交付产品决定,更取决于客户的满意度。不同行业的客户对项目的关注点也不相同,因此,满足客户期望的前提是在项目之初以及项目开发的过程中始终关注客户的需求变更和关注点。从上述软件项目管理的特点可以归纳软件项目管理的根本目的是保证软件项目的整个生命周期都能在管理者的控制下,按照既定的成本,保质如期地完成软件开发并交付客户。软件项目管理的四大变量分别为范围、质量、成本和交期,而项目管理主要关注项目的范围、成本和进度三方面,此三方面相互制约、相互影响。成功的项目管理需要积极地管理这些相互作用的方面。
项目管理在企业管理中扮演着越来越重要的角色。项目管理软件对团队沟通、交付质量、按时完成、按成本完成和客户满意度这5个因素有显著的影响。当下,企业也需要一款合适的项目管理系统来辅助管理,提升管理效率,提高包括团队、客户和项目发起人在内所有相关方的满意度。
使用项目管理软件的对项目管理的好处有哪些呢?
1、如果项目参与人数少,时间短,可以采用人工记录工作安排且能项目结果。
但是项目参与人数多,工期也特别长,如果采用人工管理,不仅信息记录困难,项目进度不易跟踪,项目中可能出现问题,导致项目失败。
使用项目管理软件,进度猫,它能实时记录更新项目信息,及时跟踪项目进度,大大提升了项目的执行效率。
2、帮助团队更好地协作,项目团队可能会由不同部门的成员组成。他们必须履行日常职责,这使得所有其他利害关系人很难定期参加会议并获得新消息。
项目管理软件的优势在于,它使有效协作变得极为简单,在进度猫甘特图中,我们可以在甘特图直接看到项目参与人有哪些,他们的工作是什么。
3、项目牵扯到范围广,手工管理难以做到信息公开透明。项目不知道员工做了什么,没做什么,项目各方无法得知其他人的情况,进而浑水摸鱼,难划分,出现问题也难追责。
使用进度猫甘特图,我们及时了解项目进度,并且实时和透明的信息使项目中的问题更容易被发现,项目能找到问题的原因及确定问题的人。
4、不会受到实际地理位置或部门不会限制;工作方式也不再严格地局限于常规的办公室,现代企业劳动力分散,管理劳动力可能会遇到很多问题。
有了进度猫项目管理软件,使远程项目管理变得容易,项目管理工具可以帮助管理人员有效团队。
项目管理工具为项目提供大量的数据,更加方便决策,把项目从繁重的日常、报告等工作中解放出来,去做真正重要的工作,如人际交往、团队合作和力。
软件项目主要包括工作量、成本、开发时间的估计,并根据估计值制定和调整项目组的工作;风险管理预测未来可能出现的各种危害到软件产品质量的潜在因素并由此采取措施进行预防
软件度量的过程度量
弗罗哈克(William A.Florac)、帕克(Robert E.Park)和卡尔顿(Anita D.Carleton)在《实用软件度量:过程管理和改善之度量》(Practical Software Measurement:Measuring for Process Mament and Improvement)中描述了过程管理和项目管理的关系。认为软件项目团队生产产品基于三大要素:产品需求、项目和已定义软件过程。度量数据在项目管理中将被用来:(1)识别和描述需求,(2)准备能够实现目标的,(3)执行,(4)跟踪基于项目目标的工作执行状态和进展。而过程管理也能使用相同的数据和相关度量来控制和改善软件过程本身。这就意味着,软件组织能使用建构和维持度量活动的共同框架来为过程管理和项目管理两大管理功能提供数据。
谈谈对软件过程管理的认识
定义:软件企业开始希望能有效地控制软件的开发和维护过程,使企业内部形成的软件工程和软件管理文化.
软件过程研究的是如何将人员,技术和工具等组织起来,通过有效的管理手段,提高软件生产的效率,保证软件产品的质量.
一,软件能力成熟度模型CMM
软件能力成熟度(the Capability Maturity Model for Software,简称CMM)是美国软件工程研究所(Software Engineering Institute,缩写为SEI)首先提出的,CMM 可以用于软件组织在软件开发流程上的能力成熟度内部评估或者第三方对本组织的评估;也可以用于软件组织的软件过程改进.
一般情况下,软件组织大体可分为两类:不成熟软件组织与成熟软件组织.
CMM提供了一个框架,将软件过程改进的进化步骤组织成5个成熟等级,为过程不断改进奠定了循序渐进的基础.
1 初始级 2 可重复级 3 已定义级 4 已定量管理级
5 优化级
CMM有两个基本用途:软件过程评估和软件能力评价.
二,个体软件过程PSP
目前不同软件开发组织根据自身的规模及管理水平,通常在软件生产中采用不同的软件过程方法或多种过程方法并用,例如"统一过程","小组软件过程","个体软件过程"等.
个体软件过程(PSP)能够指导软件工程师如何保证自己的工作质量,估计和规划自身的工作,度量和个人的表现,管理自身的软件过程和产品质量.
三,统一过程RUP
Rational Unified Process(简称RUP)是一种软件工程过程,各个组织可根据自身的实际情况,以及项目规模对RUP进行裁剪和修改,以制定出合乎需要的软件工程过程.RUP 吸收了多种开发模型的优点,具有很好的可作性和实用性,
RUP是用例驱动的,以体系结构为核心的迭代式增量开发模型.
RUP将软件过程分为初始阶段,精化阶段,构建阶段与产品化阶段,其中每个阶段又可以进一步分解为迭代.
RUP中有9个核心工作流,分为6个核心过程工作流和3个核心支持工作流.尽管6个核心过程工作流可能使人想起传统瀑布模型中的几个阶段,但应注意迭代过程中的阶段是完全不同的,这些工作流在整个生命周期中一次又一次被访问.9个核心工作流在项目中轮流被使用,在每一次迭代中以不同的重点和强度重复.
(1)商业建模
(2)需求
(3)分析和设计
(4)实现
(5)测试
(6)部署
(7)配置和变更管理
(8)项目管理
(9)环境
如何实施软件项目的过程管理
软件需求的快速增长推动了软件产业的发展,也推动了软件过程的思想。今天,软件过程已经越来越被软件人员所认识和追捧,国内很多的软件企业甚至将SW-CMM当成了成功的宝典。殊不知,尽管软件过程的先驱SW-CMM提出了作为软件企业应该具有的过程域,但SW-CMM只提供了一个软件企业进行过程改进、增加企业软件成熟度的改进建议框架,而没有告诉一个软件企业该如何进行过程实施。换而言之,它描述了软件过程的期望,而没有指导企业如何实现。因此,在软件过程上我们应该谋求一些更具体、更可作的方法和步骤。 过程管理在软件项目中的作用 人们很早就注意到,在软件开发过程中,如果将关注点只放在终的产品上,不关注开发过程,那么不同的开发队伍或者开发个人可能就会采用不同的开发方式,从而导致结果无法预期,因为这时软件产品质量的高低完全依赖于个人的素质和能力。反过来,在软件开发过程中,如果将关注点放在项目的开发过程中,那么,不管谁来做,也不管是谁提出的需求,经过同一过程开发的软件,产品的质量是一样的。为了保证软件的质量,人们很自然地开始重视软件过程。 简而言之,软件过程的目的是保证软件产品具有相对稳定的质量。对于软件企业来说,软件过程的质量是企业能力的体现,它不应依赖于个人。也就是说,产品的质量依赖于企业的过程能力,而不依赖于个人能力。如果企业的过程不是很完善,其软件质量可能也不是很高,但可以通过不断完善过程,来不断提高产品的质量。 在软件开发中的过程经验有很多,如需求管理、设计方法以至于编码的风格、技巧等,还有很多的项目管理过程中的技巧方法等。初,这些成功的过程只在成功者的头脑中的,没有被企业内部共享和重复利用,从而使得这些本应从属于企业的巨大财富被人们所忽视,这无形中给企业带来了巨大的损失,特别是当人员流动时,企业的这种财富也随之流失。如果企业将成功的过程进行有效的积累,形成可重复的过程,让过程能够被共享、复用,并得到持续的改进,这岂不是很好的方式!软件过程管理可以达到这个目的。在项目管理的时候,可以通过参照过程管理来提高项目管理的质量,同时,通过实际项目管理过程中的经验和教训来提高过程质量,以便为将来的项目管理提供更多的经验。 软件过程在软件项目中的作用就相当于硬件生产的工艺一样。在生产硬件的时候,工艺是判断产品质量的标准。但是,目前软件没有这样的惟一判断标准,什么时候软件过程完善到可以作为判断软件惟一标准的时候,那可能就是软件发展到了一个成熟的阶段了。 过程管理的主要内容包括过程定义与过程改进。过程定义是对佳实践加以总结,以形成一套稳定的可重复的软件过程。过程改进是根据过程的使用情况,对过程中有偏或不够切合实际的地方进行优化的活动。在软件项目管理过程中,如果能很好地定义和控制软件过程,就能很好地控制项目,从而保证软件产品的质量。 适用的软件过程来自积累 好的软件过程能支持软件项目的管理,而不正确的过程定义会起反作用,成为软件开发的束缚。有的软件企业照搬照抄某些过程标准或者照搬其他企业的过程定义,而在实施过程中这些过程定义由于不适合企业的具体项目,结果导致大量的会议和提量无用的文档等无用功,而且增加了管理难度,增加了成本,后却没有带来产品质量的提高。所以,正确的软件过程应该是适合自己企业,适合自己项目的软件过程。 目前很多的软件企业通过了CMM的二级、以至于四级、五级的评估,但是其中的一些企业,它们只是给外人看的,不是给自己用的,而且无形中给自己的企业增加了很大的包袱,这些企业好像本来是穿30号鞋,现在却给自己穿上40号鞋子的感觉一样。 CMM过程管理体系的确描绘出了一个美好的软件过程蓝图,这个蓝图就像一座壮观的高楼大厦,但是罗马不是一天建成的,冰冻三尺,非一日之寒。高楼大厦是一层层建造起来的,软件开发过程也需要一步一步建立,而不应该将别人的高楼大厦搬过来使用。过程的建立需要坚实的基础,否则企业会劳民伤财,有付出没有回报。 笔者在实施软件过程体系中,也遇到企业内软件人员的层层障碍,原因之一就是过程制定得不合适。过程实施不当会限制开发人员的创造力,制约开发人员的灵活性。这样希望提高软件质量的过程变成束缚软件开发的负担。 现在,有些机构或者企业也希望开发一些可以多次使用或者可以作为标准的统一过程(例如RUP)。作为一个软件企业,开始的时候没有足够的过程管理积累,可以采取摸索、实践、提炼、改进的步骤进行。阶段,可以针对具体项目制定具体的过程,而且一定要简单实用,然后逐步调整过程。也就是说步应该是针对具体项目制定过程,等积累了一定的项目管理经验后,第二阶段就可以针对企业制定相应的过程策略。后,我们可以期望软件行业的过程标准。所以,软件项目过程的制定应该是循序渐进的。不一定仿照某些标准,简单实用是重要的。 一个可以被更多人认可并行之有效的软件过程是实践出来的,而且软件过程也不是枯燥的、抽象的条款,而是具体的、生动的、有实际意义的、可作的工具。在具体进行过程定义的时候,应该是从项目级过程逐步积累到企业级过程,再由企业级过程裁剪为项目过程。如果所有的软件企业内部都能够做到企业级的过程管理,那么实现软件界的过程统一就不远了。如果软件行业有了可以通用的统一过程标准,证明软件发展到了一个成熟的阶段了。 这里还要强调一点,谈到软件过程的重要性时,常常说软件过程可以消除依赖个人英雄主义的状况。我们也应该看到,软件过程不推崇个人英雄,但是并不是说软件项目不需要具有技术的个人,好的软件过程可以加速个人的成长;同理,好的软件过程也可以加速软件企业的成长。 美国NASA的经验 在探索软件过程管理的过程中,首先是不能盲从。比如,对等评审(Peer Review)是CMM中非常重要的一个关键过程域,CMM、PMBOK等项目管理体系都对走查(Walkthroughs)、审核(Inspection)等对等评审有相应的说明,但它们都没有对如何实施这个过程明确定义作流程。如果软件企业没有很好的实践而照搬其他企业的审核或者走查等对等评审过程,那么在实施过程中可能会遇到层层的障碍,导致得不偿失。只有经过实践之后总结出来的过程,才会带来很好的结果。 又如,我们曾经在开发一个软件项目过程中发现,有些人开发的软件质量很高,而且效率也很高,测试中发现的缺陷很少。原来这些人在编译前后都进行代码走查,后来我们就要求项目组的所有开发人员都要进行自我代码走查,编译前进行一次,编译之后进行一次,保证测试之前执行两次代码走查。结果取得了非常好的效果,软件的质量得到了很大的提高。为此,将这个方法给其他项目,其他项目在试用过程中发现如果进行交叉代码走查,即开发人员互相进行代码走查,效果会更好。这样逐渐总结开发代码的过程,经过多个项目的过程提炼可以编制企业的开发过程。在企业的代码开发过程中,明确说明什么时间进行代码走查,如何进行代码走查。这样通过有效的过程来提高软件产品的质量。 美国NASA Space ShuttleOnboard软件项目,在实施软件过程管理中得到了实实在在的好处。为了满足NASA约翰空间中心关于项目高安全和高性能标准的要求,Shuttle Onboard项目必须开发出高质量的软件。为此,项目团队精心制作并实践了可以提高产品质量的软件过程,经过十几年的努力和实验,摸索和开发了可以控制的过程,终使软件达到零缺陷。在此期间它们参照、实验了很多的软件过程,包括需求管理、配置管理、对等评审、审查、测试、项目管理等。为了消除缺陷的根源,项目组成立“问题疏漏分析”组,分析诸如审核、测试、验证等检错方法中疏漏缺陷的原因,也就是研究这些质量过程中存在的问题,这个提高质量过程的过程包括如下四个步骤: 1.从技术上分析缺陷的原因,并且提出纠正的措施。 2.标识纠错过程中的问题,并更正过程,以消除将来采用此过程可能疏漏错误的可能性。 3.改进纠错过程中的具体方法程序,这些方法程序曾经让缺陷逃过了,没有及时捕获缺陷。 4.检查Shuttle Onboard项目中采用此过程方法的其他部分,这些部分可能同样遗漏了一些类似的缺陷,需要重新检查,以便确认没有缺陷。 通过详细的情景式分析确定缺陷的根本原因,然后将这些情景式的经验反馈给开发过程,它们对改进纠错过程起到了非常好的作用。项目组将它应用到了其他过程的分析中,诸如需求分析等,也取得了很好的效果。 同样的,Shuttle Onboard项目通过不断地度量过程、完善过程,后达到提高项目质量的目的。过程的质量来源于实际的度量结果。同样项目的质量也可以通过高质量的过程来得到保证。
软件过程管理的介绍
《软件过程管理》作者是朱少民,是清华大学出版社2007年出版印刷的书籍,软件过程管理是提高软件生产率和保证软件质量的一个重要的方法,正日益受到学术界和工业界的关注,并开发了一些软件过程的集成环境以提供相应的支持。
软件项目管理的重要性
软件项目本身是沟通的产物。从客户需求的前期调研到需求分析到架构设计再到编码设计实现到贯穿项目过程中的测试修改再到上线发布等等这一系列工作都是以沟通为基础的。沟通不仅仅是软件项目管理的必要手段,沟通更是软件项目建设过程中的必需工具和必不可少的重要工序。
在做软件项目测试服务的过程中经常听到如下抱怨:开发出来的东西根本不是我们想要的;我们要求的某某功能没有实现;令甲方难平心中之愤的是之前这些问题都已经口头告知了乙方项目组成员,而乙方在项目实施过程中却竟然无视如此重要的需求与反馈。也会听到有的乙方项目的苦诉:我手下的程序员在设计评审时描述了他所负责的模块架构,然而软件开发出来后,我发现和我所理解的结构大相径庭
也许有些情况比上述问题还要复杂,那么,问题何在?其实以上诸多问题都是有沟通引起的,沟通无效导致软件项目的终失败。在软件行业,沟通的成败决定整个项目的成败,沟通的效率影响整个项目的成本、进度,沟通不畅的风险是软件项目的风险之一。在需求多变、逻辑性强、复杂程度高的软件项目建设过程中需要建立起良好的沟通与秩序,以严谨的沟通态度与科学的沟通方法保障软件项目的顺利实施。
明确的顾客需求诞生于和甲方的互动沟通之中,软件项目建设之初客户需求的确定依靠甲乙双方的不断沟通来完成。软件项目建设的软肋在于客户需求的把握。项目建设之初需要乙方派出专业的项目和研发骨干与乙方进行深入沟通,充分把握客户的实际需求,有时候鉴于项目之初客户需求的模糊性或者甲方项目的项目经验与业务范围所限,在一开始甲方的需求表达的还是不够深入、全面。这就需要乙方凭借自己的项目经验或者行业经验未雨绸缪给出规划建议或细节的充分考虑,为项目需求做出充分准确的余量规划。而这些都是建立在不断地反复沟通与对终用户的深入调研的基础之上的。在这里对于沟通与调研的方法不做赘述。
软件项目实施过程中项目组内部需要建立良好的沟通秩序(沟通)并保证沟通的有效性。我们曾遇到过这样一个案例,某软件企业在开发某业务管理软件,客户需求做得非常完善,系统分析也十分明确、清晰,但在开发阶段,项目发现系统分析其中一个中间层的函数出错,由于该功能模块由他一个人负责开发,当时他就直接对其参数进行了修改,也并未及时和其它编程人员进行沟通说明,过后很快就忘了这件事,当项目接近尾声时,系统突然出现一个大的Bug,影响到整个系统的运行,后在花费了大量的精力进行查询测试后,才发现是这名项目更改的参数出了错。如果初该项目能及时和项目组成员进行沟通,这种错误完全可以避免。一个建立起良好的沟通秩序的项目团队可以有效防范项目失败的风险并能达到事半功倍的效果。
项目沟通是项目整体中的一部分,其作用非常重要,却常容易被忽视。很多项目中不做完整的沟通,导致沟通混乱,轻则导致项目组工作效率低下,重则直接导致项目以失败告终。项目的沟通形式是多种多样的,大致分书面和口头两种形式。书面沟通大多用来进行通知、确认和需求等活动,适合于项目团队中使用的内部备忘录。项目确定之初要做的件事就是确定整个项目的沟通,因为在沟通中描述了项目信息的收集和归档结构、信息的发布方式、信息的内容、每类沟通产生的进度、约定的沟通方式等等。只有建立起良好的沟通规则,才能把握好沟通,从而全面了解项目的各方面信息,不断推动项目的顺利进展。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 836084111@qq.com 举报,一经查实,本站将立刻删除。