简谈软件工程和实际的软件过程

写了十几年代码,如果你问我软件工程是什么,我还真的会卡壳,尽管我也记得大学时还学过这门课程。

至到去年考研的复习中看到IEEE组织对软件工程定义:

1)将系统化的、规范的、可度量的方法应用于软件的开发、运行和维护的过程,即将工程化应用于软件中;

2)对1)中所述方法的研究。

这个定义的形式对码农来说来应该是非常亲切了,而从内容来说,我感觉是概括出我想表达而无法总出来的内容。

可是问题来了,既然有所谓的系统化,规范和度量的方法后,那么到底有哪些方法,可以让软件项目的开发工作可以度量和规划。(可能自己比较Low,工作了这么多年,所遇到的项目要么是累死,要么是闲死)。开学后,带着这个问题上了两次软件工程的课,总结一下自己学到一些知识和想到一些问题(算是笔记吧)。

 

首先就是那些经常听到的各种模型,瀑布模型,V模型,增量模型等说是什么呢。

原来他们都是一种软件过程模型。一个软件有孕育、诞生、成长、成熟、衰亡的生存过程(这对于码农来说应该都有接触到,所以比较好理解)。跨越这整个生命周期的活动、运作、维护等的全部过程、活动和任务所采用的方法模式就是形成各种不同的过程模型。只是在真正的实践,应该很少项目及团队会遵循一种模型(至少我经历的是如此)。如果真有的话,那估计是瀑布模型。甚至有些团队顶着最高级的ISO标准,号称采用最正确的“Agile"模式,且真的从开发、测试和发布部署都使用一流的工具,但是真正的开发过程其实连瀑布模型还算不上(这里不再展开这种现象了,后面再总结)。

 

理解这些鼎鼎有名“软件过程模型“是在讲什么问题之后。我想说的是方法是一个比一个好,可是有个问题,这些模型怎么与具体的软件项目结合,以取得最高性价比?

不管如何,这算是对软件工程“三要素”中“过程”要素有些认识了。

再谈其它的两个要素,工具和方法。工具就不用多讲。

那么方法呢,很多定义是说“方法”为软件开发提供了“如何做”的技术。其实从百度上搜出来的几种有名的方法如“结构化方法”、“面向问题的分析方法”等,我想没写过代码,画过架构图的人,再怎么熟谙这些方法,也无法写出一个软件,至于是不是能够带个团队写出qulity的软件,这个我就不清楚。当然,对于我在这个行业混了这么久的人来说,看着这些方法也觉得是对的,只是真正来指导开发软似乎又是少了啥。

三要素的关系是

软件工程的过程则是将软件工程的方法和工具综合起来以达到合理、及时地进行计算机软件开发的目的。过程定义了方法使用的顺序、要求交付的文档资料、为保证质量和协调变化所需要的管理、及软件开发各个阶段完成的里程碑。在传统的那些增量啊,瀑布模型之类的软件过程中,我是看不到什么把“方法“和工具结合起来。初步看了RUP的一点东西,现在终于能大至懂得那个“RUP 的总体体系结构”,总算看到一些量化的总结概括。并且该模型与那些传统模型不同的是可依据项目裁剪和定制。希望我可以找到量化开发工作任务的方法。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值