Escolar Documentos
Profissional Documentos
Cultura Documentos
Artigo Nestor Madureira
Artigo Nestor Madureira
Resumo
1. Introduo
2 Mestrando em Educao
2
metodologia que os ajudassem a construir sistemas maiores, robustos e ainda mais confiveis,
de maneira que o suporte e manuteno desses sistemas fossem dados de maneira fcil, gil e
com um menor custo para as companhias.
Ainda hoje a busca para entender e trabalhar com essas metodologias muito grande,
existem diversas ferramentas de apoio ao desenvolvimento de sistemas orientado a objetos
disponveis atualmente para serem usadas, ferramentas essas sendo tanto de carter livre,
quanto proprietrio. Da vem dvida de que os conceitos mais bsicos da orientao a
objetos e das metodologias que empregam esse conceito esto sendo bem compreendidas
pelos usurios menos experientes.
Este artigo tem como principal objetivo conhecer e entender os principais conceitos
usados no desenvolvimento de um sistema de software orientado a objetos e tambm o
impacto resultante no emprego do uso dessa metodologia. Impacto esse que podemos
enxergar de diversas formas, como na reutilizao de cdigo fonte, modularizao do sistema,
em uma maior facilidade de manuteno, simplesmente pelo falto do cdigo fonte ficar mais
legvel e esbelto e altamente robusto, aumentando a clareza e entendimento das linhas de
cdigo.
3
Tendo seu surgimento em meados dos anos 60 na Noruega, onde Kristen Nygaard e
Ole-Johan Dahl j utilizavam os conceitos de classes e herana usando a linguagem Simula
67, mais tarde refinada por Alan Kay, um dos precursores do paradigma da orientao a
objetos e o refinamento da linguagem smalltalk nos faz pensar em uma nova forma de
encarar o desenvolvimento de software. Alan kay ento formulou a teoria da Analogia
biolgica, onde um software se comporta como o corpo humano, onde cada rgo
funcionasse de forma independente e em harmonia com os outros rgos do corpo e que
tambm cada rgo interagiria com os demais, a fim de se tornar um nico sistema, o ser
humano.
A orientao a objetos nos mostra um mundo onde todo ele povoado por objetos, que
possuem uma estrutura e comportamento prprios e que comunicam entre si atravs de troca
de mensagens. Um sistema feito com o paradigma da orientao a objetos procura se basear
de forma nica e exclusiva a regra de negcios e no domnio do negcio onde o mesmo ser
implantado. A orientao a objetos fundamenta-se em uma srie de conceitos, entre eles:
Abstrao, Encapsulamento, Hierarquia, modularizao e etc. Veremos agora os principais
conceitos dessa que a abordagem de desenvolvimento de sistemas mais usada atualmente.
2.1 Objetos
Objetos podem ser entendidos como uma entidade que povoa o mundo real que por
sua vez possui caractersticas comuns a outros e se comunicam entre si. Os objetos possuem
estado, comportamento e identidade prpria.
Estado o que diz respeito a seus atributos e valores associados a eles, ou seja,
aquilo que o objeto sabe sobre si mesmo;
Comportamento Est ligado diretamente ao que o objeto faz. So as operaes que o
objeto dever executar;
Identidade Atravs de uma classe pode ser criada diversos objetos, sendo eles iguais,
porem o conceito de identidade faz com que os objetos sejam nicos, mesmo sendo do
mesmo tipo.
2.2 Classes
4
As classes podem ser vistas como um modelo, ou seja, uma especificao dos
atributos e mtodos que dever conter os objetos do mesmo tipo. Um objeto em si, a
instancia de uma determinada classe, ele criado de acordo com o que est descrito na sua
classe. As classes podem ser de dois tipos:
So descries dos futuros objetos, onde futuramente durante a execuo do sistema, podero
ter objetos instanciados a partir dela.
So classes que a partir delas, no podero ter objetos instanciados a partir dela,
servido apenas para agrupar/organizar atributos, operaes comuns.
2.3 Mensagens
2.4 Associaes
2.5 Hierarquia
Generalizao uma estrutura hierrquica onde uma classe, nesse caso a classe
me/superclasse est localizada acima de outras classes (subclasses), sendo essa uma classe
mais genrica e as outras classes mais abaixo da sua estrutura hierrquica mais especializada.
Especializao o contrrio da generalizao, tendo em vista, que o refinamento feito nas
subclasses, tornando assim as classes acima mais genricas.
2.5.1 Herana
2.5.2
um conceito e tambm um mecanismo da orientao a objetos que permite que
subclasses implementem operaes e herde o mesmo comportamentos de classes situadas
imediatamente acima delas (superclasses). Temos dois tipos de herana:
Herana Simples Diz que uma subclasse, poder herdar atributos e operaes
apenas de uma superclasse.
Herana Mltipla Diz que uma subclasse, poder herdar atributos e operaes de
vrias outras classes, podendo existir dois problemas:
6
2.5.3 Agregao
2.5.4 Composio
Figura 2: Agregao
Fonte: Elaborao Prpria (2015)
Nota: Criado e editado com Paint.
7
Figura 3: Composio
Fonte: Elaborao Prpria (2015)
Nota: Criado e editado com Paint.
2.6 Encapsulamento
2.7 Polimorfismo
Por exemplo, em uma operao mover que implementada em uma superclasse, cada
mtodo que a implementar abaixo dela, responder de uma forma distinta. Um controle
remoto universal tambm contem diversas implementaes, podendo assim ser usado em
diversos aparelhos de TV, bastando assim ser configurado.
sistemas mais novos e mais robustos. Sendo assim nos ltimos 20 anos houve uma
preocupao em maximizar o uso de sistemas pr-existentes, da nasceu necessidade de
criao de ferramentas que apiam o reuso de parte do cdigo ou do programa eu sua quase
totalidade.
Podemos enxergar a reusabilidade como forma de agilizar o desenvolvimento,
diminuir custo de produo e manuteno, uma vez que uma parte do sistema possivelmente
foi usado em ambiente de operao por diversas vezes, aumentando ainda mais a sua
confiabilidade .
Para que um software seja desenvolvido de forma consistente, preciso aliar boas
prticas da engenharia de software3 com um robusto e eficiente processo de desenvolvimento.
Diferentes tipos de sistemas necessitam de diferentes processos de desenvolvimento. Por
exemplo, um software de tempo real de uma aeronave deve ser completamente especificado
antes do inicio do desenvolvimento, enquanto que um sistema de comrcio eletrnico a
4 Processo de Engenharia de software proprietrio criado pela Rational Software Corporation, adquirida
pela IBM, ganhando um novo nome IRUP que agora uma abreviao de IBM Rational Unified Process.
10
4. Ferramentas de apoio
Aumento da produtividade - uma vez que diversos processos podem ser agilizados
pelo fato da ferramenta fazer grande parte do trabalho que um gerente de projetos ou
programador iria fazer;
Reduo de custos Com o aumento da produtividade pelo uso da ferramenta os
custos tendem a ficar menores, ainda mais pelo fato de existir diversas ferramentas
CASE livres;
Ferramentas CASE tambm podem ter alguns empecilhos em seu uso, por exemplo:
uma empresa que deseja fazer uso de alguma ferramenta CASE para automatizar seus
processos, deve primeiro fazer um estudo para ver se aquele tipo de ferramenta que esto
querendo usar realmente ir atend-los, depois disso vem o esforo para o treinamento da
equipe pois ir ter um gasto com a capacitao das pessoas que iro trabalhar com tais
ferramentas. Algumas ferramentas CASE so:
6. Referencias
BEZERRA, E. Princpios de Anlise e Projeto de Sistemas com UML. 2. Ed. Rio de Janeiro:
Campus, 2006.
BOOCH, G.; JACOBSON, I.; RUMBAUGH, J. UML Guia do Usurio. 2. Ed. Rio de Janeiro:
Campus, 2006.
MCLAUGHLIN, B.; POLLICE, G.; WEST, D. Use a Cabea! Anlise e Projeto Orientado ao
Objeto. 1. Ed. Rio de Janeiro: Alta Books, 2007.
PILONE, D.; MILES, R., Use a Cabea! Desenvolvimento de Software, Rio de Janeiro,
AltaBooks, 2008.