domingo, 9 de junho de 2013

COBIT

C O B I T
Control Objectives for Information and Related Technology
-OBJETIVOS DE CONTROLE PARA INFORMAÇÕES E TECNOLOGIAS RELACIONADAS


Aproveitando o fato de ter que falar sobre o Cobit na faculdade, resolvi fazer um post sobre este importante framework de gestão, que faz tanta gente dar valorização real à carreira.


1 - O que é?
O Cobit, que surgiu em 1996, é um framework de controle das operações e monitoração dos processos. É um modelo de gestão reconhecido internacionalmente que define 34 processos de gestão, divididos em 4 áreas de domínio que podem ser implantados utilizando práticas de processos de modelos de gestão específicos.
O Cobit independe das plataformas de Ti adotadas nas empresas, bem como independe do tipo de negócio ou valor e participação que a tecnologia da informação tem na cadeia produtiva da empresa.
O Cobit é um framework que foca o que deve ser alcançado e não de que forma deve ser feito para se alcançar e é indicado para ser utilizado por três públicos diferentes:

ADMINISTRADORES – Auxiliando na ponderação entre risco e investimento e também no controle de ambientes de TI.
USUÁRIOS – Para se certificarem da segurança e dos controles de serviços de TI fornecidos internamente ou fornecidos por terceiros.
AUDITORES – Subsidiando opiniões e provendo aconselhamento aos administradores sobre os controles internos.
A versão mais atual do Cobit em 09/06/2013 é a 5. O Cobit5 fornece um conjunto abrangente de medidas, indicadores, processos e objetivos de controle através de um amplo espectro de processos de TI.





2  - Quais domínios, quais processos?
Este framework encontra-se estruturado em 4 domínios , a saber:

PLANEJAMENTO E ORGANIZAÇÃO

ENFOQUE/OBJETIVO: Envolve o nível estratégico, formulando estratégias e táticas. Identificar de que forma a TI pode contribuir para a organização alcançar o objetivo dos negócios.
  • Define o plano estratégico de TI
  • Define a arquitetura de informação
  • Determina a direção tecnológica
  • Define a organização de TI, os seus processos e relacionamento.
  • Gerencia os investimentos de TI
  • Gerencia os recursos humanos
  • Comunica os objetivos e direcionamentos gerenciais
  • Gerenciar a qualidade
  • Avalia e gerencia os riscos de TI
  • Gerencia os projetos

AQUISIÇÂO E IMPLEMENTAÇÃO

ENFOQUE/OBJETIVO: Busca realizar as soluções estabelecidas. Mudança, aquisição e manutenção de sistemas já existentes.

  • Identifica as soluções de automação
  • Adquire e mantém os softwares
  • Adquire e mantém a infra-estrutura tecnológica
  • Viabiliza a operação e utilização
  • Gerencia as mudanças
  • Instala e aprova soluções e mudanças


ENTREGA E SUPORTE

ENFOQUE/OBJETIVO: Busca a análise de produtos ou serviços que se deseja obter, levando em conta aspectos como segurança e continuidade para que se haja uma entrega real

  • Define e mantém os acordos de níveis de serviço (SLA)
  • Gerencia os serviços de terceiros
  • Gerencia a performance e capacidade do ambiente
  • Assegura a continuidade dos serviços
  • Assegura a segurança dos serviços
  • Identifica e aloca custos
  • Educa e treina usuários
  • Gerencia a central de serviços  e incidentes
  • Gerencia a configuração
  • Gerencia os problemas
  • Gerencia os dados
  • Gerencia a infra estrutura
  • Gerencia as operações

MONITORAÇÃO

ENFOQUE/OBJETIVO: Busca gerenciar performance. Enfatiza a avaliação dos processos de TI, através da análise de fatores como qualidade e conformidade das necessidades.

  • Monitora e avalia o desempenho da TI
  • Prove governança para a TI
  • Monitora e avalia os controles internos
  • Assegura a conformidade com requisitos externos


A considerar todos estes processos ele pode ser aplicado nas empresas ligado a outros frameworks e melhores práticas como CMM, PMBOK, ISSO 17799, ITIL.
Os mapas de controle que são fornecidos pelo Cobit auxiliam os auditores e gerentes a manter controles suficientes para garantir o acompanhamento das iniciativas de TI e recomendar a implementação de novas práticas, se necessário. O ponto central é o gerenciamento da informação com os recursos de TI para garantir o negócio da organização. Forma-se assim o cubo do Cobit. Os recursos de TI são: Pessoas, Sistemas de Informação, Tecnologia, Infra. As informações gerenciáveis são: Efetividade, Eficiência, Confidencialidade, Integridade, Disponibilidade, Conformidade, Confiabilidade.

O cubo:

Estes processos formam um roteiro que é a síntese do Cobit:
-Onde a organização está hoje
-O atual estágio de desenvolvimento da organização
-O atual estágio dos padrões internacionais
-Aonde a organização quer chegar



3 – Quais objetivos?



Tem a pretensão de assegurar que os recursos de TI sublinhados mais acima, estejam alinhados com os propósitos da organização, focando na governança corporativa e na necessidade de controles de melhorias na organização. Desta forma a TI atenderá aos requisitos de negócios.
A grande verdade é que em muitas organizações a TI parece estar de lado, tendo uma vida independente  da empresa em que está inserida, muitas vezes sendo difícil para o alto escalão entender , por exemplo, como os investimentos aplicados nesta área ajudam a organização a atingir suas metas.
O framework Cobit vai ao encontro desta e outras necessidades do negócio, sendo usados em processos de TI que entregam algum valor de volta à organização, respondendo aos requisitos de negócio que criaram o ciclo


4 - Quais vantagens de sua utilização?

Sabemos que a governança de TI traz os seguintes benefícios: Maior confiança, maior transparência, boa receptividade, maior retorno de investimento.
Já as vantagens da utilização do Cobit são:

  • Aceito internacionalmente como framework de modelo para Governança de TI
  • Ele é orientado para processos suportados por ferramentas e treinamento
  • Continuamente em desenvolvimento com melhorias constantes
  • Ajuda a atender os requisitos regulatórios do mercado
  • Focado nos requisitos de negócio
  • Agrega conhecimento, visto que o conhecimento de especialistas é compartilhado e difundido
  • Permite ter mais controle e a visualizar as atividades de TI
  • É compatível com outras estruturas
  • Integra a equipe
  • Mantém os riscos de TI relacionado a um nível aceitável
  • Otimização do custo de serviços de TI e de tecnologia
  • Alcance da excelência operacional no uso eficiente da tecnologia

5 – Quem o representa?

O órgão oficial que representa o Cobit é o ISACA, que é responsável por atualizar as versões e emitir os certificados pelo mundo. No Brasil as empresas autorizadas a oferecer o curso de Cobit e o teste são: IT PARTNERS, BIG FIVE, WORLD PASS.



¨
6 – Quem utiliza o Cobit no Brasil?

O Cobit já nasceu como o framework com maior demanda de profissionais em bancos e empresas de meio de pagamentos, onde a TI é crítica por cuidar de informações confidenciais dos clientes.
As empresas utilizadoras do framework no Brasil são os Correios, Goodyear,  Vivo,  Contax e Dpaschoal.



7 – Conclusão

Atualmente é necessário ter gestão de TI nas grandes empresas. Não é mais concebível imaginar uma empresa sem uma forte área de sistemas de informação para manipular os dados operacionais e prover informações gerenciais aos executivos para as tomadas de decisões.

Não existem dúvidas sobre o benefício da tecnologia aplicada aos negócios. Entretanto, para serem bem sucedidas, as organizações devem compreender e controlar os riscos associados no uso das novas tecnologias. O Cobit é uma ferramenta eficiente para auxiliar o gerenciamento e controle das iniciativas de TI nas empresas.

sábado, 18 de maio de 2013

PLACAS DE VIDEO

PLACAS DE VÍDEO

Quais são as diferenças?

Antes de começar mais uma postagem, gostaria de informar que  nosso blog está sendo bem visualisado em países distantes do Brasil, como EUA, Alemanha, França, Moçambique, Austrália, Rússia e vários outros. A popularidade deste blog, que tem a missão de responder coisas complexas ou não da informática de forma rápida, direta e entendível me deixa feliz.


Vamos lá: A placa de vídeo é um componente de hardware que gera muitas dúvidas. É o componente que exibe as imagens na tela, no monitor. Ontem mesmo, fui convidado a avaliar um notebook para um amigo, e ele me fez a seguinte pergunta: você compraria este notebook? Ao analisar um pc, tenha em mente o que você quer... se quer fazer coisas simples, sem muitas extravagâncias, como guardar documentos, fotos, ver vídeos leves,  um computador com placa de vídeo compartilhada ou integrada, resolverá satisfatoriamente. Mas se você tem a intenção de processar games, ver vídeos full hd, terá que ter uma placa de vídeo dedicada.

Afinal que diferenças são estas?


PLACA DE VÍDEO COMPARTILHADA - Utiliza a memória RAM do computador, todas as solicitações do computador são direcionadas a ela. Isso quer dizer que em uma situação em que você precisaria de mais recursos, não teria disponível, pois a memória e o processador é unica para todos os componentes do pc. É chamada de on-board.

PLACA DE VÍDEO INTEGRADA - Nada mais é que uma variante da placa de vídeo compartilhada. A diferença é que ela reserva um espaço especialmente para vídeos ou jogos leves.
PLACA DE VÍDEO DEDICADA - É apropriada para situações em que é necessária a utilização de muitos recursos gráficos, como jogos. Possui extraordinário desempenho e infinitos recursos. É chamada de off-board.




Falarei um pouco mais da placa de vídeo dedicada, alguns detalhes importantes :

O componente mais importante é a GPU -> Unidade de Processos Gráficos. 
Existe GPU das mais diversas variedades e marcas. A GPU esquenta muito, coisa em torno de mais de 100 graus C, realiza cálculos demais, precisa de uma fonte de alimentação potente e tem a função de gerar imagens.
As placas de vídeo dedicadas, podem possuir memória do tipo GDDR, que são diferentes de memória RAM de um pc. A memória do tipo GDDR é gráfica e bem utilizada. Varia de 256MB a 1GB. Entretanto, para indicar a melhor memória para um pc, deve-se observar o barramento - caminho em que os bits trafegam até a GPU - existem barramentos que permitem transferências de 64, 128, 256 bits por vez, salve, salve, antigamente eram transferidos apenas 8 bits ! Então, o segredo é comparar: Quanto menor o seu barramento, menor deve ser a capacidade da memória utilizada também. É desperdício utilizar muita memória para pouco barramento.
Para que saiba, o barramento mais moderno é o PCI EXPRESS que já transfere até 4GB por segundo. Os seus antecessores, AGP e ISA, não chegavam nem perto.


As placas de vídeo, em geral, possuem resolução, as mais modernas utilizam o padrão SVGA de 1366 x 768, medida de pixels, que quer dizer que te entrega até 1366 pixels na horizontal e 768 pixels na vertical. Quanto maior esta medida, melhor é a qualidade de resolução. O padrão SVGA suporta milhões de cores, ao contrário de seu padrão antecessor, o VGA, que só suportava 256 cores.



Esta postagem foi uma dica para quem quer escolher um computador e não tem noção sobre placas de vídeo. Qual a melhor placa de vídeo?  



Espero poder ter ajudado
Dúvidas, sinta-se a vontade de postar nos comentários
Forte abraço,

Fabiano Lopes - 18-05-2013, 22:45

sexta-feira, 29 de março de 2013

QUALIDADE DE SOFTWARE

Qualidade de software - O que é necessário para um software ser considerado bom?




Um software, programa ou aplicativo é um conjunto de instruções sequenciadas destinadas a algum objetivo em comum.
Há desenvolvedores que criam seus programas sem usar qualquer documentação e outros que seguem o modelo documental e mais outras infinidades de caminhos. Tanto um como o outro podem produzir bons programas ou não. 
A verdade é que para um determinado software ser considerado de qualidade, não basta apenas ter a aprovação do cliente ou satisfazer o cliente. 
Saiba que existem normas de qualidade que aferem justamente esta qualidade, a excelência do software. A busca pela qualidade de software vem da engenharia de software.
Algumas normas existentes como a ISO 9126 e NBR 13596 representam a padronização mundial desejada para os produtos de software. As normas definem a qualidade de software como sendo "a totalidade de características de um produto de software que lhe confere a capacidade de satisfazer necessidades explícitas e implícitas."
Cada tipo de software tem seus próprios requisitos de qualidade. Certamente que um software destinado à área médica, será bem mais exigido em matéria de qualidade do que um software destinado a uma loja de pet shop, por exemplo.

Uma coisinha que li sobre atributos de um software diz respeito às suas funções, quer ver?

Pensemos em um ATRIBUTO OBRIGATÓRIO de um determinado software. A presença daquele atributo não trará a satisfação do usuário, pois já é de se esperar que ele contenha. Entretanto, quer ver um negócio? Ouse deixar o seu software sem um atributo obrigatório... com certeza gerará grande insatisfação do usuário.

