《软件工程与项目管理》第10章 软件项目管理

合集下载

软件项目管理软件项目需求管理

软件项目管理软件项目需求管理
33
2.2.4编写需求文档
➢软件需求规格说明
(1)基本含义 规格就是一个预期的或已存在的计算机系统的表示,它可 以作为开发者和用户之间协议的基础来产生预期的系统. 软件需求规格SRS也称为功能规格说明,需求协议或系统规 格说明,精确地阐述一个软件系统必须提供的功能和性能 以及它所要考虑的限制条件,是对外部行为和系统环境 (软件,硬件,通信端口和人)接口的简洁完整的描述性 文档.
2.1.2软件需求层次
➢软件需求的四个抽象层次
原始问题描述 用户需求 系统需求 软件设计描述
4
2.1.2软件需求层次
软件需求的抽象层次如图2.2所示:
图2.2 软件需求的抽象层次
5
2.1.2软件需求层次
原始问题:描述是对要解决问题的叙述 用户需求:是用自然语言和图表给出的关于系统需要提供
10
2.1.2软件需求层次
系统需求的描述语言:
表2.1系统需求的描述语言
名称 说明
结构化 是对自然语言格式化, 语言 依赖于定义标准格式或
模板来表达需求描述
优点
缺点
表现能力强、易 于理解 、一致性 约束 、控制结 构 、图形化显示
仍然有一定程度的 二义性;细致程度 欠缺
PDL 源于像Java或Ada这样 可通过软件工具 表达系统功能的能
(2)形式化 需求规格描述方法有三种: 形式化方法、非形式化
方法和半形式化方法。 形式化方法:是具有严格数学基础的描述系统特征
的方法,具有准确、无二义性的特点,有助于验证有效 性和完整性。
非形式化方法:使用未作任何限制的自然语言,易 于理解和使用,但它固有二义性,且难以保证正确性、 可维护性,难以用计算机系统提供自动化的支持。

《软件工程》教学课件 第11章 软件项目管理

《软件工程》教学课件 第11章 软件项目管理
式为组织型、半独立型或嵌入型。
下 表 是 根 据 63 个 项 目 的 数 据 统 计 结 果 , 按 照 基 本 的 COCOMO模型估算的工作量和进度。
总体类型 组织型
半独立型 嵌入型
工作量 MM=10.4(KLOG)1.05 MM=3.0(KLOG)1.12 MM=3.6(KLOG)1.20
进度 TDEV=10.5(MM)0.38 TDEV=10.5(MM)0.35 TDEV=10.5(MM)0.32
i1
其中:ai — 估计的最小行数 bi — 估计的最大行数 mi — 最可能的行数
将估算的源代码行数,乘以根据经验推算的每行源代 码所需成本,即为该软件的成本。
IBM 估算模型
1977年由Waiston 和 Felix 总结了IBM联合系统 分部(FSD)负责的60个项目的数据,利用最小二 乘法拟合,得到如下估算公式:
PERT(Program evaluation & review technique)计 划评审技术或CPM(Critical path method)关键路径法, 都是采用网络图来描述项目的进度安排。如图描述了开发 模块A、B、C的任务网络图。各边上所标注的数字为该任 务所持续的时间,数字结点为任务的起点和终点。
70
任务
月份 1 2 3 4 5 6 7 8 9 10 11 12
60
需求分析 ▲ ▲ ▲
50
总体设计
▲ ▲▲
40
详细设计
▲▲
30
编码 软件测试
▲ ▲▲
20
10
▲▲▲
0 一月
二月
三月
四月
五月
六月
进度表
2.甘特图(Gantt Chart)

软件工程与项目管理课程(PPT 78页)

软件工程与项目管理课程(PPT 78页)
性努力
课程综述
本课程是计算机专业的专业课之一, 通过本课程的学习, 要求学生理解在软件开发过程中应用软件工程方法的必要 性和迫切性,要求学生掌握软件工程的基本原理、概念与 技术方法
本门课程最主要的作用就是帮助学生建立系统、完整的专 业基础理论体系,不仅培养学生分析问题、解决问题的能 力,而且全面锻炼学生将来成为现代软件工程师需要的团 队协作、谈判沟通、适应发展等等能力,为在今后工作中 从事计算机大规模软件开发与维护打下扎实的基础
系统分析能力、需求分析能力、设计能力
要求高、一般要求 有较长时间的开 发经验
熟练掌握某种语言、能看动相关设计文档,MIS 一般 系统编码一般要求掌握一种数据库系统
熟练了解某种特定的软件、能解决客户提出的各 一般 种技术问题、对软件硬件都应当有所了解
熟练了解某种特定软件、能接收并解决客户提出 一般 的问题、能进行软件的二次开发、熟悉某种 开发语言、掌握一种数据库系统
造房的方法论-总结
小型工程可边做边设计 施工过程中修改方案不会带来致命影响 以经验为主 造房和施工方不一定需要通过图纸来沟通,不需要太多的
工程知识,双方边商量边施工
造房的方法论-金贸大厦
谈可行性
设计原形并讨论
造房的方法论-金贸大厦
严格按照图纸施工
可耸立百年的大楼是精确设计的产物
软件过程模型
计划阶段 开发阶段 维护阶段
制定计划 需求分析 软件设计 程序编写 软件测试
运行维护
软件过程模型
软件计划
问题定义
“要解决的问题是什么?”
可行性研究
经济 技术 管理 社会环境
40
软件过程模型
需求分析
确定系统逻辑模型 确定目标系统必须具备的如下内容

