Você está na página 1de 64

Utilizando UML e Padres

Captulo 2 Iterativo, Evolutivo e gil

Objetivos
Fornecer motivao para o contedo e ordem das prximas aulas Definir um processo iterativo e gil
Definir conceitos Unificado fundamentais do Processo

O que vem a seguir?

Introduo
Desenvolvimento iterativo e evolutivo
Envolve a imediata programao e teste de um sistema parcial em ciclos repetidos Desenvolvimento comea antes que os requisitos tenham definidos em detalhe. A realimentao usada para esclarecer e aperfeioar as especificaes em evoluo.

Introduo
Modelo de ciclo de vida em cascata
Promove passos grandes de requisitos e projeto especulativos logo no incio, antes da programao. Diversos estudos demonstram que o ciclo em cascata fortemente associado s maiores taxas de falhas em projetos de software.

O que o PU? os outros mtodos so complementares?


Processo de desenvolvimento de software
Descreve uma abordagem para a construo, implantao e manuteno do software.

O PU um exemplo de um processo iterativo para o desenvolvimento de software orientados a objetos.


O RUP, um refinamento detalhado do PU muito adotado na prtica.

O que o PU? Os outros mtodos so complementares?


Este curso ter como base o PU Razes:
Flexvel e aberto Incentiva a incluso de prticas de outros mtodos iterativos
XP, Scrum, etc. Exemplo: prticas do XP de desenvolvimento guiado por testes, refatorao e integrao contnua podem ser usadas em um projeto PU.

E se o Processo Unificado no me interessar?


O PU usado neste curso como um processo exemplo
A/POO iterativos so ensinados no contexto de um processo.

As idias centrais deste curso so independentes de processo em particular:


Como pensar e projetar em termos de objetos Aplicar UML Usar padres de projeto Modelagem gil Anlise de requisitos evolutiva Escrever casos de uso Projeto de software

E se o Processo Unificado no me interessar?


Muitas destas tcnicas so usadas em mtodos modernos iterativos, evolutivos e geis
Scrum, Lean, DSDM, Feature Driven Development, Adaptative Software Development e outros.

O que desenvolvimento iterativo e evolutivo?


Tambm conhecida como desenvolvimento iterativo e incremental ou desenvolvimento evolutivo e em espiral

O que desenvolvimento iterativo e evolutivo?


O resultado de cada iterao um sistema executvel
Porm, incompleto Talvez sejam necessrias vrias iteraes para colocarmos o sistema em ambiente de produo.

O que desenvolvimento iterativo e evolutivo?


A sada de uma iterao no um prottipo descartvel
Desenvolvimento iterativo no prototipao A sada um subconjunto do sistema com qualidade final de produo.

O que desenvolvimento iterativo e evolutivo?


Como acolher mudanas em um projeto iterativo?
Embrace the Change, subttulo do famoso livro sobre XP do Kent Beck Enfatiza a atitude-chave no desenvolvimento iterativo:
A atitude de aceitar mudanas e adaptao como fatores inevitveis e essenciais.

O que desenvolvimento iterativo e evolutivo?


Como acolher mudanas em um projeto iterativo? (cont.)
O PU equilibra as necessidades de estabilizao e flexibilizao de requisitos. Cada iterao foca em um subconjunto dos requisitos que so entregues o quanto antes para o cliente Essa realimentao rpida fornece a percepo crucial para modificar ou adaptar a compreenso dos requisitos ou do projeto.

O que desenvolvimento iterativo e evolutivo?


Como acolher mudanas em um projeto iterativo? (cont.)
Alm de esclarecer requisitos, atividades como testes de carga provaro se o projeto e implementao parciais esto no caminho certo
Seno, deveremos mudar a arquitetura central do sistema nas prximas iteraes

Conseqentemente, o trabalho progride por meio de uma srie de ciclos estruturados em construoRealimentao-Adaptao

O que desenvolvimento iterativo e evolutivo?


A instabilidade dos requisitos e do projeto diminui com o tempo

Existem benefcios no desenvolvimento iterativo?


Menos erros de projeto, maior produtividade e menor taxa de defeitos
Comprovados por pesquisas sobre mtodos iterativos e evolutivos

Minimizao precoce de altos riscos Visibilidade para o cliente do status do projeto desde o incio

Existem benefcios no desenvolvimento iterativo?


Realimentao, envolvimento adaptao imediatos do usurio e

A equipe no contagiada pela paralisia da anlise


Lies aprendidas subseqentes. aplicadas em iteraes

Quo longa deve ser uma iterao? O que so limites temporais?


A maioria dos mtodos iterativos recomenda que a durao de uma iterao seja entre duas e seis semanas.
Iteraes tem limites temporais
Durao fixa No final da iterao o sistema parcial deve estar testado e integrado. Perca funcionalidades, mas no perca datas !

O que dizer do ciclo de vida em cascata?


Tentativa em detalhar a maioria dos requisitos antes da programao
Da mesma forma, criar um conjunto de modelos de projeto antes da programao Idem, criar um cronograma confivel logo no comeo do projeto.

O que dizer do ciclo de vida em cascata?


Diretriz: no deixe o raciocnio em cascata invadir um projeto iterativo ou PU
Escrever todos os casos de uso em detalhes antes da programao Fazer vrios modelos OO detalhados antes de comear a programar.

Por que o ciclo em cascata to propenso falha?


Modificao uma constante em projetos de software. Mtodos iterativos e evolutivos assumem e acolhem modificao e adaptao baseados em realimentao

Como fazer anlise e projeto iterativos e evolutivos?


Cuidado com o mal entendido de que nada vale a anlise e projeto antes da programao
Mal entendido to extremo quanto achar que uma anlise antecipada completa racional. Existe um meio termo.

Como fazer anlise e projeto iterativos e evolutivos?

O que planejamento iterativo guiado por risco e guiado pelo cliente?


O PU se baseia em planejamento iterativo guiado por risco e pelo cliente. Guiado pelo cliente:
Construir caractersticas que agreguem valor ao cliente

Guiado por risco


Desenvolvimento iterativo baseado na arquitetura. No dispor de uma arquitetura central e slida um risco alto e comum

Iteraes do curso vs. Iteraes de um projeto real


A iterao 1 dos estudos de caso deste curso guiada por metas de aprendizado
No centrada na arquitetura. Em um projeto real, trabalharamos nas coisas difceis e arriscadas primeiro.

O que so mtodos e atitudes geis?


No h definio precisa, pois as prticas especficas variam muito Porm, existem algumas caractersticas comuns aos mtodos geis
Iteraes curtas Refinamento evolutivo de planos, requisitos e projeto.

O que so mtodos e atitudes geis?


Prticas do mtodo gil Scrum:
Sala de trabalho comum Equipes auto-gerenciveis que se coordenam por meio de reunio diria.

Prticas do mtodo Extreme Programming (XP):


Programao em pares Desenvolvimento guiado por testes.

O PU flexvel pode incluir prticas do Scrum, XP e outros mtodos.

O manifesto gil
O Manifesto gil

Indivduos e interao
Software funcionando Colaborao com o cliente Responder mudanas

Mais que processos e ferramentas


Mais que documentao abrangente Mais que negociao contratual Mais que seguir um plano

O manifesto gil

Kent Beck Alistair Cockburn James Grenning Ron Jeffries Robert C. Martin Jeff Sutherland

Mike Beedle Martin Fowler Jim Highsmith Jon Kern Steve Mellor Dave Thomas

Arie van Bennekum Ken Schwaber Andrew Hunt Brian Marick Ward Cunningham

Os princpios geis

1 - Nossa maior prioridade satisfazer o cliente, atravs da entrega adiantada e contnua de software de valor.

Os princpios geis

2 - Aceitar mudanas de requisitos, mesmo no fim do desenvolvimento. Processos geis se adequam s mudanas, para que o cliente possa tirar vantagens competitivas.

Os princpios geis

3 - Entregar software funcionando com freqncia, na escala de poucas semanas ou meses, com preferncia aos perodos mais curtos.

Os princpios geis

4 - Pessoas relacionadas negcios e desenvolvedores devem trabalhar em conjunto e diariamente, durante todo o curso do projeto.

Os princpios geis

5 - Construir projetos ao redor de indivduos motivados. Dando a eles o ambiente e suporte necessrios e confiar que faro seu trabalho.

Os princpios geis

6 - O Mtodo mais eficiente e eficaz de transmitir informaes de e para um time de desenvolvimento, atravs de conversa frente a frente.

Os princpios geis

7 - Software funcionando a principal medida de progresso.

Os princpios geis

8 - Processos geis promovem um ambiente sustentvel. Os patrocinadores, desenvolvedores e usurios, devem ser capazes de manter um ritmo constante indefinidamente.

Os princpios geis

9 - Contnua ateno excelncia tcnica e bom design, aumenta a agilidade.

Os princpios geis

10 - Simplicidade: a arte de maximizar a quantidade de trabalho que no precisa ser feito.

Os princpios geis

11 - As melhores arquiteturas, requisitos e designs emergem de times auto-organizveis.

Os princpios geis

