Sei sulla pagina 1di 23

11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Ingenieradesoftware
DeWikipedia,laenciclopedialibre

La ingeniera de software es la aplicacin de un enfoque sistemtico, disciplinado y cuantificable al


desarrollo,operacinymantenimientodesoftware,1yelestudiodeestosenfoques,esdecir,laaplicacin Ingenieradesoftware
delaingenieraalsoftware.2Integramatemticas,cienciasdelacomputacinyprcticascuyosorgenes
seencuentranenlaingeniera.3 reasdel
Software
saber
Secitanlasdefinicionesmsreconocidas,formuladasporprestigiososautores:
Campode Desarrolloymantenimiento
Ingeniera de software es el estudio de los principios y metodologas para el desarrollo y aplicacin desoftware
mantenimientodesistemassoftware(Zelkovitz,1978).
Ingenieradesoftwareeslaaplicacinprcticadelconocimientocientficoaldiseoyconstruccin Subreade Cienciasdelacomputacin
deprogramasdecomputadorayaladocumentacinasociadarequeridaparadesarrollar,operary [editardatosenWikidata]
mantenerlos. Se conoce tambin como desarrollo de software o produccin de software (Bohem,
1976).
Laingenieradesoftwaretratadelestablecimientodelosprincipiosymtodosdelaingenieraafindeobtenersoftwaredemodorentable,que
seafiableytrabajeenmquinasreales(Bauer,1972).
Laingenieradesoftwareeslaaplicacindeunenfoquesistemtico,disciplinadoycuantificablealdesarrollo,operacin,ymantenimientodel
software.1

En 2004, la U. S. Bureau of Labor Statistics (Oficina de Estadsticas del Trabajo de Estados Unidos) cont 760 840 ingenieros de software de
computadora.4[actualizar]

El trmino "ingeniero de software", sin embargo, se utiliza de manera genrica en el ambiente empresarial, y no todos los que se desempean en el
puestodeingenierodesoftwareposeenrealmentettulosdeingenieradeuniversidadesreconocidas.

Algunosautoresconsideranque"desarrollodesoftware"esuntrminomsapropiadoque"ingenieradesoftware"paraelprocesodecrearsoftware.
Personas como Pete McBreen (autor de "Software Craftmanship") cree que el trmino IS implica niveles de rigor y prueba de procesos que no son
apropiadosparatodotipodedesarrollodesoftware.

Indistintamenteseutilizanlostrminos"ingenieradesoftware"o"ingenieradelsoftware"aunquemenoscomntambinsesuelereferenciarcomo
"ingenieraensoftware".567EnHispanoamricalostrminosmscomnmenteusadossonlosdosprimeros.

Lacreacindelsoftwareesunprocesointrnsecamentecreativoylaingenieradelsoftwaretratadesistematizaresteprocesoconelfindeacotarel
riesgodefracasoenlaconsecucindelobjetivo,pormediodediversastcnicasquesehandemostradoadecuadassobrelabasedelaexperienciaprevia.

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 1/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

La ingeniera de software se puede considerar como la ingeniera aplicada al software, esto es, por medios sistematizados y con herramientas
preestablecidas,laaplicacindeellosdelamaneramseficienteparalaobtencinderesultadosptimosobjetivosquesiemprebuscalaingeniera.No
esslodelaresolucindeproblemas,sinomsbienteniendoencuentalasdiferentessoluciones,elegirlamsapropiada.

Laproduccindesoftwareutilizacriteriosynormasdelaingenieradesoftware,loquepermitetransformarloenunproductoindustrialusandobasesde
la ingeniera como mtodos, tcnicas y herramientas para desarrollar un producto innovador regido por metodologas y las buenas practicas. Dicho
productoesunmedioqueintervieneenlasfuncionesdesususuariosparaobtenerunprocesoproductivomaseficazyeficientehoyendalasempresas
nopodranfuncionarsinsoftwareporqueesteesunproductodeusomasivoporlocual,elniveldeunaempresaestadeterminadoporlacalidaddesu
infraestructuratecnolgicaylosproductosdesarrolladosoadquiridosdeacuerdoasusnecesidades.

ndice
1 Historia
2 Objetivos
3 Recursos
3.1 Recursoshumanos
3.2 Recursosdeentorno
4 Implicacionessocioeconmicas
4.1 Econmicamente
4.2 Socialmente
5 Notaciones
5.1 LUM(lenguajeunificadodemodelado)oUML
5.2 BPMN(notacinparaelmodeladodeprocesosdenegocios)
5.3 Diagramadeflujodedatos(DFD)
6 HerramientaCASE
7 Metodologa
7.1 Etapasdelproceso
7.1.1 Obtencindelosrequisitos
7.1.2 Anlisisderequisitos
7.1.3 Limitaciones[14]
7.1.4 Especificacin
7.1.5 Arquitectura
7.1.6 Programacin
7.1.7 Desarrollodelaaplicacin
7.1.8 Pruebasdesoftware
7.1.9 Implementacin
7.1.10 Documentacin
7.1.11 Mantenimiento
Ventajas[21]
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 2/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

7.2 Ventajas[21]
7.2.1 Desdeelpuntodevistadegestin
7.2.2 DesdeelpuntodevistadelosingenierosdeSoftware
7.2.3 Desdeelpuntodevistadeclienteousuariofinal
8 Modelosyciclosdevidadeldesarrollodesoftware
8.1 Modeloencascadaoclsico
8.2 Modelodeprototipos
8.3 Modeloenespiral
8.4 Modelodedesarrolloporetapas
8.5 Modeloincrementaloiterativo
8.5.1 Modeloestructurado
8.5.2 Modeloorientadoaobjetos
8.6 ModeloRAD(rapidapplicationdevelopment)
8.7 Modelodedesarrolloconcurrente
8.8 Procesounificadodeldesarrollodesoftware
9 Producto
10 NaturalezadelaIngenieradeSoftware
10.1 Matemticas
10.2 Creacin
10.3 GestindeProyecto
11 Participantesypapeles
11.1 Cliente
11.2 Desarrolladores
11.3 Gestores
11.4 Usuariosfinales
11.5 Cdigoticodeuningenierodesoftware
12 Educacintica
12.1 Organizaciones
13 Vasetambin
14 Referencias
15 Bibliografa
16 Enlacesexternos

Historia
Cuando aparecieron las primeras computadoras digitales en la dcada de 1940,8 el desarrollo de software era algo tan nuevo que era casi imposible
hacer predicciones de las fechas estimadas de finalizacin del proyecto y muchos de ellos sobrepasaban los presupuestos y tiempo estimados.. Los
desarrolladorestenanquevolveraescribirtodossusprogramasparacorrerenmquinasnuevasquesalancadaunoodosaos,haciendoobsoletaslas
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 3/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

yaexistentes.

EltrminoIngenieradelsoftwareapareciporprimeravezafinalesdeladcadade1950.LaIngenieradesoftwarefueestimuladaporlacrisisdel
softwaredelasdcadasdeentre1960y1980.LaIngenieradelsoftwarevieneaayudaraidentificarycorregirmedianteprincipiosymetodologaslos
procesosdedesarrolloymantenimientodesistemasdesoftware.

Apartedelacrisisdelsoftwaredelasdcadasdeentre1960y1980,laingenieradesoftwareseveafectadaporaccidentesqueconllevaronalamuerte
detrespersonasestosucedicuandolamquinaderadioterapiaTherac25emiteunasobredosismasivaderadiacinyafectocontralavidadeestas
personas.9Estoremarcalosriesgosdecontrolporsoftware,10afectandodirectamentealnombredelaingenieradesoftware.

Aprincipiosdelos1980,11laingenieradelsoftwareyahabasurgidocomounagenuinaprofesin,paraestaralladodelascienciasdelacomputacin
ylaingenieratradicional.Antesdeesto,lastareaserancorridasponiendotarjetasperforadascomoentradaenellectordetarjetasdelamquinayse
esperabanlosresultadosdevueltosporlaimpresora.

Debidoalanecesidaddetraducirfrecuentementeelsoftwareviejoparaatenderlasnecesidadesdelasnuevasmquinas,sedesarrollaronlenguajesde
ordensuperior.Amedidaqueaparecielsoftwarelibre,lasorganizacionesdeusuarioscomnmenteloliberaban.

Durante mucho tiempo, solucionar la crisis del software fue de suma importancia para investigadores y empresas que se dedicaban a producir
herramientasdesoftware.

Paraladcadade1980,elcostodepropiedadymantenimientodelsoftwarefuedosvecesmscaroqueelpropiodesarrollodelsoftware,ydurantela
dcada de 1990, el costo de propiedad y mantenimiento aument 30 % con respecto a la dcada anterior. En 1995, muchos de los proyectos de
desarrolloestabanoperacionales,peronoeranconsideradosexitosos.Elproyectodesoftwaremediosobrepasabaenun50%laestimacindetiempo
previamenterealizada,adems,el75%detodoslosgrandesproductosdesoftwarequeeranentregadosalclientetenanfallastangraves,quenoeran
usadosenloabsolutoosimplementenocumplanconlosrequerimientosdelcliente.10

Algunosexpertosargumentaronquelacrisisdelsoftwareeradebidoalafaltadedisciplinadelosprogramadores.

Cadanuevatecnologayprcticadeladcadade1970alade1990fuepregonadacomolanicasolucinatodoslosproblemasyelcaosquellevala
crisisdelsoftware.Lociertoesquelabsquedadeunanicaclaveparaelxitonuncafuncion.Elcampodelaingenieradesoftwarepareceuncampo
demasiadocomplejoyamplioparaunanicasolucinquesirvaparamejorarlamayoradelosproblemas,ycadaproblemarepresentaslounapequea
porcindetodoslosproblemasdesoftware.

ElaugedelusodelInternetllevaunvertiginosocrecimientoenlademandadesistemasinternacionalesdedesplieguedeinformacinenlaWorld
WideWeb.Losdesarrolladoressevieronenlatareademanejarilustraciones,mapas,fotografasyanimaciones,aunritmonuncaantesvisto,concasi
ningnmtodoparaoptimizarlavisualizacinyalmacenamientodeimgenes.Tambinfueronnecesariossistemasparatraducirelflujodeinformacin
enmltiplesidiomasextranjerosalenguajenaturalhumano,conmuchossistemasdesoftwarediseadosparausomultilenguaje,basadoentraductores
humanos.

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 4/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Laingenieradesoftwarecontribuyoalrededorde90,000millonesdedlaresporaoyaqueentraenjuegoelInternetestohacequelosdesarrolladores
tuviesen que manejar imgenes mapas y animaciones para optimizar la visualizacin/almacenamiento de imgenes (como el uso de imgenes en
miniatura).ElusodelosnavegadoresyutilizacindelenguajeHTMLcambiadrsticamentelavisinyrecepcindelainformacin.

Lasampliasconexionesderedcrealaproliferacindevirusinformticosylabasuraenloscorreoselectrnicos(Email)estoponeenunacarreracontra
el tiempo los desarrolladores para crear nuevos sistemas de bloqueo o seguridad de estas anomalas en la informtica ya que se volvan sumamente
tediosasydifcilesdearreglar10

Despusdeunafuerteycrecientedemandasurgelanecesidaddecrearsolucionesdesoftwareabajocosto,estoconllevaalusodemetodologasms
simplesyrpidasquedesarrollansoftwarefuncional.Cabesealarquelossistemasmspequeostenanunenfoquemssimpleyrpidoparapoder
administrareldesarrollodeclculosyalgoritmosdesoftware.

Objetivos
La ingeniera de software aplica diferentes normas y mtodos que permiten obtener mejores resultados, en cuanto al desarrollo y uso del software,
mediante la aplicacin correcta de estos procedimientos se puede llegar a cumplir de manera satisfactoria con los objetivos fundamentales de la
ingenieradesoftware.

Entrelosobjetivosdelaingenieradesoftwareestn:

Mejorareldiseodeaplicacionesosoftwaredetalmodoqueseadaptendemejormaneraalasnecesidadesdelasorganizacionesofinalidades
paralascualesfueroncreadas.
Promovermayorcalidadaldesarrollaraplicacionescomplejas.
Brindarmayorexactitudenloscostosdeproyectosytiempodedesarrollodelosmismos.
Aumentar la eficiencia de los sistemas al introducir procesos que permitan medir mediante normas especficas, la calidad del software
desarrollado,buscandosiemprelamejorcalidadposiblesegnlasnecesidadesyresultadosquesequierengenerar.
Unamejororganizacindeequiposdetrabajo,enelreadedesarrolloymantenimientodesoftware.
Detectaratravsdepruebas,posiblesmejorasparaunmejorfuncionamientodelsoftwaredesarrollado.12

Recursos
Recursoshumanos
Son todas aquellas personas que intervienen en la planificacin de cualquier instancias de software (por ejemplo: gestor, ingeniero de software
experimentado,etc.),Elnmerodepersonasrequeridoparaunproyectodesoftwareslopuedeserdeterminadodespusdehacerunaestimacindel
esfuerzodedesarrollo...

Recursosdeentorno
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 5/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Eselentornodelasaplicaciones(softwareyhardware)elhardwareproporcionaelmediofsicoparadesarrollarlasaplicaciones(software),esterecurso
esindispensable.13

Implicacionessocioeconmicas
Econmicamente
EnlosEstadosUnidos,elsoftwarecontribuyaunaoctavapartedetodoelincrementodelPIBduranteladcadade1990(alrededorde90,000millones
dedlaresporao),yunnovenodetodoelcrecimientodeproductividaddurantelosltimosaosdeladcada(alrededorde33.000millonesdedlares
estadounidensesporao).LaingenieradesoftwarecontribuyaUS$1billndecrecimientoeconmicoyproductividadenesadcada.Alrededordel
globo,elsoftwarecontribuyealcrecimientoeconmicodemanerassimilares,aunqueesdifcildeencontrarestadsticasfiables.[citarequerida]

Adems,conlaindustriadellenguajeesthallandocadavezmscamposdeaplicacinaescalaglobal.

Socialmente
La ingeniera de software cambia la cultura del mundo debido al extendido uso de la computadora. El correo electrnico (email), la WWW y la
mensajerainstantneapermitenalagenteinteractuardenuevasmaneras.Elsoftwarebajaelcostoymejoralacalidaddelosserviciosdesalud,los
departamentos de bomberos, las dependencias gubernamentales y otros servicios sociales. Los proyectos exitosos donde se han usado mtodos de
ingenieradesoftwareincluyenaGNU/Linux,elsoftwaredeltransbordadorespacial,loscajerosautomticosymuchosotros.

Notaciones
LUM(lenguajeunificadodemodelado)oUML
Es un lenguaje de modelado muy reconocido y utilizado actualmente que se utiliza para describir o especificar mtodos. Tambin es aplicable en el
desarrollodesoftware.

LassiglasUMLsignificanlenguajeunificadodemodeladoestoquieredecirquenopretendedefinirunmodeloestndardedesarrollo,sinonicamente
unlenguajedemodelado.14

Unlenguajedemodeladoconstadevistas,elementosdemodeloyunconjuntodereglassintcticas,semnticasypragmticasqueindicancmoutilizar
loselementos.

Enestamaterianosencontramosconvariosdiagramasquesepuedenusartalescomo:casosdeuso,declases,componentes,despliegue,etc.

BPMN(notacinparaelmodeladodeprocesosdenegocios)

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 6/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Elobjetivodelanotacinparaelmodeladodeprocesosdenegociosesproporcionardeunamanerafcildedefiniryanalizarlosprocesosdenegocios
pblicosyprivadossimulandoundiagramadeflujo.Lanotacinhasidodiseadaespecficamenteparacoordinarlasecuenciadelosprocesosylos
mensajesquefluyenentrelosparticipantesdelmismo,conunconjuntodeactividadesrelacionadas.CaractersticasbsicasdeloselementosdeBPMN

Objetosdeflujo:eventos,actividades,rombosdecontroldeflujo(gateways).
Objetosdeconexin:flujodesecuencia,flujodemensaje,asociacin.
Swimlanes(carrilesdepiscina):pool,lane.
Artefactos:objetosdedatos,grupo,anotacin.14

Diagramadeflujodedatos(DFD)
Undiagramadeflujodedatospermiterepresentarelmovimientodedatosatravsdeunsistemapormediodemodelosquedescribenlosflujosde
datos,losprocesosquetranformanocambianlosdatos,losdestinosdedatosylosalmacenamientosdedatosalacualtieneaccesoelsistema.

SuinventorfueLarryConstantine,basadoenelmodelodecomputacindeMartinyEstrin:flujogrficodedatos.Conlosdiagramasdeflujodedatos
determina la manera en que cualquier sistema puede desarrollarse, ayuda en la identificacin de los datos de la transaccin en el modelo de datos y
proporcionaalusuariounaideafsicadecmoresultarnlosdatosaltimainstancia.14

HerramientaCASE
LasHerramientaCASE son herramientas computacionales (software) que estn destinadas a asistir en los procesos de ciclo de vida de un software,
facilitanlaproduccindelsoftware,variassebasanprincipalmenteenlaideadeunmodelogrfico.15

Metodologa
Unobjetivodedcadashasidoelencontrarprocesosymetodologas,queseansistemticas,predeciblesyrepetibles,afindemejorarlaproductividad
eneldesarrolloylacalidaddelproductosoftware,enpocaspalabras,determinalospasosaseguirycomorealizarlosparafinalizarunatarea.

Etapasdelproceso
Laingenieradesoftwarerequierellevaracabonumerosastareasagrupadasenetapas,alconjuntodeestasetapasseledenominaciclodevida.Las
etapascomunesacasitodoslosmodelosdeciclodevidasonlassiguientes:

Obtencindelosrequisitos

Sedebeidentificarsobrequseesttrabajando,esdecir,eltemaprincipalquemotivaeliniciodelestudioycreacindelnuevosoftwareomodificacin
de uno ya existente. A su vez identificar los recursos que se tienen, en esto entra el conocer los recursos humanos y materiales que participan en el
desarrollodelasactividades.Esimportanteentenderelcontextodelnegocioparaidentificaradecuadamentelosrequisitos.
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 7/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Setienequetenerdominiodelainformacindeunproblema,locualincluyelosdatosfueradelsoftware(usuariosfinales,otrossistemasodispositivos
externos),losdatosquesalendelsistema(porlainterfazdeusuario,interfacesdered,reportes,grficasyotrosmedios)ylosalmacenamientosdedatos
querecabanyorganizanobjetospersistentesdedatos(porejemplo,aquellosqueseconservandemanerapermanente).

Tambinhayqueverlospuntoscrticos,loquesignificatenerdeunamaneraclaralosaspectosqueentorpecenylimitanelbuenfuncionamientodelos
procedimientos actuales, los problemas ms comunes y relevantes que se presentan, los motivos que crean insatisfaccin y aquellos que deben ser
cubiertosaplenitud.Porejemplo:Elcontenidodelosreportesgenerados,satisfacerealmentelasnecesidadesdelusuario?Lostiemposderespuesta
ofrecidos,sonoportunos?,etc.

Hayquedefinirlasfuncionesquerealizarelsoftwareyaqueestasayudanalusuariofinalyalfuncionamientodelmismoprograma.

Se tiene que tener en cuenta cmo ser el comportamiento del software ante situaciones inesperadas como lo son por ejemplo una gran cantidad de
usuariosusandoelsoftwareounagrancantidaddedatosentreotros.

Anlisisderequisitos

Extraer los requisitos de un producto software es la primera etapa para crearlo. Durante la fase de anlisis, el cliente plantea las necesidades que se
presentaeintentaexplicarloquedeberahacerelsoftwareoproductofinalparasatisfacerdichanecesidadmientrasqueeldesarrolladoractacomo
interrogador,comolapersonaqueresuelveproblemas.Conesteanlisis,elingenierodesistemaspuedeelegirlafuncinquedeberealizarelsoftwarey
estableceroindicarculeslainterfazmsadecuadaparaelmismo.16

Elanlisisderequisitospuedeparecerunatareasencilla,peronoloesdebidoaquemuchasveceslosclientespiensanquesabentodoloqueelsoftware
necesitaparasubuenfuncionamiento,sinembargoserequierelahabilidadyexperienciadealgnespecialistaparareconocerrequisitosincompletos,
ambiguosocontradictorios.Estosrequisitossedeterminantomandoencuentalasnecesidadesdelusuariofinal,introduciendotcnicasquenospermitan
mejorarlacalidaddelossistemassobrelosquesetrabaja.17

ElresultadodelanlisisderequisitosconelclienteseplasmaeneldocumentoERS(especificacinderequisitosdelsistema),cuyaestructurapuede
venir definida por varios estndares, tales como CMMI. Asimismo, se define un diagrama de entidad/relacin, en el que se plasman las principales
entidadesqueparticiparneneldesarrollodelsoftware.

Lacaptura,anlisisyespecificacinderequisitos(inclusopruebasdeellos),esunapartecrucialdeestaetapadependeengranmedidaellogrodelos
objetivosfinales.Sehanideadomodelosydiversosprocesosmetdicosdetrabajoparaestosfines.Aunqueannoestformalizada,yasehabladela
ingenieraderequisitos.

LaIEEEStd.8301998normalizalacreacindelasespecificacionesderequisitosdesoftware(SoftwareRequirementsSpecification).

Finalidadesdelanlisisderequisitos:

Brindaralusuariotodolonecesarioparaquepuedatrabajarenconjuntoconelsoftwaredesarrolladoobteniendolosmejoresresultadosposibles.
Teneruncontrolmscompletoenlaetapacreacindelsoftware,encuantoatiempodedesarrolloycostos.
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 8/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Utilizacindemtodosmseficientesquepermitanelmejoraprovechamientodelsoftwaresegnsealafinalidaddeusodelmismo.
Aumentarlacalidaddelsoftwaredesarrolladoaldisminuirlosriesgosdemalfuncionamiento.17

Nosiempreenlaetapade"anlisisderequisitos"lasdistintasmetodologasdedesarrollollevanasociadounestudiodeviabilidady/oestimacinde
costes.ElmsconocidodelosmodelosdeestimacindecostedelsoftwareeselmodeloCOCOMO

Limitaciones14

Los software tienen la capacidad de emular inteligencia creando un modelo de ciertas caractersticas de la inteligencia humana pero slo posee
funciones predefinidas que abarcan un conjunto de soluciones que en algunos campos llega a ser limitado. Aun cuando tiene la capacidad de imitar
ciertoscomportamientoshumanosnoescapazdeemularelpensamientohumanoporqueactabajocondiciones.

Otroaspectolimitantedelossoftwareprovienedelprocesototalmentemecnicoquerequieredeunmayoresfuerzoytiemposelevadosdeejecucinlo
quellevaatenerqueimplementarelsoftwareenunamquinademayorcapacidad.

Especificacin

La especificacin de requisitos describe el comportamiento esperado en el software una vez desarrollado. Gran parte del xito de un proyecto de
software radicar en la identificacin de las necesidades del negocio (definidas por la alta direccin), as como la interaccin con los usuarios
funcionalesparalarecoleccin,clasificacin,identificacin,priorizacinyespecificacindelosrequisitosdelsoftware.

Entrelastcnicasutilizadasparalaespecificacinderequisitosseencuentran:

Casodeuso
Historiasdeusuario

Siendolosprimerosmsrigurosasyformales,lossegundasmsgileseinformales.

Arquitectura

Laintegracindeinfraestructura,desarrollodeaplicaciones,basesdedatosyherramientasgerenciales,requierendecapacidadyliderazgoparapoder
serconceptualizadosyproyectadosafuturo,solucionandolosproblemasdehoy.ElrolenelcualsedelegantodasestasactividadeseseldelArquitecto.

Elarquitectodesoftwareeslapersonaqueaadevaloralosprocesosdenegociosgraciasasuvaliosoaportedesolucionestecnolgicas.

Laarquitecturadesistemasengeneral,esunaactividaddeplaneacin,yaseaaniveldeinfraestructuraderedyhardware,odesoftware.

