软件开发项目案例(软件开发项目案例分析)

软件开发 1516
本篇文章给大家谈谈软件开发项目案例,以及软件开发项目案例分析对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。 本文目录一览: 1、软件项目开发总结报告实例

本篇文章给大家谈谈软件开发项目案例,以及软件开发项目案例分析对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

软件项目开发总结报告实例

软件项目总结报告范文

1引言

1.1编写目的

XXX公司业务管理系统的开发已经基本完成。写此项目开发总结报告,以方便我们在以后的项目开发中来更好的实施项目的订制开发; 让我在今后的项目开发中有更多的有据的资料来规范我们的开发过程和提高我们的开发效率,从而创造更多公司效益。

1.2背景

项目名称:XXX业务管理系统

软件名称:XXX业务系统

客户:XXX

用户:XXX员工

1.3参考资料

项目开发文档:

1.软件开发数据模型:PDM_OperationSystem20070831.pdm

2.数据库开发文档: XXX业务管理系统数据库设计说明书2.0.doc

3.软件业务流程参考:XXX业务管理系统流程说明.doc

4.软件使用手册参考:XXX业务管理系统功能说明3.0.doc

5.软件业务流程参考:XXX业务管理系统流程说明.doc

6.软件中使用到的第三方控件:ComponentArt Web.UI 2006.1252 for asp.net2.0.rar

7.软件中使用的安全Ikey驱动:Ikey Driver.rar

以上参考资料是截止2007-08-31是最新的资料文档。如有修改,即使修改此处的参考文档名称。

2开发工作评价

2.1对生产效率的评价

1. 系统开发已历时快1年的时间了

2. 开发的反复性比较多。

3. 对客户的需求理解不是很透彻。

综合以上,此项目的开发效率不是很高,相反有相当一定时间的浪费。

2.2对产品功能的评价

经过我们公司各位同事的共同努力协作,XXX业务管理系统已经很好的完成了客户的业务流需求。经过对客户使用过程的观察,此项目开发的还是比较成功,但是还是存在着一些问题,造成这些问题的原因是多方面的。如:前期系统数据库的设计缺陷和部分代码的构建缺陷、客户需求的理解上也存在一定问题,这就需要我们用一定的时间来维护客户使用过程中提出的新问题和存在的debug。总的来说,此系统的功能开发还是一个比较成功的案例。

2.3对技术方法的总结

在此项目中使用到技术和工具:

1. 使用代码生成器:使用代码生成器 [动软.Net代码自动生成器],此工具在很大程度上提高了编码效率,从而加快了项目的开发进程。在以后的项目中,我们要尽量的来使用一些类似的工具来在最短的时间内完成工作。在今后的项目开发中,我们最好是能开发出适合自己的代码生成工具,更大限度的节省开发周期和开发费用。

2. 使用数据库建模工具;PowerDesigner 工具来建立系统数据库模型,以方便程序员很好的理解业务流和掌握系统架构者的架构思想,更好的满足客户的功能需求。在今后的项目开发中,我们要更好的来完成系统的前期数据库模型的建立,最大的来优化系统功能。

3. 使用第三方控件:此系统中使用了ComponentArt Web.UI 第三方控件。此控件在很大程度上满足了客户对软件界面的需求,从而也给软件的操作带来了方便。本项目中只使用了ComponentArt Web.UI一种第三方控件,在今后的项目开发过程中,要继续使用第三方的控件。这样以来,无论是针对软件界面的美观性、友好性来说、易操作性而言,还是针对系统开发效率而言,这都是很好途径。但需要意的是:在是使用第三方控件时,要谨慎的选择一些网络中的比较常见的第三方控件。

4. 使用自定义控件:此系统中使用了自定义控件(GhdGridView),此自定义控件可以很好的统一系统中的所有信息显示表格样式。如客户对数据显示样式有什么新的意见,我就不需要修改每一个页面的表格样式,我们只需要修改GhdGridView控件的样式,系统中的所有继承自GhdGridView的表格样式都可以改变。

5. 系统开发框架:此系统的框架使用的是简单三层结构,此框架在开发一些中小软件是比较实用的。但是我们要是可以开发出自己的框架,把一些通用的功能开发到框架中。这样以来,在以后的系统开发中,针对系统中一些通用的功能就不需要再开发,从而也可以很好的提高我们的开发效率;减少很多维护费用。使我们的技术不断的更加成熟。

6. 系统安全加密:此系统中针对客户提出的系统安全问题,我们采用了Ikey加密硬件钥匙来验证客户端登陆客户的合法性,此Ikey钥匙可以绑定到一个系统使用用户,也可以让多个用户来使用一个加密钥匙来验证登陆系统的合法性。这样以来,即使用户的密码不慎丢失,或者被不法人员取得(不法人员他也是无法登陆到我们的系统中来),这样就最大的提高了我们系统的安全性。Ikey加密钥匙是很好的加密B/S架构软件的硬件工具,在以后的软件安全方面可以借鉴。

3项目经验总结

3.1签定合同

一个项目的开发成败或者说项目开发带来效益的大小,在很大程度上是受项目合同签定的影响的。往往,很多一部分公司与客户签定的项目合同都是很模糊的,也很难签定的比较清楚,这样以来就会导致在项目的开发后期,工作两会越来越大,影响项目的竣工周期;而且,项目的开发费用一般是不会变的。这样以来,我们就大大的降低了我们的开发效益。虽然需求范围很难签定的明确,但是我们在签定合同时,要尽量的去把合同功能边界和添加新功能的条件签定。

3.2开发团队

在项目确立后,要尽快的建立起项目开发团队。

项目团队成员的团结合作、相互沟通是非常重要的,团队成员之间要相互学习彼此的优点和技术,使团队的能力不断的提高。这样,在项目的开发过程中,团队才不会被难题困住不动。另外,团队中要有一个项目负责人,这个人无论是在与客户的沟通上,还是在技术上都要是很出众的人,此项目负责人要能很好的沟通客户与开发成员之间,以此来更好的理解客户的功能需求。人的记忆力总是有限的,所以就要求开发团队成员要尽量的书写一些开发文档,这些文档往往是我们在项目开发后期要用到的可寻资料。项目团队士气是项目成功的一个因素,我们需要不断的来培养我们的团队气势,使我们的团队不断的壮大。

