Prof. Claudio Passos Apresentação cedida pela Ceça Moraes



Documentos relacionados
UML: Diagrama de Classes

ProgramaTchê Programação OO com PHP

PROGRAMAÇÃO OO DIAGRAMA DE CLASSES. Engenheiro Anilton S. Fernandes (asfernandes.com) Janeiro 2012

Sumário. Uma visão mais clara da UML

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

Engenharia de Software III

2 Diagrama de Caso de Uso

UML Aspectos de projetos em Diagramas de classes

Capítulo 22. Associações entre Classes. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Especificação de Requisitos

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

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

Felipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

A Linguagem de Modelagem Unificada (UML)

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Engenharia de Requisitos Estudo de Caso

INF 2125 PROJETO DE SISTEMAS DE SOFTWARE Prof. Carlos J. P. de Lucena

Unified Modeling Language UML

Engenharia de Software

3.1 Definições Uma classe é a descrição de um tipo de objeto.

Banco de Dados Modelo Conceitual, Lógico, Físico, Entidade- Relacionamento (ER) Hélder Nunes

SISTEMA DE GERENCIAMENTO DE PROJETOS - REDMINE MANUAL DE USO

A linguagem UML. UML e Diagramas de Casos de Uso e Classes. Por que usar UML? O que é modelagem?

O Processo Unificado: Captura de requisitos

Disciplina: Unidade II: Prof.: Período:

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Prof.: Clayton Maciel Costa

Orientação a Objetos

Modelagem de Casos de Uso (Parte 1)

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Modelo de Entidade e Relacionamento (MER) - Parte 07

TUTORIAL DO ALUNO. Olá, bem vindo à plataforma de cursos a distância da Uniapae!!!

Universidade do Minho. Licenciatura em Engenharia Informática. Desenvolvimento de Sistemas de Software. Gere Com Saber

Unified Modeling Language UML - Notações

Herança. Alberto Costa Neto DComp - UFS

MODELAGEM VISUAL DE OBJETOS COM UML DIAGRAMA DE CLASSES.

TCEnet e TCELogin Manual Técnico

Casos de Uso - definições

QUESTÕES PARA ESTUDO DIAGRAMA DE CLASSE

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

Entendendo como funciona o NAT

UNIVERSIDADE DE MOGI DAS CRUZES Centro de Ciências Exatas e Tecnológicas

Python Orientação a Objetos Parte 1. Introdução à Programação SI1

Diagrama de classes. Ricardo Roberto de Lima UNIPÊ APS-I

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Modelagem de Software Prof. Flávio de Oliveira Silva, Ph.D.

MC536 Bancos de Dados: Teoria e Prática

Especificação de Requisitos

Introdução! 1. Modelos de Domínio! 1. Identificação de classes conceituais! 2. Estratégia para identificar classes conceituais! 2

TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES

Módulo de Usuário 04 Orientações para o Uso 05 Acessando as Salas 06 Dentro do Ambiente das Salas 08 (1) Outros Usuários 09 (2) Seus Dados 09 (3)

05 - Como faço para acessar um curso no Ambiente Virtual de Aprendizagem Moodle/UFGD.

Padrão Básico de Projeto: Herança versus Composição

UML: Diagrama de Casos de Uso, Diagrama de Classes

Pag: 1/20. SGI Manual. Controle de Padrões

AULA Entidade-Relacionamento

Manual para Envio de Petição Inicial

4.2. UML Diagramas de classes

Engenharia de Software I

Editor de Questões E24H

Bem- Vindo ao manual de instruções do ECO Editor de COnteúdo.

Modelo Entidade-Relacionamento

Diagrama de Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso. Diagrama de Casos de Uso. Componentes do Diagrama

Microsoft Office Outlook Web Access ABYARAIMOVEIS.COM.BR

Visibilidade e Diagrama de Classe de Projeto Estudo de Caso Sistema TPV

Capítulo 6. Criando um Diagrama de Caso de Uso Inicial

Manual do Aluno. O Moodle é um sistema que gerencia ambientes educacionais de aprendizagem que podem ser denominados como:

Controle de Almoxarifado

Receber intimações: poderão receber intimações em processos eletrônicos nos quais estejam vinculados.

Manual do sistema SMARsa Web

Manual Solicitante Dezembro de Treinamento e Implantação. Manual do usuário