软件工程与项目管理

软件工程与项目管理

软件工程与项目管理软件工程与项目管理是现代信息技术发展过程中的两个重要领域。

软件工程是指通过系统化、规范化的方法,运用工程学原理和方法来开发、维护和管理软件的学科;项目管理则是指利用特定的管理技术和方法,组织、计划、实施、控制和评估项目的整个过程,以实现项目目标。

本文将探讨软件工程与项目管理之间的关系以及它们在实践中起到的作用。

一、软件工程与项目管理的关系软件工程和项目管理在软件开发过程中有着密切的联系。

软件工程强调的是运用系统工程原理和方法来管理和开发软件,而项目管理则是软件工程的具体实施手段之一。

项目管理方法和技术可以帮助软件工程师更好地规划、组织和控制软件开发过程,确保项目能按时、按质量、按成本达到预期目标。

在软件开发项目中,项目管理包括项目计划、需求分析、设计、编码、测试、交付等多个阶段。

软件工程师需要根据项目要求,合理安排资源,制定开发计划,并将其分解成可管理的任务,对任务的进展进行跟踪和控制。

项目管理还包括风险管理、质量管理、团队管理等方面,这些都是软件工程师需要具备的综合能力。

二、软件工程与项目管理的作用1. 提高软件开发效率:软件工程和项目管理的结合,可以提高软件开发的效率。

通过规范化的软件开发过程和项目管理流程,可以准确估算任务量、合理分配资源,避免重复劳动和资源浪费,提高开发效率。

2. 管理需求变更:软件开发过程中,需求变更是常见的情况。

软件工程师需要及时响应需求变更,并通过项目管理方法进行有效管理,确保变更后的需求能够及时、准确地实施到软件开发中。

3. 控制项目进度和质量:软件工程和项目管理可以帮助软件开发项目有效控制进度和质量。

在项目计划阶段,可以通过制定合理的计划和阶段性目标,确保项目按时完成;在质量管理方面,可以通过制定测试计划和质量标准,进行严格的测试和评估,提高软件质量。

4. 提高团队协作能力:软件开发项目通常由多个人组成的团队来完成,团队成员之间的沟通和协作能力对项目的成功至关重要。

软件工程 第10章 软件开发环境

软件工程  第10章  软件开发环境

软件工程第10章软件开发环境在软件工程的领域中,软件开发环境是一个至关重要的概念。

它就像是一个为软件开发团队提供各种工具和资源的“大工具箱”,旨在提高开发效率、保证软件质量,并促进团队之间的协作。

软件开发环境并不仅仅是指一堆硬件设备和软件工具的简单组合,它涵盖了从开发过程中所使用的编程语言、编译器、调试器,到项目管理工具、版本控制系统,以及团队协作平台等多个方面。

一个良好的软件开发环境能够为开发者提供舒适、高效的工作空间,让他们能够将更多的精力集中在解决业务问题和实现软件功能上。

首先,让我们来谈谈编程语言和编译器。

不同的编程语言适用于不同的应用场景,比如 Python 在数据科学和机器学习领域表现出色,Java 在企业级应用开发中占据重要地位,C++则常用于对性能要求较高的系统编程。

而编译器则负责将开发者编写的源代码转换为可执行的机器代码。

一个优秀的编译器能够优化代码,提高程序的运行效率,同时还能提供丰富的错误提示和警告信息,帮助开发者及时发现和纠正代码中的问题。

调试器也是软件开发环境中不可或缺的一部分。

当程序出现错误时,调试器能够帮助开发者逐行执行代码,查看变量的值,设置断点,从而快速定位并解决问题。

现代的调试器通常具有强大的功能,如条件断点、内存查看、线程调试等,大大提高了调试的效率和准确性。

除了这些基础的工具,项目管理工具在软件开发中也起着举足轻重的作用。

它们可以帮助项目经理制定项目计划、分配任务、跟踪进度、评估风险等。

