Introdução
Extrair classe de requisitos ágeis a partir de cartões de história do usuário pode ser simples para
quem já tem prática e está acostumado no dia a dia de trabalho. Porém, dificilmente você aprenderá
isso em Disciplinas normais ou até mesmo em Cursos por aí que prometem muito.
Nesta Disciplina, você vai entender com exemplos como podemos fazer isso e sairá na frente em
qualquer processo seletivo. Podemos garantir.
Vamos conhecer, então, como as técnicas e as Metodologias modernas são utilizadas. A ideia aqui,
então, é trabalhar com requisitos ágeis e depois com a extração de classes, para que você entenda
de onde vem as tabelas que você usa quando modelam um Banco de Dados.
Vamos conhecer algumas definições rápidas de técnicas, que veremos:
Modelagem de caso de uso: é uma maneira de capturar requisitos funcionais e podem
ser usados para extrair classes. Um caso de uso representa uma interação específica
entre um usuário (ator) e o sistema. Ao analisar os cenários de caso de uso, é possível
identificar as principais entidades (classes) envolvidas e seus relacionamentos;
Domain-Driven Design (DDD): é uma abordagem que se concentra na compreensão do
domínio ou espaço do problema do software. Ele enfatiza a colaboração entre
especialistas do domínio e desenvolvedores. Com o DDD, você pode identificar classes
mapeando conceitos de domínio para as histórias de usuários. Essas classes
normalmente representam entidades-chave, objetos de valor, agregações e serviços
dentro do domínio;
Mapeamento de histórias de usuário: é uma técnica que ajuda na visualização e na
organização de histórias de usuários. Ao criar um mapa histórico de usuário, você pode
identificar histórias de usuários relacionadas e agrupá-las em atividades ou fluxos de
trabalho de Nível Superior. Esse processo pode revelar classes que estão envolvidas na
implementação dessas atividades ou fluxos de trabalho;
Cartões CRC (Class-Responsability-Collaboration): são cartões físicos ou virtuais usados
para representar classes, suas responsabilidades e colaborações. Durante uma sessão
colaborativa, os membros da equipe podem criar cartões CRC com base em histórias de
usuários. Cada cartão representa uma classe, e as responsabilidades e colaborações
associadas a essa classe podem ser identificadas por meio de discussões e de
brainstorming;
Behavior-Driven Development (BDD): é uma metodologia ágil que enfatiza a colaboração
entre desenvolvedores, testadores e partes interessadas do negócio. Os cenários BDD,
escritos em uma linguagem estruturada como, por exemplo, Gherkin, descrevem as
interações do usuário com o sistema e os comportamentos esperados. Ao analisar esses
cenários, é possível identificar as classes envolvidas no cumprimento dos
comportamentos desejados;
Object-Oriented Analysis and Design (OOAD): é uma abordagem tradicional para o
desenvolvimento de software, que se concentra na identificação de classes, seus
atributos, métodos e relacionamentos. Ele envolve técnicas como análise de caso de
uso, diagramas de sequência e diagramas de classe para extrair classes de histórias de
usuários. Pode ser usado em projetos Ágeis ao lado de outras Práticas Ágeis.
Já percebeu que o desafio é grande não é mesmo? Porém, queremos ressaltar que a escolha da
técnica ou da metodologia depende do contexto específico e das preferências da Empresa, ou até
mesmo da equipe. Isso envolve maturidade e, claro, experiência.