3.3需求的调研

在项目确立后,就到了需求调研分析阶段。

1. 项目组对客户的整体组织结构、公司有关人员的关系、职责等如果没有一个很好、足够的了解掌握,这样项目组就无法很好的完整的整理到客户的需求、或者说客户真实的功能需求,如此以来我们就为自己埋下了地雷,影响项目的开发周期,这就要求我们要与客户搞好无论是工作上的还是生活上的朋友关系,要深入的去了解客户需求。

2. 我们要尽量的让客户也参与到项目的开发团队中来,也就是说我们要使客户把自己也纳入到项目的开发团队中来,如此一来,我们掌握客户需求的真实性、可靠性就会大大的提高,也就不会为项目的后期功能开发埋下陷阱

3. 在需求调研过程中,如果缺乏足够用户参与,这样的需求调研也是失败的。很多程序员不愿参与到客户的需求调研中去,为什么呢?很简单,与客户沟通不如与代码沟通容易有意思。尽管这样,我们还是必须用足够多的时间去和客户进行沟通,了解他们真实的需求。很多用户也是如此,他们自己也不愿意参与到项目的需求调研中来,为什么呢?需求调研有出去和朋友一块烂漫对吗。。。虽然现状如此,我们还是要努力的使客户参与到需求的调研中来。

4. 模糊需求,也就是模棱两可是需求规格说明中最为可怕的问题。一是指诸多客户对需求说明产生了不同的理解;一是指单个读者能用不止一个方式来解释某个需求说明。针对对这种情况,就要求我们的调研人员要能够从多个角度来分析客户的不同需求,整理出最终的需求与客户确认,定出最终真实可靠的需求,我们绝不能凭借我们自己的单面理解来定立客户的最终需求。

5. 在一个项目的开发中,文档的书写是极为中要的一项工作。因为,某些文档就是我们在开发后期与客户沟通的可寻依据、也是我们程序员在编码过程中要用到的重要文档。我们绝对不能认为,凭借我们的大脑来记录所有的开发需求。。。;即使,你说你是天才,你要用你那颗爱因斯坦的大脑来记录所有的开发需求,那也是不可能的,人的精力总是有限的。这就要求我们在需求调研中做好需求文档的记录和整理。

6. 需求调研工具选择,客户一般对图形还是比较感兴趣的,所以我们在调研过程中,我要尽量的采用图形化界面来和客户沟通需求。比如可以采用Rose工具,把客户的意思转换为用例图、时序图、协作图、状态图、类图等,使表达的意思更加直观。这样客户会更快的进行问题的实质。

3.5做好开发计划

在项目确立后,我们就需要做好项目开发计划,需求调研用时,开发用时,测试用时,实施用时,维护用时。在我们做好了计划后,我们要随时的跟踪计划任务的完成进度,从而使我们的项目进度掌控在我们的开发周期范围之内,今日计划、行动,明日成功。

3.5很好的沟通

在其他行业中,人与人的之间的沟通只很重要的。项目开发也不例外,很好的沟通能够加快项目的进度,这就要求我们每一个开发人员要学会和善于沟通于客户和同事之间。在一个项目的开发过程中,我们与客户的沟通是一个不断交流和沟通的过程。在开发到一定的阶段,我们就需要和客户沟通已有功能,尽量的去避免一些隐藏的问题,及时的发现问题,解决问题,从而按时或者提前完成项目的开发。

3.6做好工作总结

在项目进行的过程中,我们要不断去整理自己的工作情况和做好总结,这样以来,无论是在自己的技术还是其它方面,都会对我们有很大的提高,在长期的积累后,无论是我们个人能力,,还是我们的团队能力都会有很大的提高。

制约软件项目成功的因素

引子

一个项目从其一成立开始,项目各方干系人都会期望项目能够根据既定的计划一步步顺利地导向最后的成功。影响项目的最后成功的因素是多方面的,包括项目管理的九大知识领域(包括项目的整体管理、范围管理、时间管理、费用管理、质量管理、人力管理、沟通管理、风险管理和采购管理),无一对项目的最后成功不产生积极影响。然而,要这九大知识领域对项目成功产生的影响的轻重程度上进行比较的话,我认为其中项目范围管理是最为重要的。

什么是项目范围管理

那么,什么是项目范围和项目范围管理呢?项目范围是指产生项目产品所包括的所以工作及产生这些产品所用的过程。项目干系人必须在项目要产生什么样的产品方面达成共识,也要在如何生产这些产品方面达成一定的共识。

项目范围管理是指对项目包括什么与不包括什么的定义与控制过程。这个过程用于确保项目组和项目干系人对作为项目结果的项目产品以及生产这些产品所用到的过程有一个共同的理解。

项目范围与项目其它约束条件的相互影响

制约一个项目的条件是项目“三约束条件”——范围、时间、成本。

在一个项目中这三个条件是相互影响、相互制约的,而且往往是由于范围影响了时间和成本。项目一开始确定的范围小,那么它需要完成的时间以及耗费的成本必然也小,反之亦然。很多项目在开始时都会粗略地确定项目的范围、时间以及成本,然而在项目进行到一定阶段之后往往会变成让人感觉到不知道项目什么时候才能真正结束,要使得项目结束到底还需要投入多少人力和物力,整个项目就好象一个无底洞,对项目的最后结束谁的心里也没有底。这种情况的出现对于公司的高层来说,他们是最不希望看到的,然而这样的情况出现并不罕见。造成这样的结果就是由于没有控制和管理好项目的范围。可见项目的三约束中最主要还是范围的影响最主要。

范围管理案例

失败案例:我了解到这样的实际案例,这是一个软件开发的项目,整个项目已经进行了两年多之后项目何时结实还是处于不明确的状态,因为用户不断有新的需求出来,项目组也就要根据用户的新需求不断去开发新的功能。这个项目实际是一个无底洞,没完没了地往下做,项目成员“肥的拖瘦,瘦的拖死”,实在做不下去只能跑了。大家对这样的项目已经完全丧失了信心。

