软件需求培训
软件需求培训目标 掌握需求层次划分、需求的组成部分。 体验到需求的重要性,掌握缺陷的成长模型、十乘十乘十法则。 掌握软件需求工程包括的内容。 了解需求获取的两个层面(组织层面、项目层面),掌握需求获取的方法以及内容。 掌握需求分析方法、建模工具,掌握需求文档写作标准。 掌握需求有效评审的过程、方法。 掌握软件需求和软件设计的界限。 掌握需求变更控制过程和需求跟踪过程。 课程背景 在经济蓬勃发展的今天,客户的信息化需求变化非常快,这对软件企业提出了严峻的挑战,对需求的快速反应能力体现了一个软件企业的核心竞争能力,目前国内软件企业软件开发过程远未成熟,却还要常常面临国外同行的竞争。如何在这样一个激烈的市场竞争环境中既积累产品技术、又能够迅速把握市场机会,软件需求开发和管理能力成为了关键。 课程围绕如何获得高质量的需求,全面介绍软件需求开发和需求管理过程,还利用讲师实际的经验,与学员共同分析本企业需求工作中的问题,并特别针对目前需求工作中的常见难点进行分析,包括如何在需求工作中与客户进行主动合作、如何保证需求的完整性和准确性、如何编写高质量的需求文档、如何在不断满足客户需求的同时积累企业的核心产品能力。课程不仅仅给学员在需求工程上一个完整的整体认识、还培训了学员在需求开发和需求管理的实际操作能力。 课程结合行业环境和软件企业具体发展状态来讲述软件需求开发与需求管理,对不同态势下的软件企业的需求工作具有实际的参考价值。 培训特色 1、课程内容系统全面,包括需求获取、需求分析、需求编写、需求评审确认、需求变更管理和需求跟踪,全部需求工程的内容。此外,本课程还包含部分软件设计内容以解答需求和设计的界限问题。 2、课程具有很强的实用性。讲师长期从事软件的研发管理、企业咨询,本课程有大量的案例展示,并通过演练使学员掌握具体的方法,而不是从软件工程书籍上可以学到的理论。在咨询辅导和企业内训中,学员反响极佳,如一位计算机专业的研究生所评价:“听了周老师的课,发现大学的课都白学了!” 3、课程采用互动式教学、大量的小案例、分析大案例和学员亲自演练,有助于学员理解。 课程收益 解决问题: 需求文档到底细化到什么程度?写粗了好像需求没有表达清楚,写细感觉又像是设计,且耗费时间,需求文档的粒度到底如何把握呢? 不清楚哪些内容要写在需求文档中,哪些内容要写得设计文档中,需求和设计的界限在哪里? 绝大多数的软件项目都面临着很有挑战的进度要求,项目往往在前期(如需求、设计阶段)进展好像比较顺利,为何到了后期(如系统测试、交付)却一延再延?项目进度的延迟和软件需求之间有什么样的关系?您知道需求的问题遗留到测试阶段去解决,其工作量要被放大多少倍吗? 为何需求变化如此频繁?导致本来就很紧张的进度变得更加不可控,如何减少需求变更? 有些企业的高层管理喜欢给软件开发团队定交付期限,“必须一个月之内拿出来,这是死命令”,这样的状况是不是直接编码效率更高呢? …… 总体收益: 深刻体验到软件需求对整个项目的成功(包括进度目标)都有极其重要的影响,做好需求分析项目就成功一半了。 颠覆之前的观念,原来需求规格说明书要如此程度。 课程大纲 1. 软件需求工程概述 本单元学习目标:掌握需求工程的基本概念,认识到需求重要性 1.1. 什么是需求 1.1.1. 需求定义 1.1.2. 从需求定义中理解需求层次结构 1.1.3. 案例:市场提供的需求是否足够 1.1.4. 软件需求分类和组成部分 1.1.5. 案例:某产品的不同层次需求描述 1.2. 需求的重要性 1.2.1. 从缺陷分布和修复成本看需求的重要性,说明项目延期的本质在需求没有做好 1.2.2. 案例:请分析某项目的需求文档有什么问题,以及这些问题将对项目造成什么样的影响 1.2.3. 从standish项目成功要素看 1.2.4. 从CMMI过程域看 1.3. 需求的难度 1.3.1. 客户不清楚要什么,不知该如何表述 1.3.2. 软件工程师缺乏业务领域知识 1.4. 需求工程简介 1.4.1. 需求开发 1.4.2. 需求管理 1.5. 需求工程典型问题 1.5.1. 典型问题描述 1.5.2. 原因剖析 2. 需求获取 本单元学习目标:掌握需求获取的过程和方法 2.1. 组织级产品需求管理和产品规划、产品开发的关系 2.2. 组织级产品需求管理过程 2.3. 组织级产品需求获取途径 2.4. 案例:xx公司的产品需求管理 2.5. 识别项目需求干系人 2.6. 识别干系人needs、wants、priority、constraints 2.7. kano模型 2.8. 客户案例演练:根据kano模型识别5类需求 2.9. 为何要优先级,组织层面和项目层面策略 2.10. 约束包括内容 2.11. 需求来源 2.12. 需求挖掘方法:头脑风暴、访谈、原型 2.13. 需求挖掘的能力要求和客户参与的重要性 2.14. 客户案例演练:识别需求干系人及其需求 3. 需求开发——需求分析和文档化 本单元学习目标:掌握如何把挖掘到的需求进行分析和进一步细化,以及好的需求规格说明书标准是什么 3.1. 案例:需求文档案例研讨 3.2. 需求分析目标和原则 3.3. USE CASE建模介绍 3.4. 结构化建模工具介绍 3.5. 质量模型介绍 3.6. 关于质量属性(非功能需求) 3.7. 需求文档的写作原则 3.8. 需求规格说明书的内容 3.9. 高质量需求文档的标准 3.9.1. 好的需求文档特点 3.9.2. 需求文档中避免出现的一些词汇 3.9.3. 演练:写出一功能需求的输出部分 3.10. 总结:如何制定出高质量的需求文档;其它公司的需求分析案例分享 3.11. 演练:需求分析和文档写作演练 4. 需求开发——需求评审和确认 本单元学习目标:通过本单元学习掌握评审有效过程和方法 4.1. 评审的意义 4.2. 案例分析:剖析某项目的技术评审 4.3. 评审的过程 4.4. 需求评审的人员选择和其它注意事 4.5. 需求确认 5. 软件设计 本单元学习目标:通过对软件设计的介绍,掌握需求和设计的区别 5.1. 设计基本原理和基本概念 5.1.1. 基本分解问题、简化问题的原理 5.1.2. 层次化概念 5.1.3. 模块化概念 5.1.4. 信息隐蔽概念 5.2. 模块分解基本原则 5.2.1. 低耦合 5.2.2. 高内聚 5.3. 问题1:需求和设计界限不清 5.3.1. 什么是需求,什么是设计,二者区别在哪里 5.3.2. 接口描述在需求中还是在设计中 5.3.3. 设计中数据描述和需求中数据描述有何不同 5.4. 问题2:设计的层次和详细程度问题 5.4.1. 需要几个层次的设计文档合适 5.4.2. 设计文档的内容结构和不同层次文档的内容衔接 5.4.3. 详细设计要详细到什么程度 5.4.4. 设计的层级和颗粒度的原则:使得开发效率最大化并满足维护需要 5.4.5. 示例:展示某嵌入式软件概要设计文档和详细设计文档,说明好的设计文档是如何提高开发效率的 5.5. 问题3:设计文档的内容冗余问题 5.5.1. 使用的数据设计工具时,文档中的数据设计部分怎样写 5.5.2. 使用设计建模工具时,设计文档又怎样写 5.6. 案例分析:H3C是如何改进软件设计的 6. 需求管理 本单元学习目标:掌握需求管理的方法,使得需求变更有序、项目的各交付件与需求一致 6.1. 需求管理内容 6.2. 案例分析:某企业需求变更管理存在哪些问题 6.3. 需求变更过程 6.3.1. 需求变更原因 6.3.2. 如何减少需求变更 6.3.3. 需求变更控制过程 6.4. 需求跟踪 6.5. 需求管理中的度量 培训师介绍:周志龙 中国软件行业协会授予的十大咨询师 专业背景:哈尔滨工业大学工学硕士,具备17年产品研发、研发管理、质量管理及研发过程改进咨询经验。曾在华为公司北研所和华为3COM公司任职7年,历任研发工程师、研发经理、质量总监等职位,对IPD和CMMI有深入的研究和丰富的实践,是华为最早按照研发流程体系成功完成项目的首批项目经理;参与了华为和华为3COM研发流程体系建设、推行和改进工作;在华为3COM主导的产品开发过程的变革获得巨大成功,使得华为3COM产品开发远远领先于业界。