Visão Geral de Orientação a Objetos com UML Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 2 Objetivos.

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto Orientado a Objetos
Advertisements

Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
Engenharia de Software
UML Modelando um sistema.
UML – Visões Parte 1 Modelando um sistema.
(Unified Modeling Language)
Diagrama de Classes.
Diagrama de Classes continuação.
Engenharia de Software
UML – MODELAÇÃO DA ESTRUTURA Professor Sandro Carvalho.
Análise e Projeto de Sistemas
Modelagem Orientada a Objetos
UML Diagrama de Classes elementos básicos. Contexto Os diagramas de classes fazem parte do da visão estática da UML. Os elemento desta visão são conceitos.
O Paradigma de Orientação a Objetos
Introdução ao paradigma de programação: Orientado a Objetos
Introdução a diagrama de classes e UML
Linguagem de Programação II
Paradigmas da Programação – Semestre 1 – Aula 5
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
RUP: Fluxo de Análise e Projeto
Princípios e Conceitos de Software(v2)
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
TÉCNICAS DE PROGRAMAÇÃO II
DIAGRAMA DE COMPONENTES
Diagrama de Classes e Diagrama de Objetos
Análise de Sistemas Análise e Projeto Prof. Jeime Nunes Site:
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
I- Introdução A Evolução dos Modelos de Dados e dos Sistemas de Gerência de Banco de Dados.
DIAGRAMA DE CASO DE USO Prof. Fabíola Gonçalves C. Ribeiro.
DIAGRAMA DE CLASSE Modelagem de Software
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Orientação a Objetos Parte I
Marcio de Carvalho Victorino
Programação Orientada à Objetos
SISTEMAS DISTRIBUIDOS Aula 4
© Ricardo Pereira e Silva
Educação Profissional Técnica de Nível Médio Curso Técnico de Informática
Análise Orientado aos Objetos Prof. Wolley W. Silva
Programação Orientada à Objetos
Modelagem de Entidade/Objetos de Domínio com Diagrama de Classes
Generalização e herança Agregação e composição
Análise e Projeto de Sistemas
Paradigmas da Programação – Semestre 2 – Aula 1 Professores: Fábio de Paula Santos Eduardo Mantovani
Orientação a Objetos com UML
Tarciane Andrade Análise de Casos de Uso Tarciane Andrade
Modelo de Análise e Projeto
Fluxo de Análise e Projeto 7 - Atividade Projetar Classes.
Padrões de projeto M.Sc. Sílvio Bacalá Jr..
Introdução a Orientação a Objetos
Copyright © 2006 Qualiti. Todos os direitos reservados. Projetar Classes.
Orientação a Objetos com UML. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões|
A linguagem unificada de modelagem
20/04/2017 Orientação a Objetos 1 1.
Análise e Projeto OO com UML e Padrões
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Projeto de Banco de Dados
Módulo II Capítulo 1: Orientação a Objetos
Análise e Projeto de Sistemas
Engenharia de Software Orientada a Objetos
Visão Geral e Conceitos. Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes Análise e Projeto OO com UML e Padrões| 2.
IF 718 Análise e Projeto de Sistemas Augusto Sampaio Vitor Braga (Estágio docência) Camila Sá (Monitora) Parte do material cedido pela Qualiti Software.
Diagrama de Classes Herança Dependências.
Projeto de Arquitetura de Software
Analisar Caso de Uso. Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes Analisar caso de uso | 2 Objetivos deste módulo.
1 Especificação de Sistemas de Software e a UML. 2 Modelagem de sistema A modelagem de sistema auxilia o analista a entender a funcionalidade do sistema.
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
Visão Geral de Orientação a Objetos com UML Copyright © 2002 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 2 Objetivos.
Análise Orientada a Objetos Por Patrícia Braga Centro Universitário Jorge Amado.
Análise e Projeto de Sistemas Análise & modelagem conceitual Prof. Edjandir Corrêa Costa
Transcrição da apresentação:

