【信管2.3】项目生命周期

news/2024/5/2 22:45:19/文章来源:https://blog.csdn.net/zhangyue0503/article/details/128090600

项目生命周期

上一篇文章内容有点多呀,消化完了吗?其实吧,最主要的就是那三种组织形式而已,别的真没什么,记住它们的优缺点和项目经理的权力大小就可以了。今天我们轻松点,虽说还是挺重要的,但要记住它们并不是在今天。我们要了解一下项目的生命周期,以及在 IT 项目开发中常用的典型生命周期。其实这些内容我们在技术相关的内容中都已经有涉及过,这里只是更详细的再说明一下。看到下面的内容你一定不会感到非常陌生的。最后,我们还要提一下项目管理过程,也就是大家翘首以盼的 PMBOK 十大过程领域,当然,只是简单的介绍下,因为每个过程域我们在后面都会详细地学习。

项目生命周期

在技术相关的第一课,也就是 【信管1.1】信息系统与信息化https://mp.weixin.qq.com/s/-zYr7LO9OaeZfIEfziflpg 中,我们就提到过信息系统生命周期的概念。其实它本质上就是从项目生命周期演化产生的。项目生命周期指的是项目从启动到收尾所经历的一系列阶段。阶段通常都有时间限制,有开始点、结束点或控制点。

从预测型(或计划驱动的)方法到适应型(或变更驱动的)方法,项目生命周期可以处于这个连续区间内的任何位置。在预测型生命周期中,在项目开始时就对产品和可交付成果进行定义,对任何范围变化都要进行仔细管理。而在适应型生命周期中,产品开发需要经过多次迭代,在每次迭代开始时才能定义该次迭代的详细范围。

b85e4db68929f5c6d85037c0559c945f.jpeg

上面这个项目的生命周期图中,我们可以看到 启动项目、组织与准备、执行项目工作 以及 结束项目 这四个阶段,其实换个单词就是 启动、计划、执行、收尾 这个四个步骤。如果再加上一个全程的 监控 的话,就演变成了完整的 PMBOK 的五大项目过程组。

不同的阶段其实并没有特别严格的划分方法,阶段通常是以一个或多个可交付成果的完成为结束的,通常这些阶段也需要遵循一些规定:

  • 每个阶段要完成哪些技术工作

  • 每个阶段的交付物何时及如何产生

  • 每个阶段都有哪些人员参与

  • 如何控制和批准每个阶段

在上面的图中,我们还看到了一条曲线,这条曲线代表的是成本与人力投入的水平。我们可以看到,成本与人力投入在开始时较低,在工作执行期间达到最高,并在项目快要结束时迅速回落。不过,成本和人力投入的这条曲线并不是适用于所有项目的,因为有的项目可能在生命周期早期支出较大,以确保所有的资源到位,也就是说,给予的资源投入从一开始就是顶峰。

除了成本和人力外,项目的风险不确定性和变更代价也会随着项目的进展而产生变化。

bad88f4e3f7e1b0c4c299a162b99e436.jpeg

从图中我们可以看到两条曲线。其中风险与不确定性在项目开始时最大,并在项目的整个生命周期中随着决策的制定与可交付成果的验收而逐步降低。另一条变更的代价则是反过来的,在不显著影响成本的前提下,改变项目产品最终特性的能力在项目开始时最大,并随项目进展而减弱。其实就是说,在项目开始阶段,变更不需要付出太多的代价,而越接近项目结束,所要付出的代价也就越来越大。

项目生命周期通常是产品生命周期的一部分,并且是被包含于产品生命周期的。这个我们在最早的那一课中也看到过。

信息系统的项目典型生命周期模型

项目生命周期还是比较好理解的吧,毕竟这是我们第二次学习了。接下来的内容其实也是我们之前讲过的,而且是紧接着第一课的内容,也就是 【信管1.2】信息系统开发方法https://mp.weixin.qq.com/s/HLD1haIjUs9g8CC9-El2Ag 中提到的内容。我们在学习与之对应的信息系统开发方法时会同步回顾之前的内容。以下内容非常经典,是所有软件工程教材中必有的内容,重点哦!

瀑布模型

最最经典的,不提他就没法说软件工程和软件项目管理。重要到什么程度呢?后面所有要讲的东西,只是翻来覆去对它的变形优化,本质上没有特别的不同。

