软件工程-软件项目管理

上传人:飞*** 文档编号:56623220 上传时间:2018-10-14 格式:PPT 页数:126 大小:343.50KB
返回 下载 相关 举报
软件工程-软件项目管理_第1页
第1页 / 共126页
软件工程-软件项目管理_第2页
第2页 / 共126页
软件工程-软件项目管理_第3页
第3页 / 共126页
软件工程-软件项目管理_第4页
第4页 / 共126页
软件工程-软件项目管理_第5页
第5页 / 共126页
点击查看更多>>
资源描述

《软件工程-软件项目管理》由会员分享,可在线阅读,更多相关《软件工程-软件项目管理(126页珍藏版)》请在金锄头文库上搜索。

1、1,软件工程,软件项目管理,65,2,主要讲解内容,1、项目管理定义 2、项目管理培训 3、项目经理职责 4、项目经理工作流程 5、项目经理对程序员的要求 6、项目管理的经验 7、项目管理原则 8、软件企业文化,3,软件项目管理,导读: 对IT企业来说,项目管理太重要了。项目管理起始于项目立项,终止于项目交付。在宏观上说,软件工程的整个内容,实际上都在论述项目管理,或者说都跟项目管理有关。不同的是,本章是项目管理的专述,是在微观上论述项目管理。它从项目的定义、项目管理的重要性开始,直到项目经理的7项职责和10项工作程序、项目经理对程序员的9条要求、项目经理抓好项目的7条经验,最后总结出IT企业

2、高层经理管理项目的10大原则。下面列出了读者在本章学习中要了解、理解和关注的主要内容。,4,软件项目管理,本章对读者的要求,5,项目管理定义,项目管理是一种广泛应用于各种工程中的技术管理过程。项目是一次性多任务工作,它具有确定的开始日期、结束日期、工作范围、经费预算、质量标准,以及特定的功能、性能和接口要求。项目管理常常是决定产品或企业能否成功的最重要指标之一。项目管理的能力已成为软件企业的关键能力。(1)“项目”是什么?(2)“项目管理”是什么?(3)项目管理的重要性表现在什么地方?(4)谁去管理项目?(5)怎么管理项目?(6)人们在管理项目的过程中有什么经验与教训?,6,项目管理培训,项目

3、管理项目管理提供了解决问题的思路和方法,告诉人们在团队合作的过程中,如何加强个体之间横向和纵向的衔接。目前,在我国的IT行业中,一大批技术人才掌控着公司,刚开始的时候他们没有认识到管理的重要性,不进行规范管理还勉强可以生存。后来,随着公司壮大,没有规范管理就会给公司动作带来困难。有技术背景的员工,要他们自己在技术工作中“以身作则、埋头苦干”肯定没问题。然而要他们领导一个项目,就不是那么容易了。因为项目管理主要是要求别人干,指挥人家去做,这与自己个人干不一样。要想使技术人员上升到管理层,项目管理培训是必须的。通过项目管理的培训,可以给技术出身的中高层领导换脑子,改变他们只重技术忽视管理的思想。事

4、实上,高层领导的决策失误,多数表现在管理上,而不是在技术上。,7,项目经理职责,项目经理是软件项目管理的实施人和带头人,在软件工程管理中,项目经理的职责是“七抓”:一、抓需求获取确认;二、抓计划制定与执行;三、抓团队分工与工作;四、抓后勤供应与保障:五、抓产品测试与交付:六、抓开发标准与规范;七、抓员工考核与奖励。,8,项目经理工作流程,项目经理的工作要遵守如下10项工作流程1、软件项目要先立项,后开发。立项工作原则上由销售部门负责,立项书的形式有: (1)、评审并批准的立项建议书(2)、下达指令的任务书(3)、签订的合同书或委托书(订单)立项后由软件研发部门组建项目组,任命项目经理(必要时增

5、加技术经理及产品经理),项目经理要认真看懂与仔细分析立项书的内容。,9,项目经理工作流程,2、项目经理根据立项书制定初步的软件开发计划和需求分析完成后,再修改并细化软件开发计划。软件开发计划的内容要包括项目描述、功能和性能特点、资源需乎计划、人员计划、进度计划、配置训计划、质量保证计划、测试计划、评审计划、风险分析等。软件管理部门对软件开发计划进行评审。评审通过后,项目经理根据人员计划,进行组成员具体分工。,10,项目经理工作流程,3、以系统分析师为主,对软件项目进行需求调研、获取用户需求,形成用户需求报告。用户需求报告的内容要包括系统的业务流、资金流、人流、物流,要用数据流来集中反映出这4个

