métodos ágeis de desenvolvimento2

14
MÉTODOS ÁGEIS DE DESENVOLVIMENTO (PARTE 2) Leonardo A Alves

Upload: grupoalvesnet-prof-leonardo-alves

Post on 23-Jun-2015

744 views

Category:

Documents


0 download

DESCRIPTION

material do segundo dia do curso de metodos ágeis para pós em eng de softwares

TRANSCRIPT

Page 1: Métodos ágeis de desenvolvimento2

MÉTODOS ÁGEIS DE DESENVOLVIMENTO (PARTE 2)

Leonardo A Alves

Page 2: Métodos ágeis de desenvolvimento2

MÉTODOS ÁGEIS A origem dos métodos ágeis está ligada à instabilidade do ambiente

tecnológico e o fato de o cliente estar freqüentemente incapacitado de definir as suas necessidades de maneira exaustiva no início do projeto.

O termo “ágil” faz assim referência à capacidade de adaptação às mudanças de contexto e as modificações de especificações que intervêm durante o processo de desenvolvimento.

Em 2001,17 pessoas estabeleceram assim manifesto ágil cuja tradução é a seguinte :

indivíduos e interações, mais do que processos e instrumentos desenvolvimento de software em vez de documentação exaustiva colaboração com o cliente em vez de negociação contratual abertura à mudança em vez de seguir um plano rígido

Graças aos métodos ágeis, o cliente é inteiramente o piloto do seu projeto e obtém muito rapidamente uma primeira produção do seu software. Assim, é possível associar os utilizadores ao início do projeto.

Page 3: Métodos ágeis de desenvolvimento2

MÉTODOS ÁGEIS - RAD

O “método de desenvolvimento rápido de aplicações” (em inglês Rapid Application Development, ou RAD), definido por James Martin no início dos anos 80, consiste num ciclo de desenvolvimento curto baseado em 3 fases (Enquadramento, Desenho e Construção) num prazo ideal de 90 dias e 120 dias no máximo.

Page 4: Métodos ágeis de desenvolvimento2

MÉTODOS ÁGEIS - DSDM

O método DSDM (Dynamic Software Development Method) foi criado apoiando-se no método RAD a fim de preencher algumas das suas lacunas, nomeadamente oferecendo um plano que tem em conta o conjunto do ciclo de desenvolvimento.

Os princípios fundadores do método DSDM são os seguintes: Participação dos utilizadores Um desenvolvimento iterativo e incremental Uma freqüência de entrega elevada A integração dos testes em cada etapa A aceitação dos produtos entregues depende diretamente da

satisfação das necessidades

Page 5: Métodos ágeis de desenvolvimento2

MÉTODOS ÁGEIS - UP

O método do Processo Unificado (UP para Unified Process) é um processo de desenvolvimento iterativo e incremental, o que significa que o projeto é recortado em fases muito curtas ao fim de cada uma das quais uma nova versão incrementada é entregue.

Trata-se de uma diligência que se apoia na modelagem UML para a descrição da arquitetura do software (funcional, lógica e física) e criação de casos de utilização que permite descrever as necessidades e exigências dos utilizadores.

Page 6: Métodos ágeis de desenvolvimento2

MÉTODOS ÁGEIS - RUP

RUP (Rational Unified Process) é um método de desenvolvimento por iterações promovido pela empresa Rational Software, comprada pela IBM.

O RUP propõe um método que especifica a composição das equipes e o cronograma, bem como diversos modelos de documentos.

Page 7: Métodos ágeis de desenvolvimento2

MÉTODOS ÁGEIS - XP O método XP (para eXtreme Programming) define diversas boas práticas

que permitem desenvolver um software em condições ótimas, colocando o cliente no meio do processo de desenvolvimento com relação estreita entre o cliente e a equipe de desenvolvimento.

O eXtreme Programming baseia-se nomeadamente nos conceitos seguintes:

Consiste em equipes de desenvolvimento trabalham diretamente com o cliente em ciclos muito curtos de uma a duas semanas, no máximo.

As entregas de versões do software acontecem muito cedo e a uma freqüência elevada para maximizar o impacto das reações dos utilizadores.

