Está en la página 1de 12

UNIVERSIDAD TECNOLOGICA DE LOS ANDES

FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA CIVIL
CURSO: INFORMÁTICA APLICADA A LA INGENIERÍA CIVIL

INFORME Nº 001- UTEA /ABANCAY-16/09/20


AL : ING. HUACANI WALQUER TESILIO JUAN
DOCENTE DEL CURSO DE INFORMATICA APLICADA A LA
. INGENIERIA CIVIL.
DE : PEDRAZA PAMPAÑAUPA RUSMILDA
Alumna del curso informática aplicada a la .
ingeniería civil.

ASUNTO : INFORME DE INVESTIGACION SOBRE”EVOLUCION DE LA


. INGENIERIA MEDIANTE LA INFORMATICA”.
FECHA : ABANCAY 16 de SEPTIEMBRE 2020.

Mediante el presente me dirijo a su digna persona para informarle lo siguiente.


UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA CIVIL
CURSO: INFORMÁTICA APLICADA A LA INGENIERÍA CIVIL

ÍNDICE:
I. INTRODUCCION: .............................................................................................................. 3
1.3 “NO SILVER BULLET”: ............................................................................................ 4
II. EVOLUCIÓN DE LA INGENIERÍA DEL SOFTWARE ................................................. 4
2.1 PROCESO SOFTWARE ............................................................................................ 5
2.2 MÉTODOS .................................................................................................................... 7
2.2.1 Programación estructurada ................................................................................. 8
2.2.2 Programación orientada a objetos o POO ....................................................... 8
2.2.3 Extreme Programming .......................................................................................... 9
2.3 HERRAMIENTAS ........................................................................................................ 9
2.4 TENDENCIA ACTUAL ............................................................................................. 10
III. CONCLUSIONES: ....................................................................................................... 11
IV. RECOMENDACIONES: .............................................................................................. 12
V. REFERENCIAS ................................................................................................................ 12
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA CIVIL
CURSO: INFORMÁTICA APLICADA A LA INGENIERÍA CIVIL

I. INTRODUCCION:
La ingeniería del software, según la definición de la IEEE en 1993, es la aplicación de
un enfoque sistemático, disciplinado y cuantificable al desarrollo, operación y
mantenimiento del software. La ingeniería del software ofrece métodos o técnicas para
desarrollar y mantener software de calidad que resuelven problemas de todo tipo, y trata
áreas muy diversas de la informática y de las ciencias computacionales.
1.1 OBJETIVOS:
 Conocer cuáles son los aspectos históricos que conforman el contexto de la
ingeniería en la informática.
 Plantear como fue el proceso de la evolución de la ingeniería civil en donde su
propósito fundamental es estudiar las problemáticas de una sociedad.
 Reconocer cuales fueron técnicas elementales que derivaron el proceso de
desarrollo de la ingeniería en el servicio de la comunidad.
1.2 ANTECEDENTES:

El concepto de ingeniería del software surgió en 1968, tras una conferencia en Garmisch
(Alemania) que tuvo como objetivo resolver los problemas de la crisis del software. El
término crisis del software se usó desde finales de 1960 hasta mediados de 1980 para
describir los frecuentes problemas que aparecían durante el proceso de desarrollo de
nuevo software. Tras la aparición de nuevo hardware basado en circuitos integrados,
comenzaron a desarrollarse sistemas y aplicaciones mucho más complejos que hasta
entonces no era posible construir puesto que el hardware disponible no lo permitía.
Estos nuevos proyectos de desarrollo de software, en la mayoría de ocasiones, no se
terminaban a tiempo, lo cual también provocaba que el presupuesto final del software
excediera de aquel que se había pactado. Algunos de estos proyectos eran tan críticos
(sistemas de control de aeropuertos, equipos para medicina, etc) que sus implicaciones
iban más allá de las pérdidas millonarias que causaban. Además, en muchos casos el
software no daba respuesta a las verdaderas necesidades del cliente o había que ser
un usuario experto para poder utilizarlo, todo ello sumado a que el mantenimiento de los
productos era complejo y muy costoso.

