讲座3通信卫星伊斯兰堡企业系统开发CSC

  • 幻灯片:33
下载演示文稿
讲座3 Comsats伊斯兰堡企业系统开发(CSC 447)穆罕默德Usman,助理教授

讲座3 Comsats伊斯兰堡企业系统开发(CSC 447)穆罕默德Usman,助理教授

敏捷开发2001:Kent Beck和其他16名软件开发人员,被称为“敏捷开发”

敏捷发展2001:肯特贝克和16名其他软件开发人员称为“敏捷联盟”,签署了“敏捷软件开发的宣言”。它指出:通过这项工作我们已经开始重视:在合同谈判的个人和超过了全面的文档客户协作流程和工具工作软件的交互响应以下的计划,是要改变了,虽然在右边的项目价值,我们重视左侧的项目。2

敏捷方法v敏捷软件开发是一组

敏捷方法v敏捷软件开发是一组基于类似原则的软件开发方法。v敏捷方法通常促进项目管理过程,该过程鼓励——频繁的检查和调整——一种鼓励团队合作的领导哲学——一套允许快速交付高质量软件的工程最佳实践,以及将开发与客户需求和公司目标相结合的业务方法3

什么是敏捷方法?v敏捷软件开发是一个概念的承诺框架

什么是敏捷方法?v敏捷软件开发是一个用于开展软件工程项目的概念框架。V大多数敏捷方法尝试通过在短时间内开发软件,称为迭代的软件来最小化风险,该软件通常可以持续一到四周。v每次迭代都是自己的微型软件项目,并包括释放新功能的迷你增量所需的所有任务。4.

q敏捷方法强调实时交流,最好是面对面的交流,

敏捷方法与传统方法q敏捷方法强调实时交流,最好是面对面的交流,而不是书面的文档。q像XP这样的敏捷方法依赖于与活动相关的普通人才的紧密协作,并且有能力灵活地安排功能的实现,以响应不断变化的业务需求。q参考:极限编程解释:拥抱改变作者:Kent Beck与Cynthia Andres;2005年第2版

不同的敏捷方法?•••极限编程(XP) Scrum敏捷建模适应性软件

不同的敏捷方法?•●极端编程(XP)Scrum敏捷建模自适应软件开发(ASD)晶体清晰和其他水晶方法动态系统开发方法(DSDM)功能驱动开发精益软件开发敏捷统一进程(AUP)6

极限编程•强调敏捷性的四个特征:沟通:不断的交换

简单性:选择最简单的设计或实现;勇气:承诺尽早、经常地交付功能;反馈:在开发过程中构建各种活动的循环

e.极限编程(XP)•哲学——采用已知的良好实践并推广它们

e.极限编程(XP)•哲学——采用已知的良好实践并推广它们to extremes • For example – “If code reviews are good, we’ll review code all the time” – “If testing is good, we’ll test all the time” – “If design is good, we’ll make it part of everybody’s daily business”

e.极限编程(XP)

e.极限编程(XP)

软件开发中的四个变量:成本、时间、质量、

XP的本质•软件开发中的四个变量:–成本、时间、质量、范围•四个价值观–沟通、简单、反馈和勇气•五个原则–提供反馈、假设简单、进行增量更改、接受更改、高质量工作•12个实践

XP的十二个方面•规划游戏(客户定义价值)•小版本

XP的十二个方面•规划游戏(客户定义价值)•小版本•隐喻(共同愿景、共同名称)•简单设计•先编写测试•重构•结对编程•集体所有权•持续集成(小增量)•可持续发展速度(40小时/周)•现场客户•编码标准

XP(极端编程)XP实践 - 计划游戏 - 程序员估算实施努力

XP(极限编程)XP实践-规划游戏程序员估计努力实现客户的故事和客户决定的范围和时机释放-短期发布新版本每两三个月,简单的设计,强调简单的设计-测试-测试驱动开发…* -重构结构调整和改变simplify – Pair Programming - 2 people at 1 computer 12

XP(极限编程)……XP实践-集体所有权-任何人都可以改变任何部分

XP(极限编程)……XP实践 - 集体所有权 - 任何人都可以随时更改代码的任何部分。- 一旦代码准备好 - 40小时 - 最多40次,即可连续集成 - 新建没有加班 - 现场客户 - 客户存在和可用的全职用于团队编码标准 - 存在规则,并随后 - 开放式工作区 - 大型房间小区 - 只是规则 - 团队有自己的规则,但可以在13岁的时间内更改

关键实践……规划——编写用户故事。—发布规划创建

关键实践….计划–编写用户故事。–发布计划创建时间表。–频繁发布小版本–测量项目速度。–项目分为迭代。–迭代计划开始每个迭代。–调动人员。–每天开始一次站立会议。–在XP出现时修复它aks.设计§简单性。§选择一个系统隐喻。(每个人都可以关联的对象的名称系统)§使用CRC卡进行设计会话。§创建尖峰解决方案以降低风险。§在任何可能的时候和任何可能的地方进行重构。14

关键实践编码––––客户总是可用的。代码必须

