UML Diagramas de Classes

Tamanho: px
Começar a partir da página:

Download "UML Diagramas de Classes"

Transcrição

1 UML Diagramas de Classes UML Diagramas de Classes v.1.2, João Pascoal Faria, Outubro de Índice Objectivo dos diagramas de classes Objectos, classes, atributos e operações Relações entre classes: associação, agregação e composição Relações entre classes: generalização Relações entre classes: dependência e concretização Restrições, elementos derivados, pré-condições e póscondições Classes especiais: classes parametrizadas, interfaces, tipos, meta-classes e utilitários 2

2 Objectivo dos diagramas de classes Um diagrama de classes serve para modelar o vocabulário de um sistema, do ponto de vista do utilizador/problema ou do implementador/solução Ponto de vista do utilizador/problema na fase de captura e análise de requisitos, em paralelo com a identificação dos casos de utilização Vocabulário do implementador/solução na fase de projecto (design) Construído e refinado ao longo das várias fases do desenvolvimento do software, por analistas, projectistas (designers) e implementadores Também serve para: Especificar colaborações (no âmbito de um caso de utilização ou mecanismo) Especificar esquemas lógicos de bases de dados Especificar vistas (estrutura de dados de formulários, relatórios, etc.) Modelos de objectos de domínio, negócio, análise e design 3 Objectos, classes, atributos e operações UML Diagramas de Classes v.1.2, João Pascoal Faria, Outubro de

3 Objectos Um objecto é algo com fronteiras bem definidas, relevante para o problema em causa, com estado, modelado por valores de atributos (tamanho, forma, peso, etc.) e por ligações que num dado momento tem com outros objectos comportamento um objecto exibe comportamentos invocáveis (por resposta a chamadas de operações ) ou reactivos (por resposta a eventos) e identidade no espaço: é possível distinguir dois objectos mesmo que tenham o mesmo estado - exemplo: podemos distinguir duas folhas de papel A4, mesmo que tenham os mesmos valores dos atributos no tempo: é possível saber que se trata do mesmo objecto mesmo que o seu estado mude - exemplo: se pintarmos um folha de papel A4 de amarelo, continua a ser a mesma folha de papel 5 Objectos do mundo real e objectos computacionais No desenvolvimento de software orientado por objectos, procurase imitar no computador o mundo real visto como um conjunto de objectos que interagem entre si Muitos objectos computacionais são imagens de objectos do mundo real Dependendo do contexto (análise ou projecto) podemos estar a falar em objectos do mundo real, em objectos computacionais ou nas duas coisas em simultâneo Exemplos de objectos do mundo real: o Sr. João a aula de ES no dia 11/10/2000 às 11 horas Exemplos de objectos computacionais: o registo que descreve o Sr. João (imagem de objecto do mundo real) uma árvore de pesquisa binária (objecto puramente computacional) 6

4 Classes (1) No desenvolvimento de software OO, não nos interessam tanto os objectos individuais mas sim as classes de objectos Uma classe é um descritor de um conjunto de objectos que partilham as mesmas propriedades (semântica, atributos, operações e relações) Trata-se de uma noção de classe em compreensão, no sentido de tipo de objecto, por oposição a uma noção de classe em extensão, como conjunto de objectos do mesmo tipo Um objecto de uma classe é uma instância da classe A extensão de uma classe é o conjunto de instâncias da classe Em Matemática, uma classe é um conjunto de objectos com uma propriedade em comum, podendo ser definida indiferentemente em compreensão ou em extensão C = {x N : x mod 3 = 2} = {2, 5, 8, 11, 14,...} 7 Classes (2) O conjunto de todos os objectos num determinado contexto forma um universo (UoD - Universe of Discourse) As extensões das classes são subconjuntos desse universo UoD x João Aluno Curso classe x Maria x Informática objecto x Rui x Dª Rita x Sr. Silva Funcionário x Electrotecnia ligação 8

5 Classes (3) Classes podem representar: Coisas concretas: Pessoa, Turma, Carro, Imóvel, Factura, Livro Papéis que coisas concretas assumem: Aluno, Professor, Piloto Eventos: Curso, Aula, Acidente Tipos de dados: Data, Intervalo de Tempo, Número Complexo, Vector Decomposição orientada por objectos : começa por identificar os tipos de objectos (classes) presentes num sistema contrapor com decomposição funcional ou algorítmica tipos de objectos são mais estáveis do que as funções, logo a decomposição orientada por objectos leva a arquitecturas mais estáveis 9 Classes (4) Em UML, uma classe é representada por um rectângulo com o nome da classe Aluno Curso Habitualmente escreve-se o nome da classe no singular (nome de uma instância), com a 1ª letra em maiúscula Para se precisar o significado pretendido para uma classe, devese explicar o que é (e não é...) uma instância da classe Exemplo: Um aluno é uma pessoa que está inscrita num curso ministrado numa escola. Uma pessoa que esteve no passado inscrita num curso, mas não está presentemente inscrita em nenhum curso, não é um aluno. Em geral, o nome da classe não é suficiente para se compreender o significado da classe 10

6 Atributos de instância O estado de um objecto é dados por valores de atributos (e por ligações que tem com outros objectos) Todos os objectos de uma classe são caracterizados pelos mesmos atributos (ou variáveis de instância) o mesmo atributo pode ter valores diferentes de objecto para objecto Atributos são definidos ao nível da classe, enquanto que os valores dos atributos são definidos ao nível do objecto Exemplos: uma pessoa (classe) tem os atributos nome, data de nascimento e peso João (objecto) é uma pessoa com nome João Silva, data de nascimento 18/3/1973 e peso 68 Kg 11 Atributos de instância Atributos são listados num compartimento de atributos (opcional) a seguir ao compartimento com o nome da classe Uma classe não deve ter dois atributos com o mesmo nome Os nomes dos tipos não estão pré-definidos em UML, podendo-se usar os da linguagem de implementação alvo classe compartimento de atributos nome do atributo tipo de dados Pessoa nome: string data de nascimento: date peso: real = 75 kg valor inicial por omissão 12

7 Operações de instância Comportamento invocável de objectos é modelado por operações uma operação é algo que se pode pedir para fazer a um objecto de uma classe Objectos da mesma classe têm as mesmas operações Operações são definidos ao nível da classe, enquanto que a invocação de uma operação é definida ao nível do objecto Princípio do encapsulamento: acesso e alteração do estado interno do objecto (valores de atributos e ligações) controlado por operações Nas classes que representam objectos do mundo real é mais comum definir responsabilidades em vez de operações compartimento de operações nome: string morada: string Pessoa setmorada(novamorada:string): bool 13 Atributos e operações estáticos ( de instância) Atributo estático: tem um único valor para todas as instâncias (objectos) da classe valor está definido ao nível da classe e não ao nível das instâncias Operação estática: não é invocada para um objecto específico da classe Notação: nome sublinhado Correspondem a membros estáticos (static) em C++, C# e Java Factura número: Long data: Date valor: Real últimonumero: Long = 0 criar(data:date, valor:real) destruir() valortotal(): Real retorna a soma dos valores de todas as facturas cria nova factura com a data e valor especificados, e um nº sequencial atribuído automaticamente com base em ultimonumero 14

8 Visibilidade de atributos e operações Visibilidade: + (public) : visível por todos - (private) : visível só por operações da própria classe # (protected): visível por operações da própria classe e descendentes (subclasses) Princípio do encapsulamento: esconder todos os detalhes de implementação que não interessam aos clientes (utilizadores) da classe permite alterar representação do estado sem afectar clientes permite validar alterações de estado Toolbar # currentselection: Tool # toolcount: Integer + gettool(i: Integer): Tool + addtool(t: Tool) + removetool(i: Integer) - compact() usada internamente por outras operações 15 Multiplicidade de classes e atributos Multiplicidade de classe: número de instâncias que podem existir por omissão, é 0.. Multiplicidade de atributo: número de valores que o atributo pode tomar do tipo especificado por omissão é 1 qual a diferença em relação a especificar a multiplicidade no próprio tipo de dados do atributo? NetworkController consoleport [2..]: Port 1 16

