您好,欢迎访问三七文档
当前位置:首页 > 建筑/环境 > 工程监理 > 7_软件项目管理_软件工程课件
第2章软件过程与方法1第7章软件项目管理1计算机科学与技术学院软件工程计算机科学与技术学院软件工程软件工程第七章软件项目管理乔立民qlm@hit.edu.cn2010年6月11日第2章软件过程与方法2第7章软件项目管理2主要内容7.1软件项目管理概述7.1.1项目管理概念及特征7.1.2软件项目的“4P”7.1.3项目管理的主要活动7.2项目可行性分析与估算7.3项目进度安排7.4*项目风险管理第2章软件过程与方法3第7章软件项目管理3若干基本概念项目(Project):为创建某种特定的产品或服务而组织或设计的临时的、一次性的行动;项目(Project):精心定义的一组活动,使用受约束的资源(资金、人、原料、能源、空间等)来满足预定义的目标。项目管理(ProjectManagement,PM):有效的组织与管理各类资源(例如人),以使项目能够在预定的范围、质量、时间和成本等约束条件下顺利交付(deliver)。–挑战1:在各类约束条件下交付项目;–挑战2:通过优化资源的分配与集成来满足预先定义的目标;第2章软件过程与方法4第7章软件项目管理4软件项目的特征软件产品的不可见性:开发过程和产品都是看不见摸不着的,导致软件项目特别复杂和抽象;项目的高度不确定性:项目的估算与计划非常困难,有很多难以预见的问题,造成预定计划于实际情况存在较大偏差;软件过程的多变化性:迭代、增量开发、动态变化、不确定、不稳定;软件人员的高技能及其高流动性:智力密集型活动、对人的要求高、核心技术人才流动性高。第2章软件过程与方法5第7章软件项目管理5主要内容7.1软件项目管理概述7.1.1项目管理概念及特征7.1.2软件项目的“4P”7.1.3项目管理的主要活动7.2项目可行性分析与估算7.3项目进度安排7.4*项目风险管理第2章软件过程与方法6第7章软件项目管理6软件项目管理的“4P‖第2章软件过程与方法7第7章软件项目管理7People——软件项目的参与人员如何领导?如何组织?如何激励?如何协作?如何创造新想法?第2章软件过程与方法8第7章软件项目管理8软件项目的参与人员高级管理者:负责定义业务问题;项目(技术)管理者:计划、激励、组织和控制软件开发人员;开发人员:拥有开发软件所需技能的人员;–系统分析员;系统架构师;设计师;程序员;测试人员;质量保证人员;…客户:进行投资、详细描述待开发软件需求、关心项目成败的组织/人员;最终用户:一旦软件发布成为产品,最终用户就是直接使用软件的人。项目经理第2章软件过程与方法9第7章软件项目管理9项目经理(ProjectManager)最重要的:领导力MOI模型:–Motivation(激励):通过“推”或“拉”鼓励项目成员发挥其最大才能与潜力;–Organization(组织):形成能够将最初需求转换为最终产品的能力;–IdeaorInnovation(思想或创新):即使在诸多约束条件下工作,也能鼓励项目成员去创造新的想法。第2章软件过程与方法10第7章软件项目管理10软件开发团队“最好的”团队取决于项目经理的管理风格、团队里的人员数目与技能水平、项目的总体难易程度;组建团队时应考虑以下要素:–从个人能力来看:•应用领域经验•开发平台经验•编程经验•教育背景•沟通能力•适应能力•工作态度•团队协作能力•……–从项目需求来看:•待解决问题的难度;•待开发软件系统的规模;•待开发软件系统的技能要求;•交付日期的严格程度;•共同工作的时间;•彼此之间的人际关系与友好交际程度;•……第2章软件过程与方法11第7章软件项目管理11软件开发团队的组织方式民主式:小组成员完全平等;主程序员式:一个人全面负责、其他人给予支持;技术管理式:综合上述二者的特征;上述三种项目的组织方式各有什么利弊?技术人员技术人员技术人员后备工程师秘书高级工程师技术人员技术人员技术人员技术人员技术人员技术人员技术人员管理组长技术组长第2章软件过程与方法12第7章软件项目管理12大型项目的技术管理组织结构第2章软件过程与方法13第7章软件项目管理13组织分解结构(OBS)项目管理里通常使用“组织结构分解(OrganizationBreakdownStructure,OBS)”作为描述组织/人员之间关系的工具:项目经理组长组长组长程序员程序员程序员程序员程序员程序员………第2章软件过程与方法14第7章软件项目管理14人员协调与沟通问题1:为什么需要沟通?问题2:沟通的方式有哪些?–面对面交谈、电话交谈、email、面对面会议、电话会议、网络会议、项目网站、书面报告;问题3:项目沟通活动有哪些?–规划项目沟通;–实施阶段性评审;–每周小组会议;–……第2章软件过程与方法15第7章软件项目管理15Product——软件产品第2章软件过程与方法16第7章软件项目管理16软件产品首先应确定软件范围:–项目环境–信息目标–功能和非功能(性能)–在管理层和技术层都必须是无歧义的和可理解的,软件范围应是确定的;一旦确定了范围,需要对其进行分解——分而治之。文本输入编辑及格式设计剪贴/复制/粘贴页面布局能力自动生成索引和目录文件管理[例]文档编辑产品第2章软件过程与方法17第7章软件项目管理17产品分解结构(PBS)项目管理里通常使用“产品结构分解(ProductBreakdownStructure,PBS)”作为产品分解的工具:–PBS:通过分层的树型结构来定义和组织项目范围内的所有产出物(产品),自顶向下,逐级细分;–产出物:项目结束时需要提交的最终产品,在项目之初就可以准确的预计。第2章软件过程与方法18第7章软件项目管理181.软件项目1001.1可行性分析报告81.2需求分析报告151.3设计报告301.4源代码51.5测试用例151.6测试记录151.7项目管理文档121.软件项目1.1可行性分析报告1.软件项目1.1.1时间可行性1.1.2成本可行性1.1.3人员可行性1.1.4技术可行性1.2需求分析报告151.3设计报告1.3.1概要设计书1.3.2详细设计书1.4源代码51.5测试用例151.6测试记录1.6.1测试环境1.6.2测试记录1.6.3测试结果1.6.4修改记录2213131724451.7项目管理文档12100100PBS第1层PBS第2层PBS第3层产品结构分解(PBS)第2章软件过程与方法19第7章软件项目管理19Process——软件过程Step1:选择合适的软件过程模型–…还记得都有哪些过程模型了吗?–…还记得各过程模型所适用的不同场合吗?Step2:根据所选的过程模型,对其进行适应性修改;Step3:确定过程中应包含的工作任务列表;–[例]沟通活动:•列出需澄清的问题清单;•与客户见面并说明问题;•共同给出范围陈述•与所有相关人员一起评审;•根据需要修改范围陈述。第2章软件过程与方法20第7章软件项目管理20工作分解结构(WBS)项目管理里通常使用“工作结构分解(WorkBreakdownStructure,PBS)”作为过程分解的工具:WBS:通过分层的树型结构来定义和组织工作任务之间的分解关系,自顶向下,逐级细分;–[例]RAD过程模型的WBS分解结构XXX企业软件项目沟通策划建模构建部署业务建模流程建模数据建模构件复用代码生成测试集成交付反馈第2章软件过程与方法21第7章软件项目管理21―产品”与“过程”的合并还记得软件项目的“产品与过程二象性”吗?将“产品分解结构PBS”与“工作分解结构WBS”之间建立关联关系。第2章软件过程与方法22第7章软件项目管理22Project——项目W5HH原则–Why为什么要开发这个系统?–What将要做什么?–When什么时候做?–Who某功能由谁来做?–Where他们的机构组织位于何处?–How如何完成技术与管理工作?–Howmuch各种资源分别需要多少?第2章软件过程与方法23第7章软件项目管理23项目关注的四个方面范围(Scope)时间(Time)成本(Cost)质量(Quality)第2章软件过程与方法24第7章软件项目管理24项目管理的几个主要任务项目可行性分析与估算项目进度安排项目风险管理项目质量管理项目跟踪与控制第2章软件过程与方法25第7章软件项目管理25主要内容7.1软件项目管理概述7.1.1项目管理概念及特征7.1.2软件项目的“4P”7.1.3软件项目管理的主要活动7.2项目可行性分析与估算7.3项目进度安排7.4*项目风险管理第2章软件过程与方法26第7章软件项目管理26软件项目管理的四个阶段阶段1:项目启动–确定系统范围–可行性分析与估算–组建项目团队–建立项目环境阶段2:项目规划–确定项目活动–预算项目成本–制定进度计划阶段3:项目实施–监控项目执行–管理项目风险–控制项目变更阶段4:项目收尾–客户验收项目–安装培训软件–总结项目经验第2章软件过程与方法27第7章软件项目管理27主要内容7.1软件项目管理概述7.2项目可行性分析与估算7.3项目进度安排7.4*项目风险管理第2章软件过程与方法28第7章软件项目管理28可行性分析与估算在项目开始之前,必须预先估计三件事情:–需要多少工作量–需要多少时间–需要多少人员此外,还必须预测所需要的资源(硬件和软件)以及蕴含的风险;从而得出“该项目是否可行”的结论。第2章软件过程与方法29第7章软件项目管理291确定范围范围(Scope):描述了将要交付给最终用户的功能和特性、输入输出数据、用户界面、系统的性能、约束条件、接口和可靠性等,以及期望的时间、成本目标;两种方法:–与所有项目成员交流之后,写出对软件范围的叙述性描述;–由最终用户开发一组用例。注意:–并不是客户所有的需求都“来者不拒”,需要分别对待!–最终一定要用户签字确认!第2章软件过程与方法30第7章软件项目管理301确定范围Needs:客户/最终用户的请求、想法和业务需求;Requirements:对未来系统所应具备的功能的陈述;Exclusions:将不包含在未来系统中的功能的陈述;Baseline:对未来系统中应包含的功能的陈述。NeedsRequirementsExclusionsBaselineSignature第2章软件过程与方法31第7章软件项目管理312可行性分析技术可行性:–项目在技术上可行吗?它在技术水平范围内吗?能够将缺陷减少到一定程度吗?经济可行性:–它在经济上可行吗?能以可负担的成本完成开发吗?时间可行性:–项目投入市场的时间可以按预期完成吗?资源可行性:–组织拥有取得成功所需要的资源吗?第2章软件过程与方法32第7章软件项目管理323软件项目估算如何估算时间、成本、资源?——靠经验?——靠数学公式?到目前为止,因为变化的要素太多,所以对软件的估算从来没有达到精确。但是,估计得越精确,项目成功的可能性就越高。方法:–代码行技术–功能点技术–过程估算技术第2章软件过程与方法33第7章软件项目管理33(1)代码行技术(LOC)LOC:LinesofCode–从过去开发类似产品的经验和历史数据出发,估计出所开发软件的代码行数。64bmaLL估计的代码行数a乐观值b悲观值m可能值LμCL估计的代码行数每行代码的单位成本C总成本LPML估计的代码行数平均生产率(LOC/pm)PM总的工作量(pm)第2章软件过程与方法34第7章软件项目管理34(1)代码行技术(LOC)功能LOC估算乐观值可能值悲观值估算值用户接口及控制设备200022002500二维几何分析510057006000三维几何分析620069007200数据库管理315036503820图形显示450049005800外部设备控制180021002400设计分析模块770086009000总代码行数总成本每行代码成本=100元总工作量平均生产率=620LOC/人月第2章软件过程与方法35第7章软件项目管理
本文标题:7_软件项目管理_软件工程课件
链接地址:https://www.777doc.com/doc-4870002 .html