El software no se producía como el hardware, que tenía un proceso de fabricación


definido y dividido en fases. El resultado eran productos de pésima calidad en los que
se habían invertido mucho tiempo y dinero pero que o bien no llegaban a terminarse o
bien a la larga no daban el resultado que se esperaba. Se detectó que los métodos de
desarrollo de software informales que hasta entonces habían bastado para proyectos
pequeños no eran suficientes para los nuevos y grandes proyectos, y que se
necesitaban profesionales especializados en esta nueva disciplina que fueran capaces
de lidiar con la creciente complejidad de los nuevos sistemas.

Una de las primeras y más conocidas referencias a los conceptos crisis el software e
ingeniería del software fue hecha por Edsger Dijkstra, durante la presentación de 1972
titulada “The Humble Programmer” en la Association for Computing Machinery, cuando
se le hizo entrega de un Premio Turing.
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA CIVIL
CURSO: INFORMÁTICA APLICADA A LA INGENIERÍA CIVIL

1.3 “NO SILVER BULLET”:

Durante décadas, resolver la crisis del software desencadenó en que compañías e


investigadores produjeran más y más herramientas software. Cada nueva tecnología o
práctica que apareció entre 1970 y 1990 fue tratada como una “bala de plata” (en
inglés, silver bullet) que solucionaría la crisis del software.
En 1986, Fred Brooks publicó el artículo No Silver Bullet, argumentando que ninguna
tecnología o práctica por sí misma podría mejorar en un diez por ciento la productividad
en los siguientes diez años. El debate sobre las balas de plata continuó durante la
siguiente década, dando lugar a numerosas interpretaciones sobre el artículo de Brooks.

Los defensores de lenguajes como Ada, o de los procesos software continuaron


apostando por que su tecnología sería la que solucionaría la crisis. Sin embargo, hubo
gente que interpretó el hecho de que no se encontrara una solución única y efectiva al
cien por cien como un fracaso de la ingeniería del software.

Si bien es cierto que la búsqueda de una única solución no funcionó, también había que
ser consciente de que tampoco existían balas de plata en ninguna otra profesión. Así,
con el transcurso de los años, casi todo el mundo aceptó que no se encontraría
ninguna bala de plata, pero se tomó esto como una prueba de que la ingeniería del
software finalmente había madurado y que los proyectos debían tener éxito gracias al
trabajo duro y al esfuerzo. El campo de la ingeniería del software es demasiado complejo
y diverso para que una única solución resuelva todos los problemas, pero el conjunto de
todas las prácticas que surgieron y de las que surgen hoy en día son las que, bien
aplicadas, permiten que la ingeniería del software desarrolle productos de calidad.

II. EVOLUCIÓN DE LA INGENIERÍA DEL SOFTWARE

Con el transcurso de los años se han desarrollado recursos que conforman la ingeniería
del software, es decir, herramientas y técnicas de especificación, diseño e
implementación del software: la programación estructurada, la programación orientada
a objetos, las herramientas CASE, la documentación, los estándares, CORBA, los
servicios web, el lenguaje UML, etc.

En combinación con las herramientas, también se han hecho esfuerzos por incorporar
los métodos formales al desarrollo de software, argumentando que si se probaba
formalmente que los productos software hacían lo que se les requería, la industria del
software sería tan predecible como lo son otras ramas de la ingeniería.
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA CIVIL
CURSO: INFORMÁTICA APLICADA A LA INGENIERÍA CIVIL

La utilización de determinados recursos depende de la magnitud del proyecto, de la


empresa a cargo, la experiencia de los desarrolladores, el presupuesto con el que se
cuenta, etc.

La ingeniería del software comprende:

 Proceso de desarrollo de software (especificación, implementación y diseño, etc…).


 Metodologías para el desarrollo de software (RUP, patrones, framework…).
 Herramientas de desarrollo de software.

2.1 PROCESO SOFTWARE

El proceso de ingeniería de software se define como «un conjunto de etapas


