软件项目管理课程课件(清华)

  • 格式:ppt
  • 大小:4.06 MB
  • 文档页数:452

下载文档原格式

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

2.1
软件需求
一. 软件需求概念
1. 定义
简单地说,软件需求就是确定系统需要 做什么. 严格意义上,软件需求是系统或软件必 须达到的目标与能力

定义软件需求的五项内容
1. 2.
3.
4. 5.
系统的输入 系统的输出 系统的功能 系统的属性 系统环境的属性
2.软件需求在软件项目的作用

软件需求与其他软件过程的关系

常见的软件工程模型

线性模型(也称,瀑布模型,顺序模型)
常用的软件工程模型

螺旋模型 可看成是连接的线性模型
常用的软件工程模型

渐增式模型(增量模型)
常用的软件工程模型

渐增式模型首先构建系统的基本轮询回 路:
1.2项目管理
一.项目与项目管理
1.项目的概念及特点 项目:是指在一定约束条件下具有特定目标的一 项一次性任务. 共同特点: ① 一次性,又称为单件性 ② 目标的明确性:成果性目标(功能性要求), 约束性目标 ③ 作为管理对像的整体性

系统需求的描述语言
名称 说明
结构 化语 言 PDL
是对自然语言格式化, 依赖于定义标准格式或 模板来表达需求描述
优点
表现能力强、 易于理解 、一 致性约束 、控 制结构 、图形 化显示 可通过软件工 具进行语法和 语义检查
缺点
仍然有一定程 度的二义性; 细致程度欠缺
源于像Java或Ada这样的 程序设计语言,包含附 加的、更抽象的构造来 提高其表达能力
(2) 非功能需求 非功能需求是指那些不直接与系统的具 体功能相关的一类需求,但它们与系统的总体 特性相关,如可靠性,响应时间,存储空间 等. 非功能需求定义了对系统提供的服务或 功能的约束,包括时间约束,空间约束,开发 过程约束及应遵循的标准等

按照非功能需求的起源,可将其分为三大类: 产品需求,机构需求,外部需求; 产品需求对产品的行为进行描述;机构需求 描述用户与开发人员所在机构的政策和规定; 外部需求范围比较广,包括系统的所有外部 因素和开发过程
《软件项目管理》
教材:软件项目管理
覃征 等 编著
第1章 导 论
1.1软件工程 一、软件工程定义
软件:是与一个系统,特别是一个计 算机系统有关的程序、过程和有关文档 的完整集合。 工程:是科学和数学的应用,通过这 一应用,使得自然界的物质和能源的特 性通过各种结构、机器、产品、系统和 过程成为对人类有用的东西。

各阶段特点

主里程碑: 使用正式版本的评价标准和 发布说明书,一个阶段结束产生一个主 里程碑。

次里程碑: 使用非正式版本,一次迭代结 束产生一个次里程碑。
各阶段特点
为实现整个项目的某个特定状态,每个阶段都要进 行足够次数迭代。 各阶段的工作产品(制品,文档等),同时进化产 生,但每个阶段都有一个主要焦点: 初始阶段 需求 (生命周期目标里程碑) 细化阶段 设计 (生命周期构架里程碑) 构造阶段 实现 (初始的可操作能力里程碑) 移交阶段 实施 (产品发布里程碑) (这里的模型是渐增式(增量式))

项目管理特点

② ③
综合性 创造性 时间性
4.项目管理的要素

范围 、 时间 、成本、 质量、 组织 、客户 满意度
二.项目管理知识体系
集成管理 2. 范围管理 九个知识领域时间管理 4. 成本管理 5. 质量管理 6. 人力资源管理 7. 沟通管理 8. 采购管理 9. 风险管理
1.
3.
三.项目管理学科的发展
需求文档的作用
使用对象

需求文档的作用


软件项目客户 了解软件项目能够提供的软件产品,检查 软件需求是否满足需要 项目管理人员 根据需求文档制定项目的开发计划和软件过 程,初步预测资源的使用 软件开发人员 理解要开发的产品及具体要开发的内容 软件测试人员 验证软件系统是否满足了预期的要求 软件维护人员 使用需求文档帮助理解软件系统内在的逻 辑关系 软件发布人员 在需求文档的基础上编写用户文档,如用 户手册 软件培训人员 在需求文档的基础上编写培训材料