12 - Em intervalos regulares, o time reflete em como ficar mais efetivo, ento, ajusta e otimiza seu comportamento de acordo.

O que modelagem gil?

A finalidade da modelagem principalmente entender e no documentar.

O que modelagem gil?


Esta viso da finalidade da modelagem conhecida como modelagem gil.

O que modelagem gil?


Prticas e valores na modelagem gil:
A adoo de um mtodo gil no significa evitar a modelagem. Modelos para entendimento e comunicao e no para documentao No modele ou aplique UML todo ou maioria do projeto de software. Use a ferramenta mais simples possvel

O que modelagem gil?


Prticas e valores na modelagem gil (cont):
No modele sozinho Crie modelos em paralelos Use notao UML simples Os modelos vo ficar imprecisos e o cdigo ficar diferente. Os diagramas devem ser criados pelos desenvolvedores para si prprios

Fotografar os rascunhos UML?

O que um PU gil?
O grande conjunto de artefatos opcionais previstos no PU fez com que muitos pensassem erroneamente que o PU um processo pesado.
Na prtica, customizamos o PU, podendo inclusive gerar um PU gil
Exemplo: OpenUP/Basic

O que um PU gil?
Uma abordagem gil para o PU:
Prefira um conjunto pequeno de artefatos Requisitos e projeto no so completados antes da programao UML com modelagem gil No h um plano detalhado para todo o projeto.
Plano de fase Plano de iterao

H outras prticas importantes do Processo Unificado?


Idia central
Iteraes curtas, com durao fixa, em um processo de desenvolvimento iterativo, evolutivo e adaptativo

H outras prticas importantes do Processo Unificado?


Melhores prticas:
Atacar o quanto antes elementos de alto-valor/risco Envolver os usurios continuamente Construir o quanto antes a arquitetura principal. Verificar a qualidade com testes durante todo o ciclo de vida. Aplicar casos de uso quando adequado. Focar nos modelos essenciais UML Gerenciar requisitos Por em prtica o gerenciamento de solicitaes de mudana Implementar a Gesto de Configuraes

Estrutura do Processo Unificado

Disciplinas do Processo Unificado

Qual a relao entre disciplina e fases?

Como a estrutura deste curso influenciada pelas fases e disciplinas do PU?


Estudos de caso enfatizam as fases de concepo e elaborao Artefatos nas disciplinas:
Modelagem de negcios Requisitos Projeto

J que o foco do curso A/POO , padres de projeto e UML.

Estrutura do livro e do curso


Nos concentraremos nas Iteraes I, II e III da fase de elaborao

Como personalizar o processo?


Quase tudo opcional no PU
Porm, algumas prticas e princpios so invariveis
Desenvolvimento iterativo, orientado ao controle de riscos e verificao contnua de qualidade

Pasta de Desenvolvimento do PU
Artefato curto que documenta as escolhas de prticas e artefatos usados em um projeto.

Pasta de Desenvolvimento do PU

Voc fica sabendo quando no compreendeu o desenvolvimento iterativo ou PU quando...


Voc tenta de definir a maior parte dos requisitos ou projetos antes da implementao Voc gasta dias ou semanas em modelagem UML
Voc pensa que Concepo = Requisitos, Elaborao = Projeto, Construo = Implementao Voc pensa que usar o PU usar muita documentao

Voc fica sabendo quando no compreendeu o desenvolvimento iterativo ou PU quando...


Voc pensa que a fase de Elaborao define cuidadosamente os modelos traduzidos em cdigos na Construo
Voc acredita que a durao adequada de uma iterao de trs meses Voc tenta planejar um projeto em detalhes

Histrico
Dcada de 1970
Tom Gilb cria e publica o mtodo de desenvolvimento iterativo e incremental chamado EVO.

Final da dcada de 1980


O Departamento de Defesa dos Estados Unidos substitui os projetos com ciclo de vida em cascata para desenvolvimento iterativo e incremental Frederic Brooks escreve sobre a necessidade de usar mtodos iterativos e incrementais em detrimento ao ciclo de vida em cascata Barry Boehm um mtodo de desenvolvimento iterativo e incremental com modelo espiral guiado por riscos.

Histrico
Dcada de 1990
Desenvolvimento iterativo e incremental reconhecido como sucessor de mtodos em cascata Surgimento do PU, DSDM, Scrum, XP, etc...

Leituras recomendadas
Philippe Kruchten e Kroll

Philippe Kruchten

Leituras recomendadas
Kent Beck

Lembre-se que a maior parte das prticas do XP compatvel ou idntica s prticas do PU.

Você também pode gostar