PROJETO DE DADOS PROJETO ARQUITETURAL BÁSICO. Projeto de Programas PPR0001

Documentos relacionados
MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

PROJETO DE PROGRAMAS. Projeto de Programas PPR0001

PROJETO PROCEDIMENTAL. Projeto de Programas PPR0001

Programação Orientada a Objetos Relacionamentos entre classes

Linguagem de Programação. Diagrama de classes

Análise e Projeto de Software Parte I. Marcos Dósea

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

04/11/2016 UML. Prof. Esp. Fabiano Taguchi DIAGRAMAS DE CLASSE

Collections Framework

Orientação a Objetos AULA 09

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

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

MODELAGEM DE DADOS MÓDULO III - UNIDADE V- MAPEAMENTO OBJETO RELACIONAL

Requisitos de sistemas

Classes e Objetos. Sintaxe de classe em Java

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

Diagrama de Classes (Notação) - Aula 11 (parte 2)

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Engenharia de Software. Prof. Me. Clodoaldo Brasilino

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Análise e projeto de sistemas

Introdução à Orientação a Objetos em Java

Orientação a Objetos e UML

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

ENGENHARIA DE SOFTWARE. Aula 10 Introdução ao Diagrama de Classes

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Programação por Objectos. Java

Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)

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

Prof. Fernando V. Paulovich 8 de novembro de SCC Programação Orientada a Objetos

Q d( ) P. a( ) c( ) e( ) c( ) S. c( ) d( )

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

Programação Orientada a Objetos JAVA - NETBEANS

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

Programação Estruturada e Orientada a Objetos. Objetos e Métodos

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

UML. Adriano J. Holanda 21/3/

Tema 7. Colecções AULA TEÓRICA 6. Listas: ArrayList, LinkedList, Vector Ø Criação Ø Manipulação

Programação Orientada a Objetos Flávio de Oliveira Silva 144

1. Por que não utilizar a notação de composição da UML para mostrar que um cachorro é composto de altura, peso, cor e data de nascimento?

Programação Orientada a Objetos

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

Prática interdisciplinar em desenvolvimento de software I

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

Palavras Reservadas da Linguagem Java

Parte II. Orientação a objetos no PHP. Contato: Site: Programação para WEB II

Modelagem de Dados Usando o Modelo Entidade-Relacionamento (ME-R)

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan

Singleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)

PLANO DE ENSINO. ANO LETIVO/SEMESTRE: 2016/2 PROFESSOR: Leandro da Silva Camargo

UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes

AULA 16 HERANÇA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes

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

PROJETO PROCEDIMENTAL. Projeto de Programas PPR0001

UML (Linguagem unificada de modelagem)

Linguagem de Programação Orientada a Objeto Abstração - Encapsulamento

Programação Orientada a Objetos

Programação Orientada a Objetos. Encapsulamento

Diagrama de Classes (Análise de casos de uso) Prof. Cesar Augusto Tacla

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

Banco de Dados. Aula 4 - Prof. Bruno Moreno 02/09/2011

Linguagem de Programação Introdução a Orientação a Objetos

Conceitos de Programação Orientada a Objetos

Programação Orientada a Objetos com Java. Prof. Júlio Machado

POO29004 Programação Orientada a Objetos

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

Técnicas de Modelação de Dados

Análise e Projeto de Sistemas

PADRONIZAÇÃO 10. INTERFACES PADRONIZAÇÃO CONTRATOS

Roteiro. Introdução. Uma Introdução à Programação Orientada a Objetos e JAVA usando NetBeans. Objetos. Princípios da Orientação a Objetos

UML Diagrama de Classes

Abordagem ER. Capítulo 2

Orientação a Objetos e Java

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

PCS3413 Engenharia de Software e Banco de Dados

Orientação a Objetos (OO)

Iteradores. Iteradores. Isabel Harb Manssour. Roteiro. Coleções

Tópicos da Aula. Alguns Diagramas UML. Diagramas Principais. Diagramas de Interação: Sequência e Colaboração. Tipos de Diagramas de Interação

Aula 08 Relacionamento entre Objetos. Disciplina: Programação Estruturada e Orientada a Objetos Prof. Bruno Gomes

Concurso Público para provimento de cargo efetivo de Docentes. Edital 09/2015 INFORMÁTICA Campus Manhuaçu

Linguagem de Programação Orientada a Objeto Coleções

Modelagem de dados usando o modelo Entidade- Relacionamento (ER)

Orientação a Objetos - Herança

Contexto. Motivação. variabilidade. variabilidade

Orientação a Objetos. Encapsulamento ArrayLists. Gil Eduardo de Andrade

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

Diagrama de Classes. Viviane Torres da Silva 2/es1

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

Atividade 07 - Tutorial sobre o Astah Community

Engenharia de Software

Aula 2 Abordagem Entidade-Relacionamento Cleverton Hentz

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

Java API. Giuliana Silva Bezerra

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

Introdução à UML. Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX. Prof. Fernando Maia da Mota

Transcrição:

1 PROJETO DE DADOS PROJETO ARQUITETURAL BÁSICO Projeto de Programas PPR0001

2 Atividades Envolvidas Preliminar Realizar a organização dos dados considerando a tecnologia que será utilizada em módulos (exemplo: definir as classes); Elencar as operações do sistema. Definir encapsulamento Refinamento Definir relação entre os módulos (organização hierárquica); Definir a estrutura global do software Modela o Aspecto Estático (estrutural) do sistema

3 Tipos de Dados Com o projeto de dados pronto (DER), escolhe-se os tipos de dados que serão utilizados para representar cada dado/informação do sistema. Primitivos Composto Nativo Composto Próprio Não reinventar a roda quando não é preciso!

4 Estruturas de Dados Lista Encadeada Se nenhum tipo for especificado no diamante a lista poderá armazenar qualquer tipo de objeto, mas todo valor será considerado como Object (necessário casting) Se for especificado um tipo de dados então a lista só poderá possuir elementos daquele tipo

5 Estruturas de Dados Lista Encadeada Métodos Principais: add => adiciona elemento addfirst => adiciona no inicio addlast => adiciona no fim clear => limpa a lista contains => verifica existência get => pegar um elemento pop => remove elemento remove => remove elemento size => tamanho da lista sort => ordena lista

6 Estruturas de Dados ArrayList ArrayLists possuem os mesmos métodos das listas encadeadas. O que se altera é o seu funcionamento interno. Entretanto, para esta disciplina não vamos nos importar com isso.

7 Tipos de Dados Árvores / Conjunto - Set Árvores geralmente são úteis quando deseja-se maior desempenho em determinadas funções; Árvores são implementadas como conjuntos, a princípio; logo, não possuem elementos repetidos.

8 Estruturas de Dados Árvores / Conjunto - Set Métodos Principais: add => adiciona elemento clear => limpa a lista contains => verifica existência remove => remove elemento size => tamanho da lista

9 Estruturas de Dados Como Iterar pelos elementos? Método 1 Usando um Iterator Método 2 utilizando um for Método 3 utilizando um foreach com Consumer (Java 8)

PPR0001-2014/2 10 MODELAGEM DO PROJETO ARQUITETURAL

11 Classes, Atributos e Métodos Queremos modelar as casas abaixo para um sistema. o Quais atributos e métodos são interessantes? (fazem parte do escopo)

12 Classes, Atributos e Métodos Queremos modelar as casas abaixo para um sistema. o Quais atributos e métodos são interessantes? (fazem parte do escopo) int numero; Color cor; boolean porta_fechada; static String construtora; boolean abrirporta(); boolean fecharporta(); void pintar( Color );

13 Classes, Atributos e Métodos Para representar uma classe utilizamos um Diagrama de Classe o A ferramenta ASTAH Community permite a geração destes diagramas; Os principais elementos de uma classe são: Nome Atributo(s) Método(s)

Diagrama de Classes 14

15 Diagrama de Classes Elementos importantes dos Atributos: [Encapsulamento] [Nome] : [Tipo] Elementos importantes dos Métodos: [Encapsulamento] [Nome] ( {[tipos dos parâmetros]} ) : [Tipo Retorno] Encapsulamento ou visibilidade: - private : somente a classe tem acesso + public : todas as classes tem acesso ~ package (default): classes do mesmo pacote tem acesso # protected : igual ao package + acesso por herança (classes que estendem)

16 Diagrama de Classes Outras propriedades: Classes Abstratas Atributo estático Método estáticos Métodos abstratos Agrupamentos: Pacotes Na próxima aula vamos trabalhar mais a com a questão do agrupamento

17 Exemplo Vamos escrever algumas classes para o sistema acadêmico: CURSO: Atributos: id, nome; Métodos: nenhum; DISCIPLINA: Atributos: id, curso, sigla, ch; Métodos: nenhum; ACADEMICO: Atributos: matricula, nome, curso, endereço, telefone, senha; Métodos: alterarendereco(), verificarsenha(); SISTEMA: Atributos: nenhum; Métodos: matricular(), lancarmedia();

18 Associação Relacionamentos entre Classes Representa uma relação de referência entre duas classes. o Uma classe A mantêm uma referência para uma classe B ex1 um acadêmico foi aprovado em uma ou várias disciplinas Nome, direção e multiplicidade:

19 Relacionamentos entre Classes Associação Nome, direção e multiplicidade: Papel Nome da associação Direção de leitura Papel Organização contratante Contrata contratado Indivíduo * * Multiplicidade: o Obrigatória: multiplicidade >= 1 o Opcional: multiplicidade pode ser 0

20 Associação Relacionamentos entre Classes Navegabilidade: indica para qual lado ocorre a referência o Não especificada (sem seta): utilizada para representar relações não fortes e sem restrição de desempenho (ex: representar objeto pelo id); o Associação navegável (seta unidirecional/bidirecional): representa que uma classe possui referência da outra classe e restringe acesso eficiente (ex: uso de referência) o Associação não navegável (x): representa que um lado não é acessível através de outra classe.

21 Associação Relacionamentos entre Classes ex2 um Player obrigatoriamente possui um Asset (OBS: um Asset pode ser comprado por apenas um player) class Asset {...} class Player{ Asset asset; public Player (Asset purchased_asset){... } } Q: Como ficaria a relação entre acadêmico e disciplina para cada caso?

22 Relacionamentos entre Classes Associação Associações Reflexivas ou auto associações Quando uma classe se relaciona consigo mesma. Indica que um objeto da classe pode/deve se relacionar com outro objeto da mesma classe com papéis distintos. Supervisão supervisor 1 Empregado * supervisionado

23 Relacionamentos entre Classes Classe associativa É uma classe que está ligada a uma associação Normalmente necessário quando dados de uma associação entre duas classes precisam ser usados. OBS: no modelo fica implícito que Emprego deve ter referência para Pessoa e Empresa. Emprego salário datacontratação Se uma pessoa só trabalha em uma empresa, esse modelagem não seria interessante Pessoa nome telefone endereço * empregado * empregador Empresa razãosocial endereço

24 Agregação Relacionamentos entre Classes Representa uma associação fraca de maior multiplicidade : um-para-muitos, muitos-para-muitos, parte-todo Semelhante a uma associação e considerado redundante Indica que um ou vários objetos associados podem ser agregados a qualquer momento class Asset {...} class Player { List assets; public void addasset( Asset new_asset ){ assets.add(new_asset); } }

25 Agregação Relacionamentos entre Classes (exemplo adicional) AssociaçãoEsportiva Afiliada * * Equipe * membro * Jogador (instância de jogador pode existir mesmo sem uma equipe)

26 Composição Relacionamentos entre Classes Representa uma associação forte com responsabilidade de instanciação de criação: classe A, que é composta da classe B, é responsável pelo controle do tempo de vida do(s) seus objeto(s) da classe B public class Piece {...} public class Player { Piece piece; public Player(){ piece = new Piece(); } }

27 Composição Relacionamentos entre Classes (exemplos adicionais)

28 Relacionamentos entre Classes [Agregação] vs Composição

29 Relacionamentos entre Classes Agregação vs [Composição]

30 Relacionamentos entre Classes Herança ou Generalização Representa que uma classe herda todos os atributos e métodos de outra classe (extends)

31 Dependência Relacionamentos entre Classes Indica que uma classe pode vir a utilizar um método ou variável de outra classe, da qual se torna dependente Deixa evidente que uma modificação na classe de dependência pode gerar problemas na classe dependente class Die{ public void rool(){...} } class Player{ public void taketurn(die die){ die.roll(); } }

32 Atividade Agora é a sua vez! Realize a identificação das classes e das suas associações para o sistema descrito no documento que está disponível na página da disciplina.

33 Básica: Bibliografia BEZERRA, E. Princípios de Análise e Projetos de Sistemas com UML. Rio de Janeiro: Campus, 2003. PRESSMAN, R.S. Engenharia de Software. São Paulo: Makron Books, 2002. SOMMERVILLE, I. Engenharia de Software. São Paulo: Addison Wesley, 2003. Complementar: WARNIER, J. Lógica de Construção de Programas. Rio de Janeiro: Campus, 1984. JACKSON, M. Princípios de Projeto de Programas. Rio de Janeiro: Campus, 1988. PAGE-JONES, M. Projeto Estruturado de Sistemas. São Paulo: McGraw-Hill, 1988. Association vs. Dependency vs. Aggregation vs. Composition. Disponível em: https://nirajrules.wordpress.com/2011/07/15/association-vs-dependency-vsaggregation-vs-composition/