个人阅读作业week7

一、瀑布

软件工程的瀑布模型是1970年由Winston Royce提出来的,即软件的开发按照一个严格的、顺序的、单次的瀑布流开发周期。例如需求分析阶段、概要设计阶段、详细设计阶段、编码实现阶段和测试阶段、部署阶段等等 。对于瀑布模型我们是很熟悉的,以前我们用的开发模式几乎都是瀑布模式。这学期的高级程序语言设计(二)这门课的老师也给我们讲过在解决一个编程问题时需要先分析,再设计,然后编码等等,这是很明显的瀑布流模式。而这次我们我们团队项目采用的开发方式是迭代模式。其实我觉得瀑布模式和迭代模式都是开发软件很好的方式,只是他们使用与不同的场合。瀑布模式适用于小型的软件开发,而迭代模式适用于大型软件或者系统的开啊。

二、大泥球

大泥球这个问题在之前我遇到过,但是不知道它就是大泥球。在最早的写代码中我写代码的时候由于代码量小,而且写一次代码之后我不会再去看他,所以我在程序结构上和变量的命名方式上没有多大的考虑,是要能够加快我的这次开发就行了。这造成了我的代码可读性比较差,而我也不喜欢读自己之前写的代码。然而在这次的团队项目中,我帮着团队中的Android客户端开发人员开发安卓项目。他将几十个源文件全放在同一个文件目录下,而且文件的命名没有统一的规范,这就造成了我在修改他的代码的时候经常找不到源文件在那里。就比如我想修改登录界面,按照我的命名规范我一般是将其命名为XXX_login,而他将其命名为mainXXX。所以我在修改他的代码时候要求他在一旁给我说在哪个文件下。而后来我将其工程重建,重命名源文件,而且按照源文件类建了不同的package,将源文件分别放到相应的包中,就比较好找了。关于大泥球这个问题我觉得这个也要看工程量的。不过为了养成良好的编程风格,我觉得我们还是需要一直编写有良好规范的代码。在一个团队中,我们需要在编写代码之前统一一下编程规范,而且在合作编程中要是返现队友有不复合代码规范的编码那就强制要求他改过来。

三、大教堂和市集

大教堂和市集是两种软件开发模式。大教堂模式(The Cathedral model)是指原始码在本模式是公开的,但在软件的每个版本开发过程是由一个专属的团队所控管的。而市集模式(The Bazaar model)是指原始码在本模式也是公开的,不过却是放在因特网上供人检视及开发。我们开开发模式自然是大教堂模式,我们的代码都是公开在github上的,而且每个版本都会更新到上面。我们的开发方法适合于我们这个项目,而我们的项目规模比较小。

四、关于敏捷开发

  1. 每日站立会议
    每日站立会议是老师要求的,但是我觉得这个很有用,每天我们的队员在一起汇报一下今天完成的任务和规划一下明天的任务,这是很有实用价值的。我觉得最大的作用在于鞭策队员每日按时按量完成自己任务。
  2. Scrum
    Scrum 是一个敏捷开发框架,我们团队是分为了不同的角色,PM,开发人员,测试人员。不同的角色做不同的事,大大提高了开发的效率。

五、软件工程的好处

软件工程在之前有了解过,但是没有用过,以前觉得理论的都是空的,但是真的用过软件工程的方法之后我觉得软件工程的方法确实在某些方法很有用。例如迭代,以前遇到一个大的问题不知从何入手,感觉完全没有方向就不知道怎么下手,总是想要找到一个完全的解决方案,然而在迭代中,每次开发一个小的版本,一点一点添加,最后形成最终版,我觉得这个很有用,可以一点一点去解决问题,至少能够尽快开始问题。又比如说极限编程,极限编程中有四个核心价值沟通(Communication)、简单(Simplicity)、反馈(Feedback)、勇气(Courage)。  XP用“沟通、简单、反馈、勇气”来减轻开发压力和包袱;无论是术语命名、专著叙述内容和方式、过程要求,都可以从中感受到轻松愉快和主动奋发的态度和气氛。这是一种帮助理解和更容易激发人的潜力的手段。XP用自己的实践,在一定范围内成功地打破了软件工程“必须重量”才能成功的传统观念。总之,软件工程的学习对于我们进行软件开发是很有好处的。

个人博客作业week7的更多相关文章

  1. 个人博客作业Week7(阅读文章,心得体会)

    Alpha阶段结束了,内心可以说是五味杂陈.不是说我们的产品拿不上台面那般差劲,复杂的心绪主要来源于和别的队的比较,别的队才刚刚发布没多久访问量和注册量就破百了,并且还发起了找bug送红包的活动.可能 ...

  2. 【个人博客作业Week7】软件工程团队项目一轮迭代感想与反思

    (发布晚原因:发到团队博客了 一.关于银弹 在佛瑞德·布鲁克斯于1986年发布的<没有银弹:软件工程的本质性与附属性工作>这篇软件工程的经典论文中,作者向我们讲述了软件工程没有银弹这样的理 ...

  3. [个人博客作业Week7]软件工程团队项目感想与反思

    在阅读了推荐阅读的材料之后,我想了很多东西.最终还是决定,以团队项目的经历为主线,叙述我关于软件工程的一些思考与体会. 凤凰涅槃,浴火重生 如果要我来概况这几周团队项目的经历的话,那么句话是我所能想到 ...

  4. 个人博客作业-Week7

    团队任务中个人感想 我们团队选的题目是爬虫, 采用用AVA平台开发了, 我原来JAVA语言不熟悉了, PM考虑这部分之后分配任务这部分感觉很多谢 团队当中的PM很清楚每个组员的力量, 所以PM跟每个组 ...

  5. 个人博客作业Week1

    个人博客作业Week1 一.问题 通读<构建之法>我有一下几个问题 PM没有参与代码编如何进行管理. 软件工程师的职业资格考试对我们来说很有必要吗. 当我们为用户开发软件时我们需要了解用户 ...

  6. Java课程设计——博客作业教学数据分析系统(201521123084 林正晟)

    #课程设计--博客作业教学数据分析系统(201521123084 林正晟) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 学生登陆界面的前端实现和与数据库的连接 学生 ...

  7. Java课程设计——博客作业教学数据分析系统(201521123091 李嘉廉)

    #课程设计--博客作业教学数据分析系统(201521123084 李嘉廉) 1.团队课程设计博客链接 博客作业教学数据分析系统 2.个人负责模块或任务说明 數據分析 Kmeans聚類算法實現 多元綫性 ...

  8. java课程设计——博客作业教学数据分析系统(201521123083 戴志斌)

    目录 一.团队课程设计博客链接 二.个人负责模块或任务说明 三.自己的代码提交记录截图 四.自己负责模块或任务详细说明 五.课程设计感想 (题外话,终于可以用markdown建目录) 一.团队课程设计 ...

  9. Java课程设计——博客作业教学数据分析系统(201521123082 黄华林)

    Java课程设计--博客作业教学数据分析系统(201521123082 黄华林) 一.团队课程设计博客链接 博客作业教学数据分析系统(From:网络五条狗) 二.个人负责模块或任务说明 1.网络爬虫 ...

随机推荐

  1. PAT复杂度_最大子列和问题、最大子列和变种

    01-复杂度1. 最大子列和问题 给定K个整数组成的序列{ N1, N2, ..., NK },“连续子列”被定义为{ Ni, Ni+1, ..., Nj },其中 1 <= i <= j ...

  2. LL基本姿势

    在说怎么练习之前,先说说LL这个游戏里面的一些基本概念: 谱面元素(element) 谱面由一个个的音符组成,在LL中,音符(Note)分以下三类: 单点(下简称S,Single),同一时刻只有一个圆 ...

  3. CAS学习笔记(一)

    近期做单点登录,看了一些CAS资料,做下总结 一.cas简介 全名:Central Authentication Service 特点: 1.开源的.多协议的 SSO 解决方案: Protocols  ...

  4. JS获取当前浏览器的类型

    <script type=“text/javascript”> function isIE(){return navigator.appName.indexOf(“Microsoft In ...

  5. 【转载】jQuery动画连续触发、滞后反复执行解决办法

    转载: http://www.cnblogs.com/yuejin/archive/2012/12/18/2822595.html jQuery中slideUp .slideDown.animate等 ...

  6. PHP基础班初学心得:JS里inner的一些理解

    本人刚参加PHP基础班培训,由于之前毫无基础,分享的心得可能不规范,方法也许也"旁门左道",不能保证质量,只作自己总结学习,也希望能帮助到同样是初学者的朋友们,共同进步. 在这里分 ...

  7. sharepont 2013 隐藏Ribbon 菜单

    引用:C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.Web.Comma ...

  8. If you only do what you can do you'll never be more than you are now.

    If you only do what you can do you'll never be more than you are now. 如果你只是做你力所能及的事,你将不会有所进步:

  9. DNS-3

  10. nil、Nil、NULL、NSNull的区别

    nil:指向一个对象的空指针,对objective c id 对象赋空值. Nil:指向一个类的空指针,表示对类进行赋空值. NULL:指向其他类型(如:基本类型.C类型)的空指针, 用于对非对象指针 ...