Anda di halaman 1dari 9

JORGEMARTEL

DESARROLLOSOFTWARE01

Software MetodologadeDesarrollode Software


JorgeMartelTorres Trminoinformticoacuadoen1968,enla primeraconferenciaorganizadaporlaOTAN i f i i d l OTAN sobredesarrollodesoftware,delacualnaci formalmentelaramadelaingenierade software. EltrminoseadjudicaaF.L.Bauer, j , previamenteutilizadoporEdsger Hijastraen suobraThe Humble Programmer.
JORGEMARTEL 2

Crisisdelsoftware
La crisis del software se refiere a la dificultad en escribir programas
libres de defectos, fcilmente comprensibles, y que sean verificables.

Crisisdelsoftware
Englobaunaseriedesucesos quesevenanobservandoenlosproyectos dedesarrollodesoftware:
Losproyectosnoterminabanenplazo. Losproyectonoseajustabanalpresupuestoinicial. Bajacalidaddelsoftware generado. Softwarequenocumplalasespecificaciones. Cdigodifcilmentemantenible quedificultabalagestin yevolucindelproyecto.

La crisis del software se fundament en el tiempo de creacin de software, ya que en la creacin del mismo
no se obtenan los resultados deseados, adems de un gran costo y poca flexibilidad.

Las causas son son,


la complejidad que supone la tarea de programar, y los cambios a los que se tiene que ver sometido un programa para ser continuamente adaptado a las necesidades de los usuarios.

Aunquesehanpropuestodiversasmetodologasparaintentarsubsanar losproblemasmencionados,lociertoesquetodavahoynoexisteningn mtodoquehayapermitidoestimardemanerafiableelcosteyduracin mtodo que haya permitido estimar de manera fiable el coste y duracin deunproyectoantesdesucomienzos.

JORGEMARTEL

JORGEMARTEL

JORGEMARTEL

JORGEMARTEL

DESARROLLOSOFTWARE01

Procesos,Mtodos,Herramientas
Mtodos
Los mtodos de la ingeniera del software indican Cmo" construir tcnicamente el software. Los mtodos abarca un amplio espectro de tareas que incluyen:
planificacin y estimacin de proyectos, anlisis de los requisitos del sistema y del software, diseo de estructuras de datos, arquitecturas de programas y procedimientos algortmicos, prueba y mantenimiento.