Visão Geral de Orientação a Objetos com UML

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 2 Objetivos Apresentar os princípios do paradigma de orientação a objetos Apresentar os conceitos de orientação a objetos com a notação UML correspondente Foco em aspectos estruturais: diagramas de classes

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 3 Princípios básicos de OO Representação agrupa dados e operações relacionadas (objetos e classes) Dados usualmente protegidos contra acesso indevido: objetos se comunicam através de mensagens Pela própria natureza, objetos podem ser distribuídos Potencialmente, embutem características como ­ Abstração ­ Encapsulamento ­ information hiding ­ modularidade ­ Extensibilidade (herança) ­ Polimorfismo

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 4 Abstração cliente animal automóvel mapa

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 5 Abstração Construção de um modelo para representação de uma realidade Concentração nas características essenciais, gerenciando complexidade

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 6 Abstração Construção de um modelo para a realidade Automovel modelo preco... atualizaPreco()...

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 7 Encapsulamento e Information hiding Exemplos de encapsulamento usados no nosso “dia-a-dia”

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 8 Encapsulamento Agrupa elementos relacionados em uma unidade sintática (cápsula, módulo, classe, pacote,...)

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 9 Information hiding Elimina dependência de implementação, escondendo-a do cliente Uso de interfaces Mudanças internas não têm impacto sobre os clientes Implementado via mecanismos de controle de visibilidade ­ Ex.: elementos privados em classes Java

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 10 Número Saldo ,32 Crédito Débito Exemplo: objeto conta bancária Encapsulamento agregação de elementos Information hiding ocultamento de elementos

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 11 Modularidade

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 12 Modularidade Decomposição de um problema em partes menores, para gerenciar complexidade Cada conceito independente deve ser representado por um módulo Construção de módulos desacoplados e coesos Dividir para conquistar...

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 13 Extensibilidade (Herança) Figura RetânguloTriângulo Polígono ContaEspecialPoupança Conta

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 14 Extensibilidade (Herança) Criação de hierarquias de abstração Base conceitual para permitir extensibilidade do software Reuso de código e comportamento (subtipo) Herança comportamental (behavioural inheritance) Referência clássica: A behavioral notion of subtyping (Liskov & Wing)

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 15 Exemplo: objeto poupança Número Saldo ,32 Crédito Débito R. Juros

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 16 Polimorfismo Linguagens polimórficas permitem que valores e identificadores (variáveis e operações) possuam mais de um tipo Há vários tipos de polimorfismo: ­ Paramétrico, de inclusão, overloading e coerção Referência clássica: On understanding types, data abstraction and polymorphism (Cardelli & Wegner)

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 17 Polimorfismo de inclusão Herança define polimorfismo ­ Objeto da subclasse usado no lugar do objeto da classe ­ Exemplo: uso de poupança em contextos onde contas são esperadas Interfaces também definem polimorfismo ­ Reuso de tipo, mas não de código

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 18 Polimorfismo real ou paramétrico Forma mais pura de polimorfismo O mesmo objeto ou operação usada uniformemente em diferentes contextos (tipos só determinados em tempo de execução) Exemplo: generics em Java 1.5

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 19 Polimorfismo via overloading e coerção Overloading permite o uso do mesmo nome para elementos semânticos ­ Exemplo: métodos ou construtores em Java Coerção é semelhante, mas inclui conversão implícita de tipos ­ Exemplo: soma envolvendo um operando inteiro e outro real

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 20 Conceitos básicos de OO Objeto Classe Atributo Operação Interface Componente Pacote Subsistema Relacionamentos

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 21 Objeto Modelo de um objeto real ­ entidade física, conceitual ou de software Possui comportamento, estado e identidade Exemplo: objetos conta e poupança apresentados donut

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 22 Objeto em UML : Conta contaSaque : Conta contaSaque Apenas o nome da classe Apenas o nome do objeto Nome da classe e do objeto

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 23 Classe Descrições de objetos com propriedades e comportamento comuns Abstração que ­ enfatiza o que é relevante ­ suprime o que não interessa Classes são fábricas de objetos Objetos são agrupados em classes

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 24 Classe de Contas Bancárias

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 25 Classes de Objetos Quantas classes temos aqui? Fonte: Rational

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 26 Classe em UML Conta Nome da Classe Conta Atributos Operações numero saldo credito() debito() getSaldo() getNumero() estrutura comportamento

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 27 Atributo Propriedades de um objeto Armazenam estado dos objetos número saldo

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 28 Atributo em UML : Conta numero = saldo = 500,00 : Conta numero = saldo = 875,32 Conta numero: String saldo: Real Valor do Atributo Objeto

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 29 Operação Modela comportamento das classes Serviços que os objetos oferecem a outros objetos número saldo creditardebitar getNumero

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 30 Operação em UML Conta credito(valor:Real) debito(valor:Real) getSaldo(): Real getNumero(): String Especificação das operações

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 31 Classes: visibilidade Marcações de acesso podem ser usadas para especificar o tipo de acesso permitido aos atributos e operações + público # protegido - privado

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 32 Visibilidade no Rose público privado protegido

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 33 Interface Interfaces formalizam polimorfismo com implementações independentes Aumentam o nível de reusabilidade Viabilizam o uso de componentes Reduzem o esforço de evolução da aplicação

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 34 Interface Interfaces definem um tipo especificando apenas a assinatura de seus métodos Interfaces não possuem atributos e seus métodos não têm corpo Classes implementam interfaces ­ provêem implementação para os métodos especificados em uma interface

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 35 Exemplo: Independência do meio de armazenamento Isolando as coleções de negócio de mudanças na coleção de dados correspondente RepositorioContasBDRRepositorioContasOOCadastroContas > RepositorioContas

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 36 Interface em UML: notação alternativa RepositorioContas Relacionamentos de realização RepositorioContasOO RepositorioContasXMLRepositorioContasBDR

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 37 Classe abstrata Classe abstrata é aquela que não possui instância Em geral, possui pelo menos um método abstrato Métodos abstratos não têm corpo ­ subclasses não abstratas são obrigadas a fornecer uma implementação para eles

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 38 Classes, Interfaces e Classes Abstratas Classes Atributos Métodos Classes Abstratas Atributos Métodos Assinatura de Métodos Interfaces Assinaturas dos métodos

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 39 Classes abstratas x Interfaces Herança de tipos x herança de código Classes descrevem propriedades fundamentais de um objeto Interfaces descrevem papéis desempenhados por um objeto em determinadas situações Interfaces são úteis para implementar herança múltipla

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 40 Componente Parte não trivial, quase independente, substituível de um sistema, que provê a realização de (uma/um conjunto de) interface(s) Exemplos ­ um código fonte ­ um componente de tempo de execução ­ um componente executável

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 41 Componente em UML Interface do Componente Arquivo fonte > Componente > Arquivo executável

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 42 Pacote Mecanismo para organizar elementos em grupos Facilita entendimento do sistema Favorece modularidade e reuso em larga escala Essencial para estruturar sistemas complexos nome do pacote

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 43 Coesão e Acoplamento Acoplamento é a medida de quão conectadas duas classes são ­ cuidado com herança Coesão é a medida de quão auto- contida uma classe é Sistemas devem ter baixo acoplamento e alta coesão ­ bom para manutenção

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 44 Subsistema União de ­ pacote (agrupa outros elementos) ­ classe (comportamento) Realiza uma ou mais interfaces, que definem o seu comportamento

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 45 Subsistema em UML Subsistema Interface Realização > Nome do subsistema

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 46 Subsistemas e Componentes Ambos encapsulam um comportamento modelado por interfaces Subsistemas representam componentes no modelo de projeto Componentes são a realização física dos subsistemas Projeto Implementação Nome do componente > Nome do subsistema

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 47 Relacionamentos Associação ­ simples ­ agregação ­ composição Dependência Generalização Realização

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 48 Associação Relação estrutural entre classes Pessoa Empresa trabalha Associação Nome da associação Classe Empregado Empregador Papéis

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 49 Agregação Tipo especial de associação Relacionamento todo-parte O todo possui um nível de abstração maior que a parte DepartamentoEmpresa TodoParte Agregação

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 50 Composição Tipo especial de agregação Relação de posse mais forte O todo é responsável pela criação da parte A parte não vive sem o todo Não permite compartilhamento DepartamentoEmpresa TodoParte Composição

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 51 Associação x Agregação x Composição Como você modelaria: ­ Dependente e Funcionário? ­ Pedido e Item do pedido? ­ Funcionário e Cartão de ponto? ­ Carro, Roda, Direção e Carburador? Na dúvida, use agregação! Na dúvida, use associação!

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 52 Dependência Relacionamento não estrutural (uso) ­ mais fraco que associação Uma dependência entre dois elementos indica que mudança em um elemento pode causar mudanças no outro CartãoLeitoraCartao lerCartao (cartao) Relacionamento de Dependência

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 53 Dependência Pode existir relacionamento de dependência entre vários elementos de UML Classe Pacote PacoteFornecedor Componente FornecedorCliente PacoteCliente Dependência Fonte: Rational FornecedorCliente

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 54 Exercício - Relacionamentos Modele os relacionamentos existentes entre as classes abaixo: UniversidadeDepartamento AlunoDisciplina Professor Curso Turma

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 55 Multiplicidade Multiplicidade define quantos objetos participam do relacionamento ­ O número de instâncias de uma classe relacionada a uma instância de outra classe ­ Especificado em cada uma das pontas da associação

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 56 Tipos de Multiplicidade Não especificada Exatamente um Zero ou mais Muitos (mesmo que 0..*) Um ou mais Zero ou um Intervalo determinado Valores múltiplos 1 0..* * 1..* , 4..6

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 57 Exemplo: Multiplicidade Pessoa Empresa Multiplicidade 1..*1

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 58 Navegação Especifica a direção da associação Associações e agregações são bidirecionais por default, mas é desejável que a navegação seja restringida a apenas uma direção Associações bidirecionais são mais difíceis de implementar

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 59 Exemplo: Navegação Pessoa Empresa Navegação 1..*1

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 60 Exercício - Multiplicidade Acrescente a multiplicidade nos relacionamentos encontrados no exercício anterior.

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 61 Generalização Relacionamento entre classes onde uma classe compartilha a estrutura (atributos e relacionamentos) e comportamento (operações) de outras classes Define uma hierarquia de abstrações Relacionamento “é um tipo de” (is-a- kind-of)

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 62 Generalização Uma subclasse pode ­ adicionar atributos, operações e relacionamentos ­ redefinir operações herdadas Tipos de herança: simples e múltipla

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 63 Herança Simples Classes herdando de apenas uma outra classe Círculo raio centro desenhar() Retângulo vertices desenhar() diagonal() Figura cor largura da linha desenhar() girar(graus) selecionar() Subclasses Superclasse (pai) Relacionamento de Generalização Quadrado

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 64 Herança Múltipla Classes herdando de mais de uma classe Mamífero AnimalVoador Herança múltipla Cachorro GatoMorcegoPassarinho Gaviao

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 65 Herança Múltipla O que acontece quando as superclasses possuem o mesmo método (métodos com o mesmo nome? O que acontece quando se tenta executar um método que não está definido na subclasse? Em que hierarquia de superclasses deve-se procurar o método?

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 66 Realização Subsistema Classe Caso de uso Indica que um elemento serve como contrato que o outro deve seguir Exemplos: Componente Realização de Caso de uso

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 67 Exercício - Arquitetura Modele um diagrama de classes, com todos os relacionamentos, de uma aplicação bancária, envolvendo: ­ Classes Conta, Poupanca e Cliente, com as respectivas coleções ­ Fachada ­ Interface

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 68 Mecanismos adicionais de UML Estereótipos Notas Propriedades (Tagged values) Restrições OCL (Object Constraint Language)

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 69 Estereótipos Mecanismo utilizado para estender os elementos de UML Define um novo modelo de elemento em termos de outro já existente Como ­ criando um novo ícone ­ utilizando a notação >

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 70 Estereótipos - Exemplo Classes de fronteira: ClasseFronteira > ClasseFronteira

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 71 Notas Anotação utilizada para adicionar informação a diagramas ­ Pode ser afixionada a qualquer elemento de UML ­ Pode ser ligada a um elemento com uma linha tracejada Exemplo: LeitoraCartao Esta classe é uma abstração do dispositivo de hardware que será usado para ler efetivamente as informações do cartão magnético.

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 72 Propriedades (Tagged Values) Servem para estender elementos UML, adicionando informações sobre eles Exemplos já definidos em UML: ­ Persistence ­ Location (ex: no cliente, no servidor) Você pode criar suas próprias propriedades Cliente {persistence} LeitoraCartao {location=server}

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 73 Restrições Pessoa Empresa {subset} Funcionário Diretor 1..* 1 31 Usadas para criação de novas regras sobre elementos do modelo Ou modificação de regras existentes

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 74 OCL (Object Constraint Language) Empresa É uma linguagem usada para definir restrições sobre elementos do modelo ou modificação de restrições existentes ­ Invariantes de classe ­ Pré e pós-condições de operações context Empresa inv diretoresNecessarios: self.diretor->size() == 3

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 75 Diagramas UML Diagramas usados no curso serão apresentados sob demanda ­ Seqüência ­ Colaboração ­ Classes (já apresentado) ­ Pacotes ­ Estados ­ Estrutura

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 76 Paradigma de Orientação a Objetos Favorece modularidade, manutenibilidade e reuso Aproxima-se do mundo real Uso do mesmo conceito em várias fases do desenvolvimento Mas não é adequado para capturar requisitos, planejar o projeto e realizar testes funcionais

Respostas dos Exercícios

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 78 Relacionamentos Resposta do exercício Universidade Departamento Aluno Disciplina Professor Curso Turma

Copyright © 2006 Qualiti. Todos os direitos reservados. Qualiti Software Processes OO e UML | 79 Multiplicidade Resposta do exercício Universidade Departamento Aluno Disciplina Professor Curso Turma 1..3 ** * 1 * * 1 1 * *1 1 1 * *