parcialmente ordenadas con la intención de lograr un objetivo, en este caso, la obtención
de un producto de software de calidad». El proceso de desarrollo de software «es aquel
en que las necesidades del usuario son traducidas en requerimientos de software, estos
requerimientos transformados en diseño y el diseño implementado en código, el código
es probado, documentado y certificado para su uso operativo». Concretamente «define
quién está haciendo qué, cuándo hacerlo y cómo alcanzar un cierto objetivo» [Jacobson
1998].
El proceso de desarrollo de software requiere por un lado un conjunto de conceptos,
una metodología y un lenguaje propio. A este proceso también se le llama el ciclo de
vida del software, que comprende las etapas por las que pasa un proyecto software
desde que es concebido, hasta que está listo para usarse.

Hay cuatro actividades fundamentales comunes a todo proceso software:


UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA CIVIL
CURSO: INFORMÁTICA APLICADA A LA INGENIERÍA CIVIL

 Especificación: usuarios e ingenieros definen el software a producir y las


restricciones en su funcionalidad.
 Desarrollo: fase en la cual el software se diseña y se programa.
 Validación: el software debe ser probado para asegurar que cumple con las
necesidades del cliente.
 Evolución: el software debe poder ser modificado para adaptarse a cambios en el
mercado y en las necesidades de los usuarios.

Cada producto software necesita un proceso diferente. Por tanto, estas etapas
genéricas deben organizarse de diferente manera y en diferentes niveles según el tipo
de software para el que se aplique el proceso. Un uso inapropiado del proceso software
puede reducir la calidad o la usabilidad del producto a ser desarrollado, e incluso
incrementar los costes de desarrollo.

Los enfoques más generales son los siguientes:

 Modelo en cascada: ordena rigurosamente las etapas del ciclo de vida del
software, de tal forma que el inicio de cada etapa debe esperar a la finalización
de la inmediatamente anterior. La primera descripción formal la realizó en 1970
Winston W. Royce, en uno de sus artículos.

 Prototipado: pertenece a los modelos de desarrollo evolutivo. El prototipo debe


ser construido en poco tiempo, usando los programas adecuados y no se deben
utilizar muchos recursos, pues a partir de que éste sea aprobado se puede
iniciar el verdadero desarrollo del software.
 Incremental e iterativo: Divide la funcionalidad del sistema en partes. En cada
incremento, una parte de la funcionalidad es desarrollada, desde el análisis
hasta las pruebas.
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA CIVIL
CURSO: INFORMÁTICA APLICADA A LA INGENIERÍA CIVIL

 Espiral: Combinación de procesos en cascada y prototipado. Fue definido por


Barry Boehm en 1986 en el artículo “A Spiral Model of Software Development
and Enhancement”.

 RAD (Rapid Application Development): emplea técnicas iterativas y de


prototipado. Lo introdujo James Martin en 1991.
 RUP (Rationa Unified Process): El Rational Unified Process en inglés es un
proceso de desarrollo de software iterativo y junto con el Lenguaje Unificado de
Modelado (UML), constituye la metodología estándar más utilizada para el análisis,
implementación y documentación de sistemas orientados a objetos.
El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de
metodologías adaptables al contexto y necesidades de cada organización.
En 1987, Ivar Jacobson fundó la compañía Objectory AB, que desarrolló Objetory,
un método de desarrollo orientado a objetos, extensión de lo que se conocía como
aproximación Ericsson. En 1995, Rational Software compró Objectory AB, y en los
siguientes años desarrollaron y lanzaron el estándar UML (Unified Modeling
Language), así como el Rational Unified Process (RUP), que aunaba los esfuerzos
y la experiencia de todas las compañías adquiridas por Rational Software. En
diciembre de 2002, IBM adquirió Rational Software.

2.2 MÉTODOS

Un método de ingeniería de software es un enfoque estructurado para desarrollar