6、流程,归纳整理出系统的功能表、性能点列表、外部接口列表。要请用户确认并签字,以此作为用户验收测试的依据软件研发管理部门对用户需求报告进行评审,直至不符合项为零即通过评审与审计,产生该项目的第1根基线。项目经理根据用户需求报告,可以再次修改项目开发计划,并要求对修改后的开发计划进行评审与冻结。,65,11,项目经理工作流程,4、系统分析师将用户看不懂的、设计师又必须知道的内容,加到用户需求报告中去,形成完整的目标系统业务模型和功能模型,并形成初步的数据模型,从而产生出软件需求规格说明书。要求对此规格说明书进行内部评审,通过后作为软件设计的基线。,12,项目经理工作流程,5、以系统设计师为主的进行

7、概要设计。主要内容包括:体系结构设计、命名规则设计、功能模块设计(内含构件的提取)、数据库设计、接口设计等内容。以由高级程序员为主的详细设计主要内容包括:类库和构件库基本建设的设计、存储过程实现设计、触发器实现设计、数据处理算法实现设计、菜单界面实现设计、查询统计实现设计、报表实现设计、通信传输实现设计等,列出功能点列表、性能点列表、外部接口列表在设计实现中的对应关系,便于进行测试。软件管理部门对概要设计和详细设计文档进行评审,直至不符合项为零即通过评审与审计,成为该项目的编程基线。,13,项目经理工作流程,6、按照详细设计说明书,以高级程序员为主,组织程序人员进行编程、单元测试和集成测试。源

8、程序文档应结构清晰、层次分明、注解行充分,便于阅读和维护,测试后的源程序成为该项目的基线。,14,项目经理工作流程,7、按照功能点列表、性能点列表、外部接口表的内容,软件测试人员对系统进行功能测试、性能测试、接口测试和验收测试,形成测试报告文档。测试组向项目组提交发现的问题单,直至改正为止。最后,提交一份经评审后通过的测试报告,成为该项目的基线。,15,项目经理工作流程,8、项目经理组织项目组成员书写用户指南,(使用手朋、安装手册)。根据需要,还可能书写系统管理员手册和其他有关培训手册,并对维护人员和销售人员进行培训。同时对软件项目或产品进行包装,制作母盘,形成公司对外发布和保存管理的Beta

9、版本,作为该项目的最后一根基线。,16,项目经理工作流程,9、在上述工作程序中,项目经理每周还要对项目开发计划和员工个人计划进行跟踪、监督、考核和调整。员工在每个周末以电子文档的形式,总结本周个人划的执行情况,制定下周进度计划,并报告给项目经理。员工周而复始地总结本周的计划执行情况,制定下周的进度计划,接受项目经理的考核,直至项目组工作结束为止。项目组对开发计划做大的调整(基线计划变更)前,都要事先提出申请,经过软件管理部门评审,并报高层经理批准后才能执行变更。,17,项目经理工作流程,10、软件项目内部验收或用户验收完毕后,项目经理应召开项目工程总结会,书写项目总结报告。从企业文化、经验积累

10、、技术长进等方面进行全面总结,向软件管理部门提供详细资料,由管理部门将此资料追加到软件过程数据库上。,18,项目经理对程序员的要求,一般地讲,目经理领导若干名(最多不超过10名)程序员(或软件蓝领)。项目经理不但要给程序员分配工作和检查质量与进度,而且要培养和提高他们的水平和素质。项目经理要对程序员充满爱心,不但要认识到一个优秀程序员的生产效率可能是一个普通程序员的数10倍,为了全面提高程序员的素质,项目经理要从以下几个方面对程序员进行严格训练和要求。,19,项目经理对程序员的要求,1、团队协作精神的训练和要求任何个人的力量都是有限的,一旦进入一些大型IT企业的研发团队,担负商业化和产品化的软

11、件开发任务,缺乏团队协作精神就是不合格的员工。 现在的软件开发不再是个人英雄主义打天下的时代,尤其是大的软件公司,一个软件都是由几百人甚至几千人共同合作完成的,没有团队精神是无法想象的。所以用人之道是“人品、智慧、团队精神”三要素,可见团队精神的重要性。,20,项目经理对程序员的要求,2、数据库和数据结构分析与设计能力的训练和要求程序员不但要学会看懂数据库和数据结构,而且要逐渐学会分析与设计数据库和数据结构。只有这样,初级程序员才能逐渐成长为高级程序员,高级程序员才能逐渐成长为系统分析员。否则,在IT企业,蓝领阶层很难进入白领阶层。要知道,程序员这个职业是青年人的职业,尽管超过40岁的软件人员

