Programación Orientada a Objetos :: Índice
  1. Índice.
  2. Introducción.
  3. La "Crisis del Software"
  4. Definición.
  5. Características.
  6. Terminología básica de la POO.
  7. Tipos de Datos Abstractos Vs. Objetos.
  8. Programación OOP en distintos lenguajes:
  9. Bibliografía.
  10. Recursos.
  11. Evaluación

La crisis del software es el hecho de que el software que se construye no solamente no satisface los requerimientos ni las necesidades pedidos por el cliente, sino que además excede los presupuestos y los horarios de tiempos. La industria del software no ha podido satisfacer la demanda. La complejidad del software producido y demandado se incrementa constantemente. El software es solicitado para ejecutar las tareas demandantes de hoy y está presente en todos los sistemas que van desde los más sencillos hasta los de misión crítica. Las aplicaciones de software son complejas porque modelan la complejidad del mundo real. En estos días, las aplicaciones típicas son muy grandes y complejas para que un individuo las entienda y, por ello, lleva gran tiempo implementar software.

El término “crisis del software” se acuñó en 1968, en la primera conferencia organizada por la OTAN sobre desarrollo de software; y con él se etiquetaron a los problemas que surgían en el desarrollo de sistemas de software. En la misma conferencia se utilizó por primera vez el término "ingeniería del software" para describir el conjunto de conocimientos que existían en aquel estado inicial. Algunas referencias útiles para comprender cuáles eran los conocimientos estables para el desarrollo de software en 1968 son:

El término fue usado para referirse a los rápidos incrementos de la tecnología en la computación y la complejidad de los problemas a los cuales pudieran enfrentarse. En efecto, se refiere a la dificultad de escribir correcta, entendible y verificablemente los lenguajes de programación. Las raíces de la crisis del software son complejas y variables.

A raíz de la "Crisis del Software" los científicos se dieron cuenta de la necesidad de desarrollar mejores técnicas para un sólido y métodico desarrollo de software que garantice su calidad en términos de estabilidad, robustez, funcionalidad, etc... Estos son los conceptos manejados por la Ingeniería de Software para los cuales la POO aporta herramientas clave.