Este documento compara tres modelos de ingeniería de software: el modelo estructurado, el modelo orientado a objetos y el modelo orientado a componentes. El modelo estructurado es adecuado para todo tipo de aplicaciones pero tiene poca flexibilidad. El modelo orientado a objetos permite construir clases más complejas y es más fácil de mantener pero requiere más conocimientos. El modelo orientado a componentes permite la reutilización de software previamente desarrollado y simplifica las pruebas y el mantenimiento.