Você está na página 1de 5

IIEInstitutodeIngenieraElctrica. DesaSoftDesarrollodeSoftwareparaIngenieraElctrica. Guasdeclase.ParteII:IngenieradeSoftware.

Ingeniera de Software.
ndice de contenido
IngenieradeSoftware......................................................................................................................1 Qucomprendelaingenieradesoftware................................................................................1 AnlisisySntesispararesolverunproblema..........................................................................1 Herramientas,procedimientos,tcnicas,paradigmas..............................................................2 Elingenierodesoftware..........................................................................................................2 Laingenieradesoftware........................................................................................................2 Exitosyfracasos......................................................................................................................3 Calidad....................................................................................................................................3 Participantes............................................................................................................................3 Sistema....................................................................................................................................4 Subsistemas.............................................................................................................................4 Construccindeunsistema:....................................................................................................4 Referenciasylecturasrecomendadas.......................................................................................5 Lecturasrecomendadas..................................................................................................5 Referencias.....................................................................................................................5

Qu comprende la ingeniera de software.


Eltrmino"ingenieradesoftware"fueusadoporprimeravezen1968enunaconferencia delaOTAN(Plfeeger,2002). Desde1968elsoftwarehapenetradoentodosloscamposdelavidahumana.Los productosdesoftwaredebenrealizarfuncionestiles,delamejormaneraposible:deben exhibirfuncionalidadycalidad. LaIngenieradeSoftwareabarcadoscampos: eldelaprcticaprofesional,paralaconstruccindesoftwarefuncionalydebuenacalidad. eldelainvestigacin,paraencontrarformasdemejorarlacalidadyproductividadde quienesloconstruyen. Lasbuenasprcticasdelaingenieradesoftwaredebenasegurarlacontribucinpositiva delsoftwarealavidahumana.

Anlisis y Sntesis para resolver un problema.

Elsoftwareresuelveunproblema.Primerodebebuscarseunasolucinalproblema.Luego, siesnecesario,sepuedeusarlatecnologadelsoftwareparaimplementaresasolucin. Asumiremosdeahoraenadelantequesehadeterminadolanecesidadyutilidadderesolver elproblemamediantelaconstruccindeunsoftware. ElAnlisisinvestigaelproblemadescomponindoloenpartesfcilesdecomprender.Un problemagrandepuededescribirseentoncescomounconjuntodeproblemaschicosylas relacionesquemantienenentres. Puedearribarsealasolucindelproblemagranderesolviendotodoslosproblemaschicos, atendiendoespecialmentealasrelacionesexistentesentreesosproblemaschicos. LaSntesiseslacomposicindeunagranestructuramediantebloquesconstructivosms
1de5

chicos.Lacomposicindesolucionesindividualespuedeconformarlasolucinalproblema general,siempreycuandosehayanresueltobienlosproblemaschicosysehayanrespetado lasrelacionesentreellos. Cualquiertcnicaderesolucindeproblemastendrdospartes:elanlisis,paradeterminar lanaturalezadelproblema,ylasntesisdeunasolucinbasadaenelanlisis.

Anlisis.

Sntesis.

Herramientas, procedimientos, tcnicas, paradigmas.


Unaherramientaesuninstrumentoosistemaautomatizadopararealizaralgodelamejor maneraposible. Unatcnicaeslahabilidadparaelusodelasherramientasdeunreaenparticular. Unprocedimientoesunacombinacindeherramientasytcnicasque,usadasenconjunto, dancomoresultadounproductoparticular.Unprocedimientoescomounarecetade cocina. Unparadigmarepresentaunenfoqueparticularofilosofaparalaconstruccindel software. Ejemplo:lasherramientasdecocina(cacerolas,ralladores,cuchillos,...)seempleanenla tcnicaculinaria(habilidaddeusaresasherramientasparacocinar)siguiendoun procedimiento(recetadecocina)paralograrunproducto(unplatodecomida)segnun ciertoparadigma(estiloculinario:cocinafrancesa,cocinachina).

El ingeniero de software.

Losingenierosdesoftwareusanherramientas,tcnicas,procedimientosyparadigmaspara crearproductosdesoftwaredecalidadenformaproductiva(conelmenoresfuerzo) obteniendosolucioneseficaces(quefuncionen,queresuelvanelproblemaplanteado)y eficientes(conelmenorinsumoderecursos). Losingenierosdesoftwarevenlascomputadorasyloslenguajesdeprogramacincomo herramientasautilizarenlasolucindeunproblema.Suvisinestcentradaenel problema.