这个项目其实就是一开始没有很明确地界定整个项目的范围,在范围没有明确界定的情况下,又没有一套完善的变更控制管理流程,任由用户怎么说,就怎么做,也就是说一开始游戏规则没有定好,从而导致整个项目成了一个烂摊子。

成功案例:同样是一个软件开发的项目,这个项目也比上面案例讲到的项目要小一些,这时候公司已经开始实施CMM对软件开发活动进行管理,有相对完善的软件开发管理过程。项目在一开始就先明确用户需求,而且需求基本上都是量化的、可检验的。而且项目组在公司CMM的变更管理过程的框架指导下制定了项目的范围变更控制管理过程,在项目的实施过程中,用户的需求变更都是按照事先制定好的过程执行。

因此,这个项目完成的比较成功,项目的时间和成本基本上是在一开始项目计划的完成时间及成本的情况下略有增加。

造成范围界定不清的原因

既然项目范围界定不清是一种很常见的现象,而这种现象又是大家所不想见到的。那么,我们必须分析出现这种现象的原因。我认为造成这种现象的出现有以下三方面的原因:

首先,是企业一级的责任——没有完善的项目管理体系来指导项目的管理。这种情况是最糟糕的,如果是这种原因,那么项目的成败往往需要靠项目经理个人的管理、领导能力。这种情况项目成功的可能性非常小,大部分项目都是以失败而告终;

第二,是企业及项目组共同的责任——对项目没能制定出清晰规范的范围变更控制过程。企业有管理体系,但不够完善和规范,对项目组的变更过程的制定没能起到有效的指导作用。变更是不可避免的,只要有效地加以管理、控制,同样可以达到各方满意的结果;

第三,是对范围的定义不够明确,做不到可量化、可验证程度。很多时候都是一些定性的要求、而不是定量的,例如“界面友好,可操作性强,提高用户满意度”等。类似这些模糊的需求就是导致后续项目扯皮的根源。项目范围的明确定义,有经验的项目经理及系统分析员将起到至关重要的作用。

由以上的论述,我们可以得出结论:完善的项目范围管理是整个项目最终成败的关键。那么,怎样才能做好项目范围管理呢?下面大量篇幅将对这一问题进行详细的论述。

如何管理好项目范围

既然已经认识到项目范围管理如此重要,那么我们应该怎样才能管理好项目的范围呢?从上面的论证过程,我们清楚地看到造成项目范围不好管理的一些原因,那么要管理好项目范围就必须对症下药,才能管理好项目范围。

首先,我们必须先了解项目范围管理的一些科学过程。做好项目管理应该包含下面过程:启动、范围计划、范围定义、范围核实及范围变更控制。下面将详述如何做好这些过程:

启动过程

启动是指组织正式开始一个项目或继续到项目的下一个阶段。启动过程的一个输出就是项目章程。项目章程是一个重要的文档,这个文件正式承认项目的存在并对项目提供一个概览。

启动过程明确指定这一过程有一个重要的输出文档——项目章程,项目章程将粗略地规定项目的范围,这也是项目范围管理后续工作的重要依据。项目章程中还将规定项目经理的权利以及项目组中各成员的职责,还有项目其他干系人的职责,这也是在以后的项目范围管理工作中各个角色如何做好本职工作有一个明确的规定,以致后续工作可以更加有序地进行。因此,千万不能忽略项目的启动过程。

范围计划过程

范围计划是指进一步形成各种文档,为将来项目决策提供基础,这些文档中包括用以衡量一个项目或项目阶段是否已经顺利完成的标准等。作为范围计划过程的输出,项目组要制定一个范围说明书和范围管理计划。

古语云:“预则立,不预则废!”。一个项目经理要想真正管理好项目范围,没有必要的技术和好的方法是肯定不行的。

要做好一个项目首先强调的就是周密地做好范围计划编制。范围计划编制是将产生项目产品所需进行的项目工作(项目范围)渐进明细和归档的过程。做范围计划编制工作是需要参考很多信息的,比如产品描述,首先要清楚最终产品的定义才能规划要做的工作,项目章程也是非常主要的依据,通常它对项目范围已经有了粗线条的约定,范围计划在此基础上进一步深入和细化。

前面讲到这个过程有一个输出是范围说明书,那么范围说明指的是什么呢?范围说明是在项目参与人之间确认或建立了一个项目范围的共识,作为未来项目决策的文档基准。

范围说明中至少要说明项目论证、项目产品、项目可交付成果和项目目标。项目论证是商家的既定目标,要为估算未来的得失提供基础;项目产品是产品说明的简要概况;项目可交付成果一般要列一个子产品级别概括表,如:为一个软件开发项目设置的主要可交付成果可能包括程序代码、工作手册、人机交互学习程序等。任何没有明确要求的结果,都意味着它在项目可交付成果之外;项目目标是要考虑到项目的成功性,至少要包括成本、进度表和质量检测。项目目标应该有标志(如:成本、单位)和绝对的或相对的价值。尽量避开不可量化的目标(如:“客户的满意程度”),因为它将让你的项目承担很高的风险。

范围计划又是什么呢?范围管理计划是描述项目范围如何进行管理,项目范围怎样变化才能与项目要求相一致等问题的。它也应该包括一个对项目范围预期的稳定而进行的评估(比如:怎样变化、变化频率如何及变化了多少)。范围管理计划也应该包括对变化范围怎样确定,变化应归为哪一类(当产品特征仍在被详细描述的时候,做到这点特别困难,但绝对必要)等问题的清楚描述。

范围定义过程

范围定义是指将项目主要的可交付成果细分成较小的、更易管理的组分。这个过程中,项目组要建立一个工作分解结构(WBS)。

WBS的建立对项目来说意义非常重大,它使得原来看起来非常笼统、非常模糊的项目目标一下子清晰下来,使得项目管理有依据,项目团队的工作目标清楚明了。如果没有一个完善的WBS或者范围定义不明确时,变更就不可避免地出现,很可能造成返工、延长工期、降低团队士气等一系列不利的后果。

制定好一个WBS的指导思想是逐层深入。先将项目成果框架确定下来,然后每层下面再把工作分解,这种方式的优点是结合进度划分直观,时间感强,评审中容易发现遗漏或多出的部分,也更容易被大多数人理解。