9 Relações entre classes: associação, agregação e composição UML Diagramas de Classes v.1.2, João Pascoal Faria, Outubro de Associações binárias Participante-1 papel-1 Nome da associação papel-2 Participante-2 Uma associação é uma relação entre objectos das classes participantes (um objecto de cada classe em cada ligação) Não gera novos objectos Matematicamente,uma associação binária é uma relação binária, i.e., um subconjunto do produto cartesiano das extensões das classes participantes Assim como um objecto é uma instância duma classe, uma ligação é uma instância duma associação Pode haver mais do que uma associação (com nomes diferentes) entre o mesmo par de classes Papéis nos extremos da associação podem ter indicação de visibilidade (pública, privada, etc.) 18

10 Multiplicidade de associações binárias Muitos-para-Muitos Muitos-para-1 1-para-1 Professor Curso Aluno 1 Curso Curso 1 1 Plano de Curso (sem restrições ) 19 Notação para a multiplicidade 1 - exactamente um zero ou um (zero a 1) - zero ou mais zero ou mais um ou mais 1, um ou três a 5 20

11 Associação reflexiva Pode-se associar uma classe com ela própria (em papéis diferentes) pai 0..1 Pessoa filho filho mãe Nome de associação A indicação do nome é opcional O nome é indicado no meio da linha que une as classes participantes Pode-se indicar o sentido em que se lê o nome da associação Empresa empregador Trabalha-para Emprega empregado Pessoa 22

12 Associações unidireccionais As associações são classificadas quanto à navegabilidade em: bidireccionais (normal) unidireccionais Class-1 Class-1 Class-2 Class-2 um objecto da classe 1 tem a responsabilidade de dar o(s) objecto(s) correspondente(s) da classe 2 (nível de especificação) ou um objecto da classe 1 tem apontador(es) para o(s) objecto(s) correspondente(s) da classe 2 (nível de implementação) 23 Classe-Associação Class-1 Association Name Class-2 Association Name link attribute... link operation... reúne as propriedades de associação e classe o nome pode ser colocado num sítio ou noutro, conforme interessa realçar a natureza de associação ou de classe, mas a semântica é a mesma o nome também pode ser colocado nos dois sítios não é possível repetir combinações de objectos das classes participantes na associação 24

13 Associações n-árias Notação Association Name Class-1 role-1 role-3 Class-3 role-2 Class-2 Multiplicidade Class Class-3 Class-2 a cada par de objectos das restantes classes (1 e 2), correspondem 0 ou 1 objectos da classe 3 25 Atributos versus Associações Uma propriedade que designa um objecto de uma classe presente no modelo, deve ser modelada como uma associação e não como um atributo Exemplo: País nome: string capital: string capital: Cidade Pertence a Cidade 1 nome: string capital 26

14 Associações qualificadas Associação Classe A qualificador Classe B Qualificador: lista de um ou mais atributos de uma associação utilizados para navegar de A para B "Chave de acesso" a B (acesso a um objecto ou conjunto de objectos) a partir de um objecto de A uma Pessoa pode ser sócia de vários clubes para cada par Clube + nº de sócio Clube nº de sócio 0..1 Pessoa nome morada 27 Agregação Associação com o significado contém (é constituído por) / faz parte de (part of) Relação de inclusão nas instâncias das classes Hierarquias de objectos Exemplo: Equipa 0..1 Jogador Uma equipa contém 0 ou mais jogadores Um jogador faz parte de uma equipa (num dado momento), mas também pode estar desempregado 28

15 Composição Forma mais forte de agregação aplicável quando: existe um forte grau de pertença das partes ao todo cada parte só pode fazer parte de um todo (i.e., a multiplicidade do lado do todo não excede 1) o topo e as partes têm tempo de vida coincidente, ou, pelo menos, as partes nascem e morrem dentro de um todo a eliminação do todo propaga-se para as partes, em cascata Notação: losango cheio (? ) ou notação encaixada Membros-objecto em C++ 29 Composição: notações alternativas Window scrollbar 2 title 1 body 1 Slider Header Panel Window scrollbar: Slider 2 title: Header 1 Window scrollbar[2]: Slider title: Header body: Panel body: Panel 1 (sub-objectos no compartimento dos atributos) 30

16 Relações entre classes: generalização UML Diagramas de Classes v.1.2, João Pascoal Faria, Outubro de Generalização Pessoa super-classe generalização Aluno especialização sub-classe Relação semântica is a ( é um / é uma ) : um aluno é uma pessoa Relação de inclusão nas extensões das classes: UoD super-classe x x x sub-classe x x objecto extensão (sub-classe) extensão (super-classe) Relação de herança nas propriedades: A sub-classe herda as propriedades (atributos, operações e relações) da super-classe, podendo acrescentar outras 32

17 As três facetas da generalização Substitutabilidade onde se espera um objecto da super-classe pode-se passar um objecto duma subclasse Herança de interface a subclasse herda as assinaturas (e significados) das operações da super-classe Herança ou overriding de implementação a subclasse pode herdar as implementações das operações da superclasse, mas também pode ter novas implementações de algumas dessas operações quando em UML se repete numa subclasse a assinatura de uma operação da super-classe, quer dizer que tem uma nova implementação na subclasse 33 Polimorfismo Substitutabilidade + Overriding Polimorfismo + Late Binding Quando se tem uma variável do tipo referência ou apontador para super-classe (que pode guardar uma referência para objecto da super-classe ou de uma subclasse), e se invoca uma operação, é usada a implementação da classe do objecto referenciado (determinada em tempo de execução late binding), e não a implementação de acordo com o tipo de referência (determinada em tempo de compilação early binding) Em C++ e C# só acontece com funções ou métodos virtuais Mecanismo muito poderoso, que permite estender software através da criação de novas subclasses que são usadas a partir de classes pré-existentes (que dependem apenas da interface e não da implementação das operações), sem que estas tenham conhecimento dessas extensões 34

18 Exemplo em C++ Pessoa nome : string datanascimento : Data Pessoa(string, Data) getnome() : string getdatanascimento() : Data getidade() : int setnome(string) : void setdatanascimento(data) : void imprime() : void class Pessoa { private: string nome; Data datanascimento; public: Pessoa(string, Data); string getnome() const; Data getdatanascimento() const; int getidade() const; void setnome(string); void setdatanascimento(data); virtual void imprime() const; }; curso : string Aluno Aluno(string nm, Data, string crs) getcurso() : string setcurso(string) : void imprime() : void Ferramenta: Microsoft Visual Modeler class Aluno : public Pessoa { private: string curso; public: Aluno(string nm, Data, string crs); string getcurso() const; void setcurso(string); virtual void imprime() const; }; 35 Hierarquias de classes Em geral, pode-se ter uma hierarquia de classes relacionadas por herança / generalização em cada classe da hierarquia colocam-se as propriedades que são comuns a todas as suas subclasses evita-se redundância, promove-se reutilização! curso : string Aluno Pessoa nome : string datanascimento : Data Aluno(string nm, Data, string crs) getcurso() : string setcurso(string) : void imprime() : void AlunoDoutoramento Pessoa(string, Data) getnome() : string getdatanascimento() : Data getidade() : int setnome(string) : void setdatanascimento(data) : void imprime() : void (...) categoria : string Professor Professor(string nm, Data, string ctg) getcategoria() : string setcategoria(string) : void imprime() : void 36

