Análise de Orientação a Objetos - Engenharia de Software

Nessa postagem veremos alguns conceitos relacionados a Orientação a Objetos para começarmos a entender as funcionalidades desse modelo de programação. Mostrarei alguns exemplos da sintaxe de Java para ilustrar de uma forma mais eficiente os conceitos de OO.

Introdução 

 Para Rumbaugh, Orientação a Objetos é ”uma nova maneira de pensar os problemas utilizando modelos organizados a partir de conceitos do mundo real (...)”

“Orientação a Objetos é um paradigma de análise, projeto e programação de sistemas de software baseado na composição e interação entre diversas unidades de software chamadas de objetos.” WIKIPÉDIA

A análise de Orientação a Objetos (Object Oriented Analysis) faz parte dos Diagramas dos Modelos da UML (Unified Modeling Language / Linguagem de Modelagem Unificada)



Conceitos de Objetos, Classes, Atributos, Métodos, Visibilidade, Encapsulamento, Herança, Polimorfismo e UML

Objetos

Um objeto é um elemento computacional que representa, no domínio da solução, alguma entidade (abstrata ou concreta) do domínio de interesse do problema sob análise. Objetos similares são agrupados em classesNum sistema de software objetos são agentes que agem interligados entre si, onde cada objeto realiza tarefas específicas e, através dessa interação, uma tarefa computacional é realizada.
Em outras palavras:
  •  É uma entidade real ou abstrata, que modela um conceito presente na realidade humana, ocupando espaço físico ou lógico; 
  •  Um objeto é uma pessoa, um lugar, é a base para todos os outros conceitos da orientação a objetos; 
  •  Facilita a compreensão do mundo real e oferece uma base real para implementação em computador;
  •  Um objeto denota uma entidade de natureza física, conceitual ou de software: 
  •  Entidades físicas: um carro, uma pessoa, um livro;
  •  Entidade conceitual: um DER (Diagrama Entidade Relacionamento) de uma sistema; 
  •  Entidade de software: um radiobutton em uma página web.


Classes
Uma classe é um gabarito para a definição de objetos. Através da definição de uma classe, descreve-se que propriedades -- ou atributos -- que o objeto terá, ou seja, uma classe é o projeto de um objeto.

  • Uma classe representa uma categoria e os objetos são membros dessa categoria;
  • Classe é a representação de um conjunto de coisas reais ou abstratas que são reconhecidas como sendo do mesmo tipo;
  • Uma classe é considerada uma fábrica de instâncias que inclui atributos e operações dessas instâncias;
  • É importante evitar a criação de classes que tentem abranger tudo (ou várias coisas).


Exemplo de Representação da Classe

Representação da Classe

Representada por um retângulo que pode possuir até três divisões:

1. Nome da classe
2. Atributos pertencentes à classe
3. Possíveis métodos da classe

Atributos


  • Também são conhecidos como propriedades;
  • São as características de uma classe, ou seja, as peculiaridades que costumam variar de objeto para objeto;
  • Alguns exemplos de atributos em uma classe chamada Pessoa seriam: altura, sexo, cor, idade...
  • Alguns atributos permitem diferenciar um objeto do outro dentro de uma mesma classe.



Métodos


  • Também são chamados de comportamentos;
  • Representam as atividades que uma classe pode executar;
  • Podemos comparar um método a uma função desenvolvida em uma linguagem de programação como, por exemplo, C#;
  • Os métodos podem (ou não) receber parâmetros;
  • Um método retornar (ou não) valores;
  • Representam um conjunto de instruções que são executadas quando eles são chamados.


Visibilidade

  • Indica o nível de acessibilidade de um atributo ou método;
  • Basicamente, há três modos de visibilidade:


1. Pública (+) Objetos de quaisquer classes podem acessar o atributo ou método
2. Privada (-) Apenas a classe possuidora do método ou do atributo pode ter acesso
3. Protegida (#) Apenas a classe e as subclasses possuidoras

Encapsulamento

  • Em Programação Orientada a Objetos, significa separar o programa em partes, as mais isoladas possível;
  • O encapsulamento almeja tornar o software mais flexível, fácil de alterar e de criar novas implementações;
  • Quando houver código duplicado é recomendado procurar um lugar para encapsulá-lo.


Herança

  • Uma das características mais poderosas e importantes da Orientação a Objetos;
  • Permite o reaproveitamento de atributos e de métodos otimizando, assim, o tempo de construção do código;
  • Trabalha com os conceitos de superclasse e subclasse:
  • Superclasse – também chamada de “classe mãe”, possui classes derivadas dela que são chamadas de subclasses;
  • Subclasse – também chamada de “classe filha”, herda os métodos e os atributos da sua “classe mãe”.


Polimorfismo

  • Seu conceito está associado ao de Herança;
  • Trabalha com a redeclaração de métodos previamente herdados por uma classe;
  • Os métodos, apesar de semelhantes, diferem de alguma forma da implementação utilizada na superclasse. Assim, é necessário a implementação na subclasse:

Exemplo 1

Exemplo 2

Exemplo 3

UML – Unified Modeling Language


Uma linguagem visual utilizada para modelar sistemas de informação baseado no paradigma Orientação a Objetos;
Oferece visualização, especificação, construção e documentação de artefatos de sistema;
Tem como objetivo auxiliar:
Requisitos
Comportamento
Estrutura lógica
Dinâmica dos processos
Necessidades físicas da implantação
A UML tornou-se uma norma industrial para o desenvolvimento de softwares OO;
Observação: A UML não é uma linguagem de programação e sim uma linguagem de modelagem.


SHARE

Sobre o Autor... Leandro

    Blogger Comment
    Facebook Comment

0 comentários: