SoftwareProjectManagement

软件项目管理

根据ppt整理的软件项目管理的文档笔记

1.项目管理与软件项目管理

1.1项目管理概述

项目是为了完成某一独特的产品或者服务, 所作的一次性努力. 一般要涉及一些人员, 由这些人员完成相关联的活动.

项目具有的特征为临时性, 独特性和逐步完善,

例如建造一栋大楼, 开发一个软件, 完成一个课题, 甚至一次旅行都可以视为一次项目.

项目和日常运作的区别:

  • 项目是一次性的, 日常运作是重复进行的.
  • 项目是以目标为导向的, 日常运作是通过效率和有效性体现的
  • 项目是通过项目经历及其团队工作完成的, 日常运作是职能性质的线性管理
  • 项目存在大量变更, 日常运作基本保持连续的连贯性

按照尺度来说, 项目可以分为项目群, 项目, 和子项目. 项目群可以称之为大型项目, 是一组进行协调, 管理的项目. 项目也可以进行更加细小的划分, 甚至项目的某个阶段也可以是一个单独的项目或者子项目.

项目的三约束:

  • 范围目标: 明确项目的任务是什么, 顾客或者发起人的目标是什么, 需要的产品和服务是什么
  • 时间目标: 需要花费多少时间, 进度如何安排
  • 成本目标: 完成该项目的花费

成功的项目管理意味着同时完成这三个目标, 三权相害取其轻.

项目和软件项目的区别:

除了项目的基本特征, 软件项目还包括以下特征:

  • 软件是逻辑实体, 具有抽象性
  • 软件开发受到计算机条件的性质, 对硬件系统有不同的依赖.
  • 软件具有复杂性特征
  • 经验在软件项目中起到重要作用
  • 变更是软件项目中的常见现象
  • 项目的独特性和临时性决定项目是渐进明细的.

软件项目的四要素组成:

  • 软件开发的过程
  • 软件开发的结果
  • 软件开发赖以生存的资源
  • 软件项目的特定委托人

衡量软件项目的四因素:项目范围, 成本, 计划进度 , 客户满意度

  • 项目范围就是为了使客户满意的所有工作
  • 项目成本就是需要的费用
  • 项目时间就是开发所用的时间
  • 客户满意度就是客户对于交付成果的满意度

1.2项目管理

项目管理定义:

在项目活动中运用专门知识, 技能, 工具和方法, 使项目能够实现和超过项目干系人的需要和期望.

项目干系人:

参与项目和受到项目活动影响的人, 包括项目发起人, 项目组, 协助人员, 客户, 使用者甚至是项目的反对者.

项目管理需要在有冲突的要求中寻求平衡, 包括范围, 成本, 时间和质量

项目管理的主要内容:

•从管理职能角度划分,项目管理包括项目计划、组织、人事安排、控制、协调等方面的内容

•从项目获得的全过程划分,项目管理包括项目决策、项目规划与设计、项目的招投标、项目实施、项目终结与后评价等方面的内容

•从项目投入资源要素角度划分,项目管理包括项目资金财务管理、项目人事劳动管理、项目材料设备管理、项目技术管理、项目信息管理、项目合同管理等方面的内容

•从项目目标和约束角度划分,项目管理包括项目进度管理、项目成本管理、项目质量管理等方面的内容。

软件项目管理定义: 使软件项目能够按照预定成本, 进度和质量要求完成, 而对成本, 人员, 进度, 质量, 风险等进行分析和管理的活动

软件项目管理的独特性: 更多的是设计过程, 需要人力资源, 产品是代码和技术文件.

软件项目管理有利于将开发人员的个人开发能力转化为企业的开发能力.

(PMP): 美国PMI协会开发并且负责组织的一种专业资格认证

(Project Management Body Of Knowledge : PMBOK)项目管理知识体系, 是项目管理的知识框架, 包含九个知识领域, 五个标准化过程组以及39个模块

知识领域: 指的是项目经理必须要具备的一些重要知识和能力

  1. 核心知识领域:
    • 项目范围管理: 确定和管理为完成项目所作的全部工作
    • 项目时间管理: 项目所需的时间的估算, 定制可以接收的项目进度计划, 并且确保项目及时完工
    • 项目成本管理: 包括项目的预算和准备工作
    • 项目质量管理: 确保项目满足约定或默认各方需要.
  2. 辅助知识领域:
    • 项目人力资源管理: 如何有效利用参与的人
    • 项目沟通管理:生产, 采集, 发布和保存项目信息
    • 风险: 包括对项目的相关风险进行识别分析应对
    • 采购: 根据项目的需要, 从项目执行组织外部获取和购进产品和服务
  3. 项目整体管理: 要求发挥项目管理整体上的支撑作用, 与其他项目管理知识领域相互影响.

以上九条是项目经理必须具备的能力

五个标准化过程组:

  1. 启动过程组
  2. 控制过程组
  3. 执行过程组
  4. 计划过程组
  5. 收尾过程组

软件过程是软件开发的最佳实践

软件项目管理过程(四个阶段):

  1. 项目启动: 确定项目的目标范围
  2. 项目规划: 对软件项目的估算, 风险分析, 进度规划, 人员选择与配置, 产品质量规划等
  3. 项目跟踪控制: 测量实践的进程, 并与计划进程比较
  4. 项目结束: 做出项目终止的决策, 确认项目实施的结果, 进行项目的最后交接, 以及项目的清算和总结

软件项目生存期模型

2.1软件项目生存期模型定义

大致描述一下: 软件生存期模型是软件开发的一种框架, 说明了软件的活动和软件开发的过程, 描述了开发的主要阶段, 定义了每一个阶段的主要过程和活动, 规范了每一个阶段的输入和输出.

感觉有点类似之前软件工程中提到的'生存/开发周期'

2.2 经典软件项目生存期模型

2.2.1: 瀑布模型

特点:

  • 开发活动线性组织, 没有反馈过程, 不允许或者限制变更
  • 用户直到项目结束才能看到软件大致情况
  • 里程碑或者文档驱动, 需要严密控制

适合项目:

  • 项目需求在开发的时候就很明确
  • 举例: 财务管理系统, 库存管理系统, 以及其他一些短期项目

2.2.2 v形模型

特点: 强调测试过程和开发过程的对应性和并行性, 没有反映开发的实际过程

V模型的核心概念是将软件开发过程分为一系列的开发阶段(从左到右下降),每个阶段都有相应的测试阶段(从右到左上升)与之对应。这些开发阶段通常包括需求分析、系统设计、详细设计、编码、集成等,而相应的测试阶段则包括验收测试、系统测试、集成测试、单元测试等。

和瀑布模型的区别就是, 在开发的早期阶段就强调测试的重要性, 每个阶段都有对应的测试部分

适合的项目类型:

  • 项目对系统的性能安全比较严格. 比如航天, 财务等等系统.

2.2.3 原型模型

在需求定义之前, 需要快速构建一个原型系统, 用户根据快速构建的系统的优缺点, 给开发人员提出反馈意见, 然后开发人员根据用户的反馈进行调整.

适合的项目类型: 项目开始之前需求不明确, 需要减少项目的不确定性

(感觉每一个组队课设都是原型模型这样的软件生存期模型)

2.2.4: 增量式模型

特点: 先构建系统的核心部分, 然后逐步增加功能和性能

避免了一次性开发和投资带来太多的风险, 将主要的功能或者风险大的功能首先实现, 然后逐步完善.

适合的项目: 项目开始时明确了大量需求, 但是需求可能会发生变化的项目

对于市场和用户把握不准确, 需要逐步了解的项目

对于有庞大和复杂功能的系统进行功能改进时需要一步一步实施的项目

2.2.5 螺旋式模型

特点: 可以理解为瀑布模型的多次迭代,

适合的项目:

  • 风险是主要制约因素
  • 用户对自己的需求不是很明确
  • 大规模项目
  • 可能发生重大变更的项目
  • 采用了新技术的项目

2.2.6 快速应用开发模型(Rapid Application development)

用工具快速构建系统的方法, 更多的任务是规划和设计, 比如利用代码生成器等生成需要的系统

(感觉有点)

特点:

  • 团队很小并且是有经过训练的人员构成
  • 可以用很少的人很低的成本
  • 可以自动生成软件的复用部分
  • 用户可以确定系统如何适应业务需求

适合项目

  • 很小并且有探索性质的项目

  • 适合一个复杂度从小到大变化的项目

2.2.7 喷泉模型

2.2.8 软件分析与涉及--迭代, 进化和敏捷

迭代开发的优点: 减少项目失败的可能性, 提高生产率, 降低缺陷率

在早期缓解高风险

复杂性可控

一次迭代的持续实践和时间定量

  • 小步骤, 必须快速完成
  • 时间定量, 必须按时间完成

(中间差的很多, 不过大多都是软件工程的内容, 我觉得项目管理应该是不会考这些)

2.2.9 统一过程模型(RUP)

(我打赌不考)

2.3 软件过程改进简介

2.3.1 什么是软件过程

软件过程是一个为建造高质量软件所需完成的任务的框架,它涵盖了形成软件产品的一系列步骤,包括中间产品、资源、角色及过程中采取的方法、工具等范畴. 通俗点说, 就是软件从定义到交付的过程(定义过程, 开发过程, 交付过程)

2.3.2 什么是软件过程改进

提高软件过程能力的实践统称为软件过程改进, 其中CMM和CMMI是两个重要的成果. 软件过程改进的根本目的是: 提高质量,提高生产率, 降低开发成本.

2.3.3 CMM

CMM(Capability Maturity Model) 是用来衡量软件过程能力的事实上的标准, 按成熟度来评级, 一共有五个成熟度

Initial, Repeatable, Defined, Managed, Optimizing

各种成熟度等级的特征


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 xranudvilas@gmail.com

💰

×

Help us with donation