19 Notações alternativas para hierarquias de classes Pessoa Aluno Professor Pessoa Aluno Professor 37 Subclasses sobrepostas ( disjuntas) caso em que um objecto da superclasse pode pertencer simultaneamente a mais do que uma subclasse indicado por restrição {overlapping} o contrário é {disjoint} (situação por omissão?) Superclass ou Superclass {overlapping} {overlapping} Subclass-1 Subclass-2 Subclass-1 Subclass-2 38

20 Subclasses incompletas ( completas) caso em que um objecto da superclasse pode não pertencer a nenhuma das subclasses indicado por restrição {incomplete} o contrário é {complete} (situação por omissão?) Funcionário Técnico {incomplete} Comercial 39 Herança múltipla ( simples) ocorre numa subclasse com múltiplas super-classes geralmente suportada por linguagens de programação OO Estudante curso Académico nome Professor categoria {overlapping} pelo menos conceptualmente, existe uma super-classe comum Só faz sentido assim! Professor-Estudante redução de horário herda propriedades de Estudante e Professor e, indirectamente, de Académico (uma única vez!) 40

21 Classificação dinâmica ( estática) classificar objecto: atribuir classe a objecto caso em que a(s) classe(s) a que um objecto pertence pode(m) variar ao longo da vida do objecto indicado por estereótipo «dynamic» geralmente não suportada por linguagens de programação OO Pessoa tarefa «dynamic» atributo discriminante (atributo de pessoa que indica a subclasse a que pertence) Gestor Engenheiro Vendedor Uma pessoa que num dado momento tem a tarefa de gestor, pode noutro momento ter a tarefa de vendedor, etc. 41 Classificação múltipla ( simples) caso em que um objecto pode pertencer num dado momento a várias classes, sem que exista uma subclasse que represente a intersecção dessas classes (com herança múltipla) geralmente não suportado pelas linguagens de programação OO (pode então ser simulada por agregação de papéis) Homem Mulher sexo função Pessoa paciente Paciente Médico Enfermeira Fisioterapeuta exemplo de combinação legal: {Mulher, Paciente, Enfermeira} 42

22 Classes e operações abstractas ( concretas) Classe abstracta: classe que não pode ter instâncias directas pode ter instâncias indirectas pelas subclasses concretas Icon origin: Point display() getid(): Integer Operação abstracta: operação com implementação a definir nas subclasses uma classe com operações abstractas tem de ser abstracta função virtual pura em C++ Notação : nome em itálico ou propriedade {abstract} RectangularIcon height: Integer width: Integer Button display() ArbitraryIcon edge:linecollection display() isinside(p:point):bool Fonte: The UML User Guide, Booch et al 43 Associação versus Agregação / Composição versus Generalização generalização Pessoa classe Professor José Cursos e disciplinas Aluno João Curso de Modelação de Software UML Maria associação objecto VDM++ agregação ou composição 44

23 Exemplo: meta-modelo parcial Generalização superclasse subclasse Classe 1 nome Extremo de Associação multiplicidade papel visibilidade 2 no caso de agregação Relação Associação nome Agregação Classe-Associação Composição 45 Relações entre classes: dependência e concretização UML Diagramas de Classes v.1.2, João Pascoal Faria, Outubro de

24 Relação de dependência Relação de uso entre dois elementos (classes, componentes, etc.), em que uma mudança na especificação do elemento usado pode afectar o elemento utilizador Exemplo típico: classe-1 que depende de outra classe-2 porque usa operações ou definições da classe-2 Úteis para gestão de dependências cliente servidor 47 Relação de concretização (realization) Relação entre elementos a diferentes níveis de abstracção, isto é, entre um elemento mais abstracto (que especifica uma interface ou um "contracto", entre clientes e implementadores) e um elemento correspondente mais concreto (que implementa esse contracto) Difere da generalização porque há apenas herança de interface e não herança de implementação LinkedStack XMLDocument Colaboração «type» Stack «interface» ISerializable Caso de utilização 48

25 Dependência e concretização Aparecem frequentemente combinados Cliente usa o servidor sem dele depender directamente (depende apenas da interface ou contracto que o servidor implementa) cliente contracto ou interface servidor 49 Restrições, elementos derivados, pré-condições e pós-condições UML Diagramas de Classes v.1.2, João Pascoal Faria, Outubro de

26 Restrições Uma restrição especifica uma condição que tem de se verificar no estado do sistema (objectos e ligações) Uma restrição é indicada por uma expressão ou texto entre chavetas ou por uma nota posicionada junto aos elementos a que diz respeito, ou a eles ligada por linhas a traço interrompido (sem setas, para não confundir com relação de dependência) Podem ser formalizadas em UML com a OCL - "Object Constraint Language" Também podem ser formalizadas (como invariantes) numa linguagem de especificação formal como VDM++ 51 Restrições em classes Pessoa nome datanascimento localnascimento datafalecimento {chave candidata: (nome, datanascimento, localnascimento)} {datafalecimento > datanascimento} Factura número data {chave candidata: (número)} 1 LinhaFactura número artigo quantidade valor {chave candidata: (factura, número)} 52

27 Restrições em associações {ordered} Factura LinhaFactura 1 uma factura é constituída por um conjunto ordenado de 0 ou mais linhas Pessoa 1 Membro-de {subset} Director-de Comité Conta {xor} Pessoa Empresa associações mutuamente exclusivas chefe empregado Pessoa 0..1 subordinado empregador 1 Pessoa.empregador = Pessoa.chefe.empregador Empresa 53 Elementos derivados Elemento derivado (atributo, associação ou classe): elemento calculado em função doutros elementos do modelo Notação: barra / antes do nome do elemento derivado Um elemento derivado tem normalmente associada uma restrição que o relaciona com os outros elementos 54

28 Exemplo de elementos derivados Empresa 1 empregador 1 /TrabalhaEmEmpresa {Pessoa.empregador = Pessoa.departamento.empresa} Departamento 1 TrabalhaEmDepartamento Pessoa datanascimento /idade {idade = dataactual() - datanascimento} data valor Movimento / TotalMensal mês valor {valor = (select sum(valor) from Movimento where month(data)=mês)} 55 Pré-condições e pós-condições Semântica de operações pode ser captada através de précondições e pós-condições Pré-condição: uma condição nos argumentos e estado inicial do objecto, a verificar na chamada (início) da operação Pós-condição: uma condição nos argumentos, estado inicial do objecto, estado final do objecto e valor retornado pela operação, a verificar no retorno (fim) da operação Podem ser expressas em UML através da OCL (Object Constraint Language) Também podem ser expressas numa linguagem de especificação formal, como VDM++ VDM++ tem a vantagem de permitir também implementar as operações e executar as pré-condições e pós-condições 56

29 Classes especiais: classes parametrizadas, interfaces, tipos, meta-classes, utilitários UML Diagramas de Classes v.1.2, João Pascoal Faria, Outubro de Classes parametrizadas (templates) classe parametrizada parâmetros actuais data [k] : T FArray «bind» (Point,3) T k: Integer parâmetros formais generalização, porque não se podem acrescentar propriedades! ThreePoints ou Farray<Point,3> C++ classe ligada ("bound") template <class T, int k> class FArray { public: T[k] data; }; typedef Farray<Point,3> ThreePoints; 58

30 Interfaces Uma interface especifica um conjunto de operações (com sintaxe e semântica) externamente visíveis de uma classe de (ou componente, subsistema, etc.) semelhante a classe abstracta só com operações abstractas e sem atributos nem associações (em C++ é mesmo isso!) separação mais explícita entre interface e (classes de) implementação interfaces são mais importantes em linguagens como Java, C# e VB.NET que têm herança simples de implementação e herança múltipla de interface Relação de concretização de muitos parta muitos entre interfaces e classes de implementação Vantagem em separar interface de implementação: os clientes de uma classe podem ficar a depender apenas da interface em vez da classe de implementação Notação: classe com estereótipo «interface» (ligada por relação de concretização à classe de implementação) ou círculo (ligado por linha simples à classe de implementação) 59 Interfaces: notações alternativas Cliente depende só da interface e não da implementação InterfaceClass ImplementationClass attributes operations ClientClass ou operations «interface» InterfaceClass ImplementationClass attributes operations ClientClass relação de concretização 60

31 Tipos Um tipo é usado para especificar um domínio de objectos em conjunto com as operações aplicáveis a esses objectos, sem especificar a implementação física desses objectos não pode incluir métodos (implementação de operações) pode ter atributos e associações (abstractos!), mas apenas para especificar o comportamento das operações, sem compromisso de implementação notação: classe com estereótipo «type» semelhante a tipo abstracto de dados Uma classe de implementação (classe normal) define a estrutura física de dados (para atributos e associações) e métodos de um objecto tal como é implementado numa linguagem tradicional notação: classe normal ou classe com estereótipo «implementationclass» diz-se que uma classe de implementação concretiza ("realizes") um tipo se proporciona todas as operações definidos no tipo, com o mesmo comportamento especificado no tipo 61 Tipos: exemplo maxsize:integer «type» FinitePriorityQueue isfull():boolean relação de concretização HeapFinitePriorityQueue - elems [0..maxSize]: T - size: Integer = 0 + insert(value: T, priority: Integer) + deletemax():t + isempty(): Boolean + isfull(): Boolean - HeapifyUp - HeapifyDown T maxsize:integer «type» PriorityQueue elems: set of (priority: Integer, value:t) insert(value:t, priority:integer) deletemax():t isempty():boolean «bind» (Paciente, 100) HeapFilaPacientes T 62

32 Meta-classes Uma meta-classe é uma classe cujas instâncias são classes Notação: classe com estereótipo «metaclass» Usadas geralmente em meta-modelos Relação de instanciação (entre classe e meta-classe) pode ser indicada por dependência com estereótipo «instanceof» «metaclass» SYSCLASSES name «instanceof» Class-1 63 Utilitários Um utilitário é um agrupamento de variáveis globais e procedimentos como classe Pode ser implementado por classe em que todos os atributos e operações são estáticos Notação: classe com estereótipo «utility» pi: Real «utility» MathPack sin(ang: Real): Real cos(ang: Real): Real 64

33 Estereótipos de classes em modelos de negócio Um modelo de negócio descreve a implementação dos processos de negócio (de fronteira) e de suporte (internos) através de colaborações entre objectos dos seguintes tipos: business actor actor em relação ao negócio (cliente ou outra entidade ou sistema que interage com o negócio); actor externo business worker perfil de trabalhador do negócio, interno (não interage com actores do negócio) ou de fronteira (interage com actores do negócio); actor interno objecto passivo manipulado pelos trabalhadores e actores nas actividades dos processos de negócio business entity 65 Estereótipos de classes em modelos de análise Um modelo de análise descreve implementações "ideais" dos casos de utilização de um sistema de software, com vista a melhor compreender os seus requisitos, através de colaborações entre objectos dos seguintes tipos: actor actor em relação ao sistema de software (pode ser interno ou externo ao negócio) objecto de fronteira (formulário, janela, etc.) boundary control objecto de controlo (controla sequência de funcionamento, transacções, etc.; estabelece ligação entre objectos de fronteira e entidades) entity objecto passivo que guarda estado mais ou menos persistente 66

34 Caso de estudo e exercícios UML Diagramas de Classes v.1.2, João Pascoal Faria, Outubro de Caso de estudo (Biblioteca): modelo de domínio Autor nome nacionalidade Publicação isbn nº de património título ano editora data de aquisição custo contador de consultas / estado : (disponível,emprestada) 1 Biblioteca nome morada telefone 1 1 Sócio número nome morada telefone data de inscrição validade da inscrição estado : (activo,inactivo) 1 Só se considera a existência dma instância Requisição número data de requisição prazo de devolução data de devolução 68

35 Caso de estudo (Biblioteca): modelo de desenho - camada de lógica de negócio Biblioteca (from Lógica de Negócio - Recursos) nome morada telefone estatísticautilização() Publicação (from Lógica de Negócio - Recursos) A rever! isbn título ano editora data da aquisição custo / estado : (disponível, emprestada) contador de utilizações : int : = 0 <<static>> registarpublicação(isbn, título, autores) <<static>> listarpublicações(filtro) Autor (from Lógica de Negócio - Recursos) nome nacionalidade <<static>> registarautor(nome, nacionalidade) <<static>> procurarautor(nome, nacionalidade) : Autor <<static>> listarautores(filtro) 1 Requisição (from Lógica de Negócio - Clientes) 1 número : int data da requisição : date : = curdate prazo de devolução : date data da devolução : date Sócio (from Lógica de Negócio - Clientes) número : int nome : string morada : string telefone : int data de inscrição validade da inscrição / estado : (activo,inactivo) <<static>> registarsócio(nome, morada, telefone) : int registardevolução(data) <<static>> registarrequisição(publicação, sócio) 69 Exercício 1 Refinar o caso de estudo (modelo de domínio e modelo de desenho da camada de lógica de negócio) de acordo com os seguintes requisitos: Uma publicação pode ter vários exemplares Uma publicação pode ser um livro ou uma revista. Uma revista contém artigos, sendo os autores definidos artigo a artigo As publicações podem ser agrupadas em colecções; nesse caso, a editora é definida ao nível da colecção Possibilidade de ficarem requisições em lista de espera Refinar o modelo de domínio com restrições de integridade Elaborar modelos de análise e de negócio 70

36 Exercício 2 (ASI 24/4/97) Um jornal desportivo pretende manter informação relativa a diversos campeonatos de futebol (1º divisão nacional, 2ª divisão nacional, campeonatos regionais, etc.), de acordo com o seguintes pressupostos: Em cada campeonato participam várias equipas. Cada campeonato está organizado numa sequência de jornadas. Numa jornada de um campeonato realizam-se diversos jogos em paralelo em que se defrontam todas as equipas duas a duas (um equipa visitada e uma equipa visitante em cada jogo). Cada equipa participa num e num só jogo por jornada. Relativamente a cada jogo interessa saber a data-hora e local da sua realização, o árbitro, o resultado do jogo, os jogadores efectiv os, e eventos importantes (com o tempo em que ocorreram e a indicação dos jogadores envolvidos), tais como golos, cartões, expulsões e substituições. Elabore um diagrama de classes relativamente a esta realidade, com atributos e relações entre classes 71 Exercício 3 Elaborar um diagrama de classes em UML relativo a um módulo que permite construir passo a passo interrogações simples (queries) em SQL, de acordo com as seguintes requisitos: As interrogações que interessa tratar são da forma: selectcoluna 1,..., coluna n fromtabela 1 alias 1,..., tabela m alias m where (... and... and...) or... or (... and... and...) order by coluna 1 asc/desc,..., coluna k asc/desc As partes de where e order by são opcionais. Na parte de selectapenas se admite uma lista de nomes de colunas e não expressões genéricas. Na parte de from apenas se indica uma lista de nomes de tabelas. A seguir ao nome de uma tabela pode-se indicar um alias (nome a usar localmente na interrogação). A mesma tabela pode aparecer mais do que uma vez na parte de from, com aliases diferentes. A parte de where está na forma normal disjuntiva (disjunção de conjunções). Os operandos da conjunção são termos ou termos negados (precedidos de not). Cada termo aplica um operador de comparação a um ou mais operandos. 72

