Programare Orientata Pe Obiecte

download Programare Orientata Pe Obiecte

of 42

  • date post

    15-Oct-2015
  • Category

    Documents

  • view

    56
  • download

    1

Embed Size (px)

description

Programare Orientata Pe Obiecte

Transcript of Programare Orientata Pe Obiecte

  • Analiza

    Proiectarea

    Implementare

    Testare

    Parcurgereaincascada(waterflow)1.

    Necesitateareluariicompleteincazulunordefectemajore.-Poateconducelacrestereatimpuluiderealizare-Esteunriscfoartemare.-

    Dezavantaje:

    Pentruscaderearisculuisaugandittotfeluldealtecombinatiiptparcurgereaetapelordedezvoltare.

    Analiza Proiectare

    ImplementareTestare

    Parcurgereainspirala2.

    abordarepeversiuniseparcurgintrunmodcarelelasaincompletevorficompletatelaonouatrecereversiunileincompletereprezintabazeledezvoltariiurmatoruluiniveldeparcurgereoastfeldeabordarescaderisculdeaaveatimpmarederealizare(riscdepiata)peparcurssepotinsusiitehnicinoi

    Parcurgereaincrementala(incremental)2.

    modelul:RUP>Rationalunifiedprocess(procesderealizareunficata)(folosindtoolsetulRelationalRod)

    Intiere(Inception) Elaborare Constructie MigrareFaze:

    Fiecarefazapoatecontinemaimulteiteratii(unnumaroarecare)Fiecareiteratiecontinetoatecele4etapeprezentatemaisus

    Iteratii:

    definireascopuluiproiectuluiFazadeinitiere

    stabilestemoduldeabordare(obiectorientatasaucomponentorientata)seincearcalimitarea(excluderea)zonelorderisc

    Fazadeelaborare

    proiectareadetaliatasiimplementareaaplicatieiFazadeconstructie

    accentulsepunepetrecereadelaprodusulinstaredeprototiplainglobarealautilizator.Accentulsepunepe testare

    Fazademigratie

    APOOCurs120martie200720:57

    APOO Curs Page 1

  • AnalizasiproiectareaObiectOrientatacamodalitatedesistematizareadezvoltariisoftware

    permitedezvoltareaaplicatiilor>colectiideclasesiobiecteobiectelecolaboareazaintreele>suntinstantealeclaselorclaselesuntmembrealeuneiierarhiideclase(prinmostenire)

    Modelulobiect :-

    Caracteristicifundamentale:

    Nuesteproprienumaimodeluluiobiectdaresteobligatorieptmodelulobiect.i.

    >fiecareclasainglobeazaatributelecelemairelevantePrinabstractizaresedefinescclasele >tipuridedate(tipuriabstracte)ii.

    Abstractizarea1.

    Moduleletrebuiesafie"slabcuplate"1)Abordareaprincareaplicatiaseimparteinmodulei.

    InOOmodulelecontinclasesiobiecteii.NuestespecificaOOdar(obligatorie)recomandabilaiii.

    Modularitate2.

    Clasedebaza1)Clasederivate2)

    Proprietateaprincaresepotdefiniiierarhiideclasei.

    Specializare porninddelaoclasadebazasidefinindclasespecializate>mostenesccaracteregeneraledinclasadebazasiausipropriullorspecific

    1)

    Generalizare proninddelamaimulteclaseoarecumcorelate(indrudite)seextragcaracteristicilecomune>sefolosescptadefiniioclasadebaza

    2)

    Sepoatefaceprin2procese:ii.

    Mostenirea3.

    Multimeaatributelor(datemembrealeclasei)a)Implementareametodelorb)

    Structura1)

    Comportarea datadeceeacesenumesteinterfataclasei>asiguralegaturacuext.2)Multimeametodelorpublicealeclasei prototipurile

    Asiguracaoclasasafieimpartitain2partii.

    Permitereutilizareacoduluiii.

    Permitemodificariindependenteindiferitelemoduleiii.

    Float x; // datele membre sa fie de tip privateFloat y;

    Class punct{

    Punct(float a, float b); // constructor

    Float getx();// functii de tip getterFloat gety();// citesc variabile private (f selector)Void setx(float a);// modifica valuarea datelor membreVoid sety(float b);// f modificator sau de tip setter

    Public:

    Exmeplu:

    Incapsulareasiascundereaimplementarii4.

    Modelulobiectconstituieoviziuneintegratoareinproiectareamaimultorsisteme(hardware,arhitectura,etc).Acestlucrucontineounificareacaracteristicilor.

    APOO Curs Page 2

  • Void translate(folat a, float b);}

    Punct::Punct(float a, float b)//constructor

    X = a; y = b;{

    }

    Return x;Puncg::getx(){

    }

    Fiecareobiect=instantauneiclasereprezintaocolectiedevalorialeatributelorclasei(general)

    iv.

    Programareprocedurala dificildeimplementat1)ProgramareaOO incapsulareaesterecomandatasilimbajeleoferasuportptaceastaproprietat(nerespectareaesteposibiladarpotsaaparaproblemedesigurantaautilizariiobiectelor).

    2)

    Programareaorientatapecomponente incapsulareaesteobligatorie3)Tehnologiiledecomponentesoftteobligasaaiseparatiecompletaintreinterfatasiimplementare

    Secomportainmoduridiferiteinfunctiedetipuldeabordarealprogramariiv.

    Caracteristicisecundare:

    Slabtipizate:smaltalk(C) permitoricefeldecombinatiiintreobiecte.i.Puternictipizate:Eifel,Java,C#ii.Mediutipizat:C++iii.

    Tipizarea =regulileprincaresepotcombinasaudeconversiiintrediferitetipuridedatedintrunlimbaj

    1.

    Persistenta =capacitateadestocarepermanentaadatelorcreateintrunprogram.Existaposibilitateacaacestedatesasupravietuiascaprogramului.Serializare

    2.

    Concurenta=seintelegeposibilitateadeexecutieconcomitenta(simultana)amaimultorobiectedinaceeasiclasasauclasediferite.Arelocnumaidacaavemdeafacecuuncalculatorparalelsausistemdistribuit(reala).(simulata:threaduri).

    3.

    APOO Curs Page 3

  • Caracteristicilemodeluluiobiect

    Abstractizareaa.Modularitateab.Mostenireac.Incapsularead.

    Caracteristicifundamentale1. Clase:Structura:datemodul+impl.Modul-Comportarea:interfata=metdeprotectie,functiipublic-

    Fiecareobiect=instantaaclasei obiectecuvaloaredeatributaclasei??

    Principiulincapsulariisialascunderiiimplementariisecompolrtainmoduridiferiteinfunctiedetipuldeabordarealprogramarii:Pentruprogramareaprocedurala,aceastaproprietateestedificildeimplementat-

    Nerespectareaacesteiproprietatiesteposibiladarpotsaaparaproblemedesigurantaautilizariiobiectielor.

    PentruprogramareaOO,incapsulareaesterecomandatasilimbajeleOOoferasuportpentruaceastaproprietate(specificatoridiferiti,dateseparate,etc.)

    -

    Tehnologiiledecomponentesoftwareteobligasaaiseparatiecompletaintreinterfatasiimplementare

    Progamareaorientatapecomponente incapsulareaesteobligatorie-

    Limbajeslabtipizate:Smaltalkcarepermiteoricefeldecombinatiiintreobiecte(programatorultrebuiesaaibagrija)

    i.

    Limbajeputrenictipizate:Eifell,Java,C#ii.Limbajemediutipizate:C++iii.

    Tipizarea sereferalaregulileprincaresepotcombinainexpresiisaudeconversiiintrediferitetipuridedatedintrunlimbaj moduldeconversieeprecizatprincaracteristiciledetipizare(tipizareasereferalatipui,tipurile=clase=>tipzareasereferalaclase)

    a.

    Persistenta=capacitateadestocarepermanentaadatelorcreeateintrunprogram datelecreeateintrunprogramsasupravietuiascaprogramului;"serializateadatelor"=datelesunttransformateinsecventedeocteti,suntscrisesiramanacolocandseterminaprogramul.Laonouaexecutieelepotfiutilizate.

    b.

    ConcurentarelativalamodelulOO=posibilitateadeexecutieconcomitentaamaimultorobiectedinaceeasiclasasauclasediferite.Concurentaaparelacalcualtoareparalelesausistemedistribuite.

    c.

    Caracteristicisecundare modelobiect:2.

    Analiza,proiectarea,programareaObiectOrientata

    Aplicareaproprietatiilorsiaconceptelormodeluluiobiectinacesteetapededezvoltareasoftware.

    principiulprincareseslecteazacaracteristicilerelevantealerealitatiimodelatei.

    Entitatile>tipdeentitate

  • Detaliereaclaselor,obiectelorsilegaturilordintreacesteapebazacerintelorstabiliteinfazadeanaliza

    a.

    Sestabilescmoduleleproiectuluiintroabordare;IntroabordareOO,unmodulesteocolectiedeclase

    b.

    Sestabilesctehnologiilederealizare>platforma,SO,hardware,limbajesialtestandarde(biblioteci,etc.)

    c.

    ProiectareOO2.

    Programarea folosesteunlimbajOO toolseturi,bibliotecia.Sescriuprogrameleb.

    ImplementareaOO(programarea)3.

    TestareaOO sefolosescclasegata testatedinbiblioteci4.

    Avantajeleabordariiobiectorientateadezvoltariisoftwareului

    Reutilizabilitatecodului sefolosescbibliotecideclase1)Extensibilitateacodului sefolosescclasederivate dinclaseledinbilioteci2)

    Existentaincapsularii accesareainmodunitarprininterfataaobiectelora.Seimpunmecanismedetratareaexceptiilormaiprecisedecatinaltelimbajeb.

    Mentenantaaplicatiilorobiectorientate=intretinereabuneifunctionariaaplicatiiloremaisimplainOOdin2motive:

    3)

    LimitarileabordariiOO

    Saconstatatcatotusiclaselesuntpreamicisipreaspecialea.Bibliotecideuzgeneralaufunctionalitatelimitata.MFC(MicrosoftFoundationClases)areprezentatbazadezvoltariiprogramelorWindowsinC++.

    b.

    LainceputsecredeacaOOvarezolvaproblemareutilizabilitatiicodului.Inrealitateaavemdoaroreutilizabilitatelimitateacodului.

    1.

    Interoperabilitatealimitata;interoperabilitate=posibilitateadeaoperaimpreunaadiferitelorclasesiobiecte.Eaestelimitatadatoritafaptuluicabibliotecilesuntcudestinatiilimitatelarandullor.Ex:claselesipakageurilejavacomunicagreucuclaseleC++.

    2.

    Tendintelededezvoltaresoftware

    Scop:Eliminarea(micsoararea)limitarilorOO.

    Reutilizabilitatii eacrestedatoritafaptuluicacomponentelesuntmaimaridecatclaseleInteroperabilitatii crestedatoritastandardelorimpusesidatoritafaptuluicaoricecomponentacontineointerfata.Eapoatefiifolositadecimaicomodinprogramare.

    beneficiazadestandardegeneralecarepermitobtinereaSoftwareorientatpecomponente-

    DezvoltareaprogramelorfolosindmodelareUML

    Moduldedezvoltaresoft;sefolosecmodele(conceptecaresintetizeazaabstractizaredinrealitatepentruunanumitscopsioanumitautilizare).Modelelesepotdezvoltainlimbajedemodelare

    -

    Anii1990 zecidelimbajediferite,fiecarepropunandunanumitmoddereprezentareaprogramelor.-Unificareaprinstandardizareaproiectariisoftafostocerintainerenta-

    GradyBookh 1994ObjectOrientedAnalisysandDesign limbajG.B-JamesRumbourgh OMT(ObjectModelingTehnology)-IvanJacobson OOSE(ObjectOrientedmodelinglanguage)-

    Inanul19953cercetatoriauunificatcele3limbajedefinitedeei

    APOO Curs Page 5

  • In1997limbajulUMLafostpreluatdeOMG(ObjectManagementGroup)(www.omg.org)siaudatprimulstandardsispecificareUML1.1.Actualmentesaajunslaversiunea2.1.1LimbajulUMLEs