范围核实过程

范围核实是指对项目范围的正式认定,项目主要干系人,如项目客户和项目发起人等要在这个过程中正式接受项目可交付成果的定义。

这个过程是范围确定之后,执行实施之前各方相关人员的承诺问题。一旦承诺则表明你已经接受该事实,那么你就必须根据你的承诺去实现它。这也是确保项目范围能得到很好的管理和控制的有效措施。

范围变更控制过程

范围变更控制是指对有关项目范围的变更实施控制。主要的过程输出是范围变更、纠正行动与教训总结。

再好的计划也不可能做到一成不变,因此变更是不要避免的,关键问题是如何对变更如何进行有效的控制。控制好变更必须有一套规范的变更管理过程,在发生变更时遵循规范的变更程序来管理变更。通常对发生的变更,需要识别是否在既定的项目范围之内。如果是在项目范围之内,那么就需要评估变更所造成的影响,以及如何应对的措施,受影响的各方都应该清楚明了自己所受的影响;如果变更是在项目范围之外,那么就需要商务人员与用户方进行谈判,看是否增加费用,还是放弃变更。

因此,项目所在的组织(企业)必须在其项目管理体系中制定一套严格、高效、实用的变更程序。

执行好以上项目范围管理的五个过程,我认为对项目范围的管理、控制将是行之有效的!

急需软件项目管理案例,要案例就行,软件项目的~

A公司是一家美资软件公司在华办事机构,其主要的目标是开拓中国市场、服务中国客户,做一些本地化和客户化的工作。它的主要软件产品是由总部在硅谷的软件开发基地完成,然后由世界各地的分公司或办事机构进行客户化定制、二次开发和系统维护。这些工作除了日常销售和系统核心维护之外,都是外包给本地的软件公司来做。东方公司是A公司在中国的合作伙伴,主要负责软件的本地化和测试工作。

Bob先生是A公司中国地区的负责人,Henry则是刚刚加入A公司的负责此外包项目的项目经理。东方公司是由William负责开发和管理工作,William本身是技术人员,并没有项目管理的经验。

当Henry接手这项工作后,发现东方公司的项目开发成本非常高,每人每天130美金,但客户的满意度较差,并且每次开发进度都要拖后,交付使用的版本也不尽如人意。而且,东方公司和A公司硅谷开发总部缺乏必要的沟通 只能把问题反馈给Henry,由Henry再反馈给总部。但由于Henry本身并不熟悉这个软件的开发工作,也造成了很多不必要的麻烦。

为此,Bob希望Henry和William用项目管理的方法对该项目进行管理和改进。随后,Henry和William召开了一系列的会议 提出了新的做法。

首先,他们制定了详细的项目计划和进度计划;其次,成立了单独的测试小组,将软件的开发和测试分开;并且,在硅谷和东方公司之间建立了一个新的沟通渠道,一些软件问题可以与总部直接沟通;同时,还采用了里程碑管理。

六个月后,软件交付使用。但是客户对这个版本还是不满意,认为还有很多问题。为什么运用了项目管理的方法,这个项目还是没有得到改善?

Henry和William又进行了反复探讨,发现主要有三个方面问题:1、软件本地化产生的问题并不多,但A公司提供的底层软件本身存在一些问题;2、软件的界面也存在一些问题,这是由于测试的项目不够详细引起的;3、开发的周期还是太短,没有时间完成一些项目的调试,所以新版本还是有许多的问题。

此时,Henry向Bob提出是否采用公开招标的方式,选择新的、实力更强的合作伙伴。但Bob认为,与东方公司合作时间已经很长了,如果选择新的伙伴又需要较长的适应期,而且成本可能会更高。于是,Henry向东方公司提出一些新的管理建议。首先,他们采用大量的历史数据进行分析,制定出更详细的进度计划;其次,要求东方公司提供详细的开发文档和测试文档 做的工作没有任何文档,给其他工作带来了很多困难);第三,重新审核开发周期,对里程碑进行细化。

又过了六个月,新的版本完成了。这一次,客户对它的评价比前两个版本高得多,基本上达到项目运行的要求。但客户还是对项目进度提出了疑问,认为实时推出换代产品不需要那么长的时间。

较常见的做法。在软件外包工程中,保证质量的进度是很难控制的。对于项目经理来说需要一整套复杂的能力,比如制定计划、确定优先顺序、干系人的沟通、评价等,每一种能力都与项目的最终结果有直接或者间接的关系。

然而,国内的项目经理大多没有接受过正规训练,缺乏项目管理方面的专业知识的技巧,往往只是凭借以前的少量经验盲目去做,容易出现各种问题。尤其是在管理外包项目时,缺乏足够的经验和技巧,往往造成进度不断推迟,而质量无法保证的情况。

在这个案例中,我们可以看到现在IT业内许多外包项目的影子。

在该案例中,东方公司没有专门的项目经理,是由技术人员William兼做管理。这是国内软件公司经常会出现的问题。最初,出现进度落后的问题时,A公司的Henry与东方公司的William讨论后决定采用项目管理中计划管理等手段,其中包括里程碑管理。这是控制进度的较常见做法。

里程碑管理的引入

一般来说,在项目开始时,项目组成员都会对项目制定一个详细的计划。通常情况下,在明确的工作说明书(SOW)和WBS的基础上制定具体的进度计划时,需要采用一些具体的技术。像这种软件外包项目,最成熟的技术是里程碑管理。

里程碑一般是项目中完成阶段性工作的标志。不同类型的项目,里程碑也不同。比如,在开发项目中,可以将需求的最终确认、产品移交等关键任务作为项目的里程碑。本案例中,Henry在接手项目后采用里程碑进行管理是很恰当的。

不过,要注意的是,每到一个里程碑处,应及时对前段工作进行小结,并对后续工作进行计划调整。对于一些管理效果明显的领域,可以不必投入较多精力。而对于下一步管理过程中可能会出现问题的领域,应给予较多的关注。当然,在软件项目里,进度的变化是较常见的事情。

在本案例中,采用里程碑管理后仍没有达到客户的要求,进度依然拖后。在这里,就需要考虑另一个因素-质量与进度的关系。