software cuyo objetivo es facilitar la producción de productos software de alta calidad a
un coste razonable. Indican cómo construir técnicamente el software. Los métodos
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA CIVIL
CURSO: INFORMÁTICA APLICADA A LA INGENIERÍA CIVIL

abarcan un amplio espectro de tareas que incluyen: planificación y estimación de


proyectos, análisis de los requerimientos del sistema y del software, diseño de
procedimientos algorítmicos, codificación, prueba y mantenimiento.

Los métodos de la ingeniería de software introducen frecuentemente una notación


especial orientada al lenguaje o gráfica y a un conjunto de criterios para la calidad del
software.

A lo largo de los años se han ido desarrollando una gran cantidad de metodologías para
desarrollar software, a menudo vinculadas a algún tipo de organización, que además
desarrolla, apoya el uso y promueve la metodología. La metodología es a menudo
documentada en algún tipo de documentación formal.

Algunas de las metodologías más conocidas se explican a continuación.

2.2.1 Programación estructurada

Técnica en la cual la estructura de un programa tan solo emplea tres estructuras lógicas
de control: secuencia, selección e iteración. La programación estructurada se basa en
el teorema del programa estructurado demostrado por Böhm-Jacopini, el cual establece
que cualquier programa con una entrada y una salida exclusivamente es equivalente a
un programa que contiene solamente las estructuras lógicas mencionadas
anteriormente.

Esta nueva forma de programar que dio lugar a programas fiables y eficientes, que
además estaban escritos de manera que facilitaba su comprensión posterior.

2.2.2 Programación orientada a objetos o POO

Los conceptos de la programación orientada a objetos tienen origen en Simula 67, un


lenguaje diseñado en 1967 para hacer simulaciones de eventos discretos, creado por
Ole-Johan Dahl y Kristen Nygaard del Centro de Cómputo Noruego en Oslo. Simula
introdujo la noción de clases e instancias como parte de un paradigma de programación
explícito. Las ideas de Simula 67 influenciaron muchos lenguajes posteriores,
incluyendo Smalltalk, CLOS, Object Pascal, C++…

Smalltalk fue desarrollado en Xerox PARC por Alan Kay, entre otros, en la década de
los 70. Smalltalk introdujo el término POO para representar el uso de objetos y mensajes
como la base de la computación. Smalltalk fue diseñado para ser un sistema
completamente dinámico en el cual las clases se podrían crear y modificar en tiempo de
ejecución en lugar de estáticamente.

La programación orientada a objetos fue el estilo de programación dominante a principio


y mediados de los años noventa, en gran parte debido a la influencia de lenguajes como
C++. Su predominio fue consolidado gracias al auge de las interfaces gráficas de
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA CIVIL
CURSO: INFORMÁTICA APLICADA A LA INGENIERÍA CIVIL

usuario, para las cuales la programación orientada a objetos está particularmente bien
adaptada. En este caso, se habla también de programación dirigida por eventos.

Las características de orientación a objetos han sido agregadas a muchos lenguajes a


lo largo de los años, incluyendo Ada, BASIC, Fortran, Pascal, entre otros. La adición de
estas características a los lenguajes que no fueron diseñados inicialmente para ellas
condujo a menudo a problemas de compatibilidad y en la capacidad de mantenimiento
del código.

Así como la programación procedural introdujo técnicas de mejora como la


programación estructurada, los métodos modernos de diseño de software orientados a
objetos incluyen mejoras como el uso de patrones de diseño o lenguajes de modelado
como UML.

2.2.3 Extreme Programming

Enfoque formulado por Kent Beck en 1999, que se diferencia de las metodologías
tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la
previsibilidad. Sus defensores consideran que ser capaz de adaptarse a los cambios de
requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más
realista que definir todos los requisitos al comienzo e invertir esfuerzos después en
controlar los cambios.

2.3 HERRAMIENTAS

Suministran un soporte automático o semiautomático para los métodos. Cuando se


integran las herramientas de forma que la información creada por una herramienta
pueda ser usada por otra, se establece un sistema para el soporte del desarrollo del
software llamado ingeniería de software asistido por computadora (Computer Aided
Software Engineering o CASE).

