软件过程管理习题上课讲义

合集下载

福师12秋《软件过程管理》练习题

福师12秋《软件过程管理》练习题

福师12秋《软件过程管理》练习题注:本课程练习题所提供的答案仅供学员在学习过程中参考之用,有问题请到课程论坛提问。

一、填空题1.软件过程是指软件开发人员开发和维护软件及相关产品(如项目计划、设计文档、代码、测试用例、用户手册等)的一套行为、、及。

考核知识点:软件过程的概念2.在软件过程中,基本过程包括获取过程、、等。

考核知识点:软件过程的分类3.个体软件过程(Personal Software Process,PSP)是一个过程描述、和的结构化集合,能够帮助软件工程师改善其个人性能。

考核知识点:个体软件过程4.可将过程分为、和三大类。

考核知识点:过程的分类二、名称解释1.软件过程模型考核知识点:软件过程模型2、软件过程改进考核知识点:软件过程改进三、单项选择题1. CMM2(可重复级)重点关注的是下列哪一个级别的软件过程。

A. 企业B. 机构C. 项目D. 小组参考答案:C2. 下面有关CMM模型的描述中,不正确的是。

A. CMM模型定义了成熟的软件过程的实践活动B. CMM模型提供了改进软件开发过程的结构化模型C. CMM模型给出了适用于各种应用范围的专门技术D. 按照CMM模型改进软件过程需要相当可观的费用参考答案:D3. 以下哪一个KPA不是CMM2(可重复级)关键过程域。

A. 软件需求管理B. 软件质量保证C. 软件配置管理D. 定量过程管理参考答案:D4. 直接在测试环境中修改源代码违反了下列哪一个KPA的规定。

A. 需求管理B. 配置管理C. 项目计划D. 过程变更参考答案:B5. 以下哪一项是实施OPF(组织过程焦点)活动的前提条件。

A. 成立SEPG组B. 进行同行评审C. 制定软件项目计划D. 识别软件工作产品参考答案:A6. “定期地评估过程,理解过程的强项和弱项”是哪一个KPA的活动。

A. SQA(软件质量保证)B. OPD(组织过程定义)C. OPF(组织过程焦点)D. SCM(软件配置管理)参考答案: C7. OPF(组织过程焦点)的验证工作是由来承担的。

软件过程管理 (10)

软件过程管理 (10)

chapter_9
பைடு நூலகம்
57
小结

配置管理的基本概念
配置项 基线 sccb

配置管理过程, 配置管理计划的基本内容

chapter_9
58
3.
制定规则和(配置管理)工具:实现配置管 理1. 2.
3.
大企业,大项目 异地开发模式 配备专门的配置管理人员
chapter_9 55
本章要点
一、软件项目配置管理基本概念 二、软件项目配置管理过程 三、软件项目配置管理计划 四、案例分析
chapter_9
56
案例分析
School项目案例说明:
配置管理计划

chapter_9 53
常用配置管理的工具
1. 2. 3. 4. 5.
ClearCase&ClearQuest PVCS Harvest CVS VSS
chapter_9
54
配置管理建议
1.
制定规则:实现版本管理
1.
小企业,小项目
2.
制定规则和(版本管理)工具:实现部分配 置管理
1.
中小企业,中小项目
决策
(若批准)
(若批准)
(若批准)
(若批准)
实施变更
验证变更
发布、 安装变 更
版本更新
chapter_9
39
SCCB对变更做出决策
直接实现变更 挂起或者延迟变更 拒绝变更(应通知变更请求人,并且保存所有 的相关记录)
n n n
chapter_9
40
变更接受时,实现进度形式
尽可能快地实现变更:期望的变更是修改开发 基线中的一个配置项,只有解决这个变更,其 他工作才能展开。 按照一个特定的日期实现变更:确定合适的日 期实现变更。 在另外的版本中实现,出于技术或者运行等原 因,期望与另外的变更一起发布。

软件过程管理(一)

软件过程管理(一)

软件过程管理(一)一、引言1、过程是活动的集合,软件过程是与软件开发与维护相关的活动的集合。

2、过程管理是制定过程和对过程活动进行动态监管。

软件过程管理的目的是最大限度地提高软件产品的质量和软件开发过程的生产率。

3、软件过程管理的途径:软件过程模型→组织标准软件过程→项目定义软件过程→过程实施与监控→软件过程改进。

4、过程的分类:产品实现过程;管理过程;支持过程。

在软件过程中,产品实现过程被称为“工程过程”。

软件工程( Software Engineering)l 指导计算机软件开发和维护的工程科学。

l 旨在确定软件开发技术规范,其中软件开发技术包含:软件开发方法学、软件工具和软件工程环境。

l 应用计算机科学(用于构造模型预算法)、工程科学(用于制定规范、设计模型、评估成本及权衡利弊)和管理科学(用于计划、资源、质量、成本等管理)的基本原理。

l 与其他工程的区别:产品是程序。

l 特点:规范化、文档化。

l 软件过程是指软件开发人员开发和维护软件以及相关产品(如项目计划、设计文档、代码、测试用例和顾客手册)的一套行为、方法、实践以及变化过程。

l 软件过程管理的重要前提是:软件产品质量的好坏主要取决于开发和维护该产品所使用的软件过程质量。

l 有效的软件过程可将人员、工具和方法进行有机结合。

二、软件与软件产业的发展过程软件过程管理l 对软件开发全过程规范化及标准化的管理。

l 软件过程管理技术包括:软件管理学和软件工程经济学。

l 目前,国外普遍采用的软件过程管理方法是:美国卡内基·梅隆大学软件工程研究所(SEI)提出的软件能力成熟度模型(SW-CMM)。

l 目的:研究如何有效地对软件开发项目进行管理,以便按照进度和预算完成软件项目计划,实现预期的经济效益和社会效益。

l 包括:成本估计、进度计划、人员组织、质量保证等。

三、软件危机及其原因软件成本高软件特殊性l 软件开发的进度难于控制l 估计软件工作量很困难l 软件质量难于保证l 修正维护软件困难软件项目出现的典型问题l 缺少用户的参与l 需求及其说明不完整或经常变更l 项目得不到高层管理者的支持l 技术能力不足或对新技术不熟悉l 资源投入不足l 预期要求过高l 项目目标不清晰l 人员配合存在问题四、过程及其要素l 软件开发项目是在规定的成本和时间内,开发和提交满足客户某些需求的软件产品。

软件过程管理习题学习资料

软件过程管理习题学习资料

软件过程管理习题1.阅读全部的CMM内容,选择出你认为最有价值的十条关键实践,并说明理由。

(1)项目软件负责人,设计/编程/测试人员、软件版本管理员均已得到相应的培训,具备了完成其职责所需要的知识和技能。

理由:通过培训,工作人员具有了一定的知识储备,遇到困难能够很快找到相应的解决措施,就可以很快上手,不至于在一个问题上耽误太多时间。

因此,为了达到统一的科学技术规范、标准化作业,通过目标规划设定、知识和信息传递、技能熟练而进行培训是十分必要的,这样能减少所需工作时间,提高成员的开发能力和创新能力,从而降低人力成本;减少浪费,从而降低了开发成本。

因此,参加培训是十分必须的。

(2)根据项目要求,建立软件有关组(例如工程组、软件测试组等)。

理由:通过建立相关组,各组可以各施其职,同步工作,提高工作效率。

因为软件开发时不可能一个人兼顾所有的方面,应该分成几个模块,只做好自己的然后和其他组协调就可以。

如专人负责技术方案设计,专人负责数据,专人做技术层面的指导等。

这样权责分明,遇到问题能够很快找到相应的负责组,解决问题的时间也将大大减少。

(3)确定设计、编程、测试人员,并实施三分离。

理由:实现了三分离可以更加开阔人员的思维,防止由于思路固定而不能及时发现问题,更有助于激发员工的创新思维,使软件更先进,更经得起考验。

(4)根据项目软件的质量需要确定本项目所采用的软件开发方法。

理由:确定好软件开发所采用的开发方法,就能尽早的做下步计划,不至于到最后为选择开发方法而浪费太多时间。

目前已形成了八类软件开发方法,开发时是选择面向数据结构的开发方法还是面向对象的开发方法,直接会影响到小组的开发进度。

要根据成员的擅长情况制定方法。

(5)软件版本管理员,以及设计、编程、测试人员的职责明确。

理由: 权责分明,遇到问题追究到人,会使项目开发更有计划。

完善制度,将责任明确到人,这样才能明确目标,将工作细化,使成员做好自己的工作,认识到重要性,使开发过程能高效的进行。

软件过程管理 (4)

软件过程管理 (4)

用户测试 运行原型
chapter__3
32
原型开发过程
建立原 型目标
定义原 型功能
开发 原型
评估 原型
原型规划
框架ห้องสมุดไป่ตู้义
可执行原型
评估报告
chapter__3
33
原型模型分类
原型是项目系统中的一个方面或者多个方 面的工作模型。 l 抛弃型原型:用于试验某些概念,试 验完系统将无用处 l 进化型原型:原型系统不断被开发和 被修正,最终它变为一个真正的系统。
当你对一个定义得很好的版本进行维护或将一个产品移植到一 个新的平台上,可以采用瀑布模型。 在质量需求高于成本需求和进度需求的时候,可以采用瀑布模 型。
n
n
chapter__3
24
瀑布模型的缺陷
n
n n
n
n
在项目开始的时候,用户常常难以清楚地给出所有需求;用户与 开发人员对需求理解存在差异。 很少软件项目按照顺序模型进行,不能很好地支持迭代。 缺乏灵活性,因为瀑布模型确定了需求分析的绝对重要性,但是 在实践中要想获得完善的需求说明是非常困难的,导致“阻塞状 态”。反馈信息慢,开发周期长。 只有到了整个项目的后半段时间,客户才能看到软件的模样。一 个没有及时发现的错误,可能导致灾难。 虽然存在不少缺陷,瀑布模型经常被嘲笑为“旧式的”,但是在 需求被很好地理解的情况下,仍然是一种合理的方法。
一、生存期模型定义 二、常用生存期模型 三、案例分析

chapter__3
3
建筑工程类项目典型生存期模型
chapter__3
4
制药项目典型生存期模型
chapter__3
5
生存期模型选择

软件过程配置与管理课件_第一章--软件配置管理SCM概述

