software engineering v 2

Upload: cru-bocas-del-toro

Post on 13-Apr-2018

227 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/21/2019 Software Engineering v 2

    1/54

    Ingeniera de Software

    Agustn J. Gonzlez

    ElO329: Diseo ! "rogra#a$i%nOrientados a O&'eto(o#ado de:

    http://www.dsic.upv.es/~uml

    http://inst.eecs.berkeley.edu/~cs169/

    entre otras fuentes.

  • 7/21/2019 Software Engineering v 2

    2/54

    De)ni$i%n

    *+993, -a ali$a$i%n #e$anis#os siste#ti$os/dis$ilinados/ ! $uanti)$a&les ara el desarrollo/oera$i%n ! #anten$i%n de software0 esto es laali$a$i%n de la ingeniera al software.

    Esta&le$i#iento ! uso de rin$iios $on$ara$teres de ingeniera aroiados arao&tener/ e)$iente#ente/ software $on)a&le/ 1ueoere e)$az ! e)$iente#ente en #1uinas

    reales -a ali$a$i%n del artedel desarrollo software

    'unto $on las $ien$ias#ate#ti$as !$o#utadores ara disear/ $onstruir/ !

    #antenerrogra#as $o#uta$ionales e)$ientes! e$on%#i$os1ue logran sus o&'etios.

  • 7/21/2019 Software Engineering v 2

    3/54

    Estado del arte en Ing. DeSoftware

    Es una $ien$ia rigurosa $on fuertesfunda#entos #ate#ti$os4

    Es una $a#o t5$ni$o &ien desarrollado

    $on #u$6o de dis$ilina de ingeniera4 O est real#ente en un estado ri#itio...

    A lo #s una serie de 7#e'ores r$ti$as8/desarrolladores de software $onstru!en

    software ! si 5stos fun$ionan enton$esnosotros estudia#os $o#o ellos lo 6i$ieron.

    Si 5stos fun$ionan or un largo tie#oenton$es estudia#os sus ro$esos de software

    an #s $uidadosa#ente.

  • 7/21/2019 Software Engineering v 2

    4/54

    onstru$$i%n de una $asa ara 7)do8

    Puede hacerlo una sola persona

    Requiere:

    Modelado mnimo

    Proceso simple

    Herramientas simples

  • 7/21/2019 Software Engineering v 2

    5/54

    onstru$$i%n de una $asa

    Construida eficientemente y en un tiempo

    razonable por un equipo

    Requiere:

    Modelado

    Proceso bien definido

    Herramientas ms sofisticadas

  • 7/21/2019 Software Engineering v 2

    6/54

    onstru$$i%n de un ras$a$ielos

  • 7/21/2019 Software Engineering v 2

    7/54

    Herramientas(Ej: Rational Rose)

    Proceso(MetodologasEj: ITIL, Extreme ProgramminRUP: Rational Unifed

    Process)

    otaci!n (UML)

    laes en Desarrollo de SI

    "alidad:Ej: "MM

  • 7/21/2019 Software Engineering v 2

    8/54

    #istema "om$%tacional

    Proceso de egocios

    &rden

    Item

    en'o

    El modelado captura laspartes esenciales del sistema

    A&stra$$i%n ;

  • 7/21/2019 Software Engineering v 2

    9/54

    Interfaz de Usuario(Visual Basic,

    Java, ..)Lgica del Negocio

    (C++, Java, ..)

    ervidor de B!s(C++ " #L, ..)

    $%lti&les iste'as

    Co'&onenteseutilizados

    Manejar la complejidad

    Modelar el sistemaindependientementedel lenguaje deimplementacin

    Promover la Reutilizacin

    >ota$i%n *=isual, ; ?ene)$ios

  • 7/21/2019 Software Engineering v 2

    10/54

    "or 1u5 la Orienta$i%n aO&'etos4

    "ro@i#idad de los $on$etos de #odeladorese$to de las entidades del #undo real

  • 7/21/2019 Software Engineering v 2

    11/54

    ...Los conceptos bsicos de la OO se conocendesde hace dos dcadas, pero su aceptacintodava no est tan extendida como los benefcios

    que esta tecnologa puede sugerir

    "ro&le#as en OO

  • 7/21/2019 Software Engineering v 2

    12/54

    B "ro&le#as en OO

    Cn o&'eto $ontiene datos ! oera$iones 1ueoeran so&re los datos/ ero ...

    "ode#os distinguir dos tios de o&'etosdegenerados: Cn o&'eto sin datos *1ue sera lo #is#o 1ue una

    &i&liote$a de fun$iones, Cn o&'eto sin 7oera$iones8/ $on s%lo oera$iones del

    tio $rear/ re$uerar/ a$tualizar ! &orrar *1ue se$orresondera $on las estru$turas de datos

    tradi$ionales,

    Cn siste#a $onstruido $on o&'etos degeneradosno es un siste#a erdadera#ente orientado a

    o&'etos

  • 7/21/2019 Software Engineering v 2

    13/54

    "ro$eso de Desarrollode S

  • 7/21/2019 Software Engineering v 2

    14/54

    El ro$eso de desarrollo7o#leto8

    Se da en un $onte@to ! deendiendo elte@to o inestigador desta$a #s o #enosetaas.

    El #s $o#leto 1ue 6e isto in$lu!e:

    Al desarrollo es a lo 1ue nor#al#ente sela da #s 5nfasis en la literatura.

    Sueo LanzamientoInvestigacin Desarrollo Soporte

    Tiempo

  • 7/21/2019 Software Engineering v 2

    15/54

    Requisitos nuevoso modificados

    Sistema nuevoo modificadoProceso de esarrollo

    de Soft!are

    u5 es un "ro$eso de DesarrollodeS4

    De)ne ui5nde&e 6a$er u5/ undo! %#ode&e 6a$erlo

    >o e@iste un ro$eso de software uniersal. -as$ara$tersti$as de $ada ro!e$to *e1uio dedesarrollo/ re$ursos/ et$., e@igen 1ue el ro$esosea $on)gura&le

    Sueo LanzamientoInvestigacin Desarrollo Soporte

    Tiempo

  • 7/21/2019 Software Engineering v 2

    16/54

    Freas $u&iertas or la Ing. deSolftware

    -a Ingeniera del Software estudia todos los ase$tosinolu$rados en el desarrollo de software/ entre los$uales se en$uentran: Eta$as de %n Proecto de sot*are

    Paradigmas + eno%es $ara enrentar eldesarrollo del $roecto de sot*are ("ascada,Interati'o incremental)

    Tiem$o "ostos

    -s$ectos tecnol!gicos

    .esti!n de Proectos

  • 7/21/2019 Software Engineering v 2

    17/54

    Etaas de un ro!e$to deSoftwareEtaas Hitos es$en$iales r1ueridos en un ro!e$to de

    desarrollo de software: &$ort%nidad de egocio (Hito) Le'antamiento Incial de Re%erimientos (/ominio del

    $ro0lema)

    Entendi#iento ini$ial de la ro&le#ti$a a resoler

    euniones $on liente

    Ese$i)$a$i%n ini$ial de re1ueri#ientos "onecci!n de Pro$%esta

    Esti#a$i%n de esfuerzos ! lani)$a$i%n del ro!e$to. Csode t5$ni$as *OO

  • 7/21/2019 Software Engineering v 2

    18/54

    Etaas de un ro!e$to deSoftware *$ont,

    -r%itect%ra (/ominio de la #ol%ci!n)

    Ese$i)$a$i%n de la te$nologa a utilizar *J2EE/ .>E(, Ese$i)$a$i%n de "atrones de Diseo

    /ise2o (/ominio de la #ol%ci!n)

    Diseo de Interfa$es *we&/ gui/ $o#andos/ oz,

    ealiza$i%n de diagra#as de se$uen$ia

    ealiza$i%n de diagra#as de $lases "onstr%cci!n + "odifcaci!n

    Entendi#iento real del diseo * solu$i%n, a rogra#ar

    "rogra#a$i%n e)$iente ! oti#a del $%digo fuente

    o#entar en for#a entendi&le ! razona&le el $%digofuente

    onstru$$i%n de rogra#a de 7(ES(8

    "rue&a unitaria del desarrollador #ediante un rogra#ade 7(ES(8

    Pr%e0as Unitarias

    ealiza$i%n de lan de rue&as

    Pr%e0as Integradas

  • 7/21/2019 Software Engineering v 2

    19/54

    Etaas de un ro!e$to deSoftware *$ont,

    "a$acitaci!n a Us%arios

    onfe$$i%n de

  • 7/21/2019 Software Engineering v 2

    20/54

    "lani)$ar ! Ealuar"ro!e$tos ...

    "odr5 $u#lir $on loslazos4

    Estar5 dentro de loresuuestado4

    El 7$liente8 1uedarsatisfe$6o4Las Metodologas pueden ser la ayuda que

    necesitamos, si podemos usarlas correctamente !!

  • 7/21/2019 Software Engineering v 2

    21/54

    "ro$esos/

  • 7/21/2019 Software Engineering v 2

    22/54

    u5 es una

  • 7/21/2019 Software Engineering v 2

    23/54

    -as giles #s $ono$idas ...

    K" *"rogra#a$i%n E@tre#a, -a fa#ilia ristal de o$L&urn %digo A&ierto ASD *Desarrollo de Software Adata&le, SC< D *Desarrollo

  • 7/21/2019 Software Engineering v 2

    24/54

  • 7/21/2019 Software Engineering v 2

    25/54

    Aostando or C" ...

  • 7/21/2019 Software Engineering v 2

    26/54

    Desarrollo de software:ara$tersti$as de C" ...

    uiado ! "anejado por #asos de $so

    #entrado en la Arquitectura

    Iterativo e Incremental

    Desarrollo %asado en #omponentes

    $tilizacin de $"L

    &roceso Integrado

  • 7/21/2019 Software Engineering v 2

    27/54

    "rin$iales #etodologas en eltie#o

    Tiempo

    Modelo

    Tradicional

    de Cascada

    Tiempo

    !efinicin de

    equerimientos

    nlisis & !iseo

    Implementacin y

    est !nitarios

    Construccin"#ruebas

    t

    t

    Iteracin 1 Iteracin 2 Iteracin 3

    P

    C

    A&D

    R

    P

    C

    A&D

    R

    P

    C

    A&D

    R

    Modelo

    Iterativo

    Incremental

    Integracin y

    test del sistema

    $peracin ymantencin

  • 7/21/2019 Software Engineering v 2

    28/54

    TiempoTiempo

    EsfuerzoNecesarioporActividad

    EsfuerzoNecesarioporActividad

    TransicinTransicinElaboraciElaboracinn

    ConstrucciConstruccinn

    ConcepcinConcepcin

    Iteraci!nPreliminar

    5 5 5 55 5 5 5Iteraci!n

    6

    Iteraci!n

    7

    5 5 5 55 5 5 5 Iteraci!n

    n

    Iteraci!n

    n86

    C" De)ne ases deDesarrollo ...

    -n1lisis 9/ise2o

    "onstr%cci!n

    Pr%e0as

    /istri0%ci!n

    Re%erimientos

    reas de trabajo(Workflow)

    A & D

    C

    P

    D

    R

    A & D

    C

    P

    D

    R

    A & D

    C

    P

    D

    R

    A & D

    C

    P

    D

    R

  • 7/21/2019 Software Engineering v 2

    29/54

    Conce&cinConce&cin *laoracin*laoracin ConstruccinConstruccin ransicinransicin

    Co'&ro'iso de

    recursos &ara faseelaoracin

    -ito

    /etivos,

    visin

    -ito

    r0uitectura

    -ito

    Ca&acidad

    &eracional

    ce&tacindel cliente

    Lieracin

    1roducto

    Tiempo

    I#ortan$ia de los Hitos enC" ...

  • 7/21/2019 Software Engineering v 2

    30/54

  • 7/21/2019 Software Engineering v 2

    31/54

    Cn E'e#lo: o#arar $on =;

  • 7/21/2019 Software Engineering v 2

    32/54

    M Pr%e0as %ncionalesM Pr%e0as de desem$eM .esti!n de re%isitosM .esti!n de cam0ios

    confg%raci!nM Ingeniera de egociM Ingeniera de datosM /ise2o de interaces

    ational Cni)ed "ro$ess+99N

    ationalO&'e$tor! "ro$ess+99;+99P

    O&'e$tor! "ro$ess+9NP;+99Q

    Eno%e Ericsson

    UML

    ational Cni)ed "ro$ess *C",

    Ot i i% i il

  • 7/21/2019 Software Engineering v 2

    33/54

    Otra isi%n si#ilar $on #sA$tiidades

    Ot i i% i il

  • 7/21/2019 Software Engineering v 2

    34/54

    Otra isi%n si#ilar $on #sA$tiidades

    Disciplinas o reas de tra'ajo

    "odelado del (egocio

    )equisitos

    Anlisis ! Diseo

    Implementacin

    &rue'as

    Despliegue, distri'ucin

    *ntorno

    estin de con+iguracin ! cam'ios

    estin del pro!ecto

    &rimarios

    De Apo!o

  • 7/21/2019 Software Engineering v 2

    35/54

    Delo!#ent Set "ro'e$t

  • 7/21/2019 Software Engineering v 2

    36/54

    ara$tersti$as Esen$iales deC"

    "ro$eso Dirigido or los asos de Cso "ro$eso Iteratio e In$re#ental "ro$eso entrado en la Ar1uite$tura

    "ro$eso dirigido or los asos de

  • 7/21/2019 Software Engineering v 2

    37/54

    e0uisitosaturar/ de)nir !alidar los $asos de

    uso

    ealizar los$asos de uso

    =eri)$ar 1ue sesatisfa$en los

    $asos de uso

    n2lisis " !ise3o

    I'&le'entacin

    1rueas

    Casos de Usointegran el

    traa/o

    "ro$eso dirigido or los asos deCso

    di i id l d

  • 7/21/2019 Software Engineering v 2

    38/54

    "aso de Uso Realiaci!n de -n1lisis Realiaci!n de /ise2o

    "aso de Pr%e0a

    ;

    tra$eT tra$eT

    tra$eTtra$eT

    "rue&as un$ionales

    "rue&asCnitarias

    U(6e Cni)ed Software Deelo#ent "ro$ess. I. Ja$o&son/ G. ?oo$6 and J. u#&aug6. Addison;esle!/ +999V

    ... "ro$eso dirigido or los asos deCso

  • 7/21/2019 Software Engineering v 2

    39/54

    ... "ro$eso dirigido or los asos de C

  • 7/21/2019 Software Engineering v 2

    40/54

    El $i$lo de ida iteratio se &asa en laeolu$i%n de rototios e'e$uta&les 1uese #uestran a los usuarios ! $lientes

    En el $i$lo de ida iteratio en $adaitera$i%n se rerodu$e el $i$lo de ida en$as$ada a #enor es$ala

    -os o&'etios de una itera$i%n se

    esta&le$en en fun$i%n de la ealua$i%n delas itera$iones re$edentes

    "ro$eso Iteratio e In$re#ental

    "ro$eso Iteratio e

  • 7/21/2019 Software Engineering v 2

    41/54

    -n1lisis

    /ise2o

    "odifc5

    Pr%e0as eIntegraci!n

    n 'eces

    ... "ro$eso Iteratio eIn$re#ental

    -as a$tiidades se en$adenan en una#ini;$as$ada $on un al$an$e li#itado orlos o&'etios de la itera$i%n

    "ro$eso Iteratio e

  • 7/21/2019 Software Engineering v 2

    42/54

    ... "ro$eso Iteratio eIn$re#ental

    ada itera$i%n $o#rende: "lani)$ar la itera$i%n *estudio de riesgos, Anlisis de los asos de Cso ! es$enarios

    Diseo de o$iones ar1uite$t%ni$as odi)$a$i%n ! rue&as. -a integra$i%n delnueo $%digo $on el 6e$6o en itera$ionesanteriores se 6a$e gradual#ente durante la$onstru$$i%n

    Ealua$i%n de la entrega de e'e$uta&le*ealua$i%n del rototio en fun$i%n de lasrue&as ! de los $riterios de)nidos,

    "reara$i%n de la entrega *do$u#enta$i%n einstala$i%n del rototio,

  • 7/21/2019 Software Engineering v 2

    43/54

    "nfoque

    Cascada

    "nfoque#terativo e

    #ncremental

    "ro$eso Iteratio e In$re#ental

    "ro$eso Iteratio e

  • 7/21/2019 Software Engineering v 2

    44/54

    %rado de inali'acin de (rtefactos

    ... "ro$eso Iteratio eIn$re#ental

  • 7/21/2019 Software Engineering v 2

    45/54

    "ro$eso entrado en la Ar1uite$tura

    -a ar1uite$tura de un siste#a es laorganiza$i%n o estru$tura de sus artes #sreleantes

    Cn ar1uite$tura e'e$uta&le es unai#le#enta$i%n ar$ial del siste#a/ $onstruidaara de#ostrar algunas fun$iones !roiedades

    C" esta&le$e re)na#ientos su$esios de unaar1uite$tura e'e$uta&le/ $onstruida $o#o unrototio eolutio

    Ar$6ite$ture

    In$etion Ela&oration onstru$tion (ransition

  • 7/21/2019 Software Engineering v 2

    46/54

    ases del i$lo de =ida

    El $i$lo de ida $onsiste en una serie de$i$los/ $ada uno de los $uales rodu$e unanuea ersi%n del rodu$to

    ada $i$lo est $o#uesto or fases ! $adauna de estas fases est $o#uesta or unn#ero de itera$iones

    -as fases son: Ini$io o Estudio de oortunidad Ela&ora$i%n onstru$$i%n

    (ransi$i%n

  • 7/21/2019 Software Engineering v 2

    47/54

    ...ases del i$lo de =ida

    Ini$io o Estudio de oortunidad*inception, De)ne el #&ito ! o&'etios del

    ro!e$to Se de)ne la fun$ionalidad !

    $aa$idades del rodu$to

    Ela&ora$i%n(anto la fun$ionalidad $o#o el

    do#inio del ro&le#a se estudian enrofundidad

    Se de)ne una ar1uite$tura &si$a

  • 7/21/2019 Software Engineering v 2

    48/54

    ...ases del i$lo de =ida

    onstru$$i%n El rodu$to se desarrolla a tra5s de

    itera$iones donde $ada itera$i%n inolu$ratareas de anlisis/ diseo e i#le#enta$i%n

    -as fases de estudio ! anlisis s%lo dieron unaar1uite$tura &si$a 1ue es a1u re)nada de#anera in$re#ental $onfor#e se $onstru!e*se er#iten $a#&ios en la estru$tura,

    Gran arte del tra&a'o es rogra#a$i%n !rue&as

    Se do$u#enta tanto el siste#a $onstruido$o#o el #ane'o del #is#o

    Esta fase roor$iona un rodu$to $onstruido

  • 7/21/2019 Software Engineering v 2

    49/54

    ...ases del i$lo de =ida

    (ransi$i%n Se li&era el rodu$to ! se entrega al usuario

    ara un uso real Se in$lu!en tareas de #arLeting/

    e#a1uetado atra$tio/ instala$i%n/$on)gura$i%n/ entrena#iento/ soorte/#anteni#iento/ et$.

    -os #anuales de usuario se $o#letan !

    re)nan $on la infor#a$i%n anterior Estas tareas se realizan ta#&i5n en

    itera$iones

  • 7/21/2019 Software Engineering v 2

    50/54

  • 7/21/2019 Software Engineering v 2

    51/54

  • 7/21/2019 Software Engineering v 2

    52/54

    Dos le$$iones i#ortantes

    El tie#o es indeendiente del [email protected] una se#ana la $o#ienzo de unro!e$to es tan &ueno $o#o a6orrarla al)nal. Cna se#ana es una se#ana.

    Es #u$6o #s f$il a6orrar tie#o alini$io del ro!e$to *$uando losentrega&les son #enos $laros,.

    on$lusi%n: "ronto 6a! 1ue tener $laro elro!e$to del ra#o.

    Idea rela$ionada: "atrones de

  • 7/21/2019 Software Engineering v 2

    53/54

    Idea rela$ionada: "atrones deDiseo

    Es una solu$i%n a un ro&le#a general de diseo. (iene la for#a de un $on'unto de $lases 1ue

    inter;a$tan. -as $lases re1uieren ersonaliza$i%n al $aso

    ese$)$o *artes en &lan$o,

  • 7/21/2019 Software Engineering v 2

    54/54

    E'e#lo: "atr%n O&serador