Loprincipalenestepuntoesponerenclarolosaspectoslgicosyfsicosdelassalidas,modelosdeorganizacinyrepresentacindedatos,entradasy
procesos que componen el sistema, considerando las bondades y limitaciones de los recursos disponibles en la satisfaccin de las pacificaciones
brindadasparaelanlisis.
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 9/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Hay que tener en consideracin la arquitectura del sistema en la cual se va a trabajar, elaborar un plan de trabajo viendo la prioridad de tiempo y
recursosdisponibles.Enlosdiseosdesalidasentralosqueeslainterpretacinderequerimientoslocualeseldominiodeinformacindelproblema,
lasfuncionesvisiblesparaelusuario,elcomportamientodelsistemayunconjuntodeclasesderequerimientosqueagrupalosobjetosdelnegociocon
losmtodosquelesdanservicio.

La arquitectura de software consiste en el diseo de componentes de una aplicacin (entidades del negocio), generalmente utilizando patrones de
arquitectura.Eldiseoarquitectnicodebepermitirvisualizarlainteraccinentrelasentidadesdelnegocioyademspoderservalidado,porejemplo
por medio de diagramas de secuencia. Un diseo arquitectnico describe en general el cmo se construir una aplicacin de software. Para ello se
documentautilizandodiagramas,porejemplo:

Diagramadeclases
Diagramadebasededatos
Diagramadedespliegue
Diagramadesecuencia

Los diagramas de clases y de base de datos son los mnimos necesarios para describir la arquitectura de un proyecto que iniciar a ser codificado.
Dependiendodelalcancedelproyecto,complejidadynecesidades,elarquitectoelegircualesdelosdiagramasserequiereelaborar.

LasherramientasparaeldiseoymodeladodesoftwaresedenominanCASE(ComputerAidedSoftwareEngineering)entrelascualesseencuentran:

EnterpriseArchitect
MicrosoftVisioforEnterpriseArchitects

Programacin

Implementarundiseoencdigopuedeserlapartemsobviadeltrabajodeingenieradesoftware,perononecesariamenteeslaquedemandamayor
trabajoynilamscomplicada.Lacomplejidadyladuracindeestaetapaestntimamenterelacionadaaloaloslenguajesdeprogramacinutilizados,
ascomoaldiseopreviamenterealizado.

Desarrollodelaaplicacin

Paraeldesarrollodelaaplicacinesnecesarioconsiderarcincofasesparatenerunaaplicacinoprogramaeficiente,estasson:

Desarrollo de la infraestructura: Esta fase permite el desarrollo y la organizacin de los elementos que formaran la infraestructura de la
aplicacin,conelpropsitodefinalizarlaaplicacineficientemente.
Adaptacindelpaquete:Elobjetivoprincipaldeestafaseesentenderdeunamaneradetalladaelfuncionamientodelpaquete,estotienecomo
finalidad garantizar que el paquete pueda ser utilizado en su mximo rendimiento, tanto para negocios o recursos. Todos los elementos que
componenelpaquetesoninspeccionadosdemaneradetalladaparaevitarerroresyentendermejortodaslascaractersticasdelpaquete.
Desarrollodeunidadesdediseodeinteractivas:Enestafaseserealizanlosprocedimientosqueseejecutanporundilogousuariosistema.
Losprocedimientosdeestafasetienencomoobjetivoprincipal:
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 10/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

1.Establecerespecficamentelasaccionesquedebeefectuarlaunidaddediseo.
2.Lacreacindecomponentesparasusprocedimientos.
3.Ejecutarpruebasunitariasydeintegracinenlaunidaddediseo.

Desarrollodeunidadesdediseobatch:Enestafaseseutilizanunaseriedecombinacindetcnicas,comodiagramadeflujo,diagramasde
estructuras,tablasdedecisiones,etc.Cualquieraautilizarserbeneficiosoparaplasmardemaneraclarayobjetivalasespecificacionesyqueas
elprogramadortengamayorcomprensinalahoradeprogramaryprobarlosprogramasquelecorresponden.
Desarrollo de unidades de diseo manuales: En esta fase el objetivo central es proyectar todos los procedimientos administrativos que
desarrollarnentornoalautilizacindeloscomponentescomputarizados.18

Pruebasdesoftware

Consisteencomprobarqueelsoftwarerealicecorrectamentelastareasindicadasenlaespecificacindelproblema.Unatcnicaesprobarporseparado
cada mdulo del software, y luego probarlo de manera integral, para as llegar al objetivo. Se considera una buena prctica el que las pruebas sean
efectuadasporalguiendistintoaldesarrolladorquelaprogram,idealmenteunreadepruebassinperjuiciodeloanteriorelprogramadordebehacer
suspropiaspruebas.Engeneralhaydosgrandesmanerasdeorganizarunreadepruebas,laprimeraesqueestcompuestaporpersonalinexpertoy
quedesconozcaeltemadepruebas,deestamaneraseevalaqueladocumentacinentregadaseadecalidad,quelosprocesosdescritossontanclaros
quecualquierapuedeentenderlosyelsoftwarehacelascosastalycomoestndescritas.Elsegundoenfoqueestenerunreadepruebasconformada
porprogramadoresconexperiencia,personasquesabensinmayoresindicacionesenqucondicionespuedefallarunaaplicacinyquepuedenponer
atencinendetallesquepersonalinexpertonoconsiderara.

DeacuerdoconRogerS.Pressman,elprocesodepruebassecentraenlosprocesoslgicosinternosdelsoftware,asegurandoquetodaslassentenciasse
hancomprobado,yenlosprocesosexternosfuncionales,esdecir,larealizacindepruebasparaladeteccindeerrores.Serequierepoderprobarel
software con sujetos reales que puedan evaluar el comportamiento del software con el fin de proporcionar realimentacin a los desarrolladores. Es
importantequeduranteelprocesodedesarrollodelsoftwarenosepierdacontactoconlosinteresadososolicitantesdeldesarrollodeSoftware,deesta
manera los objetivos del proyecto se mantendrn vigentes y se tendr una idea clara de los aspectos que tienen que probarse durante el perodo de
pruebas.19

Implementacin

Unaimplementacineslarealizacindeunaespecificacintcnicaoalgoritmosconunprograma,componentesoftware,uotrosistemadecmputo.
Muchasespecificacionessondadassegnasuespecificacinounestndar.LasespecificacionesrecomendadassegnelWorldWideWebConsortium,
ylasherramientasdedesarrollodelsoftwarecontienenimplementacionesdelenguajesdeprogramacin.Elmodelodeimplementacinesunacoleccin
decomponentesylossubsitemasquecontienen.Componentestalescomo:ficherosejecutables,ficherosdecdigofuenteytodootrotipodeficheros
queseannecesariosparalaimplementacinydesplieguedelsistema.

Laetapadeimplementacindeldiseodesoftwareeselprocesodeconvertirunaespecificaciondelsistemaenunsistemaejecutable.Siempreimplica
losprocesosdediseoyprogramacindesoftware,pero,siseutilizaunenfoqueevolutivodedesarrollo,tambinpuedeimplicarunrefinamientodela
especificaciondelsoftware.Estaetapaesunadescripcindelaestructuradelsoftwarequesevaaimplementar,losdatosquesonpartedelsistema,las

interfacesentreloscomponentesdelsistema,yalgunasveceslosalgoritmosutilizados.20
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 11/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

interfacesentreloscomponentesdelsistema,yalgunasveceslosalgoritmosutilizados.20

Documentacin

Es todo lo concerniente a la documentacin del propio desarrollo del software y de la gestin del proyecto, pasando por modelaciones (UML),
diagramas de casos de uso, pruebas, manuales de usuario, manuales tcnicos, etc todo con el propsito de eventuales correcciones, usabilidad,
mantenimientofuturoyampliacionesalsistema.

Mantenimiento

Fasededicadaamantenerymejorarelsoftwareparacorregirerroresdescubiertoseincorporarnuevosrequisitos.Estopuedellevarmstiempoincluso
queeldesarrollodelsoftwareinicial.Alrededorde2/3deltiempodeciclodevidadeunproyecto13estdedicadoasumantenimiento.Unapequea
partedeestetrabajoconsisteeliminarerrores(bugs)siendoquelamayorparteresideenextenderelsistemaparaincorporarlenuevasfuncionalidadesy
hacerfrenteasuevolucin.