关键实践编码––––客户总是可用的。代码必须按照商定的标准编写。首先编写单元测试代码。所有生产代码都是成对编程的。一次只能有一对集成代码。经常集成。没有加班。§§所有代码都必须有单元测试。所有代码必须通过所有单元测试才能发布。当发现错误时,就会创建测试。 Acceptance tests are run often and the score is published. 15

>实践>“生命周期”现场客户编码标准隐喻重构客户

XP>实践>“生活圈”现场客户编码标准隐喻重构客户-团队-开发人员对-团队-客户验收测试单元测试对编程持续集成集体所有权简单设计可持续步伐发布计划协同>小型发布16

什么时候极端太极端?极限编程的实践是相互依赖的-一个漏洞

什么时候极端太极端?•极限编程的实践是相互依存的一个漏洞,如果其中一个是修改•需求表示为一组测试用例必须通过的软件,系统经过测试,但不是客户支付•重构问题——很难返工没有降解其架构的系统

•在橄榄球比赛中,Scrum是一种重新开始比赛的方式

Scrum•在橄榄球比赛中,Scrum是一种在中断后重新开始比赛的方式,例如在一次轻微犯规后。•“在Scrum期间,团队必须作为一个整体而不是8个人工作。每个人都有自己的角色。要记住的一个重要目标是,当你作为一个整体合作得很好时,整体要远远大于各个部分的总和。”在线橄榄球教练手册

什么是scrum?•scrum不是缩写的•scrum是 -  a

什么是Scrum?•Scrum不是缩写词•Scrum是一种基于团队的方法,用于在需求快速变化时迭代、增量地开发系统和产品•假设环境复杂、不可预测•它在每次迭代结束时产生一组可交付的功能

Scrum是如何工作的?••小团队(<10人)一系列

Scrum是如何工作的?••小团队(<10人)一系列Sprints (1 -4 weeks) Visible, usable increments Time-boxed

Scrum是如何工作的?

Scrum是如何工作的?

Sprint规则•总焦点 - 没有不需要的转移•从外部没有中断/变化•

Sprint规则•总焦点 - 没有不需要的转移•从外部没有中断/变化•团队可能会发现新的工作•非常XP-ISH 22

在Sprint期间会发生什么?•频繁、简短的Scrum会议

在Sprint期间会发生什么?•频繁,简短的Scrum会议•每个团队都会产生可见的,可用的增量•每个增量都会以先前的增量构建•明确定义的可交付成果和职责•每个团队成员购买分配23

什么是scrum会议?•短(15  -  30分钟)经常会议,促进

什么是Scrum会议?•由Scrum.Master主持的短期(15-30分钟)频繁会议•所有团队成员都会参加,甚至是远程工作者•一项活动——Scrum.Master向每位与会者提出3个问题24

这三个问题是什么?1.你完成了什么(相对于待办事项列表)

这三个问题是什么?1.您完成了自上次Scrum会议以来的(相对于积压)的内容?2.以完成这项工作的方式得到了什么?你现在和下一个scrum会议之间会做什么?25.

在Sprint的末期?••与所有利益相关方的状态会议。增量

在Sprint的末期?••与所有利益相关方的状态会议。增加增量。报告了惊喜。任何事情都可以更改,可以添加工作,消除,重新定位。•新的估算和团队分配是为下一个Sprint制造的。•可以取消该项目。“早期增量的经验允许项目进行更好的估计和规划。估计较短的发展时期始终始终更容易“26

Rational Unified Process••S/W Engineering Process Framework

Rational统一流程•·S/W工程流程框架流程产品工人、活动、工件、工作流

RUP阶段

RUP阶段

RUP的体系结构

RUP的体系结构

您不理解RUP,因为…•您认为–初始阶段=需求

当......时,你不明白RUP ......你认为 - Inception =要求 - Emaboration = Design - Construction =实现。•您认为阐述的目的是完全和仔细定义模型,这些模型在构造过程中被翻译成代码•您认为只在详细中创建原型•您尝试在开始设计或实现之前定义大部分要求。•您尝试在开始实施之前定义大部分设计•在编程开始之前花费“长时间”,在开始之前花费要求或设计工作•您尝试从开始完成项目,将工作分配给每次迭代。您试图推测地预测所有迭代•组织希望在进入阐述阶段之前对项目的可信计划和估计值

RUP支持•模板–http://sce.uhcl.edu/helm/rationalunifiedprocess/Templates.htm–http://pic.dhe。

RUP支持•模板–http://sce.uhcl.edu/helm/rationalunifiedprocess/Templates.htm–http://pic.dhe。ibm。Com/infocenter/reqpro/v 7 r 1 m 0/索引。jsp ?主题= / com。ibm。reqpro。帮助/ administ er /项目/ creating_modifying / r_rup_proj_te mplate。•工具- http: //www。理性的。 com. ar/tools/herramientas. h tml

S/W开发最佳实践••••迭代开发软件管理需求使用组件

S/W开发最佳实践•••迭代开发软件管理需求使用基于组件的架构可视化模型软件持续验证软件质量?对软件的控制变更

过程模型•••瀑布原型法RAD增量式螺旋敏捷- XP -

过程模型•••瀑布原型法RAD增量式螺旋敏捷- XP - SCRUM•RUP

Baidu