通常,项目管理的前提是保证在预算内、满足质量的前提下,按进度完成项目。因此,可以看到,保证质量是前提。那么,如何在满足质量的前提下管理进度呢?单纯从项目管理理论知识中并没有一种有效的方式。具体步骤为:

首先,尽量利用历史数据。在本案例中,Henry应该调查之前的项目情况,将会发现可以类比的情况,事先就可以知道需要管理质量和进度的关系。

其次,由于此项目是软件外包项目,Henry不能完全掌握项目的资源 调度情况,因此缺乏对质量的控制。这也是大多数外包工程中最令人难以掌握的地方。在这里,可以采用对进度管理 ;计划添加质量参数的方法,也就是通过参数调整进度和质量的关系。

这一做法的前提是要有一定的历史数据。比如,从历史数据中得知,完成子项目的时间是5天,测试后有15个问题;完成同样子项目的时间是7天,测试后有10个问题;完成同样子项目的时间是8天,测试后有5个问题,……以此类推。

随着数据的不断增多的,采用两维坐标图,就会得到一些离散的点(不考虑资源的差异),并形成一条曲线,见图1。考虑项目允许的质量范围,对照图中的数据,找出相应的参数。根据得到的参数,确定一个合适的进度计划

软件项目管理及案例分析

软件项目管理及案例分析

引导语:美国项目管理专业资质认证委员会主席Paul Grace说过,在当今社会中,一切都是项目,一切也将成为项目。下面是我为你带来的软件项目管理及案例分析,希望对你有所帮助。

中国科学院计算技术研究所是国家专门的计算技术研究机构,同时也是中国信息化建设的重要支撑单位,中科院计算所培训中心是致力于高端IT类人才培养及企业内训的专业培训机构。中心凭借科学院强大师资力量,在总结多年大型软件开发和组织经验的基础上,自主研发出一整套课程体系,其目的是希望能够切实帮助中国软件企业培养高级软件管理与技术人才,提升整体研发能力。迄今为止已先后为国家培养了数万名计算机专业人员,并先后为数千家大型国内外企业进行过专门的定制培训服务。

高水平项目管理是软件项目成功的关键,也是软件产品质量的根本保证,具有这方面理论和实践的人员是目前软件组织中急需的高层次人才。为建立符合中国国情的软件开发过程和组织体系,培训中心特举办“软件项目管理”培训班,具体事宜通知如下:

一、培训对象

软件开发机构高级管理人员、项目经理、系统架构师、系统分析师、资深开发人员、质量保证人员以及其他对提升软件开发质量负有责任的人员。 二、 学员基础

1,对软件项目的分析、设计、组织和开发具有一定实践经验;

2,有一定的软件项目管理、技术管理或质量保证的基础知识与实践经验。 三、师资

由业界知名专家亲自授课:

袁老师 培训中心高级讲师,CMMI、GJB 5000A高级咨询顾问,具有多年成功管理大型软件项目的经验,对软件工程管理与过程具有深邃的理论见解和丰富的实践经验。 四、培训要点

高质量软件来自于高水平的项目管理,这个观点已经成为业内的共识。软件项目成功最重要的要素是什么?大型软件项目是依靠一个组织来完成的,如果这个组织在管理上是无序的,开发过程是非正式和混乱的,计划期限和成本目标通常超限,项目的成功取决于个人英雄式的行为,在人员发生变动时项目往往陷入灾难,那么很难说这个项目会获得成功。从这个意义上说,软件项目管理是项目成功的关键因素。

所有软件开发机构都必须在今天这种技术含量高、变化速度快、资源有限的环境下,实现软件生产规模化、规范化、国际化,这也是当前我国软件行业面临的最大挑战。在这样复杂的背景下,我们该如何去思考如何去做呢? 1,项目管理人员必须具备更广阔的视角,包括站在更高的角度理解企业管理的思想理念,

理解产品开发的质量、成本、效率与效益之间的关系,理解过程是如何对管理发挥作用的,理解规范化的软件工程方法。更重要的是,理解如何提升自身的领导素质,培养更好的领导力。这种宽阔的眼界,对于一个高级项目管理人员极其重要。

2,实施正确的软件过程对产品质量影响巨大。为了使团队在开发质量、效率以及成本上达到最优化,我们需要不断改进和优化软件过程。近年来随着项目越来越大越来越复杂,软件项目中存在着各种变化因素所带来的冲击越来越令人难以接受,促使业内研究更加合理的过程和与之相匹配的项目管理方式。过程改进需要有正确的思想理念,包括问题分析,科学与哲学理论基础,合理的价值观和方法论,以及正确对待改进中发现的问题。 3,高质量项目管理来自于正确的项目策划。项目管理人员必须受到项目策划的正规训练,包括如何制定发布规划,如何发现项目的关键驱动因素、约束和浮动因素,并且采取恰当的策略。还需要注意,在今天的形势下,创新是企业的生命,项目经理必须领导团队共同策划创新的产品概念,有目的、有组织的实现系统化创新,能够使用国际上通用的方法安排项目进度与日程,这对于项目成功极其重要。

4,为了增加产品的国际竞争力,产品质量作为经济发展的战略问题变得越来越重要,软件质量也正被视为软件企业的生命。大型项目质量控制问题的实施和解决,需要按照系统工程的理论进行,使整个系统所具有的多种不同的目标之间相互协调,以期达到系统质量的最优化。这需要项目经理对软件质量控制有深刻而透彻的理解。

5,为了确保项目的过程质量和产品质量达到要求,在开发过程中必须以可度量的方法对项目实施监控。我们不要期望有了好的计划就可以高枕无忧,也不要期望计划一成不变,项目经理的责任是不断监控项目的进展,不断的以问题、对策与解决方案的思路,在动态过程中去管理与调整。并且还要善于把监控过程转变为调动团队积极性的有效手段。

6,我们坚信:团队是决定项目成败的最重要因素。很多开发问题的出现,大多是由于机构对团队重要性的误解所造成的。因此希望更加有效开发的软件机构要把思考重心放在团队建设上,这是一个明智的选择。建立一个有竞争力的团队,是取得项目成功的关键步骤,而对于一个软件机构来说,团队是最有价值的资产。但我们如何来做如何来思考呢?