Este é o lema: O que fazer para não gerar a insatisfação do usuário? Há muito tempo o homem se dedica a produzir com qualidade. Sei que existe uns xing lings aí no mercado, mas o que satisfaz realmente as pessoas, é a qualidade. Esta qualidade pode ser medida. As características que um software deve atender para ser considerado de fato um software de qualidade são:

FUNCIONALIDADE - ele satisfaz as necessidades? 
A funcionalidade é o que o software faz ou o que ele oferece aos usuários

       Acurácia - O software faz o proposto corretamente?
       Adequação - Propõe-se a fazer o que é apropriado?
       Conformidade - O software está de acordo com as leis?
       Interoperabilidade - O software interage com os sistemas especificados?
       Segurança - Evita acessos indevidos?


CONFIABILIDADE - o sistema é resistente a falhas?
O sistema deve apresentar um resultado preciso e adequado sempre que solicitado, sem perda de dados. 

       Tolerância - O software apresenta qual reação mediante erros?
       Maturidade - Qual frequência ocorre erros?
       Recuperabilidade - O software é capaz de não perder dados em caso de falhas?


USABILIDADE - o sistema é fácil de ser usado?
Este é um conceito muito importante e está diretamente ligado à satisfação do usuário, pois diz respeito à interação que há entre o usuário e o software.

       Intelegibilidade - O software é de fácil entendimento no tocante ao conceito e objetivo?
       Apreensibilidade - O software é simples de se utilizar?
       Operacionalidade - É um sistema fácil de se controlar?


EFICIÊNCIA - é veloz?
A eficiência está ligada aos recursos que o sistema usa e seu aproveitamento.

       Tempo - Qual a velocidade de execução do software?
       Recursos - Quanto recurso o sistema usa?


MANUTENIBILIDADE - é um sistema fácil de modificar ?
Conceito tem a ver com o fato de um sistema permitir ser modificado sem problemas quando encontrado um erro, adequar-se a um novo requisito ou a uma reescrita.

       Analisabilidade - Quando ocorre falha, é facil de encontrar?
       Testabilidade - Permite testes quando alterado?
       Modificabilidade - É fácil se modificar e adaptar?
       Estabilidade - Possui riscos graves ao altera-lo?
       Segurança - Evita acessos indevidos?


PORTABILIDADE - é fácil passa-lo para outro ambiente?
Existe portabilidade quando um determinado programa pode ser transferido  para um outro cenário e continuar funcionando sem erros.

       Adaptabilidade - é facil de adaptar em outros cenários?
       Instabilidade - A reinstalação em outros ambientes é fácil?
       Conformidade - Está conforme padrões de portabilidade?
       Substituibilidade - É fácil usar para substituir outro?


Enfim, as vantagens que um software de qualidade proporciona são facilmente compreendidas: Ele funcionará corretamente, será fácil de usar, possuirá manutenção simples e manterá a integridade dos dados.

Há de se ver o lado do usuário, principal interessado na utilização e no bom funcionamento do produto. O conceito de usabilidade define bem o que o usuário espera, principalmente.

Boas práticas de programação e atenção às características que fazem um produto de software  ser considerado de qualidade devem ser o norte do bom programador.

Bem, vou aqui encerrando mais uma postagem, desta vez mais ligada à área de engenharia de software.

Forte abraço
Fabiano Lopes - sexta feira da Paixão, 29/3/2013, 17:45 

      



       





sábado, 23 de março de 2013

AI, AI...VÍRUS NO MEU PC. O QUE FAZER?

Meu computador está com vírus, o que é que eu faço agora?


MY COMPUTER HAS A VIRUS...RESOLVING HOW?

Imagina a cena: O carinha recebe um e-mail de um mero desconhecido, que conta uma história interessante  dizendo que ele foi premiado com uma passagem de ida e volta para Veneza na Itália. Depois da historinha pede-se para clicar em um link para resgatar a bendita passagem.  Obviamente o carinha, sem nem desconfiar, afinal,  ele se acha um cara que nasceu de bunda pra lua, clica no link todo bobo com a sua recente conquista. Certamente, antes de verificar a "m" que acaba de fazer, já ligou para todos os parentes contando a novidade. O carinha quando clicou no link dançou: foi ludibriado e instalou um programa malicioso em seu pc que pode ter vários objetivos diferentes e abaixo explicarei  cada um deles. Também falarei como resolver alguns dos problemas antes de determinar se deve ou não formatar o computador. Aliás, formatar é uma solução radical, deve ser utilizada só quando não houver jeito mesmo.

Ouve-se falar muito em vírus...mas, o que é um vírus de computador? 

Para começo de conversa, VÍRUS geralmente faz mal, é um PROGRAMA ou parte dele que se propaga  aproveitando falhas do sistema operacional para realizar operações que o usuário desconhece. Pode se acoplar a um outro programa e quando este programa infectado for utilizado, ele se torna ativo continuando a propagação. Há vírus que atrapalha a inicialização do hd, há vírus que infecta arquivos executáveis e assim vai.
Entretanto, há outros tipos suspeitos que são códigos maliciosos que costumeiramente chamamos sempre de vírus, sem diferenciar:

- WORM
- SPYWARE
- BOT
- BACKDOOR
- CAVALO DE TROIA
-ROOTKIT
-BOTNET

Como disse, explicarei cada um deles, a fim de dar uma clareada sobre as reais intenções desses candangos (como diria meu amigo SteveWallace).
Por trás do código malicioso existe várias intenções, que pode ser a disseminação de spam´s, prática de golpes, autopromoção, vandalismo, roubo de informações confidenciais, ataques ou  desejo de obter vantagens financeiras. 

WORM - Esse meliante age na rede de computadores, enviando um "clone" seu  automaticamente de computador para computador. Se aproveita de vulnerabilidades de programas existentes no pc. Ele suga os recursos do sistema como memória ou velocidade de internet, deixando-o lento.

SPYWARE - Esse meliante é um espião, tem a função de espionagem e se usado para o mal, irá fornecer as informações do que você faz no sistema para terceiros. 

BOT - Esse meliante faz contato direto com o invasor, permitindo que o seu pc seja controlado remotamente. Ele envia um clone que está conectado com o invasor via servidores Web, IRC ,redes P2P, etc.

BACKDOOR - Esse meliante age remotamente sem que seja necessário usar do mesmo artifício quando da invasão ao pc infectado. Tem esse nome, pois realmente invade o pc por uma das portas. Como o computador da vítima pode ser controlado a distância, o invasor pode fazer qualquer coisa imaginável no pc, como gravar as teclas digitadas em um arquivo, formatar seu hd, utilizar sua webcam sem seu conhecimento e n coisas mais.

CAVALO DE TRÓIA - Ou trojan para os mais íntimos, rs. Para deleite da curiosidade, acredito que você já tenha ouvido falar da expressão: "Presente de grego", que dizemos de um presente nem tão bom assim. Este programa invade o seu computador através de suas portas disfarçados num programa comum. Você acha que está fazendo uma coisa no seu programinha de edição de fotos, por exemplo, e em paralelo o invasor está agindo maliciosamente. O cavalo de Tróia, tem esse nome porque na guerra de Tróia contra a Grécia, os gregos dizendo-se rendidos, enviaram um cavalo gigante de madeira ao rei de Tróia. Este cavalo gigante foi colocado na praça principal da cidade. Na madrugada, quando todos dormiam, de dentro do cavalo de madeira saíram soldados gregos, que estavam escondidos dentro do cavalo, para abrir os portões da cidade e possibilitar que todo exército grego invadisse a cidade. E chamamos o código malicioso de cavalo de tróia justamente por isso, pois é um programa que faz algo de bom para você, mas, disfarçado, existe um usuário desconhecido logado no seu computador através de uma porta.

ROOTKIT - Esse é talvez um dos mais difíceis de ser pegos por anti virus. Age da mesma forma  que o Backdoor, com a diferença de ficar plenamente escondido. Geralmente, você o recebe, fazendo o que o carinha que ganhou a passagem para Veneza fez: clicando em link suspeito provindo de e-mail mais suspeito ainda.

BOTNET - Malware que transforma seu computador em um zumbi. Age via internet sem o seu conhecimento. Um computador invadido por um botnet pode ficar lento e se torna parte de uma rede de computadores invadidos por botnet para receberem spam´s, proliferarem mais vírus na rede, atacar servidores, negar serviços (DoS) e roubar informações confidenciais.


O que é que eu faço agora?