Procesos,Mtodos,Herramientas
Las herramientas
Las herramientas de la ingeniera del software suministran un soporte automtico o semiautomtico para los mtodos mtodos. Hoy existen herramientas para soportar cada uno de los mtodos mencionados. Cuando se integran las herramientas de forma que la informacin creada por una herramienta pueda ser usada por otra, se establece un sistema para el soporte de desarrollo del software, llamado ingeniera del software asistida por computadora (en ingls, CASE). CASE combina software, hardware y bases de datos sobre la ingeniera del software (una estructura de datos que contenga la g ( q g informacin relevante sobre el anlisis , diseo, codificacin y prueba) para crear un entorno de ingeniera del software anlogo al diseo/ingeniera asistido por computadora, CAD/CAE para el hardware.

Los mtodos de la ingeniera de software introducen frecuentemente una notacin especial orientada a un lenguaje o grfica y un conjunto de criterios para la calidad del software. software

JORGEMARTEL

JORGEMARTEL

Procesos,Mtodos,Herramientas
Los procesos
Los procesos de la ingeniera del software son
el pegamento que junta los mtodos y las herramientas y facilita un desarrollo racional y oportuno del software de computadora.

Paradigmas
La ingeniera del software est compuesta por una serie de pasos que abarcan
los mtodos, las herramientas y los procedimiento antes mencionados.

Los procesos
definen la secuencia en la que se aplican los mtodos, las entregas (documentos, informes, formas, etc) que se requieren, requieren los controles que ayudan a asegurar la calidad y coordinar los cambios y las directrices que ayudan a los gestores del software a evaluar el progreso.
JORGEMARTEL 7

Estos pasos se denominan frecuentemente paradigmas de la ingeniera del software. La eleccin de un paradigma para la ingeniera del software se lleva a cabo de acuerdo con
la naturaleza del proyecto y de la aplicacin, los mtodos y herramientas a usar y los controles y entregas requeridos.

JORGEMARTEL

JORGEMARTEL

JORGEMARTEL

DESARROLLOSOFTWARE01

Paradigmas

METODOLOGIASDEDESARROLLODE SOFTWARE
Las Metodologas de Desarrollo de Software surgen ante l necesidad d utilizar una serie t la id d de tili i de
procedimientos, tcnicas, herramientas y soporte documental

a la hora de desarrollar un producto software.


JORGEMARTEL 9 JORGEMARTEL 10

Clasificacion delasMetodologasde Software


Las metodologas pretenden guiar a los desarrolladores al crear un nuevo software, d ll d l ft pero los requisitos de un software a otro son tan variados y cambiantes, que ha dado lugar a que exista una gran variedad de metodologas para la creacin del software. Se podran clasificar en dos grandes grupos:
Las metodologas orientadas al control de los procesos. Las metodologas orientadas a la interaccin con el cliente y el desarrollo incremental del software.

JORGEMARTEL

11

JORGEMARTEL

12

JORGEMARTEL

JORGEMARTEL

DESARROLLOSOFTWARE01

Las metodologas orientadas al control de los procesos, estableciendo rigurosamente t bl i d i t


las actividades a desarrollar, herramientas a utilizar y notaciones que se usarn. Estas metodologas son llamadas Metodologas Pesadas.

Lasmetodologasorientadasalainteraccin conelclienteyeldesarrolloincrementaldel l li t ld ll i t ld l software,


mostrandoversionesparcialmentefuncionalesdel softwarealclienteenintervaloscortosdetiempo, paraquepuedaevaluarysugerircambiosenel productosegnsevadesarrollando. d d ll d EstassonllamadasMetodologasligeras/giles.

JORGEMARTEL

13

JORGEMARTEL

14

Modelosdeprocesosoftware
Sommerville definemodelodeprocesodesoftwarecomoUna representacinsimplificadadeunprocesodesoftware,representada desdeunaperspectivaespecfica. desde una perspectiva especfica Porsunaturalezalosmodelossonsimplificados,porlotantounmodelo deprocesosdelsoftwareesunaabstraccindeunprocesoreal. Losmodelosgenricosnosondescripcionesdefinitivasdeprocesosde software;sinembargo,sonabstraccionestilesquepuedenserutilizadas paraexplicardiferentesenfoquesdeldesarrollodesoftware. Modelos:
Codificarycorregir Modeloencascada Desarrolloevolutivo Desarrolloformaldesistemas Desarrollobasadoenreutilizacin Desarrolloincremental Desarrolloenespiral
JORGEMARTEL 16

Modelosdedesarrollo
JorgeMartel

JORGEMARTEL

JORGEMARTEL

DESARROLLOSOFTWARE01

Codificarycorregir(CodeandFix)
Esteeselmodelobsicoutilizadoenlosiniciosdeldesarrollode software.Contienedospasos:
E ibi di Escribircdigo. Corregirproblemasenelcdigo.

Modeloencascada
Elprimermodelodedesarrollodesoftwarequesepublicsederivdeotros procesosdeingeniera. stetomalasactividadesfundamentalesdelprocesodeespecificacin,desarrollo, ste toma las actividades fundamentales del proceso de especificacin desarrollo validacinyevolucinylasrepresentacomofasesseparadasdelproceso. Elmodeloencascadaconstadelassiguientesfases:
Definicindelosrequisitos:Losservicios,restriccionesyobjetivossonestablecidoscon losusuariosdelsistema.Sebuscahacerestadefinicinendetalle. Diseodesoftware:Separticionaelsistemaensistemasdesoftwareohardware.Se establecelaarquitecturatotaldelsistema.Seidentificanydescribenlasabstraccionesy relacionesdeloscomponentesdelsistema. Implementacinypruebasunitarias:Construccindelosmdulosyunidadesde software.Serealizanpruebasdecadaunidad. software Se realizan pruebas de cada unidad Integracinypruebasdelsistema:Seintegrantodaslasunidades.Sepruebanen conjunto.Seentregaelconjuntoprobadoalcliente. Operacinymantenimiento:Generalmenteeslafasemslarga.Elsistemaespuestoen marchayserealizalacorreccindeerroresdescubiertos.Serealizanmejorasde implementacin.Seidentificannuevosrequisitos.

Setratadeprimeroimplementaralgodecdigoyluegopensar acercaderequisitos,diseo,validacin,ymantenimiento. Estemodelotienetresproblemasprincipales:


Despusdeunnmerodecorrecciones,elcdigopuedeteneruna muymalaestructura,hacequelosarreglosseanmuycostosos. Frecuentemente,anelsoftwarebiendiseado,noseajustaalas necesidadesdelusuario,porloqueesrechazadoosureconstruccin esmuycara. Elcdigoesdifcilderepararporsupobrepreparacinparaprobary modificar.

JORGEMARTEL

17

JORGEMARTEL

18

Modeloencascada
Cadafasetienecomoresultadodocumentosquedebenseraprobadospor elusuario. Unafasenocomienzahastaqueterminelafaseanteriorygeneralmente seincluyelacorreccindelosproblemasencontradosenfasesprevias.
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que sta est daada. Reinicie el equipo y , a continuacin, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.

Modeloencascada
Enlaprctica,estemodelonoeslineal,einvolucravariasiteracionese interaccinentrelasdistintasfasesdedesarrollo.Algunosproblemasque seobservanenelmodelodecascadason:
Lasiteracionessoncostosaseimplicanrehacertrabajodebidoalaproducciny aprobacindedocumentos. Aunquesonpocasiteraciones,esnormalcongelarpartedeldesarrolloycontinuarcon lassiguientesfases. Losproblemassedejanparasuposteriorresolucin,loquellevaaqueestossean ignoradosocorregidosdeunaformapocoelegante. Existeunaaltaprobabilidaddequeelsoftwarenocumplaconlosrequisitosdelusuario porellargotiempodeentregadelproducto. por el largo tiempo de entrega del producto Esinflexiblealahoradeevolucionarparaincorporarnuevosrequisitos.Esdifcil responderacambiosenlosrequisitos.

Estemodeloslodebeusarsesiseentiendenaplenitudlosrequisitos. Anseutilizacomopartedeproyectosgrandes.
JORGEMARTEL 20

JORGEMARTEL

19

JORGEMARTEL

JORGEMARTEL

DESARROLLOSOFTWARE01

Desarrolloevolutivo
Laideadetrsdeestemodeloeseldesarrollodeunaimplantacindel sistemainicial,exponerlaaloscomentariosdelusuario,refinarlaenN versioneshastaquesedesarrolleelsistemaadecuado.EnlaFigura6se observacmolasactividadesconcurrentes:especificacin,desarrolloy validacin,serealizanduranteeldesarrollodelasversioneshastallegaral productofinal. Unaventajadeestemodeloesqueseobtieneunarpidarealimentacin delusuario,yaquelasactividadesdeespecificacin,desarrolloypruebas seejecutanencadaiteracin.
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que sta est daada. Reinicie el equipo y , a continuacin, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.

Desarrolloevolutivo
Existendostiposdedesarrolloevolutivo:
DesarrolloExploratorio:Elobjetivodeesteenfoqueesexplorarconelusuariolosrequisitoshasta llegaraunsistemafinal.Eldesarrollocomienzaconlaspartesquesetienemsclaras.Elsistema ll it fi l El d ll i l t ti l El i t evolucionaconformeseaadennuevascaractersticaspropuestasporelusuario. Enfoqueutilizandoprototipos:Elobjetivoesentenderlosrequisitosdelusuarioytrabajarpara mejorarlacalidaddelosrequisitos.Adiferenciadeldesarrolloexploratorio,secomienzapordefinir losrequisitosquenoestnclarosparaelusuarioyseutilizaunprototipoparaexperimentarcon ellos.Elprototipoayudaaterminardedefinirestosrequisitos. Laespecificacinpuededesarrollarsedeformacreciente. Losusuariosydesarrolladoreslogranunmejorentendimientodelsistema.Estosereflejaenuna mejoradelacalidaddelsoftware. Esmsefectivoqueelmodelodecascada,yaquecumpleconlasnecesidadesinmediatasdelcliente.

Entrelospuntosfavorablesdeestemodeloestn:

JORGEMARTEL

21

JORGEMARTEL

22

Desarrolloevolutivo
Desdeunaperspectivadeingenierayadministracinseidentificanlos siguientesproblemas:
ProcesonoVisible:Losadministradoresnecesitanentregasparamedirelprogreso.Sielsistemasenecesita desarrollarrpido,noesefectivoproducirdocumentosquereflejencadaversindelsistema. Sistemaspobrementeestructurados:Loscambioscontinuospuedenserperjudicialesparalaestructuradel softwarehaciendocostosoelmantenimiento. Serequierentcnicasyherramientas:Paraelrpidodesarrollosenecesitanherramientasquepuedenser incompatiblesconotrasoquepocagentesabeutilizar.

Desarrolloformaldesistemas
Estemodelosebasaentransformacionesformalesdelosrequisitoshastallegaraun programaejecutable. Sedistinguendosfasesglobales:especificacin(incluyendovalidacin)ytransformacin. Se distinguen dos fases globales: especificacin (incluyendo validacin) y transformacin Lascaractersticasprincipalesdeesteparadigmason:laespecificacinesformalyejecutable constituyeelprimerprototipodelsistema),laespecificacinesvalidadamediante prototipacin. Posteriormente,atravsdetransformacionesformaleslaespecificacinseconvierteenla implementacindelsistema,enelltimopasodetransformacinseobtieneuna implementacinenunlenguajedeprogramacindeterminado.,elmantenimientoserealiza sobrelaespecificacin(nosobreelcdigofuente),ladocumentacinesgenerada automticamenteyelmantenimientoesrealizadoporrepeticindelproceso(nomediante parchessobrelaimplementacin). parches sobre la implementacin) Observacionessobreeldesarrolloformaldesistemas:
Permitedemostrarlacorreccindelsistemaduranteelprocesodetransformacin.As,laspruebas queverificanlacorrespondenciaconlaespecificacinnosonnecesarias. Esatractivosobretodoparasistemasdondehayrequisitosdeseguridadyconfiabilidadimportantes. Requieredesarrolladoresespecializadosyexperimentadosenesteprocesoparallevarseacabo.

