Design orientado a objetos

Da Wikipédia, a enciclopédia livre
Ir para navegação Pular para pesquisar

O projeto orientado a objetos é o processo de planejamento de um sistema de objetos que interagem com o propósito de resolver um problema de software. É uma abordagem ao design de software .

Visão geral [ editar ]

Um objeto contém dados encapsulados e procedimentos agrupados para representar uma entidade. A 'interface do objeto' define como o objeto pode interagir. Um programa orientado a objetos é descrito pela interação desses objetos. O design orientado a objetos é a disciplina de definir os objetos e suas interações para resolver um problema que foi identificado e documentado durante a análise orientada a objetos .

O que se segue é uma descrição do subconjunto baseado em classes do design orientado a objetos, que não inclui abordagens baseadas em protótipos de objetos, nas quais os objetos não são normalmente obtidos pela instanciação de classes, mas pela clonagem de outros objetos (protótipos). O projeto orientado a objetos é um método de projeto que abrange o processo de decomposição orientado a objetos e uma notação para representar modelos lógicos e físicos, bem como de estado e dinâmicos do sistema em projeto.

Tópicos de design orientados a objetos [ editar ]

Entrada (fontes) para o projeto orientado a objeto [ editar ]

A entrada para o design orientado a objetos é fornecida pela saída da análise orientada a objetos . Perceba que um artefato de saída não precisa ser completamente desenvolvido para servir como entrada de design orientado a objetos; a análise e o design podem ocorrer em paralelo e, na prática, os resultados de uma atividade podem alimentar a outra em um curto ciclo de feedback por meio de um processo iterativo. Tanto a análise quanto o design podem ser executados de forma incremental e os artefatos podem ser continuamente aumentados em vez de completamente desenvolvidos em uma única tentativa.

Alguns artefatos de entrada típicos para design orientado a objetos são:

  • Modelo conceitual : O resultado da análise orientada a objetos, ele captura conceitos no domínio do problema . O modelo conceitual é escolhido explicitamente para ser independente dos detalhes de implementação, como simultaneidade ou armazenamento de dados.
  • Caso de uso : uma descrição de sequências de eventos que, em conjunto, levam a um sistema fazendo algo útil. Cada caso de uso fornece um ou mais cenários que transmitem como o sistema deve interagir com os usuários chamados atores para atingir uma função ou objetivo de negócios específico. Os atores do caso de uso podem ser usuários finais ou outros sistemas. Em muitas circunstâncias, os casos de uso são posteriormente elaborados em diagramas de casos de uso . Os diagramas de caso de uso são usados ​​para identificar o ator (usuários ou outros sistemas) e os processos que eles executam.
  • Diagrama de sequência do sistema : um diagrama de sequência do sistema (SSD) é uma imagem que mostra, para um cenário específico de um caso de uso, os eventos que os atores externos geram, sua ordem e possíveis eventos entre os sistemas.
  • Documentações da interface do usuário (se aplicável): Documento que mostra e descreve a aparência e o comportamento da interface do usuário do produto final. Não é obrigatório ter, mas ajuda a visualizar o produto final e, portanto, ajuda o designer.
  • Modelo de dados relacional (se aplicável): um modelo de dados é um modelo abstrato que descreve como os dados são representados e usados. Se um banco de dados de objetos não for usado, o modelo de dados relacional geralmente deve ser criado antes do design, uma vez que a estratégia escolhida para o mapeamento objeto-relacional é uma saída do processo de design OO. No entanto, é possível desenvolver o modelo de dados relacional e os artefatos de design orientado a objetos em paralelo, e o crescimento de um artefato pode estimular o refinamento de outros artefatos.

Conceitos de orientação a objetos [ editar ]

Os cinco conceitos básicos do design orientado a objetos são os recursos de nível de implementação que são integrados à linguagem de programação. Esses recursos são frequentemente chamados por estes nomes comuns:

  • Objeto / classe : Um acoplamento ou associação forte de estruturas de dados com os métodos ou funções que atuam nos dados. Isso é chamado de classe ou objeto (um objeto é criado com base em uma classe). Cada objeto tem uma função separada. É definido por suas propriedades, o que é e o que pode fazer. Um objeto pode fazer parte de uma classe, que é um conjunto de objetos semelhantes.
  • Esconder informações : A capacidade de proteger alguns componentes do objeto de entidades externas. Isso é realizado por palavras-chave de idioma para permitir que uma variável seja declarada como privada ou protegida para a classe proprietária .
  • Herança : a capacidade de uma classe de estender ou substituir a funcionalidade de outra classe . A chamada subclasse possui uma seção inteira que é derivada (herdada) da superclasse e, em seguida, possui seu próprio conjunto de funções e dados.
  • Interface (programação orientada a objetos) : A capacidade de adiar a implementação de um método . A capacidade de definir as assinaturas de funções ou métodos sem implementá-los.
  • Polimorfismo (especificamente, Subtipagem ): A capacidade de substituir um objeto por seus subobjetos . A capacidade de uma variável-objeto de conter, não apenas aquele objeto , mas também todos os seus subobjetos .

Conceitos de projeto [ editar ]

  • Definindo objetos mães, criando diagrama de classe a partir do diagrama conceitual : Normalmente mapeia entidade para classe.
  • Identificando atributos .
  • Use padrões de projeto (se aplicável): Um padrão de projeto não é um projeto acabado, é uma descrição de uma solução para um problema comum, em um contexto. [1] A principal vantagem de usar um padrão de projeto é que ele pode ser reutilizado em vários aplicativos. Também pode ser pensado como um modelo de como resolver um problema que pode ser usado em muitas situações e / ou aplicações diferentes. Os padrões de design orientado a objetos geralmente mostram relacionamentos e interações entre classes ou objetos, sem especificar as classes ou objetos finais do aplicativo que estão envolvidos.
  • Definir a estrutura do aplicativo (se aplicável): A estrutura do aplicativo geralmente é um conjunto de bibliotecas ou classes usadas para implementar a estrutura padrão de um aplicativo para um sistema operacional específico. Ao agrupar uma grande quantidade de código reutilizável em um framework, muito tempo é economizado para o desenvolvedor, já que ele / ela economiza a tarefa de reescrever grandes quantidades de código padrão para cada novo aplicativo que é desenvolvido.
  • Identifique objetos / dados persistentes (se aplicável): Identifique objetos que devem durar mais do que um único tempo de execução do aplicativo. Se um banco de dados relacional for usado, projete o mapeamento de relação de objeto.
  • Identifique e defina objetos remotos (se aplicável).

Output (entregas) de design orientado a objeto [ editar ]

Um diagrama de seqüência mostra, como linhas verticais paralelas, diferentes processos ou objetos que vivem simultaneamente e, como setas horizontais, as mensagens trocadas entre eles, na ordem em que ocorrem.
  • Diagrama de classes : um diagrama de classes é um tipo de diagrama UML de estrutura estática que descreve a estrutura de um sistema, mostrando as classes do sistema, seus atributos e os relacionamentos entre as classes. As mensagens e classes identificadas através do desenvolvimento dos diagramas de seqüência podem servir como entrada para a geração automática do diagrama de classes global do sistema.

Alguns princípios de design e estratégias [ editar ]

Veja também [ editar ]

Referências [ editar ]

  1. ^ a b Padrões de projeto: Elementos de software orientado a objeto reutilizável . Addison-Wesley. 1995. ISBN 0-201-63361-2.
  2. ^ "O que é design orientado a objetos?" . Object Mentor. Arquivado do original em 30/06/2007 . Página visitada em 2007-07-03 .

Ligações externas [ editar ]