37 Exercício 3 (cont.) Os operadores de comparação com um operando são is null e is not null. Os operadores de comparação com dois operandos são =, <>, >, >=, <, <=, like e not like. O único operador de comparação com três operando é o operador between... and. Um operando é uma constante (número ou string) ou uma referência a uma coluna de uma tabela mencionada na parte de from. As classes devem disponibilizar operações para: - registar (adicionar) uma tabela - registar uma coluna numa tabela - criar um query inicialmente vazio - preencher um query incrementalmente: - adicionar uma tabela à parte de from de um query (as tabelas são adicionadas uma a uma) - adicionar uma coluna à parte de select de um query (as colunas são adicionadas uma a uma) - adicionar uma coluna à parte de orderby de um query (as colunas são adicionadas uma a uma) - acrescentar uma conjunção (inicialmente vazia) à parte de where - criar um termo e acrescentá-lo a uma conjunção da parte de where - obter o query em string em SQL - obter o query em string em XML Opcionalmente, implementar em Java, C# ou VB.NET e escrever um pequeno programa de teste 73

12/03/16. Generalização. Associação. Agregação UML Relações. entre Classes. Composição. Prof.Dr. Enzo Seraphim. Dependência

12/03/16. Generalização. Associação. Agregação UML Relações. entre Classes. Composição. Prof.Dr. Enzo Seraphim. Dependência 12/03/16 Generalização Associação Agregação UML Relações Composição entre Classes Dependência Prof.Dr. Enzo Seraphim 12/03/16 Generalização Associação Agregação UML Relações Composição entre Classes Dependência

Leia mais

UML Diagramas de Classes

UML Diagramas de Classes UML Diagramas de Classes (versão reduzida) João Pascoal Faria UML Diagramas de Classes v.1.2, João Pascoal Faria, Outubro de 2002 1 Índice Objectivo dos diagramas de classes Objectos, classes, atributos

Leia mais

Diagrama de Classes 2017

Diagrama de Classes 2017 2017 Visa permitir a visualização das classes que comporão o sistema junto com os respectivos atributos e métodos, bem como mostrar como as classes se relacionam, complementam e transmitem informações

Leia mais

Diagramas de Classe. Sumário. Introdução aos Diagramas de Classe

Diagramas de Classe. Sumário. Introdução aos Diagramas de Classe 38 Diagramas de Classe Sumário Introdução aos Diagramas de Classe Notação base Classes Níveis de modelação Relações entre as classes Decorações Extensões 39 Génese Use Cases Permitem modelar a captura

Leia mais

Introdução. Pacote. Classe. UML Diagrama de. Atributo. Classes. Método. Prof. Dr. Enzo Seraphim. Visibilidade

Introdução. Pacote. Classe. UML Diagrama de. Atributo. Classes. Método. Prof. Dr. Enzo Seraphim. Visibilidade Introdução Pacote Classe Atributo UML Diagrama de Método Classes Visibilidade Prof. Dr. Enzo Seraphim História 60 70 COBOL, FORTRAN, C Métodos de Análise e Projeto Estruturado 80 início 90 s Smalltalk,

Leia mais

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago Diagramas de Classes Conceitos Básicos O caso de uso fornece uma perspectiva do sistema de um ponto de vista externo (do ator) Internamente os objetos colaboram para atender às funcionalidades do sistema

Leia mais

Representação para Programação Orientada a Objetos

Representação para Programação Orientada a Objetos 1 Representação para Programação Orientada a Objetos Profª. Juliana Pinheiro Campos E-mail: jupcampos@gmail.com ENG10082 Programação II Créditos: Prof. Gustavo Willam Pereira e Prof. Clayton Vieira Fraga

Leia mais

Análise de Sistemas 4º Bimestre (material 3)

Análise de Sistemas 4º Bimestre (material 3) Análise de Sistemas 4º Bimestre (material 3) Permite a visualização das classes que irão compor o sistema com seus respectivos atributos e métodos, bem como demonstrar como elas se relacionam, complementam

Leia mais

Os diagramas de use case capturam os requisitos funcionais do sistema.

Os diagramas de use case capturam os requisitos funcionais do sistema. 109/166 Diagramas de Classe Sumário Colaborações Orientação aos Objectos Diagramas de Classe I conceitos base Diagramas de Classe II conceitos avançados Relações conceitos avançados Diagramas de objectos

Leia mais

UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticos

UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticos UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticos 7. UML, A vista da estrutura: as Classes P. Serendero A vista da Estrutura do sistema Documenta os aspectos estáticos do sistema. Os elementos

Leia mais

Linguagem de Programação. Diagrama de classes

Linguagem de Programação. Diagrama de classes Linguagem de Programação Diagrama de classes Joyce França Professora de Ciência da Computação - IFNMG 2 Agenda Diagrama de classes Herança Associação Agregação Exercícios 3 Diagrama de classes Mostra um

Leia mais

Introdução ao C++ Ambientes de Desenvolvimento Avançados. 2 de Outubro de 2002 ADA / DEI - ISEP 2002/2003 1

Introdução ao C++ Ambientes de Desenvolvimento Avançados. 2 de Outubro de 2002 ADA / DEI - ISEP 2002/2003 1 Introdução ao C++ Ambientes de Desenvolvimento Avançados 2 de Outubro de 2002 ADA / DEI - ISEP 2002/2003 1 C++! Extensão ao c! Facilita a representação de tipos de dados abstractos (tipo classe)! Suporte

Leia mais

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42 Diagrama de Classes Régis Patrick Silva Simão Régis Simão Diagrama de Classes 1/42 Agenda Introdução Objetos Classes Atributos Operações & Métodos Relacionamentos Relacionamento: Associação Nome de Relacionamento

Leia mais

Exemplo: Campeonato de futebol

Exemplo: Campeonato de futebol Exemplo: Campeonato de futebol Um campeonato é constituído por 34 jornadas, é identificado por uma época e possui um campeão e um melhor marcador. Cada jornada é identificada por um número e é constituída

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Curso Profissional de Gestão e Programação de Sistemas Informáticos Disciplina: Programação e Sistemas de Informação Programação Orientada a Objetos Módulos 9/10/11 POO 2016/2017 História A OO surgiu no

Leia mais

DC: um exemplo de refinamento

DC: um exemplo de refinamento DC: um exemplo de refinamento Uma aplicação de comunicação audio-visual Um sistema semelhante aos sistemas de instant messaging 45 Global diagramas Servico permite 0..5 1 * NivelPriv id:npid GestaoNP +valida:void

Leia mais

Diagrama de Classes. Classes. Relacionamentos. Atributos Métodos. Associação. Generalização Dependência Realização. Agregação Composição

Diagrama de Classes. Classes. Relacionamentos. Atributos Métodos. Associação. Generalização Dependência Realização. Agregação Composição Diagrama de Classes Diagrama de Classes Classes Atributos Métodos Relacionamentos Associação Agregação Composição Generalização Dependência Realização Sobre Classes São o elemento mais importante de qualquer

Leia mais

Segunda Parte (3 valores) Primeira Parte (7 valores) Nome: Número: PERGUNTA NOTA PERGUNTA RESPOSTA

Segunda Parte (3 valores) Primeira Parte (7 valores) Nome: Número: PERGUNTA NOTA PERGUNTA RESPOSTA Programação com Objectos 1/7 201302041830 120 minutos 2013/02/04 18:30 120 minutos Nome: Número: Primeira Parte (7 valores) PERGUNTA NOTA 1.1 1.2 1.3 1.4 Segunda Parte (3 valores) PERGUNTA RESPOSTA 2.1

