软件工程和项目管理

项目管理其实是一个非常宽泛的学科,它不仅仅只适合于软件(或互联网或IT)行业,其实也适合其他行业,例如建筑。

一个项目需要进行各方面的经济,资源,人员管理与客户交流,这是软件项目管理,

如果你有时间去发现的话,你会惊奇的发现建筑行业也有项目经理这个角色!而且你仔细去研读项目管理方面的书籍,你会发现这门学科从始至终都没告诉你如何开发,具体怎么设计、如何开发!

软件工程为我们提供的具有指导意义的软件开发方法


但是软件工程就不一样了,我个人认为它对广义上的项目管理去繁从简了,它关注的核心点是分析、设计、开发!

工程是具体实施,而软件工程有别于其它工程,他们学的东西完全是如何用数学等方法解决制造问题,并没关于管理,

软件工程的产品不仅仅是代码,也包括一个有效的协作管理,生存期模型,瀑布模型这些都是软件工程提出的,像敏捷模型适用于各种类型的工程。

软件工程的产品是一个软件+文件+管理的产品。管理融入到了代码与文档中。

瀑布vs敏捷


都有分析 设计 开发 测试

传统的软件开发过程比如瀑布开发过程,将软件的生命周期分为需求,分析,设计,编码实现,测试,部署等几个阶段,从当时的情况可以看出各个阶段代表着项目的进度,是按照先后顺序来完成的,因此当业务变得更加复杂时,这样的开发过程就出现了很多问题,从而出现了现在比较流行的RUP等注重迭代开发的开发过程。

在瀑布模型里,需求,分析,设计,编码实现,测试,部署,代表着阶段。但到敏捷和迭代里,这代表着活动!

在这些开发过程中也引用了以前的那些名词(分析,设计,需求等),但代表的意义已经不一样了,在这些开发过程中,这些代表着活动,代表着开发过程中的各种活动,因此在每一个迭代过程中都会包含这些活动。这就是传统瀑布模型与现在RUP的区别,把阶段转换成了活动来理解,从而形成了一种新的开发过程,更好的适应了现在的软件开发。

瀑布模型

在瀑布模型中,软件开发的各项活动严格按照线性方式进行,当前活动接受上一项活动的工作结果,实施完成所需的工作内容。

当前活动的工作结果需要进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。

优势vs劣势

由于瀑布模式在软件开发开始阶段就全部确定了软件所需功能和设计,这使得软件开发过程有很强的针对性,但这种特性也使得瀑布模式无法适应软件需求变化比较快速的项目。

同时瀑布模式开发过程始终围绕既定目标,这就使得软件开发过程更具严密性,整体逻辑严谨,系统的稳定性和可靠性当然也更强。

本文分享自微信公众号 - 物联俱乐部(wu_lian_club),作者:瓜哥

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 瀑布vs敏捷

    一般来说,敏捷开发强调快速迭代,灵活开发,而传统软件工程强调严格周密,步步为营,那两者的具体区别究竟在哪?下面具体分析一下两种软件开发方法的区别。

    公众号php_pachong
  • 详解微服务Micro Service

    微服务的概念我们应该大体了解了,那么微服务又是怎么来的?原来将很多功能打包为一个很大的服务单元进行交付的做法不能满足需求吗? 实际上,并非原来“大一统”(Mo...

    公众号php_pachong
  • SLA是什么?

    服务级别协议,是 IT 服务提供方和客户之间就服务提供中关键的服务目标及双方的责任等有关细节问题而签订的协议。既然名为协议,通常就是用法律术语完成,其内容包含所...

    公众号php_pachong
  • React 手动实现 this 的绑定的几种方法

    IT故事会
  • ExtJs学习笔记(16)_Form布局

    这是最重要的一个布局,几乎所有的表单界面都可以采用form布局,详细的用法本文不作讨论(可以查阅官方API文档),这里只给出一个简单的示例 <script ty...

    菩提树下的杨过
  • MySQL权限开通的设计方案

    MySQL中的权限管理和其他数据库还是有很大的不同,它能够实现几种很特别的权限场景:

    jeanron100
  • 设计模式-抽象工厂模式+单例

    抽象工厂是创建型模式的一种,也叫超级工厂。抽象工厂是普通工厂的升级版,是一个专门生产工厂用的抽象工厂。

    逍遥壮士
  • JDBC与MySQL实现分页查询技术

    本文转自Cute-Rui的博客:https://blog.csdn.net/coder_gwr/article/details/86563709

    Python进击者
  • 【腾讯云的1001种玩法】Ngrok编译Win下客户端和相关配置

    上一篇文章提到了在服务器槡搭建Ngrok服务来实现内网穿透,因为我的服务器和本地环境都是Ubuntu的缘故,故直接完成了客户端的链接.那么在win下如何使用搭建...

    李郑
  • 【操作系统】内存管理

    这里有相对地址和绝对地址,相对地址就是别的球员相对于 1 号球员的位置,绝对地址是他们实际居住的房间号,相对地址就是内存中的逻辑地址,而绝对地址就是物理地址。

    wsuo

扫码关注云+社区

领取腾讯云代金券