analise e desenho orientado a objecto · pdf filepassada ao objeto de destino através...

79
Analise e Desenho Orientado a Objecto Msc. Eng. Beldo A. J. Mário 826525385/[email protected]

Upload: duongtuyen

Post on 01-Feb-2018

219 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Analise e Desenho

Orientado a Objecto

Msc. Eng. Beldo A. J. Mário

826525385/[email protected]

Page 2: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Eng. de Sw.

Page 3: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

• Métodos: proporcionam os detalhes de

"como fazer"para construir o software.

• Ferramentas: fornecem suporte

automatizado ou semi-automatizados aos

métodos.

• Processos: é a fundação da engenharia de

software, provendo a sustentação e

relacionamentos entre as camadas

• Foco na qualidade: garante toda qualidade

do software gerado.

Page 4: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Modelos de Processo

• Uma linguagem de modelagem não é suficiente

precisamos também de um processo de

desenvolvimento

• Linguagem de modelagem + processo de

desenvolvimento = método (ou metodologia) de

desenvolvimento.

Page 5: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Metodologia de Desenvolvimento de

Software

• Especificação de Software

• Projeto e Implementação de Software

• Validação de Software

• Evolução de Software

Page 6: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Metodologias (O Ciclo de Vida do

Desenvolvimento de Sistemas)

Page 7: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Metodologias Ágeis

• Extreme Programming (XP)

• Scrum

• Feature Driven Development ( FDD )

Page 8: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Metodologia de Analise e Desenho

Orientado a Objecto

Page 9: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Análise de Sistemas

Page 10: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Objetivos Básicos:

• Desenvolver a especificação lógica, independente do Software e Hardware utilizado.

• Elaborar um Modelo de Sistema (Ex: Planta de uma Casa)

• Analisar as características importantes ao sistema, tais como, levantamento dos dados, processos e informações que usuário necessita.

• Documentar o processo de análise, para que se tenha uma fidelidade no momento da construção do Software por parte dos projetistas e Desenvolvedores.

Page 11: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Analise Orientado a Objecto

• A AOO é formada por um conjunto de objetos que

interagem entre si, apresentam características

próprias representadas pelos atributos e operações.

• A Análise Tradicional baseia-se na idéia que um

sistema é um conjunto de programas que executam

processos sobre os dados.

Page 12: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Motivos que Levaram ao

surgimento da AOO

• Dificuldade de resolver problemas complexos com

o uso das análises tradicionais

• Surgimento de linguagens de Programação

Orientada a Objetos (C++)

• Necessidade de Desenvolvimento de sistemas

baseado em Real Time com muito mais freqüência

Page 13: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Justificativa de Mudança

• “Objetos já existem na natureza antes de haver

qualquer tipo de aplicação deles pelo negócio:

Equipamentos, pessoas, minerais, etc..., existem

por si só, apresentam características representadas

por seus atributos e, adiante, pelo seu

comportamento no mundo real”.

Page 14: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Problemas da Análise e Projeto

Orientado a objetos

• Fundamentação teórica da AOO não é simples

• Os SGBDs ainda não são totalmente orientado a objetos

• A mudança de mentalidade e introdução de uma nova

tecnologia sempre traz receio

• Existência de várias abordagens para APOO

Page 15: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

UML – Unified Modeling Language

ou Linguagem de Modelagem

Unificada

• é uma linguagem visual utilizada para modelar

softwares baseados no paradigma de orientação a

objetos.

• a UML não é uma linguagem de programação, e sim

uma linguagem de modelagem

• podendo ser utilizada por muitos processos de

desenvolvimento diferentes ou mesmo da forma que

o analista considerar mais adequada.

Page 16: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Histórico da UML

• Nos anos 90, conhecida como a época da “guerra

dos métodos”, vários métodos coexistiam com

notações muitas vezes conflitantes entre si. Dentre

estes, os mais conhecidos eram:

• OMT (Object Modelling Technique) de Rumbaugh;

• Método de Booch;

• OOSE (Object Oriented Software Engineering) de

Jacobson;

Page 17: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

A importância da Modelagem

• A modelagem consiste em construir um modelo visando

reduzir a incerteza do Software, aproximando-se ao

máximo a expectativa da realização. A modelagem

Orientada a Objetos tem como objetivo:

• Padronizar,

• automatizar,

