2013年10月16日
摘要: 这是我第一次接触敏捷开发这个概念,因此如有错误之处还请老师指点。 首先,由于本人英语水平有限,对于老师给的网站内容并未十分理解,因此自己有单独找了一些敏捷开发的资料读了读,也转载了一部分作为以后学习的参考。 后来……发现……原来那个网站的文章有汉文版的,但是时间来不及看了,就先把自己目前的体会写一写,之后再去读一读改一改吧。 首先,什么是敏捷开发? 简单的说,敏捷开发一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。 那么,为什么会出现敏捷开发呢? 回顾软件开发时代共有如下几个阶段。 ... 阅读全文
posted @ 2013-10-16 01:32 磐鉐 阅读(325) 评论(0) 推荐(0) 编辑
摘要: 对于敏捷开发,我最大感悟是对于设计的可扩展,特别是对于项目需求变化大的项目,软件设计过程中灵活的利用设计模式来设计你的软件,最大的提高软件的可扩展性,提高软件的对于需求变化响应能力。进行项目设计的时候,必须要抑止住对于扩展性的考虑。这个方面不能考虑太多。考虑多了,项目成功率就会逐步下降。敏捷开发其实是基于最基本的经济学原理提出来的,那就是成本核算。以前普遍的观点认为,返工造成了大量的成本的浪费。而现在由于普遍推行的单元测试——特别是自动化单元测试,和高密度集成,使得设计的成本大幅度降低。由此不断返工造成的成本流失,已经被由于设计成本的降低所覆盖。由此所谓扩展性和灵活性所带来的成本优势,已经被其 阅读全文
posted @ 2013-10-16 00:41 磐鉐 阅读(409) 评论(0) 推荐(0) 编辑
摘要: 敏捷软件开发是为了防止项目开发中的过程膨胀而提出的。为此,成立了敏捷软件联盟,并创建了《敏捷软件开发宣言》。我对敏捷开发的感觉有以下几点:一、在开发过程中强调人以及人与人之间关系的作用。不但要求开发团队要有一个积极向上的氛围,同时还强调成员与成员之间的合作和交流。例如:每两名成员组成一对,共同开发一个功能,并且这种结对要至少每天更换一次。这就保证了信息在项目组内部的流通,同时知识也更容易传播。二、降低了工具的作用。在开发的过程中,应当优先使用简单的工具,直到证明这些简单的工具不再适用。三、在每次迭代中,要优先实现已确定的素材,其次再为下一次迭代的素材作打算。在每次迭代中,要以实现当前的素材为准 阅读全文
posted @ 2013-10-16 00:18 磐鉐 阅读(232) 评论(0) 推荐(0) 编辑
  2013年10月15日