Leia mais

DS: notação. Falta-nos apenas dar exemplos de DSS que contenham a criação de objectos temporários e sua posterior destruição.

DS: notação. Falta-nos apenas dar exemplos de DSS que contenham a criação de objectos temporários e sua posterior destruição. DS: notação Falta-nos apenas dar exemplos de DSS que contenham a criação de objectos temporários e sua posterior destruição. Martins 2008 147 DS: notação Martins 2008 148 DS: notação Mensagem condicional

Leia mais

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo DCC / ICEx / UFMG Primeiro Diagrama de Classes Diagrama de Classes Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Professor Aluno matricula Outro Diagrama de Classes Diagrama de Classes Serve de

Leia mais

Diagramas de classes. Classes

Diagramas de classes. Classes Diagramas de classes Um diagrama de classes serve para modelar o vocabulário de um sistema Ponto de vista do utilizador/problema na fase de captura e análise de requisitos, em paralelo com a identificação

Leia mais

UML Visão Geral UML Visão geral v.1.1, Novembro de 2001

UML Visão Geral UML Visão geral v.1.1, Novembro de 2001 UML Visão Geral 1 Índice Introdução Diagramas O que é a UML? Diagrama de casos de utilização Valor da UML Diagrama de classes Origens da UML Diagrama de objectos Parceiros da UML Diagrama de componentes

Leia mais

DIAGRAMAS DE CLASSE UML

DIAGRAMAS DE CLASSE UML DIAGRAMAS DE CLASSE UML Projeto Detalhado de Software (PDS) Profa. Cynthia Pinheiro Antes de mais nada... Calendário de Reposições Aula 1: 27/10/2017, 8h-10h, Sala 8 Aula 2: A verificar Aula 3: A verificar

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse

Leia mais

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos

UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos UML (Linguagem Modelagem Unificada) João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro A importância da UML para projetar sistemas. Principais características do diagrama de classes e de sequência.

Leia mais

Laboratório de programação II

Laboratório de programação II Laboratório de programação II Herança e Polimorfismo Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Herança Mecanismo da Orientação a Objeto que permite criar novas classes aproveitando

Leia mais

Tópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes

Tópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes Engenharia de Software Aula 09 Tópicos da Aula Projeto de Software Revisão de orientação a objetos Projeto orientado a objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo dcc603@gmail.com 04

Leia mais

Project-Based Learning TADS MS Diagrama de Classes

Project-Based Learning TADS MS Diagrama de Classes Bagé, 05 de abril de 2018 Project-Based Learning TADS - 01 2018 MS Diagrama de Classes Leandro Camargo Professor EBTT www.leandrocamargo.com.br (53)984012416 As classes são representadas por retângulos

Leia mais

Diagramas de Use Case Resumo

Diagramas de Use Case Resumo 0 Diagramas de Use Case Resumo Os diagramas de Use Case permitem definir os requisitos funcionais de um sistema: que serviços deve fornecer; a quem os deve fornecer. Notação diagramática facilita o diálogo

Leia mais

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos

Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos Programação Orientada a Objetos: Herança Alexandre César Muniz de Oliveira Análise e Projeto Orientados a Objetos A análise orientada a objetos Determina o que o sistema deve fazer: Quais os atores envolvidos?

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 7 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

4 Conceito de Herança

4 Conceito de Herança 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

PROGRAMAÇÃO ORIENTADA A

PROGRAMAÇÃO ORIENTADA A PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO Prof. Angelo Augusto Frozza, MS M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 4. Técnicas de Orientação a Objetos Classes e objetos Herança Métodos Subscritos

Leia mais

Programação por Objectos Introdução. Introdução 1/18

Programação por Objectos Introdução. Introdução 1/18 Programação por Objectos Introdução LEEC@IST Introdução 1/18 História (1) [60s] Simula-67, Dahl e Nygaard da Univ. de Oslo Primeira linguagem com conceitos OO. [70s] Smalltalk, da Xerox Primeira implementação

Leia mais

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

Engenharia de Software. Prof. Me. Clodoaldo Brasilino Engenharia de Software Prof. Me. Clodoaldo Brasilino clodoaldo.neto@ifpi.edu.br Acompanhamento da Disciplina 1. Introdução à Engenharia de Software 2. Processos de Software e Projetos 3. Metodologia Ágil

Leia mais

UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticos. 8. Diagramas de Classes, Diagramas de objetos, Interfaces

UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticos. 8. Diagramas de Classes, Diagramas de objetos, Interfaces UALG/FCT/DEEI Análise e Modelação de Sistemas Informáticos 8. Diagramas de Classes, Diagramas de objetos, Interfaces P. Serendero, 2007 Diagramas de Classes Uma vista gráfica do modelo semântico dos objetos

Leia mais

