个人阅读作业week7
一、瀑布
软件工程的瀑布模型是1970年由Winston Royce提出来的,即软件的开发按照一个严格的、顺序的、单次的瀑布流开发周期。例如需求分析阶段、概要设计阶段、详细设计阶段、编码实现阶段和测试阶段、部署阶段等等 。对于瀑布模型我们是很熟悉的,以前我们用的开发模式几乎都是瀑布模式。这学期的高级程序语言设计(二)这门课的老师也给我们讲过在解决一个编程问题时需要先分析,再设计,然后编码等等,这是很明显的瀑布流模式。而这次我们我们团队项目采用的开发方式是迭代模式。其实我觉得瀑布模式和迭代模式都是开发软件很好的方式,只是他们使用与不同的场合。瀑布模式适用于小型的软件开发,而迭代模式适用于大型软件或者系统的开啊。
二、大泥球
大泥球这个问题在之前我遇到过,但是不知道它就是大泥球。在最早的写代码中我写代码的时候由于代码量小,而且写一次代码之后我不会再去看他,所以我在程序结构上和变量的命名方式上没有多大的考虑,是要能够加快我的这次开发就行了。这造成了我的代码可读性比较差,而我也不喜欢读自己之前写的代码。然而在这次的团队项目中,我帮着团队中的Android客户端开发人员开发安卓项目。他将几十个源文件全放在同一个文件目录下,而且文件的命名没有统一的规范,这就造成了我在修改他的代码的时候经常找不到源文件在那里。就比如我想修改登录界面,按照我的命名规范我一般是将其命名为XXX_login
,而他将其命名为mainXXX
。所以我在修改他的代码时候要求他在一旁给我说在哪个文件下。而后来我将其工程重建,重命名源文件,而且按照源文件类建了不同的package,将源文件分别放到相应的包中,就比较好找了。关于大泥球这个问题我觉得这个也要看工程量的。不过为了养成良好的编程风格,我觉得我们还是需要一直编写有良好规范的代码。在一个团队中,我们需要在编写代码之前统一一下编程规范,而且在合作编程中要是返现队友有不复合代码规范的编码那就强制要求他改过来。
三、大教堂和市集
大教堂和市集是两种软件开发模式。大教堂模式(The Cathedral model)是指原始码在本模式是公开的,但在软件的每个版本开发过程是由一个专属的团队所控管的。而市集模式(The Bazaar model)是指原始码在本模式也是公开的,不过却是放在因特网上供人检视及开发。我们开开发模式自然是大教堂模式,我们的代码都是公开在github上的,而且每个版本都会更新到上面。我们的开发方法适合于我们这个项目,而我们的项目规模比较小。
四、关于敏捷开发
- 每日站立会议
每日站立会议是老师要求的,但是我觉得这个很有用,每天我们的队员在一起汇报一下今天完成的任务和规划一下明天的任务,这是很有实用价值的。我觉得最大的作用在于鞭策队员每日按时按量完成自己任务。 - Scrum
Scrum 是一个敏捷开发框架,我们团队是分为了不同的角色,PM,开发人员,测试人员。不同的角色做不同的事,大大提高了开发的效率。
五、软件工程的好处
软件工程在之前有了解过,但是没有用过,以前觉得理论的都是空的,但是真的用过软件工程的方法之后我觉得软件工程的方法确实在某些方法很有用。例如迭代,以前遇到一个大的问题不知从何入手,感觉完全没有方向就不知道怎么下手,总是想要找到一个完全的解决方案,然而在迭代中,每次开发一个小的版本,一点一点添加,最后形成最终版,我觉得这个很有用,可以一点一点去解决问题,至少能够尽快开始问题。又比如说极限编程,极限编程中有四个核心价值沟通(Communication)、简单(Simplicity)、反馈(Feedback)、勇气(Courage)。 XP用“沟通、简单、反馈、勇气”来减轻开发压力和包袱;无论是术语命名、专著叙述内容和方式、过程要求,都可以从中感受到轻松愉快和主动奋发的态度和气氛。这是一种帮助理解和更容易激发人的潜力的手段。XP用自己的实践,在一定范围内成功地打破了软件工程“必须重量”才能成功的传统观念。总之,软件工程的学习对于我们进行软件开发是很有好处的。