Upload
guilherme
View
3.490
Download
1
Embed Size (px)
DESCRIPTION
Análise e Projeto de Sistemas
Citation preview
1
© 2008 José Luiz G. Bastos Jr.
Análise e Projeto de Sistemas
Aula expositiva 04
Professor José Luiz Bastos
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDefinição (1/2)
• A UML (Unified Modeling Language) é:– Linguagem de modelagem utilizada para especificar,
visualizar, construir e documentar os artefatos de um sistema de software;
– Unificação das notações dos métodos de Booch, OMT e OOSE, assim como as melhores idéias de um grupo de metodologistas;
– Padrão industrial para a modelagem em todo o ciclo de desenvolvimento de software.
– Sistema de notação dirigido à modelagem de sistemas orientados a objetos.
– Captura a estrutura de sistemas orientados a objetos e utiliza diversos diagramas para expressá-la e fornecer múltiplas visões daqueles.
© 2008 José Luiz G. Bastos Jr.
Introdução a UML Definição (2/2)
• A UML tem se tornado um padrão mundial utilizado por desenvolvedores, autores e fornecedores de ferramentas CASE, pois procura integrar as melhores práticas existentes no mercado para especificar, visualizar e construir os artefatos de sistemas de software.
• A UML é aplicável em:– Modelagem de processos de negócio;– Modelagem de casos de uso;– Modelagem de classes e objetos;– Modelagem de interação entre objetos; – Modelagem de componentes;– Modelagem de implantação de componentes.
© 2008 José Luiz G. Bastos Jr.
Introdução a UML Modelagem visual (1/3)
• Veja a seguinte descrição:– A classe Aluno possui os seguintes atributos:
matrícula (string), nome (string), data de nascimento (date), data de matrícula (date), valor da mensalidade (real);
– E as seguintes operações:
matricular aluno, reajustar mensalidade (que recebe como parâmetro o percentual de reajuste), trancar matricula, emitir boleto de pagamento (que recebe como parâmetro o mês/ano de referência).
2
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLModelagem visual (2/3)
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0
• Cada diagrama da UML tem como objetivo analisar o sistema sob uma perspectiva.
• Alguns apresentam uma visão externa do sistema, outros apresentam uma visão mais interna do sistema com características mais técnicas ou detalhadas de partes do mesmo.
• Os diferentes diagramas da UML permitem a descoberta de erros e a avaliação da integração entre os modelos do sistema ainda em projeto.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Esse diagrama é utilizado para representar a especificação funcional do sistema e se popularizou devido à sua notação gráfica simples e à sua descrição em linguagem natural, já que o seu propósito primário é descrever as funções essenciais do sistema, o seu comportamento dinâmico, bem como os seus limites e abrangência.
• Ajuda a especificar, visualizar e documentar as características, funções e serviços do sistema através da perspectiva do usuário e de uma linguagem simples, possibilitando a compreensão do comportamento externo do sistema por qualquer pessoa.
3
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• As características anteriores permitem que o diagrama de casos de uso seja utilizado nas etapas de Levantamento e Análise de Requisitos e que seja apresentado durante as reuniões iniciais com os clientes, como uma forma de ilustrar o comportamento do sistema, facilitar a compreensão dos usuários e auxiliar na identificação de possíveis falhas de especificação.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Ementa desta aula:– Sistema;– Requisitos do Sistema;– Caso de Uso;
– Fluxos do Caso de Uso;– Fronteira do Sistema;– Ator;– Lista de Atores;
– Relacionamentos;– Documentação de Casos de Uso;– Requisitos Não Funcionais;
– Engenharia de Requisitos.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
SISTEMA:
4
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Requisitos do Sistema: – Um requisito descreve uma condição com a qual o sistema
deve estar conforme;
– Esta condição pode ser uma necessidade dos usuários, estabelecida em um contrato, uma norma ou padrão, uma especificação, formalizado em algum documento;
– UML: Um requisito é uma funcionalidade desejada, uma propriedade ou um comportamento do sistema;
– Uma vez que o Analista levante os requisitos com o usuário, é necessário documentá-los para entendimento e validação;
– Essa documentação deve servir de base não ambígua para toda a equipe de desenvolvimento;
– A documentação de requisitos evita que informações importantes se percam.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Desenvolvedor: – O que o é esperado desse sistema?
• Usuário: – Eu tenho uma loja de peças. Gostaria que o meu processo
de vendas fosse interligado com meu estoque e que eu pudesse, a qualquer momento, alterar valores das formas de pagamento. Posso oferecer descontos a alguns tipos de clientes, mas preciso autorizar essa operação.
– No fim do mês quero um relatório dos produtos que mais venderam. Preciso também saber a estatística de vendas por forma de pagamento.
– De tempos em tempos deve aparecer na tela do sistema uma promoção relâmpago que dê um brinde ao cliente.
– Preciso que o sistema controle os pedidos também.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• O que é ambíguo ou não compreensível nessa descrição? – Que tipos de clientes podem receber descontos?– Como seria feita esta autorização de desconto e por
quem?
– Que quantidade de produtos deve aparecer no relatório dos mais vendidos?
– A estatística leva em conta qual período (semanal, quinzenal, mensal, etc.)?
– Quanto tempo significa “de tempos em tempos”?
– Quais pedidos precisam ser controlados: os dos clientes ou os feitos aos fornecedores?
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Utilizando a modelagem de casos de uso, o desenvolvedor deve separar as funcionalidades do sistema;
• Essas funcionalidades agrupam um conjunto de ações que tenham um objetivo bem definido;
• Os casos de uso representam essas funcionalidades.
5
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
Algumas funcionalidades que caberiam para o exemplo dado:
• Sistema de Vendas:– Consultar informações sobre um produto;– Efetuar reserva;– Emitir comprovante de reserva;
– Efetuar venda;– Emitir nota fiscal;– Realizar fechamento do caixa.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Cada caso de uso possui um conjunto de ações que precisam ser executadas para que o objetivo da funcionalidade seja alcançado;
• No caso de efetuar venda: identificar o vendedor, identificar o produto, a quantidade vendida, etc;
• Essas ações constituem os fluxos que são realizados pelos casos de uso para disponibilizar o resultado desejado.
6
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Fluxo principal:– Descreve uma seqüência de ações que serão
executadas, considerando que nada de errado ocorrerá durante a execução da seqüência (o chamado caminho “feliz” do caso de uso);
– Apenas 1 por caso de uso;
• Fluxos alternativos: – Representam sub-itens do fluxo principal;– Representam os tratamentos de exceção;– Nenhum ou vários por caso de uso.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
Exemplo: Caso de Uso “Emitir Saldo”:Fluxo principal:1. O sistema realiza a leitura do cartão
magnético do correntista;2. O sistema solicita a digitação da senha;3. O sistema valida a senha digitada;4. O correntista seleciona a opção de saldo;5. O sistema questiona o tipo de saldo: conta
corrente, poupança, aplicações;6. O sistema processa e mostra o saldo
solicitado pelo cliente.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
Fluxo alternativo Problema na leitura do cartão magnético:
1. Se o sistema não conseguir ler os dados do cartão magnético, tentar novamente por, no máximo, mais duas vezes;
2. Caso persista o problema, encerrar o caso de uso.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
Fluxo alternativo Senha inválida:
1. Se a senha digitada pelo correntista não for igual à senha cadastrada no sistema, informar ao mesmo e solicitar nova digitação. Esse processo pode ser repetido por no máximo três tentativas (incluindo a primeira). Após a terceira tentativa, a conta do usuário deve ser bloqueada e o caso de uso encerrado. Inclusão: Bloquear Conta.
7
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
Fluxo alternativo Conta inexistente:
1. Se o correntista não possuir o tipo de conta selecionada, informar ao mesmo e encerrar o caso de uso.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
TENHA EM MENTE!!!!• Ao modelarmos um sistema, precisamos
saber até que ponto devemos nos preocupar;• Esses pontos-limite são a fronteira do
sistema. Exemplo:– Imagine que estamos modelando um Sistema de
Controle de Vendas;– Em algum momento o Sistema de Controle de Vendas
emite o faturamento semanal ou mensal de cada vendedor para o Departamento Pessoal;
– Não é responsabilidade do Sistema de Controle de Vendas saber o que o Departamento Pessoal farácom essa informação.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
FRONTEIRA
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Os sistemas recebem e enviam informações para o mundo externo através de suas fronteiras;
• Alguém ou algo deve ser responsável por enviar e/ou receber informações do sistema;
• Na modelagem de casos de uso, esse papel externo é exercido por um ator. Esse ator representa um papel que pode ser:– Uma pessoa;– Um grupo de pessoas;– Um outro sistema;– Sensores.
8
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Ator:– Representa qualquer coisa que interaja com o sistema,
ou seja, que troque dados ou eventos com o sistema;– Atores não fazem parte do sistema;
– Atores podem ser usuários ou outros sistemas;– Atores identificam elementos externos ao sistema;– Atores delimitam as fronteiras do sistema;
– Atores podem ativar os casos de uso ou não.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Um ator representa um papel exercido por um usuário ou outro sistema ao interagir com o sistema em questão. Exemplo:– Uma pessoa (João) pode assumir o papel de cliente
ao realizar um saque em um caixa de auto-atendimento;
– A mesma pessoa (João) pode assumir o papel de operador ao realizar a manutenção de um caixa de auto-atendimento.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Outro exemplo:– Em um Sistema de Controle Acadêmico, a rotina de
atualizar a frequência dos alunos pode ser executada pelos funcionários da secretaria, pelo próprio professor ou pelo Sistema de Avaliação On-line;
– Esses papéis são representados por atores.
9
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Casos de uso:– Devem descrever uma rotina bem definida do sistema;– Devem ser totalmente compreensíveis pela equipe e
pelos usuários;
– Devem ser utilizados durante todo o processo de desenvolvimento:
• Criação dos modelos de análise e projeto;
• Criação dos modelos de implementação;
• Criação das especificações de testes do sistema.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Casos de uso:– Devem identificar com quais atores interagem, com
isso o projetista tem informação para criar os perfis de acesso ao sistema;
– Devem especificar como alcançar a realização de um procedimento, sem relacionar detalhes de implementação;
– Exemplo: • O cliente seleciona na lista o produto desejado.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Relacionamentos:– Não devem representar validações que todo sistema já
possuir por padrão:• Exemplo: checar se a data é uma data válida do
calendário;
– Devem expressar validações que refiram às regras de negócio;
• Exemplo: a data de rescisão do contrato deve estar dentro do mês corrente;
– Pode-se iniciar a modelagem por uma lista de casos de uso ou uma lista de atores.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
Relacionamentos:• Entre casos de uso:
– Generalização;– Extensão;– Inclusão;
• Entre atores:– Generalização;
• Entre atores e casos de uso:– Associação.
10
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Associação:– Ocorre entre um ator e um caso de uso;– Representa a interação do ator com o caso de uso.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Extensão:– Ocorre entre casos de uso;– Indica que um deles (caso de uso base) terá seu
procedimento acrescido no ponto de extensão especificado;
– Os pontos de extensão são rótulos que aparecem nos fluxos dos casos de uso;
– É permitido colocar diversos pontos de extensão no mesmo caso de uso.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Exemplo: Caso de Uso “Efetuar Venda”;Fluxo Principal:1. ...2. Escolher a forma de pagamento;
3. Se cliente VIP, calcular desconto especial;Extensão: Efetuar desconto especial;
4. Apresentar o valor total;5. ...
11
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Quando usar pontos de extensão:– Para expressar rotinas de exceção;– Para expressar fluxos alternativos;– Para separar um comportamento obrigatório de outro
opcional;– Para separar um trecho do caso de uso que será
usado somente em determinadas condições;– Para separar trechos que dependam da interação com
um determinado ator.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Exemplo: no cadastro de uma venda, a rotina de desconto só pode ser executada pelo gerente.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Inclusão:– Ocorre entre casos de uso;– Indica que um deles terá o seu procedimento copiado
em um local especificado em outro caso de uso;
– São usados quando existem ações que servem a mais de um caso de uso;
– Evita a cópia de trechos idênticos nos fluxos de mais de um caso de uso;
– Ganha-se tempo em modelagem, implementação e manutenção.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Exemplo: Caso de Uso “Matricular nos cursos”;Fluxo Principal:1. ...2. O aluno digita a sua matrícula;
3. O sistema verifica se a matrícula é válida e ativa;Inclusão: Validar matrícula;
4. Se matrícula é válida o sistema apresenta nos cursos;5. …
12
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Generalização:– Ocorre entre casos de uso ou entre atores;– Representa dois elementos semelhantes com um
deles realizando um pouco mais;
– É o mesmo conceito de herança da orientação a objetos:
• Um caso de uso no qual C2 herda de C1, significa que C1 é mais genérico e C2 é mais específico;
– Exemplo de generalização entre atores:• Aluno, Aluno Matriculado, Aluno Ouvinte.
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
IMPORTANTE:
• Os atores representam os papéis realizados pelos usuários, e não a pessoa do usuário;– Certo: Gerente, Funcionário, Estudante, Professor;
– Errado: Pedro, João, Maria, José.
• Uma vez identificado o caso de uso, descreva seu fluxo principal;
• A partir do fluxo principal identifique e descreva os fluxos alternativos;
• Caso descubra fluxos comuns utilize inclusão;• Para casos de uso muito complexos utilize extensão.
13
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Organizando o modelo com pacotes:
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Organizando o modelo com pacotes:
© 2008 José Luiz G. Bastos Jr.
Diagramas da UML 2.0 Diagrama de Caso de uso
• Organizando o modelo com pacotes:
© 2008 José Luiz G. Bastos Jr.
Análise e Projeto de Sistemas
Aula expositiva 05
Professor José Luiz Bastos
14
© 2008 José Luiz G. Bastos Jr.
Introdução
• O diagrama de classes é considerado o mais importante diagrama da UML, pois serve de base para a maioria dos outros diagramas desta linguagem de modelagem. Ele oferece uma visão estática do sistema que permite a visualização das classes que o compõem, seus atributos e as operações, bem como os relacionamentos entre as mesmas.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (1/36)
• Uma classe é representada por um retângulo com três seções:– Nome da classe;– Atributos;– Operações.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (2/36)
• Proteção de dados visa garantir o acesso apenas sobre operações e atributos disponibilizados pela interface da classe;– Modificadores de acesso: Public (+);– Protected (#);– Package (~);– Private (-).
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (3/36)
• Um atributo é uma propriedade de uma classe que descreve um conjunto de valores que as instâncias da classe, objetos, podem atribuir a essa propriedade.
15
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (4/36)
• Um atributo derivado é um atributo cujo valor pode ser calculado baseado no valor de outro(s) atributo(s):– Atributo objA.média.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (5/36)
• Um atributo estático é um atributo cujo valor é compartilhado por todas as instâncias, objetos, da classe:– Atributo Funcionário.PISO_SALARIAL.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (6/36)
• Um atributo não estático possui um valor único para cada objeto, instância da classe:– Atributo objA.nome.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (7/36)
• Uma operação é um serviço que pode ser requisitado por qualquer objeto da classe para obter um comportamento:– Operação objA.obterNome().
Operações
16
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (8/36)
• Uma operação abstrata é aquela que não possui um método que a implemente na classe:– Operação objA.obterIdade();
• Uma classe que possui uma ou mais operações abtratas é dita classe abstrata:– Classe Pessoa.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (9/36)
• Uma operação estática é independente de objeto e acessa apenas atributos estáticos;
• O acesso a operações estáticas éindependente de objeto:– Funcionário.obterPisoSalarial().
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (10/36)
• Um estereótipo define um novo elemento de modelagem em termos de um elemento inicial;
• Algumas vezes é necessário acrescentar novos elementos ao modelo para torná-lo mais aderente ao domínio da aplicação;
• Os novos elementos são definidos a partir dos elementos primitivos já existentes na UML.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (11/36)
• A especialização de objetos segundo os 3 estereótipos propostos por Jacobson auxilia na construção de sistemas fáceis de serem estendidos e alterados;
• Estereótipos propostos por Jacobson:– Fronteira;– Controle;– Entidade.
17
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (12/36)
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (13/36)
• Uma classe de fronteira modela a comunicação entre a vizinhança de um sistema e seus componentes internos;
• As classes de fronteira provêem a interface com o usuário ou outro sistema;
• Classes de fronteira típicas:– Janelas e relatórios (interface com o usuário);– Protocolos de comunicação (interface com o sistema);– Interface com dispositivos de hardware.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (14/36)
• Classes de entidade:– Modelam itens importantes de informação:
• Geralmente são as primeiras levantadas na análise dos fluxos dos casos de uso;
– Tipicamente independentes da aplicação;– Tipicamente essenciais:
• Necessárias para cumprir alguma responsabilidade do produto;
– Freqüentemente persistentes: • Correspondem a entidades de bancos de dados.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (15/36)
• Classes de controle:– Modelam o comportamento de controle específico a
um ou mais casos de uso.– Criam, iniciam e excluem objetos controlados;
– Coordenam a ação dos objetos controlados;
• Exemplos:– Controlador de conexão;– Controlador de impressão;
– Controlador de matrícula;– Controlador de pedido;– Controlador de faturamento.
18
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (16/36)
• Classe abstrata:– O nome da classe aparece em itálico:
• Classe Pessoa.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (17/36)
• Interfaces: O propósito de uma interface éencapsular um conjunto de operações oferecidas pela classe;– É comum apresentarmos na interface apenas parte
das operações;– A interface especifica a assinatura das operações;
– O relacionamento utilizado é o de realização.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (18/36)
• Uma outra classe que use ou requeira operações supridas pela interface é ligada a esta por uma dependência.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (19/36)
• Nome de relacionamentos:– É mostrado próximo à linha do relacionamento, de
forma centralizada;– Deve ser um nome que exprima o significado do
relacionamento.– Pode também ser um verbo, desde que esteja claro
qual é o sujeito e qual é o objeto.
19
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (20/36)
• Papéis em relacionamentos:– Um papel denota o propósito ou capacidade em que
uma classe se associa com outra;– O nome de um papel é colocado ao longo da linha de
associação, próximo à classe referenciada;– Um ou ambos os lados da associação podem ter
nomes de papéis.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (21/36)
• Multiplicidade é o número de instâncias possíveis em um relacionamento entre classes (é o número de instâncias de uma classe relacionada a uma instância de outra classe);
• Para cada relacionamento devem ser tomadas duas decisões de multiplicidade: uma para cada lado da associação.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (22/36)
• Consiste de um conjunto de números inteiros não-negativos;
• Se contiver um asterisco *, ele significa uma faixa infinita de números inteiros não-negativos;
� 1 ou 1..1 = exatamente 1� 0..* = zero ou mais� 1..* = um ou mais
� 0..1 = zero ou um� 5..8 = intervalo específico� 4..7, 9 = combinação (4,5,6,7,9)
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (23/36)
20
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (24/36)
• Navegabilidade:– Os relacionamentos podem ser bidirecionais ou
unidirecionais;– Uma seta é adicionada ao relacionamento quando a
navegação vem apenas em uma direção;– Quando a seta é omitida a navegação é desconhecida
ou é bidirecional;– Exemplo: Um eleitor deve saber em quem votou, mas
o candidato não deve saber quem votou nele.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (25/36)
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (26/36)
• Associação binária conecta duas classes;
• Associação n-ária possui três ou mais classes ligadas pelo relacionamento.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (27/36)
• Associações reflexivas são associações de uma classe com ela própria.
21
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (28/36)
• Uma restrição XOR indica que apenas uma dentre as várias associações representadas pode ocorrer. Ambas não podem ocorrem ao mesmo tempo.
OU
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (29/36)
• Uma classe de associação é responsável por dados e comportamento de uma associação;
• De um modo geral, surge como responsável por atributos/serviços, resultado de um relacionamento n-n entre duas classes.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (30/36)
• Agregação é uma forma especial de associação onde o todo está relacionado às suas partes.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (31/36)
• Agregações reflexivas são agregações de uma classe com ela mesma.
22
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (32/36)
• Composição indica ciclos de vida dependentes.
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (33/36)
• Composições reflexivas são composições de uma classe com ela mesma;
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (34/36)
• Herança simples:
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (35/36)
• Herança múltipla:
23
© 2008 José Luiz G. Bastos Jr.
Introdução a UMLDiagrama de classes (36/36)
• Dependências:
© 2008 José Luiz G. Bastos Jr.
Análise e Projeto de Sistemas
Aula expositiva 06
Professor José Luiz Bastos
© 2008 José Luiz G. Bastos Jr.
Diagrama de Objetos (1/5)
• Representa uma instância de um Diagrama de Classes em um determinado contexto;
• Pada cada classe temos um objeto (sua instância);
• É útil para: – Visualizar mais claramente a relação entre os objetos
das classes;– Visualizar dados reais;
– Validar o modelo de classes;– Identificar problemas na execução de uma aplicação.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Objetos (2/5)
• Deve mostrar apenas os objetos relevantes em um determinado contexto;
• Notação UML para objetos:– nomeDoObjeto : nomeDaClasse;
24
© 2008 José Luiz G. Bastos Jr.
Diagrama de Objetos (3/5)
• Notação UML para atributos dos objetos: nomeDoAtributo: tipo = valor;
• Se o tipo for citado, deve ser o mesmo da classe, mas pode ser omitido;
• Atributos cujos valores podem mudar durante o processamento apresentam uma lista de valores.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Objetos (4/5)
• Relacionamentos entre os objetos são feitos através de links;
• Um link éuma instância de uma associação;• O nome do papel pode ser mostrado ao final
do link;• O nome da associação pode ser mostrado
próximo ao link;• Multiplicidades não são mostradas pois os
links já são instâncias;• Agregação, composição e navegação podem
ser mostradas.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Objetos (5/5)
© 2008 José Luiz G. Bastos Jr.
Diagrama de Atividades (1/12)
• Aplicação:– Modelagem de workflow;– Modelagem de processamento paralelo;– Modelagem de fluxos de casos de uso;
– Descrição de algoritmos seqüenciais;
• Não devem ser usados em:– Modelagem de comportamento de objetos (usar os
diagramas de interação neste caso) ;
– Modelagem do ciclo de vida de objetos (usar o diagrama de estados neste caso).
25
© 2008 José Luiz G. Bastos Jr.
Diagrama de Atividades (2/12)
• Uma atividade é um estado de realização de algo:– Um processo do negócio;– Uma rotina de software;
• Um Diagrama de Atividades:– Descreve uma seqüência de atividades;– Suporta comportamento condicional e paralelo.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Atividades (3/12)
• Comportamento condicional:– É delineado por desvios e intercalações;– Desvio:
• Uma transição de entrada;
• Várias transições de saída guardadas;
• Somente uma transição de saída pode ser tomada;
– Intercalação:• Múltiplas transições de entrada;
• Uma transição de saída;
• Marca o final de um desvio.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Atividades (4/12)
© 2008 José Luiz G. Bastos Jr.
Diagrama de Atividades (5/12)
• Comportamento paralelo:– É indicado por separações e junções;– Separação:
• Uma transição de entrada;
• Várias transições de saída;
• Uma transição de entrada dispara todas as transições de saída;
– Junção:• Múltiplas transições de entrada;
• Sincroniza as atividades que acontecem em paralelo;
• Separação e junção devem se completar.
26
© 2008 José Luiz G. Bastos Jr.
Diagrama de Atividades (6/12)
© 2008 José Luiz G. Bastos Jr.
Diagrama de Atividades (7/12)
• Thread condicional:– Atividade com uma condição de guarda antes;– Se a condição for falsa a atividade é considerada
completada;
– Permite que junções sejam feitas sem que atividades paralelas sejam executadas.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Atividades (8/12)
© 2008 José Luiz G. Bastos Jr.
Diagrama de Atividades (9/12)
• Subatividades:
– Uma atividade pode ser dividida em subatividades;
– Pode-se usar estados de início e fim no subdiagrama;
– Pode-se projetar transições diretamente para dentro ou para fora do subdiagrama.
27
© 2008 José Luiz G. Bastos Jr.
Diagrama de Atividades (10/12)
© 2008 José Luiz G. Bastos Jr.
Diagrama de Atividades (11/12)
• Raias:– Dizem quem faz o quê;
– Deve-se organizar o diagrama em zonas verticais separadas por linhas;
– Cada raia representa a responsabilidade de uma classe, ator, departamento, etc.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Atividades (12/12)
© 2008 José Luiz G. Bastos Jr.
Análise e Projeto de Sistemas
Aula expositiva 07
Professor José Luiz Bastos
28
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (1/19)
• O Diagrama de Estados descreve o comportamento de objetos em relação a eventos;
• Apresenta uma seqüência de estados e ações que ocorrem durante a vida do objeto, em resposta a eventos;
• O Diagrama de Estados mostra o ciclo de vida de um objeto, ou seja, seus estados, os eventos que causam a transição de um estado para outro e as ações que resultam de uma mudança de estado.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (2/19)
• Estado:– É uma condição detectada durante o ciclo de vida de
um objeto quando ele:• Satisfaz alguma condição;
• Realiza alguma atividade;
• Aguarda por algum evento;
– O Estado de um objeto é uma das possíveis condições nas quais ele pode existir durante a sua vida.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (3/19)
• Um estado é representado graficamente como um retângulo com cantos arredondados;
• O nome do estado é colocado no centro do mesmo.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (4/19)
Compartimentos:• Um estado pode ser opcionalmente
subdividido em compartimentos:– Compartimento de Nome:
• Armazena o nome do estado, como uma string;
– Compartimento de transições internas:• Armazena uma lista de ações ou atividades internas que
são executadas enquanto o objeto se apresenta no estado em questão.
29
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (5/19)
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (6/19)
• Estados x atributos:– O estado de um objeto pode ser caracterizado pelo
valor de um ou mais de seus atributos.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (7/19)
• Estados podem ser caracterizados pela existência de um relacionamento com outro objeto;
• Diagrama de estados da classe Professor:
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (8/19)
• Estado inicial:– Indica o local de início do diagrama de estados;– Cada diagrama deve possuir um e apenas um estado
inicial(exceto para diagramas aninhados);• Representação: Um círculo preenchido.
30
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (9/19)
• Estado final:– Indica o fim da existência de um objeto ou o final da
realização de uma atividade (para diagramas aninhados);
– Um diagrama pode ter múltiplos estados finais.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (10/19)
• Transição:– Relacionamento entre dois estados;– Indica que haverá uma mudança de estado e que
determinadas ações serão executadas;
– Pode ocorrer como resultado de algum evento.– Pode ter que satisfazer a alguma condição;– O estado sucessor pode ser o estado original;
– É representada com uma seta do estado de origem para o estado de destino.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (11/19)
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (12/19)
assinaturaDoEvento [condiçãoDeGuarda] / expressãoAção
• [condiçãoDeGuarda] – Quando verdadeira, permite que a transição seja feita;– Só é avaliada depois que o evento ocorre;– Várias transições a partir do mesmo estado de origem,
identificadas com o mesmo evento, se diferenciam pela condição de guarda;
– É colocada entre colchetes;
• Exemplo:
Checar Estoque [estoqueAtual <= EstoqueMínimo]
31
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (13/19)
assinaturaDoEvento [condiçãoDeGuarda] / expressãoAção
• expressãoAção:– Somente é executada no início da transição, se esta
ocorrer;
– Pode ser descrita com operações;– É precedida por uma barra /;
• Exemplo:– Nota lançada [nota = 7.0] / FechaProvasRegulares()
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (14/19)
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (15/19)
• Transições internas:– Atividades associadas ao estado e que devem ocorrer
na entrada, na permanência, ou na saída do mesmo;– São associadas com qualquer transição entrando ou
saindo do estado;– São mostradas dentro do ícone do estado precedidas
pela palavra “entry”, “exit”ou “do”.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (16/19)
• Atividade:– É uma operação que leva tempo para terminar;– São associadas a um estado;– Começa quando o objeto entra no estado;
– Pode executar até terminar ou pode ser interrompida pelo disparo de uma transição.
32
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (17/19)
• Estados compostos:– Estados compostos podem ser utilizados para
simplificar diagramas de estados;– Um estado composto é um estado que engloba
estados internos concorrentes ou seqüenciais;– Estados internos são denominados subestados;
– Cada região de um estado composto pode possuir estados inicial e final;
– Uma transição para um estado composto representa uma transição para o estado inicial do referido estado composto.
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (18/19)
© 2008 José Luiz G. Bastos Jr.
Diagrama de Estados (19/19)
• Crie diagrama de estados apenas para classes com um comportamento dinâmico significativo;
• Classes de Fronteira e Controle normalmente possuem um comportamento dinâmico interessante de ser capturado em um diagrama de estados.
© 2008 José Luiz G. Bastos Jr.
Análise e Projeto de Sistemas
Aula expositiva 08
Professor José Luiz Bastos
33
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (1/27)
• Interação corresponde a um conjunto de mensagens trocadas entre objetos, com o objetivo de alcançar determinado propósito, respeitando-se o contexto do sistema;
• Não confundir com iteração, que representa repetição.
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (2/27)
• Mostram as interações entre os objetos;• Representam cenários de casos de uso e
são formados por:– objetos;– mensagens;– relacionamentos;
• Podem ser representados de quatro formas:– Diagrama de Seqüência;– Diagrama de Comunicação;– Diagrama de Interação;– Diagrama de Temporização.
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (3/27)
• Diagrama de Seqüência:– Focaliza a ordem temporal de um fluxo;– Enfatiza a seqüência de mensagens dentro de uma
linha de tempo;
• Diagrama de Comunicação:– Focaliza a comunicação entre os objetos;– Enfatiza os relacionamentos estruturais entre os
objetos, sem se preocupar com o tempo;
• É interessante ressaltar que esses diagramas apresentam formas diferentes de modelar os mesmos elementos.
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (4/27)
• Diagrama Sumário de Interação:– É uma variação do Diagrama de Atividades;– Várias atividades são combinadas em seqüência
criando interações sumário;
• Timing Diagram:– Focaliza a interação entre objetos e mudanças de
estados destes objetos ao longo do tempo;
– Provê uma visão sobre a interação entre objetos e seus estados com outros objetos em um sistema.
34
© 2008 José Luiz G. Bastos Jr.
Diagramas de Seqüência (5/27)
© 2008 José Luiz G. Bastos Jr.
Diagramas de Comunicação (6/27)
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (9/27)
Mensagem:– Uma mensagem é representada por uma seta, com o
nome da mensagem;– O sentido da seta indica a origem da mensagem a
partir do objeto considerado cliente nesta relação. O destino da seta indica o objeto servidor.
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (10/27)
• As mensagens podem ir da esquerda para a direita ou da direita para a esquerda;
• A ordem das mensagens indica a seqüência temporal, sendo a primeira localizada mais acima;
• Mensagem de retorno:– O diagrama pode incluir o retorno de uma mensagem;– Caracterize o retorno apenas quando melhorar a
compreensão do diagrama.
35
© 2008 José Luiz G. Bastos Jr.
Diagramas de Seqüência (11/27)
© 2008 José Luiz G. Bastos Jr.
Diagramas de Comunicação (12/27)
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (13/27)
• Linha de vida:– Representa a vida do objeto dentro de um
determinado período de tempo.
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (14/27)
• Foco de controle:– Representa o tempo durante o qual um objeto fica com
o controle do fluxo de execução.
36
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (15/27)
• Notas:– Um diagrama pode incluir anotações com o objetivo de
adicionar informação.
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (16/27)
• Os diagramas podem ser melhorados através de descrições;
• Descrições podem ser escritas em linguagem natural ou pseudo-código.
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (17/27)
• Um objeto que já existe quando a transação tem início é mostrado alinhado ao topo do diagrama, de forma a ficar acima da primeira seta de mensagem.
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (18/27)
• O objeto pode ser criado no momento do envio da mensagem;
• A seta da mensagem aponta diretamente para o objeto em questão.
37
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (19/27)
• O objeto pode ser destruído logo após o tratamento da mensagem, ou em qualquer momento antes do fim da interação;
• Um X é colocado na linha de vida para indicar a destruição do objeto.
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (20/27)
• Condições são colocadas dentro de colchetes;
• A mensagem só será disparada se a condição for verdadeira;
• Exemplo 1:– [Mensalidade.pago = true] EmitirAutorizacaoDeProva()
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (21/27)
• Iteração:– Repetição (não confundir com interação);– Representa o envio da mesma mensagem diversas
vezes para o mesmo objeto;– A iteração é representada entre colchetes, precedida
de um asterisco *;– Dentro do colchete está a condição que determinará
quantas vezes a mensagem será passada;– Exemplo:
• Calcular a média dos alunos da turma da seguinte maneira: para cada aluno da turma chamar a operação CalcularMedia();
* [para cada aluno da turma] CalcularMedia()
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (22/27)
38
© 2008 José Luiz G. Bastos Jr.
Diagramas de Comunicação (23/27)
• Outra maneira de visualizar a interação entre objetos;
• A maioria das ferramentas CASE cria de forma automática um Diagrama de Comunicação a partir de um Diagrama de Seqüência e vice-versa.
© 2008 José Luiz G. Bastos Jr.
Diagramas de Seqüência (24/27)
• Exemplo de fluxo: Exclusão de mercadoria;– O Gerente de Compras seleciona excluir uma
mercadoria;– O sistema verifica se existe algum pedido pendente
que contenha esta mercadoria;– Se não houver pedido pendente contendo a
mercadoria a ser excluída:• O sistema desvincula a mercadoria dos fornecedores (os
fornecedores não mais fornecerão a mercadoria que esta sendo excluída);
• O sistema faz a remoção da mercadoria;
– Se houver pedido pendente contendo a mercadoria a ser excluída:
• O sistema emite uma mensagem de erro.
© 2008 José Luiz G. Bastos Jr.
Diagramas de Seqüência (25/27)
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (26/27)
Operações:• Mensagens nos diagramas de interação:
– São mapeadas em operações da classe receptora;– Os nomes das operações devem ser relativos à classe
receptora;
– A criação das operações pode ser adiada enquanto se discutem alternativas de realização.
39
© 2008 José Luiz G. Bastos Jr.
Diagramas de Interação (27/27)
Relacionamentos:
• Podem ser descobertos através das operações:– Existência de mensagens entre objetos nos diagramas
de interação;– Existência de algum tipo de relacionamento entre as
classes correspondentes.