一、首先谈谈我对老师所给的博客和文章中概念的理解。
1、没有银弹:《没有银弹-软件工程中本质性和偶然性》文章里指出,在软件工程的开发过程中是不存在万能的终极杀伤性武器的,即我们要想取得良好的效果,只能将各种方法综合运用,这才是解决问题的最终方法,这个世界上不存在什么神奇的理论和方法,去消除“软件危机”。
2、大泥球:大泥球指的是设计糟糕,到处补丁,缝缝补补的软件,当时间与预算不足的时候,往往设计者在设计不充分的时候草率开始工程就会导致这种现象发生。
3、教堂:大教堂模式是指源代码在软件发布公开后,软件的每个版本均由一个专属的团队所管控。
4、集市:集市模式是指源代码在互联网上公开,供人开发和使用。
5、瀑布模型:瀑布模型是一个项目开发架构,从需求分析,项目设计,项目开发,到产品发布和维护,每个阶段都会产生循环反馈,如果在莫一阶段发生问题,则会返回到上一阶段进行修补。
瀑布模型有几大优势
·为项目提供了按阶段划分的检查点。
·当前一阶段完成后,您只需要去关注后续阶段。
·可在迭代模型中应用瀑布模型。增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。
·它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
6、敏捷开发思想:敏捷开发以用户需求为核心,采用迭代,循序渐进的方法进行软件开发,在敏捷开发过程中,将软件项目分解为多个子项目,每个子项目都可独立开发,分别完成,使得整个软件可以处于一直使用的状态。
二、接下来谈谈我在上完整个软件工程课后对上述概念的理解。
1、对于一个较大的项目来说,其工程复杂度和代码量是庞大的,我们不可能要求整个项目采用同一种开发模型,因此,我比较支持软件开发过程中没有银色的子弹这一说法,只有合理的运用不同的模式,才能达到更好的软件开发效果。
2、在我的个人项目中,我深刻的体会到大泥球对我开发的影响,由于之前设计阶段的考虑不周,导致接下来在软件开发过程中修改了很多设计上的漏洞,这些布丁尽管保证了我的程序能够正常正确的运行,但也破坏了我的程序的可读性和模块之间的独立性。总之要避免大泥球问题的存在,就应该在设计时多考虑一点,减少甚至杜绝意想不到的情况的发生。
3、我们团队项目的开发模型更加倾向于教堂模型,由我们团队内部开发,内部发布,软件的版本内部仅有我们团队自行管理。
4、瀑布模型是贯穿整个软件工程课程的设计思想,无论是在个人项目,结对编程,团队项目中,我们都在有意无意的使用着瀑布模型,从需求的分析,到项目设计,再到开发,无论哪一步遇到问题,都会返回到上一步重新考虑,这是一种比较常见的设计模式。
5、我们的团队项目本着敏捷开发的思想,每日的敏捷会议,整个工程的分解,任务的细化,总体来讲,取得了不错的效果,不仅PM能够每天及时了解我们的工作现状,也有力的督促了我们每个人的工作,另外PM还可以根据每个人遇到的问题对工作作出及时的调整。