常见的项目管理工具如 Jira、Trello 等,提供了直观的界面和丰富的功能,使得团队成员能够清晰地了解项目的整体情况和自己的职责,有效地提高了项目的管理水平和执行效率。

版本控制系统则是保障软件开发过程中代码一致性和可追溯性的重要手段。

通过版本控制系统,开发者可以方便地对代码进行修改、提交、回滚等操作,同时还能够与团队成员共享代码,协同开发。

Git 作为目前最流行的版本控制系统之一,具有分布式、高效、灵活等优点,已经成为了软件开发领域的标配。

第10章软件工程标准化及软件

第10章软件工程标准化及软件

软件工程标准化
1、软件工程功能标准框架
⑥数据:包括判定表规范、文档编制符号和约定、程序结构 和约定及其表示、计算机系统配置图符号和约定、软件状态转换 的人际通信的表示、基于计算机的应用系统的文档编制指南、软 件生存周期过程信息产品的内容指南、软件工程数据定义和交换 及高级Petri网等。
2、基于软件生存周期过程的软件工程路径框架
(11)开发进度月报
(6)详细设计说明书
(12)项目开发总结报告
(13)维护修改建议
软件文档
4、软件文档的编制要求
高质量的文档应当体现在以下几个方面: 准确、简明、完整、 灵活、有针对性、可追溯性。 为了能够编写出高质量的文档,应注意以下一些问题:
(1)应根据具体的软件开发项目,决定编制的文档种类。 (2)当所开发的软件系统非常大时,一种文档可以分成几卷编写。 (3)应根据任务的规模、复杂性,确定文档的详细程度。 (4)对国标中所建议的所有条款都可以扩展,以适应需要。 (5)程序的设计可采用多种表现形式。 (6) 文档的表现可以使用自然语言、也可以使用形式化的语言。 (7)当可以建立一些特殊的文档种类要求。
④技术:技术标准的框架以及相关国际标准如图10-7。包括 软件产品评价、软件过程评估、软件可信性、科技系统功能安全 的风险分析、功能人员和材料资源:包括TR15504-6:《软件过程评估第6 部分:评估员资格指南》和《计划中的对于知识软件工程体指南 的快速批准》。
(4) 质量保证标准(ISO9001~ISO9003)之间及其 与质量管理标准(ISO9004-1)的关系
①ISO9001、9002、9003质量保证标准之间的关系 从用途上看,它们各自独立,但它们内在有着紧密的关
系。ISO9003是最终检验和试验质量保证模式,含16项体系 要素,是三者中要求提供证据最少的质量保证模式; ISO9002是生产、安装和服务的质量保证模式,含19项体系 要素,ISO9002包容了ISO9003的要素;ISO9001是设计、 开发、生产、安装和服务的质量保证模式,含20项体系要 素,ISO9001包容了ISO9002的要素。

《软件工程与项目管理》说课

《软件工程与项目管理》说课
7 8 9
10 11
合计
第10章软件维护 综合实训
总学时
1 4
32
6/9/2014 2014-6-9
9
二、课程内容
(二)教材建设
6/9/2014 2014-6-9
10
三、教学方法及手段
教学方法
六步教学法 实例教学法 课堂讲授法
6/9/2014 2014-6-9
11
三、教学方法及手段
教学手段
传统板书教学 多媒体教学
16
课堂教学评价
教师评价:
教师分析是否完成课前预定教学目标,是否达到预期教学效果
学生评价:
是否掌握本次教学的主要内容,是否存在不明白的地方
针对存在的问题,教师及时进行完善和补充
6/9/2014 2014-6-9
17
四、教学团队
软件开发教学组
专职教师:具有先进职教理念、较强科研能力和一定的实践技能
序号 1 2 3 4 5 课题名称 第1章 软件工程概述 第2章 软件工程过程模型 第3章 项目分析与规划 第4章 软件需求分析 第5章 软件概要设计 第6章 面向对象分析与设计 第7章 用户界面设计 第8章 程序算法设计与编码 第9章 软件测试 课时 分配 1 4 2 4 4 4 1 4 3
2、实用软件工程,郑人杰, 6 清华大学出版社 3、软件体系结构,覃征, 西安交通大学出版社 4、软件项目管理方法与实 践,阳文东,水利水电出 版社
注重学生独立分析能力和创造思维的培养 注重学生操作能力与解决实际问题能力的培养 注重学生协调能力、人际沟通能力的培养 注重学生自律性、客户服务意识、团队协作能力的培养
6/9/2014 2014-6-9
5
(三)课程设计

软件项目管理流程总结

软件项目管理流程总结

