SlideShare una empresa de Scribd logo
1 de 3
INGENIERÍA DE SOFTWARE I – UNIVERSIDAD SERGIO ARBOLEDA

Abstract—Software Engineering is considered nowadays an
important science and field of study for establishing software
development methodologies. In the following paper a
conceptualization about SI is presented and the challenges
presented in that discipline in the XXI century.
Index Terms—Software, Development, Methodologies,
Evaluation.
I. INTRODUCCIÓN
A ingeniería de software consiste en dar una
orientación sistemática y cuantificable al software, como
facilitadora para su creación y posterior mantenimiento en
diferentes escenarios.
La carencia de aplicación de ingeniería de software trae
como consecuencia que el software tienda a fallar, a ser más
difícil de analizar y a causar retrasos a las personas que lo
requieren, como se evidenció por ejemplo en los años 50
donde aún no se consideraba como disciplina. Posteriormente
se produjo un suceso conocido como "La crisis del software"
donde la comunidad estudiosa del software se reunió y
comenzó a establecer estándares y formalizar el trabajo de los
ingenieros de software (que en ese momento su metodología
no era lo suficientemente estructurada). Tras terminar la
segunda guerra mundial se refinó el proceso de elaboración
del software agregándole la calidad del mismo.
En la actualidad existe un amplio estudio sobre el
planteamiento de dichas metodologías, por ejemplo, Pressman
estableció que la ingeniería de software podría tener 7
enfoques: de sistemas, de aplicación, científico y de
ingeniería, empotrado, de línea de productos, aplicaciones web
y de Inteligencia Artificial.
Esta ingeniería también puede definirse como un área de las
ciencias computacionales donde se hace uso de la gestión de
proyectos, diseño, desarrollo, documentación pruebas, control
y gestión de calidad y mantenimiento de software; esta ha
cobrado mayor importancia debido a que al transcurrir del
tiempo se demanda software con mayores funcionalidades y
especificaciones causando que este tenga una mayor injerencia
social y deba orientarse siempre a lo que busca el cliente
ofreciendo herramientas fiables.
II. HISTORIA
En 1980, Estados Unidos hizo uso de tarjetas perforadas y
máquinas tabuladoras para realizar el censo nacional diseñadas
por Hernan Hollerith (donde su compañía sería la base del
origen de IBM). Hacia 1950 se crearon los primeros
compiladores y lenguajes de programación orientando a la
ingeniería de software solamente hacia la programación (en
ese entonces estructurada, por ende haciendo que los
programas fuesen extensos y poco controlables).
En 1967 se estableció el grupo de estudios en ciencias
computacionales en la OTAN. Ese mismo año se realizó una
conferencia en Alemania para discutir el proceso de
producción de software, la formación de ingenieros de
software, entre otras temáticas.
Así mismo el software fue evolucionando como se describe
en 4 etapas: los primeros años (donde se introdujo el
procesamiento por lotes y software a la medida), la segunda
era (apareció la programación multiusuario y en tiempo real,
las bases de datos y el aumento en consumo de software), la
tercera era (se crearon los sistemas distribuidos y se introdujo
el concepto de inteligencia de software, aumento de consumo
y baja de precios de hardware) y la cuarta era (se incrementó
la potencia de los equipos, se introdujo la programación
orientada a objetos, aplicaciones de inteligencia artificial,
programación concurrente y crecimiento de las redes de
computadores).
III. CICLO DE VIDA DEL SOFTWARE
Al pasar del tiempo se propusieron diferentes modelos del
ciclo de vida del software, el ciclo de vida en cascada donde se
estableció el desarrollo lineal y secuencial de las actividades
(desde el análisis previo hasta su desarrollo y posterior
mantenimiento) e hizo una analogía con la cascada debido a
que entre más fuerte fuese un cambio en etapas avanzadas del
software, se hacía mucho más difícil volver a estados
anteriores del mismo. El ciclo de vida basado en prototipos en
el año 1975 donde se hacía un prototipo del software a
desarrollar en etapas tempranas de su desarrollo con el fin de
que el cliente pudiese visualizar desde un primer momento las
funcionalidades que poseería el software. Es un ciclo de vida
evolutivo estableciendo que si se agrega personal a un
proyecto atrasado, este se retrasará aún más. El ciclo de vida
incremental, también proceso evolutivo, donde el software se
desarrolla sobre versiones intermedias donde una nueva
versión es igual a la anterior agregándole los nuevos
Ingeniería de Software: Conceptos y Retos
(February 2015)
Laura Brugés, Steven Suárez Universidad Sergio Arboleda
L
INGENIERÍA DE SOFTWARE I – UNIVERSIDAD SERGIO ARBOLEDA
requerimientos establecidos por el cliente que surgen durante
su desarrollo. El ciclo de vida en espiral el cual agrega una
nueva fase en el desarrollo de software de evaluación e
identificación de riesgos contemplando tres tipos: riesgos de
proyecto, riesgos técnicos y riesgos del negocio. El ciclo de
vida de agrupamiento o de clúster que está orientado a objetos
donde se desarrollan componentes o agregaciones donde cada
uno tendrá su propio ciclo de vida, especificación, diseño, etc.
El ciclo de vida fuente, igualmente orientado a objetos donde
se contempla en concepto de piscina (donde reposan las clases
del sistema). Cuenta con tres fases: la del negocio,
construcción y entrega. El ciclo de vida rápido de aplicaciones
donde se promueve el uso de programación visual y los
generadores automáticos de aplicaciones donde se aumenta la
productividad de los programadores y se disminuye su tiempo
de desarrollo. El ciclo de vida en remolino donde se amplía la
versión del ciclo de vida en cascada donde se lleva un proceso
iterativo hasta que se alcance el nivel de detalle deseado
siendo multi-cíclico semejante a la forma de un remolino. En
1990 la institución ISO, encargada de establecer estándares a
nivel global, se estableció el 12207 donde el ciclo de vida del
software está conformado por 5 procesos principales
(adquisición, suministro, desarrollo, operación y
mantenimiento que consiste a los cambios realizados sobre el
software), 4 procesos organizacionales (gestión,
infraestructura, mejora en los procesos y formación) y 8 de
apoyo (documentación, gestión de la configuración,
verificación, validación del cumplimiento de los requisitos ,
revisión conjunta, auditoría y resolución de problemas.
IV. DESARROLLO DEL SOFTWARE EN LATINOAMÉRICA
La ingeniería de Software puede ser considerada como una
alternativa de consolidación económica y de desarrollo por lo
que resulta ideal para Latino América donde es una industria
en crecimiento para así poder tener más herramientas para
competir a nivel global. Países como Costa Rica han mostrado
interés en obtener certificaciones relacionadas con software
como las normad de ISO 9000 y 2000, habiendo establecido
igualmente un plan de desarrollo de software. También se han
evidenciado avances en países como Argentina, Chile, Brasil,
Uruguay, Perú, Venezuela y Bolivia donde se han establecido
organismos específicos para ocuparse de esta área.
En Colombia por su parte la industria del software es
creciente contando con varias empresas certificadas en ISO y
CMMI donde sin embargo falta inversión en dicha materia y
en el área de tecnología. Así mismo, Colombia exporta
servicios de consultoría, desarrollo e ingeniería de software
que se ve limitado debido al nivel de bilingüismo. Por su parte
en Colombia se encuentran instituciones como FEDESOFT,
INDUSOFT y FEDECOLSOFT entre otras. Más
recientemente se fundó el ministerio especializado en
tecnologías de la información (min TIC). Así mismo tiene
políticas de derechos de autor, reglamentación de inscripción
de soporte lógico, entre otros.
V. VISIÓN GLOBAL DE LA INGENIERÍA DE SOFTWARE
Para poder dar una visión global de la ingeniería de software
tenemos que partir desde el punto de que esta no se refiere
solamente a la elaboración de código para satisfacer
determinado algoritmo, sino que procede a llevar todo un
análisis complejo de circunstancias y procesos ingenieriles que
le constituyen al desarrollo de software su calificación como
una ingeniería; esto se empezó a tomar en cuenta a partir de la
reunión de la OTAN en la cual se aceptó que había una crisis
del software, y se determinó que a la par que la construcción
de software era cada vez más compleja atentando a buscar
resultados mayores la escritura de código se volvía una parte
esencialmente pequeña.
Para poder dar solución a la llamada crisis se buscó la manera
de reducir problemas tales como la fiabilidad y el
mantenimiento, se determinó que para la elaboración de un
software hay que tener en cuenta características como que sea
fiable, fácil de modificar, que sea portable y predecible
además de que respete los tiempos requeridos por los usuarios,
es por estas características que el desarrollo de software puede
ser considerado toda una ciencia e incluso una realización de
arte.
VI. PANORAMA DE LA INGENIERÍA DE SOFTWARE
La elaboración de software requiere además de las siguientes
partes para obtener un producto de calidad, teniendo en cuenta
al componente humano como factor esencial del desarrollo:
- Formación académica: Los profesionales que se
dediquen a la elaboración de software deben de
mantenerse en un proceso de perfeccionamiento
continuo de sus habilidades, las instituciones que
pretendan formar a estos deben de brindar apoyo
como dirección profesional u opciones de becas.
- Atributos de los productos software: Como se había
mencionado antes un software debe de ser fiable,
fácil de modificar, que sea portable y predecible
además de que respete los tiempos requeridos por los
usuarios, pero estas características pueden variar
dependiendo de los propósitos del software, cosa que
siempre ha de tener en cuenta el desarrollador.
- Responsabilidad ética y profesional: Los ingenieros
de software se encuentran sometidos a las
regulaciones legales y éticas establecidas por
organizaciones como la IEEE e incluso por las
restricciones de su entorno laboral, mayormente se
puede destacar que un ingeniero debe de
comprometerse únicamente con labores que se
encuentren al margen de sus capacidades, que debe
respetar la confidencialidad de sus cliente y sobre
todo aplicar un buen uso del software de las
compañías o afiliados que llegue a conseguir en su
entorno laboral.
INGENIERÍA DE SOFTWARE I – UNIVERSIDAD SERGIO ARBOLEDA
VII. PROSPECTIVA DE LA INGENIERÍA DE SOFTWARE
El desarrollo de software debe partir de la premisa de “El todo
por encima de las partes” logrando así un mejor manejo de la
complejidad de la problemática que se trata de solucionar,
también caben como factores que afectan al desarrollo,
además de llevar conceptos teóricos siempre a formas
prácticas.
Gaston Berger propone un método para la evaluación futura
del desarrollo software, lo cual es una problemática que
implica muchas variables a consideración por lo tanto es algo
muy complejo de realizar, este método se divide en los
siguientes componentes:
- Calidad del software: Seguridad, disponibilidad y
usabilidad
- Servicios y modelos del negocio: Optimización de
servicios y recursos.
- Dispositivos móviles y Conectividad: Conexión entre
diferentes componentes solucionando problemas de
estabilidad.
- Recurso humano competente: Definir control de
calidad de las labores humanas
VIII. TENDENCIAS
Las tendencias son un problema a la hora de desarrollar,
problemas como brechas generacionales o culturales pueden
determinar el éxito de un software hay que tener en cuenta
aspectos como el uso de métodos agiles que permitan la fácil
adaptación a los diversos cambios comerciales que se puedan
presentar, además de tomar en cuenta que las soluciones que
pueden ofrecerse con un software en el momento de ser
ofertadas a publico pueden tornarse en cosas obsoletas; se
incentiva a la prueba previa al lanzamiento del software con el
propósito de satisfacer unas necesidades globales, además de
determinar un correcto mecanismo de evaluación de calidad
que pueda ser implementado por todos los productores de
software.
IX. PROSPECTIVAS DE LAS NECESIDADES DE LA SOCIEDAD
ACTUAL
Con el desarrollo de software surge el problema del control de
la información, siendo esta ultima el eje central de todo el
desarrollo del software; las personas y las herramientas son
usadas con el propósito de mejorar la gestión de la
información y podercompartirla con la sociedad de una u otra
manera mejorando aspectos de calidad de vida por ejemplo
Thomas Davenport determinó que la gestión de la
información, o mejor dicho del conocimiento, consiste en
planear, coordinar y controlar diversos flujos de información
dentro de una organización para poder mejorar y producir
competencias.
Las organizaciones deben de contar con los siguientes cuatro
pilares primordiales que permitan el desarrollo y gestión del
conocimiento:
- Personas:Recurso humano
- Procesos:Estrategia de negocio
- Contenido: Manejo de información critica
- Tecnología: Software y hardware dedicado a la
recolección y el procesamiento de la información
X. CONCLUSIONES
La Ingeniería de Software ha aportado elementos esenciales en
las metodologías de desarrollo de software haciéndolas menos
propensas a fallos, dándoles un carácter mayor de durabilidad,
de fiabilidad y dependiendo de la situación la portabilidad
ofreciendo calidad y por ende beneficios a los clientes.
El desarrollo del software puede verse totalmente relacionado
al control del manejo humano y sobre todo a la ciencia de la
administración, hay que tener un riguroso control del manejo
de la información y definir que se hará con esta, lo cual genera
necesidad de planear, definir, organizar y controlar ciertas
labores, esto puede ser relacionado a las labores de un gerente
y en base a esto surgen los CIO o Chief Information Officer
REFERENCIAS
[1] Instituto Antioqueño de Investigación, LIBRO BLANCO DE LA
INGENIERÍA DE SOFTWARE EN AMÉRICA LATINA 1st
ed.
Colombia. pp. 23-44, 81-94.

Más contenido relacionado

La actualidad más candente

Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de softwarenancyespe21
 
Investigación de ingeniería de software
Investigación de ingeniería de software Investigación de ingeniería de software
Investigación de ingeniería de software ingenieriadsoftware
 
Tarea(1)
Tarea(1)Tarea(1)
Tarea(1)daniel
 
Computación i mariangel_garcia
Computación i mariangel_garciaComputación i mariangel_garcia
Computación i mariangel_garciamarifabi5
 
Trabajo investigacion (jeiner gonzalez.b)
Trabajo investigacion (jeiner gonzalez.b)Trabajo investigacion (jeiner gonzalez.b)
Trabajo investigacion (jeiner gonzalez.b)Jeiner Gonzalez Blanco
 
Ingenieria open source
Ingenieria open sourceIngenieria open source
Ingenieria open sourceHoward Pernía
 
A1 u1 tabla comparativa de organizaciones normalizadoras
A1 u1 tabla comparativa de organizaciones normalizadorasA1 u1 tabla comparativa de organizaciones normalizadoras
A1 u1 tabla comparativa de organizaciones normalizadorasSusi Perez Gallegos
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobarEdwin Alexander
 
Trabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueTrabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueJosue Zelaya
 
Linea de Produccion de Software y Metodo Watch
Linea de Produccion de Software y Metodo WatchLinea de Produccion de Software y Metodo Watch
Linea de Produccion de Software y Metodo WatchEdisson Acosta
 

La actualidad más candente (19)

Ingenieria de software
Ingenieria de softwareIngenieria de software
Ingenieria de software
 
Niebla sortillon jesus francisco actividad1.1 si5 1
Niebla sortillon jesus francisco actividad1.1 si5 1Niebla sortillon jesus francisco actividad1.1 si5 1
Niebla sortillon jesus francisco actividad1.1 si5 1
 
Ingenieria de Software
Ingenieria de Software Ingenieria de Software
Ingenieria de Software
 
Software
SoftwareSoftware
Software
 
Software
SoftwareSoftware
Software
 
Investigación de ingeniería de software
Investigación de ingeniería de software Investigación de ingeniería de software
Investigación de ingeniería de software
 
12 articulo rev-tec-num-2
12 articulo rev-tec-num-212 articulo rev-tec-num-2
12 articulo rev-tec-num-2
 
Edgar
EdgarEdgar
Edgar
 
Tarea(1)
Tarea(1)Tarea(1)
Tarea(1)
 
Computación i mariangel_garcia
Computación i mariangel_garciaComputación i mariangel_garcia
Computación i mariangel_garcia
 
Trabajo investigacion (jeiner gonzalez.b)
Trabajo investigacion (jeiner gonzalez.b)Trabajo investigacion (jeiner gonzalez.b)
Trabajo investigacion (jeiner gonzalez.b)
 
Comunicacion y colaboracion
Comunicacion y colaboracionComunicacion y colaboracion
Comunicacion y colaboracion
 
Ingenieria open source
Ingenieria open sourceIngenieria open source
Ingenieria open source
 
A1 u1 tabla comparativa de organizaciones normalizadoras
A1 u1 tabla comparativa de organizaciones normalizadorasA1 u1 tabla comparativa de organizaciones normalizadoras
A1 u1 tabla comparativa de organizaciones normalizadoras
 
Edwin alexande mata escobar
Edwin alexande mata escobarEdwin alexande mata escobar
Edwin alexande mata escobar
 
Comunicación y colaboración
Comunicación y colaboraciónComunicación y colaboración
Comunicación y colaboración
 
Trabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josueTrabajo diapositiva modulo 3 de josue
Trabajo diapositiva modulo 3 de josue
 
Desarrollo de software
Desarrollo de softwareDesarrollo de software
Desarrollo de software
 
Linea de Produccion de Software y Metodo Watch
Linea de Produccion de Software y Metodo WatchLinea de Produccion de Software y Metodo Watch
Linea de Produccion de Software y Metodo Watch
 

Similar a Ingeniería de Software 1

Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosRafael Fdo Lopez Castillo
 
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptxingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptxMaikoUrizar1
 
Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software jevo1994
 
Dialnet del manifiestoagilsusvaloresy-principios-4809645
Dialnet del manifiestoagilsusvaloresy-principios-4809645Dialnet del manifiestoagilsusvaloresy-principios-4809645
Dialnet del manifiestoagilsusvaloresy-principios-4809645QAexpert
 
Ciclo de de_desarrollo_de_software
Ciclo de de_desarrollo_de_softwareCiclo de de_desarrollo_de_software
Ciclo de de_desarrollo_de_softwaremichaeldejesus17
 
Trabajo diapositiva Software por Jhonatan Ruiz
Trabajo diapositiva  Software por Jhonatan RuizTrabajo diapositiva  Software por Jhonatan Ruiz
Trabajo diapositiva Software por Jhonatan Ruizjhonatanalex
 
Trabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanTrabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanjhonatanalex
 
Tendencias actuales del desarrollo de software
Tendencias actuales del desarrollo de softwareTendencias actuales del desarrollo de software
Tendencias actuales del desarrollo de softwareCoordinador Ordoñez
 

Similar a Ingeniería de Software 1 (20)

Ingeniería de Software: Conceptos y Retos
Ingeniería de Software: Conceptos y Retos Ingeniería de Software: Conceptos y Retos
Ingeniería de Software: Conceptos y Retos
 
Ingeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelosIngeniería de software - Descripción, características, modelos
Ingeniería de software - Descripción, características, modelos
 
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptxingenieradesoftwareii-140115210933-phpapp01 (1).pptx
ingenieradesoftwareii-140115210933-phpapp01 (1).pptx
 
Morales aguirreguillermo
Morales aguirreguillermoMorales aguirreguillermo
Morales aguirreguillermo
 
Ingeniería de software
Ingeniería de software Ingeniería de software
Ingeniería de software
 
Plan
PlanPlan
Plan
 
Dialnet del manifiestoagilsusvaloresy-principios-4809645
Dialnet del manifiestoagilsusvaloresy-principios-4809645Dialnet del manifiestoagilsusvaloresy-principios-4809645
Dialnet del manifiestoagilsusvaloresy-principios-4809645
 
Ensayo (El Software)
Ensayo (El Software)Ensayo (El Software)
Ensayo (El Software)
 
Selección de técnicas de ingeniería de software
Selección de técnicas de ingeniería de softwareSelección de técnicas de ingeniería de software
Selección de técnicas de ingeniería de software
 
Presentación de software
Presentación de softwarePresentación de software
Presentación de software
 
Presentación de software
Presentación de softwarePresentación de software
Presentación de software
 
Presentación de software
Presentación de softwarePresentación de software
Presentación de software
 
Presentación de software
Presentación de softwarePresentación de software
Presentación de software
 
Ensayo sobre la calidad de software
Ensayo sobre la calidad de softwareEnsayo sobre la calidad de software
Ensayo sobre la calidad de software
 
Ensayo sobre la calidad de software
Ensayo sobre la calidad de softwareEnsayo sobre la calidad de software
Ensayo sobre la calidad de software
 
Ensayo sobre la calidad de software
Ensayo sobre la calidad de softwareEnsayo sobre la calidad de software
Ensayo sobre la calidad de software
 
Ciclo de de_desarrollo_de_software
Ciclo de de_desarrollo_de_softwareCiclo de de_desarrollo_de_software
Ciclo de de_desarrollo_de_software
 
Trabajo diapositiva Software por Jhonatan Ruiz
Trabajo diapositiva  Software por Jhonatan RuizTrabajo diapositiva  Software por Jhonatan Ruiz
Trabajo diapositiva Software por Jhonatan Ruiz
 
Trabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatanTrabajo diapositiva modulo 3 de jhonatan
Trabajo diapositiva modulo 3 de jhonatan
 
Tendencias actuales del desarrollo de software
Tendencias actuales del desarrollo de softwareTendencias actuales del desarrollo de software
Tendencias actuales del desarrollo de software
 

Ingeniería de Software 1

  • 1. INGENIERÍA DE SOFTWARE I – UNIVERSIDAD SERGIO ARBOLEDA  Abstract—Software Engineering is considered nowadays an important science and field of study for establishing software development methodologies. In the following paper a conceptualization about SI is presented and the challenges presented in that discipline in the XXI century. Index Terms—Software, Development, Methodologies, Evaluation. I. INTRODUCCIÓN A ingeniería de software consiste en dar una orientación sistemática y cuantificable al software, como facilitadora para su creación y posterior mantenimiento en diferentes escenarios. La carencia de aplicación de ingeniería de software trae como consecuencia que el software tienda a fallar, a ser más difícil de analizar y a causar retrasos a las personas que lo requieren, como se evidenció por ejemplo en los años 50 donde aún no se consideraba como disciplina. Posteriormente se produjo un suceso conocido como "La crisis del software" donde la comunidad estudiosa del software se reunió y comenzó a establecer estándares y formalizar el trabajo de los ingenieros de software (que en ese momento su metodología no era lo suficientemente estructurada). Tras terminar la segunda guerra mundial se refinó el proceso de elaboración del software agregándole la calidad del mismo. En la actualidad existe un amplio estudio sobre el planteamiento de dichas metodologías, por ejemplo, Pressman estableció que la ingeniería de software podría tener 7 enfoques: de sistemas, de aplicación, científico y de ingeniería, empotrado, de línea de productos, aplicaciones web y de Inteligencia Artificial. Esta ingeniería también puede definirse como un área de las ciencias computacionales donde se hace uso de la gestión de proyectos, diseño, desarrollo, documentación pruebas, control y gestión de calidad y mantenimiento de software; esta ha cobrado mayor importancia debido a que al transcurrir del tiempo se demanda software con mayores funcionalidades y especificaciones causando que este tenga una mayor injerencia social y deba orientarse siempre a lo que busca el cliente ofreciendo herramientas fiables. II. HISTORIA En 1980, Estados Unidos hizo uso de tarjetas perforadas y máquinas tabuladoras para realizar el censo nacional diseñadas por Hernan Hollerith (donde su compañía sería la base del origen de IBM). Hacia 1950 se crearon los primeros compiladores y lenguajes de programación orientando a la ingeniería de software solamente hacia la programación (en ese entonces estructurada, por ende haciendo que los programas fuesen extensos y poco controlables). En 1967 se estableció el grupo de estudios en ciencias computacionales en la OTAN. Ese mismo año se realizó una conferencia en Alemania para discutir el proceso de producción de software, la formación de ingenieros de software, entre otras temáticas. Así mismo el software fue evolucionando como se describe en 4 etapas: los primeros años (donde se introdujo el procesamiento por lotes y software a la medida), la segunda era (apareció la programación multiusuario y en tiempo real, las bases de datos y el aumento en consumo de software), la tercera era (se crearon los sistemas distribuidos y se introdujo el concepto de inteligencia de software, aumento de consumo y baja de precios de hardware) y la cuarta era (se incrementó la potencia de los equipos, se introdujo la programación orientada a objetos, aplicaciones de inteligencia artificial, programación concurrente y crecimiento de las redes de computadores). III. CICLO DE VIDA DEL SOFTWARE Al pasar del tiempo se propusieron diferentes modelos del ciclo de vida del software, el ciclo de vida en cascada donde se estableció el desarrollo lineal y secuencial de las actividades (desde el análisis previo hasta su desarrollo y posterior mantenimiento) e hizo una analogía con la cascada debido a que entre más fuerte fuese un cambio en etapas avanzadas del software, se hacía mucho más difícil volver a estados anteriores del mismo. El ciclo de vida basado en prototipos en el año 1975 donde se hacía un prototipo del software a desarrollar en etapas tempranas de su desarrollo con el fin de que el cliente pudiese visualizar desde un primer momento las funcionalidades que poseería el software. Es un ciclo de vida evolutivo estableciendo que si se agrega personal a un proyecto atrasado, este se retrasará aún más. El ciclo de vida incremental, también proceso evolutivo, donde el software se desarrolla sobre versiones intermedias donde una nueva versión es igual a la anterior agregándole los nuevos Ingeniería de Software: Conceptos y Retos (February 2015) Laura Brugés, Steven Suárez Universidad Sergio Arboleda L
  • 2. INGENIERÍA DE SOFTWARE I – UNIVERSIDAD SERGIO ARBOLEDA requerimientos establecidos por el cliente que surgen durante su desarrollo. El ciclo de vida en espiral el cual agrega una nueva fase en el desarrollo de software de evaluación e identificación de riesgos contemplando tres tipos: riesgos de proyecto, riesgos técnicos y riesgos del negocio. El ciclo de vida de agrupamiento o de clúster que está orientado a objetos donde se desarrollan componentes o agregaciones donde cada uno tendrá su propio ciclo de vida, especificación, diseño, etc. El ciclo de vida fuente, igualmente orientado a objetos donde se contempla en concepto de piscina (donde reposan las clases del sistema). Cuenta con tres fases: la del negocio, construcción y entrega. El ciclo de vida rápido de aplicaciones donde se promueve el uso de programación visual y los generadores automáticos de aplicaciones donde se aumenta la productividad de los programadores y se disminuye su tiempo de desarrollo. El ciclo de vida en remolino donde se amplía la versión del ciclo de vida en cascada donde se lleva un proceso iterativo hasta que se alcance el nivel de detalle deseado siendo multi-cíclico semejante a la forma de un remolino. En 1990 la institución ISO, encargada de establecer estándares a nivel global, se estableció el 12207 donde el ciclo de vida del software está conformado por 5 procesos principales (adquisición, suministro, desarrollo, operación y mantenimiento que consiste a los cambios realizados sobre el software), 4 procesos organizacionales (gestión, infraestructura, mejora en los procesos y formación) y 8 de apoyo (documentación, gestión de la configuración, verificación, validación del cumplimiento de los requisitos , revisión conjunta, auditoría y resolución de problemas. IV. DESARROLLO DEL SOFTWARE EN LATINOAMÉRICA La ingeniería de Software puede ser considerada como una alternativa de consolidación económica y de desarrollo por lo que resulta ideal para Latino América donde es una industria en crecimiento para así poder tener más herramientas para competir a nivel global. Países como Costa Rica han mostrado interés en obtener certificaciones relacionadas con software como las normad de ISO 9000 y 2000, habiendo establecido igualmente un plan de desarrollo de software. También se han evidenciado avances en países como Argentina, Chile, Brasil, Uruguay, Perú, Venezuela y Bolivia donde se han establecido organismos específicos para ocuparse de esta área. En Colombia por su parte la industria del software es creciente contando con varias empresas certificadas en ISO y CMMI donde sin embargo falta inversión en dicha materia y en el área de tecnología. Así mismo, Colombia exporta servicios de consultoría, desarrollo e ingeniería de software que se ve limitado debido al nivel de bilingüismo. Por su parte en Colombia se encuentran instituciones como FEDESOFT, INDUSOFT y FEDECOLSOFT entre otras. Más recientemente se fundó el ministerio especializado en tecnologías de la información (min TIC). Así mismo tiene políticas de derechos de autor, reglamentación de inscripción de soporte lógico, entre otros. V. VISIÓN GLOBAL DE LA INGENIERÍA DE SOFTWARE Para poder dar una visión global de la ingeniería de software tenemos que partir desde el punto de que esta no se refiere solamente a la elaboración de código para satisfacer determinado algoritmo, sino que procede a llevar todo un análisis complejo de circunstancias y procesos ingenieriles que le constituyen al desarrollo de software su calificación como una ingeniería; esto se empezó a tomar en cuenta a partir de la reunión de la OTAN en la cual se aceptó que había una crisis del software, y se determinó que a la par que la construcción de software era cada vez más compleja atentando a buscar resultados mayores la escritura de código se volvía una parte esencialmente pequeña. Para poder dar solución a la llamada crisis se buscó la manera de reducir problemas tales como la fiabilidad y el mantenimiento, se determinó que para la elaboración de un software hay que tener en cuenta características como que sea fiable, fácil de modificar, que sea portable y predecible además de que respete los tiempos requeridos por los usuarios, es por estas características que el desarrollo de software puede ser considerado toda una ciencia e incluso una realización de arte. VI. PANORAMA DE LA INGENIERÍA DE SOFTWARE La elaboración de software requiere además de las siguientes partes para obtener un producto de calidad, teniendo en cuenta al componente humano como factor esencial del desarrollo: - Formación académica: Los profesionales que se dediquen a la elaboración de software deben de mantenerse en un proceso de perfeccionamiento continuo de sus habilidades, las instituciones que pretendan formar a estos deben de brindar apoyo como dirección profesional u opciones de becas. - Atributos de los productos software: Como se había mencionado antes un software debe de ser fiable, fácil de modificar, que sea portable y predecible además de que respete los tiempos requeridos por los usuarios, pero estas características pueden variar dependiendo de los propósitos del software, cosa que siempre ha de tener en cuenta el desarrollador. - Responsabilidad ética y profesional: Los ingenieros de software se encuentran sometidos a las regulaciones legales y éticas establecidas por organizaciones como la IEEE e incluso por las restricciones de su entorno laboral, mayormente se puede destacar que un ingeniero debe de comprometerse únicamente con labores que se encuentren al margen de sus capacidades, que debe respetar la confidencialidad de sus cliente y sobre todo aplicar un buen uso del software de las compañías o afiliados que llegue a conseguir en su entorno laboral.
  • 3. INGENIERÍA DE SOFTWARE I – UNIVERSIDAD SERGIO ARBOLEDA VII. PROSPECTIVA DE LA INGENIERÍA DE SOFTWARE El desarrollo de software debe partir de la premisa de “El todo por encima de las partes” logrando así un mejor manejo de la complejidad de la problemática que se trata de solucionar, también caben como factores que afectan al desarrollo, además de llevar conceptos teóricos siempre a formas prácticas. Gaston Berger propone un método para la evaluación futura del desarrollo software, lo cual es una problemática que implica muchas variables a consideración por lo tanto es algo muy complejo de realizar, este método se divide en los siguientes componentes: - Calidad del software: Seguridad, disponibilidad y usabilidad - Servicios y modelos del negocio: Optimización de servicios y recursos. - Dispositivos móviles y Conectividad: Conexión entre diferentes componentes solucionando problemas de estabilidad. - Recurso humano competente: Definir control de calidad de las labores humanas VIII. TENDENCIAS Las tendencias son un problema a la hora de desarrollar, problemas como brechas generacionales o culturales pueden determinar el éxito de un software hay que tener en cuenta aspectos como el uso de métodos agiles que permitan la fácil adaptación a los diversos cambios comerciales que se puedan presentar, además de tomar en cuenta que las soluciones que pueden ofrecerse con un software en el momento de ser ofertadas a publico pueden tornarse en cosas obsoletas; se incentiva a la prueba previa al lanzamiento del software con el propósito de satisfacer unas necesidades globales, además de determinar un correcto mecanismo de evaluación de calidad que pueda ser implementado por todos los productores de software. IX. PROSPECTIVAS DE LAS NECESIDADES DE LA SOCIEDAD ACTUAL Con el desarrollo de software surge el problema del control de la información, siendo esta ultima el eje central de todo el desarrollo del software; las personas y las herramientas son usadas con el propósito de mejorar la gestión de la información y podercompartirla con la sociedad de una u otra manera mejorando aspectos de calidad de vida por ejemplo Thomas Davenport determinó que la gestión de la información, o mejor dicho del conocimiento, consiste en planear, coordinar y controlar diversos flujos de información dentro de una organización para poder mejorar y producir competencias. Las organizaciones deben de contar con los siguientes cuatro pilares primordiales que permitan el desarrollo y gestión del conocimiento: - Personas:Recurso humano - Procesos:Estrategia de negocio - Contenido: Manejo de información critica - Tecnología: Software y hardware dedicado a la recolección y el procesamiento de la información X. CONCLUSIONES La Ingeniería de Software ha aportado elementos esenciales en las metodologías de desarrollo de software haciéndolas menos propensas a fallos, dándoles un carácter mayor de durabilidad, de fiabilidad y dependiendo de la situación la portabilidad ofreciendo calidad y por ende beneficios a los clientes. El desarrollo del software puede verse totalmente relacionado al control del manejo humano y sobre todo a la ciencia de la administración, hay que tener un riguroso control del manejo de la información y definir que se hará con esta, lo cual genera necesidad de planear, definir, organizar y controlar ciertas labores, esto puede ser relacionado a las labores de un gerente y en base a esto surgen los CIO o Chief Information Officer REFERENCIAS [1] Instituto Antioqueño de Investigación, LIBRO BLANCO DE LA INGENIERÍA DE SOFTWARE EN AMÉRICA LATINA 1st ed. Colombia. pp. 23-44, 81-94.