LEIC-A / MEIC-A 2007/2008 (1º

LEIC-A / MEIC-A 2007/2008 (1º 1/11 LEIC-A / MEIC-A 2007/2008 (1º Semestre) Teste (versão A) 08 de Janeiro de 2008, 09:00 (120 minutos) Nome: Primeira Parte (5 valores) PERGUNTA RESPOSTA 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 Segunda

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc.

PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO. Prof. Angelo Augusto Frozza, M.Sc. PROGRAMAÇÃO ORIENTADA A OBJETOS II -TÉCNICAS DE OO Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 4. Técnicas de Orientação a Objetos Classes e objetos Herança Métodos Subscritos

Leia mais

4.2. UML Diagramas de classes

4.2. UML Diagramas de classes Engenharia de Software 4.2. UML Diagramas de classes Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Um diagrama de classes serve para modelar o vocabulário de um sistema Construído e refinado ao longo

Leia mais

!" # Modelos de dados. 1ª geração. 2ª geração. 3ª geração. Modelo Hierárquico Modelo Rede. Modelo Relacional

! # Modelos de dados. 1ª geração. 2ª geração. 3ª geração. Modelo Hierárquico Modelo Rede. Modelo Relacional Nuno Melo e Castro !" # Modelos de dados 1ª geração Modelo Hierárquico Modelo Rede 2ª geração Modelo Relacional 3ª geração Extensões ao modelo relacional Modelo lógico-dedutivo Modelo orientado a objectos

Leia mais

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros Modelagem de Classes Mestrado em Engenharia de Produção e Sistemas Computacionais Profa. Adriana Pereira de Medeiros adrianamedeiros@id.uff.br Resumo Introdução Conceitos em Orientação a Objetos Diagrama

Leia mais

Requisitos de sistemas

Requisitos de sistemas Requisitos de sistemas Unidade III - Casos de Uso Identificação de casos de uso Conceitos de orientação a objetos Modelagem do diagrama de classes e casos de uso 1 Casos de uso CONCEITO Especifica o comportamento

Leia mais

Modelo Conceitual Parte 1 Banco de Dados I Prof. Luiz Antônio Vivacqua C. Meyer

Modelo Conceitual Parte 1 Banco de Dados I Prof. Luiz Antônio Vivacqua C. Meyer Modelo Conceitual Parte 1 Banco de Dados I Prof. Luiz Antônio Vivacqua C. Meyer Introdução As funcionalidades de um SOO são realizadas internamente através de colaborações entre objetos. Externamente,

Leia mais

PROJETO DE DESENVOLVIMENTO DE SOFTWARE

PROJETO DE DESENVOLVIMENTO DE SOFTWARE PROJETO DE DESENVOLVIMENTO DE SOFTWARE Professor: Diego Oliveira Aula 12: Diagrama de Classes Diagrama de Classes Seu principal objetivo é permitir a visualização das classes que vão compor o sistema,

Leia mais

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão Sumário Introdução à UML BSI Bacharelado em Sistemas de Informação LOO Linguagens Orientadas a Objetos Humberto Mossri de Almeida hmossri_cursos@yahoo.com.br Marcelo Nassau Malta nassau_cursos@yahoo.com.br

Leia mais

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; } Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos

Leia mais

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES. MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES lucelia.com@gmail.com Externamente ao sistema, os atores visualizam resultados de cálculos, relatórios produzidos, confirmações de requisições solicitadas,

Leia mais

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs Programação Orientada a Objetos Professor: André Luis Meneses Silva andreluis.ms@gmail.com br.geocities.com/programacao2ufs [ Conteúdo ] Objeto Mensagens Classe Encapsulamento Visibilidade Membros de Instância

Leia mais

Modelo do Mundo Real. Abstração. Interpretação

Modelo do Mundo Real. Abstração. Interpretação Modelo do Mundo Real Mundo Real Abstração Interpretação Sistema de Software Modelo Algoritmo Abstração: O modelo precisa capturar apenas as características do mundo real que são importantes para o sistema

Leia mais

Aula 4 POO 1 Análise OO. Profa. Elaine Faria UFU

Aula 4 POO 1 Análise OO. Profa. Elaine Faria UFU Aula 4 POO 1 Análise OO Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações

Leia mais

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental Orientação a Objetos (OO) LPG II - Java Orientação a Objetos (OO) Roberto Vedoato vedoato@joinville.udesc.br Programação Procedimental x Orientada a Objetos Objetivos e Benefícios da Orientação a Objetos

Leia mais

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de Orientação a Objetos (OO) Roberto Vedoato vedoato@joinville.udesc.br Programação Procedimental x Orientada a Objetos Objetivos e Benefícios

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Panorama da notação UML

Panorama da notação UML Panorama da notação UML A notação UML (Unified Modeling Language linguagem de modelagem unificada) evoluiu desde que foi adotada a primeira vez como um padrão em 1997. Uma revisão maior para o padrão foi

Leia mais

Revisão Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrícula

Revisão Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrícula Revisão Diagrama de classes Elementos do diagrama de classes Exemplo: Sistema de matrícula 1 Mostra um conjunto de classes e seus relacionamentos. É o diagrama central da modelagem orientada a objetos.

Leia mais

Introdução à UML. Prof. Jesus José de Oliveira Neto

Introdução à UML. Prof. Jesus José de Oliveira Neto Introdução à UML Prof. Jesus José de Oliveira Neto UML Linguagem de Modelagem Unificada Linguagem visual utilizada para modelar softwares baseados no paradigma de orientação a objetos UML não é uma linguagem

Leia mais

Diagramas. Abordaremos agora cada um destes tipos de diagrama: 1. Diagrama Use-Case. 2. Diagrama de Colaboração. 3. Diagrama de Sequência

Diagramas. Abordaremos agora cada um destes tipos de diagrama: 1. Diagrama Use-Case. 2. Diagrama de Colaboração. 3. Diagrama de Sequência Diagramas Os diagramas utilizados pela UML são compostos de nove tipos: diagrama de use case, de classes, de objecto, de estado, de sequência, de colaboração, de actividade, de componente e o de instalação/execução.

Leia mais

Linguagem de Programação II Herança

Linguagem de Programação II Herança Linguagem de Programação II Herança Prof. Alessandro Borges 2 Tópicos Reutilização de classes Delegação Herança Definição Superclasse e Subclasse A palavra reservada extends Método construtor com herança

Leia mais

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos: Módulo 6 Análise Orientada a Objeto É interessante observar como a análise orientada a objeto utiliza conceitos que aprendemos há muito tempo: objetos, atributos, classes, membros, todos e partes. Só não

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

UML - Diagramas de Casos de Utilização (Use Case Diagrams)

UML - Diagramas de Casos de Utilização (Use Case Diagrams) UML - Diagramas de Casos de Utilização (Use Case Diagrams) 1 Objectivo Um diagrama de casos de utilização de um sistema mostra actores (tipos de utilizadores), casos de utilização e relações entre eles

Leia mais

UML. Diagrama de Classe

UML. Diagrama de Classe UML Diagrama de Classe Em UML as classes são representadas por um retângulo dividido em três compartimentos: o compartimento de nome, que conterá apenas o nome da classe modelada, o de atributos, que possuirá

Leia mais

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc. Orientação a Objetos Revisão Conceitos CLASSE CLASSIFICAÇÃO GENERALIZAÇÃO ESPECIALIZAÇÃO HERANÇA INTERFACES POLIMORFISMO SOBRECARGA ENCAPSULAMENTO ABSTRAÇÃO MODULARIZAÇÃO 9 CLASSE Classe é um agrupamento

Leia mais

MÓDULO 8 INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA POR OBJETOS O QUE É A PROGRAMAÇÃO ORIENTADA POR OBJETOS 10

MÓDULO 8 INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA POR OBJETOS O QUE É A PROGRAMAÇÃO ORIENTADA POR OBJETOS 10 ÍNDICE MÓDULO 8 INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA POR OBJETOS 9 8.1 O QUE É A PROGRAMAÇÃO ORIENTADA POR OBJETOS 10 Como surgiu a programação orientada por objetos (POO) 10 Conceitos centrais da POO 11

Leia mais

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos

Herança. Herança. Herança. Herança. Herança. Programação Orientada a Objetos e Ligação Dinâmica Programação Orientada a Objetos e Polimorfismo A é a contribuição original do paradigma de programação orientado a objetos Fundamentos chave do paradigma OO: Abstração de Dados A herança

Leia mais

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){

Leia mais

Programação Java (nível intermediário) 4. Polimorfismo

Programação Java (nível intermediário) 4. Polimorfismo Programação Java (nível intermediário) 4 Polimorfismo Introdução Uma linguagem orientada a objetos nos permite definir novos tipos para variáveis Nós definimos um novo tipo através de uma classe Este tipo

Leia mais

UML Diagramas de Pacotes (Packages) e Modelação da Arquitectura Lógica. UML Diagramas de Pacotes v.1.1, João Pascoal Faria, 2001

UML Diagramas de Pacotes (Packages) e Modelação da Arquitectura Lógica. UML Diagramas de Pacotes v.1.1, João Pascoal Faria, 2001 UML Diagramas de Pacotes (Packages) e Modelação da Arquitectura Lógica 1 Pacotes Um pacote (package) em UML é um mecanismo de agrupamento genérico Notação: pasta com o nome no interior ou na pega No caso

Leia mais

UML. Adriano J. Holanda 21/3/

UML. Adriano J. Holanda 21/3/ UML Adriano J. Holanda 21/3/2016 UML Introdução UML - Unified Modeling Language Linguagem Unificada de Modelagem. Adquiriu maturidade na segunda década de 1990 pela fusão dos métodos e diagramas de Grady

Leia mais

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos

Programação para Games II. Professor Ariel da Silva Dias Orientação a Objetos Programação para Games II Professor Ariel da Silva Dias Orientação a Objetos Pacotes Pacotes são um modo de organizar classes e interfaces Um programa pode ser formado por centenas de classes individiduais;

Leia mais

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ Centro de Tecnologia - CTC Departamento de Informática - DIN Programa de Pós-Graduação em Ciência da Computação PCC ESTÁGIO DE DOCÊNCIA II Disciplina: Engenharia

Leia mais

Programação por Objectos. Java

Programação por Objectos. Java Programação por Objectos Java Parte 5: Associações LEEC@IST Java 1/32 Associação revisão Uma associação representa uma referência entre objectos. Numa associação são definidos: Identificador termo descritivo

Leia mais

Diagramas de Classes e O Paradigma da Orientação a Objetos usando UML. Prof. Ricardo A. Ramos

Diagramas de Classes e O Paradigma da Orientação a Objetos usando UML. Prof. Ricardo A. Ramos Diagramas de Classes e O Paradigma da Orientação a Objetos usando UML Prof. Ricardo A. Ramos Engenharia de Software II 207. 04/07/207 UML Unified Modeling Language É uma linguagem para especificação, construção,

Leia mais

Modelagem Orientada a Objeto

Modelagem Orientada a Objeto UNIVERSIDADE ESTADUAL PAULISTA INSTITUTO DE BIOCIÊNCIAS, LETRAS E CIÊNCIAS EXATAS DEPARTAMENTO DE CIÊNCIAS DE COMPUTAÇÃO E ESTATÍSTICA Modelagem Orientada a Objeto Engenharia de Software 2o. Semestre de

Leia mais

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO Santa Maria, 08 de Novembro de 2013. Contextualização Nas próximas aula iremos começar a modelar e projetar sistemas

Leia mais

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F. Diagramas UML Classe, Seqüência e Atividades Marcio E. F. Maia Disciplina: Engenharia de Software Professora: Rossana M. C. Andrade Curso: Ciências da Computação Universidade Federal do Ceará 15 de maio

Leia mais

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel)

