Princípios de modelagem de Domínio e Projeto(design) de Software Parte 2



Documentos relacionados
Casos de Uso. Prof. Clayton Vieira Fraga Filho site: ENG10015 Engenharia de Software

Tarciane Andrade.

Engenharia de Software III

Uma visão mais clara da UML Sumário

A Linguagem de Modelagem Unificada (UML)

Manual de Utilização ZENDESK. Instruções Básicas

Complemento da Versão 2.3 Categorização Pagina 1 Fone: (17) Agenda Hoken Versão 2.

Curso de Licenciatura em Informática

Manual Geral do OASIS

04/07/2015 UML. Prof. Esp. Fabiano Taguchi DEFINIÇÃO DE REQUSIITOS

Operações de Caixa. Versão 2.0. Manual destinado à implantadores, técnicos do suporte e usuários finais

Casos de Uso. Professor MSc Wylliams Barbosa Santos wylliams.wordpress.com Laboratório de Programação

Introdução Diagramas de Casos de Uso Diagramas de Classes Estoque Fácil

Processo de Controle das Reposições da loja

ViajarFácil Sistema de Reserva de Viagens

Documento de Análise e Projeto VideoSystem

Modelagem de Sistemas Prof. Marcos Roberto e Silva

CAPTAÇÃO DE PEDIDOS DO REVENDEDOR

Prof. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010.

Manual do usuário. v1.0

Análise e Projeto Orientado a Objetos. Modelagem de Domínio

DPAlmox - Windows MANUAL DO USUÁRIO

Resolução da lista de exercícios de casos de uso

2 Diagrama de Caso de Uso

Tutorial para envio de comunicados e SMS

Histórico da Revisão. Data Versão Descrição Autor

CASO DE USO. Isac Aguiar isacaguiar.com.br

VIAÇÃO SÃO BENTO LTDA.

Central Cliente Questor (CCQ) UTILIZANDO A CCQ - CENTRAL CLIENTE QUESTOR

Especificação de Requisitos

BOLETIM INFORMATIVO TÉCNICO Cordilheira Recursos Humanos Versão 2 PLANO DE ASSISTÊNCIA A SAÚDE

Engenharia de Requisitos Estudo de Caso

CONTRA CONTROLE DE ACESSOS E MODULARIZADOR DE SISTEMAS

Universidade Federal Rural de Pernambuco. Bacharelado em Sistemas de Informação. Disciplina: Análise e Projeto de Sistemas de Informação

Projeto SIGA-EPT. Manual do usuário Módulo Requisição de Almoxarifado SISTEMA INTEGRADO DE GESTÃO ACADÊMICA

Realizando Vendas no site do Cartão BNDES

UML Aspectos de projetos em Diagramas de classes

Desenvolvimento de uma Etapa

Passo a Passo do Checkout no SIGLA Digital

VIA FÁCIL - BOMBEIROS

Universidade Federal de Roraima Diretoria de Tecnologia da Informação SIG Software e Consultoria em T.I

MANUAL C R M ÍNDICE. Sobre o módulo de CRM Definindo a Campanha... 3

Manual Cadastro Completo

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

MÓDULO 5 Movimentações

Guia de utilização da notação BPMN

Anote aqui as informações necessárias:

PORTAL B2B USUÁRIO FORNECEDOR

TOTVS Série 1 Varejo (Simples) - Módulo e-commerce

Objetivos. Página - 2

Sumário. Uma visão mais clara da UML

Ministério da Cultura

Modelagem de Casos de Uso (Parte 1)

DIAGRAMA DE CASO DE USO

Manual de utilização do sistema OTRS (Atendimento) Cliente Externo

Casos de Uso - definições

Manual do Sistema "Vida Controle de Contatos" Editorial Brazil Informatica

Sistema de Controle de Solicitação de Desenvolvimento

Manual de Utilização Autorizador

Simulador de Pagamento

Manual do Anunciante