项目管理与软件开发的质量、效率、最终成果息息相关,本文主要讲述软件项目的风险评估、成本预算、客户沟通、需要分析、开发管理、成品交付等多个流程。

在现今国内的项目的管理形式十分零乱,对管理欠缺重视,以致很多项目因为失去管理而最终折腰。

很多的实战形人才只重视于开发环节,而对其他的流程欠缺认识(包括本人),因而导致项目欠缺有条理的、阶段化的管理。

本人是一个典型的只重视开发的管理者,在多次的教训中深刻地体会到管理的重要性,因而以此文章对项目管理作出一个总结,当中存在很多的不足之处,敬请各位点评!风险评估成本预算客户沟通的过程需求分析面向对象程序设计(略)开发管理产品交付一、风险评估软件项目风险是指在整个项目周期中所涉及的成本预算、开发进度、技术难度、经济可行性、安全管理等各方面的问题,以及由这些问题而对项目所产生的影响。

项目的风险与其可行性成反比,其可行性越高,风险越低。

软件项目的可行性分为经济可行性、业务可行性、技术可行性、法律可行性等四个方面。

而软件项目风险则分为产品规模风险、需要风险、相关性风险、管理风险、安全风险等六个方面:1. 产品规模风险项目的风险是与产品的规模成正比的,一般产品规模越大,问题就越突出。

尤其是估算产品规模的方法,复用软件的多少,需求变更的多少等因素与产品风险息息相关:(1) 估算产品规模的方法(2) 产品规模估算的信任度(3) 产品规模与以前产品规模平均值的偏差(4) 产品的用户数(5) 复用软件的多少(6) 产品需求变更的多少2. 需求风险很多项目在确定需求时都面临着一些不确定性。

当在项目早期容忍了这些不确定性,并且在项目进展过程当中得不到解决,这些问题就会对项目的成功造成很大威胁。

如果不控制与需求相关的风险因素,那么就很有可能产生错误的产品或者拙劣地建造预期的产品。

每一种情况对产品来讲都可能致命的,这些的风险因素有:(1) 对产品缺少清晰的认识(2) 对产品需求缺少认同(3) 在做需求分析过程中客户参与不够(4) 没有优先需求(5) 由于不确定的需要导致新的市场(6) 不断变化需求(7) 缺少有效的需求变化管理过程(8) 对需求的变化缺少相关分析等3. 相关性风险许多风险都是因为项目的外部环境或因素的相关性产生的。

软件工程中的软件项目资源管理

软件工程中的软件项目资源管理

软件工程中的软件项目资源管理软件项目资源管理是软件工程中至关重要的一环,它涉及到如何有效地分配、计划和管理软件开发过程中所需的各种资源,以确保项目的顺利进行和达成预期目标。

本文将从资源管理的定义、重要性、资源类型和关键技术等方面探讨软件工程中的软件项目资源管理。

一、资源管理的定义软件项目资源管理是指在软件开发过程中,对各种资源进行合理配置和管理的过程。

这些资源包括人力资源、技术工具、设备设施以及财务预算等。

通过有效地管理这些资源,可以提高软件项目的工作效率和质量,从而实现项目的成功完成。

二、资源管理的重要性1. 资源规划与分配:软件项目需要合理规划和分配所需资源,包括项目团队成员、技术工具和设备等,以确保每个阶段都有足够的资源支持。

2. 项目进度控制:资源管理可以帮助管理者预测项目进度,合理安排任务和资源分配,以确保项目按时完成。

3. 资源冲突解决:在软件开发过程中,资源的供需关系会发生变化,可能出现资源冲突。

通过资源管理,可以及时解决冲突,确保项目的顺利进行。

4. 资源利用效率:通过合理分配和利用各种资源,可以提高资源的利用效率,降低项目成本,增加软件产品的竞争力。

三、资源类型1. 人力资源:包括项目经理、开发人员、测试人员等,他们是软件项目中最重要的资源之一。

合理的人员配置和团队管理对项目的成功至关重要。

2. 技术工具:包括软件开发工具、代码管理工具、测试工具等,通过使用合适的工具可以提高开发效率和产品质量。

3. 设备设施:包括开发环境、测试环境和硬件设备等,这些设备设施的稳定性和可用性直接影响软件开发过程中的效率和质量。

4. 财务预算:软件项目的预算管理包括资金的预算安排和成本的控制,合理的财务预算是项目成功的基础。

四、关键技术1. 人力资源管理:包括人员招聘、培训、考核和激励等方面,通过合理管理人力资源可以提高团队的凝聚力和工作效率。

2. 进度管理:合理的项目进度计划和监控可以帮助管理者及时发现问题和风险,采取相应措施以保障项目的进展。

《软件工程与项目管理》第10章-软件项目管理