Ex: carro_desportivo poderá ser uma subclasse de automóvel (carro_desportivo é_um automóvel) Herança capacidade de uma classe (subclasse) herdar, adquirir atributos e funcionalidades de outra classe (superclasse), podendo juntar algumas especificidades e/ou alterar outras. Existe uma relação tipo

Leia mais

7.8 DIAGRAMA DE CLASSES

7.8 DIAGRAMA DE CLASSES 7.8 DIAGRAMA DE CLASSES O diagrama de classes representa a estrutura do sistema, recorrendo ao conceito de classe e suas relações. O modelo de classes resulta de um processo de abstracção onde são identificados

Leia mais

Classes e Objetos. Sintaxe de classe em Java

Classes e Objetos. Sintaxe de classe em Java Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados

Leia mais

UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes

UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes O diagrama de classe é a essência de qualquer modelagem orientada a objeto. Ele tem por objetivo descrever, segundo uma visão estática, o escopo

Leia mais

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos DCC / ICEx / UFMG Pensar Orientado a Objetos Projeto Orientado a Objetos Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Onde quer que você olhe no mundo real, você vê objetos Pessoas, animais, plantas,

Leia mais

Projeto Banco de Dados

Projeto Banco de Dados Projeto Banco de Dados Principais Fases do Processo Projeto Conceitual Projeto Lógico Projeto Físico 32 Projeto Banco de Dados Projeto Conceitual Modelagem de dados em alto nível Foco no domínio do problema

Leia mais

Diagramas de Use Case

Diagramas de Use Case 86/170 Diagramas de Use Case Sumário Definição de requisitos. Diagramas de Use Case I conceitos base Diagramas de Use Case II conceitos avançados Resumo Exercícios Definição de Requisitos 87/170 Definição

Leia mais

Programação em Comunicações. Programação Orientada por Objectos. Ademar Aguiar.

Programação em Comunicações. Programação Orientada por Objectos. Ademar Aguiar. Programação em Comunicações Programação Orientada por Objectos www.fe.up.pt/~aaguiar ademar.aguiar@fe.up.pt 1 Objectivos Apresentar os princípios e conceitos base sobre orientação por objectos (objectos,

Leia mais

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2

Conceitos de Programação Orientada por Objectos. Rui Camacho Programação 2 Conceitos de Programação Orientada por Objectos Um Problema Problema: Existem, hoje em dia, aplicações complexas e de grande dimensão que é preciso desenvolver e manter de modo eficiente utilizando equipas

Leia mais

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos

AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Câmpus Santa Helena Curso: Ciência da Computação Disciplina: Programação Orientada a Objetos AULA 8 Polimorfismo de: coerção, overloading, inclusão e paramétrico Prof. Dr. Fernando Henrique Campos Tema

Leia mais

Orientação a objetos. Objetos ou Instâncias I

Orientação a objetos. Objetos ou Instâncias I Orientação a objetos Objetos ou Instâncias Métodos ou Mensagens Encapsulamento Classes Variáveis da Classe X Variáveis da Instância Métodos da Classe X Métodos da Instância Relacionamentos Identificando

Leia mais

Capítulo 5 Modelação do Sistema 1

Capítulo 5 Modelação do Sistema 1 Capítulo 5 Modelação do Sistema Capítulo 5 Modelação do Sistema 1 Assuntos abordados Modelos de contexto Modelos de interação Modelos estruturais Modelos comportamentais Engenharia orientada a modelos

Leia mais

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE 1 INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE CAMPUS JOÃO CÂMARA UML UNIFIED MODELING LANGUAGE Nickerson Fonseca Ferreira nickerson.ferreira@ifrn.edu.br O que é?? 2 A UML

Leia mais

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo

POO Fundamentos Parte III. Professor Vicente Paulo de Camargo POO Fundamentos Parte III Professor Vicente Paulo de Camargo PROGRAMAÇÃO ORIENTADA A OBJETOS HERANÇA SIMPLES Mecanismo que permite a uma classe, denominada de SUBCLASSE ou CLASSE FILHA, herdar todos os

Leia mais

Diagramas de Package

Diagramas de Package 190 Diagramas de Package À medida que os sistemas software se tornam mais complexos e o número de classes aumenta: Torna-se difícil efectuar a gestão das diversas classes A identificação de uma classe

Leia mais

Diagrama de Classes (Análise de casos de uso)

Diagrama de Classes (Análise de casos de uso) Diagrama de Classes (Análise de casos de uso) Prof. Cesar Augusto Tacla Diagrama de classes Estrutura do sistema (classes) Representação estática da colaboração (relações) Relações associação (mais comum)

Leia mais

UML Diagrama de Classes

UML Diagrama de Classes CBSI Curso de Bacharelado em Sistemas de Informação UML Diagrama de Classes Prof. Dr. Sandro Ronaldo Bezerra Oliveira srbo@ufpa.br www.ufpa.br/srbo Análise e Projeto de Sistemas Faculdade de Computação

Leia mais

Análise Orientada a Objetos. Análise Orientada a Objetos; O Paradigma de Objetos; A UML.

Análise Orientada a Objetos. Análise Orientada a Objetos; O Paradigma de Objetos; A UML. ESPECIALIZAÇÃO EM GESTÃO DE TECNOLOGIAS DA INFORMAÇÃO Análise Orientada a Objetos AULA 03 Análise Orientada a Objetos; O Paradigma de Objetos; A UML. Prof. Sandrerley R. Pires Goiânia, agosto de 2003 Conceitos

Leia mais

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla.

Java First-Tier: Aplicações. Herança: Simples Múltipla. Orientação a Objetos em Java (III) Problemas de Herança Múltipla. Java First-Tier: plicações Orientação a Objetos em Java (III) Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Herança: Simples Múltipla O tipo de herança que usamos até agora é chamado

Leia mais

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer BANCO DE DADOS I Prof. Luiz Antônio Vivacqua C. Meyer Projeto de Banco de Dados Etapas do Desenvolvimento de um Projeto de Sistemas: 1. Levantamento de Requisitos a. Requisitos Funcionais b. Requisitos

Leia mais

Linguagem de Modelagem Unificada UML

Linguagem de Modelagem Unificada UML Linguagem de Modelagem Unificada UML Parte 1 Rosemary Silveira Filgueiras Melo rosesfmelo@hotmail.com 1 Tópicos abordados Paradigma Orientado a Objetos Linguagem UML e seus principais diagramas Diagramas

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais