You are on page 1of 37

Modelagem de Sistemas de Informação com UML

Desenvolvimento de Software com UML 2006

1

Introdução

Modelos permitem descrever os requisitos de um sistema de informação de forma conveniente para usuários e implementadores Modelos do negócio – a cargo de um analista de negócio

Modelo de casos de uso de negócio – visão externa do negócio, contexto do negócio Modelo de processos de negócio – visão interna do negócio, com diagramas de atividades Também é possível modelar: objetivos do negócio, regras do negócio, estrutura organizacional, ...
Desenvolvimento de Software com UML 2006 2

Introdução

Modelos do sistema – a cargo de um analista de sistemas

Modelo da arquitetura do sistema

nível lógico: módulos funcionais, comunicação com outros sistemas nível físico: distribuição por máquinas, redes e sítios

Modelo de casos de uso – funcionalidades do sistema, requisitos funcionais Modelo de domínio – informação manipulada pelo sistema (entidades informacionais, atributos e relações), requisitos de informação
Desenvolvimento de Software com UML 2006 3

usabilidade e acessibilidade.  Glossário – vocabulário do domínio  fundamental para evitar equívocos Desenvolvimento de Software com UML 2006 4 .Introdução  Complementar modelos com  Requisitos suplementares   lista de requisitos que não são descritos adequadamente pelos casos de uso normalmente são requisitos não funcionais    requisitos de qualidade: desempenho.. segurança. etc. requisitos impostos pelo ambiente operacional etc. disponibilidade e falibilidade.

com pacotes (packages) e sub-pacotes   Em alternativa. cobrindo todas as camadas da implementação (interface com o usuário. base de dados. representar por diagrama de pacotes. e dependências em relação a sistemas externos (arquitetura lógica) Cada sub-sistema corresponde a uma área funcional (grupo de funcionalidades).Modelo da arquitetura do sistema      Só se justifica em sistemas complexos Decomposição em sub-sistemas.) Os sub-sistemas podem por sua vez ser decompostos da mesma forma Em UML. representar por diagrama de blocos com ligações/fluxos entre blocos Possibilidade de indicar estereótipos «system» e «subsystem» Desenvolvimento de Software com UML 2006 5 . com indicação de dependências entre sub-sistemas. etc.

Exemplo: Sistema de Gestão de Cuidados de Saúde Gestão de Cuidados de Saúde Cuidados Primários Cuidados Diferenciados Saúde Pública Hospital de Dia Bloco Operatório sistema Saúde Familiar Cuidados na Comunidade sub-sistema dependência Só contactos individualizados estarão registados no SIIMS Cuidados Comuns Urgência Consultas Internamento MCDT Desenvolvimento de Software com UML 2006 6 .