软件过程配置与管理课件_第一章--软件配置管理SCM概述
31
1.2 软件配置管理基本概念
基本概念
➢ 常用的软件基线举例 系统工程 需求分析 软件设计 程序编写 测试 系统提交
系统规格说明(功能基线)
软件需求规格说明(分配基线)
软件设计说明
源代码
产 品
测试说明、测试结果

线
可运行系统
基线示意图
32
1.2 软件配置管理基本概念
基本概念
➢ 建立基线的三大原因:重现性、可追踪性和报告; • 重现性:及时返回并重新生成软件系统给定发布版的能力; • 可追踪性:建立项目工件之间的前后继承关系,其目的在于
20世纪60年代末70年代初,加利 福尼亚大学Leon Presser教授撰写
《Change and Configuration Control》
1975年 ,Leon Presser教授成立 SoftTool公司,开发了CCC工具, 成为最早的配置管理工具之一。
13
第1章 软件配置管理SCM概述
目录
1.1
引言
1.2 软件配置管理基本概念
1.3
软件配置管理概述
14
1.2 软件配置管理基本概配置管理基本概念
“曾经有一个很好的配置管理工具摆在我 的面前,我没有珍惜,直到版本混乱时 才追悔莫及,工作中最大的痛苦莫过于 此,如果上天再给我一次机会的话,我 会对它说三个字:我要你。。。。”
初始文件: 保存用户和数 据库的选项
21
1.2 软件配置管理基本概念
基本概念
➢ 仓库举例: 保存数据库的数据(a-z的一系列文件夹)
22
1.2 软件配置管理基本概念
基本概念
➢ 仓库举例: 为每个使用数据库的用户创建的文件

《软件过程管理》课件

《软件过程管理》课件
总结词
适用于需求稳定、变更较少的项目
详细描述
由于瀑布模型的各个阶段是顺序进行的,因此它适用于需 求相对稳定、变更较少的项目。在瀑布模型中,一旦完成 需求分析,设计、编码和测试阶段就需要严格按照顺序进 行。
总结词
缺乏灵活性,难以应对需求变更
详细描述
瀑布模型的缺点在于缺乏灵活性,一旦进入设计或编码阶 段,如果需求发生变更,可能需要重新进行前面的阶段, 导致开发时间和成本的增加。
总结词
需要强大的团队协作和沟通能力
详细描述
敏捷开发需要强大的团队协作和沟通能力。在敏捷团队中 ,成员需要相互信任、尊重和支持,同时还需要与利益相 关者保持密切沟通,确保项目的顺利进行。
03
CATALOGUE
软件过程管理实践
需求管理
需求调研
通过与客户的深入交流,了解客户的需求和期望 ,为后续的开发工作提供明确的方向。
详细描述
CMMI模型分为五个级别,从低到高分别为:初始级、已管理级、已定义级、量化管理级和优化管理级。每个级 别都设定了一组特定的目标和要求,组织可以根据这些目标和要求进行自我评估,确定其在成熟度方面的等级, 并制定相应的改进措施。
ISO9001标准
总结词
ISO9001标准是一种国际通用的质量管理体系标准,用于规范组织的产品和服务质量。
01
项目管理工具用于规划、跟踪和控制软件项目的进 度和资源。
02
常用的项目管理工具包括:Microsoft Project、 Trello、Asana等。
03
这些工具可以帮助项目经理更好地分配任务、监控 项目进度,提高项目成功率。
质量保证工具
01
质量保证工具用于评估软件过 程和产品的质量,确保软件质 量符合预期标准。

软件过程与项目管理-第三章

软件过程与项目管理-第三章

空间 需求
交付 需求
实现 需求
标准 需求
隐私 需求
安全 性需求
2020/1/25
第三章 软件需求分析和架构设计
8
1.1 软件需求分析概述
1. 软件需求工程—传统需求分析 在传统软件工程生命周期中,涉及需求的阶段
称作需求分析。一般来说,需求分析的作用是:
●定义软件的范围及必须满足的约束;
●确定软件的功能和性能及与其他系统成分的接 口;
1. 软件需求工程—需求的有效性验证 (一) 需求验证的重要性 1)由于需求是软件开发的第一阶段,直接影响后
面各阶段的开发。
软件 需求
软件 设计
软件 编码
软件 测试
运行 维护
做什么
怎么做
2) 需求的可变性必须进行验证。
2020/1/25
第三章 软件需求分析和架构设计
16
1.1 软件需求分析概述
1. 软件需求工程—需求的有效性验证 (二) 需求验证的内容
3、确定使用的文件。
4、用数据流将各部分连接起来,形成数据封闭。
2020/1/25
第三章 软件需求分析和架构设计
27
3.2 软件需求分析方法
1. 结构化分析方法—数据流图
数据流图(Data Flow Diagram,DFD)是描述系统中数 据流程的图形工具,它描述了将系统的逻辑输入转换为逻辑输 出所需的加工处理过程。
2020/1/25
第三章 软件需求分析和架构设计
22
3.2 软件需求分析方法
结构化分析方法
是一种以数据、数据的封闭性为基础,从问题空
间到某种表示的映射方法,由数据流图(DFD图)表示

图书目录文件

软件过程管理 (11)

软件过程管理 (11)
chapter__10
E
+1SD
+2SD
+3SD
99.7%
46
决策树分析
决策树分析是一种图表分析方法 提供项目所有可供选择的行动方案,行动方案 之间的关系,行动方案的后果以及发生的概率 提供选择一个最佳的方案的依据