Estemodeloesefectivoenproyectospequeos(menosde100.000lneasde cdigo)omedianos(hasta500.000lneasdecdigo)conpocotiempoparasu desarrolloysingenerardocumentacinparacadaversin. Paraproyectoslargosesmejorcombinarlomejordelmodelodecascaday evolutivo:sepuedehacerunprototipoglobaldelsistemayposteriormente reimplementarlo conunacercamientomsestructurado.Lossubsistemascon requisitosbiendefinidosyestablessepuedenprogramarutilizandocascaday lainterfazdeusuariosepuedeespecificarutilizandounenfoqueexploratorio.


JORGEMARTEL 23

JORGEMARTEL

24

JORGEMARTEL

JORGEMARTEL

DESARROLLOSOFTWARE01

Desarrolloformaldesistemas

Desarrollo Formal

Desarrollobasadoenreutilizacin
Comosunombreloindica,esunmodelofuertementeorientadoalareutilizacin. Estemodeloconstade4
Anlisisdecomponentes:Sedeterminaqucomponentespuedenserutilizadosparael p q p p p sistemaencuestin.Casisiemprehayquehacerajustesparaadecuarlos. Modificacinderequisitos:Seadaptan(enloposible)losrequisitosparaconcordarconlos componentesdelaetapaanterior.Sinosepuederealizarmodificacionesenlosrequisitos,hay queseguirbuscandocomponentesmsadecuados(fase1). Diseodelsistemaconreutilizacin:Sediseaoreutilizaelmarcodetrabajoparaelsistema. Sedebetenerencuentaloscomponenteslocalizadosenlafase2paradisearodeterminar estemarco. Desarrolloeintegracin:Elsoftwarequenopuedecomprarse,sedesarrolla.Seintegranlos componentesysubsistemas.Laintegracinespartedeldesarrolloenlugardeunaactividad separada.

