SISTEMAS DE INFORMAÇÃO MODELAGEM E ESPECIFICAÇÃO DE CASOS DE USO ARQUITETURA E DESENHO DE SOFTWARE Prof.ª Me. Juliana Martins de Bessa Ferreira 2024/1 MODELAGEM DE CASOS DE USO (MCU) A ferramenta de MCU é o Diagrama de Casos de Uso (DCU) DCUDiagrama mais abstrato, flexível e informal da UML – Visão geral do comportamento do sistema; Apresenta o sistema por intermédio de uma perspectiva do usuário, possibilitando uma compreensão do comportamento externo; Utilizado normalmente nas fases de Levantamento e Análise de Requisitos do sistema; Modelo de análise que apresenta um refinamento dos RF do sistema em desenvolvimento; Possui maior abrangência quando utilizado em conjunto com protótipos; Procura identificar os atores que utilizarão de alguma forma o 2 software, bem como os serviços, ou seja, as opções, que o sistema disponibilizará aos atores; 2 CONT. MODELAGEM DE CASOS DE USO (MCU) O Diagrama de Casos de Uso tem por objetivo apresentar uma visão externa geral das funções e serviços que o sistema deverá oferecer aos usuários, sem se preocupar em como estas funções serão implementadas. O DCU tenta identificar os tipos de usuários que irão interagir com o sistema, quais papéis esses usuários irão assumir e quais funções serão requisitadas por cada usuário específico3 3 COMPONENTES DO DIAGRAMA DE CASOS DE USO Atores Representam os papéis desempenhados pelos diversos usuários que poderão utilizar de alguma maneira os serviços e funções do sistema. - São representados por símbolos de “bonecos magros”, contendo uma breve descrição logo abaixo do símbolo que indica qual papel que o ator em questão assume dentro do diagrama. 4 Gerente Sistema de Contas a Pagar e Receber Medidor de radiação Cliente 4 CASOS DE USO Referem-se aos serviços, tarefas e funções que podem ser utilizadas de alguma maneira pelos usuários do sistema, como emitir um relatório ou cadastrar a venda de algum produto. Podem ser classificados em primários (processos importantes que enfocam um dos requisitos funcionais do software. Ex: Validar CPF, Consultar CEP) e secundários (refere-se a processos periféricos. Ex: Manutenção de um cadastro); São utilizados para expressar e documentar os comportamentos pretendidos para as funções do sistema; Em geral, pode-se associar um Caso de Uso a um formulário do sistema, embora isto não possa ser adotado como uma regra, já que uma tela do sistema pode abranger vários formulários do sistema ou constituir-se em apenas uma 5 pequena opção de uma interface, como um botão, por exemplo; 5 CASOS DE USO - EXEMPLOS São representados por uma elipse , contendo dentro de si um texto descrevendo a que serviço o caso de uso se refere. Manter Fornecedor Exemplos de Casos de Uso 6 ASSOCIAÇÕES Representam as interações ou relacionamentos entre os Atores que fazem parte do diagrama, entre os Atores e os Casos de Uso ou os relacionamentos entre os Casos de Uso e outros Casos de Uso. Tipos de Relacionamentos: - Associação simples Especialização / Generalização Inclusão Extensão 7 7 ASSOCIAÇÃO SIMPLES No exemplo ao lado o Ator Cliente utiliza, de alguma forma, o serviço de Manter Cliente, representado pelo Caso de Uso e que a informação referente a este processo trafega nas duas direções. Cliente Manter Cliente Associação entre um Ator e um Caso de Uso 8 8 GENERALIZAÇÃO / ESPECIALIZAÇÃO COM CASOS DE USO Forma de Associação entre Casos de Uso na qual existem dois ou mais Casos de Uso com características semelhantes, apresentando pequenas diferenças entre si; Quando tal situação ocorre, costuma-se definir um caso de uso geral que descreve as características compartilhadas por todos os 9 casos de uso em questão e então relacioná-los com os outros casos de uso envolvidos, cuja documentação conterá somente as 9 características específicas de cada um. GENERALIZAÇÃO / ESPECIALIZAÇÃO COM ATORES 10 10 GENERALIZAÇÃO / ESPECIALIZAÇÃO COM ATORES Generalização/Espec ialização com atores e casos de uso 11 11 INCLUSÃO Utilizada quando existe um cenário, situação ou rotina comum a mais de um Caso de Uso. Quando isto ocorre, a documentação dessa rotina é colocada em um caso de uso específico para que outros casos de uso utilizem este serviço, evitando descrever uma mesma sequencia de passos em vários casos de uso. Pode ser comparado à chamada de uma sub-rotina ou função, artifício bastante utilizado na maioria das linguagens de Programação. Representada por uma linha tracejada contendo uma seta para uma das extremidades que aponta para o Caso de Uso incluído no Caso de Uso posicionado na outra extremidade da reta; As associações de Inclusão costumam apresentar também um Esteriótipo contendo o texto “include”, entre dois sinais de menor(<) e dois sinais de maior(>). 12 Esteriótipo Serve para destacar um componente ou associação atribuindolhes características especiais em relação a seus iguais. 12 EXEMPLO 01 Imaginemos o seguinte cenário: Ao cadastrar o funcionário de uma concessionária de veículos, é necessário realizar a validação do CPF. 13 EXTENSÃO Associações utilizadas para descrever cenários opcionais de um Caso de Uso; Os casos de uso estendidos descrevem cenários que apenas ocorrerão em uma situação específica se determinada condição for satisfeita – necessitam de um teste para determinar se é necessário executar também o caso de uso estendido ou não; Relacionamentos de Extensão representam eventos que não ocorrem sempre, o que não significa que eles sejam incomuns; Sempre que a associação for do tipo extensão deve ser utilizado o Esteriótipo “extend” 14 14 EXEMPLO 02 João decidiu comprar alguns produtos online e, ao entrar no site, resolveu realizar o seu cadastro. No cadastro, deveria informar os seguintes dados: nome completo, endereço, CPF, RG e Data de Nascimento. João percebeu que, para facilitar, o sistema permite que se consulte o CEP nos sistemas do Correio, onde através do mesmo, são retornados os dados básicos do endereço, como rua/avenida, bairro e cidade. 15 Considerando o mesmo cenário do exemplo anterior, em termos de implementação, qual a diferença considerando as 2 modelagens abaixo? A associação entre Cliente o Consultar CEP representa que a qualquer momento o cliente pode realizar a consulta do CEP. 16 EXEMPLO 03 Ao editar um documento, o editor pode realizar duas ações: substituir texto ou corrigir ortografia. 17 EXEMPLO 03 Ao editar um documento, o editor pode realizar duas ações: substituir texto ou corrigir ortografia. Para que o documento seja editado, o mesmo deve possuir até 1000 palavras. 18 EXEMPLO 04 Imaginemos um sistema virtual, onde o cliente realiza login, adiciona livros ao carrinho de compras, visualiza o conteúdo do carrinho de compras, e conclui o pedido. O cliente pode visualizar o carrinho de compras a qualquer momento, mas ao concluir o pedido, esta ação é obrigatória. 19 EXEMPLO 04 Documente o sistema anterior, considerando que, para realizar qualquer ação, é necessário ter realizado login. 20 EXEMPLO 04 - Mudado Imaginemos um sistema virtual, onde o cliente adiciona livros ao carrinho de compras, visualiza o conteúdo do carrinho de compras, e conclui o pedido. O cliente pode visualizar o carrinho de compras a qualquer momento, mas ao concluir o pedido, esta ação é obrigatória. O cliente pode se cadastrar no sistema a qualquer momento, mas caso não esteja cadastrado ao concluir o pedido, é necessário fazê-lo. Caso o cliente não esteja logado ao concluir o pedido, o mesmo deverá fazê-lo. 21 Exemplo 04 EXEMPLO 05 Formulário de Login 22 EXEMPLO 06 Imaginemos a parte do sistema onde um cliente se dirige a um funcionário do banco e solicita o encerramento de sua conta bancária. 23 RESTRIÇÕES EM ASSOCIAÇÕES DE EXTENSÃO Restrições são compostas por um texto entre chaves e utilizadas para definir validações, consistências, condições, etc. Em se tratando de extensões, às vezes não fica claro qual é a condição para que um caso de uso estendido seja executado, assim, pode-se acrescentar uma nota explicativa, determinando a condição para que o caso de uso seja executado. Nota explicativa Âncora 24 Essas restrições nada mais são do que regras de negócio referentes ao processo de encerramento de conta. 25 VAMOS LEMBRAR QUE... Os Casos de Uso identificam, como já foi dito, as funções externas do sistema que os usuários podem utilizar diretamente sem precisar ter conhecimento do que é realizado internamente pelas funções requisitadas. Por esse motivo, normalmente as funções não são muito detalhadas. 26 26 Vamos exercitar: Modele os diagramas de casos de uso para os subsistemas descritos abaixo: 01. Agendamento de consulta médica por telefone. Para realização do agendamento, é necessário que seja feito um cadastro prévio do paciente (caso o mesmo ainda não seja paciente da clínica). 27 Vamos exercitar: 02. Ao realizar uma consulta, o paciente pode necessitar de agendamento de exames. 28 Vamos exercitar: 03. No clube ALFA, ao ser cadastrado um sócio pode incluir até 3 dependentes. 29 Vamos exercitar: 04. Ao realizar uma reserva no Hotel Fênix, um cliente informa seu CPF e, caso o mesmo não seja cadastrado ou seja necessário atualização de seus dados, a atendente realiza tais procedimentos no ato da reserva. 30 05. (NC-UFPR) A respeito do Diagrama de Casos abaixo, identifique como verdadeiras (V) ou falsas (F) as seguintes afirmativas: ( ) “Calcular Valores Devidos” será executado sempre que o Auxiliar Administrativo visualizar o relatório de fornecedores. ( ) Ao visualizar o relatório de fornecedores, a geração do gráfico é opcional. ( ) O detalhamento do funcionamento de um caso de uso pode ser feito por meio de uma especificação. ( ) Da forma como está especificado, “Auxiliar Administrativo” não irá executar o caso de uso “Gerar Gráfico”. ( ) Os casos de uso são executados na seguinte sequência: primeiro “Visualizar Relatório de Fornecedores”, depois “Gerar Gráfico” e depois “Calcular Valores Devidos”. Assinale a alternativa que apresenta a sequência correta, de cima para baixo. a) b) c) d) e) V–V–V–F–F F–V–F–V–F V–V–F–F–V F–F–V–V–F V–F–F–F–V 31 Vamos exercitar: 06. SISTEMA DE LOCAÇÃO DE TEMAS PARA FESTAS INFANTIS Paulo possui uma empresa de locação de temas para festas infantis. Ele precisa controlar os aluguéis e para isso quer uma aplicação que permita cadastrar: o nome e o telefone do cliente, o endereço completo da festa, o tema escolhido, a data da festa, a hora de início e o término da festa. Além disso, para alguns clientes antigos, Paulo oferece descontos. Sendo assim, é preciso saber o valor realmente cobrado num determinado aluguel. Para cada tema, é preciso controlar: a lista de itens que compõem o tema, caso os mesmos ainda não tenham sido cadastrados, ou seja necessário atualização (ex: castelo, boneca da Cinderela, bruxa, etc.), o valor do aluguel e a cor da toalha que deve ser usada com o tema. Paulo deseja saber qual funcionário realizou a locação de cada tema. Fonte: Adaptado de Ana Cristina Melo Vamos exercitar: 07. 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 (conceito atribuído em função dos pontos adquiridos nas locações) 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. 33 7.1. E se no sistema anterior fossem inseridas as Regras de Negócio especificadas abaixo? O que mudaria na modelagem do sistema em questão? RN01: O sistema não deve permitir o cadastro de veículos com a mesma placa; RN02: Só poderão realizar locações os motoristas que estiverem com a CNH ativa; RN03: Ao finalizar a locação, será necessário consultar no Sistema do Detran a existência de multa; RN04: Ao realizar uma locação, será necessário validar se foram registradas multas em locações anteriores e, caso tenha havido, não serão atribuídos benefícios; RN05: O valor da locação deverá ser paga antes da retirada do veículo, havendo as seguintes formas de pagamento: débito em conta, cartão de crédito, transferência bancária e boleto bancário; RN06: Na entrega e na devolução do veículo deverá ser preenchido um checklist dos itens do veículo. 34 Vamos exercitar: 08. Estamos criando um serviço de entregas. Nossos clientes podem nos requisitar a entrega de volumes. Ao solicitar a entrega, os volumes precisam ser cadastrados, bem como os clientes, caso não estejam armazenados na base de dados do sistema. Alguns volumes são considerados de maior valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados durante o transporte. Contratamos uma companhia de seguro para segurar volumes de valor. 35 Vamos exercitar: Controle de Alimentação dos Animais de um Zoológico 09.O zoológico da cidade de São Carlos aloja uma grande quantidade de animais. Basicamente tem-se no zoológico: mamíferos, aves e répteis. De todos esses animais somente para os mamíferos é controlada a alimentação. Para a alimentação dos mamíferos controla-se a data e hora. É importante ressaltar que os mamíferos são divididos em aquáticos e terrestres. A alimentação pode englobar vários alimentos e esses podem estar presentes em várias alimentações. Para cada alimento constituinte da alimentação deseja-se armazenar a quantidade em quilos ou litros. Os alimentos se subdividem em sólidos e líquidos, sendo que para os líquidos deseja-se controlar uma lista de componentes (nome e sua formulação). Sabe-se que: • Uma alimentação só pode ser dada a um e somente um mamífero, mas um mamífero pode receber várias alimentações. • Para os animais deseja-se armazenar um número e data de nascimento. • Para as aves deseja-se armazenar a envergadura. • Para os répteis deseja-se armazenar características. • Para o alimento: código e nome. • Para o alimento sólido: textura. • Para os mamíferos aquáticos: nome científico. 36 • Para os mamíferos terrestres: local de origem. EXEMPLOS DE FERRAMENTAS DE MODELAGEM UML Astah – licença gratuita para estudantes e professores https://astah.net/products/free-student-license/ ArgoUML https://argouml.br.uptodown.com/windows StarUML http://staruml.sourceforge.net/en/ E VÁRIAS OUTRAS... 37 REFERÊNCIAS GUEDES, Gilleanes T. A. UML2: Uma Abordagem Prática. 2 ed. São Paulo: Novatec, 2011. JACOBSON, Ivar. BOOCH, Grady. RUMBAUGH, James. UML GUIA DO USUARIO. 2 ed. Campus, 2006. BEZERRA, Eduardo. Princípios de análise e projeto de sistemas UML: Um guia prático para modelagem de sistemas. 2 ed. Rio de Janeiro, Elsevier: 2006. 38