博客补发-敏捷开发学习

参考资料:http://baike.baidu.com/link?url=Sr0U52SUMhFl0jdpQQM0BoER5P1gHx8jEul4Rfg518v9SLp0qg4C2c1Twb5KyYTh6B4Ght9m_AVlestiUHploa

敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

价值观

敏捷建模(Agile Modeling,AM)的价值观包括了XP(Extreme Programming:极限编程)的四个价值观:沟通、简单、反馈、勇气,此外,还扩展了第五个价值观:谦逊。

遵循原则

单一职责原则(SRP)

就一个类而言,应该仅有一个引起它变化的原因。

开放-封闭原则(OCP)

软件实体应该是可以扩展的,但是不可修改。

Liskov替换原则(LSP)

子类型必须能够替换掉它们的基类型。

依赖倒置原则(DIP)

抽象不应该依赖于细节。细节应该依赖于抽象。

接口隔离原则(ISP)

不应该强迫客户依赖于它们不用的方法。接口属于客户,不属于它所在的类层次结构。

重用发布等价原则(REP)

重用的粒度就是发布的粒度。

共同封闭原则(CCP)

包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。

共同重用原则(CRP)

一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么就要重用包中的所有类。

环依赖原则(ADP)

在包的依赖关系图中不允许存在环。

稳定依赖原则(SDP)

朝着稳定的方向进行依赖。

稳定抽象原则(SAP)

包的抽象程度应该和其稳定程度一致。

1. 快速迭代

相对那种半年一次的大版本发布来说,小版本的需求、开发和测试更加简单快速。一些公司,一年仅发布仅2~3个版本,发布流程缓慢,它们仍采用瀑布开发模式,更严重的是对敏捷开发模式存在误解。

2. 让测试人员和开发者参与需求讨论

需求讨论以研讨组的形式展开最有效率。研讨组,需要包括测试人员和开发者,这样可以更加轻松定义可测试的需求,将需求分组并确定优先级。 同时,该种方式也可以充分利用团队成员间的互补特性。如此确定的需求往往比开需求讨论大会的形式效率更高,大家更活跃,参与感更强。

3. 编写可测试的需求文档

开始就要用“用户故事”(User Story)的方法来编写需求文档。这种方法,可以让我们将注意力放在需求上,而不是解决方法和实施技术上。过早的提及技术实施方案,会降低对需求的注意力。

4. 多沟通,尽量减少文档

任何项目中,沟通都是一个常见的问题。好的沟通,是敏捷开发的先决条件。在圈子里面混得越久,越会强调良好高效的沟通的重要性。

团队要确保日常的交流,面对面沟通比邮件强得多。

5. 做好产品原型

建议使用草图和模型来阐明用户界面。并不是所有人都可以理解一份复杂的文档,但人人都会看图。

6. 及早考虑测试

及早地考虑测试在敏捷开发中很重要。传统的软件开发,测试用例很晚才开始写,这导致过晚发现需求中存在的问题,使得改进成本过高。较早地开始编写测试用例,当需求完成时,可以接受的测试用例也基本一块完成了。

时间: 2024-10-24 23:28:52

博客补发-敏捷开发学习的相关文章

博客补发-UML图学习之类图

参考资料:http://blog.csdn.net/jiuqiyuliang/article/details/8550281 UML的全称,统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件系统进行可视化建模的一种语言.UML为面向对象开发系统的产品进行说明.可视化.和编制文档的一种标准语言. 1.有助于按照需求对系统进行可视化的分析 2.能够系统的结构或行为 3.给出了知道构造系统的模板 4.对做出的决策进行文档化 UML的七种视图 我们主要用到静态

iOS开发-博客导出工具开发教程(附带源码)

前言: 作为一名学生, 作为一名iOS开发学习者, 我个人浏览信息包括博客, 更多的选择移动终端.然而, csdn并没有现成的客户端(不过有个web版的). 之前曾经看到一款开源的导出工具, 但是它是基于Windows平台的.导出的也仅仅是PDF格式.而且, 对于文章的导出, 需要精确URL.无法做到边浏览别导出. 另外, 我想实现的是, 可以在没有网络的情况下, 浏览自己收藏的文章.并且, 对于自己收藏的文章, 可以分类管理. 最关键的是, 对于自己的文章, 可以做一个备份.我曾经遇到过这样一

【.NET Core项目实战-统一认证平台】基于jackcao博客使用VSCode开发及感悟One搭建开发环境

