39
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 UML Definiçã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).

Análise e Projeto de Sistemas

Embed Size (px)

DESCRIPTION

Análise e Projeto de Sistemas

Citation preview

Page 1: Análise e Projeto de Sistemas

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).

Page 2: Análise e Projeto de Sistemas

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.

Page 3: Análise e Projeto de Sistemas

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:

Page 4: Análise e Projeto de Sistemas

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.

Page 5: Análise e Projeto de Sistemas

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.

Page 6: Análise e Projeto de Sistemas

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.

Page 7: Análise e Projeto de Sistemas

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.

Page 8: Análise e Projeto de Sistemas

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.

Page 9: Análise e Projeto de Sistemas

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.

Page 10: Análise e Projeto de Sistemas

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. ...

Page 11: Análise e Projeto de Sistemas

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. …

Page 12: Análise e Projeto de Sistemas

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.

Page 13: Análise e Projeto de Sistemas

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

Page 14: Análise e Projeto de Sistemas

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.

Page 15: Análise e Projeto de Sistemas

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

Page 16: Análise e Projeto de Sistemas

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.

Page 17: Análise e Projeto de Sistemas

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.

Page 18: Análise e Projeto de Sistemas

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.

Page 19: Análise e Projeto de Sistemas

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)

Page 20: Análise e Projeto de Sistemas

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.

Page 21: Análise e Projeto de Sistemas

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.

Page 22: Análise e Projeto de Sistemas

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:

Page 23: Análise e Projeto de Sistemas

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;

Page 24: Análise e Projeto de Sistemas

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).

Page 25: Análise e Projeto de Sistemas

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.

Page 26: Análise e Projeto de Sistemas

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.

Page 27: Análise e Projeto de Sistemas

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

Page 28: Análise e Projeto de Sistemas

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.

Page 29: Análise e Projeto de Sistemas

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.

Page 30: Análise e Projeto de Sistemas

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]

Page 31: Análise e Projeto de Sistemas

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.

Page 32: Análise e Projeto de Sistemas

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

Page 33: Análise e Projeto de Sistemas

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.

Page 34: Análise e Projeto de Sistemas

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.

Page 35: Análise e Projeto de Sistemas

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.

Page 36: Análise e Projeto de Sistemas

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.

Page 37: Análise e Projeto de Sistemas

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)

Page 38: Análise e Projeto de Sistemas

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.

Page 39: Análise e Projeto de Sistemas

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.