Inicialmente proposta por Scott Ambler em 2004, a Modelagem Ágil (MA) surgiu como a técnica mais indicada para as práticas de análise e comunicação de equipes que utilizam XP (Extreme Programming) e o Unified Process (UP) como metodologias de referência para o desenvolvimento. Considerada muito mais prática voltada à modelagem sistemas de software, do que uma metodologia formal, Ambler estabelece que a MA deve ser vista como “uma coleção de práticas, guiadas por princípios e valores que podem ser aplicados por profissionais de software no dia a dia. A MA não é um processo prescritivo, pois ela não define procedimentos detalhados de como criar um dado tipo de modelo. Ao invés disso, ela provê conselhos de como ser efetivo como modelador. A MA deve ser vista como uma arte, não como uma ciência”.
A aplicação das práticas da MA devem auxiliar as equipes equalizarem o conhecimento sobre o projeto do software, definindo “como” será feito o desenvolvimento durante uma iteração. Portanto, é uma exigência que os membros de uma equipe que pratiquem a MA conheçam pelo menos uma técnica de análise, para que tenham um protocolo único de comunicação entre seus membros. Nesse artigo trabalharemos com os modelos utilizados pela Análise Orientada a Objetos e os artefatos utilizarão como base os diagramas da UML (Unified Modeling Language).
Processo Unificado (UP)
O Processo Unificado (UP) foi concebido originalmente para ser uma metodologia voltada à gestão de projetos de desenvolvimento de software. Ele é um guia composto por um conjunto de disciplinas, as quais definem tarefas e atribuições úteis para nortear as atividades que resultarão na geração do software.
O processo inicia mediante as necessidades do negócio de clientes e seus usuários. A partir delas é possível que sejam estabelecidos prazos, custos e critérios de qualidade aceitáveis para o software ser entregue.
O Processo Unificado define que o planejamento deve ser iterativo e incremental. Dessa forma, a arquitetura do software deve ser baseada em componentes, tornando possível fazer um mapeamento eficiente de requisitos e promovendo uma melhor organização da especificação resultante da análise.
A fase de análise deve definir como o sistema funcionará internamente e de qual maneira os requisitos do cliente serão atendidos. Alguns aspectos devem ser considerados nessa fase de projeto do sistema, como: arquitetura do sistema, linguagem de programação utilizada, Banco de Dados (SGBD), padrão de interface gráfica, aplicação de frameworks, entre outros.
A Modelagem Ágil (MA) ocorre durante a fase de análise, quando é feita a documentação computacional do projeto do software. Nessa fase é estabelecido como o software será construído e precisa estar coerente com a descrição realizada pelos artefatos produzidos pela definição dos requisitos. Durante a etapa de análise, duas atividades básicas devem ser cumpridas:
- Projeto da arquitetura (ou projeto de alto nível): O projeto da arquitetura normalmente é realizado por um arquiteto de software, visando distribuir as classes de objetos relacionados do sistema em outros subsistemas em formato de componentes, distribuindo-os pelos recursos de hardware disponíveis para a aplicação;
- Projeto detalhado (ou projeto de baixo nível): Na fase de projeto detalhado são modeladas as relações de cada módulo com os objetivos do negócio, realizando o projeto de interface com o usuário, o banco de dados e as demais integrações sistêmicas.
Extreme Programming (XP)
O desenvolvimento com Extreme Programming (XP) foi criado no início dos anos 80 por Kent Beck e Ward Cunningham, baseado em experiências no desenvolvimento de sistemas em Smalltalk. O trabalho de ambos definiu uma nova maneira de desenvolver software, passando a utilizar conceitos que até então nunca haviam sido explorados por grande parte das equipes.
O modelo XP clássico abordava a aplicação de técnicas relacionadas à modelagem de domínios de sistemas, incluindo a padronização do código fonte, o uso de design patterns e a declaração das necessidades dos clientes em forma de cartões CRC (Class Responsibility Card). Tais diretivas simplificavam de forma significativa a documentação do processo de desenvolvimento de software.
Já em meados dos anos 90 e, envolvido diretamente com a doutrina do Movimento Ágil, Kent Beck estabelece as diretrizes daquilo que conhecemos hoje do modelo XP. Uma metodologia preparada para evidenciar de maneira formal e organizada os valores ágeis, postulando conceitos de transparência, responsabilidade, foco na prestação de contas ao cliente e efetuando entregas de software funcional ao final de cada iteração, tal como prega o Processo Unificado.
Em 2002, Scott Ambler incorpora ao modelo XP os princípios da Modelagem Ágil, definindo que durante o ciclo de vida
da iteração (semanal), as equipes de dese ...