23aafa1917d24ed0084a7d75469f7055.jpeg

估计不少同学可能现在在公司就是这样的开发模式吧。我们从可行性分析(计划)开始,依次经历需求分析、软件设计(概要设计、详细设计)、编码(含单元测试)、测试、运行维护等几个阶段,一步步地走下来。它对应的就是我们之前学习过的 结构化方法 。

也就是说它的特点和优劣势和 结构化方法 是一样的,只不过 结构化方法 更偏方法论。而瀑布模型我们可以用更具体的项目化的术语总结一下:

  • 优点:具有检查点;关注后续阶段;在迭代中可以使用;模板化的开发可以实现共同指导。

  • 缺点:阶段划分相对固定,严格区分阶段,并且包含大量的文档;线性化的开发,到末期才能看到结果;不适应变化。

你可以再回顾一下我们在学习结构化方法时总结的优缺点,不管是简答还是选择题,这两个概念有很多内容都是相通的,也是可以互相拿分的。

V模型

如果你的项目很注重质量,也就是交付的成果对质量的要求非常高,那么 V模型 就是不可或缺的神器。

08deafb88998ff454543fe99715c2807.jpeg

熟悉吗?惊讶吗?这不就是在 瀑布模型 的基础上为对应的阶段增加了对应的测试嘛。它的重要意义在于,非常明确地表明了测试过程中也是一样存在不同的级别的,并且可以对应到我们 瀑布模型 的开发流程中。V模型体现的主要思想就是开发和测试是同等重要的。相信右边的这些测试是什么意思不用多解释了吧。如果有不记得的小伙伴可以回去再复习一下哦。【信管1.10】软件工程(四)软件测试与质量保证https://mp.weixin.qq.com/s/qxhpONT2d9HBRhEN3AbZBQ。

对了,我们在之前的课程中没有提到过验收测试,其实验收测试就是最后在正式的线上环境中的演示,演示对象就是我们的客户或者用户。

螺旋模型

刚刚说了如果看重质量,那么你应该选择 V模型 ,而如果项目很注重风险,有很大的风险隐患,那么你的最佳选择就应该是螺旋模型了。

12b341472bf7232e3f317090f506279c.jpeg


这一圈一圈的看不懂吧?我第一次看的时候也是一脸懵的。其实,你可以从左上角的 制订计划 看起,然后顺时针依次看到 风险分析、 实施工程 和 客户评估 。然后不停的这样顺时针旋转进行项目的开发。是的,我估计你猜到了,计划、执行、收尾,中间加了一个 风险分析 。

螺旋模型是一种深化软件的过程模型,将迭代增量的方式与线性顺序(瀑布)中控制的和系统化的方面结合起来,使得软件增量版本的快速开发成为可能。更重要的是,它在其中增加的 风险分析 ,当发现项目产品有问题的时候,我们可以马上终止开发。

综上所述,螺旋模型特别适用于复杂的、高风险、不成熟的项目。

迭代模型

迭代这个词其实是在敏捷开发中发扬光大的,在之前的敏捷学习中,我们知道迭代就是在一个固定的时间内去交付某些有价值的成果。真正的迭代模型其实是早于敏捷的,是敏捷采用了这一模型。

一次迭代就可以看成是一次小瀑布,整个迭代开发过程就是不断重复的小瀑布循环。

d94c5f3903b36eeff38b5451b4c0c789.jpeg

从这个表中,我们看出迭代模式也是包含不同阶段的,初始、细化、构造、移交 这四个阶段中的小瀑布又有着不同的工作量占比。比如说,在初始阶段,需求工作就是非常重要的部分,而在构造阶段实现就占了非常大的比重。

我们教材上的这个迭代模型的图示,在网上被广泛用于另一个经典模式的解释 统一过程RUP 。

统一过程(RUP/UP,Rational Unified Process)是一种以用例驱动、以体系结构为核心、迭代及增量的软件过程模型,由UML方法和工具支持,广泛应用于各类面向对象项目。它本身也是迭代模型的一种,可以归类为迭代模型之下。

除此之外,螺旋模型,很明显的也可以看出是迭代模型一类的模型。还有一种面向对象的迭代模型,称为 喷泉模型 。

fc26a21d85464ef2e70452aa08b059d9.jpeg

原型化模型