Desiciones Especificacin Informal Especificacin Especificacin de alto nivel (prototipo)

Tranformacin Interactiva

Especificacin de bajo nivel

Transformacin Automtica

Cdigo Fuente

Optimizacin Validacin de Especificacin

Lasventajasdeestemodeloson: j d d l
Disminuyeelcostoyesfuerzodedesarrollo. Reduceeltiempodeentrega. Disminuyelosriesgosduranteeldesarrollo.

Mantenimiento

JORGEMARTEL

25

JORGEMARTEL

26

Desarrollobasadoenreutilizacin
Desventajasdeestemodelo:
Loscompromisosenlosrequisitossoninevitables,porlocualpuedequeelsoftware nocumplalasexpectativasdelcliente. Lasactualizacionesdeloscomponentesadquiridosnoestnenmanosdelos desarrolladoresdelsistema.

Desarrolloincremental
Millssugirielenfoqueincrementaldedesarrollocomounaformade reducirlarepeticindeltrabajoenelprocesodedesarrolloydar oportunidadderetrasarlatomadedecisionesenlosrequisitoshasta adquirirexperienciaconelsistema(verFigura10).Esunacombinacindel ModelodeCascadayModeloEvolutivo. Reduceelrehacertrabajoduranteelprocesodedesarrolloyda oportunidadpararetrasarlasdecisioneshastatenerexperienciaenel sistema. Duranteeldesarrollodecadaincrementosepuedeutilizarelmodelode cascadaoevolutivo,dependiendodelconocimientoquesetengasobrelos requisitosaimplementar.Sisetieneunbuenconocimiento,sepuede optarporcascada,siesdudoso,evolutivo.