La ingeniera de software.

Laingenieradesoftwareexisteporlosfracasos:softwaresinterminar,conerrores,queno resuelvenelproblema,sondifcilesdeusar...muchodineroyesfuerzoperdidollevana buscarunenfoquedeingenieraparalaconstruccindelsoftware. Aspiracionesdelaingenieradesoftware:producirunsoftwarecuyocdigosea


2de5

robusto:capazdesuperarcontingenciasoaccidentesposiblesycorrientes. fcildecomprender:queotrosprofesionalesloentiendanfcilmente. fcildemantener:quesepuedanhacercambiosocorrecciones. efectivo:quecumplalafuncinparalaquefuediseado. eficiente:quelohagaconelmnimousoderecursos(tiempo,procesador,papel...). Laingenieradesoftwareesunadisciplinadediseoydesarrolloparalograrconstruirsoftware dealtacalidad.Estantounartecomounaciencia:aplicaconocimientosformales,perohay muchasmanerasderealizarlatarea,algunasmejoresqueotras,variablessegnloscasos.


Exitos y fracasos.

Losusuarios,estnsatisfechosconelsoftwareexistente?Syno.Loslogrosson indiscutibles,perotodoshemosododesistemasdifcilesdeusar,quenoresuelvenel problemadelusuario,que"secuelgan"oquefuncionanmal. Ejemplos,varioscitadosen[Pfleeger2002,p.79]: SperryCorporationyelIRS(recaudacindeimpuestosenUSA),"unfiascode4000 millonesdedlares",de1980a1996. Therac25,equipoderadioterapia,murieronvariospacientesporusonoprevistode teclas. SDI,proyectodedefensaestratgica(guerradelasgalaxias),requiere114000 aosdepruebasparaasegurarunaconfiabilidadde109,mnimorequeridopara aplicacionesdealtoriesgo. UncazaHarrierconfundiunradardelapolicacamineraconunblancoenemigo (1996). Laconfiabilidaddeundiscoduroandaporlos109.Cuntosdefectosseesperanenun discode80GB? Enloshechos,lamayoradelosproductosdesoftwaretienendefectos. Elcostodecorreccindeunerrorenlaetapadeanlisisesel10%delcostodecorregirlo cuandoelsoftwaresehaentregadoalcliente.

Calidad.

Lacalidaddeunproductodebemirarsealmenosdesdetresperspectivasdiferentes,cada unaconsuspropiosindicadoresdecalidad: usuarios:sihaceloquedesean,siesfcildeaprenderydeusar,siesrpido. diseadores,programadoresymantenedores:nmeroytipodefallas. contextodelaempresadondeseusa:retornodelainversin,cubrirelcosto,msla gananciaquehabradadoesedinerocolocadoenotrolado,msunacompensacin porlosriesgosasumidos. Sehanestudiadomodelospararelacionarlacalidadinterna(perspectivadelos desarrolladores)conlacalidadexterna(perspectivadelosusuarios).Relacionarlacalidad tcnica(interna)conelretornodeinversinesmsdifcil,sobretodoporlasdiferenciasde criteriosparaelclculodelretorno.Noobstante,losdesarrolladoressiempredebern,en algnmomento,enfrentarlosnivelesgerencialesyjustificarlainversin.

Participantes.
Enlaingenieradelsoftwareparticipan:

Cliente:personauorganizacinqueencarga(ypaga)eltrabajo. Usuario:personasqueusarnelsistema. Desarrollador:personasuorganizacinqueconstruyeelsistemadesoftware.

3de5

Sistema.
Unsistemaesunconjuntodeobjetosyactividades,msunadescripcindelasrelacionesque mantienenunidoslosobjetosylasactividades.Cadaactividadsedescribeporunalistadelas entradasrecibidas,lasaccionesrealizadasylassalidasproducidas. Ladescripcindeunsistemarequiere:

identificarsuspartes,asignarlesnombre. identificarlasrelacionesentrelaspartes.