chapter__10
47
决策树分析与EMV ( Expected Monetary Value)

chapter__10 51
课堂练习课堂练习
.025*10=2.5元
0.5*-1.5=--0.75元
0.25*-3=--0.75元
GameA:EMV=1
0.25*(10-2)=2元
0.5*-2=-1元
chapter__10
0.25*-2=-0.5元 52
GameB:EMV=0.5
量化检查表
chapter__10
20
chapter__10
21
chapter__10
22
情景分析法
通过对系统内外相关问题的系统分析,设计出 多种可能的未来前景,然后用类似于撰写电影 剧本的手法,对系统发展态势做出子自始至终 的情景和画面的描述。 是一种适用于对可变因素较多的项目进行风险 预测和识别的系统技术,在假定关键影响因素 有可能发生的基础上,构造多重情景,提出多 种未来的可能的结果,以便采取适当措施防患 于未然。
风险影响项目目标的严重程度 从无影响到无穷大


风险后果度量
高、中、低 极高、高、中、低、极低 灾难,严重,轻微,可忽略 等等

chapter__10 38
chapter__10
39

软件过程管理 (2)

软件过程管理 (2)
chapter__1 24 24
项目管理的发展
项目在两千多年前就存在,典型项目:埃及金字 塔,我国的万里长城。 n 突破性成就20世纪50年代 1957年美国路易斯维化工厂革新检修,通过压缩 最长路经上的任务工期,用78小时完成125小时 完成的检修工作,节省时间达38%,当年产生效 益100多万美元。这就是著名的时间管理技术—— 关键路径法
n
软件工作牵涉到很多社会因素
许多软件的开发和运行涉及机构、体制和管理方式等 问题,还会涉及到人们的观念和心理
chapter__1 15
n
软件是计算机系统中与硬件相互依存的另 一部分,它包括程序、相关数据及其说明 文档。 软件同传统的工业产品相比,有其自身的 特性。
n
chapter__1
16
软件项目的特殊性
n
n
chapter__1 27
项目管理在我国的发展
n
华罗庚教授于1964年倡导并开始应用推广的“统筹法” (Overall Planning Method),1965年华罗庚著的《统筹方 法平话及其补充》由中国工业出版社出版,该书的核心 是提出了一套较系统的、适合我国国情的项目管理方法, 包括调查研究,绘制箭头图,找主要矛盾线,以及在设 定目标条件下优化资源配置等。1964年华罗庚带领中国 科技大学部分老师和学生到西南三线建设工地推广应用 统筹法,在修铁路、架桥梁、挖隧道等工程项目管理上 取得了成功。毛泽东主席在1965年3月18日给华罗庚的信 上鼓励他:“诗和信已经收读。壮志凌云,可喜可贺。” 1965年7月21日毛主席再次写信祝贺和勉励他“奋发有为, 不为个人而为人民服务”。
项目是一个特殊的将被完成的有限任务 n 它是在一定时间内,满足一系列特定目标的多项相关工 作的总称。 实际包含的含义 n 项目是一项待完成的任务,有特定的环境与要求。 n 项目必须在一定的组织机构内,利用有限的资源(人力、 物力、财力等)在规定的时间内完成任务。 n 项目任务要满足一定性能、质量、数量、技术指标等要 求。

软件工程讲义_第二章

软件工程讲义_第二章

演化过程模型评述[NOG00]
首先,原型开发(和其他更加复杂的演化过程) 由于构建产品需要的周期数目不确定,给项目策 划带来了困难。 其次,演化软件过程没有确定演进的最快速度。 如果演进的速度太快,完全没有间歇时间,项目 肯定会陷入混乱;反之,如果演进速度太慢,则 会影响生产率…… 再次,软件过程应该侧重于灵活性和可扩展性, 而不是高质量。为了追求高质量而延长开发时间 势必造成产品推迟交付,从而失去进入市场的良 机。

过程模式

过程模式提供了一种有效的机制来描述各 种软件过程。模式使得软件工程组织能够 从高层抽象开始,开发层次化的过程描述。 高层抽象描述又进一步细化为一系列步骤 模式以描述框架活动,然后每一个步骤模 式又进一步逐层细化为更详细的任务模式。 过程模式一旦建立起来,就可以在过程变 体的定义中复用——即软件开发队伍可以 将模式作为过程模式的构建模块,定制特 定的过程模型。

演化过程模型评述

演化模型的初衷是采用迭代或者增量的方式开 发高质量软件。可是,用演化模型也可以做到强 调灵活性、可扩展性和开发速度。软件开发团队 及其经理所面临的挑战就是在这些严格的项目和 产品参数与客户(软件质量的最终仲裁者)满意 度之间找到一个合理的平衡点。
专用过程模型
专用过程模型具有传统过程模型的一些特 点,但是,专用过程模型往往应用面较窄, 只适用于某些特定的软件工程方法。 在某些情况下,这些专用过程也许更确切 地应该称为技术的集合或方法论,是为了 实现某一特定的软件开发目标而制定的。 但它们确实也提出了一种过程。
模式名称:应能清楚地表述该模式在软件过程中的功能。 驱动力:模式使用环境及主要问题, 以明确主要难点 并可能影响解决方案。 类型:定义模式类型。 启动条件:描述模式应用的前提条件。 问题:描述模式将要解决的问题。 解决办法:描述模式的实现。 结束条件:描述模式成功执行之后的结果。 相关模式:以层次或其他图的方式列举与该模式相关的 其他模式。 已知应用实例:介绍该模式的具体实例。