7,不要期待项目管理是什么神奇的方法。管理是个十分严肃的事情,它既需要在宏观上把握,又需要关注细节,特别是对一些关键点需要敏锐的.识别出来并找到解决方案。这就需要在实践中不断积累经验以及在理论上得到提升。

本课程并不是一个泛泛的原理性课程,而是许多专家多年来理论和实践的总结。我们需要有更广阔的视野、对问题更深邃的认识以及对改进与优化的不懈追求,更需要总结出不断优化管理的思路。在内容安排上,课程既有理论指导,也有通过案例对问题的共同探讨,把理论和实践有机的结合起来。这是一个强调思考力的课程,也是我们赶超世界先进水平新的增长点,希望所有学员都在这个课程中受益。 五、培训内容

第一讲 从宏观集成的视角看项目管理 1,软件项目与项目管理 项目的定义与特点 项目管理及其关键要素 项目管理的宏观视角 2,集成化软件项目管理模型 从宏观的视角看项目管理 项目启动过程中的前期决策 项目管理计划的衔接 项目管理要关注产品质量 第二讲 改善软件工程方法

1,软件过程:现代对于传统的挑战 软件过程的定义与概念 对于软件过程的重新思考 传统瀑布方式的问题 对于传统项目管理的反思 迭代式软件开发过程 项目不同阶段的度量要点

2,用经济学的观点改善软件工程方法

从工作量与成本模型入手研究项目管理方法 降低软件规模或者复杂度 改进软件开发过程 创建高效率的团队 第三讲 如何进行项目策划 1,定义项目的目标和范围

建立对项目目标和范围的认识 – 定义项目大纲

定义对项目参与人员的要求,早期获得项目成员的参与

案例分析:典型项目的组织机构(大中小型项目组织结构设置要点) 记录上述内容,作为项目计划的第一部分 2,工作拆分

为进行详细估算和日程的排定提供基础 确保工作识别的完整性 增加项目的成功机会 项目特点及策略确定

案例分析:大型项目特点及关键策略确定(某知名商业银行信用卡核心系统、美国宇航局项目) 拆分的重要原则

WBS拆分颗粒度实例讲解 3,风险管理 风险的识别 风险分类学 识别风险方法论 案例分析:识别风险 风险应对策略

案例分析:风险策略举例 缓解方法

案例分析:风险应对(某知名商业银行Iphone版手机银行、业务运营支撑网络管理工程) 4,软件估算

软件估算思路:自顶向下和自底向上 Wideband Delphi方法

功能点方法(标准及简化功能点方法)

供应商采购的估算应用(中国软件行业软件工程定额标准) 基于历史数据的估算方法

大项目估算结果举例(某知名商业银行信用卡核心系统) 某大型国有商业银行工作量及工期标杆系数举例 5,干系人管理

6,项目计划的承诺及基线化 第四讲 如何进行项目监控 1,项目监控的范围和内容

2,对照计划监督项目 3,分析监控数据

项目量化管理:挣值分析法 挣值分析法基础

三个重要概念:BCWS,BCWP,ACWP 挣值分析实例展示及分析练习 实施里程碑评审

4,项目监控中的项目管理活动 管理纠正措施 5,项目监控样例展示 项目周报 项目会议纪要

干系人及关键依赖关系 项目数据统计分析报表 项目管理工具简介 第五讲 供应商管理

1,供应商管理的范围和内容 2,供应商管理的主要流程 3,供应商管理的关键点

关于IT系统建设策略 产品选型评估要点

样例展示:某外包项目选型评估报告及评估细项 供应商管理策略

样例展示:某外包项目采购合同 项目测试与验收策略

样例展示:某外包项目验收计划 交付物验收

人力外包及维护类外包管理 第六讲 如何进行需求管理 1,需求管理的范围和内容 2,获得对需求的一致理解 获得对需求的理解 获取对需求的承诺

需求受理流程,改变业务的习惯,加强流量控制 3,需求跟踪 4,需求变更控制

确定需求变更类型 审批变更申请 管理变更请求

案例分析:某大型项目项目管控机制

系统日常升级维护中的需求变更控制:版本排期与冻结机制

5,需求管理参考模板:某知名商业银行业务需求模板及非功能需求样例 第七讲 打造有战斗力的团队 1,项目经理的领导力

领导力以及领导力模型 激励、组织与创新

理解开发人员的典型动机

最重要的个激励因素 正确应用奖赏和鼓励

关注让士气崩溃的杀手问题 如何培养自己的领导力 3,实现有效的团队合作

4,提高项目开发效率的的原则与技巧 避免做错事胜于做正确的事 管理原则与技术原则

一个标准是否可以适合所有情况? 项目按时完成的可能性 感知与现实的差距 时间到哪里去了? 典型的进度改进模式

六、培训目标1,掌握复杂软件项目规划与监控的方法,并在实际项目过程中灵活应用; 2,在项目开发中正确应用可度量的方法进行项目规划与控制; 3,在项目管理中正确实施质量控制方法;

4,对项目过程中的团队有深刻的理解,确保软件项目走向更高层次的成功; 5,通过对问题的分析与系统思考,对软件过程与管理方法进行优化与改进。

七、培训时间、地点 ;

软件项目的沟通管理

软件项目的沟通管理

引导语:项目管理中,沟通是一个软指标,其所起的作用不好量化,沟通对项目的影响往往也是隐形的。下面是我为你带来的软件项目的沟通管理,希望对大家有所帮助。

项目沟通管理是现代项目管理知识体系中的九大知识领域之一,项目沟通管理在成功所必须的因素—人、想法和信息之间提供了一个关键性连接。

沟通对项目的成功,尤其是IT项目的成功非常重要。本文就围绕沟通的重要意义、项目干系人、沟通对效率的影响、沟通的关键要素这几方面展开一些探讨,最后结合高职外语教学、综合测评平台项目,对沟通在小组软件开发过程中的应用进行案例分析。

1、沟通的意义及项目干系人分析

