您好,欢迎访问三七文档
第2章软件过程与方法1第4章软件项目管理1计算机科学与技术学院软件工程计算机科学与技术学院软件工程软件工程第四章软件项目管理乔立民qlm@hit.edu.cn2011年9月5日第2章软件过程与方法2第4章软件项目管理2主要内容4.1软件项目管理概述4.1.1项目管理概念及特征4.1.2软件项目的“4P”4.1.3软件项目策划过程4.2软件项目估算4.3项目进度安排4.4项目风险管理第2章软件过程与方法3第4章软件项目管理3若干基本概念项目(Project):为创建某种特定的产品或服务而组织或设计的临时的、一次性的行动;项目(Project):精心定义的一组活动,使用受约束的资源(资金、人、原料、能源、空间等)来满足预定义的目标。项目管理(ProjectManagement,PM):有效的组织与管理各类资源(例如人),以使项目能够在预定的范围、质量、时间和成本等约束条件下顺利交付(deliver)。–挑战1:在各类约束条件下交付项目;–挑战2:通过优化资源的分配与集成来满足预先定义的目标;第2章软件过程与方法4第4章软件项目管理4软件项目的特征软件产品的不可见性:开发过程和产品都是看不见摸不着的,导致软件项目特别复杂和抽象;项目的高度不确定性:项目的估算与计划非常困难,有很多难以预见的问题,造成预定计划于实际情况存在较大偏差;软件过程的多变化性:迭代、增量开发、动态变化、不确定、不稳定;软件人员的高技能及其高流动性:智力密集型活动、对人的要求高、核心技术人才流动性高。第2章软件过程与方法5第4章软件项目管理5主要内容4.1软件项目管理概述4.1.1项目管理概念及特征4.1.2软件项目的“4P”4.1.3软件项目策划过程4.2软件项目估算4.3项目进度安排4.4项目风险管理第2章软件过程与方法6第4章软件项目管理6软件项目管理的“4P”第2章软件过程与方法7第4章软件项目管理7People——软件项目的参与人员如何领导?如何组织?如何激励?如何协作?如何创造新想法?第2章软件过程与方法8第4章软件项目管理8软件项目的参与人员高级管理者:负责定义业务问题;项目(技术)管理者:计划、激励、组织和控制软件开发人员;开发人员:拥有开发软件所需技能的人员;–系统分析员;系统架构师;设计师;程序员;测试人员;质量保证人员;…客户:进行投资、详细描述待开发软件需求、关心项目成败的组织/人员;最终用户:一旦软件发布成为产品,最终用户就是直接使用软件的人。项目经理第2章软件过程与方法9第4章软件项目管理9人员协调与沟通问题1:为什么需要沟通?问题2:沟通的方式有哪些?–面对面交谈、电话交谈、email、面对面会议、电话会议、网络会议、项目网站、书面报告;问题3:项目沟通活动有哪些?–规划项目沟通;–实施阶段性评审;–每周小组会议;–……第2章软件过程与方法10第4章软件项目管理10项目经理(ProjectManager)最重要的:领导力(MOI模型)–Motivation(激励):通过“推”或“拉”鼓励项目成员发挥其最大才能与潜力;–Organization(组织):形成能够将最初需求转换为最终产品的能力;–IdeaorInnovation(思想或创新):即使在诸多约束条件下工作,也能鼓励项目成员去创造新的想法。项目经理的关键品质–解决问题:准确诊断出关键技术问题、组织问题,制定解决方案–管理者特性:掌控整个项目,具有领导力–成就:通过激励优化团队效率–影响和队伍建设:理解“人”,在高压环境下保持控制力第2章软件过程与方法11第4章软件项目管理11软件开发团队“好的”团队取决于项目经理的管理风格!组建团队时应考虑以下要素:–从个人能力来看:•应用领域经验•开发平台经验•编程经验•教育背景•沟通能力•适应能力•工作态度•团队协作能力•……–从项目需求来看:•待解决问题的难度;•待开发软件系统的规模;•待开发软件系统的技能要求;•交付日期的严格程度;•共同工作的时间;•彼此之间的人际关系与友好交际程度;•……第2章软件过程与方法12第4章软件项目管理12软件开发团队的组织方式民主式:小组成员完全平等;主程序员式(外科手术):一个人全面负责、其他人给予支持;技术管理式:综合上述二者的特征;上述三种项目的组织方式各有什么利弊,你的小组采取哪种方式?程序员程序员程序员副手秘书主程序员技术人员技术人员技术人员技术人员程序员程序员程序员管理组长技术组长第2章软件过程与方法13第4章软件项目管理13大型项目的技术管理组织结构第2章软件过程与方法14第4章软件项目管理14组织分解结构(OBS)项目管理里通常使用“组织结构分解(OrganizationBreakdownStructure,OBS)”作为描述组织/人员之间关系的工具:项目经理组长组长组长程序员程序员程序员程序员程序员程序员………第2章软件过程与方法15第4章软件项目管理15敏捷团队小型充满活力的团队强调团队成员的个人能力与团队协作精神相结合自组织团队–项目管理自主权–技术决定权–计划制定工作压缩到最低–团队选择自己适用的手段(过程、方法、工具)第2章软件过程与方法16第4章软件项目管理16Product——软件产品第2章软件过程与方法17第4章软件项目管理17Product——软件产品确定软件范围–项目环境:软硬件环境,业务环境–信息目标:输入?输出?–功能和非功能(性能):实现目标的功能,非功能要求在管理层和技术层都必须是无歧义的和可理解的软件范围的描述必须是界定的第2章软件过程与方法18第4章软件项目管理18product——软件产品问题分解(软件需求分析的核心活动):分治的思想–必须交付的功能–所使用的过程文本输入编辑及格式设计自动复制编辑页面布局能力自动生成索引和目录文件管理文档生成[例]文档编辑产品拼写检查语句文法检查大型文档的引用检查大型文档中章节引用确认第2章软件过程与方法19第4章软件项目管理19产品分解结构(PBS)项目管理里通常使用“产品结构分解(ProductBreakdownStructure,PBS)”作为产品分解的工具:–PBS:通过分层的树型结构来定义和组织项目范围内的所有产出物(产品),自顶向下,逐级细分;–产出物:项目结束时需要提交的最终产品,在项目之初就可以准确的预计。第2章软件过程与方法20第4章软件项目管理20产品结构分解(PBS)第2章软件过程与方法21第4章软件项目管理21Process——软件过程有哪些过程模型?优缺点?Step1:选择软件过程模型,适合于:–需要该产品的客户和从事开发工作的人员–产品本身的特性–软件项目团队工作的项目环境Step2:基于过程框架制定初步的项目计划(改进过程以适应项目)Step3:过程分解,制定完整计划,确定工作任务列表;–[例]沟通活动:•列出需澄清的问题清单;•与客户见面并说明问题;•共同给出范围陈述•与所有相关人员一起评审;•根据需要修改范围陈述。第2章软件过程与方法22第4章软件项目管理22过程分解项目管理里通常使用“工作结构分解(WorkBreakdownStructure,WBS)”作为过程分解的工具:WBS:通过分层的树型结构来定义和组织工作任务之间的分解关系,自顶向下,逐级细分;–[例]RAD过程模型的WBS分解结构XXX企业软件项目沟通策划建模构建部署业务建模流程建模数据建模构件复用代码生成测试集成交付反馈第2章软件过程与方法23第4章软件项目管理23合并产品和过程通用过程框架活动沟通策划建模构建部署软件工程任务产品功能文本输入编辑及格式设计自动复制编辑页面布局能力自动生成索引和目录文件管理文档生成资源需求开始/结束日期工作产品沟通活动:列出需澄清的问题清单;与客户见面并说明问题;共同给出范围陈述与所有相关人员一起评审;根据需要修改范围陈述。第2章软件过程与方法24第4章软件项目管理24Project——项目项目管理中的危险信号–软件人员不了解其客户的要求–产品范围定义的很糟糕–没有很好地管理变更–选择的技术发生了变化–业务需求发生变化(或未被很好地定义)–最后期限是不切实际的–客户抵制–失去赞助(或从来没有真正得到过赞助)–项目团队缺乏具有合适技能的人员–管理者(和实践者)没有很好地利用已学到的最佳实践和教训90—90规则第2章软件过程与方法25第4章软件项目管理25项目关注的四个方面质量(Quality)范围(Scope)时间(Time)成本(Cost)第2章软件过程与方法26第4章软件项目管理26Project——项目W5HH原则–Why为什么要开发这个系统?–What将要做什么?–When什么时候做?–Who某功能由谁来做?–Where他们的机构组织位于何处?–How如何完成技术与管理工作?–Howmuch各种资源分别需要多少?第2章软件过程与方法27第4章软件项目管理27主要内容4.1软件项目管理概述4.1.1项目管理概念及特征4.1.2软件项目的“4P”4.1.3软件项目策划过程4.2软件项目估算4.3项目进度安排4.4项目风险管理第2章软件过程与方法28第4章软件项目管理28项目策划过程软件通用过程框架–沟通:项目启动、需求获取–策划:项目估算、资源需求、进度计划–建模:创建模型,进行分析和设计–构建:编码和测试–部署:软件交付,支持和反馈策划的目标:提供一个能使管理人员对资源、成本及进度做出合理估算的框架–定义“最好的情况”、“最坏的情况”–软件项目的不确定性与动态调整第2章软件过程与方法29第4章软件项目管理29项目策划任务集1.规定项目范围2.确定可行性3.分析风险4.确定需要的资源–确定需要的人力资源–确定可复用的软件资源–标识环境资源5.估算成本和工作量–分解问题–使用规模、功能点、过程任务或用例等方法进行两种以上的估算–调和不同的估算6.制定项目进度计划–建立一组有意义的任务集合–定义任务网络–使用进度计划工具制定任务表–定义进度跟踪机制第2章软件过程与方法30第4章软件项目管理30主要内容4.1软件项目管理概述4.2软件项目估算4.2.1可行性分析4.2.2软件项目估算4.3项目进度安排4.4项目风险管理第2章软件过程与方法31第4章软件项目管理31估算与可行性分析软件估算的内容(定量)–需要多少工作量(成本)–需要多少时间(进度)–需要多少人员(资源)软件估算的依据–历史信息–经验–定量预言软件估算风险–定量的不确定性–资源不稳定性软件项目估算的动态调整第2章软件过程与方法32第4章软件项目管理321确定范围Needs:客户/最终用户的请求、想法和业务需求;Requirements:对未来系统所应具备的功能的陈述;Exclusions:将不包含在未来系统中的功能的陈述;Baseline:对未来系统中应包含的功能的陈述。NeedsRequirementsExclusionsBaselineSignature第2章软件过程与方法33第4章软件项目管理331确定范围范围(Scope):描述了将要交付给最终用户的功能和特性、输入输出数据、用户界面、系统的性能、约束条件、接口和可靠性等,以及期望的时间、成本目标;两种方法:–与所有项目成员交流之后,写出对软件范围的叙述性描述;–由最终用户开发一组用例。注意–并不是客户所有的要求都“来者不拒”,需要分别对待!–软件范围一定要用户同意第2章软件过程与方法34第4章软件项目管理34范围的可行性分析技术可行性–项目在技术上可行吗?它在技术水平范围内吗?能够将缺陷减少到一定程度吗?经济可行性–它在经济上可行吗?能以可负担的成本完成开发吗?时间可行性–项目投入市场的时间可以按预期完成吗?资源可行性–组织拥有取得成功所需要的资源吗?第2章软件过程与方法35第4章软件项目管理352确定资源资源–人力资源–可复用的软件资源–环境资源说明资源的特征–资源的描述–可用性说明–何时需要资源–使用资源的持续时间项目人员
本文标题:4 软件项目管理
链接地址:https://www.777doc.com/doc-748458 .html