软件工程讲义第24章项目进度安排

软件工程讲义第24章项目进度安排
❖ 输入信息之后,就可以产生时序图, 也叫甘特图。可觉得整个项目建立一
时序图
图18-3 一种时序图旳例子
跟踪进度
❖项目进度表为软件项目管理者提供了一张 进度路线图。假如制定正确,项目进度表 中应该能够拟定在项目进展过程中必须进 行跟踪和控制旳任务及里程碑。
跟踪OO项目旳进展
❖虽然迭代模型是最佳旳针对OO项目旳框 架,但是,任务旳并行性使得OO项目极 难跟踪。困难在于项目管理者极难为OO 项目建立有意义旳里程碑,因为诸多不同 事物都是同步发生旳。一般,有相应旳准 则来衡量主要旳里程碑是否已经“完毕”。
这一问题。
实例
❖假定一种软件工程团队受命开发一种实时 控制器软件,将在9个月内推向市场,在 进行了仔细旳估算和风险分析之后,软件 项目管理者得到旳结论是:在既有人员条 件下,需要14个月旳时间才干完毕这一软 件。这位项目管理者下一步该怎么办呢?
实例
❖1.按照以往项目旳历史数据进行详细旳估算,拟 定项目旳估算工作量和工期。 ❖2.采用增量过程模型制定一种软件工程策略,以 确保能够在要求旳交付日期提供主要功能,而将其 他功能旳实现推到后来。然后将这一计划做成文档。 ❖3.与客户交流,并阐明为何要求旳交付日期是不 现实旳。一定要指出全部这些估算都是基于以往旳 项目实践,而且为了在目前要求旳交付期限完毕该 项目,与以往相比在工作效率上必须提升旳百分比。 ❖4.将增量开发策略作为可选计划提交给客户。
人员与工作量之间旳关系
❖对于小型软件开发项目,只需一种人就能够完 毕需求分析、设计、编码和测试。伴随项目规模 旳增长,必然会有更多旳人员参加。 ❖许多负责软件开发工作旳管理者依然普遍坚信 这么一种神话:“虽然进度拖后,我们也总是能 够增长更多旳程序员,并在后期跟随上进度。” 不幸旳是,在项目后期增长人手一般会对项目产 生破坏性旳影响,其成果是使进度进一步迟延。 后期增长旳人员必须学习这一系统,而培训他们 旳人员正是一直在工作着旳那些人,当他们进行 教课时,就不能完毕任何工作,从而使项目进一 步迟延。

软件过程管理习题

软件过程管理习题

1•阅读全部的CMM容,选择出你认为最有价值的十条关键实践,并说明理由。

(1)项目软件负责人,设计/编程/测试人员、软件版本管理员均已得到相应的培训,具备了完成其职责所需要的知识和技能。

理由:通过培训,工作人员具有了一定的知识储备,遇到困难能够很快找到相应的解决措施,就可以很快上手,不至于在一个问题上耽误太多时间。

因此,为了达到统一的科学技术规、标准化作业,通过目标规划设定、知识和信息传递、技能熟练而进行培训是十分必要的,这样能减少所需工作时间,提高成员的开发能力和创新能力,从而降低人力成本;减少浪费,从而降低了开发成本。

因此,参加培训是十分必须的。

(2)根据项目要求,建立软件有关组(例如工程组、软件测试组等)。

理由:通过建立相关组,各组可以各施其职,同步工作,提高工作效率。

因为软件开发时不可能一个人兼顾所有的方面,应该分成几个模块,只做好自己的然后和其他组协调就可以。

如专人负责技术方案设计,专人负责数据,专人做技术层面的指导等。

这样权责分明,遇到问题能够很快找到相应的负责组,解决问题的时间也将大大减少。

(3)确定设计、编程、测试人员,并实施三分离。

理由:实现了三分离可以更加开阔人员的思维,防止由于思路固定而不能及时发现问题,更有助于激发员工的创新思维,使软件更先进,更经得起考验。

(4)根据项目软件的质量需要确定本项目所采用的软件开发方法。

理由:确定好软件开发所采用的开发方法,就能尽早的做下步计划,不至于到最后为选择开发方法而浪费太多时间。

目前已形成了八类软件开发方法,开发时是选择面向数据结构的开发方法还是面向对象的开发方法,直接会影响到小组的开发进度。

要根据成员的擅长情况制定方法。

(5)软件版本管理员,以及设计、编程、测试人员的职责明确。

理由:权责分明,遇到问题追究到人,会使项目开发更有计划。

完善制度,将责任明确到人,这样才能明确目标,将工作细化,使成员做好自己的工作,认识到重要性,使开发过程能高效的进行。

软件工程讲义_第十七章软件配置管理

软件工程讲义_第十七章软件配置管理

SCM场景
软件工程师的目标是高效地工作。即软件工程师在代 码的创建和测试以及编写支持文档时不做不必要的相互 交流;但同时,软件工程师们又尽可能地进行有效的沟 通和协调。特别是,软件工程师可以使用相应的工具来 协助开发一致的软件产品;软件工程师之间可以通过相 互通报任务要求和任务完成情况来进行沟通和协调;通 过合并文件,可以使变更在彼此的工作中传播。对于同 时有多个变更的构件,要用机制来保证具有某种解决冲 突和合并变更的方法。依据系统变更原因日志和究竟如 何变更的记录,历史资料应该保持对系统中所有构件的 演化过程的记录。软件工程师有他们自己创建、变更、 测试和集成代码的工作空间。在特定点,可以将代码转 变成基线,并从基线做进一步的开发。
软件工程
第17章 软件配置管理
主要内容
软件配置管理概述 SCM中心存储库 SCM过程 小结
软件配置管理
软件配置管理(SCM),也称为变更管理,是 一组管理变更的活动。它通过下面的方式来管理 变更:识别可能发生变更的工作产品,建立这些 工作产品之间的关系,制定管理这些工作产品的 不同版本的机制,控制所施加的变更,审核和报 告所发生的变更。 参与软件过程的每个人在某种程度上都参与变 更管理,但是有时候也设专人来管理SCM过程。
基线化的SCI和项目数据库
图17-1 基线化的SCI和项目数据库
软件配置项
软件配置项是在软件工程过程中创建的信息。在极端情 况下,大型规格说明中的一节、大型测试用例集中的一 个测试用例都可以看做是一个SCI。再实际点,一个 SCI可以是工作产品的全部或部分。 除了这些来自软件工程工作产品的SCI之外,很多软件 工程组织也将软件工具列入配置管理的范畴,即,特定 版本的编辑器、编译器、浏览器以及其他自动化工具都 被“固化”为软件配置的一部分。因为要使用这些工具 来生成文档、源代码和数据,所以当要对软件配置进行 变更时,必须得到这些工具。虽然并不多见,但一个工 具的新版本有可能产生和原版本不同的结果。因此,就 像它们协助开发的软件一样,工具也可以基线化为完整 配置管理过程的一部分。

软件过程与管理第6章软件过程的项目管理精品PPT课件

软件过程与管理第6章软件过程的项目管理精品PPT课件

1.1 确定项目范围 项目范围 1.2 获得项目所需资金
规划 1.3 定义预备资源 1.4 获得核心资源
A A
A A
2.1 行为需求分析
A
2.2 起草初步的软件规范
A
2.3 制定初步预算
A
分析/软件 需求
2.4 工作组共同审阅软件规范/ 预算 2.5 根据反馈修改软件规范
A
P
A
2.6 确定交付期限
A
环境维护人员 负责开发和测试环境的开发和维护。
其他
另外的角色,如文档规范人员、硬件工程师等。
项目人力资源管理
2. 团队建设
清晰的 目标 相关
的技能
应变 技能
一致的 承诺 相互
的信任
内部 支持
恰当的 领导
外部 支持
良好的 沟通
项目软硬件资源管理
1. 软件资源管理
操作系统 编译器 应用软件 测试工具 ……
软件过程管理
-Ch.6 软件过程的项目管理
软件过程的项目管理
有效的项目管理是在用来实现项目具体目标 的规定时间内,对组织机构资源进行计划、引导 和控制工作。
——《项目管理知识指南》
软件配置管理概念
配置
配置是在技术文档中明确说明最终组成软件产品的功能或物理属性。
配置项
在软件生存周期内所产生的各种应纳入管理范围的系统构成成分。包括 各种管理文档和技术文档,源程序与目标代码,以及运行所需的各种数 据等(配置管理的资源对象)
3.4 审阅功能规范
3.5 3.6 3.7
根获得据开反展馈后修续改定工功义作能预的规备批范资准源 [1.3] 设计工作完成 [dur = 1 day]
制定初步预算 [2.3] [dur = 2 days]

软件过程管理-教案2

软件过程管理-教案2

《软件测试基础》教案课时2(45分钟)--------------------------------------------------------------------------------------- 错误!未定义书签。

1.回顾: [5分钟] ----------------------------------------------------------------------------------- 错误!未定义书签。

2.课程知识点讲解: ---------------------------------------------------------------------------- 错误!未定义书签。

2.1.具体知识点1:[15分钟] ................................................. 错误!未定义书签。

2.2.具体知识点2:[10分钟] ................................................. 错误!未定义书签。

2.3.具体知识点3:[5分钟] ................................................... 错误!未定义书签。

2.4.具体知识点4:[10分钟] ................................................. 错误!未定义书签。

3.本节总结[5分钟] --------------------------------------------------------------------------- 错误!未定义书签。

4.考核点-------------------------------------------------------------------------------------------- 错误!未定义书签。

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

软件过程管理习题1.阅读全部的CMM内容,选择出你认为最有价值的十条关键实践,并说明理由。

(1)项目软件负责人,设计/编程/测试人员、软件版本管理员均已得到相应的培训,具备了完成其职责所需要的知识和技能。

理由:通过培训,工作人员具有了一定的知识储备,遇到困难能够很快找到相应的解决措施,就可以很快上手,不至于在一个问题上耽误太多时间。

因此,为了达到统一的科学技术规范、标准化作业,通过目标规划设定、知识和信息传递、技能熟练而进行培训是十分必要的,这样能减少所需工作时间,提高成员的开发能力和创新能力,从而降低人力成本;减少浪费,从而降低了开发成本。

因此,参加培训是十分必须的。

(2)根据项目要求,建立软件有关组(例如工程组、软件测试组等)。

理由:通过建立相关组,各组可以各施其职,同步工作,提高工作效率。

因为软件开发时不可能一个人兼顾所有的方面,应该分成几个模块,只做好自己的然后和其他组协调就可以。

如专人负责技术方案设计,专人负责数据,专人做技术层面的指导等。

这样权责分明,遇到问题能够很快找到相应的负责组,解决问题的时间也将大大减少。

(3)确定设计、编程、测试人员,并实施三分离。

理由:实现了三分离可以更加开阔人员的思维,防止由于思路固定而不能及时发现问题,更有助于激发员工的创新思维,使软件更先进,更经得起考验。

(4)根据项目软件的质量需要确定本项目所采用的软件开发方法。

理由:确定好软件开发所采用的开发方法,就能尽早的做下步计划,不至于到最后为选择开发方法而浪费太多时间。

目前已形成了八类软件开发方法,开发时是选择面向数据结构的开发方法还是面向对象的开发方法,直接会影响到小组的开发进度。

要根据成员的擅长情况制定方法。

(5)软件版本管理员,以及设计、编程、测试人员的职责明确。

理由: 权责分明,遇到问题追究到人,会使项目开发更有计划。

完善制度,将责任明确到人,这样才能明确目标,将工作细化,使成员做好自己的工作,认识到重要性,使开发过程能高效的进行。

(6)制定正式评审规程、建立相应的评审机构。

理由:项目评审工作就是对项目计划执行情况以及未来计划的新情况做一个评审,同时对项目的财务状况及其它情况做一个总结。

另外,它可以为项目团队在处理项目风险时提供机会,以获得管理层的支持,同时也为项目团队继续开展项目工作提供在高层管理方面的认可。

(7)根据项目实际情况,选定本项目应遵循的软件过程标准、规范。

理由:如果一个团队中有了统一的过程,那么,大家的行为就会符合规范,从而提高团队的整体能力。

如果一个团队缺乏执行规范化过程的活动,就会导致整个组织的混乱。

为了消除软件过程所常见的问题,建立软件过程规范是必要的。

软件过程规范可以确保过程活动的一致性、有效性和持续性。

(8)任命项目负责人。

理由:项目负责人除了调配好小组成员,运用专业知识做整体质量的导向,控制项目的进度以外,还要与用户协调,利用周边人力资源做项目规划的流程安排,项目负责人要及时的发现程序开发中的困难和障碍,并且努力的及早的解决。

一个项目从开始运作到最后完成,不论是合同的签定、还是人员的调配、还是执行的安排,处处隐藏着不可预见的漏洞,因此需要项目负责人全局的掌控思维和能力。

(9)具有各阶段活动所需要的软/硬件环境、支持工具,并提供足够的经费。

理由:只有硬件基础具备了,才能形成一个好的开发环境,同时经费也是基础,要合理的制定经费计划,保证开发过程顺利进行。

要做好软件开发成本估算,这样才能合理的开发。

(10)项目软件负责的职责明确。

理由:责任是管理的基础,明确了职责,才能使成员更加认真的做好自己的本职工作,同时将责任细分,在出问题后也可以责任到人。

2.软件配置管理主要包括哪些?请详细说明。

(1)配置管理过程软件配置管理(SCM)简单而言就是管理软件的变化。

它属于软件工程过程,通常由相应的工具、过程和方法学组成。

在整个过程管理的活动中占有很重要的位置。

IEEE“软件配置管理计划标准”关于SCM论述如下。

软件配置管理由适用于所有软件开发项目的最佳工程实践组成,无论是采用分阶段开发,还是采用快速原型进行开发,甚至包括对现有软件产品进行维护。

SCM通过以下手段来提高软件的可靠性和质量。

1)在整个软件的生命周期中提供标识和控制文档、源代码、接口定义和数据库等工件的机制。

2)提供满足需求、符合标准、适合项目管理及其他组织策略的软件开发和维护的方法学。

3)为管理和产品发布提供支持信息,如基线的状态、变更控制、测试、发布和审计等。

软件配置管理贯穿于项目的整个软件过程中,与项目过程行为密不可分。

一方面,对于在软件过程中所产生的工作产品或变更请求通过配置管理活动进行管理,将有效的信息存储在配置管理库中。

另一方面,项目人员可依赖配置管理活动获取配置项的有效版本和历史信息。

软件配置控制是软件配置管理的核心工作。

软件配置控制主要包括对软件的存取控制、版本控制、变更控制和产品发布等4个方面。

(2)基线控制在软件开发过程中,由于各种原因,可能需要变动需求、预算、进度和设计方案等,尽管这些变动请求中绝大部分是合理的,但在不同的时机做不同的变动,其难易程度和造成影响差别比较大,为了有效的控制变动,软件配置管理引入基线的概念。

简单地说,基线就是项目存储库中每个工件版本在特定时期的一个“快照”,它提供一个正式标志,随后的工作基于这个标志进行,并且只有经过授权后才能变更这个标志。

建立一个初始基线后,以后每次对它进行的变更都将记录一个差值,直到建成下一个基线。

基线是软件生命期各阶段末尾的特定点,也称为里程碑。

在这些特定点上,阶段工作已结束,并且已经取得了正式的阶段性产品。

建立基线的概念是为了把各个阶段的工作划分的更加明确,使得本来连续开展的软件工作在这些点上被割开,从而更加有利于检验和肯定阶段性的成果。

同时也有利于变更控制。

有了基线的规定后,就可以禁止跨越里程碑去修改另一阶段“已冻结”的工作成果。

就各种不同类型的基线而言,有一条较为特殊的基线,它是软件过程中的第一条基线。

它包含通过评审的软件需求,因此称之为“需求基线”。

通过建立这样一个基线,受控的系统需求成为进一步软件开发的出发点,对需求基线的变更请求将受到慎重的评估和严格的控制。

受控的需求还是对软件进行功能评审的基础。

需求基线是整个软件生命周期的起点和终结点。

(3)版本控制版本控制是对系统不同版本进行标识和跟踪的过程,是实行软件配置管理的基础,也是所有配置管理系统的核心功能。

配置管理系统的其他功能大都建立在版本控制功能之上。

版本控制主要分为版本的访问与同步控制、版本的分支和合并。

1)版本的访问和同步:一般来说,不同的工作空间是由不同的目录来表示的,而对工作空间的访问是由文件系统提供的文件访问权限来加以控制的。

版本的访问控制:工作区域中的源文件是从库中恢复得到的一个副本,该副本可以是“可写”的,也可以是“可读”的。

对于“可写”的副本来说,它就是真正的工作文件。

而对于“可读”的副本,它可以被视为软件库中源文件的一个缓冲副本,此时一般有两种工作模式。

在工作区域一旦有“读”请求,则作一次恢复操作,获得一个副本。

当“读”操作结束后,该副本被删除。

这样就形成一种重复恢复,从而可以保证工作区域中的文件内容被更新为与软件库中的内容一致。

针对上一种模式中重复恢复引起的较大时间代价,不是每次“读”操作都要求与软件库中发生交互,而是将重点放在工作区域上,仅当软件库中的内容发生更改时,才发生交互。

版本同步控制:同步控制实际上是版本的检入检出控制。

2)版本的分支和合并:版本分支的人工方法就是从主版本---称为主干上复制的一份,并做上标记。

在实行了版本控制之后,版本的分支也是一份复制,这时的复制过程和标记动作由版本控制系统自动完成。

对于合并,在没有版本控制的时候,一般是通过文件的比较来进行合并。

在实行了版本控制之后,还是要通过文件的比较来进行合并,但是这时的比较工作可以由版本比较工具自动进行合并,自动合并后的结果需要人工检查,才有很高的可靠性。

(4)变更控制在软件过程中要产生许多变更,比如配置项、配置、基线、构建的版本和发布版本等。

对于所有的变更,都要有一个控制机制,以保证所有变更都是可控的、可跟踪的和可重现的。

为了有效地进行变更控制,需要规范相应的变更控制流程,变更控制流程主要分为7个阶段,变更请求提交、接受、评估、决策、实现、验证和完成。

3.如何综合运用过程管理的工具?在软件过程活动中,要经历不同的阶段和涉及很多的过程域,为了有效的执行这些软件过程活动,需要在整个软件开发过程中引入相关工具。

一般来说,实施软件过程活动所需要的工具主要有下面几种。

●需求管理工具●面向对象的分析设计工具●配置管理、变更管理工具●软件测试管理、缺陷跟踪工具(1)需求管理工具一个优秀的需求管理工具,可以有效地管理需求,提高需求管理工作流程的自动化程度,在项目实施中完整的、一致的管理好需求。

IBM-Rational AnalystStudio:IBM-Rational AnalystStudio可以帮助更好地分析问题,更好地定义并交流问题的解决方案,用于可视化建模、需求和用例管理以及缺陷和变更请求跟踪等。

Telelogic DOORS:Telelogic DOORS-Enterprise Requirements Suite (DOORS/ERS)是基于整个软件组织的需求管理系统,用来捕捉、链接、跟踪、分析及管理信息,以确保项目与特定的需求及标准保持一致。

DOORS/ERS 提供多种工具与方法对需求进行管理,可以灵活地融合到组织的软件过程管理中。

Borland Caliber:Borland Caliber是一个基于Web和用于协作的需求定义和管理工具,可以帮助分布式的开发团队平滑协作,从而加速交付应用系统。

Caliber辅助团队成员沟通,有助于更好地理解和控制项目,较少错误和提升项目质量。

(2)面向对象的分析设计工具IBM-Rational Rose是面向对象技术分析设计工具的代表,是可视化的建模工具。

它采用“统一建模语言(UML)”的表示方法,在同一个模型中实现业务建模、对象建模和数据建模,使所有参与项目的成员都可以在统一的语言环境中工作于同一个模型之上,有利于改善成员之间的沟通。

其次,IBM-Rational Rose支持多种语言的代码生成及双向工程,可实现代码和模型的互相转换,并且可以将遗留代码引入模型中。

最后,IBM-Rational Rose带有对设计元素进行测试的模块工具,可以尽早发现设计中的问题,真正实现“质量从头抓起”。

(3)配置管理和变更管理工具在CMM标准中,明确规定了软件配置管理以及变更请求管理的相关工作,主要包括以下两方面。

1)配置管理的主要工作包括通过创建软件配置管理库、定义配置项以及建立和维护软件的基线。

相关文档
最新文档