原型化模型的第一步就是创建一个快捷原型,能够满足项目干系人与未来的用户可以与原型交互,再通过与相关干系人进行充分的讨论和分析,最终弄清楚当前系统的需求,进行了充分的了解之后,在原型的基础上开发出用户满意的产品。

在螺旋模式中,我们就提到过原型化开发,其实它就是为了弥补瀑布的变更代价高昂的缺点。在开发前,我们用最小的代价来产出一个原型用于确认需求。

原型可以不用写代码,线框图、低保真、高保真原型几乎已经成为了 产品经理 的代表工具。使用 Axure 的高手做出来的动态高保真原型是真的能够达到以假乱真的地步的。

因此,原型模式其实现在已经被 产品经理 广泛使用了。而我们技术可以快速实现的类似原型的一种开发形式为 MVP ,也就是敏捷中的 最小可行性产品。大家可以在之前的敏捷课程中回顾一下。

原型根据使用的结果可以分为两类:

  • 抛弃型原型:此类原型在系统真正实现以后就放弃不用了。

  • 进化型原型:此类原型的构造从目标系统的一个或几个基本需求出发,通过修改和追加功能的过程逐渐丰富,演化成最终系统。

敏捷开发模型

敏捷开发,额,之前已经写过太多了,有兴趣的小伙伴去看看吧!

好吧,说下重点,了解一下敏捷开发在这边的重点关注的内容就好了。它适合小团队、小规模的项目,小步快跑模式。其实实现的就是 增量迭代 的方式来进行开发。

剩下的希望大家还是去看下我之前的 PMI-ACP 相关课程吧。

逆向工程

逆向工程,从技术的角度来说就是通过反编译等手段,将一个软件进行解构分析。比如说在十多年前,反编译 Android 应用来参考别人的代码实现是非常常见的情况。

逆向工程包括 设计模型(实现级)的逆向,也就是完全恢复之前的系统;程序数据结构信息(结构级)恢复数据及算法;对象模型、数据和控制流模型(功能级)恢复设计内容文档 以及 UML状态图和部署图(领域级)恢复设计流。

逆向工程这一块,了解一下就好啦。

项目过程组与知识域

项目管理从实现上来说,其实就是将知识、技能、工具和技术应用于项目活动之中,以满足项目的要求。它是通过利用项目管理知识、技能、工具和技术的过程实现的,这些过程凭借每个过程的输入条件创造出成果。也就是说,每个过程都会有自己的 输入、输出 以及相应的 工具、技术、方法 。

81fde4674394c650a0dc2443c8eacd8b.jpeg

过程就是一组为了完成一系列事先指定的产品、成果或服务而需执行的互相联系的行动和活动。在项目管理过程中,我们其实最主要关心的就是项目生命周期的那五大过程:启动、计划、执行、控制 和 收尾。之前也已经说过了,这五方面的内容构成了 PMBOK 理论体系中的 五大过程组 。

  • 启动过程组:定义并批准项目或项目阶段。

  • 计划过程组:定义和细化目标,并为实现项目需要达到的目标和完成项目要解决的问题范围而规划必要的行动路线。

  • 执行过程组:整合人员和其他资源,在项目的生命期或某个阶段执行项目管理计划。

  • 监督与控制过程组:定期测量和监控项目绩效情况,识别与项目管理计划的偏差,以便在必要时采取纠正措施,确保项目或阶段目标达成。

  • 收尾过程组:正式验收产品、服务或工作成果,有序的结束项目或项目阶段。

在这五个过程组中分别穿插着 PMBOK 知识体系中的十大知识域。知识域中的每个过程的成果一般会成为另一个过程的依据或成为项目的可交付的成果。如果是依据的话,那么也就是另一个过程的输入。它们之间相互影响、相互作用。

14850d49563d1823aa1c3dbae9387ccc.jpeg

上面这张图相信学过 PMP 的同学简直是再熟悉不过了。在 信管师 的考试中,和 PMP 是一样的要求,这张图中的表格,表格中的内容,必须全部背下来。没有为什么,考试考的就是它!!信管师考试下午的简答、论文都和它有关。当然,现在就要你背下来还是有点强人所难的,因为你还不知道这一堆东西是干嘛的,因此,在我们讲完所有的课程之后,请你回过头来,把它背下来。这张表格的重要程度 10000% 。