Ya en los años 70 un proyecto llamado ISDOS (Information System Design and


Optimization System) diseñó un lenguaje, y por lo tanto un producto, que analizaba la
relación existente entre los requisitos de un problema y las necesidades que éstos
generaban, el lenguaje en cuestión se denominaba PSL (Problem Statement Language)
y la aplicación que ayudaba a buscar las necesidades de los diseñadores PSA (Problem
Statement Analyzer). PSL se empleaba para expresar requisitos de un sistema mediante
un lenguaje formal. El lenguaje se expresaba empleando objetos y relaciones entre
ellos. Una vez compilado y sin errores, el fichero generado era recibido por la aplicación
PSA, que generaba una base de datos con la información obtenida y permitía manipular
el contenido y generar informes, entre otras cosas.

Aunque ésos son los inicios de las herramientas informáticas que ayudan a crear nuevos
proyectos informáticos, la primera herramienta CASE fue Excelerator que salió a la luz
en el año 1984 y trabajaba bajo una plataforma PC.
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA CIVIL
CURSO: INFORMÁTICA APLICADA A LA INGENIERÍA CIVIL

Las herramientas CASE alcanzaron su techo a principios de los años 90. En la época
en la que IBM había conseguido una alianza con la empresa de software AD/Cycle para
trabajar con sus mainframes, estos dos gigantes trabajaban con herramientas CASE
que abarcaban todo el ciclo de vida del software. Pero poco a poco los mainframes han
ido siendo menos utilizados y actualmente el mercado de las Big CASE ha muerto
completamente abriendo el mercado de diversas herramientas más específicas para
cada fase del ciclo de vida del software. Por ejemplo, algunas herramientas CASE son
MagicDraw (diseño), ArchE (arquitectura) o MetaEdit (desarrollo).

Aunque no es fácil y no existe una forma única de clasificarlas, las herramientas CASE
se pueden clasificar teniendo en cuenta los siguientes parámetros:

1. Las plataformas que soportan.


2. Las fases del ciclo de vida del desarrollo de sistemas que cubren.
3. La arquitectura de las aplicaciones que producen.
4. Su funcionalidad.

La siguiente clasificación es la más habitual basada en las fases del ciclo de desarrollo
que cubren:

 Upper CASE (U-CASE), herramientas que ayudan en las fases de planificación,


análisis de requisitos y estrategia del desarrollo, usando, entre otros diagramas
UML.
 Middle CASE (M-CASE), herramientas para automatizar tareas en el análisis y
diseño de la aplicación.
 Lower CASE (L-CASE), herramientas que semi-automatizan la generación de
código, crean programas de detección de errores, soportan la depuración de
programas y pruebas. Además automatizan la documentación completa de la
aplicación.

2.4 TENDENCIA ACTUAL

Las direcciones en las que evoluciona la ingeniería del software hoy en día pueden
agruparse de la siguiente manera:

 Metodologías ágiles: métodos de desarrollo de software basados en procesos


iterativos e incrementales, donde los requisitos y soluciones evolucionan durante la
colaboración.
Metodologías como Scrum (1995), Extreme Programming (1999) o DSDM (1995)
fueron evolucionando hasta que en Febrero del 2001 se publicó “Manifesto for Agile
Software Development” para definir la aproximación ahora conocida como
metodologías ágiles.
 Experimentación: es una rama de la ingeniería del software interesada en realizar
experimentos sobre software, recolectar datos y deducir leyes y teorías de los
mismos.
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA CIVIL
CURSO: INFORMÁTICA APLICADA A LA INGENIERÍA CIVIL

 Desarrollo dirigido por modelos: primero se desarrollan modelos


textuales gráficos del software a construir, y posteriormente se construye el
software.
 Líneas de productos software, en lugar de productos individuales.