PASSO A PASSO LOJA VIRTUAL. 1º Passo Acessar o site do Bom Jesus (

Manual Operacional SIGA

Especificação de Requisitos

MANUAL TISS Versão

Armazém Sistema de Recebimento SDR 006 LIBERTAÇÃO DO ESTOQUE USUÁRIO MANUAL DE TREINAMENTO. Versão 1.00

Casos de uso Objetivo:

MANUAL DE UTILIZAÇÃO

Tutorial para envio de comunicados

Manual do sistema SMARsa Web

Engenharia de Software

CADASTROS DE VENDAS, PEDIDOS, ORÇAMENTOS OU DEVOLUÇÕES

WorkFlow WEB Caberj v docx. Manual Atendimento Caberj

MANUAL DE INSTRUÇÕES. Versão 1.0. Visão Transportador

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

Treinamento de. Linx Pos

Sistema Aeródromos. Manual de utilização do Sistema Aeródromos. 1. Cadastro no sistema AERÓDROMOS

MANUAL DE UTILIZAÇÃO - VISÃO DE EMPRESAS. Todos os direitos reservados à Softbox

Princípios de Análise e Projeto de Sistemas com UML

Módulo Vendas Balcão. Roteiro passo a passo. Sistema Gestor New

1. Tela de Acesso pg Cadastro pg Abas de navegação pg Abas dados cadastrais pg Aba grupo de usuários pg.

UML. Diagrama de Seqüência

MANUAL DO USUÁRIO VIA FÁCIL BOMBEIROS SECRETARIA DO ESTADO DOS NEGÓCIOS DA SEGURANÇA PÚBLICA POLÍCIA MILITAR DO ESTADO DE SÃO PAULO

TRIBUNAL DE JUSTIÇA DO PARANÁ PROJUDI REFORMULAÇÃO DE CUMPRIMENTOS - MANDADOS

Manual Xerox capture EMBRATEL

DOCUMENTO DE REQUISITOS

E&L Protocolo, Documentos Eletrônicos e Processos Perguntas Frequentes

Modelos de Sistemas Casos de Uso

Documentação de visão: Sistema de Controle de ponto eletrônico para empresas. Documentados por: Halison Miguel e Edvan Pontes

Manual de Digitação online de guia de SADT Desenvolvido por: Iuri Silva Setor: Inteligência Corporativa Unimed VR BEM VINDO AO SISTEMA VOXIS!

InfoMix Tecnologia. SYSFARM Sistema de Gerenciamento de Farmácias. Especificação de Caso de Uso UC Efetuar Vendas. Versão 1.

Consultório On-line. Tudo o que você precisa em um só lugar.

Preenchimento dos Pedidos de Credenciamento Provisório, Credenciamento 5 anos, Recredenciamento e Aumento de Vagas

Transcrição:

Princípios de modelagem de Domínio e Projeto(design) de Software Parte 2 Prof. Gustavo Willam Pereira ENG10082 Programação II Créditos: Prof. Clayton Vieira Fraga Filho

Análise de Casos de Uso (continuação) Diagrama de casos de uso Importante salientar que antes de iniciar a análise de cada caso de uso em específico, é importante ter a visão geral do sistema que está sendo proposto, por meio das definições de todos os casos de uso. Para isso, utiliza-se o diagrama de casos de uso, composto de: Atores; Casos de uso; Relacionamentos. 2

Análise de Casos de Uso (continuação) Diagrama de casos de uso O Ator, em um diagrama de Casos de Uso (dcu) é um PAPEL DESEMPENHADO POR ALGUMA COISA EXTERNA ao sistema (não necessariamente uma pessoa). Outros sistemas (externos) também podem ser atores. A representação do Caso de Uso no Diagrama é simples: a elipse representa uma forma que o sistema se comporta do ponto de vista do Ator. O nome do Caso de Uso é uma forma de elucidar esse comportamento do sistema, assim sendo, o nome do caso de uso define o OBJETIVO do Ator, isto é, o que ele quer fazer no sistema. uc Casosd... Ator uc CasosdeUso Cadastrar clientes 3

Análise de Casos de Uso (continuação) Diagrama de casos de uso A notação básica do diagrama são Atores representados pelos bonequinhos. Uma linha conecta atores aos Casos de Uso informando que o sistema permitirá ao Ator usar o Caso de Uso diretamente. Os Casos de Uso são representados por elipses uc CasosdeUso uc: exemplo sistema de vendas Vendedor Cadastrar clientes Cadastrar produtos Efetuar v endas Gerente Registrar recebimentos 4

Análise de Casos de Uso (continuação) Após a identificação de todos os casos de uso que devem atender o que os clientes querem para o sistema; De posse da descrição expandida (narrativa) de cada um deles: Verificar o texto dos casos de uso expandidos Selecionar termos que representam informação transmitida do ator para o sistema Agrupar sinônimos 5

Análise de Casos de Uso (continuação) Caso de Uso Essencial Cadastrar um cliente Fluxo principal 1. O cliente chega ao balcão para fazer seu cadastro 2. O atendente solicita seu nome e um comprovante de renda (com valor total da renda atualizado) 3. O atendente faz a classificação do cliente e atribui um percentual de desconto 4. O atendente informa ao cliente que seu registro foi feito com sucesso. Fluxos de exceção FE1 - Cliente não lembra sua renda 1. O cliente não tem um comprovante de renda 2. O atendente solicita que seja providenciado 3. O cliente se dispõe a providenciar 4. O registro é suspenso. Fluxos alternativos Não há

Análise de Casos de Uso (continuação) Termos identificados na 1º avaliação do analista: Cliente Nome Comprovante de Renda Classificação do cliente Percentual de Desconto Em um outro momento o analista pode necessitar esclarecer junto ao stakeholder: Por que é necessário ter um comprovante de renda? O que é classificação do cliente e como é feita a classificação? Como o percentual de desconto é atribuído? Ou pode ser que essas informações tenham sido obtidas em uma conversa prévia, que tenha sido inclusive gravada em áudio.

Análise de Casos de Uso (continuação) O cliente pode explicar ao analista que (quase nunca de forma tão direta como segue): A empresa mantém um cadastro de clientes, com seu código, nome, renda e tipo (Prata e Ouro). Os clientes podem se cadastrar na empresa e participar de 2 categorias (tipos) distintos. Clientes tipo Ouro são aqueles com renda superior a 1000 reais. Estes têm 10% de desconto no valor das suas faturas. Clientes prata são aqueles com renda entre 300 e 1000 reais e tem desconto de 5%. Os demais clientes cadastrados com renda inferior a 300 reais não tem classificação (tipo) e não possuem desconto;

Análise de Casos de Uso (continuação) O analista pode identificar a classe de domínio Cliente, como segue: class Venda class Venda class Venda Cliente - codcliente -/ desconto - nome - renda - tipo ou ClienteOuro Cliente - codcliente -/ desconto - nome - renda ClientePrata ou Cliente - codcliente -/ desconto - nome - renda 1 +tipo 1 Tipo - desconto - limiteinferiorrenda - limitesuperiorrenda - tipo

Análise de Casos de Uso (continuação) Passos da Atividade de Análise: Identificar as classes Identificar responsabilidades das classes Identificar relacionamentos Identificar atributos Identificar persistência 10

Análise de Casos de Uso (continuação) Identificando as classes No primeiro passo de análise, identificaremos três tipos de classes: Fronteira Entidade Controle Tais classes são identificadas separadamente para cada caso de uso 11

Análise de Casos de Uso (continuação) Caso de Uso Essencial Cadastrar um cliente Fluxo principal 1. O cliente chega ao balcão para fazer seu cadastro 2. O atendente informa o procedimento e solicita o nome do cliente e um comprovante de renda (com valor total da renda atualizado) [FE1] 3. [EV] O atendente registrar o nome e a renda do cliente 4. [RS] O sistema exibe a classificação do cliente e o percentual de desconto autorizado. 5. O atendente informa ao cliente que seu registro foi feito com sucesso. Fluxos de exceção FE1 - Cliente não lembra sua renda 1. O cliente não tem um comprovante de renda 2. O atendente solicita que seja providenciado 3. O cliente se dispõe a providenciar 4. O registro é suspenso. Fluxos alternativos Não há

Análise de Casos de Uso (continuação) Exemplo Que classes preciso criar? uma classe de fronteira para lidar com a interação dos atores com o sistema uma classe de entidade para representar as informações relevantes do cliente uma classe de controle para gerenciar o fluxo de execução do caso de uso 13

Análise de Casos de Uso (continuação) Exemplo TelaCadastroCliente ControladorCliente Cliente Há diferentes opções de visualização dos estereótipos, por exemplo modo texto: <<boundary>> TelaCadastroCliente <<control>> ControladorCliente <<entity>> Cliente 14

Análise de Casos de Uso (continuação) Exemplo <<boundary>> TelaCadastroCliente <<control>> ControladorCliente <<entity>> Cliente Só teremos um cliente? Onde ficarão armazenados os demais? Que classe será responsável por realizar as tarefas de persistência? 15

Análise de Casos de Uso (continuação) Para cada classe de entidade que precise ser persistente, é criada uma nova classe com o estereótipo <<entity collection>> ou <<persistence>>. <<boundary>> TelaCadastroCliente <<control>> ControladorCliente <<entity>> Cliente <<entity collection>> CadastroClientes Compatível com o vetor de clientes, ou lista de clientes na programação estruturada. 16

Diagramas de interação Após a identificação das classes, é necessário descobrir quais são as responsabilidades de cada classe, o que cada uma precisa fazer. Os diagramas de interação (seqüência e colaboração) são muito úteis nesta tarefa. Inicialmente deve-se identificar as informações trocadas entre os elementos identificados durante e categorizados pela método BCE. 17

Diagramas de interação: Sequência : CadastroClientes : Atendente : TelaCadastroCliente : ControladorCliente : Cliente 1 : nome, renda() 2 : nome, renda() 3 : calcula o % de desconto() 4 : classifica o cliente() 5 : Cria a entidade() 6 : Cadastra a entidade na lista() 18

Diagrama de Sequência: Overview Instância da classe, ou ator. Pode ter o nome ou o tipo, ou ambos. : CadastroClientes : Atendente : TelaCadastroCliente : ControladorCliente : Cliente 1 : nome, renda() Região de execução 2 : nome, renda() 3 : calcula o % de desconto() 4 : classifica o cliente() Estímulo ou mensagem enviada de um objeto para o outro, ou executada pelo mesmo objeto 5 : Cria a entidade() 6 : Cadastra a entidade na lista() Linha de vida: o sistema ou o ator está inativo, mas está instanciado Quando a linha está cheia, o sistema está ativo (operando ou aguardando o resultado de alguma operação) 19

Diagramas de interação : CadastroClientes : Atendente : TelaCadastroCliente : ControladorCliente : Cliente 1 : nome, renda() 2 : nome, renda() 3 : calcula o % de desconto() Por que existe esse envio de informações? O que TelaCadastroCliente precisa fazer? O mesmo vale para as demais 4 : classifica o cliente() 5 : Cria a entidade() 6 : Cadastra a entidade na lista() 20

Alocando responsabilidades Após identificarmos as responsabilidades (métodos) pelos diagramas de interação, devemos acrescentar os métodos nas classes previamente identificadas (1º passo); Exemplo das classes com métodos: <<boundary>> TelaCadastroCliente <<control>> ControladorCliente +cadastrar(nome, renda) +cadastrar(nome, renda) +calculadesconto() +classificacliente() <<entity collection>> CadastroClientes <<entity>> Cliente +clientes +cadastrar(nome, renda, desconto, tipo) +nome +renda +desconto 21

Identificando Atributos Também é necessário identificar quais os atributos das classes Um bom conhecimento do domínio do problema é bastante importante para esta tarefa, principalmente na identificação de atributos das classes de entidade Nesta etapa ainda não precisamos indicar quais os tipos dos atributos 22

Diagrama final 23

Análise de Casos de Uso (continuação) Outro exemplo Efetuar Login (resumo do caso de uso) Fluxo principal: 1. Usuário informa login e senha 24

Análise de Casos de Uso (continuação) Exemplo Que classes preciso criar? uma classe de fronteira para lidar com a interação dos atores com o sistema uma classe de entidade para representar as informações relevantes do aluno uma classe de controle para gerenciar o fluxo de execução do caso de uso 25

Análise de Casos de Uso (continuação) Exemplo TelaLogin ControladorLogin Us uario Há diferentes opções de visualização dos estereótipos, por exemplo modo texto: < < boundary > > Tela Login < < c ontrol> > ControladorLogin < < entity > > Us uario 26

Análise de Casos de Uso (continuação) Exemplo < < boundary > > Tela Login < < c ontrol> > ControladorLogin < < entity > > Us uario Só teremos um usuário? Onde ficarão armazenados os demais usuários? Que classe será responsável por realizar as tarefas de persistência? 27

Análise de Casos de Uso (continuação) Para cada classe de entidade que precise ser persistente, é criada uma nova classe com o estereótipo <<entity collection>> ou <<persistence>> <<boundary>> TelaLogin <<control>> ControladorLogin <<entity collection>> CadastroUsuarios <<entity>> Usuario 28

Diagramas de interação Após a identificação das classes, é necessário descobrir quais são as responsabilidades de cada classe, o que cada uma precisa fazer. Os diagramas de interação (seqüência e colaboração) são muito úteis nesta tarefa. Inicialmente deve-se identificar as informações trocadas entre os elementos identificados durante e categorizados pela método BCE. 29

Diagramas de interação Após a identificação das classes, é necessário descobrir quais são as responsabilidades de cada classe, o que cada uma precisa fazer. Os diagramas de interação (sequência e colaboração) são muito úteis nesta tarefa : usuário : TelaLogin : Con trolado rlogin : Cadas troalunos efetuarlogin(login, senha) efetuarlogin(login, senha) checar(login, senha) regis trars es sao() 30

Alocando responsabilidades Após identificarmos as responsabilidades (métodos) pelos diagramas de interação, devemos acrescentar os métodos nas classes previamente identificadas (1º passo); Exemplo das classes com métodos: <<boundary>> TelaLogin efetuarlogin(login, senha) <<control>> ControladorLogin efetuarlogin(login, senha) registrarsessao() <<entity collec tion>> CadastroUsuarios <<entity>> Usuario checar(login, senha) 31

Identificando Atributos Também é necessário identificar quais os atributos das classes Um bom conhecimento do domínio do problema é bastante importante para esta tarefa, principalmente na identificação de atributos das classes de entidade Nesta etapa ainda não precisamos indicar quais os tipos dos atributos 32

Diagrama final 33

Pausa para organizar os elementos: Classe criada para receber a interação <<boundary>> TelaLogin * efetuarlogin(login, senha) 1 Classe criada para controlar interação <<control>> ControladorLogin efetuarlogin(login, senha) registrarsessao() 1 <<entity collection>> 1 CadastroUsuarios checar(login, senha) Classe criada para armazenar (servir de depósito, repositório) de usuários <<entity>> Usuario login senha Conceito do domínio do problema 34

Pausa para organizar os elementos: Pacotes Em UML, um pacote é definido como: "Um mecanismo de propósito geral para organizar elementos semanticamente relacionados em grupos." Todos os modelos de elementos que são ligados ou referenciados por um pacote são chamados de "Conteúdo do pacote". Um pacote possui vários modelos de elementos, e isto significa que estes não podem ser incluídos em outros pacotes. InterfaceGrafica Domínio Vejamos um exemplo no StarUML Controladora Persistencia 35

Diagrama de Casos de Uso: uma atualização Após a descrição (expansão) de todos os casos de uso, obtemos uma versão final do diagrama de casos de uso, considerando os pontos de inclusão e extensão. uc CasosdeUso Versão inicial do UD uc CasosdeUso Outra versão do UD Cadastrar clientes Cadastrar clientes Cadastrar produtos «extend» Vendedor Cadastrar produtos Vendedor «extend» Efetuar v endas Efetuar v endas Consultar v endas «extend» Gerente Registrar recebimentos Registrar recebimentos Gerente 36

Diagrama de Casos de Uso: mais conceitos Pontos de Extensão <<extend>> Início da técnica de Caso de Uso: analistas tinham um problema para acrescentar comportamentos em Casos de Uso que já estavam definidos. Eles imaginavam que seria muito bom se o Caso de Uso definido abrisse uma porta para que os novos comportamentos da evolução do software fossem incorporados. Essa foi a motivação do relacionamento «extend». Um Caso de Uso disponibiliza um ponto de extensão (extension point) que outros Casos de Uso podem observar e de acordo com uma condição, este Caso de Uso que está observando pode assumir o controle e embutir os seus comportamentos. 37

Diagrama de Casos de Uso: mais conceitos Pontos de Extensão <<extend>> uc CasosdeUso Cadastrar clientes Cadastrar produtos «extend» Vendedor «extend» Efetuar v endas Consultar v endas «extend» Registrar recebimentos Gerente 38

Diagrama de Casos de Uso: mais conceitos Pontos de Inclusão <<include>> O ponto de inclusão é usado quando um caso de uso deve incluir o comportamento do outro. Significa que o caso de uso A inclui o comportamento do caso de uso B. É representada pelo estereótipo <<include>> uc CasosdeUso A «include» B Exemplo: O stakeholder do sistema de pedidos solicitou que exista uma forma de imprimir a segunda via da Venda realizada. Considerando que o caso de uso Efetuar Vendas (já existente) tenha em seu fluxo principal a opção de imprimir a venda que está sendo feita, podese extrair o trecho e criar um caso de uso Imprimir cópia da venda 39

Diagrama de Casos de Uso: mais conceitos Pontos de Inclusão <<include>>: O ponto de inclusão é usado quando um caso de uso deve incluir o comportamento do outro. A inclusão sempre é executada. Exemplo: Imagine que o stakeholder do sistema de pedidos solicitou que exista uma forma de imprimir a segunda via da Venda realizada. Considerando que o caso de uso Efetuar Vendas (já existente) tenha em seu fluxo principal a opção de imprimir a venda que está sendo feita, pode-se extrair o trecho e criar um caso de uso Imprimir cópia da venda 40

Diagrama de Casos de Uso: mais conceitos Pontos de Inclusão <<include>> O diagrama final ficaria: uc CasosdeUso Cadastrar clientes Cadastrar produtos «extend» Vendedor «extend» Efetuar v endas Consultar v endas «include» «extend» Imprimir cópia da Venda Registrar recebimentos Gerente 41