Paradescribirunsistemasedebe: 1. Distinguirobjetosyactividades. Unaactividadesalgoquesucedeenelsistema,uneventoiniciadoporundisparadorque transformaunacosaenotra,cambiandoalgunacaracterstica. Unobjetooentidadesunelementoinvolucradoenunaactividad.Losobjetosoentidades suelenestarrelacionadosentresdealgunamanera.Eneldesarrolloorientadoaobjetoslos objetossedefinencomoentidadesindependientes,concaractersticasyaccionespropiasde eseobjeto. 2. Identificarrelaciones. Definirlasrelacionesentreentidadesyactividades:quentidadesreciben,produceno modificanalgoenelsistema(realizanactividades),quactividadesafectanunaentidad.La definicindeunaentidadincluyesuorigen(externoocreadaporunaactividad)ysu destinofinal(otraactividadosalidadelsistema). 3. Identificarloslmites. Elsistematieneunlmiteofrontera;hayentidadesqueingresanalsistemadesdeelexterior yotrasquesalendelsistemahaciaelexterior. Redefinicindesistema.Unsistemaesunconjuntodeentidades,unconjuntodeactividades,una descripcindelasrelacionesentreentidadesyactividadesyunadeterminacindellmitedel sistema.Ladescripcindeestasentidades,actividades,relacionesylmitesconstituyenlos requerimientosdelsistema:explicitandemaneraestructuradaloqueelsistemadebehacer.

Subsistemas.

Unsistemararamenteexisteaislado;generalmentedependedeotrossistemas.Deben estudiarseydocumentarsecuidadosamentelasinteraccionesdelsistemaenestudioconlos sistemasexternos. Esposiblequeunsistemaexistadentrodeotro,comounsubsistema.Sisedocumentan cuidadosamentelasrelacionesentrelossubsistemasquecomponenunsistemamayor,es posibleconcentrarlaatencinencadasubsistema. Cuandoseconstruyeunsistemasesimplificaconsiderablementelatareasielsistematotal puedeconstruirsecomounasucesincrecientedesistemasintermedios.

Construccin de un sistema:
1. Anlisisydefinicinderequerimientos:descripcindelasentidades,actividades,relacionesy lmitesdelsistema. 2. Diseodelsistema:descripcinanteelclientedelaaparienciayfuncionalidad,laforma comoelclienteinteractaconelsistema.Escritoenellenguajedelcliente,sujetoasu aprobacin. 3. Construccindelosprogramas.Incluye
4de5

escrituradelosprogramas:escribirelcdigo. pruebaunitariaopruebademdulos:pruebadecadaprogramacomopieza individualdecdigo. pruebadeintegracin:pruebaconjuntadevariosprogramasyaprobados unitariamente. pruebadelsistema:comprobacindefuncionalidadeseinteracciones;usuarios, clientesydesarrolladorescomparanelsistemadesarrolladoconlosrequerimientos originales. 4. Entregadelsistema:instalacin,configuracin. 5. Mantenimiento: correccionesdemalfuncionamiento; atencindecambiosenlosrequerimientos.

Idealmenteestasactividadesderealizaranunatrasotra;enlavidarealsehacenecesariorepetir variasdeestasactividades.Elprocesodedesarrollodesoftwareesunadescripcindelaconstruccin delsistemadondelastareasdeconstruccinaparecenorganizadasdeciertomodoconelobjetivo deproducircdigoprobado.

Referencias y lecturas recomendadas.


Elcontenidodeestedocumentoestbasadoenlasfuentescitadasacontinuacin,cuyalecturao consultanopretendensustituir.

Lecturas recomendadas.

[Larman2003]Larman,Craig.UMLypatrones.Unaintroduccinalanlisisydiseo orientadoaobjetosyalProcesoUnificado,2a.edicin.Madrid,2003. ISBN8420534382. [Fowler1997]Fowler,MartinyScott,Kendall.UMLdistilled.ApplyingtheStandardObject ModellingLanguage.AddisonWesleyLongman,Inc.,1997.ISBN0201325632. [Pfleeger2002]PFLEEGER,SHARILAWRENCE.Ingenieradesoftware,teorayprctica, 1a.edicin.BuenosAires,Pearsoneducacin,2002.ISBN:9879460715.

Referencias.

[Jacobson2000]Jacobson,Ivar;Booch,Grady;Rumbaugh,James.Elprocesounificadode desarrollodesoftware.PearsonEducacin,Madrid,2000.ISBN:8478290362. [Booch1999]Booch,Grady;Jacobson,Ivar;Rumbaugh,James.Ellenguajeunificadode modelado.PearsonEducacin,Madrid,2000.ISBN:8478290281.

Errores,omisiones,comentarios:VctorGonzlezBarbone,vagonbarenfing.edu.uy DesarrollodeSoftwareparaIngenieraElctricaRev.20090509 InstitutodeIngenieraElctrica FacultaddeIngeniera UniversidaddelaRepblica,Uruguay.

5de5

Você também pode gostar