三.软件工程模型
所有软件工程的活动都必须进行管理。 软件项目管理贯穿于软件工程的演化过程。 软件工程的演化过程:

三.软件工程模型
软件工程模型: 组织软件工程活动 的方法,称为软件工程模型。 软件工程模型是用一定的流程将各个活 动连接起来,并可用规范的方式操作全 过程,如同工厂的生产线。 常见模型有线性、快速原型、螺旋、渐 增式等模型。

软件项目管理的过程
1. 2.
3.
4. 5.
启动软件项目 制定项目计划 跟踪及控制项目计划 评审项目计划 编写管理文档
软件项目管理的内容
1. 2.
3.
4. 5. 6.
软件项目需求管理 软件项目估算与进度管理 软件项目配臵管理 软件项目风险管理 软件项目质量管理 软件项目资源管理
第2章
软件项目需求管理
三.软件需求文档
软件需求文档是对软件系统要求的陈述. 包括: 用户需求 系统需求
三.软件需求文档
1. 需求文档的编制ຫໍສະໝຸດ Baidu作用
编写需求文档时,以下几点是应该注意的: 语句和段落尽量简短. 表达时采用主动语态. 语句要完整,且语法,标点等正确无误. 使用的术语要与词汇表中的定义保持一致. 陈述时要采用一致的样式. 避免模糊的,主观的术语,如性能"优越" 避免使用比较性的词汇,尽量给出定量的说明, 含糊的语句表达将引起需求的不可验证.

二.软件工程框架

软件工程目标

软件工程活动
软件工程原则

软件工程框架
软件工程目标
正确性--软件产品达到预期功能的程 度。 可用性--软件基本结构、实现、文档 为用户可用的程度。 合算性--具有经济效益,即开发、运 行的开销满足用户要求的程度。

软件工程活动---生产软件步骤

问题定义--明确要解决的问题 可行性分析--即定义的问题是否有解决的办 法 需求分析--为解决问题,目标系统必须具备 哪些功能 设计--总体设计,详细设计 实现--编写程序代码 确认--测试 支持--软件维护
软件工程原则
选取适宜的开发模型 采用合适的设计方法 提供高质量的工程支持 重视开发过程的管理

表2.2 非功能需求的类别
产品需 求 可用性需求 效率需求 可靠性需求 可移植性需求 交付需求 实现需求 标准需求 互操作需求 道德需求 立法需求 性能需求 空间需求
非 功 能 需 求
机构需 求 外部需 求
隐私需求安全性需求
(3)
领域需求 领域需求的来源不是系统的用户, 而是系统应用的领域,反应了该领域的 特点. 领域需求可能是功能需求,也可能 是非功能需,其确定需要领域知识.
2、项目的生命周期
2.项目的生命周期 ① 项目启动阶段 进行可行性分析,若接 受项目进行需求确认,项目立项 ② 项目计划阶段 建立解决问题方案,向 客户提交种计划书 ③ 项目实施阶段 执行解决方案,实现项 目的目标 ④ 工作结束阶段 正式验收项目
另一书中对项目周期阶段的划分
生命周期阶段
工程阶段
三.软件项目管理的内容
软件项目管理的定义(p19) 软件项目管理的过程(p19) 软件项目管理的内容(p19-20)

软件项目管理的定义

PMI对项目管理定义:在项目活动中运用 一系列的知识、技能、工具和技术,以 满足或超过相关利益者对项目的要求。
软件项目管理的定义:在软件项目活动 中运用一系列的知识、技能、工具和技 术,以满足软件需求方的整体要求。
软件工程的定义有多种说法:
Fritz Bauer[NAV69]在NATO会议上给出 的定义: 软件工程是建立和使用一套合 理的工程原则,从而经济地获得可靠的 和能在实际机器上高效运行的软件。

IEEE[IEEE93]给出了一个更加综合的定 义: (1) 将系统化的、规范的、可度量的方 法应用于软件的开发、运行和维护的过 程,即将工程化应用于软件中。 (2) (1)中所述方法的研究。

项目管理学科发展的特点
全球化发展、多元化发展、专业化发展

项目管理学科在双向探索中前进
各学科领域的理论、方法应用于项目管理,项目 管理的理论、方法应用于各学科领域

1.
项目学发展的趋势
微观项目管理,即单一项目的管理
2.
3. 4.
PMBOK是当前项目管理学科发展的重要内容 项目学是知识创新与市场相结合的综合化发展 项目学是科学、技术和艺术的综合

