A Ingenierc3ada de Software

77
2 ¿Qué es la Ingeniería de Software? ¿Cuántos tipos de sistemas conoce? ¿Cuál es el ámbito del software? ¿Qué es el Software? ¿Cuál es el ciclo de vida del software? ¿Cuántos tipos de software existen? ¿Cuál es la diferencia entre el

description

Software

Transcript of A Ingenierc3ada de Software

2Qu es la Ingeniera de Software?Cuntos tipos de sistemas conoce?Cul es el mbito del software?Qu es el Software?Cul es el ciclo de vida del software?Cuntos tipos de software existen?Cul es la diferencia entre el software comercialel !ec!o a la medida?"or #u se gasta tanto tiempoesfuer$o en el mantenimiento de los programas existentes?"or #u es imposible encontrar todos los errores en el software antes de entregarlo a los clientes?%l software se &desgasta'? &%l software se desarrolla o construe( no se manufactura en el sentido clsico) Qu opina?Cules son tus expectativas de aprendi$a*e#ue piensas aportar al curso?+Ingeniera de SoftwareIntroducci,n-)- %voluci,n !ist,rica de la ingeniera de software)-)2 %l software como productoproceso)-)+ .actores #ue intervienen en la ingeniera de software)-)/ %l ciclo de vida de desarrollo de sistemas)-)0 %l mbito de la ingeniera de software)/Introducci,nSeg1n la definici,n del I%%%2 citada por 34ewis -55/6 7software es la suma total de los programas de computadora2 procedimientos2 reglas2 la documentaci,n asociadalos datos #ue pertenecen a un sistema de c,mputo7) Seg1n el mismo autor2 7un producto de software es un producto dise8ado para un usuario7) 0Introducci,n7la Ingeniera de Softwarees la rama de la ingeniera #ue aplica los principios de la cienciadelacomputaci,nlas matemticas para lograr soluciones costo9efectivas :eficaces en costo o econ,micas; alosproblemasdedesarrollode software72esdecir27permiteelaborar consistentementeproductoscorrectos2 utili$ablescosto9efectivos7 3Cota -55/6) ipos de softwareSoftware de Sistemas%sunacolecci,ndeprogramasescritosparaservira otros programas :compiladores2 editores2utileras para la administraci,n de arc!ivos;Software de AplicacinConsisteenprogramasindependientes#ueresuelven unanecesidaddenegociosespecfica:ademsdel procesamientodedatosconvencional2seutili$apara controlar las funciones de los negocios en tiempo real;?Introducci,n= >ipos de softwareSoftware cientfico y de ingenieraSecaracteri$abaporalgoritmos&devoradoresde n1meros'2abarcadesdelaastronoma!astala vulcanologa2 desde del anlisis de la tensi,n automotri$ !astaladinmicaorbitaldelostransbordadores espaciales2 etc)) Software emportado @eside dentro de la memoria de s,lo lectura del sistema conlseimplementancontrolancaractersticas funcionesparaelusuariofinalelsistemamismo :controldecombustible2tecladodemicroondas2 sistemas de frenado2 etc));AIntroducci,n= >ipos de softwareSoftware de lnea de productosBise8adoparaproporcionarunacapacidadespecficala utili$aci,ndemuc!osclientesdiferentes2sepuedeenfocarenun nic!o de mercado limitado :productos para el control de inventarios; o masivo :multimedia2 mane*o de bases de datos2 etc)); Aplicaciones basadas en Web4asCebDpps2evolucionan!aciaambientescomputacionales sofisticados #ue no s,lo proporcionan caractersticas 2 funciones de c,mputocontenido independientes al usuario final2 sino #ue estn integradasabasesdedatoscorporativasaplicacionesde negocios) 5Introducci,n= >ipos de softwareSoftware de inteligencia artificialEtili$aalgoritmosnonumricosenlaresoluci,nde problemascomple*os#ueesimposibleabordarpor mediodeunanlisisdirecto)Susaplicacionesincluen larob,tica2lossistemasexpertos2redesneuronales artificiales2 la comprobaci,n de teoremaslos *uegos de computadora)Computacin Ubicua%lcrecimientorpidodelasredesinalmbricaspodra conducir pronto a la verdadera computaci,n distribuida)-FIntroducci,n= >ipos de softwareAlimentacin de la red4aCorldCideCebseconvierteconrapide$enundistribuidor computacional2 as como en un proveedor de contenido)Fuente Abierta %xiste la tendencia creciente #ue impulsa la distribuci,n del c,digo fuenteparaaplicacionesdesistemas2deforma#uelosclientes !agan modificaciones locales)La nuea economa! %l reto para los ingenieros de software es construir aplicaciones #ue faciliten la comunicaci,nla distribuci,n de productos en masa mediante productos en formaci,n--"#" $olucin %istrica de la ingeniera de software4aIngenieradeSoftwareesrelativamente nuevaa#ueapareceafinalesdelosa8os sesentaprincipios de los setenta2 comen$ando con las >cnicas de "rogramaci,n %structurada2 incorporndolasalasfasesdelciclovitalde software) -2"#" $olucin %istrica de la ingeniera de software& Significados 'rgenes4a Ingeniera del Software2 trmino utili$ado por primerave$por.rit$Gauerenlaprimera conferenciasobredesarrollodesoftware patrocinadaporelComitdeCienciadela H>DIcelebradaenJarmis!2Dlemania2en octubrede-5odo proceso tiene un con*unto de principios orientadores #ue explican las metas de cada actividad)4asrestriccionesocontrolespuedenserdeaplicaci,naunaactividad2 recursooproducto)"ore*emplo2elpresupuestoolaagendapueden restringirlaextensi,ndeltiempo#uepuedetomarunaactividad2ouna actividad2ouna!erramientapuedelimitarlamaneraen#uepuede utili$arse un recurso)Cual(uier proceso tiene las siguientes caractersticas&+F%l software como productoprocesoDnlisisdefinici,n de los re#uerimientosBise8o del sistemaBise8o de programas%scritura de los programas :implementaci,n de programas;"rueba unitaria "ruebas de integraci,n prueba de sistema %ntrega del sistemaNantenimiento)$l desarrollo del software inolucra las siguientes etapas&Cadaetapaesensmismaunproceso(ounacoleccindeprocesos) quepuedeserdescritocomounconjuntodeactividades.Ycada actividad comprende restricciones, salidas y recursos.+-%l software como productoprocesoUn enfo(ue de calidad)roceso*+todos,erramientas4aingenieradesoftwareesunatecnologaestratificada2comose muestraenlafigura2cual#uierenfo#uedeingenieradebeestar sustentadoenlacalidad):gesti,ndecalidadtotal2SeisSigma enfo#ues similares;+2%l software como productoproceso4abasedelaingenieradesoftwareesel estratodelproceso)%lprocesodela ingenieradesoftwareeselelemento#ue mantiene*untoslosestratosdela tecnologa#uepermiteeldesarrollo racionalatiempodelsoftwarede computadora%4procesodefineunmarcodetraba*o#ue debe establecerse para la entrega efectiva delatecnologadelaingenieradel software)++%l software como productoproceso 4os mtodos de la ingeniera de software proporcionan los &c,mo' tcnicosparaconstruirsoftware)4osmtodosabarcanunamplio espectrodetareas#ueincluenlacomunicaci,nelanlisisde re#uisitos2elmodeladodedise8o2laconstrucci,ndelprogramala reali$aci,n de pruebassoporte)4as !erramientas de ingeniera de software proporcionan el soporte automati$ado o semiautomati$ado para el procesolos mtodos) Cuandolas!erramientasseintegrandeforma#uelainformaci,n #uecreeunadeellaspuedeusarlaotra2sedice#uese!a establecidounsistemaparaelsoportedeldesarrollodelsoftware2 #ue con frecuencia se denomina ingeniera del software asistida por computadora)+/%l software como productoprocesoEn marco de traba*o establece la base para unprocesodesoftwarecompletoal identificarunn1merope#ue8ode actividadesdelmarcodetraba*o aplicablesatodoslosproectosde software2sinimportarsutama8oo comple*idad) Ddems2elmarcodetraba*o delprocesoabarcauncon*untode actividadessombrillaaplicablesalolargo del proceso del software) *arco del traba-o para el proceso&+0%l software como productoproceso*arco del traba-o para el proceso&)roceso del Software*arco de traba-o del procesoP P P Actiidades sombrilla+