Ventajas21

Desdeelpuntodevistadegestin

Facilitarlatareadeseguimientodelproyecto
Optimizarelusoderecursos
Facilitarlacomunicacinentreusuariosydesarrolladores
Facilitarlaevaluacinderesultadosycumplimientodeobjetivos

DesdeelpuntodevistadelosingenierosdeSoftware

Ayudaracomprenderelproblema
Permitirlareutilizacin
Facilitarelmantenimientodelproductofinal
Optimizarelconjuntoycadaunadelasfasesdelprocesodedesarrollo

Desdeelpuntodevistadeclienteousuariofinal

Garantizarelniveldecalidaddelproductofinal
Obtenerelciclodevidaadecuadoparaelproyecto
Confianzaenlosplazosdeltiempomostradosenladefinicindelproyecto

Modelosyciclosdevidadeldesarrollodesoftware
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 12/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

La ingeniera de software, con el fin de ordenar el caos que era anteriormente el desarrollo de software, dispone de varios modelos, paradigmas y
filosofasdedesarrollo,estoslosconocemosprincipalmentecomomodelosociclosdevidadeldesarrollodesoftware,estoincluyeelprocesoquese
sigueparaconstruir,entregaryhacerevolucionarelsoftware,desdelaconcepcindeunaideahastalaentregayelretirodelsistemayrepresentatodas
lasactividadesyartefactos(productosintermedios)necesariosparadesarrollarunaaplicacin.22

Elciclodevidadeunsoftwarecontienelossiguientesprocedimientos:

Definicindeobjetivos:definirelresultadodelproyectoysupapelenlaestrategiaglobal.23
Anlisisdelosrequisitosysuviabilidad:recopilar,examinaryformularlosrequisitosdelclienteyexaminarcualquierrestriccinquesepueda
aplicar.23
Diseogeneral:requisitosgeneralesdelaarquitecturadelaaplicacin.23
Diseoendetalle:definicinprecisadecadasubconjuntodelaaplicacin.23
Programacin (programacin e implementacin): es la implementacin de un lenguaje de programacin para crear las funciones definidas
durantelaetapadediseo.23
Prueba de unidad: prueba individual de cada subconjunto de la aplicacin para garantizar que se implementaron de acuerdo con las
especificaciones.23
Integracin:paragarantizarquelosdiferentesmdulosseintegrenconlaaplicacin.steeselpropsitodelapruebadeintegracinqueest
cuidadosamentedocumentada.23
Pruebabeta(ovalidacin),paragarantizarqueelsoftwarecumpleconlasespecificacionesoriginales.23
Documentacin:sirveparadocumentarinformacinnecesariaparalosusuariosdelsoftwareyparadesarrollosfuturos.23
Implementacin
Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software
(mantenimientocontinuo).23

Modeloencascadaoclsico
Eningenieradesoftwareelmodeloencascadatambinllamadodesarrolloencascadaociclodevidaclsicosebasaenunenfoquemetodolgico
queordenarigurosamentelasetapasdelciclodevidadelsoftware,estosugiereunaaproximacinsistemticasecuencialhaciaelprocesodedesarrollo
delsoftware,queseiniciaconlaespecificacinderequisitosdelclienteycontinaconlaplanificacin,elmodelado,laconstruccinyeldespliegue
paraculminarenelsoportedelsoftwareterminado.24

Modelodeprototipos
Eningenieradesoftware,elmodelodeprototipospertenecealosmodelosdedesarrolloevolutivo.Estepermitequetodoelsistema,oalgunosdesus
partes,seconstruyanrpidamenteparacomprenderconfacilidadyaclararciertosaspectosenlosqueseasegurenqueeldesarrollador,elusuario,el
clienteestndeacuerdoenloquesenecesitaascomotambinlasolucinqueseproponeparadichanecesidadydeestamaneraminimizarelriesgoy
laincertidumbreeneldesarrollo,estemodeloseencargadeldesarrollodediseosparaqueestosseananalizadosyprescindirdeellosamedidaquese
adhierannuevasespecificaciones,esidealparamedirelalcancedelproducto,peronoseasegurasuusoreal.
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 13/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Este modelo principalmente se aplica cuando un cliente define un conjunto de objetivos generales para el software a desarrollarse sin delimitar
detalladamente los requisitos de entrada procesamiento y salida, es decir cuando el responsable no est seguro de la eficacia de un algoritmo, de la
adaptabilidaddelsistemaodelamaneraenqueinteractaelhombreylamquina.

Este modelo se encarga principalmente de ayudar al ingeniero de sistemas y al cliente a entender de mejor manera cul ser el resultado de la
construccincuandolosrequisitosestnsatisfechos.25

Modeloenespiral
El modelo en espiral, que Barry Boehm propuso originalmente en 1986, es un modelo de proceso de software evolutivo que conjuga la naturaleza
iterativadelaconstruccindeprototiposconlosaspectoscontroladosysistemticosdelmodeloencascada,esdecir,cuandoseaplicaestemodelo,el
softwaresedesarrollaenunaseriedeentregasevolutivas(ciclosoiteraciones),cadaunadeestasentregandoprototiposmscompletasqueelanterior,
todoestoenfuncindelanlisisderiesgoylasnecesidadesdelcliente.Aunqueelmodeloespiralrepresentaventajasporsobreeldesarrollolineal,el
clculodelosriesgospuedesermuycomplicadoyporlocualsuusoenelmbitorealesmuyescaso.26

Modelodedesarrolloporetapas
Esunmodeloenelqueelsoftwaresemuestraalclienteenetapasrefinadassucesivamente.Conestametodologasedesarrollanlascapacidadesms
importantes reduciendo el tiempo necesario para la construccin de un producto el modelo de entrega por etapas es til para el desarrollo de la
herramientadebidoaquesuusoserecomiendaparaproblemasquepuedensertratadosdescomponindolosenproblemasmspequeosysecaracteriza
principalmenteenquelasespecificacionesnosonconocidasendetallealiniciodelproyectoyportantosevandesarrollandosimultneamenteconlas
diferentesversionesdelcdigo.

Enestemodelopuedendistinguirselassiguientesfases:

Especificacinconceptual.
Anlisisderequisitos.
Diseoinicial.
Diseodetallado(codificacin,depuracin,pruebayliberacin).

Cuandoesporetapas,eneldiseoglobalestasfasespuedenrepetirsesegnlacantidaddeetapasqueseanrequeridas.

Entresusventajastenemos:

Deteccindeproblemasantesynohastalanicaentregafinaldelproyecto.
Eliminacindeltiempoeninformesdebidoaquecadaversinesunavance.
Estimacindetiempoporversin,evitandoerroresenlaestimacindelproyectogeneral.
Cumplimientoalafechaporlosdesarrolladores.

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 14/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Modeloincrementaloiterativo
Desarrolloiterativoycreciente(oincremental)esunprocesodedesarrollodesoftware,creadoenrespuestaalasdebilidadesdelmodelotradicionalde
cascada,esdecir,estemodeloaplicasecuenciaslinealescomoelmodeloencascada,perodeunamaneraiterativaoescaladasegncomoavanceel
procesodedesarrolloyconcadaunadeestassecuenciaslinealesseproducenincrementos(mejoras)delsoftware.27

Sedebetenerencuentaqueelflujodelprocesodecualquierincrementopuedeincorporarelparadigmadeconstruccindeprototipos,yaquecomose
mencion anteriormente, este tipo de modelo es iterativo por naturaleza, sin embargo se diferencia en que este busca la entrega de un producto
operacionalconcadaincrementoqueselerealicealsoftware.

Estedesarrolloincrementalestilprincipalmentecuandoelpersonalnecesarioparaunaimplementacincompletanoestdisponible.

Modeloestructurado

Estemodelocomosunombreloindicautilizalastcnicasdeldiseoestructuradoodelaprogramacinestructuradaparasudesarrollo,tambinse
utilizaenlacreacindelosalgoritmosdelprograma.Esteformatofacilitalacomprensindelaestructuradedatosysucontrol.28Entrelasprincipales
caractersticasdeestemodeloseencuentanlassiguientes:

