软件项目管理课程课件-完整版.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《软件项目管理课程课件-完整版.ppt》由用户(三亚风情)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 项目 管理 课程 课件 完整版
- 资源描述:
-
1、软件项目管理软件项目管理软件项目管理软件项目管理软件:是与一个系统,特别是一个计算机系统有关的程序、过程和有关文档的完整集合。工程:是科学和数学的应用,通过这一应用,使得自然界的物质和能源的特性通过各种结构、机器、产品、系统和过程成为对人类有用的东西。lFritz BauerNAV69在NATO会议上给出的定义: l 软件工程是建立和使用一套合理的工程原则,从而经济地获得可靠的和能在实际机器上高效运行的软件。lIEEEIEEE93给出了一个更加综合的定义:() 将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中。() ()中所述方法的研究。l本书给出的定
2、义:软件工程是一类求解软件的工程。它应用计算机科学、数学以及管理科学等原理,借鉴传统工程的原则、方法,创建软件以达到提高软件质量、降低成本、按时按量交付的目的。l计算机科学、数学用于构造模型和算法。l工程科学用于制定规范、设计模式、评估成本及确定权衡。l管理科学用于计划、资源、质量、成本等管理。l软件工程目标l软件工程活动l软件工程原则l正确性软件产品达到预期功能的程 度。l可用性软件基本结构、实现、文档为用户可用的程度。l合算性具有经济效益,即开发、运行的开销满足用户要求的程度。l问题定义明确要解决的问题l可行性分析即定义的问题是否有解决的办法l需求分析为解决问题,目标系统必须具备哪些功能l
3、设计总体设计,详细设计l实现编写程序代码l确认测试l支持软件维护l选取适宜的开发模型l采用合适的设计方法l提供高质量的工程支持l重视开发过程的管理l所有软件工程的活动都必须进行管理。l软件项目管理贯穿于软件工程的演化过程。l软件工程的演化过程:l软件工程模型: 组织软件工程活动的方法,称为软件工程模型。l软件工程模型是用一定的流程将各个活动连接起来,并可用规范的方式操作全过程,如同工厂的生产线。l常见模型有线性、快速原型、螺旋、渐增式等模型。l线性模型(也称,瀑布模型,顺序模型)l螺旋模型可看成是连接的线性模型l渐增式模型(增量模型)l渐增式模型首先构建系统的基本轮询回路:项目的概念及特点项目
4、:是指在一定约束条件下具有特定目标的一项一次性任务共同特点:l一次性,又称为单件性l目标的明确性:成果性目标(功能性要求),约束性目标作为管理对象的整体性项目的生命周期 l项目启动阶段进行可行性分析,若接受项目进行需求确认,项目立项l项目计划阶段建立解决问题方案,向客户提交各种计划书l项目实施阶段执行解决方案,实现项目的目标l工作结束阶段正式验收项目生命周期阶段 工程阶段 初始阶段 细化阶段 生产阶段 构造阶段 移交阶段l工程阶段: 使计划、需求和构架同时进化,并解决开发风险,这个阶段以一个可执行构架基线结束,即工程阶段进行设计和综合活动。l生产阶段: 进行构造、测试和实施活动。l借助提高功能
5、的演示使系统能力得以进化。l各种活动同时进化,每个阶段都包括一次或多次迭代,一次迭代表示一个活动序列,这些活动有明确的中间事件(里程碑)。l主里程碑: 使用正式版本的评价标准和发布说明书,一个阶段结束产生一个主里程碑。l次里程碑: 使用非正式版本,一次迭代结束产生一个次里程碑。l为实现整个项目的某个特定状态,每个阶段都要进行足够次数迭代。l各阶段的工作产品(制品,文档等),同时进化产生,但每个阶段都有一个主要焦点:初始阶段需求 (生命周期目标里程碑)细化阶段设计 (生命周期构架里程碑)构造阶段实现 (初始的可操作能力里程碑)移交阶段实施 (产品发布里程碑)(这里的模型是渐增式(增量式)l项目管
6、理定义PMI(Project Management Institute)定义:在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求。项目管理又可定义为:在一个确定的时间范围内,为了完成一个既定的目标,通过特殊形式的临时性组织运行机制,经有效的计划、组织、领导和控制,充分利用既定有限资源的一种系统管理方法。l项目管理特点l综合性l创造性时间性l范围 、 时间 、成本、 质量、 组织 、客户满意度l集成管理l范围管理l时间管理l成本管理l质量管理l人力资源管理l沟通管理l采购管理l风险管理l项目管理学科发展的特点 全球化发展、多元化发展、专业化发展l项目管理学科在双向
7、探索中前进 各学科领域的理论、方法应用于项目管理,项目管理的理论、方法应用于各学科领域l项目学发展的趋势l微观项目管理,即单一项目的管理lPMBOK是当前项目管理学科发展的重要内容l项目学是知识创新与市场相结合的综合化发展l项目学是科学、技术和艺术的综合l抽象性l缺陷检测的困难性l高度的复杂性l缺乏统一规则l软件失控项目(p15-16) 是指软件项目在进行时遇到困难,导致大大超出可控制范围的项目。l软件项目失控的原因 七方面原因:需求不明确、计划不充分和过于乐观的估计、采用新技术、管理方法缺乏或不恰当、性能问题、团队组织不当、人际因素l软件项目管理的定义(p19)l软件项目管理的过程(p19)
8、l软件项目管理的内容(p19-20)lPMI对项目管理定义:在项目活动中运用一系列的知识、技能、工具和技术,以满足或超过相关利益者对项目的要求。l软件项目管理的定义:在软件项目活动中运用一系列的知识、技能、工具和技术,以满足软件需求方的整体要求。l启动软件项目l制定项目计划l跟踪及控制项目计划l评审项目计划l编写管理文档l软件项目需求管理 l软件项目估算与进度管理 l软件项目配置管理 l软件项目风险管理 l软件项目质量管理 l软件项目资源管理 l简单地说,软件需求就是确定系统需要做什么l严格意义上,软件需求是系统或软件必须达到的目标与能力l系统的输入l系统的输出l系统的功能l系统的属性l系统环
9、境的属性l软件需求与其他软件过程的关系软件需求分成四个抽象层次l原始问题描述l用户需求l系统需求1.软件设计描述l原始问题描述是对要解决问题的叙述l用户需求是用自然语言和图表给出的关于系统需要提供的服务及系统的操作约束l系统需求用详细的术语给出系统要提供的服务及受到的约束,因而系统需求文档也称为功能描述l软件设计描述是在系统需求的基础上加入更详细的内容构成的,它作为软件详细设计和实现的基础,是对软件设计活动的概要描述l原始问题描述和用户需求的抽象层次比较高能帮助我们在较高的抽象层次上进行交流,便于用户和软件开发人员之间的理解和沟通l系统需求和软件设计描述则是具体的,可以根据它们来进行编码实现l
10、通常情况下,经常提到的是用户需求和系统需求l用户需求从用户的角度描述系统的需求,以便没有专业技术背景的用户能看懂它只描述系统的外部行为,尽量避免涉及系统内部的设计特性,因而用户需求就不可能使用任何实现模型来描述,而只能通过自然语言,图表,图形等来叙述l描述困难l需求混乱因此写需求文档应遵守一些简单原则:l标准的格式l使用一致的语言l使用特殊文本l尽量避免专业术语l系统需求是比用户需求更为详细和专业的需求描述,是系统实现的依据一个完整且一致的系统需求描述,是软件设计的起点l系统需求描述通常采用结构化语言和过程设计语言PDL.名称 说明 优点 缺点 结构化语言是对自然语言格式化,依赖于定义标准格式
11、或模板来表达需求描述表现能力强、易于理解 、一致性约束 、控制结构 、图形化显示仍然有一定程度的二义性;细致程度欠缺PDL 源于像Java或Ada这样的程序设计语言,包含附加的、更抽象的构造来提高其表达能力 可通过软件工具进行语法和语义检查表达系统功能的能力不足、使用的符号只有具有程序设计背景的人才能理解l分为三类 : 功能需求 非功能需求 领域需求 (1) 功能需求功能需求描述系统所应提供的功能和服务,包括系统应该提供的服务,对输入如何响应及特定条件下系统行为的描述系统的功能需求应该具备全面性和一致性要做到全面和一致几乎是不可能的原因有二,其一是系统本身固有的复杂性;其二是用户和开发人员站在
12、不同的立场上,导致他们对需求的理解有偏颇,甚至出现矛盾为保证软件项目的成功,无论在哪个阶段,只要发现问题,都必须修正需求文档(2) 非功能需求非功能需求是指那些不直接与系统的具体功能相关的一类需求,但它们与系统的总体特性相关,如可靠性,响应时间,存储空间等非功能需求定义了对系统提供的服务或功能的约束,包括时间约束,空间约束,开发过程约束及应遵循的标准等l按照非功能需求的起源,可将其分为三大类:产品需求,机构需求,外部需求;l产品需求对产品的行为进行描述;机构需求描述用户与开发人员所在机构的政策和规定;外部需求范围比较广,包括系统的所有外部因素和开发过程非功能需求 产品需求 可用性需求 效率需求
13、 性能需求 空间需求 可靠性需求 可移植性需求 机构需求 交付需求 实现需求 标准需求 外部需求 互操作需求 道德需求 立法需求 隐私需求安全性需求(3) 领域需求领域需求的来源不是系统的用户,而是系统应用的领域,反应了该领域的特点领域需求可能是功能需求,也可能是非功能需,其确定需要领域知识软件需求文档是对软件系统要求的陈述 包括: 用户需求 系统需求编写需求文档时,以下几点是应该注意的:l语句和段落尽量简短l表达时采用主动语态l语句要完整,且语法,标点等正确无误l使用的术语要与词汇表中的定义保持一致l陈述时要采用一致的样式l避免模糊的,主观的术语,如性能优越l避免使用比较性的词汇,尽量给出定
14、量的说明, 含糊的语句表达将引起需求的不可验证 使用对象 需求文档的作用 l软件项目客户 了解软件项目能够提供的软件产品,检查 软件需求是否满足需要l项目管理人员 根据需求文档制定项目的开发计划和软件过程,初步预测资源的使用l软件开发人员 理解要开发的产品及具体要开发的内容l软件测试人员 验证软件系统是否满足了预期的要求l软件维护人员 使用需求文档帮助理解软件系统内在的逻辑关系l软件发布人员 在需求文档的基础上编写用户文档,如用户手册l软件培训人员 在需求文档的基础上编写培训材料(1)基本含义l规格就是一个预期的或已存在的计算机系统的表示,它可以作为开发者和用户之间协议的基础来产生预期的系统l
15、软件需求规格SRS也称为功能规格说明,需求协议或系统规格说明,精确地阐述一个软件系统必须提供的功能和性能以及它所要考虑的限制条件,是对外部行为和系统环境(软件,硬件,通信端口和人)接口的简洁完整的描述性文档l软件项目管理者用SRS来对项目进行计划和管理。l除设计和实现上的限制外,SRS一般不包括设计、构建、测试或工程管理的细节。lSRS的基本内容包括功能需求和非功能需求。l功能需求定义系统需要“做什么”,描述系统输入输出的映射及其关联信息,完整地刻画系统功能,是整个软件需求的核心。l非功能需求定义系统的属性,描述和功能无关的目标系统特性,包括系统的性能、有效性、可靠性、安全性、易维护性及可见性
16、等。(2) IEEE标准830-1998 见: P27P28(3) SRS 大纲 见: P28-P29l一个好的需求集应该满足用户解决问题需要的功能和服务,而且尽量避免软件设计与软件实现的细节.l软件需求质量度量的九个元素,即正确,无歧义,完备,一致,分级,可验证,可修改,可跟踪及可理解22 需求工程一 、 产生与发展1、 产生人们逐渐认识到需求分析活动不再仅限于软件开发的最初阶段,而是贯穿于软件项目开发的整个生命周期。需求工程是一个包括创建和维护需求文档所必需的所有活动的过程,是将用户非形式化的软件需求转变为形式化的需求规格说明的过程。需求规格说明又是软件设计、实现、测试直至维护的主要基础。
17、2. 发展需求工程的发展趋势是对象化、形式化和自动化,并将向着纵深发展和综合发展。()对象化需求工程的对象化主要是指需求模型及其构造方法的对象化,面向对象需求模型及需求定义语言是其研究的关键。( )形式化 需求规格描述方法有三种: 形式化方法、非形式化方法和半形式化方法。形式化方法是具有严格数学基础的描述系统特征的方法,具有准确、无二义性的特点,有助于验证有效性和完整性。非形式化方法使用未作任何限制的自然语言,易于理解和使用,但它固有二义性,且难以保证正确性、可维护性,难以用计算机系统提供自动化的支持。半形式化方法介于上述两者之间,在宏观上对语言和语义有较精确的描述,而在某些局部方面则允许使用
18、非形式化的自然语言。(3) 自动化在自动化的层次方面,已从实现级、设计级发展到功能级,并逐渐渗透到需求级。、需求工程的目标 需求工程有两个主要任务:其一是通过对问题及其环境的理解、分析和综合,建立分析模型;其二是在完全弄清用户对软件系统的确切要求的基础上,用SRS把用户的需求表达出来。()建立需求分析模型分析模型是描述软件需求的一组模型。需求分析模型包含问题及其环境所涉及的信息流、处理功能、用户界面、行为模型及设计约束等,是形成需求说明、进行软件设计及实现的基础。()编写SRSSRS的编写要以需求分析模型为基础、按照软件组织定义的SRS大纲、采用某种需求描述语言来进行。 需求工程可分为需求开发
19、和需求管理,前者测重于需求的生成,而后者测重于需求变更的控制。l需求开发和需求管理是有界限的: 需求管理、需求供求双方固有的矛盾需求过程中,需求的供求双方经常会遇到双方不能达成共识或双方达成共识的内容其实有相当大的出入等情况。、需求具有易变性和难以表述性软件项目中的问题都是在需求分析阶段埋下的祸根。软件需求还很难以表述。正是因为需求的易变性和难以表述性,所以需求需要有科学的分析方法和管理方法。 表2.4 软件缺陷总结l缺陷来源 潜在缺陷 剩余缺陷 排除效率(% %)需求 0.2 0.046 77 设计 0.25 0.0375 85 编码 0.35 0.0175 95 建档 0.12 0.024
20、 80 修复 0.08 0.024 70 合计 1 0.149 85.1 l 一个在需求阶段出现的错误,在维护阶段修复它的成本约是需求阶段修复成本的倍。对于软件缺陷,修复的发现和修复的越早,则成本越低。做好需求管理、减少需求错误的出现对降低软件项目的成本是至关重要的。、目标(p35-36) 需求管理的目的是在客户和处理客户需求的软件项目组之间建立对客户需求的共同理解。具体来说,需求管理的目标有二个: (1)使软件需求受控,并建立供软件工程和管理使用的需求基线。 (2)使软件计划、产品和活动与软件需求保持一致。、原则为进行有效的需求管理,通常要遵循如下五条原则:()需求一定要分类管理()需求必须
21、分优先级()需求必须文档化()需求一旦变化,就必须对需求变更的影响进行评估()需求管理必须与需求工程的其他活动紧密整合l需求管理规划内容包括: 需求识别 变更管理过程 需求跟踪 自动化工具l需求管理是一个对系统需求变更了解和控制的过程。需求管理的过程是与其他需求工程过程相互关联的。初始需求导出的同时就启动了需求管理规划,一旦形成了需求文档的草稿版本,需求管理活动就开始了。l需求管理活动的具体内容如表所示需求管理活动 活动的任务变更控制 建议需求变更并分析其影响,做出是否变更的决策版本控制 确定单个需求和SRS的版本需求跟踪 定义对于其他需求及系统元素的联系链需求状态 定义并跟踪需求的状态1、需
22、求变更的原因 软件项目的需求总是在变化着,一般原因有二: (1)在项目的早期所有的问题不可能被完全定义,软件需求是不完全的,注定了需求需要变更。 (2)随着软件项目的进行,软件开发人员对问题的理解会发生变化,这些变化也要反馈到需求中去。大型软件系统还可能存在如下导致需求变更的原因: (1)不同类型的用户的需求可能是冲突的或是矛盾的,最后的系统需求是它们之间的一个妥协.这种妥协的程度在项目进行过程中有可能发生改变,从而导致系统需求的改变。 (2)系统购买者或系统最终用户很少是同一人,有的系统客户对系统提出的一些需求可能和最终用户需求不一致。2、变更管理过程 变更管理过程分为变更描述、变更分析和变
23、更实现三个阶段。(1)变更描述 变更描述阶段要对需求问题或变更提议进行分析以检查它的有效性,进而产生一个更明确的需求变更提议。(2)变更分析 变更分析阶段对被提议的变更产生的影响进行评估。一旦分析完成,就有了对此变更是否执行的决策意见。(3)变更实现 实现变更时,需求文档及系统设计和实现都要做修改。一个容易出现的错误,一定要注意:先对系统做变更然后再回头修改需求文档的想法,这几乎不可避免地导致需求描述和系统实现不同步。需求文档应该有一个很好的形式,使得变更不会带来大量文字的修改。对于程序文档的可变性则通过最小化外部引用和尽量使之模块化来实现。3、变更影响分析l进行需求变更影响分析,应评估每项选
24、择的需求变更,以确定它对项目计划安排和其他需求的影响,同时明确与变更相关的任务并评估完成这些任务需要的工作量。变更影响分析有助于做出信息量充分的变更决策,确定对变更是修改还是抛弃,或者创建新系统以及评估每个任务的工作量.l如果一个处于关键路径的任务因变更而延期,则项目肯定赶不上预定进度,但如果能避免变更影响关键任务,则变更不会影响项目的进度表l影响分析报告的模板,用来报告进行需求变更的影响分析,变更控制委员会仅需要影响分析的总结.l如果没有很好的需求文档版本管理,就容易造成资源浪费.l需求文档版本控制是需求管理的一个必要方面.l做好需求文档版本控制,必须保证如下几点:l统一确定需求文档的每一个
25、版本,保证每个成员都能得到当前的需求版本;l清楚地将变更写成文档,并及时通知项目开发所涉及的人员;为尽量减少困惑、冲突、误传,应只允许指定的人来更新需求文档。l版本控制的最简单方法是在每一个公布的需求文档的版本应该包括一个修正版本的历史情况,即已作变更的内容、变更日期、变更人的姓名以及变更的原因,并根据标准约定手工标记软件需求规格说明的每一次修改。1、需求的属性 需求还有一些相关的属性,这些属性的定义及更新是需求管理的重要内容.需求的属性为需求提供了背景资料和上下文关系。(1)需求的创建时间(2)需求的版本(3)需求的创建者(4)需求的批准者(5)需求的状态(6)需求的原因或根据(7)需求涉及
展开阅读全文