12、还要继续写代码,但是再当程序员就不太合适了。,21,项目经理对程序员的要求,3、文档习惯的训练和要求良好的文档是正规研发流程中非常重要的环节,作为程序员,30的工作时间写技术文档(例如,源程序中的文档和用户指南)是很正常的,而作为高级程序员和系统分析员,这个比例在70以上。正规IT企业,对文档有严格要求,这些要求体现在书写文档的参考模板或指南之中。,22,项目经理对程序员的要求,4、规范化代码编写能力的训练和要求作为IT企业的规矩,要求程序员进行“无私程序设计”,即程序代码的风格与程序员个人的性格无关。程序代码的变量命名、程序代码内注释格式、甚至嵌套中行缩进的长度和函数间的空行数字都有明确规定

13、。良好的编写习惯,不但有助于代码的移植和纠错,也有助于不同技术人员之间的协作。代码具有良好的可读性,是程序员的基本工作要求。没有规范化和标准化的代码习惯,全球的研发协作是绝对不可想象的。,23,项目经理对程序员的要求,5、复用性能力的训练和要求经常可以听到一些程序员有这样的抱怨,写了几年程序,变成了熟练的软件蓝领,每天都是重复写一些没有任何新意的程序代码。其实这是最大的浪费,一些重复性工作变成了熟练程序员的主要工作,而这些是完全可以避免的。,24,项目经理对程序员的要求,复用性设计、模块化思维,就是要程序员在完成任何一个功能模块或函数的时候,要多想一些,不要局限在完成当前任务的简单思路上,想想

14、看该模块是否可以脱离这个系统存在,是否可以通过简单的参数修改方式,在其他系统和应用环境下直接引用,这样就能极大避免重复性的开发工作。如果一个软件组织或项目组能够在每一次研发过程中都考虑到这些问题,那么程序员就不会在重复性的工作中耽误太多时间,就会有更多时间和精力投入到创新的代码工作中去。,25,项目经理对程序员的要求,6、写构件能力的训练和要求软件复用思想是构件思想的源头。具有一定规模的软件企业,都有自己的类库、构件库、中间件库。程序员不但要学会使用这些库,而且要学会生产这些库中的元素,使这些库的内容不断得到充实加强。软件企业自己的构件库强大与否,主要决定于该企业程序员素质的高低。当然与项目经

15、理的组织和引导也有极大关系。,26,项目经理对程序员的要求,7、测试习惯的训练和要求对软件企业而言,专职的测试部门是不可少的,这并不是说有了专职的测试部门,程序员就可以不进行自测。事实上,白盒子测试主要是指程序员对自己的代码进行执行路径测试,静态测试也是程序员自己或程序员互相之间进行测试的方法。,65,27,项目经理对程序员的要求,软件研发作为一项工程而言,一条很重要的规律就是Bug问题发现的越早,解决Bug问题的代价就越低,因为软件中的错误在开发过程中呈发散性地传播。程序员在每段程序代码、每个构件或每个子模块完成后进行认真的测试,就可以尽量将一些潜在Bug问题尽早地发现和解决,这样对整个开发

16、进程将会有很大的促进。测试工作需要考虑两个方面,一方面是正常调用的测试;另一方面是异常调用的测试。,28,项目经理对程序员的要求,8、学习和总结能力的训练和要求程序员是很容易被淘汰、很容易落伍的职业,因为一种技术可能仅仅在两三年内具有领先性,程序员如果想安身立业,就必须不断跟进新技术,学习新技能。善于学习,对于任何职业而言,都是前进入是必需的动力。对于程序员,这种要求就更加高了。善于总结,也是善于学习的一种体现,每次完成一个研发任务,完成一段程序代码,都应当有目的地跟踪该程序的应用状况和用户反馈,随时总结,找到自己的不足,逐步提高自己。,29,项目经理对程序员的要求,9、引导程序员奋进科学技术上的发明、创造和成功,一半来自于童心童趣,一半来自于奋发图强。好奇、喜欢、兴趣,是一个人前进的最大动力,因为喜欢才有激情,兴趣就是动力。项目经理要引导程序员对编程工作的爱好,将程序设计作为一门艺术、一种生命、一项永无止境的追求。,30,项目经理对程序员的要求,要鼓励程序员将编程的实践经验上升到软件的抽象理论,又将软件的抽象理论返回到编程实践。这样日积月累,逐步由量变发展到质变。于是,一位优秀的程序员可能就这样成长起采了,一位著名的软件大师可能就这样诞生了。这不是天方夜谭,而是有可能发生的奇迹。,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 教育/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号