原始问题描述和用户需求的抽象层次比 较高.能帮助我们在较高的抽象层次上 进行交流,便于用户和软件开发人员之 间的理解和沟通. 系统需求和软件设计描述则是具体的, 可以根据它们来进行编码实现. 通常情况下,经常提到的是用户需求和 系统需求.


2. 用户需求

用户需求从用户的角度描述系统的需求, 以便没有专业技术背景的用户能看 懂.它只描述系统的外部行为,尽量避 免涉及系统内部的设计特性,因而用户 需求就不可能使用任何实现模型来描述, 而只能通过自然语言,图表,图形等来 叙述.
表达系统功能 的能力不足、 使用的符号只 有具有程序设 计背景的人才 能理解
4.系统需求的分类
分为三类
: 功能需求 非功能需求 领域需求
(1)
功能需求 功能需求描述系统所应提供的功能和服务, 包括系统应该提供的服务,对输入如何响应及 特定条件下系统行为的描述. 系统的功能需求应该具备全面性和一致 性.要做到全面和一致几乎是不可能的.原因 有二,其一是系统本身固有的复杂性;其二是 用户和开发人员站在不同的立场上,导致他们 对需求的理解有偏颇,甚至出现矛盾 为保证软件项目的成功,无论在哪个阶段, 只要发现问题,都必须修正需求文档.
二 软件需求类别
1.软件需求的抽象层次
软件需求分成四个抽象层次 1. 原始问题描述 2. 用户需求 3. 系统需求 4. 软件设计描述
软件需求的抽象层次
1.
2.
3.
4.
原始问题描述是对要解决问题的叙述 用户需求是用自然语言和图表给出的关 于系统需要提供的服务及系统的操作约 束 系统需求用详细的术语给出系统要提供 的服务及受到的约束,因而系统需求文 档也称为功能描述. 软件设计描述是在系统需求的基础上加 入更详细的内容构成的,它作为软件详 细设计和实现的基础,是对软件设计活 动的概要描述.
初始阶段 细化阶段
生产阶段 构造阶段 移交阶段
各阶段特点

工程阶段: 使计划、需求和构架同时进化, 并解决开发风险,这个阶段以一个可执 行构架基线结束,即工程阶段进行设计 和综合活动。

生产阶段: 进行构造、测试和实施活动。
各阶段特点

借助提高功能的演示使系统能力得以进 化。 各种活动同时进化,每个阶段都包括一 次或多次迭代,一次迭代表示一个活动 序列,这些活动有明确的中间事件(里 程碑)。

3.项目管理
项目管理定义 PMI定义:在项目活动中运用一系列的知识、技 能、工具和技术,以满足或超过相关利益者对 项目的要求。

项目管理又可定义为:在一个确定的时间范围内, 为了完成一个既定的目标,通过特殊形式的临 时性组织运行机制,经有效的计划、组织、领 导和控制,充分利用既定有限资源的一种系统 管理方法。
1.3软件项目管理
一.软件项目产品的特点
1.
2.
3.
4.
抽象性 缺陷检测的困难性 高度的复杂性 缺乏统一规则
二.软件项目失控的原因
软件失控项目(p15-16)
是指软件项目在进行时遇到困难,导 致大大超出可控制范围的项目。
软件项目失控的原因
七方面原因:需求不明确、计划不充 分和过于乐观的估计、采用新技术、管 理方法缺乏或不恰当、性能问题、团队 组织不当、人际因素
使用自然语言可能出现如下问题
描述困难 需求混乱

因此写需求文档应遵守一些简单原则:
标准的格式 使用一致的语言 使用特殊文本 尽量避免专业术语

3. 系统需求
系统需求是比用户需求更为详细和专业 的需求描述,是系统实现的依据.一个 完整且一致的系统需求描述,是软件设 计的起点. 系统需求描述通常采用结构化语言和过 程设计语言PDL.


本书给出的定义: 软件工程是一类求解软件的工程。它应 用计算机科学、数学以及管理科学等原 理,借鉴传统工程的原则、方法,创建 软件以达到提高软件质量、降低成本、 按时按量交付的目的。

计算机科学、数学用于构造模型和算法。 工程科学用于制定规范、设计模式、评 估成本及确定权衡。 管理科学用于计划、资源、质量、成本 等管理。