Agile Modeling
Robson Godoi
Grupo de Estudos em Processos de Desenvolvimento
CIN - UFPE
Outubro 2002
Conteúdo








Objetivo
Introdução
Manifesto for Agile Software Development
Agile Modeling
Agile Modeling e XP
Agile Modeling e UP
Conclusões
Referências
Objetivo

Apresentar os conceitos de Análise de
Projetos Ágeis, mostrando as principais
caracteristicas da Agile Modeling
Conteúdo








Objetivo
Introdução
Manifesto for Agile Software Development
Agile Modeling
Agile Modeling e XP
Agile Modeling e UP
Conclusões
Referências
Introdução

Pesquisas indicam a pouca “qualidade” dos
softwares desenvolvidos.
Cronogramas e orçamentos estourados;
 Necessidades dos clientes não alcançadas;
 Má comunicação com o cliente.


A procura pela “bala de prata” (Brooks -1987)
Problemas: Complexidade, Conformidade,
Mutabilidade e Invisibilidade
 Soluções: Linguagem de alto-nível, Prototipação,
Desenvolvimento incremental e Bons
desenvolvedores.

Heavyweight x Lightweight

Heavyweight (Plan-driven)



Pregam planejamento extensivo, processos bem
definidos e rigoroso reuso para produzir uma atividade
de desenvolvimento eficiente e previsível.
Amadurecendo gradualmente para atingir a perfeição.
Lightweight (Agile)


Pregam planejar o suficiente, documentar o suficiente,
utilizar a individualidade, codificar de maneira simples
e eficiente, buscando a satisfação momentânea do
cliente.
Ser bom o suficientemente.
The Planning Spectrum
(Boehm - 2002)
Conteúdo








Objetivo
Introdução
Manifesto for Agile Software Development
Agile Modeling
Agile Modeling e XP
Agile Modeling e UP
Conclusões
Referências
Agile Manifesto





Fevereiro de 2001.
17 pessoas da área de desenvolvimento de
software se reuniram e formaram a Agile
Alliance.
Buscavam uma alternativa à processos
heavyweight de desenvolvimento do
software.
Incentivavam melhores maneiras de se
desenvolver software.
Formularam princípios que definem os
critérios para processos ágeis de
desenvolvimento.
Valores da Agile Alliance




Indivíduos e Interações mais que processos
e ferramentas.
Software operante mais que
documentações completas.
Colaboração do cliente mais que
negociações contratuais
Responder às mudanças mais que seguir
um planejamento
Conteúdo








Objetivo
Introdução
Manifesto for Agile Software Development
Agile Modeling
Agile Modeling e XP
Agile Modeling e UP
Conclusões
Referências
O que é um Agile Model ?

É um modelo bom o suficiente, nada mais,
que exibe as seguintes características:
Atende seu propósito.
 É inteligível.
 É suficientemente preciso.
 É suficientemente consistente.
 É suficientemente detalhado.
 Provê um valor positivo.
 É tão simples quanto possível.

Agile Modeling (AM)




É uma metodologia baseada na prática para
modelagem efetiva de sistemas baseados em
software.
A metodologia AM é uma coleção de práticas,
guiadas por princípios e valores que podem ser
aplicados por profissionais de software no dia a dia.
AM não é um processo prescritivo, ela não define
procedimentos detalhados de como criar um dado
tipo de modelo, ao invés, ela provê conselhos de
como ser efetivo na atividade de modelagem.
It’s “touchy-feely”, it’s not hard and fast – pense em
AM como uma arte, não como uma ciência.
O que é AM ?






É uma atitude, não um processo prescritivo.
É um suplemento aos métodos existentes, ele não é
uma metodologia completa.
É uma forma efetiva de se trabalhar em conjunto
para atingir as necessidades dos stakeholders do
projeto.
É efetivo e é sobre ser efetivo.
É uma coisa que funciona na prática, não é teoria
acadêmica.
É para o desenvolvedor médio mas não é um
substituto de pessoas competentes.
O que não é AM ?




Não é uma bala de prata.
Não é um ataque à documentação, pelo
contrário AM aconselha a criação de
documentos que tem valor.
Não é um ataque às ferramentas CASE.
Não é para todos.
Objetivos de AM



Definir e mostrar como colocar em prática
uma coleção de valores, princípios e práticas
pertinentes à modelagem efetiva e
lightweight.
Explorar como aplicar técnicas de
modelagem em projetos de software através
de uma abordagem ágil tal como XP, DSDM,
SCRUM e outros.
Explorar como melhorar a modelagem sob
processos prescritivos como os Unified
Process (UP), como o Rational Unified
Process (RUP) ou o Enterprise Unified
Escopo de AM
Valores de AM

Além dos valores definidos pela AA,
incorporou e estendeu os do XP:
Comunicação
 Simplicidade
 Feedback
 Coragem
 Humildade

Princípios centrais de AM











Simplicidade assumida
Mudanças são bem-vindas
O Software é seu objetivo principal
Se preparar para o problemas futuros é seu objetivo
secundário
Mudanças incrementais
Maximizar o investimento dos stakeholders
Modelar com um propósito
Múltiplos modelos
Trabalho de qualidade
Feedback rápido
Viaje leve
Princípios adicionais de AM







Conteúdo é mais importante que representação
Todos podem aprender com todos os outros
Conheça seus modelos
Conheça suas ferramentas
Adaptação local
Comunicação aberta e honesta
Trabalhe com o instinto das pessoas
Práticas centrais de AM













Participação ativa dos stakeholders do projeto
Aplique os artefatos certos
Propriedade coletiva
Considere a “testabilidade”
Crie vários modelos em paralelo
Crie conteúdo simples
Represente os modelos de forma simples
Apresente os modelos publicamente
Passe para os outros artefatos
Modele em pequenos incrementos
Modele com os outros
Prove, demonstre com código
Use as ferramentas mais simples
Práticas adicionais de AM








Aplique normas de modelagem
Aplique padrões “fáceis”
Descarte os modelos temporários
Formalize os modelos de contrato
Modele para comunicar
Modele para entender
Reutilize recursos existentes
Atualize somente quando doer
Conteúdo








Objetivo
Introdução
Manifesto for Agile Software Development
Agile Modeling
Agile Modeling e XP
Agile Modeling e UP
Conclusões
Referências
Agile Modeling e XP




XP inclui claramente atividades de
modelagem, mesmo que de forma implícita
(User stores, modelos Class Responsibility
Collaborator (CRC) e sketches).
Metodologia baseada em práticas (Proximidade
conceitual).
Alguns diagramas são melhores que muitas linhas
de código
Documentação é preciso, mas só a necessária.
Conteúdo








Objetivo
Introdução
Manifesto for Agile Software Development
Agile Modeling
Agile Modeling e XP
Agile Modeling e UP
Conclusões
Referências
Unified Process (UP)
Ciclo de vida para Enterprise UP (Superset do RUP)
Agile Modeling e UP



Princípios e práticas AM estão em UP,
mesmo que de forma implícita (Participação
ativa dos stakeholders, Aplique normas de
modelagem, aplique o artefato correto, etc).
Cultura da organização estar aberta aos
valores, princípios e práticas de AM
(Organizações não centradas em
documentação).
AM para aumentar a fluidez do processo.
Conteúdo








Objetivo
Introdução
Manifesto for Agile Software Development
Agile Modeling
Agile Modeling e XP
Agile Modeling e UP
Conclusões
Referências
Conclusões

AM parecer ser mostrou uma metodologia
bastante flexível e abrangente, permitindo
uma adapdação “facil” sobre diversas
metodologias existentes e consolidadas.
Conteúdo








Objetivo
Introdução
Manifesto for Agile Software Development
Agile Modeling
Agile Modeling e XP
Agile Modeling e UP
Conclusões
Referências
Referências


www.agilemodeling.com
www.agilealliance.com
Download

Agile Modeling e XP - Centro de Informática da UFPE