Anda di halaman 1dari 37

Modelagem de Sistemas de Informao com UML

Desenvolvimento de Software com UML 2006

Introduo

Modelos permitem descrever os requisitos de um sistema de informao de forma conveniente para usurios e implementadores Modelos do negcio a cargo de um analista de negcio

Modelo de casos de uso de negcio viso externa do negcio, contexto do negcio Modelo de processos de negcio viso interna do negcio, com diagramas de atividades Tambm possvel modelar: objetivos do negcio, regras do negcio, estrutura organizacional, ...
Desenvolvimento de Software com UML 2006 2

Introduo

Modelos do sistema a cargo de um analista de sistemas

Modelo da arquitetura do sistema

nvel lgico: mdulos funcionais, comunicao com outros sistemas nvel fsico: distribuio por mquinas, redes e stios

Modelo de casos de uso funcionalidades do sistema, requisitos funcionais Modelo de domnio informao manipulada pelo sistema (entidades informacionais, atributos e relaes), requisitos de informao
Desenvolvimento de Software com UML 2006 3

Introduo

Complementar modelos com

Requisitos suplementares

lista de requisitos que no so descritos adequadamente pelos casos de uso normalmente so requisitos no funcionais

requisitos de qualidade: desempenho, segurana, usabilidade e acessibilidade, disponibilidade e falibilidade,, etc. requisitos impostos pelo ambiente operacional etc.

Glossrio vocabulrio do domnio

fundamental para evitar equvocos

Desenvolvimento de Software com UML

2006

Modelo da arquitetura do sistema

S se justifica em sistemas complexos Decomposio em sub-sistemas, com indicao de dependncias entre sub-sistemas, e dependncias em relao a sistemas externos (arquitetura lgica) Cada sub-sistema corresponde a uma rea funcional (grupo de funcionalidades), cobrindo todas as camadas da implementao (interface com o usurio, base de dados, etc.) Os sub-sistemas podem por sua vez ser decompostos da mesma forma Em UML, representar por diagrama de pacotes, com pacotes (packages) e sub-pacotes

Em alternativa, representar por diagrama de blocos com ligaes/fluxos entre blocos

Possibilidade de indicar esteretipos system e subsystem

Desenvolvimento de Software com UML

2006

Exemplo: Sistema de Gesto de Cuidados de Sade


Gesto de Cuidados de Sade
Cuidados Primrios Cuidados Diferenciados
Sade Pblica
Hospital de Dia
Bloco Operatrio

sistema

Sade Familiar

Cuidados na Comunidade

sub-sistema dependncia

S contactos individualizados estaro registados no SIIMS

Cuidados Comuns
Urgncia Consultas Internamento MCDT

Desenvolvimento de Software com UML

2006

Modelo de casos de uso

Finalidade: mostrar a utilidade ou possveis usos do sistema Contedo: atores (tipos de usurios e sistemas externos que interagem com o sistema), casos de uso (funcionalidades do sistema tal como so vistas externamente, ou tipos de interaes entre atores e o sistema) e relaes entre ambos Casos de uso capturam os requisitos funcionais e alguns no funcionais
Desenvolvimento de Software com UML 2006 7

Formas de modelo de casos de uso

Viso geral Diagrama de casos de uso acompanhado de descrio textual que passa superficialmente pelos casos de uso e atores mais importantes

Desenvolvimento de Software com UML

2006

Exemplo: Sistema de Gesto de Conferncias


Sistema de Gesto de Conferncias

nome do sistema fronteira do sistema

Configurar sistema (dados gerais da conferncia, prazos, temas e revisores)

include Decidir aceitao ou rejeio de artigos Notificar autor-submissor

ator

Presidente do comit de programa Atribuir revisores a artigos include

caso de utilizao
Submeter Artigo Notificar revisores

Obter artigos para rever

Submeter verso final de artigo

Autor-Submissor

Revisor Submeter revises

diagrama de casos de uso Desenvolvimento de Software com UML 2006 9

Formas de modelo de casos de uso

Viso geral (cont.) Se existirem muitos casos de uso, 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

Exemplo: Sistema de Gesto de Hotis (CRM4SH) 1


CRM4SH

Gerente

Aplicao de Gesto

Recepcionista

Site Web Cliente

Pblico

diagrama de pacotes de casos de uso Desenvolvimento de Software com UML 2006 11

Exemplo: Sistema de Gesto de Hotis (CRM4SH) 2


CRM4SH - Site Web
rea para o pblico

CRM4SH - Aplicao de Gesto - Administrao


Configurao
Registar e actualizar caractersticas gerais da empresa

Consultar caractersticas, servios, preos e disponibilidades

Registar e actualizar servios oferecidos e preos


Registar-se como cliente Pblico

Registar e actualizar quartos

rea para clientes registados


Registar empregados com acesso ao sistema

Alterar dados pessoais

Efectuar uma reserva

Estatsticas
Gerente Obter estatstica de taxa de ocupao 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 nvel)

Obter estatstica de evoluo da facturao ao longo do tempo

Obter estatstica de distribuio das vendas por nacionalidade

Consultar historial de estadias, reservas e mensagens

Obter estatstica de clientes com maior facturao

Desenvolvimento de Software com UML

2006

12

Exemplo: Sistema de Gesto de Hotis (CRM4SH) 3


CRM4SH - Aplicao de Gesto - Recepo (1)
Registo de Clientes
Mensagens e Contactos
Registar novo cliente
Enviar mensagem para cliente

CRM4SH - Aplicao de Gesto - Recepo (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 sada prevista
Gerente ou Recepcionista Consultar mapa de ocupao

Gerente ou Recepcionista

Consulta de ocupao

Efectuar mudana de quarto Recepcionista include Registar sada de cliente Emitir factura

Consulta de informao de clientes

Consultar ficha e historial de cliente

Recepcionista

generalizao de casos de uso

generalizao de atores Desenvolvimento de Software com UML 2006 13

Formas de modelo de casos de uso

Viso geral (cont.) Opcionalmente, modelar atravs de um ou mais diagramas de atividades o encadeamento de casos de uso (i.e., modelar workflows ou processos de negcio)

casos de uso aparecem como atividades no diagrama de atividades se tiver sido construdo anteriormente um modelo de processos de negcio, isto j foi feito

Desenvolvimento de Software com UML

2006

14

Modelao do processo de submisso de um artigo desde a submisso at rejeio ou submisso de verso final, submissode actividades em desde Modelagem do processo de por diagrama de um artigo UML
Autor-submissor PC Charir Comisso Revisores
1..*
a1 : Artigo r : RevisorArtigo

Exemplo: Sistema de Gesto de Conferncias 1


objetos de classes do modelo de domnio (ver adiante)
[submetido]
Atribui revisores a artigo

a submisso at a rejeio ou entrega da verso final, por diagrama de atividades em UML

ator passos so execues de casos de uso!

Submete Artigo

fluxo de controle
Decide aceitao ou rejeio

Revm artigo

[artigo aceite]

fluxo de objetos
[artigo rejeitado]

Sumbete verso final

[submetido]

notao no standard tipo assembly line diagram

Desenvolvimento de Software com UML

2006

15

Exemplo: Sistema de Gesto de Conferncias 2


Decomposio da atividade Rever Artigo
Decomposio da actividade "Revm artigo"

Revisor 1

Revisor n

Rev artigo

...

Rev artigo

barra de sincronizao (inicia ou termina execuo em paralelo) Desenvolvimento de Software com UML 2006 16

Formas de modelo de casos de uso

Atores

Nome e breve descrio de cada ator Descrio mais ou menos detalhada de cada caso de uso

Casos de Uso

Desenvolvimento de Software com UML

2006

17

Descrio detalhada de cada caso de uso

Nome

Descrio sumria

Usar normalmente um verbo, evidenciando a finalidade/objetivo/utilidade


Uma ou duas frases curtas, que ficaria bem numa tabela de resumo dos casos de uso, tornando evidente o objetivo/utilidade Indicar os vrios atores intervenientes e o seu papel, tornando evidente quem inicia a interao Indicar a prioridade do caso de uso (por exemplo, essencial, importante e desejvel) Convm considerar pelo menos 3 nveis de prioridade, para ter flexibilidade suficiente na negociao de uma soluo

Atores

Prioridade

Desenvolvimento de Software com UML

2006

18

Descrio detalhada de cada caso de uso

Fluxo de eventos

Semelhante a instrues passo a passo no manual do usurio Por definio, um caso de uo "uma sequncia de aes" Descrever a seqncia de funcionamento normal ponto a ponto Descrever separadamente sequncias de funcionamento alternativos, por diferenas em relao sequncia normal Indicar tanto as aes realizados pelos atores como as aes realizadas pelo sistema Evidenciar os dados de entrada (introduzidos pelos atores) e os dados de sada (fornecidos pelo sistema) Evidenciar como que se inicia o caso de uso (normalmente indicase pela primeira ao do actor)

Desenvolvimento de Software com UML

2006

19

Descrio detalhada de cada caso de uso

Fluxo de evento principal

Exemplo de sequncia normal de funcionamento do caso de uso "Vender bilhetes":


1.

2.

3.
4.

5. 6. 7. 8. 9.

Um cliente dirige-se bilheteria pedindo bilhetes para um espectculo O empregado seleciona o espetculo 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 preo total O empregado transmite ao cliente o preo total O cliente paga os bilhetes O empregado entrega ao cliente os bilhetes
Desenvolvimento de Software com UML 2006 20

Descrio detalhada de cada caso de uso

Fluxo de evento principal

O segredo est em descrever uma sequncia de funcionamento que transmite requisitos importantes, sem entrar em detalhes de implementao!
Descreve uma seqncia de atividades alternativa em caso de alguma anormalidade no fluxo normal Exemplo de Fluxo de exceo - Cliente sem dinheiro"

Fluxo de evento de exceo

8.1 - Se o cliente no tiver dinheiro para pagar, o empregado cancela a venda no sistema e inutiliza os bilhetes 2.1 - Se os bilhetes estiverem esgotados, o espectculo aparece assinalado de forma especial na lista de espetculos e o empregado informa imediatamente o cliente
Desenvolvimento de Software com UML 2006 21

Outro exemplo - Bilhetes esgotados"

Descrio detalhada de cada caso de uso

Fluxo de eventos

Sempre que se justifique (isto , sempre que os diagramas permitem mais rapidamente apreender a informao que se quer transmitir), acompanhar ou substituir a descrio textual por diagramas dinmicos

diagramas de sequncia para descrever sequncias particulares diagrama de atividades para descrever todas as sequncias possveis
Desenvolvimento de Software com UML 2006 22

Exemplo: Sistema de Gesto de Hotis


CRM4SH Sist. Externo de Valid. de Cartes

diagrama de sequncia, mostrando sequncia normal de funcionamento do caso de uso "Registar entrada de cliente sem reserva"

: CRM4SH::Cliente

: CRM4SH::Recepcionista

Pede alojamento indicando n de pessoas, servio e data de sada Introduz n de pessoas, servio e data de sada

objetos

Mostra lista de quartos disponveis e preo Informa quartos dsponveis e preo

Confirma pedido e escolhe quarto(s) Selecciona quarto(s) da lista Pede documento de identificao e carto de crdito

Faculta documento de identificao e carto de crdito Regista dados de identificao do cliente

mensagens
Regista dados do carto de crdito do cliente Valida carto Carto Ok Imprime carto da estadia

Devolve documento de identificao e carto de crdito

Entrega chave e carto de estadia

Desenvolvimento de Software com UML

2006

23

Exemplo: Sistema de Gesto de Hotis


Cliente Recepcionista CRM4SH Sist. Ext. de Valid. de Cartes
Pede alojam. p/ npess. e dt.sada Introduz dados do pedido Verifica disponibilidade Informa cliente [indisponvel] [disponvel]

diagrama de atividades, mostrando todas as sequncias possveis de funcionamento do caso de uso "Registar entrada de cliente sem reserva"

Informa quartos disponveis e preo [no aceita] [aceita] Cancela operao

Mostra lista de quartos disponveis e preo

Escolhe quarto(s)

Selecciona quarto(s) da lista Memoriza informao Pede identificao e carto de crdito

Faculta doc. ident. e carto crdito Regista dados de identificao do cliente Memoriza informao

Regista dados do carto de crdito do cliente Solicita validao do carto Valida carto

[carto invlido] Informa cliente Cancela e informa utilizador [carto ok]

Regista estadia na base de dados

Recolhe documento de identificao

Devolve documento de identificao

Imprime carto da estadia

Recolhe carto de crdito

Devolve carto de crdito

Recolhe carto da estadia

Entrega carto da estadia

Recolhe chave

Entrega chave

Desenvolvimento de Software com UML

2006

24

Descrio detalhada de cada caso de uso

Interface com o usurio


Apresentar esboos ou imagens de prottipos da interface com o usurio fundamental evidenciar qual o grau de fidelidade dos esboos ou prottipos da interface, isto , qual o grau de variao permitida em relao implementao Em muitos casos, faz sentido desenvolver um prottipo relativamente completo da interface com o usurio Normalmente interessa evidenciar mais os contedos e elementos de interao disponveis (botes, links, ...) do que o aspecto visual (estilo e layout)

Desenvolvimento de Software com UML

2006

25

Descrio detalhada de cada caso de uso

Interface com o usurio

Quando o aspecto visual e usabilidade da interface so importantes, deve-se envolver um designer de interfaces (j no competncia tpica do analista) As interfaces apresentadas devem estar consistentes com a descrio das sequncias de funcionamento Opcionalmente, descrever o significado de cada elemento de que aparece na interface (campo, boto, etc.) Opcionalmente, mostrar diagrama de navegao (diagrama de estados com estados da interface) ou storyboard

Desenvolvimento de Software com UML

2006

26

Exemplo: Sistema de Gesto de Conferncias


Diagrama de navegao do caso de uso "Atribuir Revisores a Artigos" (diagrama de estados em UML, em que estados so estados de interface):
evento (ao do usurio)
terminar

estado da interface

Atribuir Revisores a Artigo


artigo ttulo: autores: autor1, autor2, ... PDF resumo: revisores atribudos n art. excluir nome
terminar

Atribuir Revisores a Artigos artigo titulo1 titulo 2

n de revisores
0 1

seleccionar artigo

seleccionar opo "Atribuir revisores a artigos"

Terminar

revisor 1 revisor 2

3 1

excluir
excluir

Dados de Revisor nome: instituio: e-mail: reas de interesse: artigos que rev: artigo1, ...

seleccionar revisor

revisores disponveis n art. atribuir nome revisor 3 revisor 4 3 0 Terminar atribuir atribuir

fechar

Fechar
Desenvolvimento de Software com UML

atribuir

excluir

2006

27

Descrio detalhada de cada caso de uso

Pr-condies (Opcional)

Uma pr-condio uma condio nos dados de entrada e no estado inicial do sistema (com base em modelo de estado definido no modelo de domnio), que deve ser verdadeira para se poder executar o caso de uso Exemplo na venda de bilhetes a scios para um jogo de futebol:

o scio est previamente registado no sistema o jogo ainda no comeou

Opcionalmente, formalizar na Object Constraint Language (OCL)


Desenvolvimento de Software com UML 2006 28

Descrio detalhada de cada caso de uso

Ps-condies (Opcional)

Uma ps-condio uma condio nos dados de entrada, estado inicial do sistema, dados de sada e estado final do sistema, que deve ser verdadeira no final da execuo do caso de uso (com base em modelo de estado definido no modelo de domnio) 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, formalizar na Object Constraint Language (OCL)


Desenvolvimento de Software com UML 2006 29

Descrio detalhada de cada caso de uso

Requisitos especiais (Opcional) Lista de requisitos internos ao caso de uso (features, restries, atores, alerta, ajuda ...) Pode ser uma forma alternativa de transmitir requisitos, em vez de descrever sequncias de funcionamentos Ex: Requisitos internos ao caso de uso "Marcar consulta":

A consulta pode ser marcada pelo mdico ou pela secretria (atores) Um mdico pode marcar uma consulta para outro mdico (atores) No se podem marcar duas consultas para a mesma data, hora e mdico (restrio) O sistema deve alertar o usurio no caso do doente ter outras consultas marcadas (alerta) O sistema deve ajudar o usurio a encontrar vagas (ajuda)
Desenvolvimento de Software com UML 2006 30

Descrio detalhada de cada caso de uso

Pressupostos (Opcional) Classes participantes (Opcional)

Listar as classes (ou entidades informacionais) do modelo de domnio relevantes para o caso de uso ou, se a complexidade o justificar, apresentar um diagrama de classes parcial, com as classes, atributos e relaes relevantes Fontes de informao consideradas (entrevistas, sites, etc.). Se forem iguais para todos os casos de uso, basta indicar no fim do documento, em vez de indicar em cada caso de uso

Fontes e referncias (Opcional)

Desenvolvimento de Software com UML

2006

31

Modelo de domnio - Objetivos

organizar o vocabulrio do domnio do problema (utilizado na descrio dos casos de uso)

organizar e relacionar termos que esto definidos num glossrio ou num dicionrio de dados classes so conceitos
que informao mantida no sistema e trocada com o ambiente classes so entidades informacionais

capturar os requisitos de informao


especificar as transaes do negcio (por operaes) - opcional trs tipos de classes

classes que modelam o estado interno persistente e partilhado do sistema, como atributos de entidades (e eventos) do negcio e respectivas ligaes so 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 operaes das classes anteriores)
Desenvolvimento de Software com UML 2006 32

Modelo de domnio Forma1

Viso geral
Diagrama de classes Descrio textual que passa superficialmente pelas classes mais importantes

Desenvolvimento de Software com UML

2006

33

Exemplo: Sistema de Gesto de Hotis


Hotel 1 1 clientes * nome endereo telefone categoria e-mail /capacidade 1 1 1 1 Servio servio {I} preos nome {I} 1 Preo Servio data de incio {I} data de fim nmero de pessoas {I} preo * Reserva nmero da reserva {I} data da reserva nmero de pessoas data de entrada prevista data de sada prevista nmero do carto de crdito titular do carto de crdito data de expirao do carto de crdito estado: (activa, anulada, efectivada, cliente faltou) 0..1 0..1 Estadia nmero da estadia {I} nmero de pessoas data de entrada data de sada nmero do carto de crdito titular do carto de crdito data de expirao do carto de crdito 1 0..1 Factura nmero {I} data /valor 0..1 * * 1..* servios * quartos * empregados

agregao

classe com atributos


1

Cliente nmero de cliente {I} nome nacionalidade data de nascimento morada telefone nmero do bilhete de identidade ou passaporte {I2} data do bilhete de identidade ou passaporte e-mail 1 1

Quarto nmero {I} capacidade

Empregado login {I} password nome funo

1..*

1 1..*

0..1

associao

* 0..1

Estadia Quarto data de entrada data de sada nmero de pessoas

classe-associao (para indicar atributos)

diagrama de classes
* /

Permite manter informao de mudanas de quarto e indicar a distribuio de pessoas pelos quartos.

nota

contacto seguinte contacto anterior

Contacto com Cliente data-hora modo de contacto iniciativa do contacto descrio 0..1 *

* *

generalizao
Mensagem por e-mail

Desenvolvimento de Software com UML

2006

34

Modelo de domnio Forma2

Descrio de cada classe


Significado Descrio de atributos Definio de restries


Informalmente Formalmente, como invariantes em OCL (opcional) Sintaxe Semntica


Descrio de operaes (quando definidas)

Informalmente Formalmente, com pr-condies e ps-condies em OCL (Opcional)

Ciclo de vida dos objetos da classe (diagrama de estados)

Estados devem corresponder a condies nos valores de atributos e ligaes Nesta fase, eventos devem corresponder a casos de uso, podendo ter parmetros
Desenvolvimento de Software com UML 2006 35

Exemplo: Sistema de Gesto de Hotis


ciclo de vida de uma reserva (diagrama de estados)
registo de reserva

estado transio

Activa

registo de entrada com reserva anulao de reserva passagem da data de entrada prevista

evento (corresponde a execuo de caso de uso)

Efectivada Anulada Cliente faltou

estado composto subestado

eliminao da informao

evento temporal

Desenvolvimento de Software com UML

2006

36

Mais informao

www.uml.org especificaes e recursos sobre UML Use Case Modeling, Kurt Bittner, Lan Spencer, Addison-Wesley, 2003 The Unified Modeling Language User Guide, Grady Booch, James Rumbaugh, Ivar Jacobson, Addison-Wesley, 1998 The Unified Software Development Process, Ivar Jacobson, Grady Booch, James Rumbaugh, Addison-Wesley, 1999
Desenvolvimento de Software com UML 2006 37