Curso de Requisitos Módulo 02: UML e Orientação a Objetos Conceitos Básicos de UML e...

Post on 17-Apr-2015

111 views 0 download

Transcript of Curso de Requisitos Módulo 02: UML e Orientação a Objetos Conceitos Básicos de UML e...

Curso de RequisitosMódulo 02: UML e Orientação a

ObjetosConceitos 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 modelagemOs 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 deAtividade

Modelos

Diagramas Estáticos

Diagramas de Sequência

Diagramas de Colaboração

Diagramasde Estado

Diagramas deDeployment

Diagramas de Componente

Diagramas deObjetos

Diagramas de ClassesDiagramas de

Casos de Uso

Diagramas Dinâmicos

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 componentes-chave:– 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 com o sistema.• Valide/Verifique requisitos.• É um instrumento de

Planejamento.EspecificaçãoCaso de Uso 2

Ator 2

Use case 1

Modelo

Use case 2

Use case 3

Use case 1

Use case 2

Use case 3

Um Modelo de Caso de Uso é essencialmente Texto

Volta pelo Modelo de CSU- Navegue pelos textos - Liste todos os atores- Liste todos os casos de uso

Especif. CSU 2- Descrição Breve- Fluxo de eventos

Espec. CSU 3- Descrição breve- Fluxo de eventos

Ator 1

Ator 2

Ator 3

Especificação CSU 1- Descrição breve - Fluxo de eventos

O Sistema

Elementos relevantes da Modelagem

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

Ator

Caso de Uso

O que é um Caso de Uso?

Define a seqüência de ações

Realizado pelo sistema

Que produz um resultado de valor

Para um ator.

Um Casode Uso

Nome do Caso de Uso

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

Descoberto

Rabiscado

Descreva brevemente

Fechar Matrículas

Descrição Breve: Este caso de uso permite ao Digitador 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 detalhadoRequisitos Especiais-Condições Pré/Pós

Totalmente Descrito

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. ?

Charlie e Jodie agem como estudantes.

Charlie também age como Professor.

Estudante

Professor

Atores e Papéis

Matricular em Curso

Submeter grades

Charlie: Está empregado como professor de matemática e é aluno de

Economia.

Jodie: É um aluno de Ciências.

Comunicação-Associação• 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.

Ator 1

Ator 2 Ator 3

Caso de Uso

Convenções das setas e linhas

Supervisor Sensor ativo

Sensor passivo

Sensor híbrido

Supervisor

Monitorar Alarmes

Sensor passivo

Sensor híbrido

Sensor ativo

Monitorar Alarmes

Cada Associação de Comunicação é o Diálogo completo

Estudante Sistema de Cadastro de Cursos

Matricular em Curso

Sistema apresenta a lista de cursos.

Estudante seleciona curso.

Sistema apresenta a agenda do curso.

O estudante acessa o sistema.

O sistema autentica o usuário.

Estudante requisita dados do curso.

O sistema transmite a requisição.

O sistema retorna os dados do curso.

Um cenário de uma instância de Caso de Uso

Cenário 1Autenticar no sistema.Aprova o login.Digitar o assunto.Obter lista de cursos.Apresentar lista de cursos.Selecionar Cursos.Confirmar Disponibilidade.Mostrar grade final.

Cenário 2Autenticar 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.

EstudanteSistema de

Cadastro de Cursos

Matricular em Curso

Diagrama de Caso de Uso

Consórcio deBancos

Cliente Banco

Máquina de Auto Atendimento (ATM)

Caixa

Sacar Fundos

Transferir Fundos

Depositar Fundos

Manter ATMManutenção

Coletar Depósitos

Exemplo: Sistema de Matrículas

Sistema de Registrode Cursos

Estudante

Sistema de Matrículas

Ator XAtor Y

Matricular em Curso

Outro caso de uso

Caso de Uso 3

• 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

Como deve ser o nome do caso de uso?

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.

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?

Sistema de Matrícula Online(www.college.edu)

Estudante

Quem está operando (interagindo com o sistema)?Procure Atores

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 EstudanteDescrição Breve Uma pessoa que se

registra para um curso.

Relacionamentos

com os casos de

uso

Matricular em Curso

Estudante

Caminhar peloCaso 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

Ator

Objetivo 1

Objetivo 2

Quais objetivos desejo alcançar

utilizando o sistema?

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.

Relacionamentocom 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

Entrar PIN

Inserir Cartão

Selecionar Conta Origem

Entrar Quantidade

Selecionar Saque

Cliente

Selecionar Saldo da Conta

Selecionar Transferência

de Fundos

Selecionar Conta Destino

Consórcio Bancário

Processar Transação

Evite Decomposição FuncionalSintomas

– 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

Depositar Fundos

ClienteConsórcio Bancário

Evoluir o Caso de Uso

Especificação de Caso de Usodo Matricular para Curso

+ Fluxo de Eventos detalhado• Passo a Passo

+ Requisitos Especiais+ Condições Pré/Pós

Matricular Online em Curso+ Fluxo de eventos rabiscado

• Passos de alto nível

Estudante Sistema de Matrícula em Curso

+ Descrição Breve

Matricular em Curso

Casos de Uso e o RUP?

Analisar o Problema

Refinar o Sistema Gerenciar Mudanças de

RequisitoEspecificaçãode Caso de Uso

(detalhada)

Definir o Sistema

Gerenciar o Escopo

Use-Case Spec.(outline)

Entender Necessidades do

Stakeholder