《软件工程与项目管理》第10章-软件项目管理

项目收尾过程
要点一
验收项目成果
组织相关干系人对项目成果进行验收,确保项目目标已实 现。
要点二
总结经验教训
对项目执行过程中的经验教训进行总结,为今后的项目提 供借鉴和改进依据。
04
软件项目管理工具与技术
项目管理软件工具
微软Project
Trello
一款功能强大的项目管理软件,提供 项目计划制定、任务分配、进度跟踪 等功能。
进度与Hale Waihona Puke 本的控制进度与成本控制挑战
软件开发过程中,进度延误和成本超 支是常见问题。
解决方案
制定详细的项目计划,合理分配资源 ,加强项目监控和调整,确保项目按 计划进行并控制成本。
质量保证与测试
质量保证与测试挑战
软件质量是软件项目的核心要求之一,但质量保证与测试过程中可能存在疏漏 和不足。
解决方案
Extreme Programming
一种敏捷开发方法,强调编程实践和持续集成,适合需求变化频繁 的项目。
统一过程方法
统一建模语言(UML)
一种用于软件工程的标准化建模语言,支持从需求分析 到系统设计的全过程。
统一过程(UP)
一种结构化的软件开发过程,包括初始阶段、细化阶段 、构建阶段和交付阶段。
保证按时交付
降低风险
通过有效的进度管理和时间安排,可以确 保软件按时交付给客户。
项目管理有助于识别和评估软件开发过程 中可能出现的风险,并采取相应的措施来 降低或消除这些风险。
软件项目管理的历史与发展
20世纪60年代
软件工程的概念开始出现, 人们开始意识到软件开发需 要系统化的管理方法。
20世纪80年代
预测完成项目所需的总成本。

软件工程与项目管理课程标准

软件工程与项目管理课程标准

软件工程与项目管理课程标准一、课程概述(一)课程性质《软件工程与项目管理》是计算机应用专业教学计划中一门综合性和实践性很强的核心课程,主要内容包括软件工程概述、可行性分析、需求分析、概要设计、详细设计、面向对象分析与设计、编码、软件项目管理。

(二)课程基本理念本课程以“面向岗位、以岗位需求”为导向;以典型工作过程为依据选取教学内容;充分考虑学生的学习特点和职业发展需要。

(三)课程设计思路根据软件技术专业所涉及到的计算机语言编程和数据库术技术知识,以项目为驱动,通过“老师命题-学生实践”的方式在“知识-实践-项目”环节中提高学生的学习兴趣和动手能力;采用分段实施的教学过程:知识讲授阶段-实践阶段-强化指导来逐步提高学生的实际动手能力,为更深入地学习和今后从事软件工程实践打下良好的基础。

二、课程目标(一)总体目标:本课程的总目标是:“以学生实践为主体”,通过课程的实施,帮助学生学会自主学习。

使学生的知识、技能、素质得到全面发展,既为今后的专业课程学习打下良好的知识与技能基础,又培养良好的职业素养。

课程内容突出高职教育特点,确保人才培养目标的实现。

(二)具体目标1、知识目标掌握软件工程的基本概念及原理、掌握软件工程的基本原则和方法工具;了解当今软件企业的工作规范。

2、能力目标通过本课程的学习,掌握软件工程的基本理论、实用的开发方法和技术,并能够把软件工程的思想应用于软件项目实施过程;了解软件工程各领域的发展方向,对中小型软件项目进行可行性和需求分析、设计、编码、测试的能力及开发过程中应遵循的流程、准则、标准和规范,为今后从事软件工程实践打下良好的基础。

3、素质目标使学生具备团队精神及软件专业人员的基本素质,为就业和将来的发展打下理论和实践基础;培养学生认真参与、积极交流的主体意识;激发学生的学习热情,使学生初步形成编制程序的意识和科学精神。

三、课程内容标准第一章软件工程概述(一)教学目的、要求本章要求学生了解什么是软件危机和软件工程,软件危机产生的历史背景、根源和由此产生的大量的失败,了解软件工程是从何种角度切入到软件开发中去,如何解决软件危机,了解消除软件危险的途径。

《软件工程》(第五版)习题参考答案

