资源描述
华中科技大学软件学院华中科技大学软件学院 THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件工程管理与案例分析软件工程管理与案例分析 2THE SCHOOL OF SOFTWARE ENGINEERING OF HUST 提出自己的看法或意见,在课堂里应该是完全公开的提出自己的看法或意见,在课堂里应该是完全公开的 keep an open mind and say your own opinion 参与者不应将别人的发言带出室外,以引起不必要的负面影响参与者不应将别人的发言带出室外,以引起不必要的负面影响 dont be intimidated and you should be exempted 尊重他人的看法,尤其是与你持不同看法的尊重他人的看法,尤其是与你持不同看法的“第二意见第二意见 respect others opinion especially“second opinion 鼓励参与讨论及意见分享:他山之石,可以攻错鼓励参与讨论及意见分享:他山之石,可以攻错 encourage groups participation to share thought and ideas 让我们以开阔的胸襟来面对问题及提出看法让我们以开阔的胸襟来面对问题及提出看法 be honest with your questions and comments期许及要求期许及要求Ground RulesGround Rules华中科技大学软件学院华中科技大学软件学院 THE SCHOOL OF SOFTWARE ENGINEERING OF HUST第第 1 章章 软件工程管理概述软件工程管理概述 4THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要 项目与软件项目的概念项目与软件项目的概念 1.1 项目管理的概念项目管理的概念 1.2 软件项目生命期与管理过程软件项目生命期与管理过程 1.3 本书内容的组织本书内容的组织 1.4 本章小结本章小结1.5 复习思考题复习思考题1.65THE SCHOOL OF SOFTWARE ENGINEERING OF HUST1.1 工程与软件工程的概念工程与软件工程的概念 工程定义和特征工程定义和特征 工程是为了创造一个唯一的产品或提供一个唯一的效工程是为了创造一个唯一的产品或提供一个唯一的效劳而进行的临劳而进行的临 时性的努力。特征:时性的努力。特征:目标性目标性 相关性相关性 周期性周期性 独特性独特性 约束性约束性 不确定性不确定性 结果的不可逆转性结果的不可逆转性6THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程与软件工程的概念工程与软件工程的概念临时性临时性工程有明确的开始与截止日期工程有明确的开始与截止日期工程合同的起止日期工程合同的起止日期当到达工程的目标时即工程的截止日期;或工程被中止当到达工程的目标时即工程的截止日期;或工程被中止/取消的日期取消的日期工程的临时性并不意味着工程所提交的产品或效劳也是一次性的一次工程的临时性并不意味着工程所提交的产品或效劳也是一次性的一次性纸杯的生产性纸杯的生产 工程所面临的市场机遇往往也是临时性的没有企业愿意在工程所面临的市场机遇往往也是临时性的没有企业愿意在2021年生产年生产北京奥运的徽章北京奥运的徽章工程组也往往是临时性的,当工程结束时,工程组也随之解散或释放工程组也往往是临时性的,当工程结束时,工程组也随之解散或释放7THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程与软件工程的概念工程与软件工程的概念独特的产品或效劳独特的产品或效劳工程所产生的产品或效劳是独一无二的包括合同的签订人、位置等方工程所产生的产品或效劳是独一无二的包括合同的签订人、位置等方面的信息面的信息对于批量生产的商品例如空调或冰箱那么不具备独特性,而例如北对于批量生产的商品例如空调或冰箱那么不具备独特性,而例如北京联通计费工程那么具有独特性京联通计费工程那么具有独特性咨询和会计审计效劳咨询和会计审计效劳8THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程与软件工程的概念工程与软件工程的概念以下哪些是工程呢?以下哪些是工程呢?上课上课 野餐活动野餐活动集体婚礼集体婚礼社区保安社区保安开发微软的操作系统开发微软的操作系统每天的卫生保洁每天的卫生保洁 神舟飞船方案神舟飞船方案9THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程与软件工程的概念工程与软件工程的概念 日常运作日常运作项目项目上课上课 野餐活动野餐活动集体婚礼集体婚礼社区保安社区保安开发操作系统开发操作系统每天的卫生保洁每天的卫生保洁 神州飞船计划神州飞船计划10THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程与软件工程的概念工程与软件工程的概念 由美国国防部由美国国防部DoD资助资助 软件工程协会软件工程协会SEI开发开发U.S.Army,Navy,Air ForceFederal Aviation AdministrationNational Security AgencySoftware Engineering InstituteADP,Inc.AT&T LabsBAEBoeingComputer Sciences CorporationEER SystemsEricsson CanadaErnst and YoungGeneral DynamicsHarris CorporationHoneywellKPMGLockheed MartinMotorolaNorthrop GrummanPacific BellQ-LabsRaytheonReutersRockwell CollinsSAICSoftware Productivity ConsortiumSverdrup CorporationTeraQuestThomson CSFTRW11THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程与软件工程的概念工程与软件工程的概念工程与日常运作的区别:工程与日常运作的区别:工程是一次性的,日常运作是重复进行的工程是一次性的,日常运作是重复进行的工程是以目标为导向的,日常运作是通过效率和有效性表达工程是以目标为导向的,日常运作是通过效率和有效性表达的的工程是通过与工程经理及其团队工作完成的,而日常运作是工程是通过与工程经理及其团队工作完成的,而日常运作是职能式的线形管理职能式的线形管理工程存在大量的变更管理,而日常运作那么根本保持持续的工程存在大量的变更管理,而日常运作那么根本保持持续的连贯性的连贯性的 12THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程与软件工程的概念工程与软件工程的概念软件工程的特点软件工程的特点 除了工程的特征,软件工程还具有以下特点:除了工程的特征,软件工程还具有以下特点:软件是逻辑实体,不是具体的物理实体,具有抽象性软件是逻辑实体,不是具体的物理实体,具有抽象性 软件的开发受计算机系统的限制,对硬件系统有不同程软件的开发受计算机系统的限制,对硬件系统有不同程度的度的 依赖依赖 软件具有复杂性特点,其开发本钱昂贵,制约因素很多软件具有复杂性特点,其开发本钱昂贵,制约因素很多13THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程与软件工程的概念工程与软件工程的概念 不同因素相互作用图示不同因素相互作用图示14THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程与软件工程的概念工程与软件工程的概念 实现工程目标的制约因素实现工程目标的制约因素15THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要 项目与软件项目的概念项目与软件项目的概念 1.1 项目管理的概念项目管理的概念 1.2 软件项目生命期与管理过程软件项目生命期与管理过程 1.3 本书内容的组织本书内容的组织 1.4 本章小结本章小结1.5 复习思考题复习思考题1.616THE SCHOOL OF SOFTWARE ENGINEERING OF HUST1.2 工程管理的概念工程管理的概念 工程管理就在我们身边工程管理就在我们身边解决一个问题解决一个问题组织一个活动组织一个活动创造一个新事务创造一个新事务跟踪一个具体的任务跟踪一个具体的任务当我们觉得资源缺乏的当我们觉得资源缺乏的 时时候候生活中的工程生活中的工程生日聚会生日聚会野餐活动野餐活动集体婚礼集体婚礼社会中的大工程社会中的大工程微软的操作系统微软的操作系统阿波罗方案阿波罗方案神州飞船方案神州飞船方案17THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程管理的概念工程管理的概念工程管理的定义工程管理的定义 工程管理是以工程为对象,通过使用知识、技能、工程管理是以工程为对象,通过使用知识、技能、工具和方法来组织、方案、实施并监控工程,使之满足工工具和方法来组织、方案、实施并监控工程,使之满足工程目标需求的过程。程目标需求的过程。l软技巧软技巧 Samples领导、团队领导、团队建设、冲突解决、鼓励、训练、建设、冲突解决、鼓励、训练、协商、沟通、倾听协商、沟通、倾听l硬技能硬技能 Samples 方案、方案、跟踪、控制、报告跟踪、控制、报告18THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程管理的概念工程管理的概念软件工程管理的必要性软件工程管理的必要性无规那么、混乱的开发状态,进度滞后,费用超支等失败的例子很多无规那么、混乱的开发状态,进度滞后,费用超支等失败的例子很多业务失败,合同纠纷,法律诉讼,客户投诉等困扰软件业业务失败,合同纠纷,法律诉讼,客户投诉等困扰软件业美国美国19991999年软件工程的统计年软件工程的统计19THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程管理的概念工程管理的概念软件危机软件危机就是软件生产能力和业务开展需求不相适应的现象就是软件生产能力和业务开展需求不相适应的现象就是弱的软件生产能力和强的业务开展需求之间的矛盾就是弱的软件生产能力和强的业务开展需求之间的矛盾软件危机表现软件危机表现开发过程随心所欲开发过程随心所欲时间方案和费用估算缺乏现实的根底时间方案和费用估算缺乏现实的根底管理者主要在应付突发事件管理者主要在应付突发事件对产品质量缺乏客观根底对产品质量缺乏客观根底软件开发的成败建立在个人能力根底上软件开发的成败建立在个人能力根底上20THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程管理的概念工程管理的概念成功的工程成功的工程满足或者超过干系人的期望满足或者超过干系人的期望21THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程管理的概念工程管理的概念工程管理的根本内容工程管理的根本内容PMBOK:A guide to the Project management Body Of Knowledge 22THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程管理的概念工程管理的概念PMBOK 9 9个知识领域的关系个知识领域的关系23THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程管理的概念工程管理的概念PMBOK 9 大过程领域大过程领域24THE SCHOOL OF SOFTWARE ENGINEERING OF HUST工程管理的概念工程管理的概念PMBOK 5 大过程组大过程组25THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要 项目与软件项目的概念项目与软件项目的概念 1.1 项目管理的概念项目管理的概念 1.2 软件项目生命期与管理过程软件项目生命期与管理过程 1.3 本书内容的组织本书内容的组织 1.4 本章小结本章小结1.5 复习思考题复习思考题1.626THE SCHOOL OF SOFTWARE ENGINEERING OF HUST1.3 软件工程生命期与管理过程软件工程生命期与管理过程 软件工程生命期软件工程生命期 方案阶段方案阶段 定义系统,确定用户的要求或总体研究目标,提定义系统,确定用户的要求或总体研究目标,提出可行的方案,包括资源、本钱、效益、进度等的实施方案。出可行的方案,包括资源、本钱、效益、进度等的实施方案。进行可行性分析并制定粗略方案。进行可行性分析并制定粗略方案。需求分析阶段需求分析阶段 确定软件的功能、性能、可靠性、接口标准确定软件的功能、性能、可靠性、接口标准等要求,根据功能要求进行数据流程分析,提出初步的系统等要求,根据功能要求进行数据流程分析,提出初步的系统逻辑模型,并据此修改工程实施方案。逻辑模型,并据此修改工程实施方案。软件设计阶段软件设计阶段 它包括系统概要设计和详细设计。在概要设它包括系统概要设计和详细设计。在概要设计中,要建立系统的整体结构,进行模块划分,根据要求确计中,要建立系统的整体结构,进行模块划分,根据要求确定接口。在详细设计中,要建立算法、数据结构和流程图。定接口。在详细设计中,要建立算法、数据结构和流程图。27THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件工程生命期与管理过程软件工程生命期与管理过程编码阶段编码阶段 把流程图翻译成程序,并对程序进行调试。把流程图翻译成程序,并对程序进行调试。测试阶段测试阶段 通过单元测试,检验模块内部的结构和功能;通过集成测试,通过单元测试,检验模块内部的结构和功能;通过集成测试,把模块连接成系统,重点寻找接口上可能存在的问题;确认测试,即把模块连接成系统,重点寻找接口上可能存在的问题;确认测试,即按照需求的内容逐项进行测试;系统测试,就是到实际的使用环境中按照需求的内容逐项进行测试;系统测试,就是到实际的使用环境中进行测试。单元测试和集成测试由开发者自己完成,确认测试和系统进行测试。单元测试和集成测试由开发者自己完成,确认测试和系统测试那么由用户参与完成。测试那么由用户参与完成。运行维护阶段运行维护阶段 它一般包括三类工作,为了修改错误而做的改正性维护;它一般包括三类工作,为了修改错误而做的改正性维护;为了适应环境变化而做的适应性维护;为了适应用户新的需求而做的为了适应环境变化而做的适应性维护;为了适应用户新的需求而做的完善性维护,有时会成为二次开发,进入一个新的生命期,再从方案完善性维护,有时会成为二次开发,进入一个新的生命期,再从方案阶段开始。阶段开始。28THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件工程生命期与管理过程软件工程生命期与管理过程 不要强行照搬书上的软件工程生命周期不要强行照搬书上的软件工程生命周期29THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件工程生命期与管理过程软件工程生命期与管理过程工程生命周期阶段工程生命周期阶段概念概念Concept开发开发Development实施实施Implementation结束结束Termination思考思考工程生命周期中风险最大的是哪个阶段?工程生命周期中风险最大的是哪个阶段?工程生命周期中冲突最多的是哪个阶段?工程生命周期中冲突最多的是哪个阶段?30THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件工程生命期与管理过程软件工程生命期与管理过程工程生命周期的影响工程生命周期的影响31THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件工程生命期与管理过程软件工程生命期与管理过程软件工程管理过程软件工程管理过程 软件项目管理的核心软件项目管理的核心启动启动计划计划控制控制结束结束32THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件工程生命期与管理过程软件工程生命期与管理过程工程管理过程包括的主要工作工程管理过程包括的主要工作制定技术目标制定技术目标组建工程组组建工程组制订工程方案制订工程方案处理范围变化处理范围变化控制实际进展控制实际进展整理、完善技术档案整理、完善技术档案形成知识网络形成知识网络33THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件工程生命期与管理过程软件工程生命期与管理过程影响工程成功的因素影响工程成功的因素工程的目标、范围是否明确工程的目标、范围是否明确是否获得领导的积极支持是否获得领导的积极支持工程的组织是否健全、稳定工程的组织是否健全、稳定是否建立了有序的、有效的、良好的沟通渠道是否建立了有序的、有效的、良好的沟通渠道是否具有有效、全面的工程管理,严格的变更控制是否具有有效、全面的工程管理,严格的变更控制是否建立了良好的、积极的、团队合作的工作气氛是否建立了良好的、积极的、团队合作的工作气氛工程经理工程经理PM的经验的经验34THE SCHOOL OF SOFTWARE ENGINEERING OF HUST软件工程生命期与管理过程软件工程生命期与管理过程工程生命期中的几个概念工程生命期中的几个概念 工程生命期中与时间相关的重要概念工程生命期中与时间相关的重要概念 检查点检查点(Check Point)它指在规定的时间间隔内对工程进行它指在规定的时间间隔内对工程进行检查,比较实际现状与方案之间的差异,并根据差异进行调检查,比较实际现状与方案之间的差异,并根据差异进行调整整里程碑里程碑(Mile Stone)它是完成阶段性工作的标志,不同类它是完成阶段性工作的标志,不同类型的工程里程碑不同型的工程里程碑不同 基线基线(Base Line)它指一个它指一个(或一组或一组)配置项在工程生命期的配置项在工程生命期的不同时间点上,通过正式评审而进入正式受控的一种状态不同时间点上,通过正式评审而进入正式受控的一种状态 35THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要 项目与软件项目的概念项目与软件项目的概念 1.1 项目管理的概念项目管理的概念 1.2 软件项目生命期与管理过程软件项目生命期与管理过程 1.3 本书内容的组织本书内容的组织 1.4 本章小结本章小结1.5 复习思考题复习思考题1.636THE SCHOOL OF SOFTWARE ENGINEERING OF HUST1.4 本书内容的组织本书内容的组织 RoadMap课程概述课程概述 合同管理合同管理 生存期生存期团队管理团队管理 任务分解任务分解需求管理需求管理 规模估算规模估算 成本估算成本估算 进度估算进度估算 进度计划进度计划 风险计划风险计划跟踪控制跟踪控制配置管理配置管理 项目结束项目结束37THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要 项目与软件项目的概念项目与软件项目的概念 1.1 项目管理的概念项目管理的概念 1.2 软件项目生命期与管理过程软件项目生命期与管理过程 1.3 本书内容的组织本书内容的组织 1.4 本章小结本章小结1.5 复习思考题复习思考题1.638THE SCHOOL OF SOFTWARE ENGINEERING OF HUST1.5 本章小结本章小结工程与软件工程管理的概念、特点、过程工程与软件工程管理的概念、特点、过程及其重要性。工程是为实现一个独特目的及其重要性。工程是为实现一个独特目的而进行的临时性任务,工程具有独特性、而进行的临时性任务,工程具有独特性、临时性及需要资源等特性,每个工程都有临时性及需要资源等特性,每个工程都有一个工程发起人并含有不确定性。一个工程发起人并含有不确定性。工程管理的三项约束是指管理工程的范围、工程管理的三项约束是指管理工程的范围、时间和本钱这三个维度。时间和本钱这三个维度。工程管理是指在工程活动中运用相关的知工程管理是指在工程活动中运用相关的知识、技能、工具和技术,以满足工程要求识、技能、工具和技术,以满足工程要求的活动。的活动。利益相关者是指参与工程或受工程活动影利益相关者是指参与工程或受工程活动影响的人。响的人。工程管理框架包括利益相关者、工程管理工程管理框架包括利益相关者、工程管理知识领域和工程管理工具与技术。知识领知识领域和工程管理工具与技术。知识领域包括工程综合管理、工程范围、工程时域包括工程综合管理、工程范围、工程时间、工程本钱、工程质量、人力资源、工间、工程本钱、工程质量、人力资源、工程沟通、工程风险和工程采购管理。程沟通、工程风险和工程采购管理。过程管理在软件工程管理中有着重要的作过程管理在软件工程管理中有着重要的作用,通过不断地优化和标准过程,可以帮用,通过不断地优化和标准过程,可以帮助企业提高软件生产能力。助企业提高软件生产能力。软件工程管理的核心是工程规划和工程跟软件工程管理的核心是工程规划和工程跟踪控制。踪控制。39THE SCHOOL OF SOFTWARE ENGINEERING OF HUST本章内容提要本章内容提要 项目与软件项目的概念项目与软件项目的概念 1.1 项目管理的概念项目管理的概念 1.2 软件项目生命期与管理过程软件项目生命期与管理过程 1.3 本书内容的组织本书内容的组织 1.4 本章小结本章小结1.5 复习思考题复习思考题1.640THE SCHOOL OF SOFTWARE ENGINEERING OF HUST1.6 复习思考题复习思考题1.1.什么是工程?它与多数人的日常工作有什么不同?什么是工程?它与多数人的日常工作有什么不同?2.2.分别列举三个工程活动的例子和三个不属于工程活动的例子。分别列举三个工程活动的例子和三个不属于工程活动的例子。3.3.工程管理与一般管理有什么不同?工程管理与一般管理有什么不同?4.4.简述软件工程管理的过程。简述软件工程管理的过程。5.5.用你自己的话解释三项约束的含义是什么,并通过一个你熟悉的实用你自己的话解释三项约束的含义是什么,并通过一个你熟悉的实例解释三项约束。例解释三项约束。6.6.分别举出一个成功的和失败的软件工程的例子。分别举出一个成功的和失败的软件工程的例子。
展开阅读全文