Modelagem Orientada a Objeto

Documentos relacionados
POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Requisitos de sistemas

Tópicos da Aula. A Linguagem UML. A Linguagem UML. De onde surgiu? Fundadores da UML. Introdução à UML e Diagrama de Casos de Uso.

Análise e Projeto de Sistemas

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

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

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

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

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

Conceitos de Programação Orientada a Objetos

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

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

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

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

UML Diagrama de Classes

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

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

UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes

Diagrama de Classes. ENG1518/3VC Sistemas de Informação Gerenciais Prof. Marcos Villas

UML. Diagrama de Classes

Linguagem de Modelagem Unificada UML

Conceitos de Orientação a Objetos. Objeto Atributo Classe Método

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

DIAGRAMAS DE CLASSE UML

Programação Orientada a Objetos

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

Modelagem de Sistemas. Análise de Requisitos. Modelagem

UML. Modelando um sistema

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

Introdução a UML (Unified Modeling Language)

Diagramas de Classes. Diagramas de Classes. Diagramas de Classes. Análise e Projeto de Sistemas OO

Panorama da notação UML

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

Introdução ao Java. Prof. Herbert Rausch Fernandes

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

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

Diagrama de Casos de Uso. Interagindo com o Usuário

Modelagem de Processos

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

Engenharia de Software. Aula 2.4 Modelos de Casos de Uso. Prof. Bruno Moreno

Modelo Conceitual. Análise e Projeto de Sistemas Avançados. Aula 5. Allan Rodrigo Leite

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

Análise e Projeto de Sistemas

PROGRAMAÇÃO ORIENTADA A

Linguagem de Programação. Diagrama de classes

Modelagem semântica permite aproximar o modelo obtido do mundo real Exemplo de modelos:

UML. Diagrama de Classe

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

Análise e projeto de sistemas

FUNDAÇÃO UNIVERSIDADE ESTADUAL DE MARINGÁ

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