《软件工程》(第五版)习题参考答案
把整个软件生命周期划分为若干个较小的阶段每个阶段都有相对独立的任务和完成任务的步骤和方法然后逐步完成各个阶段的任务这有利于软件开发过程的组织和管理从而降低了整个软件开发过程的困难程度从而使规模庞大结构复杂和管理复杂的软件开发变得容易控制和管理
《软件工程》(第五版)习题参考答案
第1章 一、判断题 1、(×)软件的维护与硬件维护本质上是相同的。 2、(√)软件在运行和使用中也存在退化问题。 3、(×)软件危机的产生主要是因为程序设计人员使用了不适 当的程序设计语言。 4、(√)软件同其他事物一样,有孕育、诞生、成长、成熟和 衰亡的生存过程。 5、(×)文字处理软件 Word 属于系统软件。应用软件 6、(√)原型是软件的一个早期可运行的版本,它反映最终系 统的部分重要特性。 7、(√)软件开发过程中,一个错误发现得越晚,为改正它所 付出的代价就越大。 8、(×)快速原型模型对软件开发人员的水平要求不高。 9、(√)喷泉模型适合于面向对象的软件开发。 10、(×)面向对象开发方法的主要缺点是在适应需求变化方面 不够灵活。 二、选择题 1、软件是一种(C)。 A、程序 B、数据
D、合同文档 14、结构化分析方法是以数据流图、(D)和加工说明等描述工 具,即用直观的图和简洁的语言来描述软件系统模型。 A、DFD 图 B、PAD 图 C、IPO 图 D、DD 15、软件需求分析阶段的工作,可以分为四个方面:需求获取、 需求分析、编写需求规格说明书以及(B)。 A、阶段性报告 B、需求评估 C、总结 D、都不正确 16、数据流图用于抽象描述一个软件的逻辑模型,数据流图由一 些特定的图符构成。下面图符名称标识的图符不属于数据流图合 法图符的是(A)。 A、控制流 B、加工 C、数据存储 D、源点和终点 17、DFD 用于描述系统的(D)。 A、数据结构

软件工程管理

软件工程管理

第十章 软件工程管理10.1 软件工程管理概述软件工程管理是对软件项目的开发管理,是对整个软件生存期的所有活动进行管理。

任何工程的成败,都与管理的好坏密切相关,软件工程更不例外。

尤其是软件产品的特殊性,软件工程的管理对于保证软件产品的质量具有极为重要的作用,是软件项目开发成功的关键。

由软件危机引出软件工程,这是计算机发展史上一个重大进展。

为了对付大型复杂的软件系统,必须采用传统的“分解”方法。

软件工程的分解是从横向(空间)和纵向(时间)两个方面进行的。

横向分解就是把一个大系统分解为若干小系统,一个小系统分解为若干个子系统,一个子系统分解为若干个模块,一个模块分解为若干过程。

纵向分解就是生存期,把软件开发分解为几个阶段,每个阶段有不同的任务、特点和方法。

为此,软件工程管理需要有相应的管理策略和技术。

随着软件的规模和复杂度的不断增大,开发人员的增加以及开发时间的增长,这些都增加了软件工程管理的难度,同时也突出了软件工程管理的必要性和重要性。

事实证明由管理失败造成的后果要比开发技术错误造成的后果更为严重。

很少由软件项目的实施进程能准确地符合预定目标、进度和预算的,这也就足以说明软件管理的重要。

例如:Windows 2000的开发是微软公司历史上最艰巨的任务,仅仅是核心部门的成员就有2500人,测试用的代码就有1000万行,测试中所用到的脚本程序就有6500种。

类似规模如此之大的软件系统,如果没有科学的、规范的、有效的管理,是不可能成功的。

因此软件工程管理是软件工程的重要研究内容之一。

10.1.1 软件管理的任务与目标为使软件项目开发成功,必须对软件开发项目的工作范围、可能遇到的风险、需要的资源、要实现的任务、经历的里程碑、花费的工作量,以及进度的安排等等做到心中有数。

而软件项目管理可以提供这些信息。

任何技术先进的大型项目的开发如果没有一套科学的管理方法和严格的组织领导,是不可能取得成功的。

即使在管理技术较成熟的发达国家中尚且如此,在我国管理技术不高、资金比较紧缺的情况下,大型软件项目开发的管理方法及技术就显得尤为重要。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