JORGEMARTEL

27

JORGEMARTEL

28

JORGEMARTEL

JORGEMARTEL

DESARROLLOSOFTWARE01

Desarrolloincremental
Entrelasventajasdelmodeloincrementalseencuentran:
Losclientesnoesperanhastaelfindeldesarrolloparautilizarelsistema. Puedenempezarausarlodesdeelprimerincremento. Pueden empezar a usarlo desde el primer incremento Losclientespuedenaclararlosrequisitosquenotenganclarosconformeven lasentregasdelsistema. Sedisminuyeelriesgodefracasodetodoelproyecto,yaquesepuede distribuirencadaincremento. Laspartesmsimportantesdelsistemasonentregadasprimero,porlocualse realizanmspruebasenestosmdulosysedisminuyeelriesgodefallos.

Desarrolloincremental
No se puede mostrar la imagen. Puede que su equipo no tenga suficiente memoria para abrir la imagen o que sta est daada. Reinicie el equipo y , a continuacin, abra el archiv o de nuev o. Si sigue apareciendo la x roja, puede que tenga que borrar la imagen e insertarla de nuev o.

Algunasdelasdesventajasidentificadasparaestemodeloson:
Cadaincrementodebeserpequeoparalimitarelriesgo(menosde20.000 lneas). lneas) Cadaincrementodebeaumentarlafuncionalidad. Esdifcilestablecerlascorrespondenciasdelosrequisitoscontralos incrementos. Esdifcildetectarlasunidadesoserviciosgenricosparatodoelsistema.

JORGEMARTEL

29

JORGEMARTEL

30

Desarrolloenespiral
Elmodelodedesarrolloenespiralesactualmenteunodelosms conocidosyfuepropuestoporBoehm. Elciclodedesarrolloserepresentacomounaespiral,enlugardeunaserie l l d d ll l l d deactividadessucesivasconretrospectivadeunaactividadaotra. Cadaciclodedesarrollosedivideencuatrofases:
Definicindeobjetivos:Sedefinenlosobjetivos.Sedefinenlasrestriccionesdelprocesoydel producto.Serealizaundiseodetalladodelplanadministrativo.Seidentificanlosriesgosyse elaboranestrategiasalternativasdependiendodeestos. Evaluacinyreduccinderiesgos:Serealizaunanlisisdetalladodecadariesgoidentificado. Puedendesarrollarseprototiposparadisminuirelriesgoderequisitosdudosos.Sellevanacabolos pasosparareducirlosriesgos. Desarrolloyvalidacin:Seescogeelmodelodedesarrollodespusdelaevaluacindelriesgo.El modeloqueseutilizar(cascada,sistemasformales,evolutivo,etc.)dependedelriesgoidentificado paraesafase. Planificacin:Sedeterminasicontinuarconotrociclo.Seplanealasiguientefasedelproyecto. Estemodeloadiferenciadelosotrostomaenconsideracinexplcitamenteelriesgo,estaesuna actividadimportanteenlaadministracindelproyecto.

Desarrolloenespiral
Elciclodevidainiciaconladefinicindelosobjetivos. Deacuerdoalasrestriccionessedeterminandistintasalternativas. Seidentificanlosriesgosalsopesarlosobjetivoscontralasalternativas. Seevalanlosriesgosconactividadescomoanlisisdetallado,simulacin, prototipos,etc. Sedesarrollaunpocoelsistema. Seplanificalasiguientefase.

JORGEMARTEL

31

JORGEMARTEL

32

JORGEMARTEL

JORGEMARTEL

DESARROLLOSOFTWARE01

Desarrolloenespiral

JORGEMARTEL

33

JORGEMARTEL

Anda mungkin juga menyukai