Una de las preocupaciones actuales más urgentes de la industria del software es crear sistemas
confiables y de mayor calidad con menor inversión de tiempo y costo, que resuelvan problemas cada vez
más complejos. Es preciso utilizar técnicas avanzadas de la ingeniería de software que ayuden a aliviar
el esfuerzo en las diferentes etapas del ciclo de vida.
Tal como lo manifiestan J. Martin y J. Odell[Martin 94], en el software se necesita un avance en:
*Complejidad
*Capacidad de diseño
*Flexibilidad
*Rapidez de desarrollo
*Facilidad de modificación
*Confiabilidad
La Tecnología Orientada a Objetos ha demostrado ser una excelente herramienta para resolver
problemas de gran envergadura y complejidad, permitiendo obtener sistemas interoperables, modulares,
evolutivos y con alto índice de reusabilidad. La reutilización conduce a un desarrollo más rápido y
programas de mejor calidad.
Las técnicas orientadas a objetos combinadas con otras herramientas como las CASE (ingeniería de
software asistida por computadora), programación visual, generadores de código, metodologías basadas
en depósitos, bases de datos, bibliotecas de clases que maximicen la reutilización, tecnología cliente
servidor, etc.; pueden proporcionar la magnitud de cambio necesario para lograr ese salto anteriormente
mencionado.