Professional Documents
Culture Documents
CPIS UNAJMA
ALUMNA:
CPIS UNAJMA
Proceso de desarrollo de software Introduccin Un sistema informtico est compuesto por hard are ! soft are" En cuanto a# hard are$ su producci%n se rea#i&a sistemticamente ! #a 'ase de conocimiento para e# desarro##o de dicha acti(idad est c#aramente definida" La fia'i#idad de# hard are es$ en principio$ e)uipara'#e a #a de cua#)uier otra m)uina construida por e# hom're" Sin em'ar*o$ respecto de# soft are$ su construcci%n ! resu#tados han sido hist%ricamente cuestionados de'ido a #os pro'#emas asociados$ entre e##os podemos destacar #os si*uientes+ Los sistemas no responden a #as e,pectati(as de #os usuarios"
Los pro*ramas -fa##an. con cierta frecuencia" Los costes de# soft are son dif/ci#es de pre(er ! norma#mente superan #as estimaciones" La modificaci%n de# soft are es una tarea dif/ci# ! costosa" E# soft are se sue#e presentar fuera de# p#a&o esta'#ecido ! con menos prestaciones de #as consideradas inicia#mente" 0orma#mente$ es dif/ci# cam'iar de entorno hard are usando e# mismo soft are" E# apro(echamiento %ptimo de #os recursos 1personas$ tiempo$ dinero$ herramientas$ etc"2 no sue#e cump#irse"
Se*3n e# Centro E,perimenta# de 4n*enier/a de Soft are 1CE4S2$ e# estudio de mercado The Chaos Report rea#i&ado por Standish 5roup 4nternactiona# en 6778$ conc#u!% )ue s%#o un 689 de #os pro!ectos de soft are son e,itosos 1terminan dentro de p#a&os ! costos ! cump#en #os re)uerimientos acordados2" Otro :;9 so'repasa costos ! p#a&os ! cump#e parcia#mente #os re)uerimientos" E# resto ni si)uiera ##e*a a# t<rmino" A#*unas deficiencias comunes en e# desarro##o de soft are son+ Escasa o tard/a (a#idaci%n con e# c#iente"
4nadecuada *esti%n de #os re)uisitos" 0o e,iste medici%n de# proceso ni re*istro de datos hist%ricos" Estimaciones impre(istas de p#a&os ! costos" E,cesi(a e irraciona# presi%n en #os p#a&os" Escaso o deficiente contro# en e# pro*reso de# proceso de desarro##o" 0o se hace *esti%n de ries*os forma#mente"
2
CPIS UNAJMA
0o se rea#i&a un proceso forma# de prue'as" 0o se rea#i&an re(isiones t<cnicas forma#es e inspecciones de c%di*o"
E# primer reconocimiento p3'#ico de #a e,istencia de pro'#emas en #a producci%n de soft are tu(o #u*ar en #a conferencia or*ani&ada en 678= por #a Comisi%n de Ciencias de #a OTA0 en 5armisch 1A#emania2$ dicha situaci%n pro'#emtica se denomin% crisis de# soft are" En esta conferencia$ as/ como en #a si*uiente rea#i&ada en Roma en 6787$ se estipu#% e# inter<s hacia #os aspectos t<cnicos ! administrati(os en e# desarro##o ! mantenimiento de productos soft are" Se pretend/a acordar #as 'ases para una in*enier/a de construcci%n de soft are" Se*3n Frit& >auer #o )ue se necesita'a era -establecer y usar principios de ingeniera orientados a obtener software de manera econmica, que sea fiable y funcione eficientemente sobre mquinas reales." Esta definici%n marca'a posi'#es cuestiones ta#es como+ ?Cu#es son #os principios ro'ustos de #a in*enier/a ap#ica'#es a# desarro##o de soft are de computadora@ ?C%mo construimos e# soft are econ%micamente para )ue sea fia'#e@ ?Au< se necesita para crear pro*ramas de computadora )ue funcionen eficientemente no en una m)uina sino en diferentes m)uinas rea#es@" Sin em'ar*o$ dicho p#anteamiento adems de'/a inc#uir otros aspectos$ ta#es como+ meBora de #a ca#idad de# soft are$ satisfacci%n de# c#iente$ mediciones ! m<tricas$ etc" E# -IEEE Standard Glossary of Software Engineering Terminology . 1Stad" 86C"6DE677C2 ha desarro##ado una definici%n ms comp#eta para in*enier/a de# soft are + -162 La ap#icaci%n de un enfo)ue sistemtico$ discip#inado ! cuantifica'#e para e# desarro##o$ operaci%n ! mantenimiento de# soft areF es decir$ #a ap#icaci%n de in*enier/a a# soft are" 1D2 E# estudio de enfo)ues en 162." Pressman caracteri&a #a 4n*enier/a de Soft are como -una tecno#o*/a mu#ticapa.$ i#ustrada en #a Fi*ura 6"
Figura ! "apas de la Ingeniera de Software# Dichas capas se descri'en a continuaci%n+ Cua#)uier discip#ina de in*enier/a 1inc#uida #a in*enier/a de# soft are2 de'e descansar so're un esfuer&o de or*ani&aci%n de ca#idad" La *esti%n tota# de #a ca#idad ! #as fi#osof/as simi#ares fomentan una cu#tura continua de meBoras de procesos )ue conduce a# desarro##o de enfo)ues cada (e& ms ro'ustos para #a in*enier/a de# soft are"
E# fundamento de #a in*enier/a de soft are es #a capa proceso" E# proceso define un marco de tra'aBo para un conBunto de reas c#a(e$ #as cua#es forman #a 'ase de# contro# de *esti%n de pro!ectos de soft are ! esta'#ecen e# conte,to en e# cua#+ se ap#ican #os m<todos t<cnicos$ se producen resu#tados de tra'aBo$ se esta'#ecen hitos$ se ase*ura #a ca#idad !
3
CPIS UNAJMA
Los m<todos de #a in*enier/a de soft are indican c%mo construir t<cnicamente e# soft are" Los m<todos a'arcan una *ran *ama de tareas )ue inc#u!en an#isis de re)uisitos$ diseGo$ construcci%n de pro*ramas$ prue'as ! mantenimiento" Estos m<todos dependen de un conBunto de principios 'sicos )ue *o'iernan cada rea de #a tecno#o*/a e inc#u!en acti(idades de mode#ado ! otras t<cnicas descripti(as" Las herramientas de #a in*enier/a de# soft are proporcionan un soporte automtico o semiEautomtico para e# proceso ! #os m<todos$ a estas herramientas se #es ##ama herramientas CASE 1C omputer$%ided Software Engineering2"
Dado #o anterior$ e# o'Beti(o de #a in*enier/a de soft are es #o*rar productos de soft are de ca#idad 1tanto en su forma fina# como durante su e#a'oraci%n2$ mediante un proceso apo!ado por m<todos ! herramientas" A continuaci%n nos enfocaremos en e# proceso necesario para e#a'orar un producto de soft are" El proceso de desarrollo del software Un proceso de desarro##o de soft are tiene como prop%sito #a producci%n efica& ! eficiente de un producto soft are )ue re3na #os re)uisitos de# c#iente" Dicho proceso$ en t<rminos *#o'a#es se muestra en #a Fi*ura D " Este proceso es intensamente inte#ectua#$ afectado por #a creati(idad ! Buicio de #as personas in(o#ucradas" Aun)ue un pro!ecto de desarro##o de soft are es e)uipara'#e en muchos aspectos a cua#)uier otro pro!ecto de in*enier/a$ en e# desarro##o de soft are ha! una serie de desaf/os adiciona#es$ re#ati(os esencia#mente a #a natura#e&a de# producto o'tenido" A continuaci%n se e,p#ican a#*unas particu#aridades asociadas a# desarro##o de soft are ! )ue inf#u!en en su proceso de construcci%n" Un producto soft are en s/ es comp#eBo$ es prcticamente in(ia'#e conse*uir un 6CC9 de confia'i#idad de un pro*rama por pe)ueGo )ue sea" E,iste una inmensa com'inaci%n de factores )ue impiden una (erificaci%n e,hausti(a de #as todas posi'#es situaciones de eBecuci%n )ue se puedan presentar 1entradas$ (a#ores de (aria'#es$ datos a#macenados$ soft are de# sistema$ otras ap#icaciones )ue inter(ienen$ e# hard are so're e# cua# se eBecuta$ etc"2" Un producto soft are es intan*i'#e ! por #o *enera# mu! a'stracto$ esto dificu#ta #a definici%n de# producto ! sus re)uisitos$ so're todo cuando no se tiene precedentes en productos soft are simi#ares" Esto hace )ue #os re)uisitos sean dif/ci#es de conso#idar tempranamente" As/$ #os cam'ios en #os re)uisitos son ine(ita'#es$ no s%#o despu<s de entre*ado en producto sino tam'i<n durante e# proceso de desarro##o" Adems$ de #as dos anteriores$ siempre puede seGa#arse #a inmadure& de #a in*enier/a de# soft are como discip#ina$ Bustificada por su corta (ida comparada con otras discip#inas de #a in*enier/a" Sin em'ar*o$ esto no es ms )ue un in3ti# consue#o"
CPIS UNAJMA
Sistema nuevo o modificado
Figura &! proceso de desarrollo de software# E# proceso de desarro##o de soft are no es 3nico" 0o e,iste un proceso de soft are uni(ersa# )ue sea efecti(o para todos #os conte,tos de pro!ectos de desarro##o" De'ido a esta di(ersidad$ es dif/ci# automati&ar todo un proceso de desarro##o de soft are" A pesar de #a (ariedad de propuestas de proceso de soft are$ e,iste un conBunto de acti(idades fundamenta#es )ue se encuentran presentes en todos e##os+ 6" Especificaci%n de soft are+ Se de'e definir #a funciona#idad ! restricciones operaciona#es )ue de'e cump#ir e# soft are" D" DiseGo e 4mp#ementaci%n+ Se diseGa ! constru!e e# soft are de acuerdo a #a especificaci%n" ;" Ha#idaci%n+ E# soft are de'e (a#idarse$ para ase*urar )ue cump#a con #o )ue )uiere e# c#iente" I" E(o#uci%n+ E# soft are de'e e(o#ucionar$ para adaptarse a #as necesidades de# c#iente" Adems de estas acti(idades fundamenta#es$ Pressman menciona un conBunto de -acti(idades protectoras.$ )ue se ap#ican a #o #ar*o de todo e# proceso de# soft are" E##as se seGa#an a continuaci%n+ Se*uimiento ! contro# de pro!ecto de soft are"
Re(isiones t<cnicas forma#es" 5arant/a de ca#idad de# soft are" 5esti%n de confi*uraci%n de# soft are" Preparaci%n ! producci%n de documentos" 5esti%n de reuti#i&aci%n" Mediciones" 5esti%n de ries*os"
Pressman caracteri&a un proceso de desarro##o de soft are como se muestra en #a Fi*ura ;" Los e#ementos in(o#ucrados se descri'en a continuaci%n+ Un marco com3n de# proceso$ definiendo un pe)ueGo n3mero de acti(idades de# marco de tra'aBo )ue son ap#ica'#es a todos #os pro!ectos de soft are$ con independencia de# tamaGo o comp#eBidad"
Un conBunto de tareas$ cada uno es una co#ecci%n de tareas de in*enier/a de# soft are$ hitos de pro!ectos$ entre*as ! productos de tra'aBo de# soft are$ ! puntos de *arant/a de ca#idad$ )ue permiten )ue #as acti(idades de# marco de tra'aBo se adapten a #as caracter/sticas de# pro!ecto de soft are ! #os re)uisitos de# e)uipo de# pro!ecto"
5
CPIS UNAJMA
Las acti(idades de protecci%n$ ta#es como *arant/a de ca#idad de# soft are$ *esti%n de confi*uraci%n de# soft are ! medici%n$ a'arcan e# mode#o de# proceso" Las acti(idades de protecci%n son independientes de cua#)uier acti(idad de# marco de tra'aBo ! aparecen durante todo e# proceso"
Otra perspecti(a uti#i&ada para determinar #os e#ementos de# proceso de desarro##o de soft are es esta'#ecer #as re#aciones entre e#ementos )ue permitan responder Aui<n de'e hacer Au<$ Cundo ! C%mo de'e hacer#o"
Figura (! )elacin entre elementos del proceso del software En #a Fi*ura I se muestran #os e#ementos de un proceso de desarro##o de soft are ! sus re#aciones" As/ #as interro*antes se responden de #a si*uiente forma+ Quin: Las Personas participantes en e# pro!ecto de desarro##o desempeGando uno o ms Ro#es espec/ficos"
Qu: Un Artefacto es producido por un Ro# en una de sus Acti(idades" Los Artefactos se especifican uti#i&ando 0otaciones espec/ficas" Las
6
CPIS UNAJMA
Cmo y Cundo: Las Acti(idades son una serie de pasos )ue ##e(a a ca'o un Ro# durante e# proceso de desarro##o" E# a(ance de# pro!ecto est contro#ado mediante hitos )ue esta'#ecen un determinado estado de terminaci%n de ciertos Artefactos"La composici%n ! sincron/a de #as acti(idades est 'asada en un conBunto de Principios ! Prcticas" Las Prcticas ! Principios enfati&an ciertas acti(idades !Ko #a forma como de'en rea#i&arse$ por eBemp#o+ desarro##ar iterati(amente$ *estionar re)uisitos$ desarro##o 'asado en componentes$ mode#ar (isua#mente$ (erificar continuamente #a ca#idad$ *estionar #os cam'ios$ etc"
Modelos de proceso software 1.-Modelo en cascada E# ms conocido$ est 'asado en e# cic#o con(enciona# de una in*enier/a$ e# paradi*ma de# cic#o de (ida a'arca #as si*uientes acti(idades+
4n*enier/a ! An#isis de# Sistema An#isis de #os Re)uisitos DiseGo Codificaci%n Prue'a Mantenimiento
Figura *! Grafico de representacin del modelo en cascada In enier!a y "nlisis del #istema: De'ido a )ue e# soft are es siempre parte de un sistema ma!or e# tra'aBo comien&a esta'#eciendo #os re)uisitos de todos #os e#ementos de# sistema ! #ue*o asi*nando a#*3n su'conBunto de estos re)uisitos a# soft are" "nlisis de los re$uisitos del software: E# proceso de recopi#aci%n de #os re)uisitos se centra e intensifica especia#mente en e# soft are" E# in*eniero de soft are 1Ana#istas2 de'e comprender e# m'ito de #a informaci%n de# soft are$ as/ como #a funci%n$ e# rendimiento ! #as interfaces re)ueridas"
CPIS UNAJMA
%ise&o: E# diseGo de# soft are se enfoca en cuatro atri'utos distintos de# pro*rama+ #a estructura de #os datos$ #a ar)uitectura de# soft are$ e# deta##e procedimenta# ! #a caracteri&aci%n de #a interfa&" E# proceso de diseGo traduce #os re)uisitos en una representaci%n de# soft are con #a ca#idad re)uerida antes de )ue comience #a codificaci%n"
Codificacin: E# diseGo de'e traducirse en una forma #e*i'#e para #a ma)uina" E# paso de codificaci%n rea#i&a esta tarea" Si e# diseGo se rea#i&a de una manera deta##ada #a codificaci%n puede rea#i&arse mecnicamente" Prue'a: Una (e& )ue se ha *enerado e# c%di*o comien&a #a prue'a de# pro*rama" La prue'a se centra en #a #%*ica interna de# soft are$ ! en #as funciones e,ternas$ rea#i&ando prue'as )ue ase*uren )ue #a entrada definida produce #os resu#tados )ue rea#mente se re)uieren" Mantenimiento: E# soft are sufrir cam'ios despu<s de )ue se entre*a a# c#iente" Los cam'ios ocurrirn de'ido a )ue ha!an encontrado errores$ a )ue e# soft are de'a adaptarse a cam'ios de# entorno e,terno 1sistema operati(o o dispositi(os perif<ricos2$ o de'ido a )ue e# c#iente re)uiera amp#iaciones funciona#es o de# rendimiento" %es(enta)as: Los pro!ectos rea#es raramente si*uen e# f#uBo secuencia# )ue propone e# mode#o$ siempre ha! iteraciones ! se crean pro'#emas en #a ap#icaci%n de# paradi*ma" 0orma#mente$ es dif/ci# para e# c#iente esta'#ecer e,p#/citamente a# principio todos #os re)uisitos" E# cic#o de (ida c#sico #o re)uiere ! tiene dificu#tades en acomodar posi'#es incertidum'res )ue pueden e,istir a# comien&o de muchos productos" E# c#iente de'e tener paciencia" Jasta ##e*ar a #as etapas fina#es de# pro!ecto$ no estar disponi'#e una (ersi%n operati(a de# pro*rama" Un error importante no detectado hasta )ue e# pro*rama este funcionando puede ser desastroso" La (entaBa de este m<todo radica en su senci##e& !a )ue si*ue #os pasos intuiti(os necesarios a #a hora de desarro##ar e# soft are" *.-Modelo e(oluti(o La idea detrs de este mode#o es e# desarro##o de una imp#antaci%n de# sistema inicia#$ e,poner#a a #os comentarios de# usuario$ refinar#a en 0 (ersiones hasta )ue se desarro##e e# sistema adecuado" En #a Fi*ura 8 se o'ser(a c%mo #as acti(idades concurrentes+ especificaci%n$ desarro##o ! (a#idaci%n$ se rea#i&an durante e# desarro##o de #as (ersiones hasta ##e*ar a# producto fina#"
CPIS UNAJMA
Una (entaBa de este mode#o es )ue se o'tiene una rpida rea#imentaci%n de# usuario$ !a )ue #as acti(idades de especificaci%n$ desarro##o ! prue'as se eBecutan en cada iteraci%n"
Figura *! +odelo de desarrollo e,oluti,o# E,isten dos tipos de desarro##o e(o#uti(o+ %esarrollo E+ploratorio: E# o'Beti(o de este enfo)ue es e,p#orar con e# usuario #os re)uisitos hasta ##e*ar a un sistema fina#" E# desarro##o comien&a con #as partes )ue se tiene ms c#aras" E# sistema e(o#uciona conforme se aGaden nue(as caracter/sticas propuestas por e# usuario"
Enfo$ue utili,ando prototipos: E# o'Beti(o es entender #os re)uisitos de# usuario ! tra'aBar para meBorar #a ca#idad de #os re)uisitos" A diferencia de# desarro##o e,p#oratorio$ se comien&a por definir #os re)uisitos )ue no estn c#aros para e# usuario ! se uti#i&a un prototipo para e,perimentar con e##os" E# prototipo a!uda a terminar de definir estos re)uisitos"
Entre #os puntos fa(ora'#es de este mode#o estn+ La especificaci%n puede desarro##arse de forma creciente"
Los usuarios ! desarro##adores #o*ran un meBor entendimiento de# sistema" Esto se ref#eBa en una meBora de #a ca#idad de# soft are" Es ms efecti(o )ue e# mode#o de cascada$ !a )ue cump#e con #as necesidades inmediatas de# c#iente"
Desde una perspecti(a de in*enier/a ! administraci%n se identifican #os si*uientes pro'#emas+ Proceso no Hisi'#e+ Los administradores necesitan entre*as para medir e# pro*reso" Si e# sistema se necesita desarro##ar rpido$ no es efecti(o producir documentos )ue ref#eBen cada (ersi%n de# sistema"
Sistemas po'remente estructurados+ Los cam'ios continuos pueden ser perBudicia#es para #a estructura de# soft are haciendo costoso e# mantenimiento" Se re)uieren t<cnicas ! herramientas+ Para e# rpido desarro##o se necesitan herramientas )ue pueden ser incompati'#es con otras o )ue poca *ente sa'e uti#i&ar"
9
CPIS UNAJMA
Este mode#o es efecti(o en pro!ectos pe)ueGos 1menos de 6CC"CCC #/neas de c%di*o2 o medianos 1hasta :CC"CCC #/neas de c%di*o2 con poco tiempo para su desarro##o ! sin *enerar documentaci%n para cada (ersi%n" Para pro!ectos #ar*os es meBor com'inar #o meBor de# mode#o de cascada ! e(o#uti(o+ se puede hacer un prototipo *#o'a# de# sistema ! posteriormente reimp#ementar#o con un acercamiento ms estructurado" Los su'sistemas con re)uisitos 'ien definidos ! esta'#es se pueden pro*ramar uti#i&ando cascada ! #a interfa& de usuario se puede especificar uti#i&ando un enfo)ue e,p#oratorio" -.-Modelo incremental E# enfo)ue incrementa# de desarro##o se (e como una forma de reducir #a repetici%n de# tra'aBo en e# proceso de desarro##o ! dar oportunidad de retrasar #a toma de decisiones en #os re)uisitos hasta ad)uirir e,periencia con e# sistema 1(er Fi*ura 6C2" Es una com'inaci%n de# Mode#o de Cascada ! Mode#o E(o#uti(o" Reduce e# rehacer tra'aBo durante e# proceso de desarro##o ! da oportunidad para retrasar #as decisiones hasta tener e,periencia en e# sistema" Durante e# desarro##o de cada incremento se puede uti#i&ar e# mode#o de cascada o e(o#uti(o$ dependiendo de# conocimiento )ue se ten*a so're #os re)uisitos a imp#ementar" Si se tiene un 'uen conocimiento$ se puede optar por cascada$ si es dudoso$ e(o#uti(o"
Figura -! +odelo de desarrollo iterati,o incremental# Entre #as (entaBas de# mode#o incrementa# se encuentran+ Los c#ientes no esperan hasta e# fin de# desarro##o para uti#i&ar e# sistema" Pueden empe&ar a usar#o desde e# primer incremento"
Los c#ientes pueden ac#arar #os re)uisitos )ue no ten*an c#aros conforme (en #as entre*as de# sistema" Se disminu!e e# ries*o de fracaso de todo e# pro!ecto$ !a )ue se puede distri'uir en cada incremento" Las partes ms importantes de# sistema son entre*adas primero$ por #o cua# se rea#i&an ms prue'as en estos m%du#os ! se disminu!e e# ries*o de fa##os"
A#*unas de #as des(entaBas identificadas para este mode#o son+ Cada incremento de'e ser pe)ueGo para #imitar e# ries*o 1menos de DC"CCC #/neas2"
CPIS UNAJMA
#os re)uisitos contra #os
..-Modelo en espiral E# mode#o espira# para #a in*enier/a de soft are ha sido desarro##ado para cu'rir #as meBores caracter/sticas tanto de# cic#o de (ida c#sico$ como de #a creaci%n de prototipos$ aGadiendo a# mismo tiempo un nue(o e#emento+ e# an#isis de ries*o" E# mode#o representado mediante #a espira# de #a fi*ura D"I$ define cuatro acti(idades principa#es+ 6" Planificacin: determinaci%n de o'Beti(os$ a#ternati(as ! restricciones" D" "nlisis de ries o+ an#isis de a#ternati(as e identificaci%nKreso#uci%n de ries*os" ;" In enier!a+ desarro##o de# producto de# Lsi*uiente ni(e#L$ I" E(aluacin del cliente+ Ha#ori&aci%n de #os resu#tados de #a in*enier/a"
Figura .! +odelo Espiral Durante #a primera (ue#ta a#rededor de #a espira# se definen #os o'Beti(os$ #as a#ternati(as ! #as restricciones$ ! se ana#i&an e identifican #os ries*os" Si e# an#isis de ries*o indica )ue ha! una incertidum're en #os re)uisitos$ se puede usar #a creaci%n de prototipos en e# cuadrante de in*enier/a para dar asistencia tanto a# encar*ado de desarro##o como a# c#iente"
11
CPIS UNAJMA
E# c#iente e(a#3a e# tra'aBo de in*enier/a 1cuadrante de e(a#uaci%n de c#iente2 ! su*iere modificaciones" So're #a 'ase de #os comentarios de# c#iente se produce #a si*uiente fase de p#anificaci%n ! de an#isis de ries*o" En cada 'uc#e a#rededor de #a espira#$ #a cu#minaci%n de# an#isis de ries*o resu#ta en una decisi%n de Lse*uir o no se*uirL" Con cada iteraci%n a#rededor de #a espira# 1comen&ando en e# centro ! si*uiendo hacia e# e,terior2$ se constru!en sucesi(as (ersiones de# soft are$ cada (e& ms comp#eta !$ a# fina#$ a# propio sistema operaciona#" E# paradi*ma de# mode#o en espira# para #a in*enier/a de soft are es actua#mente e# enfo)ue ms rea#ista para e# desarro##o de soft are ! de sistemas a *ran esca#a" Uti#i&a un enfo)ue e(o#uti(o para #a in*enier/a de soft are$ permitiendo a# desarro##ador ! a# c#iente entender ! reaccionar a #os ries*os en cada ni(e# e(o#uti(o" Uti#i&a #a creaci%n de prototipos como un mecanismo de reducci%n de ries*o$ pero$ #o )ue es ms importante permite a )uien #o desarro##a ap#icar e# enfo)ue de creaci%n de prototipos en cua#)uier etapa de #a e(o#uci%n de prototipos" E/012CI03 5P4E##M"3 *66*7 %E1 M0%E10 E#PI4"1
12
CPIS UNAJMA
Cada pro!ecto de soft are re)uiere de una forma de particu#ar de a'ordar e# pro'#ema" Las propuestas comercia#es ! acad<micas actua#es promue(en procesos iterati(os$ donde en cada iteraci%n puede uti#i&arse uno u otro mode#o de proceso$ considerando un conBunto de criterios 1Por eBemp#o+ *rado de definici%n de re)uisitos$ tamaGo de# pro!ecto$ ries*os identificados$ entre otros2" En #a Ta'#a 6 se e,pone un cuadro comparati(o de acuerdo con a#*unos criterios 'sicos para #a se#ecci%n de un mode#o de proceso$ #a medida uti#i&ada indica e# ni(e# de efecti(idad de# mode#o de proceso de acuerdo a# criterio 1Por eBemp#o+ E# mode#o Cascada responde con un ni(e# de efecti(idad >aBo cuando #os Re)uisitos ! ar)uitectura no estn predefinidos2+
13
CPIS UNAJMA
Mode#o proceso
5esti%n ries*os
Hisi%n de# Permite pro*reso de correcciones por e# so're #a C#iente ! marcha e# Mefe de# pro!ecto
Cascada
>aBo
A#to
>aBo
>aBo
>aBo
E(o#uti(o e,p#oratorio
Medio
Medio o A#to
Medio A#to
E(o#uti(o prototipado
A#to
Medio
Medio
A#to
A#to
4ncrementa#
>aBo
A#to
Medio
>aBo
>aBo
Espira#
A#to
A#to
A#to
Medio
Medio
14
CPIS UNAJMA
Un proceso de soft are deta##ado ! comp#eto sue#e denominarse -Metodo#o*/a." Las metodo#o*/as se 'asan en una com'inaci%n de #os mode#os de proceso *en<ricos 1cascada$ e(o#uti(o$ incrementa#$ etc"2" Adiciona#mente una metodo#o*/a de'er/a definir con precisi%n #os artefactos$ ro#es ! acti(idades in(o#ucrados$ Bunto con prcticas ! t<cnicas recomendadas$ *u/as de adaptaci%n de #a metodo#o*/a a# pro!ecto$ *u/as para uso de herramientas de apo!o$ etc" Ja'itua#mente se uti#i&a e# t<rmino -m<todo. para referirse a t<cnicas$ notaciones ! *u/as asociadas$ )ue son ap#ica'#es a una 1o a#*unas2 acti(idades de# proceso de desarro##o$ por eBemp#o$ sue#e ha'#arse de m<todos de an#isis !Ko diseGo" La comparaci%n !Ko c#asificaci%n de metodo#o*/as no es una tarea senci##a de'ido a #a di(ersidad de propuestas ! diferencias en e# *rado de deta##e$ informaci%n disponi'#e ! a#cance de cada una de e##as" A *randes ras*os$ si tomamos como criterio #as notaciones uti#i&adas para especificar artefactos producidos en acti(idades de an#isis ! diseGo$ podemos c#asificar #as metodo#o*/as en dos *rupos+ Metodo#o*/as Estructuradas ! Metodo#o*/as Orientadas a O'Betos" Por otra parte$ considerando su fi#osof/a de desarro##o$ a)ue##as metodo#o*/as con ma!or <nfasis en #a p#anificaci%n ! contro# de# pro!ecto$ en especificaci%n precisa de re)uisitos ! mode#ado$ reci'en e# ape#ati(o de Metodo#o*/as Tradiciona#es 1o pe!orati(amente denominada Metodo#o*/as Pesadas$ o Peso Pesado2" Otras metodo#o*/as$ denominadas Metodo#o*/as N*i#es$ estn ms orientadas a #a *eneraci%n de c%di*o con cic#os mu! cortos de desarro##o$ se diri*en a e)uipos de desarro##o pe)ueGos$ hacen especia# hincapi< en aspectos humanos asociados a# tra'aBo en e)uipo e in(o#ucran acti(amente a# c#iente en e# proceso" ME:0%010;<" =P >Pro ramacin E+trema? De todas #as metodo#o*/as *i#es$ <sta es #a )ue ha reci'ido ms atenci%n" Esto se de'e en parte a #a nota'#e ha'i#idad de #os #/deres OP$ en particu#ar Pent >ecQ$ para ##amar #a atenci%n" Tam'i<n se de'e a #a ha'i#idad de Pent >ecQ de atraer a #as personas a este acercamiento$ ! tomar un pape# principa# en <#" De a#*unas maneras$ sin em'ar*o$ #a popu#aridad de OP se ha (ue#to un pro'#ema$ pues ha acaparado #a atenci%n fuera de #as otras metodo#o*/as ! sus (a#iosas ideas" La OP empie&a con cuatro (a#ores+ Comunicaci%n$ Retroa#imentaci%n$ Simp#icidad ! CoraBe" Constru!e so're e##os una docena de prcticas )ue #os pro!ectos OP de'en se*uir" Muchas de estas prcticas son t<cnicas anti*uas$ tratadas ! pro'adas$ aun)ue a menudo o#(idadas por muchos$ inc#u!endo #a ma!or/a de #os procesos p#aneados" Adems de resucitar estas t<cnicas$ #a OP #as teBe en un todo sin<r*ico d%nde cada una refuer&a a #as dems"
15
CPIS UNAJMA
Una de #as ms ##amati(as$ as/ como inicia#mente atracti(a para m/$ es su fuerte <nfasis en #as prue'as" Mientras todos #os procesos mencionan #a compro'aci%n$ #a ma!or/a #o hace con mu! poco <nfasis" Sin em'ar*o #a OP pone #a compro'aci%n como e# fundamento de# desarro##o$ con cada pro*ramador escri'iendo prue'as cuando escri'en su c%di*o de producci%n" Las prue'as se inte*ran en e# proceso de inte*raci%n continua ! construcci%n #o )ue rinde una p#ataforma a#tamente esta'#e para e# desarro##o futuro" En esta p#ataforma OP constru!e un proceso de diseGo e(o#uti(o )ue se 'asa en refactorar un sistema simp#e en cada iteraci%n" Todo e# diseGo se centra en #a iteraci%n actua# ! no se hace nada anticipadamente para necesidades futuras" E# resu#tado es un proceso de diseGo discip#inado$ #o )ue es ms$ com'ina #a discip#ina con #a adapta'i#idad de una manera )ue indiscuti'#emente #a hace #a ms desarro##ada entre todas #as metodo#o*/as adapta'#es" ME:0%010;<" #C42M $ue es scrum
Scrum es una metodo#o*/a *i# ! f#e,i'#e para *estionar e# desarro##o de soft are$ cu!o principa# o'Beti(o es ma,imi&ar e# retorno de #a in(ersi%n para su empresa 1RO42" Se 'asa en construir primero #a funciona#idad de ma!or (a#or para e# c#iente ! en #os principios de inspecci%n continua$ adaptaci%n$ autoE *esti%n e inno(aci%n"
8Cundo
se
utili,a9
Con Scrum e# c#iente se entusiasma ! se compromete con e# pro!ecto dado )ue #o (e crecer iteraci%n a iteraci%n" Asimismo #e permite en cua#)uier momento rea#inear e# soft are con #os o'Beti(os de ne*ocio de su empresa$ !a )ue puede
16
CPIS UNAJMA
introducir cam'ios funciona#es o de prioridad en e# inicio de cada nue(a iteraci%n" Esta met%dica de tra'aBo promue(e #a inno(aci%n$ moti(aci%n ! compromiso de# e)uipo )ue forma parte de# pro!ecto$ por #o )ue #os profesiona#es encuentran un m'ito propicio para desarro##ar sus capacidades"
@eneficios Cumplimento de e+pectati(as: E# c#iente esta'#ece sus e,pectati(as indicando e# (a#or )ue #e aporta cada re)uisito K Aistoria de# pro!ecto$ e# e)uipo #os estima ! con esta informaci%n e# Product 0wner esta'#ece su prioridad" De manera re*u#ar$ en #as demos de Sprint e# Product 0wner comprue'a )ue efecti(amente #os re)uisitos se han cump#ido ! transmite se feed'acQ a# e)uipo" Ble+i'ilidad a cam'ios: A#ta capacidad de reacci%n ante #os cam'ios de re)uerimientos *enerados por necesidades de# c#iente o e(o#uciones de# mercado" La metodo#o*/a est diseGada para adaptarse a #os cam'ios de re)uerimientos )ue con##e(an #os pro!ectos comp#eBos" 4educcin del :ime to MarCet: E# c#iente puede empe&ar a uti#i&ar #as funciona#idades ms importantes de# pro!ecto antes de )ue est< fina#i&ado por comp#eto" Mayor calidad del software: La met%dica de tra'aBo ! #a necesidad de o'tener una (ersi%n funciona# despu<s de cada iteraci%n$ a!uda a #a o'tenci%n de un soft are de ca#idad superior" Mayor producti(idad: Se consi*ue entre otras ra&ones$ *racias a #a e#iminaci%n de #a 'urocracia ! a #a moti(aci%n de# e)uipo )ue proporciona e# hecho de )ue sean aut%nomos para or*ani&arse" Ma+imi,a el retorno de la in(ersin >40I?: Producci%n de soft are 3nicamente con #as prestaciones )ue aportan ma!or (a#or de ne*ocio *racias a #a priori&aci%n por retorno de in(ersi%n" Predicciones de tiempos: Mediante esta metodo#o*/a se conoce #a (e#ocidad media de# e)uipo por sprint 1#os ##amados puntos historia2$ con #o )ue consecuentemente$ es posi'#e estimar fci#mente para cuando se dispondr de una determinada funciona#idad )ue toda(/a est en e# >acQ#o*" 4educcin de ries os: E# hecho de ##e(ar a ca'o #as funciona#idades de ms (a#or en primer #u*ar ! de conocer #a (e#ocidad con )ue e# e)uipo
17
CPIS UNAJMA
a(an&a en e# pro!ecto$ permite despeBar ries*os efica&mente de manera anticipada" ME:0%010;<" 42P
E# Proceso Unificado fue desarro##ado por Phi#ippe Pruchten$ 4(ar Maco'son ! otros de #a Rationa# como e# proceso comp#ementario a# UML" E# RUP es un arma&%n de proceso ! como ta# puede acomodar una *ran (ariedad de procesos" De hecho <sta es mi cr/tica principa# a# RUP E como puede ser cua#)uier cosa aca'a siendo nada" Ro prefiero un proceso )ue dice )u< hacer en #u*ar de dar opciones infinitas" Como resu#tado de esta menta#idad de arma&%n de procesos$ e# RUP puede usarse en un esti#o mu! tradiciona# de cascada o de una manera *i#" Como resu#tado usted puede usar e# RUP como un proceso *i#$ o como un proceso pesado E todo depende de c%mo #o adapte a su am'iente" Crai* Larman es un fuerte defensor de usar e# RUP de una manera *i#" Su e,ce#ente #i'ro introductorio so're desarro##o OO contiene un proceso )ue est mu! 'asado en su pensamiento #i*ero de# RUP" Su (isi%n es )ue mucho de# reciente empuB%n hacia #os m<todos *i#es no es nada ms )ue aceptar desarro##o OO de #a corriente principa# )ue ha sido capturada como RUP" Una de #as cosas )ue hace Crai* es pasarse #os primeros dos o tres d/as de una iteraci%n mensua# con todo e# e)uipo usando e# UML para perfi#ar e# diseGo de# tra'aBo a hacerse durante #a iteraci%n" Esto no es un cianotipo de# )ue no se pueda des(iarse$ sino un 'oceto )ue da una perspecti(a so're c%mo pueden hacerse #as cosas en #a iteraci%n"
18
CPIS UNAJMA
Otra tachue#a en e# RUP *i# es e# proceso dO de Ro'ert Martin" E# proceso d, es una (ersi%n tota#mente d%ci# de# RUP )ue simp#emente es id<ntico a #a OP 1(o#tear dO a# re(<s para (er #a 'roma2" E# dO est diseGado para *ente )ue tiene )ue usar e# RUP pero )uiere usar OP" Como ta# es a #a (e& OP ! RUP ! por tanto un 'uen eBemp#o de# uso *i# de# RUP" E# proceso de cic#o de (ida de RUP se di(ide en cuatro fases 'ien conocidas ##amadas 4ncepci%n$ E#a'oraci%n$ Construcci%n ! Transici%n" Esas fases se di(iden en iteraciones$ cada una de #as cua#es produce una pie&a de soft are demostra'#e" La duraci%n de cada iteraci%n puede e,tenderse desde dos semanas hasta seis meses" Las fases son+ 6" Incepcin.- Si*nifica -comien&o.$ pero #a pa#a'ra ori*ina# 1de ori*en #atino ! casi en desuso como sustanti(o2 es su*esti(a ! por e##o #a traducimos as/" Se especifican #os o'Beti(os de# cic#o de (ida de# pro!ecto ! #as necesidades de cada participante" Esto entraGa esta'#ecer e# a#cance ! #as condiciones de #/mite ! #os criterios de acepta'i#idad" Se identifican #os casos de uso )ue orientarn #a funciona#idad" Se diseGan #as ar)uitecturas candidatas ! se estima #a a*enda ! e# presupuesto de todo e# pro!ecto$ en particu#ar para #a si*uiente fase de e#a'oraci%n" T/picamente es una fase 're(e )ue puede durar unos pocos d/as o unas pocas semanas" D" Ela'oracin.- Se ana#i&a e# dominio de# pro'#ema ! se define e# p#an de# pro!ecto" RUP presupone )ue #a fase de e#a'oraci%n 'rinda una ar)uitectura suficientemente s%#ida Bunto con re)uerimientos ! p#anes 'astante esta'#es" Se descri'en en deta##e #a infraestructura ! e# am'iente de desarro##o$ as/ como e# soporte de herramientas de automati&aci%n" A# ca'o de esta fase$ de'e estar identificada #a ma!or/a de #os casos de uso ! #os actores$ de'e )uedar descripta #a ar)uitectura de soft are ! se de'e crear un prototipo de e##a" A# fina# de #a fase se rea#i&a un an#isis para determinar #os ries*os ! se e(a#3an #os *astos hechos contra #os ori*ina#mente p#aneados" ;" Construccin.- Se desarro##an$ inte*ran ! (erifican todos #os componentes ! ras*os de #a ap#icaci%n" RUP considera )ue esta fase es un proceso de manufactura$ en e# )ue se de'e poner <nfasis en #a administraci%n de #os recursos ! e# contro# de costos$ a*enda ! ca#idad" Los resu#tados de esta fase 1#as (ersiones a#fa$ 'eta ! otras (ersiones de prue'a2 se crean tan rpido como sea posi'#e" Se de'e compi#ar tam'i<n una (ersi%n de entre*a" Es #a fase ms pro#on*ada de todas"
19
CPIS UNAJMA
I" :ransicin.- Comien&a cuando e# producto est suficientemente maduro para ser entre*ado" Se corri*en #os 3#timos errores ! se a*re*an #os ras*os pospuestos" La fase consiste en prue'a 'eta$ pi#oto$ entrenamiento a usuarios ! despacho de# producto a mercadeo$ distri'uci%n ! (entas" Se produce tam'i<n #a documentaci%n" Se ##ama transici%n por)ue se transfiere a #as manos de# usuario$ pasando de# entorno de desarro##o a# de producci%n" A tra(<s de #as fases se desarro##an en para#e#o nue(e f#uBos de tra'aBo o discip#inas+ Mode#ado de 0e*ocios$ Re)uerimientos$ An#isis ! DiseGo$ 4mp#ementaci%n$ Prue'a$ 5esti%n de Confi*uraci%n ! Cam'io$ 5esti%n de# Pro!ecto ! Entorno" Adems de estos f#uBos de tra'aBo$ RUP define a#*unas prcticas comunes+ %esarrollo iterati(o de software. Las iteraciones de'en ser 're(es ! proceder por incrementos pe)ueGos" Esto permite identificar ries*os ! pro'#emas tempranamente ! reaccionar frente a e##os en consecuencia" "dministracin de re$uerimientos. 4dentifica re)uerimientos cam'iantes ! postu#a una estrate*ia discip#inada para administrar#os" 2so de ar$uitecturas 'asadas en componentes. La reuti#i&aci%n de componentes permite asimismo ahorros sustancia#es en tiempo$ recursos ! esfuer&o" Modelado (isual del software. Se de'en construir mode#os (isua#es$ por)ue #os sistemas comp#eBos no podr/an comprenderse de otra manera" Uti#i&ando una herramienta como UML$ #a ar)uitectura ! e# diseGo se pueden especificar sin am'i*Sedad ! comunicar a todas #as partes in(o#ucradas" Prue'a de calidad del software. RUP pone 'astante <nfasis en #a ca#idad de# producto entre*ado" Control de cam'ios y tra,a'ilidad. La madure& de# soft are se puede medir por #a frecuencia ! tipos de cam'ios rea#i&ados"
Aun)ue RUP es e,tremadamente #ocua& en muchos respectos$ no proporciona #ineamientos c#aros de imp#ementaci%n )ue puedan compararse$ por eBemp#o$ a #os m<todos Cr!sta#$ en #os )ue se deta##a #a documentaci%n re)uerida ! #os
20
CPIS UNAJMA
ro#es se*3n di(ersas esca#as de pro!ecto" En RUP esas importantes decisiones de deBan a criterio de# usuario" Se ase*ura )ue RUP puede imp#ementarse -sacndo#o de #a caBa.$ pero dado )ue e# n3mero de sus artefactos ! herramientas es inmenso$ siempre se dice )ue ha! )ue recortar#o ! adaptar#o a cada caso" E# proceso de imp#ementaci%n mismo es comp#eBo$ di(idi<ndose en seis fases c/c#icas tam'i<n e,iste una (ersi%n recortada de RUP$ dO de Ro'ert Martin4H"
@I@1I0;4"BI"
21