22
2. 中级COCOMO模型 表10-4 中级COCOMO模型的参数取值
类型 组织型 半独立型 工作量 MM=3.2(KDSI)1.05 MM=3.0(KDSI)1.12 进度 TDEV=2.5(KDSI)0.38 TDEV=2.5(KDSI)0.35
嵌入型
MM=2.8(KDSI)1.20
TDEV=2.5(KDSI)0.32
6
10.1.3 项目管理的内容 • PMl编写的《项目管理知识体系》,将项目管 理划分为9个知识领域,即范围管理、时间管 理、成本管理、质量管理、人力资源管理、沟 通管理、采购管理、风险管理和综合管理。 • 中国项目管理研究委员会则将项目管理的内容 概括为两个层次、4个阶段、5个过程、9大知 识领域、42个要素及多个主体
21
1. 基本COCOMO模型 表10-3 基本COCOMO模型的参数取值
类型 组织型 工作量 MM=2.4(KDSI)1.05 进度 TDEV=2.5(KDSI)0.38
半独立型
嵌入型
MM=3.0(KDSI)1.12
MM=3.6(KDSI)1.20
TDEV=2.5(KDSI)0.35
TDEV=2.5(KDSI)0.32
8
(6)知识要素:项目与项目管理、项目管理的运行、通 过项目进行管理、系统方法与综合、项目开发与评估、 项目启动、范围与内容、项目费用与融资、效果度量、 项目组织、沟通、项目质量管理、问题解决、业务流 程、变化管理、安全健康与环境、项目背景、项目目 标与策略、项目收尾、时间进度、技术状态与变化、 项目日控制、团队工作、冲突与危机、项目信息学、 项目后评价、人力资源开发、项目日投资体制、法律 与法规、项目阶段与生命周期、项目成功与失败标准、 项目结构、资源、项目风险、信息、文档与报告、领 导、采购与合同、标准与规范、项目监理与监督、组 织的学习、系统管理、财务与会计。
9
10.2 人力资源管理
管理资料
10
10.2.1 组织结构
图10-2 软件开发的典型组织结构
11
10.2.2 人员配置 1. 2. 3. 4. 5. 6. 7. 8. 项目负责人/项目经理 总设计师 系统分析师 软件设计师 软件工程师 测试工程师 文档管理员 系统配置人员
12
10.2.3 沟通方式
4
10.1.2 项目管理 项目管理就是在项目活动中运用专门的知 识、技能、工具和方法,使项目达到预期目标 的过程,是以项目作为管理对象,通过一个临 时性的、专门的组织,对项目进行计划、组织、 执行和控制,并在时间、成本、性能、质量等 方面达到预期目标的一种系统管理方法。
5
项目管理具有以下基本特征: (1)项目管理的对象是项目。 (2)系统工程思想在项目的全过程中都得以体现。 (3)项目管理的组织具有一定的特殊性。 (4)项目管理的体制是基于团队管理的个人负责制。 (5)项目管理的要点是创造和保持一个使项目顺利进行 的环境,使置身于这个环境的人们能在集体中协调工 作以完成预定的目标。 (6)项目管理的方法、工具和技术手段具有先进性。
34
表10-5 办公楼建设项目的各项活动表
活动 A 审查设计和批准动工 B 挖地基 C 立屋架和砌墙 D 建造楼板 估计需要的时间(周) 10 6 14 6 A B C 依赖关系
E 安装窗户
F 搭屋顶 G 室内布线
3
3 5
C
C D,E,F
H 安装电梯
I 铺地板和嵌墙板 J 安装门和内部装饰 K 验收和交接
17
10.3.3 功能点估算法
功能点估算法是根据软件所提供的功能来测量工作 量,通过研究需求来确定各种输入、输出、查询、文 件与外部接口的数量和特性,然后将这些功能点数乘 上一个反映其复杂程度的加权因子,最后累加,即可 确定软件总的功能点数。同样,根据历史数据或某种 计算模型可以估算出每个人月所能完成的功能点数, 也可以计算出软件的人工费。 功能点数可由以下4个参数计算出来: (1)外部输入和输出数。 (2)外部接口数。 (3)用户交互数。 (4)系统要用的文件数。
为便于计算成本,COCOMO模型规定了几个基本量: (1)DSI(源指令条数)定义为代码或卡片形式的源程序行数。 (2)MM(度量单位为人月)表示开发工作量。定义1MM=19 人日=152人时=1/12人年。 (3)TDEV(度量单位为月)表示开发进度,它由工作量决定。 COCOMO模型的基本计算公式为: E = A(KDSI)b 其中,E为开发成本,A、b为两个常数,其具体取值由项目的 种类决定。 COCOMO模型提出了3种基本形式,即初级COCOMO模型、中 级COCOMO模型和高级COCOMO模型,用以确定A、b的值,同时 计算开发成本E。
图13
图10-4 组织方式对沟通方式的影响
14
10.3 软件成本管理
管理资料
15
10.3.1 软件成本估算 • 软件开发成本估算主要指软件开发过程中所花 费的工作量及相应的代价。不同于传统的工业 产品,软件的成本不包括原材料和能源消耗, 而主要是人的劳动的消耗。 • 软件成本估算需要考虑的因素有项目所包括的 工作、资源需求、资源单价、项目完成所需要 的时间、已完成项目的历史资料等。
16
10.3.2 代码行估算法 • 代码行估算法是一种比较简单的定量估算成本 的方法,它是用每行代码的平均成本乘以程序 的行数来确定软件的成本。 • 例如,某软件采用代码行估算法估算本软件的 总代码行数大约为5 000行,根据经验,这种 系统的平均生产率为750行/人月,每个人月的 工资为2 500元,则总的开发成本应为16 667 元。 • 代码行估算法通常并不被认为是最优的方法, 因为有很多因素直接影响代码的行数。
26
10.3.7 累加估算法 该方法涉及单个工作的逐个估计,然后累 加得到项目成本的总计。累加估计的成本和精 度取决于单个工作的大小,工作划分很小,则 会增加用于估算的成本和估算的精确性。此方 法需要在精确性和估算成本间做出权衡。
27
10.3.8 软件成本控制
图10-5 成本控制的动态过程
28
10.3.9 效益预测与评估 1.函数求解法 2.相关关系法 3.模糊数学法 4.专家意见法
32
图10-6 一个软件项目开发的Gantt图表示
33
10.4.3 工程网络图
工程网络图又称 PERT图。在工程网络图中,用圆 圈表示开发工程中的一项具体任务,圆圈之间的箭头 表示各项任务完成的先后顺序和相互依赖关系,箭头 上的数字表示完成该项具体任务所需的时间 。绘制 PERT图都是从终点向起点逐步倒推,根据各项任务相 互之间的依赖关系画出每一项任务,直至整个工程的 起点。
29
10.4 开发进度管理
管理资料
30
10.4.1 项目进度计划
在正式开发之前,可以先制订项目进度计划。编制一个项目 进度计划,一般需要经过以下过程: (1)确定项目目的、需要和范围。其结果要素具体说明了项 目成品、期望的时间、成本和质量目标。要素范围包括用户决定 的成果以及产品可以接受的程度,以及可以接受的条件。 (2)指定的工作活动、任务或达到目标的工作被分解、下定 义,并列出清单。 (3)创建一个项目组织,以指定部门、分包商和经理对工作 活动负责。 (4)准备进度计划,以表明工作活动的时间安排、截止日期 和里程碑。 (5)准备预算和资源计划,表明资源的消耗量和使用时间, 以及工作活动和相关事宜的开支。 (6)准备各种预测,如完成项目的工期、成本和质量预测。 31
10.4.2 Gantt图
• Gantt图中文为甘特图,也叫横道图,由亨利•甘特于 1910年开发,它通过条状图来表示项目进度以及项目 的各个活动随时间进展的情况。 • Gantt图表示法用横轴表示时间,纵轴表示活动(项 目),用水平线段表示任务的工作阶段,线段的起点 和终点分别对应着任务的开工时间和结束时间,线段 的长度表示完成任务所需的时间。
10.3.6 类比估算法 类比估算法是通过类比的方法,由估算专 家根据以前类似规模、开发难度的项目来进行 成本估算。如果有一个以前做过的类似项目, 并且掌握它的规模,就可以把新项目的各个主 要部分与原有项目的相应部分进行比较,得出 一个比例关系,将各部分相对于原项目规模比 例相加,计算出新项目的规模。如果估算专家 的经验丰富,并且新项目与老项目具有足够的 相似性,就能够得到合理的估算值。
7
(1)项目层次:企业层次、项目层次。 (2)项目主体:业主、承包商、监理、用户。 (3)项目阶段:概念阶段、开发阶段、实施阶段、收尾 阶段。 (4)基本过程:启动过程、计划过程、执行过程、控制 过程、结束过程。 (5)知识领域:综合管理、范围管理、时间管理、成本 管理、质量管理、人力资源管理、风险管理、沟通管 理、采购管理。
23
3. 高级COCOMO模型 高级COCOMO模型的工作量及进度估算公式与中级 COCOMO模型一致,但高级COCOMO模型引入了两种 主要功能: (1)阶段敏感工作权数,某些阶段(设计、编码、调 试)比其他阶段有关因素的影响可能更大。高级 COCOMO模型为每个因素提供了一个“阶段敏感工作 权数”。 (2)3层产品分级结构,分别是模块、子系统和系统。
24
10.3.5 Putnam模型
该模型是由美国定量软件管理公司总裁Putnam于 1978年提出的,全称是定量软件管理软件成本进度模 型。 Putnam模型是一种动态多变量模型,软件开发所 需的工作量可由以下公式计算: L = Ck * K1/3 * td4/3 其中,L是源代码行数(以LOC计);K是软件开发 与维护在整个生存期所花费的工作量(以人年计);td 是开发持续时间(以年计);Ck是技术状态常数,也 称为“妨碍开发进展的限制”,因开发环境而异,典 型取值如下: (1)对于差的开发环境:Ck=2 500。 (2)对于好的开发环境:Ck=10 000。 (3)对于有的开发环境:Ck=12 500。 25
相关文档
最新文档