项目管理要素有:范围、时间、成本、质量、人力、风险、采购、沟通,一个成功的项目与这些因素是紧紧相关、不可分离的。但是在项目的实际参与和项目的操作过程中,可以发现无论是项目管理中的哪个因素,与其关联最多、涉及活动最多的是项目干系人,项目干系人一般包括最终用户、项目团队、项目公司的管理层等一些主要的利害关系者。项目管理中时间、成本、质量、人力、风险、采购等很大一部分是与人的沟通与人的管理有关,如何做好人的管理、如何组建一个成功的项目团队、如何在项目中发挥团队的所有潜力、如何与客户的关系日趋完善、如何做到让客户满意,这些都是在“沟通”管理中所必须及掌握的要素。

要做好各要素沟通,要实现于人的管理,就应站在这些“项目干系人”的角度上,从他们的需要及利益出发,最大限度地通过项目实现他们的价值,如果脱离这些,那么项目是很难获得成功的。项目经理在与客户进行需求调研及交流前,一般先要充分考虑项目的需求性及可行性,然后列一个需求管理(包括详细的沟通计划及沟通要求)计划,并且要考虑需求沟通中所需的人员、资源、时间的要求,这样才可以保证需求调研的准确性。很多软件项目在其开发过程中,客户突然提出需求变更,给项目的进展带来不利的影响,虽然很大程度上这是客户主观因素造成的,但也说明项目组在和客户进行前期沟通的时候,没有充分考虑一些假设或约束因素,也没有充分明确列举沟通要求。

同样,除了和客户进行沟通之外,在项目开发过程中,项目经理与项目成员之间的沟通方式及项目经理对团队的建设技巧也是直接影响到项目成败的关键。项目过程中沟通的目的是为了“保持项目进展、识别潜在问题、征求建议以改进项目绩效”,如果在项目的开发、设计过程中未把好沟通这道关,可能会产生意料之外的项目失败,同样一个好的配合团队能使项目达到事半功倍的效果,关于沟通的具体的一些方法和技巧将在下文谈到。

2、沟通与效率的关系

2.1项目复杂程度与实施效率

沟通路径所消耗掉的工作量多少取决于软件项目本身的复杂度和祸合度。原IBM在马里兰州盖兹堡的系统技术主管JoelAron,在他所工作过的9个大型项目的基础上,对程序员的实施效率进行了研究。他根据程序员和系统部分之间的交互划分这些系统,得到实施效率表。

一般说来,底层软件(操作系统、编译器、嵌入式系统、通信软件)的接口复杂度要比应用软件(MIS、操作维护软件、管理软件)要高得多。

在估算软件开发项目工作量时要充分考虑任务的类别和复杂程度,因为抽象的、接口复杂的系统开发过程,其沟通消耗必然大。另外,有深厚行业背景的软件,要考虑开发人员为熟悉行业知识所需付出的沟通消耗。

2.2团队规模与实施效率

需要协作沟通的人员的数量会影响开发成本,因为成本的主要组成部分是相互的沟通和交流,以及更正沟通不当所引起的不良结果(系统调试)。

人与人之间必需通过沟通来解决各自承担任务之间的接口问题,如果项目有n个工作人员,则有nx(n-1)/2个相互沟通的路径。假设一个人单独开发软件,年实施效率为1000行代码,而每一条沟通路径上每年消耗掉的工作量可折合500行代码,则团队规模和沟通消耗以及实施效率存在以下关系。

2.3团队的默契度与实施效率

团队的默契程度对软件实施效率影响很大。一个经过长期磨合、相互信任、形成一套默契做事方法和风格的团队,可能省掉很多不必要的沟通,其合力甚至可以超越这个团队本身,而做出一些平时他们连想都不敢想的成就来。相反,初次合作的团队因项目成员各自的背景和风格不同、成员间相互信任度不高等原因,就要充分考虑沟通消耗。

营造一个配合默契的团队并没有一个简单易行的规定和过程,但是有一个必不可少的因素,那就是团队中的所有成员对这个小组承担的全部义务,成员乐于为整个团队而放弃自己的利益和志向,这样整个团队就一定有很强的内聚力,而且一个人置身于氛围良好、合作默契的团队中心情一般都较好,这种良好的氛围所能带来的能量是不可估量的。

所以持续良好的沟通和交流是一个团队的无形资产,而由之形成的一个自然、稳定、默契的开发团队就是软件企业的核心竞争力所在。

3、沟通的一些要素

一个优秀的团队组织和协调管理者所发挥的作用往往对目的成败起决定作用,他必然也是一个善于沟通的人。沟通研究专家勒德洛(LudIow,R.)提到,高级管理人员往往花费80%的时间以不同的形式进行沟通。普通管理者约花50%的时间用于传播信息。缺乏沟通这个问题是不能通过技术来进行改进的,现在技术发展很快,但人们对沟通和融洽相处的需求不但没有减少,反而显得越来越重要了。

沟通的效率直接影响管理者的工作效率,在项目成员间改善沟通将提高士气、生产率、质量,并可以减少成本,使得项目更好开展。但如果出现沟通问题,也可以遵循以下过程来有效地控制问题:找出问题的起因;实行纠错行为;加强工作环境中的沟通活动。

4、项目中沟通运用的案例分析

笔者在负责开发外语学院的英语网络教学、考试综合平台时,就充分考虑软件项目管理中沟通的一些要素。整个项目按小组软件开发过程(TSP)进行开发,其中每个步骤都涉及到了沟通。

4.1技术调研

该项目是为教师和学生进行英语教学、考试、以及评估的综合性网络平台,学生可以通过网络进行全程的英语学习、测试,老师也可以利用这个平台动态的掌握学生的情况。在技术采用方案中,我们打算用ASP.NET+SQLSERVER进行开发,分三层体系结构。在听取了他们构思的同时,针对项目调研情况,我们也从技术层面上阐述了自己的看法、最后达成了一个初步共识。

4.2需求分析

项目的最终用户是外语老师和学生,我们开始与外语学院老师进一步接触,了解高职外语教学领域内的情况。为了防止或减少用户需求变更,产通目标中考虑了很多制约因素和假设因素,大概经过了一个星期的沟通,一份完整的SRS文档生成,并且我们将SRS的段和节编号,用来确定每一个说明的来源。