• incentivar a reutilização de componentes e aumentar a

maturidade em uma equipe de desenvolvimento de um

projeto.

Page 18: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

UML – Unified Modeling

Language

Características:• Uma tentativa de padronização das linguagens de modelagem para

ADOO criada a partir da Rational Corporation (http://www.rational.com)e aprovada pela OMG –Object Management Group(http://www.omg.org).

• A UML não é uma metodologia e sim uma linguagem de modelagemque procura integrar as melhores práticas existentes no mercado.

• “É uma linguagem para especificar, visualizar e construir os artefatos desistemas de software...”.

• “É um sistema de notação dirigida à modelagem de sistemas, usandoconceitos orientados a objetos”.

• Tem se tornado um padrão mundial utilizado por desenvolvedores,autores e fornecedores de ferramentas CASE.

• É independente de linguagens de programação OO.

Page 19: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

A UML pode ser usada para :

• Mostrar as fronteiras de um sistema e suas funções utilizandoatores e casos de uso

• Ilustrar a realização de casos de usos com diagramas de interação

• Representar uma estrutura estática de um sistema utilizandodiagramas de classe

• Modelar o comportamento de objetos através dos diagramas detransição de estado

• Revelar a arquitetura de implementação física com diagramas decomportamento e de implantação

• Entender sua funcionalidade através de estereótipos.

Page 20: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Conceitos Básicos da Orientada a

Objetos

• Conceitos e Princípios

• Objeto

• Encapsulamento

• Mensagens

• Tipos, Classes

• Herança

Page 21: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Objeto

• um dos principais elementos AOO é o próprio

objeto. Um objeto nada mais é que uma ocorrência

específica de uma classe e é similar a uma entidade

no modelo entidade / relacionamento até no ponto

que uma coleção de dados une-se para formar um

tema em comum.

• Um objeto pode ser: Concreto ou abstrato

Page 22: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Notação de objeto em UML

Page 23: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Classe

• É uma coleção de objetos que podem ser descritos

com os mesmos atributos e as mesmas operações.

Representam uma idéia ou um conceito simples e

categoriza objetos que possuem propriedades

similares. Todos os objetos de uma classe possuem

as mesmas definições, mas podem possuir valores

diferentes nos dados, respondendo de modo

diferente as mensagens enviadas.

Page 24: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

A classe Pessoa deverá ter atributos e

métodos comuns

Page 25: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Classe e Objeto

Page 26: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

SuperClasse e SubClasse

• Na criação de classe existe a possibilidade de ocorreruma conexão de elementos no modelo Pai / Filho emque uma classe filha ( Subclasse ) herda as propriedadesde seu pai ( superclasse ) direta ou indiretamente.

• Cada classe pode ter suas propriedades particularesherdadas diretamente da classe pai, podendo sersubstituídas ou mascaradas nessa transição. Novaspropriedades poderão ser acrescentadas a classe filha.Todo esse processo narrado acima descreve mais umdos princípios da orientação a objeto:

• Herança.

Page 27: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Herança

• É a capacidade de um novo objeto tomar atributos e

operações de um objeto existente, permitindo criar

classes complexas sem ter que repetir o código.

• Se uma classe herda comportamento e atributos de

mais de uma classe damos a ela o nome de herança

múltipla, uma variação semântica de generalização,

na qual um tipo pode ter mais de um supertipo.

Page 28: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Exemplo:

Page 29: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Mensagens

• Os objetos se comunicam através de mensagens, isto é, um sinalé enviado a um objeto requisitando um serviço, as operações sãoexecutadas e o resultado da operação é enviado ao objetosolicitante.

• Uma mensagem é a chamada de uma função de um objeto, oacionamento de uma operação encapsulada no objeto de destino,feita a partir do objeto de origem. A informação transmitida épassada ao objeto de destino através dos parâmetros de umafunção, enquanto a resposta é passada pelo parâmetro de retornoda função.

• Para que os objetos se comuniquem é necessário que haja algumtipo de ligação / vínculo entre eles. Esses vínculos podem serrelacionamentos entre os objetos.

Page 30: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Polimorfismo

• É a propriedade que o emissor de uma mensagemnão precisa saber a instância da classe que recebeesta mensagem. Essa propriedade leva ao fato deque uma mensagem pode ser interpretada de váriasformas daí o nome Polimorfismo.

• Geralmente as pessoas confundem polimorfismo eencapsulamento porque ambos referem-se aoocultamento da implementação do mundo externoao objeto.

Page 31: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

breve descrição dos principais

conceitos da teoria de objetos

Page 32: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos
Page 33: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Fases do Desenvolvimento de um

Sistema em UML

• Existem cinco fases no desenvolvimento de sistemas desoftware:

• análise de requisitos,

• análise,

• design (projeto),

• programação e

• testes.

• os problemas detectados numa certa fase podem modificar emelhorem as fases desenvolvidas anteriormente de forma queo resultado global gere um produto de alta qualidade eperformance.

Page 34: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Análise de Requisitos

• Esta fase captura as intenções e necessidades dos usuários do sistema aser desenvolvido através do uso de funções chamadas "use-cases".

• Através do desenvolvimento de "use-case“, as entidades externas aosistema que interagem e possuem interesse no sistema são modeladosentre as funções que eles requerem, funções estas chamadas de "use-cases".

• Os atores externos e os "use-cases" são modelados com relacionamentosque possuem comunicação associativa entre eles ou são desmembradosem hierarquia.

• Cada "use-case“ especifica os requerimentos do ator externo queutilizará este "use-case". O diagrama de "use-cases” mostrará o que osatores externos, ou seja, os usuários do futuro sistema deverão esperar doaplicativo, conhecendo toda sua funcionalidade sem importar como estaserá implementada.

Page 35: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Análise

• A fase de análise está preocupada com as primeiras abstrações (classes eobjetos) e mecanismos que estarão presentes no domínio do problema.

• As classes são modeladas e ligadas através de relacionamentos comoutras classes, e são descritas no Diagrama de Classe. As colaboraçõesentre classes também são mostradas neste diagrama para desenvolver os"use-cases" modelados anteriormente, estas colaborações são criadasatravés de modelos dinâmicos em UML.

• Na análise, só serão modeladas classes que pertençam ao domínioprincipal do problema do software, ou seja, classes técnicas quegerenciem banco de dados, interface, comunicação, concorrência eoutros não estarão presentes neste diagrama.

Page 36: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Design (Projeto)

• Na fase de design, o resultado da análise é expandidoem soluções técnicas.

• Novas classes serão adicionadas para prover uma infra-estrutura técnica.

• As classes do domínio do problema modeladas na fasede análise são mescladas nessa nova infra-estruturatécnica tornando possível alterar tanto o domínio doproblema quanto a infra-estrutura.

• O design resulta no detalhamento das especificaçõespara a fase de programação do sistema.

Page 37: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Programação

• Na fase de programação, as classes provenientes do design sãoconvertidas para o código da linguagem orientada a objetos escolhida.

• Dependendo da capacidade da linguagem usada, essa conversão podeser uma tarefa fácil ou muito complicada. No momento da criação demodelos de análise e design em UML, é melhor evitar traduzi-losmentalmente em código.

• Nas fases anteriores, os modelos criados são o significado doentendimento e da estrutura do sistema, então, no momento da geraçãodo código onde o analista conclua antecipadamente sobre modificaçõesem seu conteúdo, seus modelos não estarão mais demonstrando o realperfil do sistema.

• A programação é uma fase separada e distinta onde os modelos criadossão convertidos em código.

Page 38: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Testes

• Um sistema normalmente é rodado em testes de unidade, integração, eaceitação.

• Os testes de unidade são para classes individuais ou grupos de classes esão geralmente testados pelo programador.

• Os testes de integração são aplicados já usando as classes ecomponentes integrados para se confirmar se as classes estão cooperandouma com as outras como especificado nos modelos.

• Os testes de aceitação observam o sistema como uma " caixa preta” everificam se o sistema está funcionando como o especificado nosprimeiros diagramas de "use-cases".

• O sistema será testado pelo usuário final e verificará se os resultadosmostrados estão realmente de acordo com as intenções do usuário final.

Page 39: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

EXERCÍCIOS

• 1. Um usuário deseja uma calculadora que efetue as

quatro operações básicas. As expressões permitidas

envolvem apenas dois números, por exemplo, 2 +

3.5ou 3 * 3.2. Identifique os objetos, seus métodos e

atributos.

Page 40: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

• 2. Seguindo a abordagem de orientação a objetos, identificar

no enunciado abaixo os objetos e usuários do sistema. Liste os

nomes dos objetos, seus atributos e os usuários do sistema.

• UMA LOCADORA de veículos necessita de um sistema para facilitar o atendimento a

seus clientes. Os carros são classificados por tipo: popular, luxo e utilitário. As

informações que interessam à locadora sobre cada um dos veículos são: placa do carro, tipo e

valor diário do aluguel. Os funcionários da locadora são responsáveis pelo cadastro dos

clientes e dos veículos. Eles também fazem as locações e encerram as mesmas. Há

clientes especiais e comuns. Os especiais têm direito a uma taxa de desconto e um

valor de quilometragem extra nas suas locações. Um cliente é identificado pelo nome,

número do cartão de crédito e data de expiração.

Page 41: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Principais Digramas:

Page 42: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Requisitos

Page 43: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Requisitos.

Page 44: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Identificação e elicitação de

Requisitos:

Documento (Artefato) desta etapa: “Documento de Visão”

Page 45: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

As fases da Identificação/Elicitação de

Requisitos:

Page 46: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Identificação dos Requisitos:

Tipos de Requisitos

Os Requisitos de Software podem ser divididos em duas categorias:

Page 47: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Identificação dos Requisitos:

Page 48: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Análise de Requisitos

Page 49: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Atividades da Análise de Requisitos

Page 50: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Análise de Requisitos. Classificar

• Classificacao de Requisitos Não Funcionais:

• Performance: Tempo de resposta

• Segurança: Uso de senhas, certificados digitais e etc..

• Usabilidade: Identidade Visual e Interfaces amigáveis

• Disponibilidade: O software deve estar disponível para usuário 24x7. Exemplo: Tolerância a falha

• Flexibilidade: Capacidade de adaptação quando um requisito muda

• Portabilidade: Capacidade de se adaptar a outros ambientes (sistemas operacionais)

• Escalabilidade: Capacidade de responder aumento de carga (novos usuários)

Page 51: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos
Page 52: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Especificação de Requisitos

Page 53: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Especificação de Requisitos

Page 54: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Atividades e Passos:

Page 55: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Diagrama de casos de uso

Page 56: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Casos de Uso

Page 57: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Casos de Uso

Page 58: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Casos de Uso e Cenários:

• Os casos de uso exibem a funcionalidade na perspectiva do

usuário. Entretanto, podemos ter vários caminhos para

completar esta função. Um cenários é como uma “instance” do

Caso de uso, isto é, um caminho lógico com início e fim.

Page 59: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Ator

Page 60: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Representação UML (Atores)

Page 61: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Casos de Uso e Fluxo de Eventos:

Tipos de fluxos:

• Fluxo de eventos principal e

• Fluxo alternativo de eventos.

Page 62: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Fluxo de Eventos (1)

Especifica o comportamento de um caso de uso

• E uma sequencia de comandos declarativos que descreve as etapas de execucao de um Caso de Uso

• Permanece focado no domınio do problema e nao em sua solucao

• Pode conter testes condicionais e iteracoes

• Contem informacoes relativas:

• As condicoes de inıcio e termino do caso de uso

• Quais os atores interessados no sistema

• Como o caso de uso interage com esses atores

Page 63: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

O fluxo de eventos de um caso de

uso e composto por:

• Um Fluxo Basico - descreve a funcionalidade principal do caso de uso, quando nenhum desvio e tomado

• Zero ou Mais Fluxos Alternativos- descrevem desvios pre-definidos do fluxo basico

• Esses fluxos podem ser especificados atraves de:

• Descricao textual informal

• Texto semi-formal (atraves de pre-pos-condicoes e invariantes)

• Pseudocodigo

• Ou uma combinacao dessas maneiras

Page 64: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Fluxo Basico de Eventos• Descrito em pseudocodigo:

• 1. O cliente chega ao ponto de vendas com os produtos da compra

• 2. para cada( produto trazido pelo cliente):

• (a) O atendente registra o codigo e a quantidade do produto

• (b) O sistema determina o preco do produto e o adiciona `a compra

• 3. O atendente indica que a lista de produtos est´a completa

• 4. O sistema calcula e apresenta o total

• 5. O atendente informa o cliente sobre o total da compra e pergunta qual e a forma de pagamento

• 6. se(dinheiro) forma de pagamento = “dinheiro”

• 7. O atendente registra a quantia recebida

• 8. O sistema mostra o troco e gera o recibo

• 9. O atendente deposita o dinheiro, devolve o troco e entrega o recibo da compra

• 10. O sistema registra o final da transacao

Page 65: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Casos de Uso. Relacionamentos

• Organização dos Casos de Uso:

• Os casos de uso também podem ser organizados pela

especificação de relacionamento de generalização, inclusão

e extensão, existentes entre eles. Esses podem ser

aplicados com a finalidade de fatorar o comportamento

comum (obtendo esse comportamento a partir de outros

casos de uso que ele inclui) e fatorar variantes (obtendo

esse comportamento em outros casos de uso que o

estendem)

Page 66: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Generalização:

• Podemos usar a

generalização entre casos

de uso, pelo mesmo

motivo que utilizamos

nas classes, para

compartilhar

comportamento:

Page 67: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Generalização entre atores

Page 68: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Extends:

Page 69: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Include:

Page 70: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Explicando o estereotipo

“include”

Page 71: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

É importante ressaltar que:

• um caso de uso nunca deve ser incluído apenas por um caso, ou seja, não utilizar <<include>> para decompor o diagrama em partes;

• um caso de uso que é incluído por vários outros não tem conhecimento sobre quem o inclui, portanto, podem ser incluídos por qualquer caso sem sofrer modificações;

• não utilizar a relação de inclusão para representar opções de menu, pois o caso que faz a inclusão seria um simples despachante, todo o comportamento estaria fragmentado nos casos incluídos.

• Enfim, inclusão deve ser utilizada para administrar comportamentos comuns e não para estruturar funcionalmente o diagrama.

Page 72: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Associação

Ator x Ator

Page 73: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Ator x Caso

Page 74: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos
Page 75: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Descricao: Sistema de Ponto de

Vendas

• principais Requisitos:

• Registrar os ´ıtens vendidos em cada venda.

• Calcular o total de uma venda.

• Obter e apresentar as informacoes sobre cada produto mediante a leitura de seu codigo de barras.

• Reportar ao estoque os dados dos produtos vendidos.

• Registrar cada venda completada com sucesso.

• Exigir senha pessoal para operar o sistema.

• Receber pagamentos em dinheiro ou cartao.

• Emitir mensalmente o balanco do estoque.

Page 76: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Exercıcio (PDV)

• Classifica¸c˜ao dos Requisitos - (F/NF):

• • Registrar os ´ıtens vendidos em cada venda.

• • Calcular o total de uma venda.

• • Obter e apresentar as informa¸c˜oes sobre cada produto mediante a leitura de seu c´odigo de barras.

• • Reportar ao estoque os produtos vendidos.

• • Registrar cada venda completada com sucesso.

• • Exigir senha pessoal para operar o sistema.

• • Receber pagamentos em dinheiro ou cart˜ao.

• • Emitir mensalmente o balan¸co do estoque.

Page 77: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Exemplo (Caso de Uso)

• Caso De Uso: Comprar Produtos

• Atores: Cliente, Atendente

• Descricao: Um cliente chega ao ponto de vendas para

comprar produtos. O atendente registra a compra e

coleta o pagamento. O cliente vai embora com a

compra.

Page 78: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

Exemplo (Fluxo Basico de Eventos)

• Descrito em pseudocodigo:

• 1. O cliente chega ao ponto de vendas com os produtos da compra

• 2. para cada ( produto trazido pelo cliente):

• (a) O atendente registra o codigo e a quantidade do produto

• (b) O sistema determina o preco do produto e o adiciona `a compra

• 3. O atendente indica que a lista de produtos esta completa

• 4. O sistema calcula e apresenta o total

• ...

Page 79: Analise e Desenho Orientado a Objecto · PDF filepassada ao objeto de destino através dos parâmetros de uma função, ... convertidas para o código da linguagem orientada a objetos

...

• 5. O atendente informa o cliente sobre o total da compra e pergunta qual e a forma de pagamento

• 6. se (dinheiro) forma de pagamento = “dinheiro”

• 7. O atendente registra a quantia recebida

• 8. O sistema mostra o troco e gera o recibo

• 9. O atendente deposita o dinheiro, devolve o troco e entrega o recibo da compra

• 10. O sistema registra o final da transacao