个人阅读作业2
1.silver bullet
Of all the monsters that fill the nightmares of our folklore, none terrify more than werewolves, because they transform unexpectedly from the familiar into horrors. For these, one seeks bullets of silver that can magically lay them to rest. The familiar software project, at least as seen by the nontechnical manager, has something of this character; it is usually innocent and straightforward, but is capable of becoming a monster of missed schedules, blown budgets, and flawed products. So we hear desperate cries for a silver bullet--something to make software costs drop as rapidly as computer hardware costs do. ---BROOKS
银色子弹是摧毁狼人的武器,软件工程项目中将能够导致软件开销大幅度下降的方法也称为银色子弹。对于这“银色子弹”,结合本次团队项目---学霸网站,我对于面向对象这颗银弹接触最多也感触最深,学霸网站的代码是由学长用面向对象的方法写成的,我们小组接到这个代码,首先的任务就是阅读代码,添加注释。面向对象编程使得我们阅读代码更加轻松,也就使我们节省了很多不必要的时间浪费。时间对于所有人都是无价的,当然对于软件开发小组来说也是无价的,所以节省时间就是节省了一大笔software costs。面向对象方法是在早期面向过程发展到一定阶段后所生成的产物,计算机科学仍处于高速发展的阶段,这也预示着一定会有更强大的银弹的出现。
2.big ball of mud
我们项目是学霸网站,其架构看起来还是相当清晰的,但是细看来会发现一些小泥球,比如实体型的重复定义,导致有些实体的cs文件里面根本什么都没有。
3.Cathedral or Bazaar
通过阅读Cathedral and the Bazaar的维基百科解释,我了解了2个软件开发模式。Cathedral模式中在每一个版本的开发过程中,是由一个软件小组负责进行开发;在Bazaar模式中,代码是放在Internet上面的,任何人都可以进行代码的修改来进行开发。我们小组采用的是C模式,目前正在开发学霸网站的alpha版本。
4.Lost in CatB
该篇文章提出了对于Bazaar模式的质疑,因为在市集的建造中不能保证所有人提供的都是高效有质量的代码,也不能保证写代码的人对他所写的代码进行负责。我们小组出现过这种情况,比如一个成员签入自己所做的更改到团队服务器上之后,其他成员更新这个版本,就出现了无法运行的悲剧,不过后来经过反馈给签入的成员崩溃信息,问题都得到了圆满的解决。
5.Worse is better?
关于Worse is better的说法,我同意Richard P. Gabriel的观点:For us who are concerned with the success of OO programming, this (worse is better) is chiling --- the future will be in the hands of worst fruits.
6.瀑布模型的特点
瀑布模型将软件开发分为一个个小的阶段,分别是需求分析-》设计-》开发-》测试-》后期维护,任何一个阶段发现了问题,要返回上一个阶段对涉及的问题进行相关的修改。瀑布模型提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
7.Agile Method
我们小组采用的敏捷思想以及敏捷做法包括:小组成员之间面对面的交流,每天开一次scrum会议,自主管理(提交明日任务清单给PM,PM审核),每个人都对团队负责,有人落后了在适当的情况下给予帮助。
8.关于采用敏捷思想和方法
采用迭代式开发,在每一个迭代中可以满足用户不断变化的需求;每天的scrum meeting能对组内成员起到监督和督促的作用,提高了软件开发的效率;开发的产品可以在一定的时间内交付给用户,能给用户带来一定的即时效益等。