摘要: 对敏捷开发的误解 误解一:敏捷对人的要求很高 很多人在尝试实施敏捷时说:敏捷对人的要求太高了,我们没有这样的条件,我们没有这样的人,因此我们没法敏捷。可是,敏捷对人的要求真的那么高么? 软件归根到底还是一种创造性活动,开发人员的技术水平和个人能力对软件的质量还是起着决定性的作用,各种过程与方法只是帮助开发人员、测试人员等角色能够更好的合作,从而产生更高的生产力。不管用什么方法,开发人员的水平永远都是一个主要的因素。 从另一个角度来看:过程和方法究竟能帮开发人员多大忙?对于技术水平较低的开发人员,敏捷方法和传统方法对他的帮助是差不多的,因此看不到显着的效果,甚至有些时候还有反效果;而随着开... 阅读全文
posted @ 2013-10-15 23:56 磐鉐 阅读(173) 评论(0) 推荐(0) 编辑
摘要: 敏捷开发的特点 敏捷方法主要有两个特点,这也是其区别于其他方法,尤其是重型方法的最主要特征: (1)敏捷开发方法是“适应性”(Adaptive)而非“预设性” (Predictive)。 这里说的预设性,可以通过一般性工程项目的做法理解,比如土木工程,在这类工程实践中,有比较稳定的需求,同时建设项目的要求也相对固定,所以此类项目通常非常强调施工前的设计规划。只要图纸设计得合理并考虑充分,施工队伍可以完全遵照图纸顺利建造,并且可以很方便地把图纸划分为许多更小的部分交给不同的施工人员分别完成。 然而,在软件开发的项目中,这些稳定的因素却很难寻求。软件的设计难处在于软件需求的不稳定,从而导致... 阅读全文
posted @ 2013-10-15 23:55 磐鉐 阅读(827) 评论(0) 推荐(0) 编辑
摘要: 项目的敏捷开发方法 敏捷方法很多,包括 Scrum、极限编程、功能驱动开发以及统一过程(RUP)等多种法,这些方法本质实际上是一样的,敏捷开发小组主要的工作方式可以归纳为:作为一个整体工作; 按短迭代周期工作; 每次迭代交付一些成果; 关注业务优先级; 检查与调整。下图是典型的敏捷过程总图,下面介绍其有关的特点。 1、敏捷小组作为一个整体工作 项目取得成功的关键在于,所有项目参与者都把自己看成朝向一个共同目标前进的团队的一员。“扔过去不管”的心理不是属于敏捷开发。设计师和架构师不会把程序设计“扔”给编码人员;编码人员也不会把只经过部分测试的代码“扔”给测试人员,一个成功的敏捷开发小组... 阅读全文
posted @ 2013-10-15 23:54 磐鉐 阅读(242) 评论(0) 推荐(0) 编辑
摘要: 敏捷开发的价值观 实际上敏捷开发运动在数年前就开始了,但它正式开始的标志是2001年2月的“敏捷宣言”(Agile Manifesto),这项宣言是由17位当时称之为“轻量级方法学家”所编写签署的,他们的价值观是:个人与交互重于开发过程与工具;可用的软件重于复杂的文档;寻求客户的合作重于对合同的谈判;对变化的响应重于始终遵循固定的计划。 个人与交互重于开发过程与工具的原因:一个由优秀的人员组成但使用普通的工具,要比使用优秀的工具但由普通人组成、紊乱的小组做得更好。多年来人们花了很多时间试图建立一种过程,以便把人当作机器上的一个可以替代的齿轮,但结果却并不成功。敏捷过程是承认每个人都有特定的.. 阅读全文
posted @ 2013-10-15 23:53 磐鉐 阅读(194) 评论(0) 推荐(0) 编辑
摘要: 敏捷开发的概述 简单的说,敏捷开发是一种以人为核心、迭代、循序渐进的开发方法。在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。敏捷开发的路线 Test-Driven Development,测试驱动开发。 它是敏捷开发的最重要的部分。在ThoughtWorks,我们实现任何一个功能都是从测试开始,首先对业务需求进行分析,分解为一个一个的Story,记录在Story Card上。然后两个人同时坐在电脑前面,一个人依照Story,... 阅读全文
posted @ 2013-10-15 23:51 磐鉐 阅读(241) 评论(0) 推荐(0) 编辑
  2013年10月9日
摘要: Pair project members:刘昊岩11061156,黄明源11061186 两周时间,工程下午刚刚结束,现做一些总结。 在现有工程基础上修改schedule 包下方法,主要思想是,也就是关键所在:电梯停的时候判断往哪里走,走的过程中顺路带人,电梯里有人先满足里面人的需求(就是直到把里面人全部送达目的楼层),然后回到电梯停的状态。主要代码框架如下(列个框架应该没问题吧): 1 public void Run() //scan the request and make correct decision to control elevator; 2 ... 阅读全文
posted @ 2013-10-09 01:22 磐鉐 阅读(302) 评论(0) 推荐(1) 编辑
  2013年9月25日
摘要: 1.代码量预计完成此项目需要300行代码量;实际完成此项目共写了262行。2.时间量预计完成此项目需要累计时间20小时(10小时突击C++相关知识,6小时编程,3小时调试,1小时做代码评测);实际完成此项目花费时间约25小时(突击与编程同时进行,其中翘代码时间约4小时,随敲随学的学习时间约16小时,调试时间4小时,代码评测时间半小时)。3.模块量预计完成需求需划分模块为:文件遍历,文件读写,数据统计,数据排序;实际完成需求划分模块为:文件遍历,文件读写,数据统计,数据比较,数据筛选,数据排序。4.功能量预计完成项目功能:需求中要求的所有功能;实际完成项目功能:所想到的所有情况均调试成功,测试用 阅读全文
posted @ 2013-09-25 04:48 磐鉐 阅读(174) 评论(0) 推荐(0) 编辑