Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
El término ingeniería del software apareció por primera vez en la conferencia de ingeniería
de software de la OTAN en 1968 y fue mencionado para provocar el pensamiento sobre la
crisis de software del momento. Desde entonces, ha continuado como una profesión y
campo de estudio dedicado a la creación de software de alta calidad, barato, con capacidad
de mantenimiento y rápido de construir. Debido a que el campo es todavía relativamente
joven comparado con otros campos de la ingeniería, hay todavía mucho trabajo y debate
sobre qué es realmente la ingeniería del software, y si se merece el título de ingeniería. Ha
crecido orgánicamente fuera de las limitaciones de ver el software sólo como
programación. Mientras que el término ingeniería del software fue acuñado en una
conferencia en 1968, los problemas que intentaba tratar empezaron mucho antes. La
historia de la ingeniería del software está entrelazada con las historias contrapuestas de
hardware y software. Cuando el ordenador digital moderno apareció por primera vez en
1941, las instrucciones para hacerlo funcionar estaban conectadas dentro de la maquina.
Las personas relacionadas con la ingeniería rápidamente se dieron cuenta de que este
diseño no era flexible e idearon la arquitectura de programa almacenado o arquitectura
von Neumann. De esta forma la primera división entre “hardware” y “software” empezó
con la abstracción usada para tratar la complejidad de la computación.
Los lenguajes de programación empezaron a aparecer en la década de 1950 y este fue otro
paso importante en la abstracción. Los lenguajes principales como Fortran, Algol y Cobol se
lanzaron a finales de los 50s para tratar con problemas científicos, algorítmicos y de
negocio respectivamente. Dijsktra escribió “Go to Statement Considered Harmful” en 1968
y David Parnas introdujo el concepto clave de la modularidad y encapsulación en 1972 para
ayudar a los programadores a tratar con la complejidad de los sistemas de software. Un
sistema software para gestionar el hardware, denominado sistema operativo también se
introdujo, más notablemente por Unix en 1969. En 1967, el lenguaje Simula introdujo el
paradigma de la programación orientada a objetos. Estos avances en software se
encontraron con más avances en el hardware. A mediados de los 70s, la microcomputadora
fue introducida, haciendo económico a los aficionados a obtener una computadora y
escribir software para él. Esto sucesivamente condujo al famoso ordenador personal o PC y
Microsoft Windows. El ciclo de vida de desarrollo de software o SDLC también empezó a
aparecer como un consenso para la construcción centralizada de software a mediados de
los 80s. A finales de los 70s y principios de los 80 se vieron varios lenguajes de
programación orientados a objetos inspirados en Simula, incluyendo C++, Smalltalk y
Objective C. El software open source empezó a aparecer a principios de los 90s en la forma
de Linux y otros software introduciendo el “bazaar” o el estilo descentralizado de
construcción de software. Después aparecieron Internet y la World Wide Web a mediados
de los 90s cambiando de nuevo la ingeniería del software. Los sistemas distribuidos
ganaron dominio como forma de diseñar sistemas y el lenguaje de programación Java se
introdujo como otro paso en la abstracción, teniendo su propia máquina virtual. Varios
programadores colaboraron y escribieron el manifiesto ágil que favoreció procesos más
ligeros para crear software más barato y en menos tiempo.
Aportes de la Ingeniería de Software.
Entre los grandes aportes de la ingeniería de software al movimiento del Software Libre
(SL), es precisamente la forma de hacer las cosas, mejor dicho de hacer que el software se
haga de la mejor forma posible, lo que algunos llaman metodologías, bastante útiles en
cualquier proyecto.
Uno de los aspectos más importantes para las comunidades de desarrollo de software libre
es que las piezas funcionen de forma engranada y disponer de la información que sea
necesaria para hacer los aportes que la comunidad necesita. El seguimiento de proyectos
en las comunidades de SL, está basado en hacer las cosas lo más organizadamente posible,
de forma que sus desarrollos no sean incompatibles y que se trabaje como lo han acordado
hacer. El secreto está en una comunicación eficaz y en el espíritu de colaboración que es
indispensable. Se requiere de líderes que organicen el trabajo, que no intenten imponerse
(prevalece la colaboración), que sepa delegar a la comunidad que les acompaña el trabajo
requerido, así como hacer que estos permanezcan acompañándole.
Metodología de Software.
Orientaciones sobre como manejar al desarrollo a traves del ciclo de vida del software