Академический Документы
Профессиональный Документы
Культура Документы
1. Orientação a objetos
A programação orientada a objetos é uma maneira de programar com uma organização
e pensamentos diferente da programação estruturada. Quando ouvimos “programação
estruturada”, podemos esperar basicamente funções e procedimentos, concentramo-nos
na ação a ser executada. Na programação orientada a objetos temos classes, objetos,
métodos. Pensamos nas entidades existentes e como elas se relacionam.
A orientação a objeto fornece maior facilidade para modificar um código já
escrito e uma visão mais simples do projeto em si, graças a características como
encapsulamento. Amarramos características junto às funcionalidades, concentrando
código e prevenindo erros.
1.1 Classes
A análise do projeto revelará muitas “entidades” das quais desejamos salvar certos
dados e delegar determinados processos. As classes são as plantas dessas entidades,
possuindo apenas as definições sobre ela, sem nenhum tipo de dado.
Um exemplo simples seria pensar nas pessoas. Esperamos que elas possuam
idade, nome, peso, altura, dentre outras características. Também esperamos que possam
pensar, se expressar, se divertir, etc. Essa é a nossa definição (simplificada) para a
Classe pessoa.
Definimos o que uma pessoa precisa ter e o que ela sabe fazer, mas sendo uma
classe, a “Pessoa” em si não pode ter uma idade. Podemos pensar como se fossem
plantas de construção de casas. A partir de uma definição (do desenho, métrica, etc)
construímos objetos que terão os dados esperados.
1.2 Objetos
Se numa análise detectamos a necessidade de guardar determinadas informações sobre
várias pessoas, criamos a classe Pessoa. Mas não basta apenas saber o que uma pessoa
pode ter e fazer. Os objetos implementam as definições das classes e as preenchem com
dados reais. “Roberto tem 23 anos, pesa 80 Kilos e mede 1,80 cm de altura.”
Roberto é um objeto, uma instância da classe Pessoa. Apesar de “como se
divertir” ter sido definido na classe, ele possui dados onde antes apenas deixamos
lacunas vagas.
1.3 Propriedades
As propriedades são os dados, o estado que as Classes e objetos possuem. Um exemplo
de propriedade é a idade. Desejamos saber quantos anos uma pessoa tem, portanto
acrescentamos essa informação à nossa definição (classe).
1.4 Métodos
Os métodos são “habilidades” que definimos na Classe, que os objetos são capazes de
reproduzir. Vamos supor que, no projeto analisado, todas as pessoas necessitem saber
falar. Criamos um método “falar” e dentro dele dizemos como essa ação é executada.
1.5 Herança
É possível, na orientação a objetos, termos classes que “herdam” de outra. Todos os
dados públicos e protegidos da classe “pai” passam a existir na classe que herda, na
“filha”. Isso possibilita modelos mais simples e com menos repetições de dados.
Imagine que, em modelo imaginário, fossem necessárias as classes funcionário e
gerente. O funcionário possui uma série de dados e ações básicas, o gerente também
deve possuir essas mesmas características, mas com alguns acréscimos, como poder
fazer um pedido de compra ou ter uma bonificação maior de salário.
Isso poderia ser resolvido escrevendo uma classe para cada um, porém, se
fizermos gerente herdar de funcionário, centralizamos as informações e evitamos mais
escrita de código.
2.1 Representações
Podemos usar diversas representações para a análise orientada a objetos, mas um padrão
adotado e bem aceito é a Linguagem de Modelagem Unificada, a UML. Seu longo
repertório de diagramas e ampla divulgação facilitam a visão do projeto tanto na etapa
de análise quanto na de projeto.
Um diagrama bem “íntimo” a análise é o de Use Case (Caso de Uso), na qual
modelamos as interações existentes com o sistema a ser desenvolvido. A partir dele
obtemos requisitos funcionais para as classes do sistema.
2.2 UML
No início dos anos 90 foi caracterizado pelo nascimento de uma grande quantidade de
métodos e notações para suportar o desenvolvimento orientado a objetos, que tinha
demonstrado ser um meio eficaz para produção de software.
Por iniciativa da OMG (Object Management Group), foi aberto a proposta para
apresentação de trabalhos de padronização de um modelo para desenvolvimento de
sistemas que atendesse ao modelo orientado a objetos. A proposta vencedora foi
apresentada pela Rational Software Corporation e recebeu o nome de UML (Unified
Modeling Language).
3.1 Vantagens
O mapeamento do projeto na metodologia orientada a objetos permite uma transcrição
mais rápida da etapa de análise. Além disso, podemos utilizar classes e objetos criados
em outros projetos, como se estivéssemos re-utilizando componentes.
As representações com a UML permitem uma visão melhor e mais clara do
sistema, desde a etapa de análise. Todo o material gerado na etapa de projeto serve
como base para a construção do código orientado a objeto.
Conforme geramos a etapa de projeto, revisamos a análise e podemos manter a
documentação atualizada. Também podemos utilizar padrões de projetos, que são
„soluções prontas‟ para necessidades comuns num projeto.
Conclusão
O uso da análise, projeto e programação orientada a objeto permite um desenvolvimento
mais robusto de uma aplicação. Encontramos maiores dificuldades nesse modelo,
porém, o processo bem executado nos deixa com uma documentação pronta para o
código e um sistema flexível em funcionamento.
De uma forma simples, podemos colocar que a análise mapeia a necessidade,
“entende” o que a aplicação deve fazer. Depois que esse entendimento é validado com o
cliente, precisamos pensar numa estrutura que atenda as necessidades vistas
anteriormente. O projeto se encarrega de adicionar detalhes à análise pensando em
como resolver os problemas.
Por fim, a programação orientada a objetos é a responsável por dar vida à
aplicação, seguindo as informações vindas da etapa de projeto.
Referências
Rational Inc. (2004) “Análise/Projeto e Programação Orientadas a objeto”,
http://www.malima.com.br/article_read.asp?id=39, Outubro.
Caelum (2009) “FJ-11 | Java e Orientação a Objetos”.
Universidade Regional Integrada do Alto do Uruguai e das Missões. “Análise Orientada
a Objetos”
José Carlos Macoratti. (2004) “Modelando sistemas em UML - Casos de uso”,
http://imasters.uol.com.br/artigo/2753?cn=2753&cc=145, Novembro.
Apress Publishing. (2005) “Introducing UML: Object Oriented Analysis and Design”,
http://www.devshed.com/c/a/Practices/Introducing-UMLObjectOriented-Analysis-
and-Design/, Julho.
IBM Coporation. (2004) “UML basics: The sequence diagram”,
http://www.ibm.com/developerworks/rational/library/3101.html, Fevereiro.