areas del traba*o"roductos del traba*o"untos de aseguramiento de la calidad.undamentos del proecto>areas del traba*o"roductos del traba*o"untos de aseguramiento de la calidad.undamentos del proectoDctividad del marco de traba*o Q nDcci,n de la ingeniera de software Qn)- Con*unto de tareas ) ) )acci,n de la ingeniera de software Qn)m Con*unto de tareas >areas del traba*o"roductos del traba*o"untos de aseguramiento de la calidad.undamentos del proecto>areas del traba*o"roductos del traba*o"untos de aseguramiento de la calidad.undamentos del proecto+?%l software como productoproceso$l siguiente marco gen+rico del proceso se puede aplicar en la inmensa mayora de los productos del software&Comunicacin Implicaunaintensacolaboraci,ncomunicaci,nconlos clientes( adems2 abarca la investigaci,n de re#uisitosotras actividades relacionadas))laneacin %stablece un plan para el traba*o de la ingeniera del software) Bescribe las tareas tcnicas #ue deben reali$arse2 los riesgos probables2losrecursos#uesernre#ueridos2losproductos del traba*o #ue !an de producirseun programa de traba*o)*odelado %sta actividad abarca la creaci,n de modelos #ue permiten al desarrolladoralclienteentenderme*orlosre#uisitosde softwareel dise8o #ue lograra satisfacerlos)Construccin %staactividadcombinalageneraci,ndelc,digo:asea manualoautomati$ado;lareali$aci,ndepruebas necesarias para descubrir errores en el c,digo).espliegue %lsoftware:comounaentidadcompletaounincremento completadodemaneraparcial;seentregaalcliente2#uien eval1aelproductorecibidoproporcionainformaci,nbasada en su evaluaci,n)+A%l software como productoproceso$aluacin del procesoLae/istenciadeunprocesodesoftwarenoes garanta de (ue este ser0 entregado a tiempo1 de(uesatisfar0lasnecesidadesdelcliente1 ode(uemostrar0lascaractersticas t+cnicas(ueconducir0nacaractersticasde calidad a largo pla2o#Lospatronesdeprocesodebenir acompa3adosdeunapr0cticaslidadela ingeniera de software +5%l software como productoproceso)roceso del software*e-oramiento del proceso de software.eterminacinde la calidad$aluacin delproceso de softwareConduce a Conduce a*otia$s e/aminado porIdentifica capacidades y riesgos deIdentifica modificaciones a$aluacin del proceso/F%l software como productoprocesoSielprocesoesdbil2sindudael productofinalsufrirlas consecuencias)Dsimismo2una confian$aexcesivaenelprocesoes peligrosa/-$l software como producto y proceso4a gente obtiene tanta :o ms; satisfacci,n del proceso creativo #ue del producto final)%ltraba*o#uereali$alagentedesoftware cambiarenlosa8os#uesiguen)4a dualidaddelproductoelprocesoesun elementoimportanteparamantenerala gentecreativacomprometidamientras finali$a la transici,n desde la programaci,n !asta la ingeniera de software)/2.actores !umanos #ue intervienen en la ingeniera de softwareBescribelasfuncionescaractersticas #ueseentregarnalosusuariosfinales2 losdatos#uesonentradasalida2el &contenido' #ue se presenta a los usuarios comoconsecuenciadeemplearsoftware2 ascomoeldesempe8o2lasrestricciones2 las interfacesla confiabilidad #ue acotan el sistema) %l mbito se define al usar una de las dos tcnicas siguientes= %l mbito del software/+.actores !umanos #ue intervienen en la ingeniera de softwareBespusdeunacomunicaci,ncontodos losparticipantessedesarrollauna descripci,nnarrativadelmbitode software)4osusuariosfinalesdesarrollanun con*unto de casos de uso)%l mbito del software//.actores !umanos #ue intervienen en la ingeniera de softwareEnave$identificadoelmbito:conla participaci,ndelcliente;esra$onable preguntar=%sposibleconstruirsoftwarepara satisfacer este mbito?%l proecto es factible?%l mbito del softwareConmuc%afrecuencialosingenierosdesoftwaresoslayanestaspreguntas4ogestoreso clientesimpacientespresionanpara%acerlo51soloparaerseenredadosenunproyecto condenado al fracaso/0.actores !umanos #ue intervienen en la ingeniera de software4a segunda tarea de la planificaci,n es la estimaci,ndelosrecursosnecesarios paracompletarelesfuer$odedesarrollo del software@ecursosLasiguientefigura,muestralastresgrandescategorasdelosrecursosdeingenieradel software:personal,componentesdesoftwarereutilizablesyelentornodedesarrollo (hardware y herramientas de software)/SComponentes de%xperienciacompletaComponentes deexperienciaparcialIuevoscomponentesCada recurso se especifica con cuatro caractersticas:descripcin del recurso;un informe de disponibilidad;cuando se requerir el recurso;tiempo durante el cual el recurso se aplicar. /?.actores !umanos #ue intervienen en la ingeniera de software%lplanificadorcomien$aevaluandoel mbitodelsoftwareseleccionandolas !abilidadesre#ueridasparacompletarel desarrollo)Seespecificantantola posici,n organi$acional@ecursos Sumanos"or e*emplo2 telecomunicaciones2 base de datos2 clienteKservidor;/A.actores !umanos #ue intervienen en la ingeniera de software%nproectosrelativamentepe#ue8os:unos pocospersona9meses;unsoloindividuopuede reali$artodaslastareasdeingenieradel softwareconsultar con especialistas conforme se re#uiera)%nproectosmaoresele#uipodesoftware puede estar geogrficamente disperso en varios sitios)D#useespecificalaubicaci,ndecada recurso !umano@ecursos Sumanos/5.actores !umanos #ue intervienen en la ingeniera de software4aingenieradesoftwarebasadaen componentesenfati$alareutili$aci,n(es decir2lacreaci,nreutili$aci,nde blo#ues de construcci,n de software)>alesblo#ues2debencatalogarsepara consultarlosconfacilidad2estandari$arse para facilitar su aplicaci,nvalidarse para integrarlos fcilmente@ecursos de software reutili$ables0F.actores !umanos #ue intervienen en la ingeniera de software%lsoftwareexistentesepuedead#uirirdeun terceroosedesarrollointernamenteenun recurso previo)Componentes a desarrolladosComponentes experimentados%specificaciones2dise8os2c,digoodatosde pruebaexistentes#uesedesarrollaronpara proectospreviossonsimilaresalsoftware#ue se construir para el proecto actual)0-.actores !umanos #ue intervienen en la ingeniera de software%specificaciones2 dise8os2 c,digo o datos de prueba existentes #ue sedesarrollaronparaproectospreviosestnrelacionadosconel software#ueseconstruirparaelproectoactualperore#uerirn modificaciones sustancialesComponentes de experiencia parcialComponentes experimentados%le#uipodesoftwaredebeconstruirlos componentesdesoftwareespecficamentepara las necesidades del proecto actual02.actores !umanos #ue intervienen en la ingeniera de software%lentorno#uesoportaunproectode software2confrecuenciadenominado entornodeingenieradelsoftware:%IS;2 incorpora !ardwaresoftware)%l!ardwareproporcionaunaplataforma #uesoportalas!erramientas:software; con#ueseproducenlosproductosde traba*o basados en una buena prctica de la ingeniera de software)@ecursos del entorno0+-)/ %l ciclo de vida de desarrollo de sistemas) Como se vio en el software como productoproceso el desarrollo del software involucra las siguientes etapas=Dnlisisdefinici,n de los re#uerimientosBise8o del sistemaBise8o de programas%scrituradelosprogramas:implementaci,nde programas;"rueba unitaria "ruebas de integraci,n prueba de sistema %ntrega del sistemaNantenimiento)0/-)/ %l ciclo de vida de desarrollo de sistemas)La construccin de un modelo de proceso y la discusin de los subprocesos ayuda al equipo a entender la brecha entre lo que debe ser y lo que es!"isten #arias razones para el modelado de un proceso:Cuando ungrupoponeporescritounadescripci,ndesu proceso de desarrollo2 da forma a una comprensi,n com1n de actividades2 recursosrestricciones comprometidas con el desarrollo del software) 4a creaci,n de un modelo de proceso auda al e#uipo de desarrollo a encontrar las inconsistencias2 las redundancias lasomisionesenelprocesoenlaspartes#uelo constituen)%lmodelodeberefle*arlasmetasdedesarrollo2comola construcci,ndesoftwaredealtacalidad2lalocali$aci,n temprana de los defectos en el desarrolloel cumplimiento de las restricciones del cronogramadel presupuesto)00-)/ %l ciclo de vida de desarrollo de sistemas)>odoprocesodebeadaptarsealasituaci,nen #ueserutili$ado)4aconstrucci,ndeunmodelo delprocesoaudaale#uipodedesarrolloa comprender d,nde debe !acerse la adaptaci,n)>odomodelodelprocesodedesarrollodel softwareincluelosre#uerimientosdelsistema comoentradaunproductoentregadocomo salida)0