1、2023-1-16软件工程培训软件工程培训软件工程培训软件工程培训课程目标1.对软件工程有较全面的了解,并能够对软件工程有较全面的了解,并能够对软件项目进行控制,合理地安排人员、对软件项目进行控制,合理地安排人员、进度,更有效地保证软件的质量。进度,更有效地保证软件的质量。2.能够通过科学的方法获得并提交高质能够通过科学的方法获得并提交高质量的软件需求。量的软件需求。软件工程培训 本门课程的主要内容本门课程的主要内容 软件概述软件概述软件项目的管理软件项目的管理软件需求软件需求软件工程培训目 录 软件概述 软件项目的管理 软件需求软件工程培训软件概述 到底什么是计算机软件?为什么我们不断努力要
2、建造高质量的基于计算机的系统?我们如何对计算机软件的应用领域分类?关于软件仍存在什么样的神话?软件工程培训软件相关的问题硬件的发展一直超过软件硬件的发展一直超过软件软件开发速度过于缓慢软件开发速度过于缓慢人们越来越依靠软件人们越来越依靠软件人们在努力建造高质量的软件人们在努力建造高质量的软件已有的软件难以支持和增强已有的软件难以支持和增强软件工程培训产业观点 开发时间太长了!开发时间太长了!成本怎么会这么高?成本怎么会这么高?为什么总是让客户为什么总是让客户指出我们的错误?指出我们的错误?怎么度量软件开发怎么度量软件开发的进度?的进度?软件工程培训软件软件的定义:软件的定义:(1)能够完成预定
3、功能和性能的可执行)能够完成预定功能和性能的可执行 的的指令指令(计算机程序);(计算机程序);(2)使得程序能够适当地操作信息的)使得程序能够适当地操作信息的数数据结构据结构;(3)描述程序的操作和使用的)描述程序的操作和使用的文档文档。软件工程培训软件应用 系统软件系统软件 实时软件实时软件 商业软件商业软件 工程和科学技术软件工程和科学技术软件 嵌入式软件嵌入式软件 个人计算软件个人计算软件 人工智能软件人工智能软件软件工程培训软件软件神话:软件神话:管理者的神话管理者的神话用户的神话用户的神话开发者的神话开发者的神话软件工程培训管理者的神话神话神话1:我们已经有了关于建造软件的我们已经
4、有了关于建造软件的标准和规程的书籍,难道它们不能给人标准和规程的书籍,难道它们不能给人们提供所有其需要知道的信息吗?们提供所有其需要知道的信息吗?软件工程培训管理者的神话神话神话2 2:我们已经有了很多很好的软:我们已经有了很多很好的软件开发工具,而且,我们为它们买件开发工具,而且,我们为它们买了最新的计算机。了最新的计算机。软件工程培训管理者的神话神话神话3 3:如果我们已经落后于计划,可:如果我们已经落后于计划,可以增加更多的程序员来赶上进度以增加更多的程序员来赶上进度(“有时称为蒙古大夫概念有时称为蒙古大夫概念”)。)。软件工程培训软件软件神话:软件神话:管理者的神话管理者的神话用户的神
5、话用户的神话开发者的神话开发者的神话软件工程培训用户的神话神话神话1 1:有了对目标的一般描述就足以:有了对目标的一般描述就足以开始写程序了开始写程序了我们可以以后再补充我们可以以后再补充细节。细节。软件工程培训用户的神话神话神话2 2:项目需求总是在不断变化,:项目需求总是在不断变化,但这些变化能够很容易地满足,因但这些变化能够很容易地满足,因为软件是灵活的。为软件是灵活的。软件工程培训软件软件神话:软件神话:管理者的神话管理者的神话用户的神话用户的神话开发者的神话开发者的神话软件工程培训开发者的神话神话神话1 1:一旦我们写出了程序并使其正:一旦我们写出了程序并使其正常运行,我们的工作就结
6、束了。常运行,我们的工作就结束了。软件工程培训开发者的神话神话神话2 2:在程序真正运行之前,没有办:在程序真正运行之前,没有办法评估其质量。法评估其质量。软件工程培训开发者的神话神话神话3 3:一个成功项目唯一应该提交的:一个成功项目唯一应该提交的就是运行程序。就是运行程序。软件工程培训目 录 软件概述 软件项目的管理 软件需求软件工程培训软件项目的管理 在一个软件项目中如何管理人员、问题和过程 一个软件项目组如何对工作量、成本和项目时间进行可靠的评估 一个组织何时应该建造软件?何时应该获取软件?何时应该请求外援?如何创建一个项目进度计划?软件工程培训项目管理的概念人员人员问题问题过程过程软
7、件工程培训人员项目参与者项目参与者项目负责人项目负责人软件项目组软件项目组软件工程培训项目管理的概念人员人员问题问题过程过程软件工程培训问题软件范围软件范围问题分解问题分解软件工程培训项目管理的概念人员人员问题问题过程过程软件工程培训过程 软件过程的一般阶段(定义、开软件过程的一般阶段(定义、开发和维护)适用于所有软件项目。问发和维护)适用于所有软件项目。问题在于如何选择一个适合项目要开发题在于如何选择一个适合项目要开发的软件的过程模型。的软件的过程模型。软件工程培训软件项目管理的概念小结:小结:软件项目管理是软件工程的软件项目管理是软件工程的保护性活动。它先于任何技术活动保护性活动。它先于任
8、何技术活动之前开始,且持续贯穿于整个计算之前开始,且持续贯穿于整个计算机软件的定义、开发和维护之中。机软件的定义、开发和维护之中。软件工程培训软件项目计划项目计划目标:项目计划目标:提供一个提供一个框架框架,使得管,使得管理者能够对资源、成本及进度进行合理理者能够对资源、成本及进度进行合理的的估算估算。这些估算是软件项目开始时在。这些估算是软件项目开始时在一个限定的时间框架内所做的,并且随一个限定的时间框架内所做的,并且随着项目的进展不断更新。此外,估算应着项目的进展不断更新。此外,估算应该定义该定义“最好的情况最好的情况”及及“最坏的情最坏的情况况”,使得项目的结果能够限制在一定,使得项目的
9、结果能够限制在一定范围内。范围内。软件工程培训软件范围 在系统工程阶段应该对分配给软在系统工程阶段应该对分配给软件的功能及性能加以评估,以建立一件的功能及性能加以评估,以建立一个项目范围,该范围在管理级及技术个项目范围,该范围在管理级及技术级均是无二义性的和可理解的。级均是无二义性的和可理解的。软件工程培训资源人员人员可复用构可复用构件件硬件硬件/软件工具软件工具资源金子塔资源金子塔软件工程培训自行开发和购买的决策指导原则:指导原则:软件工程培训自行开发和购买的决策决定条件:决定条件:软件工程培训风险管理软件风险软件风险项目风险项目风险技术风险技术风险商业风险商业风险 软件工程培训 项目进度安
10、排及跟踪 基本概念基本概念人员与工作量之间的关系人员与工作量之间的关系 软件工程培训基本概念软件延期交付的原因:软件延期交付的原因:软件工程培训基本概念软件项目的进度安排的指导原则:软件项目的进度安排的指导原则:软件工程培训人员与工作量之间的关系 工作量分布:工作量分布:40-20-40原则原则软件工程培训休休 息息软件工程培训目 录 软件概述 软件项目的管理 软件需求软件工程培训软件需求 什么是软件需求?为什么要进行软件需求调研?如何通过工程方法获得高质的软件需求?如何通过需求管理在工程进展中维持需求约定集成性和精确性?软件工程培训基本的软件需求需求的层次:需求的层次:业务需求业务需求用户需
11、求用户需求功能需求功能需求软件工程培训 不适当的需求所引起风险不适当的需求所引起风险 软件工程培训高质量的需求过程带来的好处 重做工作大大减少重做工作大大减少避免高出避免高出6868倍成本倍成本使产品更富吸引力使产品更富吸引力拥有忠实的客户关系拥有忠实的客户关系软件工程培训优秀需求具有的特征 完整性完整性正确性正确性 可行性可行性 必要性必要性 划分优先级划分优先级 无二义性无二义性 可验证性可验证性 软件工程培训需求的开发需求获取需求获取需求分析需求分析编写需求编写需求说明书说明书需求验证需求验证软件工程培训客户的需求观 谁是客户?谁是客户?软件工程培训客户的需求观(续)客户与开发人员之间的
12、合作关系客户与开发人员之间的合作关系 软件工程培训需求工程的推荐方法 开发过程开发过程项目视图项目视图用户群分类用户群分类产品代表产品代表核心队伍核心队伍使用实例使用实例联系会议联系会议工作流程工作流程质量属性质量属性问题报告问题报告重用需求重用需求需求获取:需求获取:软件工程培训需求工程的推荐方法(续)绘制系统关联图绘制系统关联图 分析需求可行性分析需求可行性 确定优先级别确定优先级别 创建数据字典创建数据字典 需求分析:需求分析:软件工程培训需求工程的推荐方法(续)需求规格说明:需求规格说明:无论你的需求从何而来,也不管无论你的需求从何而来,也不管你是怎样得到的,你都必须用一种统你是怎样得
13、到的,你都必须用一种统一的方式来将它们编写成可视文档一的方式来将它们编写成可视文档 。软件工程培训需求工程的推荐方法(续)审查需求文档审查需求文档以需求为依据编写测试用例以需求为依据编写测试用例 编写用户手册编写用户手册确定合格的标准确定合格的标准 需求验证:需求验证:软件工程培训软件需求与风险管理软件需求与风险管理典型的需求风险:典型的需求风险:需求的误解需求的误解不恰当的用户参与不恰当的用户参与不确定或随意变更项目范围不确定或随意变更项目范围持续变更需求持续变更需求软件工程培训建立项目视图与范围建立项目视图与范围 项目视图和范围的文档把业务需求集项目视图和范围的文档把业务需求集中在一个简单
14、、紧凑的文档里,这个文档中在一个简单、紧凑的文档里,这个文档为以后的开发工作奠定了基础。为以后的开发工作奠定了基础。软件工程培训聆听客户的需求 需求获取的指导方针需求获取的指导方针 对客户输入进行分类对客户输入进行分类 如何知道你何时完成需求的获取如何知道你何时完成需求的获取 软件工程培训编写需求说明书 编写需求说明书的原则编写需求说明书的原则:软件工程培训软件的质量属性 软件工程培训设定需求优先级 为什么要设定需求优先级?为什么要设定需求优先级?软件工程培训需求的质量验证 软件需求规格说明正确描述了预期的系统软件需求规格说明正确描述了预期的系统行为和特征行为和特征 从系统需求或其它来源中得到
15、软件需求从系统需求或其它来源中得到软件需求 需求是完全的和高质量的需求是完全的和高质量的 所有对需求的看法是一致的所有对需求的看法是一致的 需求为继续进行产品设计、构造和测试提需求为继续进行产品设计、构造和测试提供了足够的基础供了足够的基础 软件工程培训结束语 更好的需求将会带来更好更好的需求将会带来更好的产品质量和客户更大的满的产品质量和客户更大的满意程度,这可以降低产品生意程度,这可以降低产品生存期中的维护、增强和客户存期中的维护、增强和客户支持的费用。在需求质量上支持的费用。在需求质量上的投资可以使你节省更多的的投资可以使你节省更多的钱。钱。软件工程培训总 结软件概述:软件概述:软件应用分类软件应用分类软件神话软件神话软件工程培训总 结软件项目管理:软件项目管理:三个三个P P软件项目计划软件项目计划404020204040原则原则软件工程培训总 结确定用户类确定用户类获取每类用获取每类用户需求户需求了解业务需了解业务需求求分析需求分析需求需求划分需求划分了解质量属了解质量属性性划分优先级划分优先级编写需求说编写需求说明明评审需求说评审需求说明明软件需求:软件需求:软件工程培训案例实战模拟演练案例实战模拟演练2023-1-16软件工程培训