Você está na página 1de 29

Metodologias geis

Parte 1

Engenharia de Software

Motivao Respostas rpidas s mudanas:


Novas oportunidades e novos mercados; Condies econmicas; Movimentao dos concorrentes.

O requisito no-funcional Prazo de entrega muitas vezes o mais importante de um projeto. Requisitos estveis?!
Muitas vezes quando o software entregue j est desatualizado.

Engenharia de Software

Histrico Modelos tradicionais que seguem a ordem Anlise de Requisitos, Projeto, Construo, Teste e Implantao no atendem aos prazos necessrios. Abordagens para acelerar o desenvolvimento surgiram ainda na dcada de 1980 com o modelo incremental da IBM. A popularizao de mtodos geis comeou no final da dcada de 1990.

Engenharia de Software

Desenvolvimento Rpido Caractersticas comuns do desenvolvimento rpido:


As atividades de especificao, projeto e implementao so intercaladas e a documentao reduzida; O projeto desenvolvido em uma srie de verses (incrementos), e os requisitos podem ser alterados a cada verso; Interfaces de usurio so desenvolvidas interativamente com os usurios.

Engenharia de Software

Manifesto gil Em 2001, diversos adeptos de mtodos de desenvolvimento rpido reuniram-se, identificaram um conjunto de princpios bsicos comuns em suas prticas, e redigiram um documento para descrever estes princpios. Foi criado o Manifesto gil Alguns nomes de destaque desta reunio:
Martin Fowler Kent Beck Alistair Cockburn Dave Thomas ... e mais 13 profissionais do desenvolvimento de software
Engenharia de Software 5

Manifesto gil - Introduo

Engenharia de Software

12 Princpios do Software gil 1. A prioridade satisfazer ao cliente por meio de entregas contnuas e frequentes de software de valor. 2. Mudanas de requisitos so bem-vindas, mesmo em uma fase avanada do projeto. Processos geis esperam que a mudana traga uma vantagem competitiva ao cliente. 3. Entregas com frequncia de software funcional, sempre na menor escala de tempo, de algumas semanas a alguns meses, preferindo sempre um perodo curto. 4. As equipes de negcio e de desenvolvimento devem trabalhar juntas diariamente durante o projeto.
Engenharia de Software 7

12 Princpios do Software gil 5. Construa projetos objetivando manter uma equipe motivada, fornecendo ambiente, apoio e confiana necessrios para realizar o trabalho. 6. A maneira mais eficiente da informao circular entre a equipe de desenvolvimento por uma conversa face a face. 7. Ter software funcionando a medida primria do progresso. 8. Processos geis promovem o desenvolvimento sustentvel. Patrocinadores, desenvolvedores e usurios devem ser capazes de manter um ritmo constante.
Engenharia de Software 8

12 Princpios do Software gil 9. Ateno contnua excelncia tcnica e a um bom projeto aumenta a agilidade. 10. Simplicidade essencial. 11. As melhores arquiteturas, requisitos e projetos provm de equipes organizadas. 12. Em intervalos regulares, a equipe deve refletir sobre como se tornar mais eficaz, ento sintoniza e ajusta seu comportamento. http://www.agilealliance.org/
Engenharia de Software 9

Caractersticas Importantes Baixo impacto de mudanas durante o projeto. Agilidade, pouca documentao, porm muito disciplinados objetivo: tornar o desenvolvimento previsvel e eficiente. Metodologias geis so adaptativas em vez de predeterminadas. Orientados a pessoas e no a processos.

Engenharia de Software

10

Agilidade e Custo de Mudanas

Engenharia de Software

11

Metodologia Adaptativas Requisitos mudam, relacionamentos entre usurio e desenvolvedor mudam, por que os mtodos precisam ser fixos? Metodologias previsveis no atendem situaes imprevisveis. Metodologias adaptativas procuram reagir rapidamente s mudanas em vez de rejeit-las. A disciplina contnua, as mudanas so rpidas, porm, formais.

Engenharia de Software

12

Projeto x Cdigo A Engenharia de Software tem inspirao em outras reas de engenharia que enfatizam o planejamento antes da construo. Exemplo: RUP fortemente orientado por projeto e uso de diagramas UML. Defensores dos mtodos geis questionam a eficincia da atividade de projeto para posterior transformao em cdigos fontes. O cdigo o projeto, a gerao de executveis a construo.

Engenharia de Software

13

Desenvolvimento Iterativo Muito usado em processos previsveis (orientados a planos), essencial em metodologias geis. O plano de longo prazo usado como direcionador altamente mutvel. O plano de curto prazo representa uma fundao slida para cada iterao. Dilema: muitos clientes preferem contratos de custo fixo, porm, isso exige requisitos estveis.

Engenharia de Software

14

Avaliao de Projetos Metodologias tradicionais: planejado X realizado (custo, prazo e escopo)


Problema: o que ocorre quando o plano est errado?

Metodologias geis: retorno financeiro das funcionalidades entregues.