4.3概要设计

软件的大概要求和功能在得到确定后,项目流程到了概要设计阶段,这时项目开发小组完全启动,项目小组开始制定详细工作目标、角色目标等。

4.4详细设计

在概要设计阶段定义好了各功能模块、明确了开发者责任之后,开始了模块内的细节设计,在这个阶段我们定义了整个平台数据库,在定义数据表和字段时,有两位成员的想法互不相同.两人各持己见,争的面红耳赤,僵持不下,最终双方把各自的想法和理由列个清单,征求了小组其他成员和外语学院老师的意见,经过大家共同的分析,最终确定了某一个成员的数据库方案,另外那个成员也心服口服。

4.5编码设计

在编码阶段的每次会议中,我们都要掌握各个成员的进度,询问下个阶段的安排,并要求每个成员在会议中都要开城布公地对待问题,不能隐瞒,使小组保持一种透明的风格。这样我们就可以知道将要发生什么事情,并预见问题,以便能迅速进行调整。

4.6集成与测试

在开发后期,各个模块功能基本完成,在确认每个模块基本上无独立缺陷和比较好的质量后,进人了整体的测试。

这个项目在制作半年后完工,并测试合格,现运行非常正常,总结这个项目的一些经验,要确保软件开发质量和效率,与用户的有效沟通以及开发成员间的良好协作是关键,要达到这一点,一个团队至少应具备以下三个要素:透明性、聆听、协商。透明性能使整个小组知道将要发生什么事情、并能预见问题,知道什么时候谁最需要帮助,并能保持整个小组工作的一致性。最好的.交流者应该是非常善于聆听的人,这种聆听应该是全身心的,只有这样,别人才会和你进行比较深的交流,你也会准确地领会对方的意图。协商最重要的作用是解决问题和分歧,能使得矛盾双方都得到一个满意的结果。

项目沟通管理是一门艺术,这不仅仅表现在“项目干系人”相互之间的沟通技巧上,无论在哪个领域的项目管理中,这些沟通技巧都可以通用,并且可以结合各自领域的一些独特要素去实施。在项目负责人对项目的全局管理上,项目管理的八大要素记起来简单,这就需要艺术化的管理、技巧性的操作,管理上的条条框框虽然是定死的,但人可以动态地去应用它。但如何灵活地驾御它,使这些要素在操作上更方便,更适合应用到实际项目中去。

【拓展内容】

软件项目沟通管理的重要性

沟通不仅仅是软件项目管理的必要手段,沟通更是软件项目建设过程中的必需工具和必不可少的重要工序。

在做软件项目测试服务的过程中经常听到如下抱怨:开发出来的东西根本不是我们想要的;我们要求的某某功能没有实现;最令甲方难平心中之愤的是之前这些问题都已经口头告知了乙方项目组成员,而乙方在项目实施过程中却竟然无视如此重要的需求与反馈。也会听到有的乙方项目经理的苦诉:我手下的程序员在设计评审时描述了他所负责的模块架构,然而软件开发出来后,我发现和我所理解的结构大相径庭……

也许有些情况比上述问题还要复杂,那么,问题何在?其实以上诸多问题都是有沟通引起的,沟通无效导致软件项目的最终失败。在软件行业,沟通的成败决定整个项目的成败,沟通的效率影响整个项目的成本、进度,沟通不畅的风险是软件项目的最大风险之一。在需求多变、逻辑性强、复杂程度高的软件项目建设过程中需要建立起良好的沟通计划与秩序,以严谨的沟通态度与科学的沟通方法保障软件项目的顺利实施。

明确的顾客需求诞生于和甲方的互动沟通之中,软件项目建设之初客户需求的确定依靠甲乙双方的不断沟通来完成。软件项目建设的软肋在于客户需求的把握。项目建设之初需要乙方派出专业的项目经理和研发骨干与乙方进行深入沟通,充分把握客户的实际需求,有时候鉴于项目之初客户需求的模糊性或者甲方项目经理的项目经验与业务范围所限,在一开始甲方的需求表达的还是不够深入、全面。这就需要乙方凭借自己的项目经验或者行业经验未雨绸缪给出规划建议或细节的充分考虑,为项目需求做出充分准确的余量规划。而这些都是建立在不断地反复沟通与对最终用户的深入调研的基础之上的。在这里对于沟通与调研的方法不做赘述。

软件项目实施过程中项目组内部需要建立良好的沟通秩序(沟通计划)并保证沟通的有效性。我们曾遇到过这样一个案例,某软件企业在开发某业务管理软件,客户需求做得非常完善,系统分析也十分明确、清晰,但在开发阶段,项目经理发现系统分析其中一个中间层的函数出错,由于该功能模块由他一个人负责开发,当时他就直接对其参数进行了修改,也并未及时和其它编程人员进行沟通说明,过后很快就忘了这件事,当项目接近尾声时,系统突然出现一个大的Bug,影响到整个系统的运行,最后在花费了大量的精力进行查询测试后,才发现是这名项目经理更改的参数出了错。如果最初该项目经理能及时和项目组成员进行沟通,这种错误完全可以避免。一个建立起良好的沟通秩序的项目团队可以有效防范项目失败的风险并能达到事半功倍的效果。

项目沟通计划是项目整体计划中的一部分,其作用非常重要,却常容易被忽视。很多项目中不做完整的沟通计划,导致沟通混乱,轻则导致项目组工作效率低下,重则直接导致项目以失败告终。项目的沟通形式是多种多样的,大致分书面和口头两种形式。书面沟通大多用来进行通知、确认和需求等活动,适合于项目团队中使用的内部备忘录。项目经理确定之初要做的第一件事就是确定整个项目的沟通计划,因为在沟通计划中描述了项目信息的收集和归档结构、信息的发布方式、信息的内容、每类沟通产生的进度计划、约定的沟通方式等等。只有建立起良好的沟通规则,才能把握好沟通,从而全面了解项目的各方面信息,不断推动项目的顺利进展。

;

软件开发项目案例的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于软件开发项目案例分析、软件开发项目案例的信息别忘了在本站进行查找喔。

扫码二维码