Análise e Projeto de Sistemas OO Análise e Projeto de Sistemas OO
Conceitos Básicos
Objetos: Objetos são entidades em um sistema de software que representam instâncias de entidades do mundo real e de algum sistema.
Características:
Objeto é um conceito, uma abstração ou uma coisa, com limites e significados bem definidos, em relação ao problema considerado.
Um objeto é geralmente identificado por um substantivo.
Um objeto contém estrutura e comportamento.
Conceitos Básicos
Classes são templates (formas) de objetos. Elas são usadas para criar objetos. (Classes podem herdar atributos e serviços de outras classes).
Classe é uma descrição de:
um grupo de objetos, que tem:
propriedades (atributos) semelhantes, comportamento (operações) comum e
os mesmos tipos de relacionamentos com outros objetos.
Obs: A escolha de uma classe é arbitrária e depende da aplicação emdesenvolvimento.
Objetos: Identificação
No domínio de solução de um problema de Eng. de Software:
esta tarefa é mais difícil...
Objetos são entidades em um sistema de software que representam instâncias de entidades do mundo real e de algum sistema.
Um objeto é uma entidade que possui um e define um conjunto de operações que modificam este estado.
O estado do objeto é representado por um conjunto de atributos
As operações associadas com o objeto provêm serviços para outros
objetos (clientes), os quais requisitam serviço quando alguma
computação é necessária. Tal requisição é feita através do envio de
mensagens entre os objetos.
Objetos no mundo real
Podem ser definidos como objetos, entidades individuais que tenham características e
comportamento;
Exemplo: Automóvel – Características:
cor=vermelha,
ano_fabricação=1999, potência=150 HP,...
– Comportamentos:
se movimentar para frente, se movimentar
para trás, ...
Objetos de um Programa Visual
Uma janela visual:
Tem tamanho, posição, cor de fundo (características).
Pode ser minimizada, maximizada, etc...
(comportamento)
Um Botão:
Tem tamanho, cor, texto, posição,..(características)
Pode ser ativado por click do mouse (comportamento)
Representação de objetos
No desenvolvimento de sistemas, começamos o desenvolvimento falando de objetos reais (notas fiscais, contratos, fichas cadastrais,etc..) e
terminamos falando de objetos de programa (janelas, listas, ...)
Independente da natureza do objeto, precisamos representa-los em nossos projetos de uma
maneira padronizada;
Esta maneira padronizada é a UML (Unified
Modeling Language).
Objetos: Identificação
Nome da classe
Atributos
Métodos
Entidades Externas (dispositivos, ...) Coisas (displays, ...)
Ocorrências ou Eventos (conclusões de tarefas, ...) Papéis funções (vendedor, ...)
Unidades Organizacionais (equipe, ...) Lugares (chão de fábrica, ...)
Estruturas (sensores, ...)
Objetos: Identificação
Entidades Externas: produzem ou consomem informações que são usadas por um sistema baseado em computador
Coisas: elementos que fazem parte do domínio de informação do problema, tais como relatórios, cartas, cartazes
Ocorrências ou Eventos: ocorrem durante o contexto de operação do sistema
Papéis: desempenhados por elementos que interagem com o sistema, tais como: vendedor, gerente, engenheiro
Unidades Organizacionais: pertencem à organização
Lugares: auxiliam na definição do contexto - ex: piso da fábrica
Estruturas: definem classes relacionadas com o sistema, ex:
sensores, veículos, computadores
Objetos: Identificação
geralmente, objetos não têm nome procedimental imperativo - ex.: rotação de imagem.
Um objeto é geralmente identificado por um substantivo.
Um objeto contém estrutura e comportamento.
Cada objeto tem sua identidade.
Dois objetos são distintos, mesmo que eles apresentem as mesmas características.
Exemplo: 1 dezena de automóveis Astra cada automóvel é um objeto!
todos tem a mesma característica!
Objetos: Identificação
Dicas:
sublinhar cada nome ou cláusula nominal;
separar objetos do domínio da solução de objetos do domínio do problema
após isolar os nomes, tentar identificar as maneiras relacionadas com os objetos possíveis
Uma definição de classe serve como forma (
para os objetos: Ela inclui declarações para todos os atributos e serviços que devem estar associados a um objeto daquela classe.
é Classes são
Comunicação entre Objetos
Mensagens:
elemento usado para prover a comunicação entre objetos Definem:
O nome do serviço requisitado
A informação necessária para a execução do serviço O nome do requisitante.
Na prática, mensagens são implementadas como ativações de uma função definida no objeto chamado, onde:
Nome é o nome da função.
Informação é a lista de parâmetros.
Requisitante é o objeto que realizou a chamada.
Objetos de Software
Propriedades Dados Variáveis
Comportamentos
Métodos
Procedimentos
Exemplo: objeto Automóvel
Potência Dimensões Preço
Mover
Parar Buzinar
Cor
Objetos de Software
Todo acesso aos dados ou propriedades de um objeto é feito através da sua interface, que expõe métodos e propriedades a outros objetos.
Propriedades do Objeto
Podemos dizer que as PROPRIEDADES de um objeto descrevem suas características,
e são nada mais do que a representação dos dados referentes ao que queremos
manipular.
Comportamentos do Objeto
Por outro lado, as ações que um objeto pode executar/sofrer são chamadas de
COMPORTAMENTO.
Na OO o comportamento de um objeto é chamado de MÉTODO. Um método descreve
“algoritmamente” as ações que o objeto pode
executar.
Propriedades e Métodos
Propriedades e métodos para uma pessoa:
Propriedades: nome, altura, peso, cor dos olhos, idade;
Métodos: respirar, andar, dormir, correr, amar, ouvir, falar;
Propriedades e Métodos
Para um sistema de folha de pagamento podemos ter:
Propriedades: Matrícula, nome, dt-nascimento, dt-admissão, salário.
Métodos: Calcular_pagamento, calcular_salário_família, etc.
Identidade dos Objetos
É o que permite que um objeto seja univocamente identificado;
Exemplo: O Jepp de placa JKP 1234;
A identidade pode vir de um nome ou número associado ao objeto, de um atributo
identificador (qualificador) ou de uma indicação explícita ao objeto.
Motivação para o uso de OO
Não é possível fazer conexões entre as funcionalidades e os dados de forma simplista utilizando programação
estruturada.
Em POO, tem-se a clareza dessas conexões através dos recursos nativos da própria linguagem orientada a objetos.
Vantagens da POO:
Ajuda na organização;
Menos tempo codificando e menos código;
Concentração de responsabilidades em pontos corretos e relevantes;
Encapsulamento da lógica de programação;
Ajuda a aproximar os problemas computacionais dos problemas do mundo
real.
Modelos
São representações simplificadas de objetos, pessoas, itens, tarefas, processos
São usados por pessoas no dia a dia, independente do uso de computadores.
Comumente contém operações e/ou procedimentos associados a eles.
Comumente operam sobre os dados referentes ao próprio modelo.
Modelos que não contenham operações são pouco usados.
Modelos que contenham apenas operações podem ser considerados bibliotecas de operações.
Modelos podem conter submodelos e ser parte de outros modelos.
A simplificação de modelos pode ser necessária dependendo do contexto
Modelos
Exemplo 1 (Pessoa como empregado de uma empresa.):
Dados:
Nome;
CPF;
Cargo;
Salário;
Horas extras trabalhadas;
Operações:
Validar CPF;
Calcular salário do mês;
Aumentar salário;
Modelos
Verificar obesidade - usaria por exemplo sexo, altura e peso;
Exemplo 2 (Pessoa como paciente de uma clínica médica.)
Dados:
Nome;
CPF;
Sexo;
Data Nascimento;
Idade;
Altura;
Peso;
Operações:
Validar CPF;
Calcular idade;
Modelos
Mostrar contato da empresa - que apresentaria o nome do contato de certa empresa;
Exemplo 3 (Pessoa como contato comercial.)
Dados:
Nome;
Telefone;
Cargo;
Empresa;
Operações:
Mostrar telefone - que apresentaria o telefone de certa pessoa;
OBS: Com os modelos apresentados nos exemplos seria difícil ou
impossível obter um supermodelo, apesar de todos representarem pessoas.