原博客系列文章链接:https://www.cnblogs.com/jackcao/ 金焰的世界 感谢博主无私的奉献,感谢博主幼儿班的教学 基于jackcao博客使用VsCode开发及感悟One搭建开发环境 进入正文,原博主的文章适用于有一定基础的人,因此对于新手来说不算友好.因此此系列文章围绕如何搭建开发环境,如何跟着博主一步一步去学习理解这个平台. 很多初学者看着这一大堆东西,无从下手,遂从入门到放弃.我就从最简单的如何在windows上最小化开发开始,希望大家同我一起从入门到深入. 我的环

敏捷开发学习分享

程序员都很懒,你懂的! 敏捷不是快,而是拥抱变化(不断反馈的一个过程). 简单的说,敏捷开发是一种以人为核心.迭代.循序渐进的开发方法.在敏捷开发中,软件项目的构建被切分成多个子项目,各个子项目的成果都经过测试,具备集成和可运行的特征.换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态. 敏捷原则:主张简单,拥抱变化,可持续性,快速反馈,轻装前进. 敏捷思维:让开发过程轻量化(我们不是软件工厂).经验性过程更适合软件项目,需求是涌现式的

博客补发-MSF学习

参考资料:http://www.cnblogs.com/xinz/archive/2011/11/21/2257663.html MSF,即Microsoft Solution Framework,也就是微软推荐的做软件的方法. MSF简史:约摸在1994年,微软在总结了自己产品团队的开发经验和教训,以及微软咨询服务部门的业务经验后,推出了Microsoft 解决方案框架Microsoft Solution Framework(MSF).当时的MSF只是这些经验和教训的松散集合.在以后的几年中,

谈谈自己,开始写博客吧 -督促自己学习

本人屌丝一名,2011年上大学,误打误撞选了软件工程.计算机专业,由于自己学的时候觉得枯燥,也没有产生兴趣,所有课程都基本为了过60,然后放假回家,偶尔会有兴趣对所教的课程感兴趣,心血来潮的看个一两天.这样浑浑噩噩的日子一直延续到大三上学期结束. 那个寒假想了很多,想了自己的未来,分析以后自己到底能干神马...干这,干那,分析自己未来的路在哪里,大学毕业了,我不能还啃老哟,还有个女朋友.所以想来想去—— 一.自己好歹对这专业熟悉,知道这个专业在干什么. 二.虽说自己每次都是为了60分过,但是有时

敏捷开发学习笔记-Agile development(AM)

以人为核心,迭代,循序渐进 项目被切分为多个子项目,每个子项目都经过测试,具备集成和可运行的特征 5个价值观:沟通.简单.反馈.勇气.谦逊 敏捷模型与瀑布模型的区别 相对于瀑布模型,提高开发效率和响应能力 瀑布模型以文档为驱动,敏捷开发只写必要的文档,尽量少写文档,注重人与人之间面对面的交流,强调以人为核心. Scrum '争球' 15-30天一个冲刺 提交一个增量(新特性) 产品需求(pruduct backlog)->优先级排序->选择需求->冲刺会议(需求评审)-> 冲刺过程

Android请求网络共通类——Hi_博客 Android App 开发笔记

今天 ,来分享一下 ,一个博客App的开发过程,以前也没开发过这种类型App 的经验,求大神们轻点喷. 首先我们要创建一个Andriod 项目 因为要从网络请求数据所以我们先来一个请求网络的共通类. 思路: 1.把请求网络的方法放到一个类里面 2.创建一个接口将数据发给Activity 3.Activity 实现接口获得服务器返回的数据 4.解析数据 来我们一先来看第一步 请求网络 在这里请求网络我们用Volley .Volley是Android平台上的网络通信库,能使网络通信更快,更简单,更健

iOS_CNBlog项目开发 (基于博客园api开发)

按照惯例, 先上效果图 前言 很巧, 做这个项目是因为刚好在逛博客园的时候看到一篇文章 博客园第三方客户端-i博客园正式发布App Store, 这里就帮忙贴下链接啦, 毕竟我是由此而想说做这个项目的. 然而更巧的是, 和那篇文章的作者一样, 我也是刚毕业要找实习的人了(/(ㄒoㄒ)/~~), 开发容易找工不易, 哎, 做个项目练练手吧. 然后, 整个项目做下来大概做了半个月吧, 今天算是做出1.0版本啦, 已经贴上github(https://github.com/samAroundGitHu