Curso de Requisitos
Módulo 02: UML e Orientação a
Objetos
Conceitos Básicos de UML e
Orientação a Objetos
O que é um Modelo?
• Um modelo é uma simplificação
da realidade
• Pode ser um modelo detalhado
• Pode ser um modelo mais
genérico
• Um bom modelo apresenta os
itens mais importantes e abstrai
os itens menos relevantes
• Um modelo pode enfatizar a
representação estrutural
(organização do sistema) ou
comportamental (dinâmica do
sistema)
Por que modelar?
• Nos ajuda a visualizar o sistema que
queremos
• Nos permite especificar a estrutura e o
comportamento do sistema
• Nos fornece um template que nos guia na
construção do sistema
• Permite documentar as decisões técnicas
A importância da modelagem
Os sistemas hoje são mais complexos do que podemos entender. Por isto,
modelamos
E quanto mais complexos e caros os sistemas, mais obrigatório se torna
modelar, para assim diminuir complexidade e testar conceitos em modelos que
se construídos antes seriam caros
Comunicação não Ambígua
• Você pode utilizar técnicas de
diagramação fornecidas pela UML para
comunicar decisões técnicas de forma
clara, não ambígua
• Existem ferramentas automatizadas para
criar estes diagramas UML
• Um exemplo é o JUDE, uma ferramenta
Open-source para modelar com UML
UML – Unifield Modeling Language
• É uma linguagem padrão da
indústria para visualizar, especificar,
construir e documentar os artefatos
de sistema
• A UML é independente de
tecnologia e define uma linguagem
gráfica para apresentar modelos,
assim como a semântica para cada
elemento gráfico
• A UML melhora a comunicação
entre os membros da equipe
A linguagem dos diagramas
• Os vários tipos de diagrama são necessários
para representar as diferentes visões do
sistema
Diagramas de
Sequência
Diagramas de
Colaboração
Diagramas
de Estado
Diagramas
Dinâmicos
Diagramas de
Casos de Uso
Diagramas
de Classes
Modelos
Diagramas de
Atividade
Diagramas de
Objetos
Diagramas de
Componente
Diagramas de
Deployment
Diagramas
Estáticos
Os quatro princípios da modelagem
• Princípio 01: A escolha do modelo é importante
– Depende da visão que se quer modelar
(comportamento ou estrutura?)
• Princípio 02: Os níveis de precisão podem variar
– Depende de quem é o consumidor do modelo (para o
cliente, um modelo de alto nível, para o
desenvolvedor um mais detalhado)
• Princípio 03: Os melhores modelos estão
conectados com a realidade
• Princípio 04: Um único modelo não é suficiente
– Pelo menos dois modelos são necessários, um para
comportamento (diagrama de sequência) e outro
para estrutura (diagrama de classes)
Principais diagramas utilizados
pelo Analista de Requisitos
• Diagrama de Casos de Uso
– Estabelece o escopo do sistema e todos os seus
possíveis usos pelos usuários (atores)
• Diagrama de Atividades
– Representa o fluxo de atividades que ocorrem em um
caso de uso em resposta às requisições do ator
• Diagrama de Classes
– Modela quais classes participam da realização do
caso de uso (estrutural)
• Diagrama de Sequência
– Modela qual é o comportamento das classes para
atender ao ator do caso de uso (comportamento)
Orientação a objetos
• Para entendermos melhor como modelar,
precisamos entender os conceitos básicos
de orientação a objetos
• A UML se baseia na Orientação a Objetos
• A Orientação a Objetos possibilita
representar a realidade nos modelos UML
• A Orientação a Objetos permite abstrair
itens e tornar relevantes outros itens
O que é um Objeto?
• Os objetos permitem representar
coisas do mundo real, como:
– Entidade Física: pessoas, carros,
documentos
– Conceitos: processo químico,
algoritmos
– Entidade de Software: Collections,
Telas
• Todos objetos tem 2 componenteschave:
– Atributos, que definem o estado do
objeto
– Operações, que definem o
comportamento do objeto
Entidade física
Entidade Conceitual
Entidade de software
Um objeto tem estado
• O estado de um objeto é
uma das condições
possíveis em que um
objeto pode estar
• O estado normalmente
muda com o passar do
tempo
• Representados por
atributos e seus valores
para cada objeto
Um objeto possui comportamento
• O comportamento de
um objeto é
representado pelas
operações que o
mesmo possui
• O comportamento é a
forma com que a
aplicação se
comporta em sua
interação com o
usuário
Um objeto tem identidade
• Cada objeto tem uma
identidade única,
mesmo que seus
estados tenham
valores idênticos
Princípios da Orientação a Objetos
•
•
•
•
Abstração
Encapsulamento
Modularidade
Hierarquia
O que é abstração?
• Uma abstração é modelar o que é mais
importante e suprimir ou ignorar detalhes pouco
importantes, diminuindo a complexidade
• A abstração captura a essência de algo
• Um carro é um exemplo de abstração para um
“um veículo movido a motor que transporta
pessoas de um local a outro local”.
• Abstrações dependem do contexto da
modelagem (se um sistema de locadora, de
recursos humanos, etc)
O que encapsulamento?
• Propriedades e comportamentos são
encapsulados em objetos e acessados através
de uma interface
• Um exemplo de encapsulamento é um
acelerador de carro. O motorista não precisa
conhecer quais os cabos, componentes e
tecnologia envolvidas, apenas apertar a
interface “pedal do acelerador”.
• Uma tela não precisa conhecer como um objeto
de cadastro de alunos funciona, apenas chama
a operação inserirAluno(dados), passando os
dados de cadastro do aluno
Benefícios do Encapsulamento
• O encapsulamento melhora a
manutenção e a torna menos
cara.
• Ao passar um valor para um
método, o estado interno de um
componente e seu
comportamento interno é alterado,
sem que os outros objetos
tenham conhecimento
• A complexidade fica isolada
dentro do objeto, e as demais
classes somente utilizam seus
serviços
O que é modularidade?
• Modularidade ajuda a
gerenciar complexidade,
dividindo algo que é
complexo dentro de peças
gerenciáveis
O que é Hierarquia?
• O uso de Hierarquia
ajuda a organizar
elementos, tornando
fácil reconhecer
similaridades e
diferenças
O que é uma Classe?
• É uma abstração de características comuns a
um conjunto de objetos
• Serve como template para criar objetos
• Uma classe possui propriedades e operações
Representando uma classe em UML
O que é polimorfismo?
• É a habilidade de esconder as diferentes
formas de agir (implementações) através de
uma única interface
Exemplo de Polimorfismo
Generalização e Herança
• Generalização é o relacionamento entre classes
em que uma classe compartilha sua estrutura e
comportamento com uma ou mais classes
O que é modelagem de casos
de uso?
• Associe necessidades a requisitos de software.
• Defina claramente as fronteiras do sistema.
• Capture e comunique o comportamento que é
desejado do sistema.
• Identifique quem ou o que interage
Modelo
com o sistema.
Use case 1
• Valide/Verifique requisitos.
Ator 2
• É um instrumento de
Use case 2
Planejamento.
Use case 3
Especificação
Caso de Uso 2
Um Modelo de Caso de Uso é essencialmente
Texto
O Sistema
Use case 1
Volta pelo Modelo de CSU
Ator 1
- Navegue pelos textos
- Liste todos os atores
- Liste todos os casos de uso
Use case 2
Ator 2
Use case 3
Ator 3
Especificação CSU 1 Especif. CSU 2
- Descrição breve
- Descrição Breve
- Fluxo de eventos
- Fluxo de eventos
Espec. CSU 3
- Descrição breve
- Fluxo de eventos
Elementos relevantes da Modelagem
Ator
Caso de Uso
Ator
Alguém ou alguma coisa
externa, que tem o papel de
interagir com o sistema
Caso de Uso
Representa alguma coisa de
valor que o sistema fornece
para os seus atores
O que é um Caso de Uso?
Nome do Caso de Uso
Um Caso
de Uso
Define a seqüência de ações
Realizado pelo sistema
Que produz um resultado de valor
Para um ator.
O Caso de Uso contêm os
Requisitos de Software
• Cada caso de uso
– Descreve ações no sistema que entrega algo de valor
para um ator.
– Apresenta a funcionalidade do sistema usada pelo
ator
– Modela o diálogo entre sistema e ator.
– É um fluxo de eventos completo e significativo dos
eventos da perspectiva de um ator em particular
Benefícios dos Casos de Uso
• Dá um contexto para os requisitos.
– Coloca os requisitos do sistema em seqüência lógica
– Ilustra porque o sistema é necessário.
– Ajuda a verificar se todos requisitos foram atendidos.
• São fáceis de entender.
– Usa terminologia que clientes e usuários utilizam.
– Fala de estórias concretas de uso do sistema
– Verifique o entendimento dos stakeholders
• Facilita o acordo entre os clientes.
• Facilita reuso: teste, documentação, e projeto.
Ciclo de Vida de Casos de Uso
Fechar Matrículas
Descoberto
Descrição Breve: Este caso de uso permite ao Digitador
Descreva
brevemente
Rabiscado
Totalmente
Descrito
fechar o processo de matrículas. Ofertas de curso que não
possuírem alunos serão canceladas. O sistema de Cobrança é
notificado com todos os dados de matrícula para assim efetuar
as devidas cobranças.
Resumo do Fechar Matrículas
-Fluxo de Eventos
-Passo-a-Passo
Fechar Matrículas Especificação de Caso de Uso
- Fluxo de Eventos detalhado
Requisitos Especiais
-Condições Pré/Pós
Definir Atores: Foco nos papéis
• Um ator representa
um papel que um
humano, hardware,
ou outro sistema
desempenha em
relação ao sistema.
• Os nomes de ator
devem representar
claramente seu
papel.
?
Atores e Papéis
Charlie: Está empregado como
professor de matemática e é aluno de
Economia.
Jodie: É um aluno de
Ciências.
Matricular
em Curso
Charlie e Jodie agem
como estudantes.
Estudante
Charlie também age
como Professor.
Submeter grades
Professor
Comunicação-Associação
Ator 1
Caso de Uso
Ator 2
Ator 3
• Um canal de comunicação
entre um ator e um Caso de
Uso.
• Uma linha é usada para
representar uma associação
de comunicação.
–Uma flecha indica quem inicia
cada interação.
–Uma linha se flecha indica que
o caso de uso ou o ator podem
iniciar a interação.
Convenções das setas e linhas
Sensor passivo
Monitorar
Alarmes
Supervisor
Sensor ativo
Sensor híbrido
Sensor passivo
Monitorar
Alarmes
Supervisor
Sensor ativo
Sensor híbrido
o Diálogo completo
O estudante acessa o sistema.
O sistema autentica o usuário.
Estudante requisita dados do
curso.
Estudante
Matricular
em Curso
Sistema de
Cadastro
de Cursos
Sistema apresenta a lista de cursos.
O sistema transmite a requisição.
Estudante seleciona curso.
O sistema retorna os dados do curso.
Sistema apresenta a agenda do curso.
Caso de Uso
Estudante
Matricular em
Curso
Cenário 1
Autenticar no sistema.
Aprova o login.
Digitar o assunto.
Obter lista de cursos.
Apresentar lista de cursos.
Selecionar Cursos.
Confirmar Disponibilidade.
Mostrar grade final.
Sistema de
Cadastro de Cursos
Cenário 2
Autenticar no sistema.
Aprova o login.
Digitar o assunto.
Assunto inválido.
Entra novamente assunto.
Obter lista de cursos.
Apresentar lista de cursos.
Selecionar Cursos.
Confirmar Disponibilidade.
Mostrar grade final.
Diagrama de Caso de Uso
Máquina de Auto Atendimento (ATM)
Sacar Fundos
Transferir Fundos
Consórcio de
Bancos
Cliente
Banco
Depositar Fundos
Coletar Depósitos
Caixa
Manter ATM
Manutenção
Exemplo: Sistema de Matrículas
Sistema de Matrículas
Estudante
Matricular em Curso
Sistema de Registro
de Cursos
Outro caso de uso
Ator X
Caso de Uso 3
Ator Y
Como deve ser o nome do caso de uso?
•
•
•
•
Indicar o significado ou objetivo do CSU.
Usa a forma ativa; começar com verbo.
Imagine uma lista de tarefas.
Exemplos de variação:
– Matricular em cursos
– Matriculando em cursos
– Confirmar Matrícula
– Matrícula em Curso
– Usar Sistema de Matrícula
Que variações tem maior significado para o usuário? Quais não tem?
Que nome de caso de uso você escolhe? Por que?
Passos para criar o Modelo de Casos de Uso
1. Procurar atores e casos de uso.
–Identifique e descreva brevemente os atores.
–Identifique e descreva brevemente casos de
usos.
2. Escreva os casos de uso.
–Desenhe todos os casos de uso.
–Priorize os fluxos de casos de uso.
–Detalhe os fluxos por ordem de prioridade.
Procure Atores
Quem está operando (interagindo com o sistema)?
Estudante
Digitador
Sistema de Matrículas
O sistema nunca digita no sistema; o digitador faz isto.
Ou, você está construíndo uma aplicação web?
Estudante
Sistema de Matrícula Online
(www.college.edu)
Identifique atores
• Quem/o que usa o sistema?
• Quem/o que obtêm informação do
sistema?
• Quem/o que fornece informação para o
cliente?
• Onde na empresa o sistema é usado?
• Quem/o que suporta ou mantêm o
sistema?
• Quais outros sistemas usam o sistema?
Descrição de um ator
Nome
Estudante
Descrição Breve
Uma pessoa que se
registra para um
curso.
Relacionamentos
com os casos de
uso
Matricular em Curso
Estudante
Caminhar pelo
Caso de Uso
Checkpoints para Atores
• Você encontrou todos atores? Você
modelou todos os papéis do sistema em
atores?
• O ator está envolvido com pelo menos um
caso de uso?
• Você poderia identificar pelo menos duas
pessoas que realizam o papel do ator?
• Alguns atores desempenham funções
semelhantes em relação ao sistema? Se
sim, colocá-los em um único ator.

Identificar Casos de Uso
Quais objetivos
desejo alcançar
utilizando o sistema?
Objetivo 1
Ator
Objetivo 2
Identifique os Casos de Uso
• Quais são os objetivos de cada ator?
–Porque o ator quer utilizar o sistema?
–O ator irá criar, guardar, mudar, remover, ou
ler dados no sistema? Se sim, porque?
–O ator precisa informar ao sistema sobre
mudanças ou eventos externos?
–O ator precisará ser informado sobre certas
circunstâncias do sistema?
• O sistema atende ao négocio com o
comportamento correto?
Descrição do Caso de Uso
Nome
Matricular em curso
Descrição Breve
O estudante seleciona os
cursos que deseja para o
próximo semeste. Uma grade
dos cursos primários e
alternativos são gerados.
Relacionamento
com atores
Matricular em curso
Estudante
Checkpoints para Casos de Uso
• O modelo de caso de uso apresenta o comportamento
do sistema; com ele é fácil de entender o que o sistema
ao revisar o modelo.
• Todos os casos de uso foram identificados; o caso de
uso conta com todos os comportamentos esperados
pelo ator com o qual interage.
• Todas as características estão mapeadas para pelo
menos um caso de uso.
• O modelo de caso de uso não contêm comportamento
supérfulo; todos os casos de uso podem ser justificados
ao rastreá-los de volta para os requisitos funcionais.
• Todos os casos de uso CRUD são removidos.
– Create, Retrieve, Update, Delete
Decomposição funcional
• É a quebra do problema em partes
menores, isoladas.
–As partes juntas fornecem a funcionalidade do
sistema.
• Muitas vezes não fazem sentido se isoladas.
• Casos de uso:
–Não há decomposição funcional.
–Mantêm a funcionalidade junta para descrever
o uso completo do sistema.
–Fornecer o contexto.
Decomposição Funcional
Inserir Cartão
Processar Transação
Consórcio
Bancário
Entrar PIN
Selecionar Conta Destino
Selecionar Transferência
de Fundos
Cliente
Entrar Quantidade
Selecionar Conta Origem
Selecionar Saque
Selecionar Saldo da Conta
Evite Decomposição Funcional
Sintomas
– Casos de uso pequenos
– Muitos casos de uso
– Casos de uso sem
resultado real
– Nomes com operações
de baixo nível
• “Operação” + “objeto”
• “Função” + “dados”
• Exemplo: “Inserir Cartão”
– Dificuldade de entender
o contexto geral
Ações Corretivas
– Procure um contexto
maior
“Porque está construíndo o
sistema?”
– Coloque-se no papel do
usuário
“O que o usuário quer obter?”
“Qual objetivo o caso de uso
deve satisfazer?”
“Qual valor o caso de uso
adiciona?”
“Qual é a história do caso de
uso?”
Decomposição Funcional: Um
exemplo corrigido
Sacar Fundos
Transferir Fundos
Consórcio
Bancário
Cliente
Depositar Fundos
Evoluir o Caso de Uso
Matricular
em Curso
Estudante
Sistema de Matrícula
em Curso
+ Descrição Breve
Matricular Online em Curso
+ Fluxo de eventos rabiscado
• Passos de alto nível
Especificação de Caso de Uso
do Matricular para Curso
+ Fluxo de Eventos detalhado
• Passo a Passo
+ Requisitos Especiais
+ Condições Pré/Pós
Casos de Uso e o RUP
Analisar o Problema
Entender
Necessidades do
Stakeholder
Use-Case Spec.
(outline)
Refinar o
Sistema
Especificação
de Caso de Uso
(detalhada)
?
Definir o Sistema
Gerenciar o
Escopo
Gerenciar Mudanças de
Requisito
Download

Curso Requisitos - UML e Orientação a Objetos