Generalmentesepuedediferenciardeunamaneramsclaralosprocesosylasestructurasdedatos.
Existenmtodosqueseenfocanprincipalmenteenciertosdatos.
Laabstraccindelprogramaesdeunnivelmuchomayor.
Losprocesosyestructurasdedatossonrepresentadosjerrquicamente.28

Estemodelotambinpresentasusdesventajasentrelascualespodemosmencionaralgunas:

Sepodaencontrardatosrepetidosendiferentespartesdelprograma.28
Cuandoelcdigosehacemuyextensoograndesumanejosecomplicademasiado.29

Enelmodeloestructuradolastcnicasquecomnmenteseutilizanson:

Elmodeloentidadrelacin,estatcnicaserelacionaprincipalmenteconlosdatos.
Eldiagramadeflujodedatos,estaesutilizadaprincipalmenteparalosprocesos.30

Modeloorientadoaobjetos

Estosmodelostienensusracesenlaprogramacinorientadaaobjetosycomoconsecuenciadeellagiraentornoalconceptodeclase,tambinlohacen
elanlisisderequisitosyeldiseo.Estoademsdeintroducirnuevastcnicas,tambinaprovechalastcnicasyconceptosdeldesarrolloestructurado,
comodiagramasdeestadoytransiciones.Elmodeloorientadoaobjetostienedoscaractersticasprincipales,lascualeshafavorecidosuexpansin:

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 15/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Permitelareutilizacindesoftwareenungradosignificativo.
Su simplicidad facilita el desarrollo de herramientas informticas de ayuda al desarrollo, el cual es fcilmente implementada en una notacin
orientadaaobjetosllamadoUML.31

ModeloRAD(rapidapplicationdevelopment)
El RAD (rapid application development: desarrollo rpido de aplicaciones), es un modelo de proceso de software incremental, desarrollado
inicialmenteporJamesMaslowen1980,queresaltaprincipalmenteunciclocortodedesarrollo.

Esta es una metodologa que posibilita la construccin de sistemas computacionales que combinen tcnicas y utilidades CASE (Computer Aided
SoftwareEngineering),laconstruccindeprototiposcentradosenelusuarioyelseguimientolinealysistemticodeobjetivos,incrementandolarapidez
conlaqueseproducenlossistemasmediantelautilizacindeunenfoquededesarrollobasadoencomponentes.32

Si se entienden bien los requisitos y se limita el mbito del proyecto, el proceso RAD permite que un equipo de desarrollo cree un producto
completamentefuncionaldentrodeunperiodomuylimitadodetiemposinreducirenlomsmnimolacalidaddelmismo.33

Modelodedesarrolloconcurrente
Elmodelodedesarrolloconcurrenteesunmodelodetipodereddondetodaslaspersonasactansimultneamenteoalmismotiempo.Estetipode
modelosepuederepresentaramaneradeesquemacomounaseriedeactividadestcnicasimportantes,tareasyestadosasociadosaellas.

Elmodelodeprocesoconcurrentedefineunaseriedeacontecimientosquedispararantransicionesdeestadoaestadoparacadaunadelasactividadesde
laingenieradelsoftware.Porejemplo,durantelasprimerasetapasdeldiseo,nosecontemplaunainconsistenciadelmodelodeanlisis.Estogenerala
correccin del modelo de anlisis de sucesos, que disparara la actividad de anlisis del estado hecho al estado cambios en espera. Este modelo de
desarrolloseutilizaamenudocomoelparadigmadedesarrollodeaplicacionescliente/servidor.Unsistemacliente/servidorsecomponedeunconjunto
decomponentesfuncionales.Cuandoseaplicaacliente/servidor,elmodelodeprocesoconcurrentedefineactividadesendosdimensiones:unadivisin
desistemasyunadivisindecomponentes.Losaspectosdelniveldesistemasseafrontanmediantedosactividades:diseoyrealizacin.

Laconcurrenciaselogradedosmaneras:

Las actividades del sistema y de componente ocurren simultneamente y pueden modelarse con el enfoque orientado a objetos descrito
anteriormente
Una aplicacin cliente/servidor tpica se implementa con muchos componentes, cada uno de los cuales se pueden disear y realizar
concurrentemente.

Enrealidad,elmodelodedesarrolloconcurrenteesaplicableatodotipodedesarrollodesoftwareyproporcionaunaimagenexactadelestadoactualde
unproyecto.Envezdeconfinaractividadesdeingenieradesoftwareaunasecuenciadesucesos,defineunareddeactividades,todaslasactividadesde
la red existen simultneamente con otras. Los sucesos generados dentro de una actividad dada o algn otro lado de la red de actividad inicia las
transicionesentrelosestadosdeunaactividad.

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 16/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Procesounificadodeldesarrollodesoftware
Elprocesounificadoesunprocesodesoftwaregenricoquepuedeserutilizadoparaunagrancantidaddetiposdesistemasdesoftware,paradiferentes
reasdeaplicacin,diferentestiposdeorganizaciones,diferentesnivelesdecompetenciaydiferentestamaosdeproyectos.

Provee un enfoque disciplinado en la asignacin de tareas y responsabilidades dentro de una organizacin de desarrollo. Su meta es asegurar la
produccindesoftwaredemuyaltacalidadquesatisfagalasnecesidadesdelosusuariosfinales,dentrodeuncalendarioypresupuestopredecible.34

Elprocesounificadotienedosdimensiones:

Unejehorizontalquerepresentaeltiempoymuestralosaspectosdelciclodevidadelprocesoalolargodesudesenvolvimiento
Unejeverticalquerepresentalasdisciplinas,lascualesagrupanactividadesdeunamaneralgicadeacuerdoasunaturaleza.

La primera dimensin representa el aspecto dinmico del proceso conforme se va desarrollando, se expresa en trminos de fases, iteraciones e hitos
(milestones).

Lasegundadimensinrepresentaelaspectoestticodelproceso:cmoesdescritoentrminosdecomponentesdelproceso,disciplinas,actividades,
flujosdetrabajo,artefactosyroles.

ElrefinamientomsconocidoydocumentadodelprocesounificadoeselRUP(procesounificadoracional).

El proceso unificado no es simplemente un proceso, sino un marco de trabajo extensible que puede ser adaptado a organizaciones o proyectos
especficos.Delamismamanera,elprocesounificadoderational,tambinesunmarcodetrabajoextensible,porloquemuchasvecesresultaimposible
decirsiunrefinamientoparticulardelprocesohasidoderivadodelprocesounificadoodelRUP.Pordichomotivo,losdosnombressuelenutilizarse
parareferirseaunmismoconcepto.35

Producto
Elsoftwaresehaconvertidoenalgomuynecesarioennuestrasociedadactual,eslamquinaqueconducealatomadedecisionescomerciales,sirve
para la investigacin cientfica moderna, es un factor clave que diferencia productos y servicios modernos, etc. Esto se da porque el software est
inmersoensistemasdetodotipoalrededordenosotros.

Elsoftwaredecomputadoraeselproductoquediseanyconstruyenlosingenierosdesoftware.Estoabarcaprogramasqueseejecutandentrodeuna
computadora de cualquier tamao y arquitectura, despus de estar construido casi cualquier persona en el mundo industrializado, ya sea directa o
indirectamente.

Losproductossepuedenclasificaren:

Productosgenricos:Sonlosproducidosporunaorganizacinparaservendidosalmercado.

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 17/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Productoshechosamedida:Sistemasquesondesarrolladosbajopedidoaundesarrolladorespecfico.

Estosproductosdebencumplirvariascaractersticasalserentregados,estasson:

Mantenibles:Elsoftwaredebepoderevolucionarmientrascumpleconsusfunciones.
Confiabilidad:Nodebeproducirdaosencasodeerrores.
Eficiencia:Elsoftwarenodebedesperdiciarlosrecursos.
Utilizacinadecuada:Debecontarconunainterfazdeusuarioadecuadaysudocumentacin.

Loqueconstituyeelproductofinalesdiferenteparaelingenieroylosusuarios,paraelingenierosonlosprogramas,datosydocumentosqueconfiguran
elsoftwareperoparaelusuarioelproductofinaleslainformacinquedeciertomodosolucionaelproblemaplanteadoporelusuario.