Uma visão mais clara da UML Sumário

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Serviço Público Federal Universidade Federal do Pará - UFPA Centro de Tecnologia da Informação e Comunicação - CTIC S I E

Pontifícia Universidade Católica

Programação com Objectos. Processamento de Dados I. 3. UML (Unified Modeling Language)

Prof. Raul Sidnei Wazlawick UFSC-CTC-INE. Fonte: Análise e Projeto de Sistemas de Informação Orientados a Objetos, 2ª Edição, Elsevier, 2010.

PROCESSO JUDICIAL ELETRÔNICO PJe

Manual do. Usuário do Redeca. Para o coordenador da entidade

Manual do usuário. v1.0

Política de Privacidade da Golden Táxi Transportes Executivo. Sua Privacidade Na Golden Táxi Transportes Executivo. acredita que, como nosso

Modelagem de Sistemas Prof. Marcos Roberto e Silva

PORTAL DE GERENCIAMENTO DE INSPEÇÃO VEICULAR

TOTVS Série 1 Varejo (Simples) - Módulo e-commerce

Curso de PHP. FATEC - Jundiaí. A programação orientada a objetos (object-oriented oriented programming

Tarciane Andrade.

Versão 7 TraceGP Ágil

Diagrama de Classes. Viviane Torres da Silva

Grupo Projeção. Portal Acadêmico. - Ambiente do Aluno -

Técnicas de Programação II

Guia Site Empresarial

Introdução ao Aplicativo de Programação LEGO MINDSTORMS Education EV3

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

Estudo de Caso. Caixa Eletrônico. Deitel & Deitel. Java como Programar 6a edição

Transcrição:

Prof. Claudio Passos Apresentação cedida pela Ceça Moraes

Programação Orientada a Objetos: os problemas de programação são pensados em termos de objetos Em vez de funções e rotinas Problema = desenvolver um sistema para locadoras Dividir o problema em objetos Clientes,DVDs,Filmes,Locação,...

"Um objeto é um termo que usamos para representar uma entidade do mundo real" Fazemos isto através de um exercício de abstração...

Podemos descrever o cachorro Bidu em termos de seus atributos físicos: é pequeno sua cor principal é castanha olhos pretos orelhas pequenas e caídas rabo pequeno

Podemos também descrever algumas ações que ele faz (temos aqui os métodos): balança o rabo foge e se deita quando leva reclamação late quando ouve um barulho ou vê um cão ou gato atende quando o chamamos pelo seu nome

Representação do cachorro Bidu: Propriedades : [Cor do corpo : castanha; cor dos olhos : pretos; altura: 15 cm; comprimento: 38 cm largura : 24 cm] Métodos : [balançar o rabo, latir, correr, deitar, sentar ]

Uma classe representa um conjunto de objetos que possuem comportamentos e características comuns Têm os mesmos atributos, operações, relacionamentos e semântica Uma classe descreve como certos tipos de objetos se parecem do ponto de vista da programação

Ao definir uma classe é necessário definir : Propriedades Informações específicas relacionadas a uma classe de objeto Características dos objetos da classe Exemplo: Cor, altura, tamanho, largura,... Métodos: São ações que os objetos de uma classe podem realizar Exemplo : Latir, correr, sentar, comer, etc.

Ilustram atributos e operações de uma classe e as restrições como que os objetos podem ser conectados ; Descrevem também os tipos de objetos no sistema e os relacionamentos entre estes objetos

Atributos visibilidade nome: tipo + altura: float Atributos Métodos Métodos visibilidade nome(args): tipo retorno + latir() + media(n1,n2): float

Visibilidade dos atributos e métodos em uma classe : + (público) visível em qualquer classe # (protegido) qualquer descendente pode usar (privado) visível somente dentro da classe

Os relacionamentos determinam conexões entre os objetos das classes Fornecem um caminho para a comunicação entre os objetos Tipos de Relacionamentos: Associações : agregação e composição Generalização (herança) Dependências

Os relacionamentos possuem: Nome: descrição dada ao relacionamento (faz, tem, possui,...) Sentido de leitura Navegabilidade: indicada por uma seta no fim do relacionamento Multiplicidade: 0..1, 0..*, 1, 1..*, 2, 3..7 Tipo: associação (agregação, composição), generalização e dependência Papéis: desempenhados por classes em um relacionamento

nome multiplicidade sentido de leitura Pessoa 1..* trabalha para * empregado empregador Tipo: associação Empresa papéis E a navegabilidade?

navegabilidade Cliente reside 1 * Endereço O cliente sabe quais são seus endereços, mas o endereço não sabe a quais clientes pertence LES/PUC- Rio

Uma associação é um vínculo que permite que objetos de uma ou mais classes se relacionem Não há conceito de posse As associações podem ser: unárias - quando a associação ocorre entre objetos de uma mesma classe binárias - quando a associação ocorre entre dois objetos de classes distintas

Uma associação é uma conexão entre classes (linha sólida)

Indicadores de multiplicidade: 1 1..* 0..* * 0..1 Exatamente um Um ou mais Zero ou mais (muitos) Zero ou mais (muitos) No máximo um (zero ou um) m..n Faixa de valores (por exemplo: 4..7)

"Qualquer empregado é chefiado por no máximo um chefe." Empregado UML empregados chefe * Chefia 0..1 Chefe

Navegação por definição, a navegação entre classes associadas é bidirecional por conveniência, a navegação pode ser restringida a uma única direção

Um Estudante pode ser: Um aluno de uma Disciplina e Um jogador da Equipe de Futebol Cada Disciplina deve ser cursada por no mínimo 1 aluno Um Aluno pode cursar de 0 até 8 disciplinas

Ocorre quando a associação tem propriedades Person 1..* * Com pany +em ployer +em ployee Job salary datehired

É um tipo especial de associação Utilizada para indicar todo-parte um objeto parte pode fazer parte de vários objetos todo Mostra como classes são compostas de outras classes

"Uma empresa possui vários veículos." UML Empresa de ônibus 0..1 frota * Veículo

Tipo especial de agregação é um relacionamento de contenção Um objeto (container) CONTÉM outros objetos (elementos) Elementos que estão contidos dentro de outro objeto dependem dele para existir

Agregação: estabelece uma relação todo-parte entre classes, sendo que a parte pode existir sem o todo. Ex: Carro e Roda. Uma Roda é parte de um Carro, porém a Roda existe por si só fora do Carro. Você pode por exemplo remover a roda de um carro para colocar em outro. Composição: estabelece uma relação todo-parte entre classes, sendo que a parte NÃO existe sem o todo. Ex: Pedido e Itens de Pedido. Se você destruir o Pedido, os Itens são destruídos junto, eles não tem sentido se não houver um Pedido.

Com pany Departm ent 1 *

Língua natural "Um humano é composto por uma cabeça e dois braços." Humano UML Cabeça 1 2 Braço

Uma classe pode ser definida a partir de outra já existente Abstrai classes genéricas (superclasse), a partir de classes com propriedades (atributos e operações) semelhantes

Modelar aspectos semelhantes entre classes, preservando suas diferenças As subclasses herdam todas as propriedades de sua superclasse E possuem as suas próprias

Relacionamento entre itens gerais (superclasses) e itens mais específicos (subclasses) superclasse é um é um tipo de Terrestre Veículo Aéreo subclasses

Forma uma Forma pode ser um Círculo, um Retângulo ou uma FormaComposta Círculo Retângulo FormaComposta

Identificar classes com propriedades semelhantes Definir uma nova classe com as propriedades comuns As classes originais tornam-se subclasses da nova classe e herdam as propriedades desta Os relacionamentos em comum passam para a superclasse e os demais continuam nas subclasses

Definir uma ou mais subclasses a partir de uma classe existente Adicionar propriedades e relacionamentos específicas de cada nova subclasse Relacionamentos comuns a todas as subclasses são ligados à superclasse

A Universidade XYZ deseja informatizar seu sistema de matrículas: A universidade oferece vários cursos. O Coordenador de um curso define as disciplinas que serão oferecidas pelo seu curso num dado semestre. Várias disciplinas são oferecidas em um curso. Várias turmas podem ser abertas para uma mesma disciplina, porém o número de estudantes inscritos deve ser entre 3 e 10. Estudantes podem se matricular em 4 disciplinas. Quando um estudante matricula-se para um semestre, o Sistema de Registro Acadêmico (SRA) é notificado. Após a matrícula, os estudantes podem, por um certo prazo, utilizar o sistema para adicionar ou remover disciplinas. Professores usam o sistema para obter a lista de alunos matriculados em suas disciplinas. Todos os usuários do sistema devem ser validados.

Diagrama de Casos de Uso

Descrição Resumida do Caso de Uso Matricular em Disciplina Esse caso de uso se inicia quando o Estudante de Curso inicia uma sessão no sistema e apresenta suas credenciais. O sistema verifica se a credencial é válida. O sistema solicita que o estudante realize sua matrícula, selecionando 4 disciplinas. O estudante preenche um formulário eletrônico de matrícula e o submete para análise de consistência. O sistema analisa as informações contidas no formulário. Se as informações são consistentes, o estudante é incluído em turmas abertas de 4 disciplinas, iniciando pelas preferenciais. Se as informações não são consistentes, o sistema informa o motivo da inconsistência e solicita que o formulário seja alterado.

Diagrama de Classes: identificando as classes Professor Coordenador Estudante Universidade Disciplina Turma Curso FormularioMatricula AnalisadorMatricula SistemaRegistroAcademico ListaAlunos

Diagrama de Classes: identificando os relacionamentos Exemplos de possibilidades de relacionamentos entre as classes A e B: A é parte física ou lógica de B A está contido fisicamente ou logicamente em B A é uma descrição de B A é membro de B A é subunidade organizacional de B A usa ou gerencia B A se comunica/interage com B A está relacionado com uma transação B A é possuído por B A é um tipo de B

Diagrama de Classes: identificando os relacionamentos O formulário de matrícula é processado por um analisador de matrícula FormularioMatricula 0..* é-processado-por 1 AnalisadorMatricula

Diagrama de Classes: identificando os relacionamentos O analisador de matrícula gerencia a disciplina FormularioMatricula 0..* é-processado-por 1 AnalisadorMatricula 1 0..* Disciplina

Diagrama de Classes FormularioMatricula 1 0..* é-processado-por 1 AnalisadorMatricula 1 gerencia é-preenchido-por 0..* Disciplina 1 1..* é-definida-por 1 Coordenador aluno 1 Estudante está-matriculado-em 3..10 4 1..* é-ministrada-por Turma 0..3 1 Professor

Diagrama de Classes: identificando os atributos Os atributos podem ser encontrados examinando-se as descrições dos casos de uso e também pelo conhecimento do domínio do problema. Cada turma oferecida possui um código, uma sala e um horário. código sala horário Turma

Diagrama de Classes FormularioMatricula 1 0..* é-processado-por 1 AnalisadorMatricula 1 gerencia 0..* é-preenchido-por Disciplina nome numcréditos 1..* é-definida-por 1 Coordenador 1 aluno 1 Estudante nome matricula está-matriculado-em 3..10 4 1..* Turma código sala horário é-ministrada-por 0..3 1 Professor nome titulação

Diagrama de Classes: identificando os métodos modelar antes os diagramas de seqüência 1: submeterformulario(f) : SIM : AnalisadorMatricula AnalisadorMatricula adicionar(aluno, disciplina) 2: adicionar(a,d ) SIM submeterformulario(formulario)

Diagrama de Classes: E a navegabilidade? Estudante está-matriculado-em 3..10 4 Turma public class Estudante { private String nome; private String matricula;... } public class Turma { } private String codigo; private String sala; private Estudante alunos[];... OBS: Turma não aparece como atributo de Estudante!

Diagrama de Classes: Acrescentando generalizações: Atributos, operações e/ou relacionamentos comuns podem ser movidos para uma classe mais geral. Us uario nome : Texto definirnome(nome) obternome() Estudante matricula : Inteiro definirmatricula(matricula) obtermatricula() Professor titulacao : Texto definirtitulacao(titul acao) obtertitulacao()

FormularioMatricula obterestudante() : Estudante obternomedisciplina(i : Inteiro) : Texto 0.. * é-processado-por 1 AnalisadorMatricula usa adicionar(alun o, disciplina) 1 1 SIM 1 1 é-preenchido-por gerencia -aluno 1 Estudante matricula : Inteiro definirmatricula(matricula) obtermatricula() 3.. 10 está-matriculado-em 0..* Disciplina nome : Texto numcreditos : Inteiro estacompleta() adicionar(aluno : Estudante) 1 Usuario nome : Texto definirnome(nome) obternome() 1..* Turma Professor titulacao : Texto responsável-por 4 codigo : Texto sala : Texto horario : Horario numalunos : Inteiro completa : Booleano definirtitulacao(titulacao) obtertitulacao() 0..3 1 estacompleta() : Booleano