『软件工程4』一文了解软件项目管理中的4P(下)

简介: 笔记

五、软件范围及问题分解(product)



1、预告


在开始进行一个项目之前,应该了解些什么呢?

1在进行项目计划之前,软件开发者和客户必须一起定义产品的目的和范围,考虑可选的解决方案,标识技术和管理的约束;

2)没有这些信息,就不可能进行合理的(准确的)成本估算、有效的风险评估、适当的项目任务划分或是可管理的项目进度安排

3)软件范围是软件项目管理的第一个活动。

通过下面一张图来加深对软件范围的理解。

14.png

圆圈里的内容即软件范围,确定该项目要做什么;那么不在圈子里面的,就先抛开,也就是说,不该做的内容先不要做。


2、软件范围的确定(划定问题的边界)


1)语境;

2)信息目标;

3)功能和性能


3、问题分解(确定各部分的功能)


1)分而治之;

2)估算开始之前,范围中所描述的软件功能必须被评估和细化,以提供更多的细节。因为成本和进度的估算都是面向功能的,所以某种程度的分解通常是很有用的。


六、过程(process)



1、一般性阶段


1)软件过程的一般性阶段(定义、开发和支持)适用于所有软件项目;

2)问题在于选择一个适合项目组所要开发软件的过程模型。

回顾下上一篇文章提到过的过程模型:

  • 线性顺序模型(瀑布模型)
  • V模型
  • 原型实现模型
  • RAD模型
  • 增量模型
  • 螺旋模型
  • 形式化方法模型


2、选择过程模型阶段


项目管理者必须决定哪一个过程模型最适合用在此项目,因此在选择过程模型时需考虑以下因素:

1)需要该产品的客户和将做此工作的人员;

2)产品本身的特征;

3)软件项目组工作的项目环境。


3、已确定过程模型阶段


1)当一个过程模型被选定时,项目组基于通用过程框架活动集合,定义一个初步的计划;

2)一旦建立了初步的计划,便可以开始进行过程分解,即必须建立一个完整的计划以反映框架活动中所需要的工作任务

3)工作任务必须针对项目的特定需要进行适应性修改;且框架活动总是一样的,但工作任务则要根据一系列的适应性标准来选择。


七、产品和过程的二元性(product and process)



15.png

从上图中可以看出,横向坐标表示过程,纵向坐标表示产品,也就是说,每一个产品都有它对应的一系列过程。所以,在一个项目中,产品和过程都一样重要,缺了谁都不行,这也就体现了产品和过程的二元性


八、项目的5W2H原则(project)



项目的5W2H原则包含以下几点:

  • WHY —— 为什么(Why)该系统被开发?(业务目的
  • WHAT —— 将做什么(What)?(项目任务
  • WHEN —— 什么时候(When)做?(里程碑
  • WHO —— 某功能由谁(Who)负责?(角色和责任
  • WHERE —— 他们的机构组织位于何处(Where)?(角色责任界定
  • HOW —— 工作将如何(How)被技术和管理地进行?(管理和技术策略
  • HOW MUCH —— 每种资源需要多少(How much)?(资源分配


九、写在最后——think more



看完上面文章内容后,不妨试问下自己以下问题:

分析如下具体项目情况,选择合适的团队结构(CC、CD、DD)及软件过程模型,并分析原因。

Q1: 在一个信息系统组织中,你被指派为项目经理。你的工作是开发一个应用程序,该程序类似于你的团队以前已经做过的某个项目,只是规模更大而且更复杂一些。需求已经由客户写成文档。

A1: 该项目规模更大并且更复杂,但是以前做过,因此选择CC的团队结构。同时,在最后一句中说到,需求已经由客户写成文档,即需求已经明确,可以用瀑布模型。但是呢,该项目是一个规模较大的项目,且因为之前做过类似,所以技术风险较低,因此也可以选择RAD模型来进行开发。(CC、RAD/瀑布)

Q2: 你被指派为一个小型软件产品公司的项目经理。你的工作是开发一个有突破性的产品,该产品结合了虚拟现实的硬件和高超的软件。因为家庭娱乐市场的竞争非常激烈,完成这项工作的压力很大。

A2: 因为是突破性产品,且完成这项工作的压力很大,又因为项目的模块化程度较低,因此成员之间需要紧密结合,进行两两通信,所以选择DD结构。项目因为是有个突破性产品,风险性较高,因此选择螺旋模型进行开发。(DD、螺旋/增量)

Q3: 你被指派为一个大型软件产品公司的项目经理。你的工作是管理该公司已被广泛使用的字处理软件的新版本的开发。因为必须获得新的收益,已经规定了紧迫的最后期限并对外公布。

A3:(CC、增量/RAD)

Q4: 在一个为遗传工程领域服务的公司中,你被指派为项目经理。你的工作是管理一个软件新产品的开发,该产品能够加速基因分解的速度。这项工作是面向研究及开发的,但其目标是在下一年度内生产出产品。

A4:(DD、螺旋/形式化方法模型)

相关文章
|
架构师 Java 测试技术
【软件工程】为什么要选择软件工程专业?
【软件工程】为什么要选择软件工程专业?
413 0
|
3月前
|
机器学习/深度学习 监控 项目管理
『软件工程4』一文了解软件项目管理中的4P
该文章讲述了软件项目管理中的四个关键要素(4P:People、Product、Process、Project)的重要性及如何在实践中应用这些要素来提高项目管理的有效性。
『软件工程4』一文了解软件项目管理中的4P
|
监控 项目管理
软件项目管理
一、软件项目管理 软件项目管理是指对软件项目进行规划、组织、指导和控制的过程,以实现项目目标,确保项目按时、按质、按量完成。软件项目管理涉及到项目的各个方面,包括项目计划、需求管理、进度管理、风险管理、质量管理、资源管理、沟通管理等。 下面是软件项目管理的一些重要方面: 1. 项目计划:项目计划是指对项目进行全面的规划和安排,包括确定项目目标、范围、时间、成本、资源分配等。项目计划需要考虑项目的可行性、风险评估和资源可用性等因素。 2. 需求管理:需求管理是指对项目需求进行收集、分析、确认和控制的过程。需求管理包括需求的提取、需求的优先级排序、需求的变更管理等,以确保项目按照用户需求进行开发。
108 0
|
7月前
|
安全 Linux 测试技术
软件工程之维护阶段
软件工程之维护阶段
279 0
【软件工程】——可行性研究
【软件工程】——可行性研究
151 0
【软件工程】——可行性研究
|
测试技术
【软件工程基础】需求工程
【软件工程基础】需求工程
155 0
《软件工程方法与实践》—— 2.2 什么是软件过程
软件的诞生及其生命周期是一个过程,我们总体上称这个过程为软件过程。软件过程是为了开发出软件产品,或者是为了完成软件工程项目而需要完成的有关软件工程的活动,每一项活动又可以分为一系列的工程任务。任何一个软件开发组织,都可以规定自己的软件活动,所有这些活动共同构成了软件过程。
2657 0