NaturalezadelaIngenieradeSoftware
Laingenieradesoftwareesunadisciplinaqueestorientadaaaplicarconceptosymtodosdeingenieraaldesarrollodesoftwaredecalidad.

Matemticas

Losprogramastienenmuchaspropiedadesmatemticas.Porejemplolacorreccinylacomplejidaddemuchosalgoritmossonconceptosmatemticos
quepuedenserrigurosamenteprobados.ElusodematemticasenlaISesllamadomtodosformales.

Creacin

Los programas son construidos en una secuencia de pasos. El hecho de definir propiamente y llevar a cabo estos pasos, como en una lnea de
ensamblaje, es necesario para mejorar la productividad de los desarrolladores y la calidad final de los programas. Este punto de vista inspira los
diferentesprocesosymetodologasqueseencuentranenlaIS.

GestindeProyecto

Eldesarrollodesoftwaredegranporterequiereunaadecuadagestindelproyecto.Haypresupuestos,establecimientodetiemposdeentrega,unequipo
deprofesionalesqueliderar.Recursos(espaciodeoficina,insumos,equipamiento)poradquirir.Parasuadministracinsedebetenerunaclaravisiny
capacitacinengestindeproyectos.

Participantesypapeles
Paraeldesarrollodeunsistemadesoftwareesnecesarialacolaboracindemuchaspersonascondiversascompetencias,capacidadeseintereses.Al
conjuntodepersonasinvolucradasenelproyectoselesconocecomoparticipantes.

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 18/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Alconjuntodefuncionesyresponsabilidadesquehaydentrodelproyectoosistemaseleconocecomorolesopapeles.Losrolesestnasociadosalas
tareasquesonasignadasalosparticipantes,enconsecuencia,unapersonapuededesempearunoomltiplesroles,astambinunmismorolpuedeser
representadoporunequipo.36

Cliente
Es frecuente el uso de los trminos "usuarios", "usuarios finales" y "clientes" como sinnimos, lo cual puede provocar confusin estrictamente, el
cliente(persona,empresauorganizacin)esquinespecificalosrequisitosdelsistema,37entantoqueelusuarioesquienutilizauoperafinalmenteel
productosoftware,pudiendoseronoelcliente.

Desarrolladores
Estaclasedeparticipantesestnrelacionadoscontodaslasfacetasdelprocesodedesarrollodelsoftware.Sutrabajoincluyelainvestigacin,diseo,
implementacin,pruebasydepuracindelsoftware.38

Gestores
Enelcontextodeingenieradesoftware,elgestordedesarrollodesoftwareesunparticipante,quereportaaldirectorejecutivodelaempresaquepresta
el servicio de desarrollo. Es responsable del manejo y coordinacin de los recursos y procesos para la correcta entrega de productos de software,
mientrasparticipaenladefinicindelaestrategiaparaelequipodedesarrolladores,dandoiniciativasquepromuevanlavisindelaempresa.39

Usuariosfinales

Elusuariofinalesquieninteractaconelproductodesoftwareunavezesentregado.37Generalmentesonlosusuarioslosqueconocenelproblema,ya
quedaadaoperanlossistemas.

Cdigoticodeuningenierodesoftware
Uningenierodesoftwaredebeteneruncdigodondeasegura,enlamedidaposible,quelosesfuerzosrealizadosseutilizarnpararealizarelbieny
deben comprometerse para que la ingeniera de software sea una profesin benfica y respetada. Para el cumplimiento de esta norma, se toman en
cuenta ocho principios relacionados con la conducta y las decisiones tomadas por el ingeniero donde estos principios identifican las relaciones
ticamenteresponsablesdelosindividuos,gruposyorganizacionesdondeparticipen.Losprincipiosalosquedebensujetarsesonsobrelasociedad,
clienteyempresario,producto,juicio,administracin,profesin,colegasyporltimoelpersonal.

Sociedad:Losingenierosdesoftwaredebenactuardemaneracongruenteconelinterssocial,aceptandolaresponsabilidadtotaldesutrabajo,
moderandolosinteresesconelbienestarsocial,aprobandoelsoftwaresolamentesisetieneunacreenciabienfundamentada,cooperandoenlos
esfuerzos para solucionar asuntos importantes de inters social, ser justo y veraz en todas las afirmaciones relativas al software o documentos
asociados.

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 19/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Clienteyempresario:Sedebeactuardemaneratalquesellegueaconciliarlosmejoresinteresesdelosclientesyempresarios,congruentemente
conelinterssocial.Estosdebernprestarserviciosensusreasdecompetencia,siendohonestosyfrancossobrelaslimitaciones,noutilizarun
softwarequeseobtengailegalmenteosintica,usarlapropiedaddelosclientesoempresariosdemaneraautorizada,mantenersecretocualquier
documentodeinformacinconfidencial.
Producto:Hayqueasegurarsequelosproductosysusmodificacionescumplanconlosestndaresprofesionalesmsaltosposibles,procurandola
alta calidad, costos aceptables y una agenda razonable asegurando que los costos y beneficios sean claros y aceptados por el empresario y el
cliente.Asegurarquelasmetasyobjetivosdecualquierproyectoseanadecuadosyalcanzables.
Juicio: Se debe mantener una integridad e independencia en el juicio profesional, moderando todo juicio tcnico por la necesidad de apoyar y
mantenerlosvaloreshumanos,mantenerlaobjetividadprofesionalconrespectoacualquiersoftwareodocumentorelacionado,noinvolucrarse
enprcticasfinancierasfraudulentas.
Administracin:Sedeberasegurarunabuenaadministracinparacualquierproyectoenelcualsetrabaje,utilizandoprocedimientosefectivos
parapromoverlacalidadyreducirriesgos,asegurndosetambinqueseconozcanlaspolticasyprocedimientosdelempresarioparaproteger
contraseas,archivoseinformacinconfidencial.
Profesin:Sedebeincrementarlaintegridadyreputacindelaprofesinenconjuntoconelinterssocial,ayudandoaldesarrollodeunambiente
organizacional favorable para actuar, promoviendo el conocimiento pblico de la ingeniera de software, extendiendo el conocimiento de la
ingenieradesoftwarepormediodeparticipacionesenorganizaciones,reunionesypublicacionesprofesionales.
Colegas: Cada ingeniero deber apoyar y ser justos con los colegas, motivando a sus colegas sujetndose al cdigo, ayudando tambin a su
desarrollo profesional, reconocer los trabajos de otros y abstenerse a atribuirse de mritos indebidos, revisar los trabajos de manera objetiva,
sinceraypropiamentedocumentada.
Personal:Losingenierosdesoftwareparticiparantodasuvidaenelaprendizajeconlaprcticaypromovernunenfoqueticodelaprofesin,
mejorandosuconocimientodelosavancesenelanlisis,especificacin,diseo,desarrollo,mantenimiento,pruebasdelsoftwareydocumentos
relacionadosenconjuntoconadministracindelprocesodedesarrollo.40

Educacintica
Organizaciones
IEEEComputerSociety
AssociationforComputingMachinery(ACM).
SoftwareEngineeringInstitute(SEI).
BritishComputerSociety(BCS).
RUSSOFTAssociation
SocietyofSoftwareEngineers

Vasetambin
Anexo:Filosofasdeldesarrollodesoftware
Ingenieradesistemas
Ingenierainformtica
https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 20/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Gestindelaconfiguracin
Procesoparaeldesarrollodesoftware
Mantenimientodesoftware
Fragilidaddelsoftware
Errordesoftware
Usabilidad
MTRICA
Historiadelaingenieradelsoftware
Crisisdelsoftware
Nohaybalasdeplata

Referencias
1.IEEEStandardGlossaryofSoftwareEngineeringTerminology,IEEEstd610.121990,1990.ISBN155937067X.
2.SWEBOKexecutiveeditors,AlainAbran,JamesW.Mooreeditors,PierreBourque,RobertDupuis.(2004).PierreBourqueandRobertDupuis,ed.Guidetothe
SoftwareEngineeringBodyofKnowledge2004Version(http://www.swebok.org).IEEEComputerSociety.pp.11.ISBN0769523307.
3.ACM(2006).ComputingDegrees&Careers(http://computingcareers.acm.org/?page_id=12).ACM.Consultadoel23denoviembrede2010.
4.BureauofLaborStatistics,U.S.DepartmentofLabor,USDL052145:OccupationalEmploymentandWages,November2004(ftp://ftp.bls.gov/pub/news.release/o
cwage.txt),Table1.
5.UniversidadSigloXXI,Argentina(http://www.21.edu.ar/carreras/ingenieriaensoftware/)
6.UniversidadAutnomadeGuadalajara,Mxico(http://www.uag.mx/licenciatura/ensoftware/)
7.TecnolgicodeAntioqua,Colombia(http://www.tdea.edu.co/index.php?option=com_content&view=article&id=174)
8.Leondes(2002).intelligentsystems:technologyandapplications.CRCPress.ISBN9780849311215.
9.AnInvestigationofTherac25Accidents(http://courses.cs.vt.edu/professionalism/Therac_25/Therac_1.html)
10.ComputerRisks(http://catless.ncl.ac.uk/Risks)
11."Software engineering... has recently emerged as a discipline in its own right." cita libro | apellidos=Sommerville| nombre=Ian| ttulo=Software Engineering|
editorial=AddisonWesley|ao=1985|aooriginal=1982|isbn=0201142295|postscript=
12.UniversidadPolitcnicadeMadrid.Objetivosdeingenieradelsoftware(http://www.eui.upm.es/estudios/grados/software/objetivos).
13.Pressman,RogerS.(2003).Elproceso.Ingenieradelsoftware,unenfoqueprctico.Mxico:McGrawHill,quintaedicin.
14.IngenieriadeSoftwareUML(http://www.monografias.com/trabajos5/insof/insof.shtml),artculoenelsitiowebMonografas.Errorenlacita:Etiqueta <ref>no
vlidaelnombre"test"estdefinidovariasvecesconcontenidosdiferentesErrorenlacita:Etiqueta <ref> no vlida el nombre "test" est definido
variasvecesconcontenidosdiferentes
15.Monografias.comIngenieradelsoftware(http://www.monografias.com/trabajos5/inso/inso.shtml)
16.[1](http://yaqui.mxl.uabc.mx/~molguin/as/IngReq.htm)
17.[2](http://www.slideshare.net/marfonline/analisisderequerimientosingenieriadesoftware)
18.Unidad 2: Fundamentos de la ingeniera del software (http://ingsoftware072301.obolog.es/unidad2fundamentosingenieriasoftware2006544), artculo en el
sitiowebIngSoftware.
19.[3](http://catarina.udlap.mx/u_dl_a/tales/documentos/lis/fuentes_k_jf/capitulo2.pdf)
20.Sommerville,Ian.IngenieriadeSoftware.
21.Metodologiadeingenieradesoftware(http://www.slideshare.net/vdaniel20/metodologasyciclosdevida),artculoenelsitiowebSlideShare.

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 21/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

22.Ingenieradesoftware:ciclosdevidaymetodologas(http://web.archive.org/web/http://sistemas.uniandes.edu.co/~isis2603/dokuwiki/lib/exe/fetch.php?media=prin
cipal:isis2603modelosciclosdevida.pdf),artculopublicadoenelsitiowebdelaFacultaddeIngenieradelaUniversidaddeLosAndes.
23.Ciclodevidadelsoftware(http://es.ccm.net/contents/223ciclodevidadelsoftware).Consultadoel14/12/16.
24.Pressman,RogerS.:Ingenieradelsoftware:unenfoqueprctico.Sextaedicin,pg.5051.
25.LawrencePeleeger,Shari:Ingenieradesoftware:modelodeprototipos.UniversidadEstataldeMilagro.
26.Pressman,RogerS.:Ingenieradelsoftware:unenfoqueprctico.Sextaedicin,pg.5860.
27.Pressman,RogerS.:Ingenieradelsoftware:unenfoqueprctico.Sextaedicin,pg.5253.
28.Diseoestructurado(http://www.slideshare.net/waralivt/desarrolloestructurado15323143),artculoenelsitiowebSlideShare.
29.[4](http://cuadrocomparativodeprogramacion.blogspot.com/2012/11/cuadrocomparativodeprogramacion.html),cuadrocomparativodeprogramacinestructurada
yprogramacinorientadaobjeto.
30.[5] (http://books.google.com.pa/books?id=_tKTpr4Ah88C&printsec=frontcover&dq=ingenieria+de+software&hl=es&sa=X&ei=g3k8U6KDDKe0sQS8poDIAQ&re
dir_esc=y#v=onepage&q=ingenieria%20de%20software&f=false),BenetCampderrichFalgueras,EditorialUOC,2002320pginas.
31.CampderrichFalgueras,Benet(2002):Ingenieradesoftware.(http://books.google.com.pa/books?id=_tKTpr4Ah88C&printsec=frontcover&dq=ingenieria+de+soft
ware&hl=es&sa=X&ei=g3k8U6KDDKe0sQS8poDIAQ&redir_esc=y#v=onepage&q=ingenieria%20de%20software&f=false) Barcelona: Editorial UOC, 2002.
320pginas.
32.[6](http://www.casemaker.com/download/products/totem/rad_wp.pdf),WhatisRapidApplicationDevelopment?
33.Pressman,RogerS.:Ingenieradelsoftware:unenfoqueprctico.Sextaedicin,pg.5354.
34.Procesounificadodeldesarrollodesoftware(http://yaqui.mxl.uabc.mx/~molguin/as/RUP.htm),artculoenelsitiowebYaqui.
35.Pressman,RogerS.:Ingenieradelsoftware:unenfoqueprctico.Sextaedicin,pg.6772.
36.BerndBruegge&AllenH.Dutoit.ObjectOrientedSoftwareEngineering,PrenticeHall,Pag.11.
37.Pressman,2002,p.39
38.O*NET Code Connector Software Developers, Systems Software 151133.00 (http://www.onetcodeconnector.org/ccreport/151133.00).
Onetcodeconnector.org.Consultadoel4deagostode2014.
39.SoftwareDevelopmentManagerPositionDescription(http://interfacing.com/uploads/Jobs/SoftwareDevelopmentManager.pdf).interfacing.com.Consultadoel
4deagostode2014.
40.Ingeniera de Software Cdigo de tica y Prctica Profesional (http://seeri.etsu.edu/Codes/SpanishVersionSECode.htm). SEERI, East Tennessee State
University.1999.

Bibliografa
Ingenieradesoftware(sextaedicin),IanSommerville.AddisonWesley.SitioenIngls(http://www.booksites.net)
Pressman,RogerS.:Ingenieradelsoftware:unenfoqueprctico(informacineningls).(http://highered.mcgrawhill.com/sites/0072853182/inf
ormation_center_view0/)McGrawHillHigherEducation,sextaedicin,pg.5051.

Enlacesexternos
WikiversidadalbergaproyectosdeaprendizajesobreIngenieradesoftware.
Is software engineering actually engineering? (http://iwarrior.uwaterloo.ca/?
module=displaystory&story_id=1051&format=html&edition_id=1), artculo publicado en The Iron Warrior, publicacin de la University of
WaterlooEngineeringSociety.

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 22/23
11/4/2017 IngenieradesoftwareWikipedia,laenciclopedialibre

Obtenidodehttps://es.wikipedia.org/w/index.php?title=Ingeniera_de_software&oldid=97462300

Categoras: Diseodesoftware Ingenieradesoftware Programacin

Estapginafuemodificadaporltimavezel10mar2017alas01:18.
EltextoestdisponiblebajolaLicenciaCreativeCommonsAtribucinCompartirIgual3.0puedenaplicarseclusulasadicionales.Alusareste
sitio,ustedaceptanuestrostrminosdeusoynuestrapolticadeprivacidad.
WikipediaesunamarcaregistradadelaFundacinWikimedia,Inc.,unaorganizacinsinnimodelucro.

https://es.wikipedia.org/wiki/Ingenier%C3%ADa_de_software 23/23

Potrebbero piacerti anche