Incorporando Práticas Ágeis aos Casos de Uso
Palestra ministrada no TDC 2016 (http://www.thedevelopersconference.com.br/tdc/2016/florianopolis/trilha-analise-de-negocios)
2. Eu sou Jean
Hauck
Dr. Engenharia do Conhecimento
Mestre em Ciência da Computação
Graduado em Ciência da Computação
Certified Professional for Requirements Engineering
Professor INE/CTC/UFSC
Site: https://www.inf.ufsc.br/~jeanhauck/
LinkedIn: https://br.linkedin.com/in/jeanhauck
Olá!
4. Graduação: Ciências da
Computação, Sistemas de
Informação
Pós-Graduação: Ciência
da Computação, Métodos e
Gestão em Avaliação
http://ine.ufsc.br/
5. http://www.gqs.ufsc.br/
“Pesquisa científica, desenvolvimento e transferência de
modelos, métodos e ferramentas de engenharia de
software, para apoiar a melhoria da qualidade e
produtividade de software.”
• Melhoria de Processos de Software (CMMI, MPS.BR, ISO/IEC 29110, ISO/IEC 15504, etc.)
• Gerenciamento de Projetos de Software
• Ensino de Engenharia de Software / Jogos Educacionais
• Interação Humano-Computador / Engenharia de Usabilidade
6. Agenda desta Palestra
◉ Casos de Uso
◉ Motivação para Use-Case 2.0
◉ Os seis Princípios
◉ Use-Case Slices e Stories
◉ Como utilizar na prática?
8. Histórico dos Casos de Uso
OOPSLA
87Conceito
apresentado
USE
CASE 2.0
2001
Manifesto
Ágil
Adoção
Inicial
1992
Livro: OOSE Use
Case Driven
Approach
1996
Use Cases
incorporados à
UML
Incorporando
práticas
ágeis
User
Stories
2011
9. “
Use Cases: a sequence of actions
a system performs that yields an
observable result of value to a
particular user.
Ivar Jacobson
[JACOBSON et al,
2011]
10. Ator
Um papel desempenhado
por um usuário ou qualquer
outro sistema que interage
com o sistema-alvo
(subject).
Conceitos de Casos de Uso
Caso de Uso
Um comportamento que um
sistema pode executar em
colaboração com um ou
mais atores. Um “diálogo“
entre atores e o sistema.
[OMG, 2015]
11. Narrativa
Texto em linguagem natural
que descreve o conjunto de
comportamentos realizados
pelos casos de uso.
Conceitos de Casos de Uso
[OMG, 2015]
Sistema
O “sujeito” ao qual se refere
o Caso de Uso. Aquele
responsável pelo
comportamento descrito no
Caso de Uso
17. Módulo de Vendas
UC01 - Cadastrar
Cliente
Atendente
UC02 - Emitir Pedido
Narrativa de Caso de Uso
18. Módulo de Vendas
UC01 - Cadastrar
Cliente
Atendente
UC02 - Emitir Pedido
FB – Fluxo Base
1. Atendente abre novo cadastro de Cliente
2. Atentente informa documento do Cliente
…
9. Sistema grava o novo cadastro
FA1 – Fluxo Alternativo 1 – Cliente com Compra
2.1. Atendente seleciona última compra do Cliente
2.2. Sistema carrega dados da última compra
2.3. Sistema calcula …
…
FA2 – Fluxo Alternativo 2 – Cliente sem Compra
…
FA3 – Fluxo Alternativo 3 – Crédito não Aprovado
…
Narrativa de Caso de Uso
19. Módulo de Vendas
UC01 - Cadastrar
Cliente
Atendente
UC02 - Emitir Pedido
FB – Fluxo Base
1. Atendente abre novo cadastro de Cliente
2. Atentente informa documento do Cliente
…
9. Sistema grava o novo cadastro
FA1 – Fluxo Alternativo 1 – Cliente com Compra
2.1. Atendente seleciona última compra do Cliente
2.2. Sistema carrega dados da última compra
2.3. Sistema calcula …
…
FA2 – Fluxo Alternativo 2 – Cliente sem Compra
…
FA3 – Fluxo Alternativo 3 – Crédito não Aprovado
…
Narrativa de Caso de Uso
FB FA1 FA2 FA3
24. “
Use-Case 2.0: A scalable, agile practice
that uses use-cases to capture a set of
requirements and drive the incremental
development of a system to fulfill them
Ivar Jacobson
[JACOBSON et al, 2011]
27. Os Seis Princípios para adoção
de Use-Case 2.0
Keep it Simple
Contar histórias é a
maneira mais simples e
eficaz para transmitir
conhecimento de uma
pessoa para outra. Os
Casos de Uso
fornecem uma maneira
de identificar e capturar
todas as histórias de
uma forma simples e
abrangente
The big Picture
Compreender o
sistema como um todo
é essencial. Um
diagrama de Caso de
Uso é uma maneira
simples de apresentar
uma visão geral dos
requisitos de um
sistema
Focus on value
Valor é gerado quando
um sistema é usado.
Os Casos de Uso
focam em como o
sistema é utilizado para
atingir um objetivo
específico para um
determinado utilizador.
[JACOBSON et al, 2016]
28. Slices
Sistemas podem ser
muito grandes, então
devem ser
implementados em
partes: identificar a
coisa mais útil que o
sistema deve fazer,
pegar essa
funcionalidade e cortar
em fatias finas, estimar
e começar a
implementar
Deliver in
increments
Sitemas grandes são
desenvolvidos/evoluem
em incrementos. Cada
incremento fornece
uma versão
demonstrável ou
utilizável do sistema.
Adapt
Não existe bala de
prata! Use-Case 2.0
deve ser adaptado à
realidade da
organização. A equipe
deve decidir se quer ir
além do essencial,
detalhando as histórias.
Os Seis Princípios para adoção
de Use-Case 2.0
[JACOBSON et al, 2016]
30. “
Use cases capture the requirements, and
each use case is scope managed by
slicing it up into a set of use-case slices.
Telling stories bridges the gaps between
the stakeholders, the use cases, and the
use-case slices.
Ivar Jacobson
[JACOBSON et al, 2016]
31. Use Case Slices
Uma ou mais histórias selecionadas e
agrupadas a partir de um Caso de Uso para
formar um item de trabalho que entrega valor
para o cliente
32. Módulo de Vendas
UC01 - Cadastrar
Cliente
Atendente
UC02 - Emitir Pedido
FB – Fluxo Base
1. Atendente abre novo cadastro de Cliente
2. Atentente informa documento do Cliente
…
9. Sistema grava o novo cadastro
FA1 – Fluxo Alternativo 1 – Cliente com Compra
2.1. Atendente seleciona última compra do Cliente
2.2. Sistema carrega dados da última compra
2.3. Sistema calcula …
…
FA2 – Fluxo Alternativo 2 – Cliente sem Compra
…
FA3 – Fluxo Alternativo 3 – Crédito não Aprovado
…
Narrativa de Caso de Uso
FB FA1 FA2 FA3
35. FB FA1 FA2 FA3
Cliente com
CompraCliente Comum
História
36. FB FA1 FA2 FA3
Cliente com
CompraCliente Comum Crédito Não
Aprovado
História
37. FB FA1 FA2 FA3
Cliente com
CompraCliente Comum Crédito Não
Aprovado
Crédito
Aprovado
História
38. FB FA1 FA2 FA3
Cliente com
CompraCliente Comum Crédito Não
Aprovado
Crédito
Aprovado
Slice UC01.01 Slice UC01.02 Slice UC01.03
39. Cliente com
CompraCliente Comum Crédito Não
Aprovado
Crédito
Aprovado
Slice UC01.01 Slice UC01.02 Slice UC01.03
Slicing
• Criar itens de tamanho
adequado
• Ajustar ao prazo e ao
orçamento
• Entregar o maior valor
para as partes
interessadas
• Evidenciar o
andamento do projeto
ou a compreensão das
necessidades
40. Scoped Prepared Analyzed
Implemente
d
Verified
Estados dos Use-Case Slices
Inserido no
escopo;
Histórias
identificadas
Narrativa
expandida;
Casos de Teste
definidos
Impacto nos
componentes
de software
entendido
Codificação
realizada e
pronta para
testes
Considerado
pronto para ser
incluído no
release
46. Slice UC01.01
Iníci
o
Módulo de Vendas
UC01 - Cadastrar
Cliente
Atendente
UC02 - Emitir Pedido
Primeiro
Incremento
Segundo
Incremento
Terceiro
Incremento
Quarto
Incremento
Release
Pronto
Slice UC01.01
Slice UC02.01
Slice UC01.02
Slice UC01.01
Slice UC01.02
Slice UC02.01
Slice UC01.01
Slice UC01.02
Slice UC02.02
Slice UC02.03
Slice UC01.03
Release
Candidate
[JACOBSON et al, 2011]
Sistema
Pronto
Sistema
Entregue
47. Em qual nível de Detalhe?
Seguindo o princípio de adaptar à realidade da
organização, os Casos de Uso podem ser
definidos em diferentes níveis de detalhe no Use-
Case 2.0
48. Limites do
Sistema
Estabelecidos
Modelo de
Casos de Uso
Narrativa de
Casos de Uso
Realização de
Casos de Uso
Caso de Teste
Requisitos
Complementare
s
Rascunho
Essencial
Melhorado
Valor
Estabelecido
Expandido
Expandido++
Itens
Numerados
Brevemente
Descrito
Estruturado
Essencial
Detalhadamente
Descrito
Elementos de
Implementação
Identificados
Responsabilida-
des Alocadas
Detalhadamente
Descrito
Cenários
Identificados
Ideias de Teste
Formuladas
Variáveis
Identificadas
Variáveis
Definidas
Scripts
Automatizados
Especificação
Simplificada
Esboçado
Modelado e
Ilustrado
Definido de
Forma
Abrangente
[JACOBSON et al, 2011]
49. Como utilizar na prática?
Algumas alternativas de Implementação
5
56. Alguma Pergunta ?
Entre em contato:
◉ jean.hauck@ufsc.br
◉ https://www.inf.ufsc.br/~jeanhauck/
◉ https://br.linkedin.com/in/jeanhauck
Obrigado!
57. Referências
JACOBSON, Ivar; Spence, Ian; Bittner, Kurt. USE-CASE 2.0 - The Guide to Succeeding with Use
Cases. Ivar Jacobson International, 2011. Disponível em:
https://www.ivarjacobson.com/publications/white-papers/use-case-ebook
JACOBSON, Ivar; Spence, Ian; Bittner, Kurt. USE-CASE 2.0 - The Hub of Software Development.
ACM Queue, January-February, 2016.
OMG – Object Management Group. OMG Unified Modeling Language TM (OMG UML), Version 2.5.
Technical report formal/2015-03-01, 2015. Disponível em: http://www.omg.org/spec/UML/2.5/
58. Credits
Special thanks to all the people who made and
released these awesome resources for free:
◉Presentation template by SlidesCarnival
◉Photographs by Unsplash
59. Licença
Atribuição-Uso-Não-Comercial-Compartilhamento pela Licença 2.5 Brasil
Exceto os materiais/imagens explicitamente referenciados*, você pode:
- copiar, distribuir, exibir e executar a obra
- criar obras derivadas
Sob as seguintes condições:
Atribuição — Você deve dar crédito ao autor original, da forma especificada pelo autor ou
licenciante.
Uso Não-Comercial — Você não pode utilizar esta obra com finalidades comerciais.
Compartilhamento pela mesma Licença — Se você alterar, transformar, ou criar outra obra com
base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta.
Para ver uma cópia desta licença, visite http://creativecommons.org/licenses/by-nc-sa/2.5/br/ ou
mande uma carta para Creative Commons, 171 Second Street, Suite 300, San Francisco, California,
94105, USA.
*Os materiais explicitamente referenciados seguem as licenças estabelecidas nos originais.