Problemas: difcil medio, influncia de outros fatores.

Engenharia de Software

15

Processos x Pessoas Metodologias tradicionais: o conhecimento est no processo.


Conceito herdado de teorias sobre administrao; sugerem que as pessoas que fazem o trabalho no so as melhores pessoas para descobrir a melhor forma de fazer o trabalho.

Mtodos geis: valorizao do indivduo.


Tratar as pessoas como peas substituveis do processo diminui a moral, a motivao e, consequentemente, a produtividade. Valorizar as competncias: as pessoas que realizam o trabalho so as melhores pessoas para decidir como o trabalho deve ser feito.

Engenharia de Software

16

Adaptabilidade do Processo Metodologia geis sugerem que ao final de cada iterao ocorra uma reunio rpida, respondendo s seguintes questes:
O que fizemos direito? O que aprendemos? O que podemos melhorar? O que nos intriga?

Engenharia de Software

17

Modelos de Processos geis

Engenharia de Software

18

FDD Feature Driven Development Concebida como um modelo prtico para o desenvolvimento orientado a objetos. Gerenciamento da complexidade pela decomposio baseada em funcionalidades, que devem ser entregues a cada duas semanas. Enfatiza:
Comunicao verbal Inspees constantes Colaborao Uso de padres

Engenharia de Software

19

FDD Viso Geral do Processo

http://www.featuredrivendevelopment.com/
Engenharia de Software 20

DSDM Dynamic Systems Development Methodology Metodologia gil com foco em atender prazos crticos atravs da prototipagem incremental. Princpios em destaque:
Os requisitos essenciais so fixados no incio para estabelecer os objetivos gerais do projeto, baseada na lei de Pareto 80% da aplicao pode ser entregue em 20% do tempo total do projeto. Todas as alteraes durante uma iterao devem ser reversveis. Teste em todo o ciclo de vida principalmente o de regresso. http://www.dsdm.org/
Engenharia de Software 21

Ciclo de vida DSDM Estudo de viabilidade: estabelece requisitos bsicos e restries. Avalia viabilidade do processo DSDM. Estudo do negcio: estabelece requisitos funcionais e determina arquitetura bsica. Iterao de modelos funcionais: produz prottipos incrementais e obtm feedback dos usurios. Iterao de projeto e desenvolvimento: transformao dos prottipos em software funcional. Implementao: coloca o sistema em funcionamento no ambiente real retorna a fase de iterao de modelos funcionais.
Engenharia de Software 22

ASD Adaptative Software Development Objetivo: agilidade na construo de software complexos. Foco na colaborao e auto-organizao. Ciclo de vida composto de trs fases que se repetem a cada iterao:
Especulao Colaborao Aprendizagem http://www.adaptivesd.com/

Engenharia de Software

23

Ciclo de vida ASD

Engenharia de Software

24

Famlia Crystal Consiste em um conjunto de mtodos com princpios comuns, porm com papis, processos e produtos de trabalho diferentes, de acordo com a complexidade do projeto. (Clear, Yellow, Orange, Red) Princpios importantes:
Entregas frequentes Comunicao intensa Melhoria reflexiva Segurana pessoal Foco Fcil acesso aos usurios experientes Integrao frequente com testes automatizados e gesto de configuraes Engenharia de Software

25

Ciclo de Vida da Famlia Crystal

http://alistair.cockburn.us/Crystal
Engenharia de Software 26

Pontos principais Metodologias geis surgiram a partir da necessidade de se acomodar mudanas mais facilmente durante o desenvolvimento de software. Principais motivadores so reduo de custos e entregas rpidas. Foco maior em comportamento e relacionamentos do que em processos. Existem diversas abordagens para se seguir os mesmos princpios bsicos da agilidade.

Modelos de Processos de Software

27

Exerccios 1. Alguns defensores dos mtodos geis afirmam que na Engenharia de Software o cdigo o projeto. O grupo concorda com esta afirmao? Justifique. 2. Como uma empresa que adote mtodos geis pode atender clientes que necessitem de oramento prvio do projeto para contratao? 3. Escolha 3 prticas ou princpios entre os modelos de processos geis que o grupo adotaria em seus processos. Justifique as escolhas. 4. Na opinio do grupo, qual a diferena mais relevante entre as metodologias geis e as tradicionais?
Engenharia de Software 28

Trabalho prtico
(este slide j estava na apresentao anterior)

Processo de software - 2 etapa:


Desenvolver as caractersticas da empresa que afetam a definio do processo de software:
Estrutura organizacional para o desenvolvimento de software. Caractersticas gerais dos produtos de software desenvolvidos. Tipos de clientes atendidos pela organizao (porte, segmento, tipo de controle, etc.). Modelo de contratao dos servios de desenvolvimento de software. Nvel de interao entre a organizao e seus clientes durante o processo de software. Quais outras caractersticas o grupo considera importantes para a definio do processo?

Modelos de Processos de Software

29

Você também pode gostar