A lo largo de los años han surgido numerosas organizaciones y estándares que apoyan
la ingeniería del software y que dan más fuerza y potencia a este ámbito. Por ejemplo,
el Software Engineering Institute (http://www.sei.cmu.edu/index.cfm), la IEEE Computer
Society (http://www.computer.org/portal/web/guest/home), o documentos como el
Software Engineering Body of Knowledge (SWEBOK).

En 2006, Money Magazine and Salary.com determine que la ingeniería del software era
el mejor trabajo en América en términos de crecimiento, remuneración, nivel de estrés,
flexibilidad horaria, creatividad, entorno de trabajo y capacidad de ascenso.

A su vez, la conferencia Future of Software Engineering (FOSE) del 2000 documentó el


estado de la ingeniería del software y redactó una lista con varios problemas para ser
solucionados durante la próxima década.

Hoy en día, contamos con carreras universitarias, másteres, y una gran oferta formativa
para profesionales del software. A pesar de ser una disciplina joven y que sigue
evolucionando, los resultados de todos los esfuerzos y métodos desarrollados con el
paso de los años, así como de la experiencia, permiten desarrollar productos de calidad
al nivel de cualquier otra ingeniería.

III. CONCLUSIONES:
 Esta actividad nos mostró una investigación de un glosario de as definiciones
que son muy específicas, así como definiciones de la ingeniería de software y
que sin importar su modelo o definición de diferentes organizaciones y puntos
de vista se utiliza para la creación de un mejor software de calidad con el
desarrollo de software mediante a sus procesos métodos e herramientas que
posee.
 Como puede abstraerse del anterior artículo, la especialización de la labor de los
Ingenieros de Sistemas es cada vez más necesaria. Las funciones que antes se
consideraban simples o de rutina, hoy se convierten en complejas ingenierías de
intervención, lo que exige a los profesionales de la informática la adquisición de
conocimientos que la educación de un pregrado no le brinda. De acuerdo con
esta visión es necesario dividir la formación en Ingeniería de Sistemas, ciencias
computacionales, Ingeniería Informática o como se llame en cada país, en dos
áreas claramente establecidas por las exigencias de los actuales Sistemas de
Información: Arquitectos de Sistemas e Ingenieros de Software. Los primeros se
encargan de diseñar, construir y mantener la arquitectura sobre la que se
soportará el core del negocio y el manejo de la información que circula en todos
los procesos de la empresa, y los segundos se especializan en diseñar,
desarrollar y mantener los programas que transitan sobre la arquitectura y
UNIVERSIDAD TECNOLOGICA DE LOS ANDES
FACULTAD DE INGENIERIA
ESCUELA PROFESIONAL DE INGENIERIA CIVIL
CURSO: INFORMÁTICA APLICADA A LA INGENIERÍA CIVIL

convierten los datos en información para la toma de decisiones y el soporte de


la empresa.

IV. RECOMENDACIONES:
 Aprovechar al máximo las instalaciones actuales del centro de cómputo de la
Universidad para el desarrollo de ejercicios, prácticas y laboratorios diseñados
en cada materia, con la idea de incrementar en un futuro próximo, el presupuesto
de inversiones en el renglón de hardware y software de alta tecnología, con
beneficios también para la licenciatura en Sistemas Computacionales.

V. REFERENCIAS
http://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340.html
http://aprendeenlinea.udea.edu.co/lms/moodle/mod/resource/view.php?id=
14273
http://www.experiencefestival.com/a/History_of_software_engineering_-
_1985_to_present_No_silver_bullet/id/5134751
http://es.wikipedia.org/wiki/Herramienta_CASE
http://es.wikipedia.org/wiki/Metodolog%C3%ADa_de_desarrollo_de_softwa
re
http://es.wikipedia.org/wiki/Programaci%C3%B3n_orientada_a_objetos
http://es.wikipedia.org/wiki/Extreme_Programming
http://es.wikipedia.org/wiki/Rational_Unified_Process#Un_poco_de_historia
http://media.wiley.com/product_data/excerpt/94/08186760/0818676094.pdf
http://en.wikipedia.org/wiki/History_of_software_engineering
http://www.dagstuhl.de/Reports/96/9635.pdf

También podría gustarte