Tuesday, February 26, 2013

Classes e Instâncias


Classes e Instâncias

 No mundo da Orientação a Objetos as classes são o centro de tudo. Classes são como plantas de uma casa. Suponha que você queira construir um daqueles condomínios de várias casas idênticas; você não irá fazer várias plantas, uma para cada casa, já que elas são idênticas. Você fará apenas uma planta, que servirá de base para cada casa construída naquele condomínio. No mundo dos objetos é a mesma coisa: você fará apenas uma classe para qualquer número de objetos definidos por aquela classe.


Em orientação a objetos, uma classe é uma estrutura que abstrai um conjunto de objetos com características similares. Uma classe define o comportamento de seus objetos através de métodos e os estados possíveis destes objetos através de atributos. Em outros termos, uma classe descreve os serviços providos por seus objetos e quais informações eles podem armazenar.( CLASSE (PROGRAMAÇÃO). In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2013. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Classe_(programa%C3%A7%C3%A3o)&oldid=34062388>. Acesso em: 26 fev. 2013.)


Cada objeto tem seus métodos (ações) definidos pela classe. Uma vez que a classe seja construída, você pode criar quantos objetos quiser a partir dela. Isso se chama instanciação: criar um objeto a
partir de sua definição ou classe. Em outras palavras um objeto é uma instância de uma classe.

 

Instância é a concretização de uma classe. Em termos intuitivos, uma classe é como um "molde" que gera instâncias de um certo tipo; um objeto é algo que existe fisicamente e que foi "moldado" na classe.

 Assim, em programação orientada a objetos, a palavra "instanciar" significa criar. Quando falamos em "instanciar um objeto", criamos fisicamente uma representação concreta da classe. Por exemplo: "animal" é uma classe ou um molde; "cachorro" é uma instância de "animal" e apesar de carregar todas as características do molde de "animal", é completamente independente de outras instâncias de "animal" (INSTÂNCIA (CLASSE). In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2012. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Inst%C3%A2ncia_(classe)&oldid=33379109>. Acesso em: 26 fev. 2013.).

 

Bibliografia

STELLMAN, Andrew; GREENE, Jennifer. Head First C#, 2nd ed. Sebastopol, CA: O’Reilly Media, Inc, 2010. 797 p.

Sunday, February 24, 2013

Paradigma da Orientação a Objetos


Paradigma da Orientação a Objetos

 

Paradigma de Objetos


A Orientação a Objetos é uma evolução da Análise e Programação Estruturada e se estabeleceu como novo modelo de desenvolvimento de software. A diferença entre as duas abordagens é, na verdade, uma mudança de paradigma que envolve análise, projeto e programação. O paradigma da Orientação a Objetos tem suas bases conceituais e origem no campo de estudo da cognição. A forma de pensar e modelar, um problema e sua solução, migra de um modelo baseado em processos para um modelo baseado em componentes.

