DESARROLLOSOFTWARE01
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.
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
JORGEMARTEL
11
JORGEMARTEL
12
JORGEMARTEL
JORGEMARTEL
DESARROLLOSOFTWARE01
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.
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.
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.
Tranformacin Interactiva
Transformacin Automtica
Cdigo Fuente
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