Modelagem Usando Orientação à Objetos (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

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

Modelo Entidade-Relacionamento

Capítulo 5 Modelação do Sistema 1

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

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

UML Diagrama de Atividades Diagrama de Caso de Uso. ENG1518/3VB Sistemas de Informação Gerenciais Prof. Marcos Villas

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

Linguagem de Programação I Apresentação da Disciplina

BCD29008 Banco de dados

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

INTRODUÇÃO À ENGENHARIA DE SOFTWARE. Prof.: Tiago Alves

Unidade 2 Modelo Conceitual

Capítulo 2. Orientação a Objetos

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

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

O PARADIGMA ORIENTADO POR OBJETOS

Banco de Dados. Modelagem de Dados. Prof.: Salustiano Rodrigues

Desenvolvimento de Aplicações Desktop

Engenharia de Software. UML Unified Modeling Language

Análise e projeto de sistemas

Especificação de Sistemas de Software e a UML

Análise de Sistemas. Visão Geral - Orientação a Objetos. Prof. José Honorato Ferreira Nunes

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

MODELAGEM COM A UML (UNIFIED MODELING LANGUAGE)

UML Relacionamentos. Relacionamento é uma conexão entre itens A maioria dos itens relacionam-se entre si. Quatro tipos de relacionamentos:

SISTEMA DE INFORMAÇÃO Modelo Conceitual. Prof. Luiz Fernando Laguardia Campos FMS

Transcrição:

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 2006 Slide 1

Conceitos de Orientação a Objetos Modelagem Estruturada enfoque nas funcionalidades do sistema, funções diferentes atuam sobre os dados de forma desordenada. Não existe uma junção lógica entre dados e funções. Modelagem OO Permite abstrair de uma forma mais real o mundo a ser modelado. Acoplamento entre dados e funcionalidade Utiliza abstrações do mundo real chamadas de OBJETOS. Slide 2

Conceitos de Orientação a Objetos Objeto Informalmente, um objeto representa uma entidade de natureza física (uma pessoa) ou conceitual (uma reserva). É um conceito, abstração ou alguma coisa com limites bem definidos e significado bem conhecido dentro do escopo de uma aplicação. Slide 3

Conceitos de Orientação a Objetos Objeto Possuem características ou propriedades: ATRIBUTOS. Os atributos identificam o estado de um objeto. Um atributo é uma abstração do tipo de dados ou estado que os objetos da classe possuem. Slide 4

Conceitos de Orientação a Objetos Representação do objeto Atributos do Objeto: Nome: Severino da Silva Endereço: Rua das Camélias, 236 Sexo: masculino Data de nascimento: 26/07/1945 Altura: 1,89 m Peso: 85 kg Estado civil: solteiro Cor dos olhos: azuis Slide 5

Conceitos de Orientação a Objetos Objetos Possuem comportamentos que modificam seu estado ou prestam serviços a outros objetos: OPERAÇÕES As operações são implementadas pelos MÉTODOS Os métodos de uma classe manipulam somente as estruturas de dados daquela classe, ou seja, não podem acessar diretamente os dados de outra classe. Uma classe tem conhecimento dos dados de outra pela solicitação de serviços: MENSAGEM Slide 6

Conceitos de Orientação a Objetos Exemplo de Atributos e Operações Atributos: Nome: Severino da Silva Cargo: operador de máquinas Salário: R$ 540,00 Data de admissão: 26/01/1999... Operações: Reajustar_Salário Obter salário líquido Obter tempo de trabalho... Slide 7

Conceitos de Orientação a Objetos Objeto A modelagem de um objeto é feita de acordo com o contexto do problema. Ex1: objeto Pessoa no papel de um Acadêmico possui atributos diferentes do objeto Pessoa no papel de um Médico. Ex2: um retângulo como objeto de um programa gráfico possui mais atributos que um retângulo como objeto desenhado por uma criança. Slide 8

Conceitos de Orientação a Objetos Classes É a representação de um conjunto de objetos que compartilham a mesma estrutura de atributos, operações e relacionamentos, dentro de um mesmo contexto. Uma classe especifica a estrutura de um objeto sem informar quais serão seus valores. Um objeto corresponde à ocorrência (INSTÂNCIA) de uma classe num determinado momento. Uma classe pode ter qualquer número de atributos e operações. Slide 9

Conceitos de Orientação a Objetos Exemplo de uma instância (objeto) e sua classe Slide 10

Conceitos de Orientação a Objetos Descobrindo classes Pela identificação dos substantivos do sistema a ser modelado Os substantivos podem ser: Classes Objetos Atributos Descrição do estado de um objeto Entidade externas... Slide 11

Conceitos de Orientação a Objetos Características que diferenciam OO ENCAPSULAMENTO HERANÇA POLIMORFISMO Slide 12

Conceitos de Orientação a Objetos Encapsulamento Principal característica da OO. A utilização de um sistema OO deve depender da interface e não de sua implementação interna. O encapsulamento protege os atributos e algumas operações da classe que só podem ser acessados e atualizados pelas operações do objeto. É a propriedade de preservar informações e operações de cunho privado. Slide 13

Conceitos de Orientação a Objetos Representação de Encapsulamento Slide 14

Conceitos de Orientação a Objetos Herança É um dos diferenciadores chave entre sistemas convencionais e OO. Permite que uma subclasse (classe mais específica) herde todos os atributos e operações associados com sua superclasse (classe mais genérica). Possibilita o reuso sem esforço (modificações na superclasse são propagadas nas subclasses relacionadas). Novos atributos e operações podem ser adicionados a subclasse. Slide 15

Conceitos de Orientação a Objetos Exemplo de Herança Slide 16

Conceitos de Orientação a Objetos Polimorfismo Reduz o esforço para estender um sistema OO. Permite que uma operação (com a mesma assinatura) seja implementada nas subclasses de forma diferente que na superclasse. Slide 17

Conceitos de Orientação a Objetos Exemplo de Polimorfismo Slide 18

Exercícios 1. Identifique classes e atributos para os contextos: 1. Numa turma de um curso de graduação temos disciplinas ministradas em salas diferentes. 2. Está passando na rede de cinemas do shopping o filme Garfield2, todos os dias, em três sessões por dia. Aos sábados e domingos existem em algumas sessões duas salas de exibição. 3. 3. A Transportadora Sem Fronteiras monitora seus caminhões e motoristas através de um controlador embutido. Através dele é possível saber a localização de cada veículo da companhia. 2. Identifique atributos para as classes a seguir: 1. Conta Corrente 2. Caderno vendido em papelaria 3. Arquivo de computador Slide 19

Modelagem Orientada a Objetos Passos genéricos para conduzir análise OO: 1. Definir os requisitos do cliente para o sistema 2. Identificar cenários ou casos de uso 3. Selecionar classes e objetos usando os requisitos básicos como diretriz 4. Identificar atributos e operações para cada objeto do sistema 5. Definir estruturas e hierarquias que organizem as classes 6. Construir um modelo objeto-relacionamento 7. Construir um modelo de comportamento de objeto 8. Revisar o modelo de análise OO com base nos casos de uso ou cenários. Slide 20

Modelagem OO UML Visões (perspectivas) para descrição de sistemas: Visão Externa Diagrama de casos de Uso Visão Estrutural (Estática) Diagrama de Classes Visão Comportamental (Dinâmica) Diagrama de Estado Diagrama de Atividade Visão de Interação Diagrama de seqüência Diagrama de Colaboração Visão da Arquitetura (Implementação) Diagrama de Componentes Diagrama de Implantação Diagrama de Pacotes Slide 21

Modelagem OO Casos de Uso Diagrama de Caso de uso Especificam a visão externa do sistema. Descrevem como o sistema é percebido por seus usuários. Descrevem as interações entre os usuários e o sistema. Descreve uma seqüência de ações que representam um cenário principal (perfeito) e cenários alternativos demonstrando o comportamento de um sistema Objetivo da modelagem de casos de uso: Separar as funcionalidades do sistema, agrupando um conjunto de ações que tenham um objetivo bem definido Slide 22

Modelagem OO Casos de Uso Diagrama de Caso de Uso: Notação Slide 23

Modelagem OO Casos de Uso Ator Representa um conjunto coerente de papéis que os usuários de casos de uso desempenham quando interagem com esses casos de uso Ser humano, dispositivo de hardware, ou outro sistema. Os atores não são parte do sistema: representam interações individuais com o sistema de maneira específica. Os atores se conectam aos casos de uso somente por associação A Associação indica que o ator e o caso de uso se comunicam entre si, cada um com possibilidade de enviar e receber mensagens. Slide 24

Modelagem OO Casos de Uso Caso de Uso Descreve o que um sistema faz mas não especifica como isso é feito. Deve ter um nome que o distingue dos demais casos de uso. O comportamento de um caso de uso é especificado através de um cenário (descrição do caso de uso). Slide 25

Modelagem OO Casos de Uso Exemplo de descrição de um Caso de Uso: Slide 26

Modelagem OO Casos de Uso Exemplo de descrição de um Caso de Uso (cont.): Slide 27

Exercício Desenvolva novos casos de uso e cenários para um sistema de caixa eletrônico (ATM), considerando as operações que um cliente pode realizar: Realizar saque; Realizar depósito; Emitir Extrato; Etc... Slide 28

Modelagem OO Casos de Uso Dicas para a modelagem dos Casos de Uso: 1. Pode-se iniciar identificando uma lista de atores ou uma lista de casos de uso (a partir de uma lista pode-se chegar na outra). 2. Dado um caso de uso, identificamos seus atores a partir de questões como: Quais atores são responsáveis por este caso de uso? 3. Dado um ator, identificamos sua interação com o sistema: Quais são os serviços que o sistema deve oferecer a esse ator? 4. Necessário também identificar os papéis dos atores (dão origem a novos atores). 5. Identificar cenários comuns a vários casos de uso. (fatoração dos cenários comuns em c.de uso separados) Slide 29

Exercício 1. Com base nos relacionamentos possíveis para o Diagrama de Casos de Uso, elaborar o diagrama de casos de uso para o Sistema de Controle de Caixa Eletrônico: Considere que é possível: sacar dinheiro, emitir extrato e saldo, efetuar e agendar pagamentos, alterar a senha. Slide 30

Modelagem OO Diagrama de classe Classes Uma classe é uma descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica. Uma classe especifica a estrutura de um objeto sem informar quais serão seus valores. Um objeto corresponde à ocorrência (INSTÂNCIA) de uma classe num determinado momento. Uma classe pode ter qualquer número de atributos e operações ou nenhum. Slide 31

Modelagem OO Diagrama de classe Descrevem a parte estática do software Elementos: Classes (objetos) Atributos Operações Relacionamentos Associação Herança Composição Slide 32

Modelagem OO Diagrama de classe Passos para a elaboração do diagrama de classes: 1. Identificação de classes 2. Identificação de relacionamentos 3. Definição de atributos 4. Definição de operações Slide 33

Modelagem OO Diagrama de classe Identificação de classes: O domínio do problema Um determinado domínio de problema inclui informações relativas ao mundo real. Os requisitos da aplicação Considerados os objetivos da aplicação a ser construída, apenas um subconjunto dessas informações necessita ser representado. Slide 34

Modelagem OO Diagrama de classe Slide 35

Modelagem OO Diagrama de classe Identificação de Classe: o que procurar? Objetos Ex. Pessoas, clientes, turmas, cursos, produtos, etc. Agentes Ex: Clientes, atendentes, etc. Unidades organizacionais Ex: Loja, Depósito, local para entrega, etc. Evento Reclamação do cliente, pedido pago, etc. Quaisquer conceitos que serão armazenados e lembrados pelo sistema. Slide 36

Modelagem OO Diagrama de classe Identificação de Classe: o que considerar? Armazenamento necessário O sistema precisará armazenar informações sobre os objetos desta classe? Mais de um objeto em uma classe É possível identificar facilmente os objetos desta classe? Evite classes que representem um só objeto. Atributos sempre aplicáveis Todos os atributos identificados para a classe são aplicáveis a todas as suas instâncias? Slide 37

Modelagem OO Diagrama de classe Notação de Classe: Slide 38

Modelagem OO Diagrama de classe Nome das Classes: Nome da classe deve descrever claramente o conceito representado Tipicamente, aparece como maiúsculo o primeiro caractere de cada palavra existente do nome da classe. Ex: Cliente, TemperaturaSensor, OrdemServiço... Uso de termos de conhecimento de todos Evitar abreviaturas Estabelecimento de padrões para nomeação de classes Evitar ambigüidades (dupla interpretação) Slide 39

Modelagem OO Diagrama de classe Atributos das Classes Objetivo: identificar e formalizar a definição dos atributos de cada classe presente no diagrama de classes. O que considerar? Necessidade do sistema em armazenar as características das instâncias das classe Slide 40

Modelagem OO Diagrama de classe Representação Gráfica dos atributos: Slide 41

Modelagem OO Diagrama de classe Notação de atributos: Visibilidade Nome do Atributo: Tipo de Expressão = Valor Inicial {Propriedade} Slide 42

Modelagem OO Diagrama de classe Definição de Operações Objetivo: identificar e formalizar a definição das operações de cada classe presente no diagrama de classes. O que considerar? Necessidade de cada classe em realizar operações que atendam às funcionalidades do sistema. Slide 43

Modelagem OO Diagrama de classe Representação Gráfica de operações: Slide 44

Modelagem OO Diagrama de classe Notação de operações: Visibilidade Nome da operação (Parâmetros): Expressão de Tipo de Retorno {Propriedade} Slide 45

Modelagem OO Diagrama de classe Identificação de Relacionamentos Objetivo: identificar associações, agregações e relacionamentos de generalização/especialização (herança) entre classes. O que considerar? Necessidade do sistema em lembrar relacionamentos entre as classes. O que procurar? Todos os relacionamentos entre instâncias de classes que sejam relevantes para o sistema. Slide 46

Modelagem OO Diagrama de classe Relacionamentos permitidos entre classes: Associação Agregação Generalização Dependência Slide 47

Modelagem OO Diagrama de classe Associação: Relacionamentos simples entre instâncias de classes Descrevem algum vínculo, relacionamento ou interdependência entre instâncias de classe. Permite navegar do objeto de uma classe até o objeto de outra classe e vice-versa. É permitido que a associação ligue uma classe a ela mesma: representa que a partir de um objeto da classe é possível criar vínculo com outros objetos da mesma classe. Slide 48

Modelagem OO Diagrama de classe Associação: Representação - Multiplicidade Slide 49

Modelagem OO Diagrama de classe Associação: Representação - Nomes Slide 50

Modelagem OO Diagrama de classe Agregação Relacionamento todo/parte no qual uma classe representa um item maior (todo) formado por itens menores (parte) Relacionamentos que representam: montagens e suas partes Ex. Um carro e suas partes (motor, chassi, rodas ) recipientes e seus conteúdos Ex. Vôo e passageiros conjuntos e seus membros Ex. Turma e alunos Slide 51

Modelagem OO Diagrama de classe Agregação: Notação Slide 52

Modelagem OO Diagrama de classe Generalização O que procurar? Diferenças e similaridades entre classes. Várias classes com características comuns. Relacionamento entre itens gerais (classe mãe) e tipos mais específicos (classes filhas) desses itens. classes filhas herdam todos os atributos e operações associados com sua classe mãe. Slide 53

Modelagem OO Diagrama de classe Generalização: Notação Slide 54

Modelagem OO Diagrama de classe A generalização / especialização ocorre quando atributos são aplicáveis apenas a subconjuntos de suas instâncias. Funcionário_Maria Nome = Maria Nasc = 16/02/70 Salário = 2500 Projeto = Funcionário_João Nome = João Nasc = 10/05/65 Salário = 3000 Projeto = Call Center Slide 55

Modelagem OO Diagrama de classe Nome/Semântica do Relacionamento Multiplicidade 1 somente um * muitos (zero ou mais) 0..* muitos (zero ou mais) 0..1 opcional (zero ou um) 1..* maior ou igual a um M..N seqüência específica Papéis Ex. 1..27 (de um a 27), 23..* (acima de 23) Navegabilidade Restrições Slide 56

Modelagem OO Diagrama de classe Slide 57

Exercícios 1. Defina os relacionamentos para as classes abaixo, considerando um sistema de informações para uma Universidade Classes: Instituição, Departamento, Aluno, Curso, Professor 2. Defina atributos e operações para o exemplo. 3. Desenvolva o Diagrama de Classes para o Sistema de Caixa Eletrônico (ATM). Passos: 1. Com base nos casos de usos, faça uma lista das possíveis classes. 2. Defina relacionamentos, atributos e operações Slide 58

aula07_modelossistemaatual.ppt Slide 59