软件工程基础开发心得
在经过几周的努力之后,我们的团队项目渐渐成型,在这个开发过程中,我们团队中的每个人都为此付出了很大的努力,每个人都为团队项目的发展做出了很大的贡献。团队里不是只有我一个人刚开始对项目的开发不习惯,也可以说不只是我一个人要用很多时间从习惯一个人写代码到团队的分工配合。作为一名计算机学院的学生编程是很正常的事,乍一看好像编写代码这工作,只要是计算机的学生都应该会。但是“术在于精”,编写一个好的团队代码并不是件容易的事。类似的,团队也一样写程序,但是团队编程的范围更广,团队合作技术更加先进。
通过阅读No Silver Bullet - Essence and Accidents of Software Engineering这篇文章,对Silver Bullet这个概念渐渐理解了。在小说里他是能够干掉几乎无敌的狼人的银色子弹,我理解了一个软件的编写的过程复杂性,这样的话,就可以有效地避免银弹的出现;所谓的没有银弹是指没有任何一项技术或方法可使软件工程的生产力在十年内提高十倍。通过阅读这篇文章,我理解到在我们的团队开发项目中同样也可以不再需要银弹的出现,这样的话,我们编写出来的软件就可以显得更加强大,有更少的漏洞。有效地配置团队的资源,让团队的合作效率最大化,就可以有效地避免银弹的出现。正如文章中所说的那样“如果这是事实,软件开发总是非常苦难的,天生没有银弹。(If this is true, building software will always be hard. There is inherently no silver bullet.)” 我们的团队开发项目时,还远远没有达到发现银弹的水平。还远不能考虑它的多方面优缺点以及是否有成为银弹可能性。要在团队项目中的开发技术中发现并找到银弹,这基本上是不可能的事情。我们不能期望着有一种银弹能够打破我们的软件所有的缺陷,只有通过不断的学习,不断的经验累计,在开发过程中循序渐进才能开发出更好的项目。
通过结合我自己的团队开发经验,我对瀑布模型的特点认知如下:
(1)瀑布模型是一种时间性的模型
瀑布模型必须等前一阶段的工作完成之后,才能开始后一阶段的工作;可是,万一在软件的生命周期某一阶段发现了问题,很可能需要追溯到在它之前的一些阶段,必要时还要修改前面已经完成的文档。
(2)瀑布模型是一种相互之间关系非常紧密的模型
每一步的过程都是在其上一步过程的基础上实现的。前一步是后一步的基础,后一步是前一步的结果。在团队项目的开发过程当中,软件的生命周期在设计出来后还要进行修改。经常会遇到一些差错,所以我们必须调节软件的接口使其与外部环境变化相适应,或者由于团队对功能和性能要求提高,因而修改是必然的。软件维护是对于现存的而非新程序应用前述的各种生命周期步骤进行。
结合上述观点学习,我们团队作为开发APP应用的软件开发团队在软件的开发过程中更深刻地理解了APP软件的瀑布模型,这是很好的学习与实践过程。