如果你希望有 Excel 表格形式或者更清晰的版本,可以去搜索 PMBOK 第五版的电子书,因为我们 信管师 教程中项目管理知识体系是以 PMBOK 第五版为基础的。当然,你也可以使用我的小程序 PMP知识域 来进行背诵。在这个小程序中,我们主要是背诵 PMP 的 ITTO (Input、Output、Tools and Technology) ,也就是每个过程的 输入、输出、工具和技术 这三部分内容。信管师对这个要求还好,但我建议你最好也能背下来。

pmp知识域

表格中的十大知识领域,用一句顺口溜来说的话,可以记成:范围时间成本质量是核心,人力沟通风险采购干系人是辅助,整体管理来归一。

e76b887b9589f5fe4cb43817a3d47680.jpeg

项目的整个开发过程其实就是上图所展示的,注意中间那个环。其实它就是根据大名鼎鼎的 戴明环 演变而来,也就是我们在敏捷中说过的 PDCA 循环。这四个字母分别代表的是 Plan、Do、Check、Act 。虽说它叫做 戴明环 但其实它是由 瓦特 提出,戴明 进行完善的。更多具体的内容大家可以自行查阅相关的资料文档,或者去之前我们敏捷的课程中找找哦。

总结

今天的重点内容是什么呢?不用我说大家也能看出来,项目过程管理组和知识域的那张大表格,不过幸好,今天你还不需要去把它背下来,但它,是我们整个课程的超级重点。等你学完全部的项目管理知识后,再背它也会变得很容易。另外项目生命周期中的重点是信息系统项目典型生命周期这部分的内容,也不需要完全的记忆,我们只要看到名字就能知道这些模型的特点就可以了。

参考资料:

《信息系统项目管理师教程》

《某机构培训资料》

《项目管理知识体系指南 PMBOK》第六版

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_227339.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java中类加载与双亲委派机制

