Paradigma de Desenvolvimento de Software Orientado a Objetos
Classificado em Computação
Escrito em em
português com um tamanho de 4,84 KB
O processo de desenvolvimento de software é aplicado independentemente do modelo de ciclo de vida e paradigma adotados, sendo iniciado assim que os seus requisitos tiverem sido modelados e especificados. Um software consiste em uma entidade (objeto), expresso na forma de texto, que especifica os objetos que atuam na resolução de um determinado problema e que descreve como esses objetos devem interagir no sentido de resolvê-los, segundo Sintes (2002).
Paradigma é uma forma de abordar um problema, segundo um conjunto de procedimentos, valores ou conceitos que direcionam o pensamento, auxiliando na organização e coordenação da maneira de olharmos o mundo.
O conceito de Programação Orientada a Objetos (POO) iniciou na linguagem Simula 67. Este foi aperfeiçoado e refinado na linguagem Smalltalk-80.
Na POO, a aplicação é vista como uma rede dinâmica de objetos colaboradores que permite aos desenvolvedores de software administrar mais facilmente a complexidade do domínio do problema. Também facilita desenvolver softwares mais flexíveis, com maior facilidade de manutenção, além de melhorar as possibilidades de reusabilidade de código.
É importante sinalizar que um modelo de OO é formado por componentes básicos: objetos, mensagens, métodos e classes.
Objetos consistem em um conjunto de operações encapsuladas, são os métodos e exprimem ação, e um “estado”, determinado pelo valor dos atributos, que grava e recupera os efeitos destas operações. O objeto executa uma operação em resposta a uma mensagem recebida como do estado do objeto quando recebe a mensagem.
Mensagens são requisições enviadas de um objeto para outro onde este que a recebeu forneça o resultado desejado através da execução de uma operação. A mensagem também pode ser acompanhada por parâmetros, aceitos pelo receptor, e podem ter algum efeito nas operações realizadas. Assim, tem-se um ciclo completo onde a mensagem é enviada a um objeto, operações são executadas dentro desse e uma mensagem contendo o resultado da operação é enviada ao objeto solicitante.
Classe define a característica de uma coleção de objetos. Classes representam uma entidade e, como tal, definem o seu comportamento (Métodos) e a sua característica (Propriedade). Estas classes podem ser vistas como templates, representando um conjunto de objetos que compartilham os mesmos atributos, operações e relacionamentos. Cada classe contém todas as informações que ela precisa para executar qualquer processamento exigido pelo objeto que ela representa.
Outros termos importantes ao desenvolvimento de software orientado a objetos são: instância, herança, polimorfismo e encapsulamento.
Instanciar uma classe significa que ela tenha seus próprios valores para cada atributo, mas dividem os nomes dos atributos e métodos com as outras instâncias da classe.
Herança é a característica de herdar ou aproveitar os atributos e métodos de uma classe existente em outra. Sua utilização faz com que se evite a repetição ou redundância de código-fonte, onde o seu forte é a reutilização. Classifica-se em:
- Herança simples: aquela classe que tem várias filhas, mas apenas uma mãe;
- Herança múltipla: é a capacidade de uma classe herdar de duas ou mais classes.
Polimorfismo, cuja palavra é de origem grega e significa "que pode tomar várias formas", tem como característica um dos conceitos essenciais da orientação a objetos. Enquanto a herança se refere às classes (e à sua hierarquia), o polimorfismo diz respeito aos métodos dos objetos. É a habilidade de diferentes objetos receberem a mesma mensagem e comportarem-se de maneira diferente. Classificam-se em:
- Polimorfismo de sobrecarga: um método de determinado nome tem comportamentos distintos, em função de diferentes parâmetros que ele recebe; cada método difere no número e no tipo de parâmetros.
- Polimorfismo de sobreposição: é a redefinição de métodos em classes descendentes. A prioridade na definição é sempre a da subclasse.
Encapsulamento é onde o objeto esconde seus dados de outros objetos e permite que eles sejam acessados por intermédio de seus próprios métodos. Isso é chamado de ocultação de informações. O encapsulamento é o cerne da OO, a união da ação e da informação em novos tipos de dados que “sabem” o que supostamente devem fazer, separando um serviço da sua implementação.