Depois de ter sido invadido, não fique de braços cruzados, senão vai ficar que nem o carinha da foto aí em cima. 
Um bom anti vírus dá conta do recado, ele pega o intruso e exibe um alerta indicando o problema. Basta você seguir as recomendações para proteger o sistema e deletar arquivos que estão prejudicando o bom funcionamento.
Só que nem tudo são flores e pode ser que o problema seja mais grave. Um novo vírus não conhecido pelo anti virus, pode ser um exemplo.

Se tem vírus no computador e seu anti virus não detectou, tente utilizar uma das técnicas abaixo, possivelmente resolverá:

RESTAURAÇÃO DO SISTEMA
Se o meliante não desabilitou esta função do seu sistema, basta que você a utilize para voltar no tempo em seu computador. Para tanto, entre em Painel de Controle e acesse Recuperação. Defina a data de restauração.

VERIFICAR INICIALIZAÇÃO 
O meliante pode estar iniciando junto com seu pc quando é ligado. Para isto, verifique quais programas estão iniciando junto com o seu Windows. No artigo que escrevi sobre computadores lentos neste mesmo blog, ensino como verificar a inicialização.

FERRAMENTA DE REMOÇÃO DE SOFTWARE MAL INTENCIONADO
A Microsoft disponibiliza em seu site, uma ferramenta que permite remover programas suspeitos. Se você tem o costume de atualizar o seu Windows, certamente possui a ferramenta. Caso não possua, saiba que existe. Esta ferramenta faz uma varredura (demorada) em todo o pc e lista os programas infectados, para que através do antivirus, você possa remover.

ANALISE COMPLETAMENTE O COMPUTADOR
Abra o seu antivirus e faça uma varredura completa no pc.

FAÇA ESCANEAMENTO ON LINE
Utilize o BitDefender ou o F-Secure On Line Vírus Scanner para  via internet descobrir se há vírus em seu computador. Se tiver, tanto o BitDefender ou o F-Secure removerá para você. Fica ligado, se você possui antivirus e um destes sites de escaneamento detectou a presença de vírus em seu computador, repense se seu antivirus está lhe ajudando realmente.


Como previnir?
Adotar uma postura preventiva é a raiz de tudo, como diria meu mestre e amigo Guilherme Arantes em suas aulas de Segurança e Auditoria de Sistemas. E é por aí mesmo.

O primeiro conselho é ter um bom ANTIVÍRUS instalado em seu pc. Isso daí já é um grandioso passo. Não bobeie, expirou a licença, renove. Caso não tenha condições, existe n ofertas de antivírus gratuitos e bons. 

Mantenha o seu computador sempre ATUALIZADO.

Não deixe de utilizar o FIREWALL do Windows. Mantenha-o sempre ativo. Aqui neste blog eu falo sobre Firewall em uma das postagens.

Depois vale o desconfiômetro, NÃO ACESSE sites suspeitos através de links recebidos por mensagens que você não conhece a procedência. 

Mesmo que você conheça o destinatário, desconfie caso a mensagem seja suspeita, pode ser que o seu conhecido seja um botnet (e ele não sabe). NÃO CLIQUE em nenhum link da mensagem caso desconfie.

Utilize SENHAS dificeis de serem quebradas, com caracteres diferentes na mesma senha como letras, numeros, caracteres especiais (#) para a sua própria segurança.

PRUDÊNCIA ao instalar um novo programa no pc. Você conhece o programa realmente? Vale a pena instala-lo? Lembre-se: Você pode estar instalando algo nocivo.

Assim encerro mais uma postagem. Certamente, em outra oportunidade, irei acrescentar algumas outras soluções, pois há vírus que atacam o sistema de inicialização e o computador nem liga, já indicando erro de cara.
Até mais,
Forte abraço

Fabiano Lopes, sábado, 23 de março de 2013
Niterói RJ
























sábado, 16 de março de 2013

CONCEITOS E PRINCIPIOS DA ORIENTACAO A OBJETOS

CONCEITOS / PRINCÍPIOS DA ORIENTAÇÃO DE OBJETOS

Se acaso lhe perguntassem quais são os conceitos, princípios da orientação a objetos, você saberia responder?
Saberia explicar com exatidão por exemplo, o que é Classe ou Encapsulamento?
Esta é uma resposta que todo programador  ou documentador de grandes sistemas deve saber responder.
Várias linguagens utilizam o conceito de objetos, algumas das mais famosas, Java e C#, se valem dos mesmos conceitos e mesmos principios.

CONCEITOS O.O -> Classe, Objeto e Mensagem.
PRINCÍPIOS O.O -> Encapsulamento, Herança, Polimorfismo, Associação.

Vou começar a explicar minuciosamente cada um destes conceitos, principios:

CLASSE -> Entenda como uma fôrma para fazer objetos. Nela se define os comportamentos (métodos). O que seria esta fôrma para fazer objetos, ou melhor dizendo, instanciar objetos? Vou usar um exemplo: Imagine um hospital. Entenda o hospital como um sistema. O que encontramos no hospital? Certamente, você deverá ter pensado primeiramente em médicos, pacientes, enfermeiros. Neste hospital é certo que se tenha vários médicos ( não pense num hospital público, por favor), vários enfermeiros e vários pacientes.
Quando visualizamos o hospital como um sistema, médico pode ser entendido como uma classe e realmente é, paciente também pode ser definido como classe e enfermeiro também. 
A classe agrupa objetos de parecidas caracteristicas . O médico pode ser um homem ou uma mulher, pode ser o João, a Camila, o Sandro e eles podem ser ortopedistas, pediatras, obstetras. Não interessa, são médicos !!! O que muda é o nome, a especialização e alguns outros atributos. Terão o mesmo comportamento: Farão consultas, cirurgias, solicitarão exames, etc.
No nosso hospital, MÉDICO é um exemplo de CLASSE.

OBJETO -> Preferi explicar este conceito após a classe, pois ao meu ver fica mais fácil entender o que é objeto, depois que fica bem claro o que é uma classe. Simples: Podemos dizer que o objeto é uma fabricação da classe. Tudo que existe de real ou abstrato pode ser considerado um objeto. Ao pensar no que existe no mundo real ou abstrato, até mesmo o MÉDICO que usei como exemplo de classe, pode ser considerado um objeto. Depende do nível de abstração utilizado. Mas voltando a minha explicação, o DR. JOÃO, ou a DRA.CAMILA, são objetos, pois no sistema, na documentação, eles serão tratados como objetos. O dr.João e a dra.Camila podem possuir especialidades diferentes, ele pode ser obstetra e ela pediatra. Ele pode ter 37 anos e ela 23. São objetos bem diferentes, mas semelhantes em um sentido, que os fazem serem objetos pertencentes à mesma classe: São médicos.

MENSAGEM -> É a chamada de métodos para realizar alguma tarefa. Os objetos se comunicam trocando mensagens entre si.  A mensagem é interpretada pelo objeto que executa a ação solicitada e a responde, se for o caso. No nosso exemplo de hospital, seria entre outras coisas, uma mensagem que pergunta, através de um método :quantos médicos há no hospital hoje? O objeto detentor desta resposta, enviará mensagem para o destinatário.

ENCAPSULAMENTO -> Significa privar a informação de acesso indevido por outra classe. Desta forma ninguém mexe diretamente nos atributos, tem que passar antes pelo método. O encapsulamento se dá através de Get e Set. Aumenta a legibilidade, clareza e reuso. No sistema hospital, a classe paciente, não pode, por exemplo, executar ou ter acesso direto ao método consultar da classe médico

HERANÇA -> Classes semelhantes são agrupadas em hierarquias. A herança é um relacionamento em que uma sub-classe herda todos os estados e comportamentos de outra semelhante que é a base e acrescenta outros estados  não existentes na base. O sentido disto é que podemos ter classes semelhantes com tarefas diferentes. Pensemos duas classes: MÉDICO PROFISSIONAL E MÉDICO RESIDENTE. Podemos dizer que médico residente é a super classe e faz consulta, mas não é autorizado a fazer cirurgias. O médico profissional herdará da classe MedicoResidente todos os estados e comportamentos, como realizar consultas e ainda acrescentará o comportamento RealizarCirurgias (não permitido a MedicoResidente e não existente em MedicoResidente).

POLIMORFISMO -> É a capacidade de objetos diferentes responderem à mesma mensagem. Acontece quando mais de uma subclasse possui um mesmo método que pode realizar tarefas nos objetos uma das outras em tempo de execução.

ASSOCIAÇÃO -> Se diz quando um objeto aproveita recursos de outro.

Esta foi uma expressa e sucinta explicação sobre os conceitos/princípios da orientação a objetos. Rápido e direto.

Editado nesta sexta feira, 22 de março de 2013.
Forte abraço,
Fabiano Lopes