类加载是什么 把磁盘中的java文件加载到内存中的过程叫做类加载 当我们用java命令运行某个类的main函数启动程序时,首先需要通过类加载器把主类加载到JVM. 有如下 User 类 package dc.dccmmtop; public Class User {public static void main(String[] args) {Sys…

TextBox文本框与PasswordBox密码框水印

在开发一个软件和网页的时候,都会有一个功能,那就是登陆功能,有了登陆那就一定需要用户输入账号和密码,我们在写登陆页面都会想到使用TextBox和PasswordBox去完成这两个功能,但是有一个问题,那就是如果你使…

pycharm opencv无法自动补全

我的环境 python 3.6.9opencv-python 4.4.0.42opencv-contrib-python 4.6.66ubuntu 18.04 LTSpycharm 2020.3.2 解决方案 首先找到cv2的site-packagespip3 show opencv-python进入到该目录, 复制so结尾文件至上级目录: cp cv2.cpython-36m-x86_64-linux-gnu.so ../等待pych…

R语言用ARIMA模型滑动时间窗口识别网络流量时间序列异常值

全文链接:http://tecdat.cn/?p30597最近我们被要求解决时间序列异常检验的问题。有客户在使用大量的时间序列。这些时间序列基本上是每10分钟进行一次的网络测量,其中一些是周期性的(即带宽),而另一些则不是&#xff…

微信开发者工具C盘占用大的问题

将User Data 下的文件迁移到其他盘,比如 D盘,E盘,F盘 步骤如下: 1.找到微信开发者工具C盘所在的缓存目录,一般为 C:\Users\ 你的用户名\AppData\Local\微信开发者工具\User Data 将里面的内容全部剪切到其它盘符&…

使用Psycopg2连接openGauss

文章目录1.简介2.接口介绍开发流程接口说明3.使用3.1环境准备3.2下载并加载python驱动3.3创建数据库连接用户3.4示例4.常见报错1.简介 Psycopg是一种用于执行SQL语句的PythonAPI,可以为PostgreSQL、openGauss数据库提供统一访问接口,应用程序可基于它进…

嘉创房地产冲刺港交所:半年营收4.7亿 现金及现金等价物减少

雷递网 雷建平 11月28日嘉创房地产控股有限公司(简称:“嘉创”)日前递交招股书,准备在港交所上市。半年营收4.73亿嘉创为一家精品住宅物业发展商,主要在大湾区的东莞、惠州及佛山迅速发展的住宅市场(如东莞…

干货 | 数字经济创新创业——如何发展绿色经济

下文整理自清华大学大数据能力提升项目能力提升模块课程“Innovation & Entrepreneurship for Digital Economy”(数字经济创新创业课程)的精彩内容。主讲嘉宾:Kris Singh: CEO at SRII, Palo Alto, CaliforniaVisiting Professor of Tsinghua Unive…

下沉市场投资热度提升 7天酒店打造酒店投资“极致性价比”

近日,7天酒店 “总裁面对面”酒店投资云沙龙活动举办,通过微信、抖音双平台联合直播,多维度探讨酒店行业的“新蓝海”机遇以及下沉市场的投资模式,助力更多投资人把握新的市场红利。 经济型酒店拥抱“新蓝海” 下沉市场投资热度提…

Antd中Table列表行默认包含修改及删除功能的封装

一、前言 ant-design是非常不错、方便的一款前端组件库,而这次用到的ProComponents则是在 Ant Design 上进行了自己的封装,更加易用,与 Ant Design 设计体系一脉相承,无缝对接 antd 项目,样式风格与 antd 一脉相承&am…

SAP 财务月结之 外币评估(TCODE:FAGL_FC_VAL,S4版本用 FAGL_FCV)<转载>

原文链接:https://zhuanlan.zhihu.com/p/367876296 在会计期末,企业往往会有以外币记的余额,如应付账款(国外)、应收账款(国外),或外币存款。而企业出具的财务报表,货币必…

学习笔记11月27日

Infant Brain Deformable Registration Using Global and Local Label-Driven Deep Regression Learning 文章来源:谷歌学术 一、摘要 婴儿大脑磁共振(MR)图像的可变形配准具有挑战性,因为:(1)这些纵向图像存在较大的…

RK3588平台开发系列讲解(USB篇)USB 外设 CONFIG

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、 Mass Storage Class CONFIG二、USB Serial Converter CONFIG三、USB HID CONFIG四、USB Net CONFIG五、USB Camera CONFIG六、USB Audio CONFIG七、 USB HUB CONFIG沉淀、分享、成长,让自己和他人都能有所收获!…

Java并发-多线程售票案例

1. 前言 本节内容主要是使用 Java 的使用 Condition 和 Lock 机制对多线程售票案例进行实现。售票案例多数情况下主要关注多线程如何安全的减少库存,也就是剩余的票数,当票数为 0 时,停止减少库存。 2. 售票机制模型 如下图所示&#xff0…

ANR系列之ContentProvider类型原理讲解

前言: 众所周知,ANR一共有四种类型,如下: 1.输入事件类型ANR 2.广播类型ANR 3.ContentProvider类型ANR 4.Service类型ANR 四种类型的超时时间如下所示: 所以ANR系列文章也会分为5篇文章来进行讲解,本…

管理最忌讳用权管人

阅读本文大概需要 1.66 分钟。最近星球在更新一些系列课程,其中有一节课叫「怎样从技术人转型管理者?」应该很适合大多读者,毕竟关注我的读者里,做技术做管理的居多,所以这篇也发这里给大家分享下。程序员做技术的&…

WebView2 通过 PuppeteerSharp 实现爬取 王者 壁纸 (案例版)

王者壁纸自动化获取逻辑分析 其实它的逻辑很简单, 就是王者的官网,打开后,在右下角就看到了皮肤页面部分。 这个时候,点击更多,就会打开全部英雄详情的页面。 这个时候,单点任意一个英雄,就会…

Rust机器学习之Linfa

Rust机器学习之Linfa 众所周知,Python之所以能成为机器学习的首选语言,与其丰富易用的库有很大关系。某种程度上可以说是诸如numpy、pandas、scikit-learn、matplotlib、pytorch、networks…等一系列科学计算和机器学习库成就了Python今天编程语言霸主的…

DDOS防护如何建设?

数字化转型发展也推动了云计算、人工智能、大数据、物联网等新一代信息技术应用普及,与此同时,新时代的发展也带来了新的网络威胁和新的安全需求。我们不难发现,近年网络攻击时间层出不穷,全球范围来看,企业因遭受网络…

CrossOver软件2022可以使苹果MAC电脑运行Windows软件应用

面对安装双系统时的繁琐步骤,以及虚拟机软件那庞大的体积,CrossOver的出现,让一切都变得简单起来。 CrossOver自带的一系列的Windows应用,涵盖游戏软件、办公软件、设计软件等多个种类。它轻巧的体积,便捷的操作步骤无…