A equipe de desenvolvimento trabalha em colaboração total com base em binômios.

O código é testado e limpo ao longo de todo o processo de desenvolvimento.

Indicadores permitem medir o adiantamento do projeto para permitir a atualização do plano de desenvolvimento.

Page 8: Métodos ágeis de desenvolvimento2

MÉTODOS ÁGEIS – FDD FDD – Feature Driven Development, Em sua essência, FDD é

mais um método de gerenciamento de software do que um ciclo de vida de desenvolvimento de software.

Resumidamente, FDD é dividido em 5 fases: Shape Modeling – é uma forma de questionar se todos compreendem o que

é para fazer, analisar requisitos não-funcionais e modelo de arquitetura; Feature List – É a representação do escopo listando a compreensão do que é

para ser feito e os requerimentos a serem desenvolvidos; Plan by subject area – É a modularização da lista em conjuntos de

funcionalidades relacionadas, permitindo o desenvolvimento de parte do sistema autonomamente;

Design by feature set – É uma orientação que determina o desenvolvimento com base no domínio do problema. Sugere-se nesta fase uma modelagem profunda e detalhada em UML;

Build by Chief Programmer Work Package – É o empacotamento de pequenas funcionalidades, uma redução evolutiva que nasce na fase 2 até a fase 4. Prioriza-se este pacote, codificando sua funcionalidades e criando unit tests.

Page 9: Métodos ágeis de desenvolvimento2

MÉTODOS ÁGEIS – FDD

FDD define também 4 camadas de arquitetura de software:

● UI – User Interface; ● PD – Problem Domain (lógica do

negócio); ● DM – Data Management; ● SI – Systems Interfaces.

Page 10: Métodos ágeis de desenvolvimento2

MÉTODOS ÁGEIS – MSF

O MSF – Microsoft Solutions Framework: O MSF 4.2, possui duas novas instâncias: MSF for Agile Software Development e MSF for CMMI Process Improvement. O MSF se caracteriza por:

defender um ciclo mais curto com iterações de no máximo 4 semanas.

preservar a importância dos papéis definidos previamente e inibe a linha “todo mundo pode fazer tudo no projeto”.

Promover testes unitários e a preocupação com a cobertura de 100% do código fonte.

Page 11: Métodos ágeis de desenvolvimento2

MÉTODOS ÁGEIS – SCRUM SCRUM é um método de gerenciamento de software

que pode ser usado com XP ou MSF. É baseado na teoria do controle empírico de processos e seus fundamentos são originados na indústria de manufatura japonesa.

Segundo o SCRUM, o desenvolvimento deve ser trabalhado em 3 níveis: Sprint, Release e Product.

O ponto central é que os requisitos são convertidos em uma lista que contém valores do cliente chamada Product Backlog. Um sub-conjunto desta lista é criado e chamado de Release Backlog. Este sub-conjunto é particionado mais ma vez transformando-se em Sprint, uma espécie de acordo de desenvolvimento de funcionalidades que após aceito pela equipe não deve ser mais alterado.

Tem como característica a de que todos se auto-avaliam todos os dias (daily stand-up meeting) tornando possível resultados e técnicas de melhoria contínua.

Page 12: Métodos ágeis de desenvolvimento2

MÉTODOS ÁGEIS – SCRUM O gerente de projetos como conhecemos hoje, na

proposta SCRUM, é chamado de SCRUM Master.

Suas principais responsabilidades resumem-se em duas: Proporcionar a passagem técnica; e retirar todos os impedimentos.

A equipe do projeto é dividida em apenas 3 pápeis: o SCRUM Master (coach), o Product Owner e a equipe.

Page 13: Métodos ágeis de desenvolvimento2

METODOLOGIAS ÀGEIS

tempo

• Deve se manter constante• Prazo

Recurso

• Pode se manter constante• Desde que não interfira no prazo

Escopo

• Pode variar• Deve se adequar as realidade que

aparecerão

Page 14: Métodos ágeis de desenvolvimento2

PRÁTICAS ÁGEIS

Próximo encontro