Apostila de Abstração

download Apostila de  Abstração

of 11

description

Esta apostila descreve sobre os processos de abstração Classificação / Instanciação,Generalização / Especialização Agregação / Decomposição e Associação.

Transcript of Apostila de Abstração

UNIVC ABSTRAO Processos de abstrao Prof: Douglas Tybel 07/03/2012 2 SUMRIO INTRODUO ABSTRAO .................................................................................................. 3 PROCESSO DE ABSTRAO .......................................................................................................... 4 Classificao / Instanciao .................................................................................................. 4 Generalizao / Especializao ............................................................................................ 5 Agregao / Decomposio .................................................................................................. 6 Associao ............................................................................................................................ 7 EXERCCIOS ................................................................................................................................ 9 CONCLUSO ............................................................................................................................. 10 REFERNCIAS ........................................................................................................................... 11 3 ABSTRAO INTRODUO ABSTRAO Umprogramapodeserinicialmentevisualizado comosendoalgumacoisaque,utilizandoum conjunto de objetos e suas interaes, mostra ao computadorcomoresolverumdeterminado problema. Umproblemanormalmenteenvolvevrios aspectosesuaresoluoimplicaremum processodeanlise,tendo-seporobjetivoaidentificaodascaractersticas queapresentamrelaodiretacomaobtenodasoluo.Ummodelode resoluodeumproblemadeveespelharadequadamenteasituaoreale, conseqentemente,suaconstruodeverconsiderarquaisaspectosso relevantesparaoproblemaemquestoequaisaspectospodemser considerados irrelevantes. Esse mecanismo denominado Abstrao. ParaqueumAnalistaconsigadesenvolverumsoftware,imagina-sequeele saibatudosobreoramodeatividadedaempresaaqualestprestando servios, isso porque, se faz necessrio a criao do banco de dados, desenho dos formulrios, o projeto e a programao do software, contudo, os Analistas nemsempreconhecemtodooprocessodeumaempresa,entocomoeles fazemisto?Arespostaparaessaperguntabemsimples,elabasede quase todos os livros de programao Orientada a Objetos, mas os leitores no do a devida importncia a este mecanismo chamado abstrao. Estemecanismonadamaisdoqueabstrairouconsiderarosaspectosque sorelevantesparaoproblema,paramodelareidentificarclassese/ou objetos. Suponhaqueumalojadecaladostecontratepararesolverumproblemade controlefinanceirodaempresa,assimaprimeiraquesto:Poronde comear?Portantousarosprocessosdeabstraoparaconsideraros 4 aspectos relevantes e os aspectos que podem ser considerados irrelevantes muito importante para que se consiga efetuar tal analise. Continuando o exemplo, vamos ensinar para como utilizar esse processo para poder saber quais tabelas ou classes abstrair de um sistema. PROCESSO DE ABSTRAO AsoperaesdeAbstraomostramcomooser humano mentaliza, organiza e modela o mundo ao seuredor.Aopensarmosomundoreal,as seguintes bsicas podem ser aplicadas: Classificao / Instanciao Generalizao / Especializao Agregao / Decomposio Associao Oresultadodeumaoperaomentaldeabstraodependenotantodo fenmeno observado, mas do interesse do observador. Classificao / Instanciao Aoolharparaoseucarro,voco identificarimediatamentecomoum automvel,poisomesmoapresenta ascaractersticasdeumautomvel, taiscomo:terummotor,porta-malas, placas,sistemadecmbio,volantee podeserlocomover,estacionar,etc.Oveculodeseuvizinhotambmser identificado como um automvel, se apresentar essas mesmas caractersticas. Vejaqueoseucarroumaentidadedistintadocarrodeseuvizinho, entretanto,ambosapresentamasmesmascaractersticas,asquaisso 5 utilizadasparaclassific-loscomoobjetospertencentescategoriados automveis.UsandoaprimeiraoperaodeabstraoquesechamaClassificao, podemos abstrair classes facilmente de uma entrevista com o cliente, como por exemplo, se ele disser:Preciso ter o controle de meus clientes; O que podemos classificar nesta frase que comum a um grupo, uma vez que, todos tenham as mesmas caractersticas? Vamos l: Existe grupo de PRECISO? No; Existe grupo de CONTROLE? No; Existe grupo de MEUS? No; Existe grupo de CLIENTES? Sim; Observequenafraseditapelocliente,apenasapalavraCLIENTES, representaumgrupo,deformageral,seusintegrantespossuemasmesmas caractersticas. Generalizao / Especializao Suponha um profissional formado em Medicina.Diz-sequeeste profissionalummdico,ouseja, esteprofissionalpodeser consideradocomoumaentidade (Objeto)quepertenceclasse Mdico. A classe Mdico define quais so as caractersticas (Conhecimentos e atribuies,nestecaso)apresentadaspelosobjetosquepertencerem mesma.ConsiderequeoprofissionalformadoemMedicinafaaumcursode especializaoemcardiologia.Tem-seentoumprofissionalmais especializado.EssenovoprofissionalformadoemMedicinaapresenta caractersticas adicionais. Vamosassumiroexemplodegrupomostradonoprocessodeclassificao paraentendermelhorageneralizao,issoporque,podemosassumirque CLIENTES umaclasse,contudonecessitamossaberseelarecebe herana 6 deumaSUPERCLASSE.Podemosnosperguntarse,aclassedeCLIENTES pertenceaalgumaclasse?ArespostaseriaidentificaraclassePESSOAS como representao de pai da classe clientes, uma vez que mais abrangente, eaclasseCLIENTESherdaatributosdaclassePESSOAS,sendo representadapelaoperaodeabstraoGeneralizao.VejanaFigura1a representao de Herana ou generalizao em um diagrama de classe que a seta de ligao um retngulo sem cor e invertido, realizando a ligao entre CLIENTES (filha) e PESSOAS, a classe pai. PESSOASCLIENTES Figura 1: Representao de Herana Generalizar Agregao / Decomposio Quandounimosumconjuntode objetos,comoobjetivode formarmosumnovoobjeto, estamosrealizandoumaOperao deAgregao.Se,analisandoum objeto,isolamoscadaumdeseus componentes,estamosfazendo uma Operao de Decomposio. Veja,ento,queumobjetopodesercompostoporoutrosobjetos.Alis,a maioria dos objetos do mundo real so na verdade compostos por vrios outros objetos. Em algum dado momento de uma entrevista o cliente pode passar informaes que necessite usar o processo de agregao, como por exemplo: 7 Se o cliente disser: Quero efetuar o controle de minhas notas ficais e dos seus itens QuandoefetuamosoprocessodeabstraochamadoCLASSIFICAO, observamosquenafraseditaconseguimosabstrairaclasse NOTAS_FISCAIS, isso porque, existe um grupo denotas, uma vez que todas contmosmesmosatributos,contudoosITENSpassaramaserclassificado. Paraessassituaesnsusamosoprocessodeabstraochamado AGREGAO.Quandounimosumconjuntodeobjetosparaformarumnovo objeto, estamos realizando uma operao de AGREGAO. Suponhamos uma CLASSE chamada ESTOQUE, o que compe um estoque? PodemosresponderquenormalmentesoEQUIPAMENTOS,PRODUTOS, MATERIASeetc.,certo?Destemodo,podemosdizerqueumestoqueno seriaumestoquesemosseuscompostos.Portanto,dessaspremissas, podemos concluir que o computador um objeto composto de teclado, mouse, monitoreetc.,porsuavez,umaNOTA_FISCALnoexistesemosseus ITENS,realizandoassimumaoperaodeAGREGAO,vejaabaixona Figura 2 a Representao de agregao em diagrama de classe. ESTOQUEPRODUTOS MATERIAIS1 1 Figura 2: Representao de agregao Associao Vamosconsiderarqueaentidadeprof.Jos pertencente classe Professor, enquanto que a entidadealunoJoaquimpertencenteclasse Aluno.Considerandooproblemadeministrar 8 aulas,vemosento,queasclassesProfessoreAlunoapresentamum determinadorelacionamento,caracterizadopelaligaoentresuasentidades. EsterelacionamentodenominadoAssociao.Representamosuma associao atravs de uma linha unindo as duas classes. VamosconsiderarqueoobjetoDouglasTybelpertencenteclasse Professor,enquantoqueoobjetoJoaquimpertencenteclasseAlunos. Considerandoqueprofessorministraaulaparaalunos,sendoassim,as classesProfessoreseAlunosapresentamumrelacionamento.Este relacionamento denominado Associao. PROFESSORES ALUNOS Figura 3: Representao de Associao Ousodasoperaes deabstrao oresultado deum modelo deresoluo de um problema, dessas premissas, podemos dizer que seria como um modelo de software ou outra forma de resolver o problema. Figura 4: Modelo de resoluo de problema 9 EXERCCIOS 1.Considereumapocaondenoexistemcomputadores,ondeuma empresa tenha que controlar seu processo venda. Use os processos de abstrao e encontre uma soluo sem usar recursos de tecnologia para resolver as seguintes situaes: Controlar o estoque Controlar as contas a receber Controlar as vendas Controle de cadastro dos clientes Controle dos caixas Controle das contas do banco 10 CONCLUSOConforme vimos, o modelo de resoluo de um problema o resultado de um processodeabstrao.Emtermosconcretos,sobopontodevistade programao orientada a objetos, a construo de um modelo de resoluo de um problema software, passa pela identificao dos objetivos que compem esse problema e a modelagem de suas respectivas classes. 11 REFERNCIAS Boratti,IsaiasCamilo.ProgramaoOrientadaaObjetos(usandoDelphi) lorianpolis,isual,Melo, Ana Cristina. Desenvolvimento aplicaes com UML 2.0: do conceitual implementao / Ana Cristina Melo. 2. ed. Rio de Janeiro : Brasport, 2004. Kroenke,DavidM.BancoDeDados:Fundamentos,ProjetoE Implementao io De aneiro ivros Tcnicosientficos,lmasri,amez,hamkantavathe,arliauimaresPinheiro,anduis RicardoDeFigueiredo.SistemasDeBancoDeDadosoPauloPearson Addison Wesley, 2005. Heuser,CarlosAlberto.ProjetoDeBancoDeDados.PortoAlegre:Sagra Luzzatto, 2001.