ou tipos de interações entre atores e o sistema) e relações entre ambos Casos de uso capturam os requisitos funcionais e alguns não funcionais Desenvolvimento de Software com UML 2006 7 . casos de uso (funcionalidades do sistema tal como são vistas externamente.Modelo de casos de uso    Finalidade: mostrar a utilidade ou possíveis usos do sistema Conteúdo: atores (tipos de usuários e sistemas externos que interagem com o sistema).

Formas de modelo de casos de uso  1 Visão geral  Diagrama de casos de uso acompanhado de descrição textual que passa superficialmente pelos casos de uso e atores mais importantes Desenvolvimento de Software com UML 2006 8 .

Exemplo: Sistema de Gestão de Conferências Sistema de Gestão de Conferências nome do sistema fronteira do sistema Configurar sistema (dados gerais da conferência. prazos. temas e revisores) «include» Decidir aceitação ou rejeição de artigos Notificar autor-submissor ator Presidente do comité de programa Atribuir revisores a artigos «include» caso de utilização Submeter Artigo Notificar revisores Obter artigos para rever Submeter versão final de artigo Autor-Submissor Revisor Submeter revisões diagrama de casos de uso Desenvolvimento de Software com UML 2006 9 .

apresentar primeiro um diagrama de pacotes de casos de uso e depois um diagrama de casos de uso para cada pacote  Pacotes devem corresponder a sub-sistemas no modelo da arquitetura Desenvolvimento de Software com UML 2006 10 .Formas de modelo de casos de uso  2 Visão geral (cont.)  Se existirem muitos casos de uso.

Exemplo: Sistema de Gestão de Hotéis (CRM4SH) 1 CRM4SH Gerente Aplicação de Gestão Recepcionista Site Web Cliente Público diagrama de pacotes de casos de uso Desenvolvimento de Software com UML 2006 11 .

preços e disponibilidades Registar e actualizar serviços oferecidos e preços Registar-se como cliente Público Registar e actualizar quartos Área para clientes registados Registar empregados com acesso ao sistema Alterar dados pessoais Efectuar uma reserva Estatísticas Gerente Obter estatística de taxa de ocupação ao longo do tempo Consultar as reservas pendentes Alterar ou anular uma reserva Cliente Enviar mensagem para o hotel Responder a mensagem do hotel «extend» Receber mensagens do hotel diagramas de casos de uso (com pacotes de 2º nível) Obter estatística de evolução da facturação ao longo do tempo Obter estatística de distribuição das vendas por nacionalidade Consultar historial de estadias.Administração Configuração Registar e actualizar características gerais da empresa Consultar características. reservas e mensagens Obter estatística de clientes com maior facturação Desenvolvimento de Software com UML 2006 12 .Aplicação de Gestão .Exemplo: Sistema de Gestão de Hotéis (CRM4SH) 2 CRM4SH . serviços.Site Web Área para o público CRM4SH .

Aplicação de Gestão .Aplicação de Gestão .Recepção (2) Alterar dados de cliente Responder a mensagem de cliente Gerente «extend» Reservas Registar reserva de cliente Gerente Receber mensagens de clientes Alterar ou anular reserva Registar outros contactos com clientes Estadias Registar entrada de cliente sem reserva Registar entrada de cliente Registar entrada de cliente com reserva Alterar data de saída prevista Gerente ou Recepcionista Consultar mapa de ocupação Gerente ou Recepcionista Consulta de ocupação Efectuar mudança de quarto Recepcionista «include» Registar saída de cliente Emitir factura Consulta de informação de clientes Consultar ficha e historial de cliente Recepcionista generalização de casos de uso generalização de atores Desenvolvimento de Software com UML 2006 13 .Recepção (1) Registo de Clientes Mensagens e Contactos Registar novo cliente Enviar mensagem para cliente CRM4SH .Exemplo: Sistema de Gestão de Hotéis (CRM4SH) 3 CRM4SH .

)  Opcionalmente.e. isto já foi feito Desenvolvimento de Software com UML 2006 14 .Formas de modelo de casos de uso  3 Visão geral (cont. modelar através de um ou mais diagramas de atividades o encadeamento de casos de uso (i. modelar workflows ou processos de negócio)   casos de uso aparecem como atividades no diagrama de atividades se tiver sido construído anteriormente um modelo de processos de negócio..

por diagrama de atividades em UML ator passos são execuções de casos de uso! Submete Artigo fluxo de controle Decide aceitação ou rejeição Revêm artigo [artigo aceite] fluxo de objetos [artigo rejeitado] Sumbete versão final [submetido] notação não standard tipo “assembly line diagram” Desenvolvimento de Software com UML 2006 15 . submissãode actividades em desde Modelagem do processo de por diagrama de um artigo UML Autor-submissor PC Charir Comissão Revisores 1.Modelação do processo de submissão de um artigo desde a submissão até à rejeição ou submissão de versão final..* a1 : Artigo r : RevisorArtigo Exemplo: Sistema de Gestão de Conferências 1 objetos de classes do modelo de domínio (ver adiante) [submetido] Atribui revisores a artigo a submissão até a rejeição ou entrega da versão final.

.Exemplo: Sistema de Gestão de Conferências 2 Decomposição da atividade “Rever Artigo” Decomposição da actividade "Revêm artigo" Revisor 1 Revisor n Revê artigo .. Revê artigo barra de sincronização (inicia ou termina execução em paralelo) Desenvolvimento de Software com UML 2006 16 .

Formas de modelo de casos de uso  4 Atores  Nome e breve descrição de cada ator Descrição mais ou menos detalhada de cada caso de uso  Casos de Uso  Desenvolvimento de Software com UML 2006 17 .

tornando evidente quem inicia a interação Indicar a prioridade do caso de uso (por exemplo. importante e desejável) Convém considerar pelo menos 3 níveis de prioridade. tornando evidente o objetivo/utilidade Indicar os vários atores intervenientes e o seu papel. para ter flexibilidade suficiente na negociação de uma solução  Atores   Prioridade   Desenvolvimento de Software com UML 2006 18 . evidenciando a finalidade/objetivo/utilidade Uma ou duas frases curtas.Descrição detalhada de cada caso de uso  Nome   Descrição sumária  Usar normalmente um verbo. essencial. que ficaria bem numa tabela de resumo dos casos de uso.

Descrição detalhada de cada caso de uso  Fluxo de eventos        Semelhante a instruções passo a passo no manual do usuário Por definição. por diferenças em relação à sequência normal Indicar tanto as ações realizados pelos atores como as ações realizadas pelo sistema Evidenciar os dados de entrada (introduzidos pelos atores) e os dados de saída (fornecidos pelo sistema) Evidenciar como é que se inicia o caso de uso (normalmente indicase pela primeira ação do actor) Desenvolvimento de Software com UML 2006 19 . um caso de uo é "uma sequência de ações" Descrever a seqüência de funcionamento normal ponto a ponto Descrever separadamente sequências de funcionamento alternativos.

Um cliente dirige-se à bilheteria pedindo bilhetes para um espectáculo O empregado seleciona o espetáculo no sistema O sistema mostra um mapa com os lugares vagos e ocupados O empregado dialoga com o cliente para determinar os lugares pretendidos O empregado seleciona os lugares pretendidos no sistema O sistema imprime os bilhetes e informa o preço total O empregado transmite ao cliente o preço total O cliente paga os bilhetes O empregado entrega ao cliente os bilhetes Desenvolvimento de Software com UML 2006 20 . 2. 9.Descrição detalhada de cada caso de uso  Fluxo de evento principal  Exemplo de sequência normal de funcionamento do caso de uso "Vender bilhetes": 1. 5. 6. 7. 3. 4. 8.

1 .Se o cliente não tiver dinheiro para pagar.Se os bilhetes estiverem esgotados. o empregado cancela a venda no sistema e inutiliza os bilhetes 2.Descrição detalhada de cada caso de uso  Fluxo de evento principal  O segredo está em descrever uma sequência de funcionamento que transmite requisitos importantes. o espectáculo aparece assinalado de forma especial na lista de espetáculos e o empregado informa imediatamente o cliente Desenvolvimento de Software com UML 2006 21  Outro exemplo . sem entrar em detalhes de implementação! Descreve uma seqüência de atividades alternativa em caso de alguma anormalidade no fluxo normal Exemplo de Fluxo de exceção .“Cliente sem dinheiro"   Fluxo de evento de exceção   8.1 .“Bilhetes esgotados"  .

sempre que os diagramas permitem mais rapidamente apreender a informação que se quer transmitir). acompanhar ou substituir a descrição textual por diagramas dinâmicos   diagramas de sequência para descrever sequências particulares diagrama de atividades para descrever todas as sequências possíveis Desenvolvimento de Software com UML 2006 22 .Descrição detalhada de cada caso de uso  Fluxo de eventos  Sempre que se justifique (isto é.

Externo de Valid. serviço e data de saída Introduz nº de pessoas.Exemplo: Sistema de Gestão de Hotéis CRM4SH Sist. de Cartões diagrama de sequência. serviço e data de saída objetos Mostra lista de quartos disponíveis e preço Informa quartos dsponíveis e preço Confirma pedido e escolhe quarto(s) Selecciona quarto(s) da lista Pede documento de identificação e cartão de crédito Faculta documento de identificação e cartão de crédito Regista dados de identificação do cliente mensagens Regista dados do cartão de crédito do cliente Valida cartão Cartão Ok Imprime cartão da estadia Devolve documento de identificação e cartão de crédito Entrega chave e cartão de estadia Desenvolvimento de Software com UML 2006 23 . mostrando sequência normal de funcionamento do caso de uso "Registar entrada de cliente sem reserva" : CRM4SH::Cliente : CRM4SH::Recepcionista Pede alojamento indicando nº de pessoas.

Exemplo: Sistema de Gestão de Hotéis Cliente Recepcionista CRM4SH Sist. de Cartões Pede alojam. Ext. e dt. p/ nºpess. e cartão crédito Regista dados de identificação do cliente Memoriza informação Regista dados do cartão de crédito do cliente Solicita validação do cartão Valida cartão [cartão inválido] Informa cliente Cancela e informa utilizador [cartão ok] Regista estadia na base de dados Recolhe documento de identificação Devolve documento de identificação Imprime cartão da estadia Recolhe cartão de crédito Devolve cartão de crédito Recolhe cartão da estadia Entrega cartão da estadia Recolhe chave Entrega chave Desenvolvimento de Software com UML 2006 24 . de Valid. ident. mostrando todas as sequências possíveis de funcionamento do caso de uso "Registar entrada de cliente sem reserva" Informa quartos disponíveis e preço [não aceita] [aceita] Cancela operação Mostra lista de quartos disponíveis e preço Escolhe quarto(s) Selecciona quarto(s) da lista Memoriza informação Pede identificação e cartão de crédito Faculta doc.saída Introduz dados do pedido Verifica disponibilidade Informa cliente [indisponível] [disponível] diagrama de atividades.

isto é.Descrição detalhada de cada caso de uso  Interface com o usuário     Apresentar esboços ou imagens de protótipos da interface com o usuário É fundamental evidenciar qual é o grau de fidelidade dos esboços ou protótipos da interface.. .) do que o aspecto visual (estilo e layout) Desenvolvimento de Software com UML 2006 25 . qual o grau de variação permitida em relação à implementação Em muitos casos.. links. faz sentido desenvolver um protótipo relativamente completo da interface com o usuário Normalmente interessa evidenciar mais os conteúdos e elementos de interação disponíveis (botões.

) Opcionalmente. etc.Descrição detalhada de cada caso de uso  Interface com o usuário     Quando o aspecto visual e usabilidade da interface são importantes. mostrar diagrama de navegação (diagrama de estados com estados da interface) ou storyboard Desenvolvimento de Software com UML 2006 26 . descrever o significado de cada elemento de que aparece na interface (campo. deve-se envolver um designer de interfaces (já não é competência típica do analista) As interfaces apresentadas devem estar consistentes com a descrição das sequências de funcionamento Opcionalmente. botão.

. . atribuir nome revisor 3 revisor 4 3 0 Terminar atribuir atribuir fechar Fechar Desenvolvimento de Software com UML atribuir excluir 2006 27 .. PDF resumo: revisores atribuídos nº art. excluir nome terminar Atribuir Revisores a Artigos artigo titulo1 titulo 2 nº de revisores 0 1 seleccionar artigo seleccionar opção "Atribuir revisores a artigos" Terminar revisor 1 revisor 2 3 1 excluir excluir Dados de Revisor nome: instituição: e-mail: áreas de interesse: artigos que revê: artigo1. em que estados são estados de interface): evento (ação do usuário) terminar estado da interface Atribuir Revisores a Artigo artigo título: autores: autor1... autor2.. seleccionar revisor revisores disponíveis nº art.Exemplo: Sistema de Gestão de Conferências Diagrama de navegação do caso de uso "Atribuir Revisores a Artigos" (diagrama de estados em UML.

que deve ser verdadeira para se poder executar o caso de uso Exemplo na venda de bilhetes a sócios para um jogo de futebol:   o sócio está previamente registado no sistema o jogo ainda não começou  Opcionalmente. formalizar na Object Constraint Language (OCL) Desenvolvimento de Software com UML 2006 28 .Descrição detalhada de cada caso de uso  Pré-condições (Opcional)   Uma pré-condição é uma condição nos dados de entrada e no estado inicial do sistema (com base em modelo de estado definido no modelo de domínio).

dados de saída e estado final do sistema. que deve ser verdadeira no final da execução do caso de uso (com base em modelo de estado definido no modelo de domínio) Traduz o efeito/resultado do caso de uso Exemplo (na compra de bilhetes):   foi impresso um bilhete os dados do bilhete ficaram registados no sistema  Opcionalmente. estado inicial do sistema. formalizar na Object Constraint Language (OCL) Desenvolvimento de Software com UML 2006 29 .Descrição detalhada de cada caso de uso  Pós-condições (Opcional)    Uma pós-condição é uma condição nos dados de entrada.

restrições. alerta... ajuda . em vez de descrever sequências de funcionamentos  Ex: Requisitos internos ao caso de uso "Marcar consulta":      A consulta pode ser marcada pelo médico ou pela secretária (atores) Um médico pode marcar uma consulta para outro médico (atores) Não se podem marcar duas consultas para a mesma data. atores.Descrição detalhada de cada caso de uso  Requisitos especiais (Opcional)  Lista de requisitos internos ao caso de uso (features. hora e médico (restrição) O sistema deve alertar o usuário no caso do doente ter outras consultas marcadas (alerta) O sistema deve ajudar o usuário a encontrar vagas (ajuda) Desenvolvimento de Software com UML 2006 30 .)  Pode ser uma forma alternativa de transmitir requisitos.

). em vez de indicar em cada caso de uso  Fontes e referências (Opcional)   Desenvolvimento de Software com UML 2006 31 . sites. apresentar um diagrama de classes parcial. basta indicar no fim do documento.Descrição detalhada de cada caso de uso   Pressupostos (Opcional) Classes participantes (Opcional)  Listar as classes (ou entidades informacionais) do modelo de domínio relevantes para o caso de uso ou. Se forem iguais para todos os casos de uso. etc. atributos e relações relevantes Fontes de informação consideradas (entrevistas. se a complexidade o justificar. com as classes.

Modelo de domínio . como atributos de entidades (e eventos) do negócio e respectivas ligações – são as classes mais importantes classes que modelam a estrutura de documentos trocados entre o sistema e o seu ambiente classes que modelam tipos de dados (usados nos atributos e operações das classes anteriores) Desenvolvimento de Software com UML 2006 32 .Objetivos  organizar o vocabulário do domínio do problema (utilizado na descrição dos casos de uso)   organizar e relacionar termos que estão definidos num glossário ou num dicionário de dados classes são conceitos que informação é mantida no sistema e trocada com o ambiente classes são entidades informacionais  capturar os requisitos de informação     especificar as transações do negócio (por operações) .opcional três tipos de classes    classes que modelam o estado interno persistente e partilhado do sistema.

Modelo de domínio – Forma1  Visão geral Diagrama de classes  Descrição textual que passa superficialmente pelas classes mais importantes  Desenvolvimento de Software com UML 2006 33 .

.* 0.1 associação 1 * 0.* serviços * quartos * empregados agregação classe com atributos 1 Cliente número de cliente {I} nome nacionalidade data de nascimento morada telefone número do bilhete de identidade ou passaporte {I2} data do bilhete de identidade ou passaporte e-mail 1 1 Quarto número {I} capacidade Empregado login {I} password nome função 1. anulada.....Exemplo: Sistema de Gestão de Hotéis Hotel 1 1 clientes * nome endereço telefone categoria e-mail /capacidade 1 1 1 1 Serviço serviço {I} preços nome {I} 1 Preço Serviço data de início {I} data de fim número de pessoas {I} preço * Reserva número da reserva {I} data da reserva número de pessoas data de entrada prevista data de saída prevista número do cartão de crédito titular do cartão de crédito data de expiração do cartão de crédito estado: (activa.. nota * * * contacto seguinte contacto anterior Contacto com Cliente data-hora modo de contacto iniciativa do contacto descrição 0....1 * * * generalização Mensagem por e-mail Desenvolvimento de Software com UML 2006 34 . efectivada. cliente faltou) 0..1 0.* 1 1.1 * * 1.1 Factura número {I} data /valor 0.1 Estadia número da estadia {I} número de pessoas data de entrada data de saída número do cartão de crédito titular do cartão de crédito data de expiração do cartão de crédito 1 0.1 Estadia Quarto data de entrada data de saída número de pessoas classe-associação (para indicar atributos) diagrama de classes * / Permite manter informação de mudanças de quarto e indicar a distribuição de pessoas pelos quartos.

com pré-condições e pós-condições em OCL (Opcional)  Ciclo de vida dos objetos da classe (diagrama de estados)   Estados devem corresponder a condições nos valores de atributos e ligações Nesta fase. eventos devem corresponder a casos de uso. como invariantes em OCL (opcional) Sintaxe Semântica    Descrição de operações (quando definidas)   Informalmente Formalmente. podendo ter parâmetros Desenvolvimento de Software com UML 2006 35 .Modelo de domínio – Forma2  Descrição de cada classe    Significado Descrição de atributos Definição de restrições   Informalmente Formalmente.

Exemplo: Sistema de Gestão de Hotéis ciclo de vida de uma reserva (diagrama de estados) registo de reserva estado transição Activa registo de entrada com reserva anulação de reserva passagem da data de entrada prevista evento (corresponde a execução de caso de uso) Efectivada Anulada Cliente faltou estado composto subestado eliminação da informação evento temporal Desenvolvimento de Software com UML 2006 36 .

1998 The Unified Software Development Process. Lan Spencer. James Rumbaugh. Ivar Jacobson. James Rumbaugh. Grady Booch. Addison-Wesley. 1999 Desenvolvimento de Software com UML 2006 37 .Mais informação     www.uml. Addison-Wesley.org – especificações e recursos sobre UML Use Case Modeling. Kurt Bittner. Ivar Jacobson. 2003 The Unified Modeling Language User Guide. Grady Booch. Addison-Wesley.