Conforme Morris e Brandon (1994), “Os paradigmas influenciam nossa percepção, ajudando a organizar e coordenar a maneira como olhamos o mundo.” Quando dizemos que houve uma mudança de paradigma, queremos dizer, literalmente, que houve a necessidade de alterar a forma como traduzíamos os problemas do mundo real para aplicativos de software (SCHEID, Silvana Furlan. POO – Paradigma da Programação. <http://infmtcdeolho.blogspot.com.br/2013/02/poo-paradigma-da-programacao.html>. Acesso em 23 de fevereiro de 2013).

A grande dificuldade em se compreender a Orientação a Objetos é a diferença de abordagem do problema. Um exemplo bastante difundido sobre isso é a análise da frase:  O navio atraca no porto e descarrega sua carga. Analisando de forma estruturada, pensamos nas ações que estão sendo realizadas e em como transformá-las em procedimentos: atracar no porto e descarregar a carga -  ou seja, pensamos nos verbos. Analisando de forma orientada a objetos pensamos primeiro nos objetos: o navio, o porto e a carga; ou seja, pensamos nos substantivos, como eles seriam, quais os seus comportamentos e como eles interagiriam.

Na análise estruturada a ênfase está nos verbos; na análise orientada a objetos, a ênfase está nos substantivos. Essa mudança aparentemente simples é, de início, um grande desafio para os desenvolvedores experientes que tem de migrar da análise estruturada a para a orientação a objetos. Têm-se que esquecer anos de prática analisando problemas de forma estruturada para reaprender a analisá-los de forma orientada a objetos.

Na orientação a objetos funções e dados estão juntos, formando os objetos. Esse conceito acompanha todo o clico de desenvolvimento de software.

Vantagens da Orientação a Objetos


A criação deste novo modelo foi motivada pela crescente complexidade e dificuldade de manutenção dos softwares. Como uma evolução da Análise Estruturada, a Orientação a Objetos mantêm alguns conceitos da Análise e Desenvolvimento Estruturado mas implementa nova abordagem e novos conceitos e ferramentas que trazem várias vantagens. Entre elas:

1.      Reduz a complexidade no desenvolvimento de software: componentes complexos podem ser construído a partir de componentes já existentes;

2.      Aumenta a produtividade: a criação de bibliotecas torna efetivo o compartilhamento e a reutilização de código; pode-se utilizar bibliotecas de terceiros especialmente desenhadas para dar suporte a programadores menos sofisticados.

3.      Fornece sensível redução de custo na manutenção de software - onde reside o maior custo do software: a independência entre as classes ajuda no processo de manutenção;

4.      Reduz o gap semântico: é mais fácil pensar e falar em objetos do que em funções e procedimentos, pois o conceito de objetos está mais próximo do mundo real. Isso facilita a conversa entre o analista e o usuário. Além disso, análise, projeto e implementação usam o mesmo paradigma.

5.      Torna possível o desenvolvimento e a manutenção eficiente de software mais complexos: a complexidade cada dia maior dos sistemas, levou a um ponto em que, programas muito complexos tornam-se impossíveis de se manter dentro do paradigma estruturado;

Isso não significa, contudo, que a análise estruturada tenha sido abandonada. Existe muito código ainda desenvolvido em linguagens estruturadas como: C; Cobol; Pascal, etc. Além disso, para problemas mais simples, a análise estrutura é mais adequada que a análise orientada a objetos.

 

Problemas na Orientação a Objetos


A Orientação a Objetos carrega alguns problemas:

1.      Os fundamentos teóricos da OO não são simples. Vemos, na prática, muito código escrito de forma estruturada dentro de linguagens orientadas a objetos justamente pela dificuldade que os desenvolvedores tem de desenvolver as habilidades de análise, projeto e programação orientados a objetos.

2.      A maioria dos bancos de dados não são orientados a objetos. Dentre aqueles que se dizem orientados a objetos a maioria não é totalmente orientada a objetos, implementando apenas alguns conceitos como a herança.

3.      As abordagens de OO podem ser múltiplas; fazendo com não haja um padrão.

4.      Algumas vezes não é possível decompor problemas do mundo real em uma hierarquia de classes. Negócios e pessoas têm frequentemente regras de operações sobre objetos que desafiam uma hierarquia limpa e uma decomposição orientada a objetos. O paradigma de objetos não trata bem de problemas que requerem limites nebulosos e regras dinâmicas para a classificação de objetos.

Futuro


Um dos aspectos mais fascinantes da informática é que se está sempre buscando novas formas de melhorar e facilitar o desenvolvimento de software. A Xerox percebeu alguns problemas na Programação Orientada a Objetos e seu engenheiro Gregor Kiczales, junto com sua equipe, elaborou uma nova evolução: A Programação Orientada a Aspecto ou POA (veja um pouco mais em: http://pt.wikipedia.org/wiki/Programa%C3%A7%C3%A3o_orientada_a_aspecto). Mas deixemos esse assunto para um outro post.

Referências e Bibliografia


LASKOSKI, Jackson; Programação Orientada a Objetos. Em:  http://www.jack.eti.br/www/arquivos/apostilas/java/poo.pdf
MORRIS, Daniel; BRANDON, Joel. Reengenharia: reestruturando sua empresa. São Paulo: Makron, 1994.

ORIENTAÇÃO A OBJETOS. In: WIKIPÉDIA, a enciclopédia livre. Flórida: Wikimedia Foundation, 2013. Disponível em: <http://pt.wikipedia.org/w/index.php?title=Orienta%C3%A7%C3%A3o_a_objetos&oldid=34180773>. Acesso em: 24 fev. 2013.

Wednesday, February 13, 2013

About.me


Utilizando UML e Padrões

Utilizando UML e Padrões

Uma Introdução à Análise e ao Projeto Orientados a Objetos e ao Desenvolvimento Iterativo


Utilizando Uml e Padroes - Craig Larman (8560031529)

Autor: LARMAN, CRAIG
Editora: BOOKMAN COMPANHIA ED
Assunto: INFORMÁTICA - METODOLOGIA DE ANÁLISE DE SISTEMAS

A obra oferece a estudantes e desenvolvedores um mapa detalhado de atividades para verificação de requisitos, análise, projeto e codificação. Durante a fase de projeto, é dada ênfase às habilidades críticas necessárias para o projeto de responsabilidades e colaborações. Os tópicos incluem - Expressar modelos de análise e de projeto usando UML, uma notação diagramática que está se tornando padrão para sistemas orientados a objetos, Aplicar padrões para atribuir responsabilidades e colaborações de projeto, Construir arquiteturas em camadas, Projetar frameworks, Mapear modelos de projeto para Java.

Fonte: http://www.livrariacultura.com.br/scripts/resenha/resenha.asp?nitem=3024643&sid=0214441345112753441662874&k5=CA4824B&uid=

Search This Blog

About Me

My photo
Cristão, apaixonado por Deus. Consultor em Tecnologia da Informação