Está en la página 1de 3

Unidad 1. Evolución de los sistemas de programación.

1.1 La crisis de los sistemas de programación.

La crisis de los sistemas de programación se fundamentó en el tiempo de


creación de software, ya que en la creación del mismo no se obtenían los
resultados deseados, además de un gran costo y poca flexibilidad.

Es un término informático acuñado en 1968, en la primera conferencia


organizada por la OTAN sobre desarrollo de software, de la cual nació
formalmente la rama de la ingeniería de software. El término se adjudica
a F. L. Bauer, aunque previamente había sido utilizado por Edsger
Dijkstra en su obra The Humble Programmer.

Básicamente, la crisis se refiere a la dificultad en escribir programas libres


de defectos, fácilmente comprensibles, y que sean verificables. Las causas
son, entre otras, la complejidad que supone la tarea de programar, y los
cambios a los que se tiene que ver sometido un programa para ser
continuamente adaptado a las necesidades de los usuarios.

Además, no existen todavía herramientas que permitan estimar de una


manera exacta, antes de comenzar el proyecto, cuál es el esfuerzo que se
necesitará para desarrollar un programa. Este hecho provoca que la mayoría
de las veces no sea posible estimar cuánto tiempo llevará un proyecto, ni
cuánto personal será necesario. Cuando se fijan plazos normalmente no se
cumplen por este hecho. Del mismo modo, en muchas ocasiones el
personal asignado a un proyecto se incrementa con la esperanza de
disminuir el plazo de ejecución.

Por último, las aplicaciones de hoy en día son programas muy complejos,
inabordables por una sola persona. En sus comienzos se valoró como causa
también la inmadurez de la ingeniería de software, aunque todavía hoy en
día no es posible realizar estimaciones precisas del coste y tiempo que
necesitará un proyecto de software.

Englobó a una serie de sucesos que se venían observando en los proyectos


de desarrollo de software.
 Los proyectos no terminaban en plazo.
 Los proyectos no se ajustaban al presupuesto inicial.
 Baja calidad del software generado.
 Software que no cumplía las especificaciones.
 Código inmantenible que dificultaba la gestión y evolución del
proyecto.

Aunque se han propuesto diversas metodologías para intentar subsanar los


problemas mencionados, lo cierto es que todavía hoy no existe ningún
método que haya permitido estimar de manera fiable el coste y duración de
un proyecto antes de sus comienzos.

1.2 El ciclo de vida de los sistemas de programación.

El término ciclo de vida del software describe el desarrollo de software, desde la fase
inicial hasta la fase final. El propósito de este programa es definir las distintas fases
intermedias que se requieren paravalidar el desarrollo de la aplicación, es decir, para
garantizar que el software cumpla los requisitos para la aplicación y verificación de
los procedimientos de desarrollo: se asegura de que los métodos utilizados son
apropiados.
Estos programas se originan en el hecho de que es muy costoso rectificar los errores
que se detectan tarde dentro de la fase de implementación. El ciclo de vida permite
que los errores se detecten lo antes posible y por lo tanto, permite a los
desarrolladores concentrarse en la calidad del software, en los plazos de
implementación y en los costos asociados.
El ciclo de vida básico de un software consta de los siguientes procedimientos:

• Definición de objetivos: definir el resultado del proyecto y su papel en la


estrategia global.
• Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los
requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
• Diseño general: requisitos generales de la arquitectura de la aplicación.
• Diseño en detalle: definición precisa de cada subconjunto de la aplicación.
• Programación (programación e implementación): es la implementación de un
lenguaje de programación para crear las funciones definidas durante la etapa de
diseño.
• Prueba de unidad: prueba individual de cada subconjunto de la aplicación
para garantizar que se implementaron de acuerdo con las especificaciones.
• Integración: para garantizar que los diferentes módulos se integren con la
aplicación. Éste es el propósito de la prueba de integración que está
cuidadosamente documentada.
• Prueba beta (o validación), para garantizar que el software cumple con las
especificaciones originales.
• Documentación: sirve para documentar información necesaria para los
usuarios del software y para desarrollos futuros.
• Implementación
• Mantenimiento: para todos los procedimientos correctivos (mantenimiento
correctivo) y las actualizaciones secundarias del software (mantenimiento
continuo).
El orden y la presencia de cada uno de estos procedimientos en el ciclo de vida de una
aplicación dependen del tipo de modelo de ciclo de vida acordado entre el cliente y el
equipo de desarrolladores.

Modelos de ciclo de vida


Para facilitar una metodología común entre el cliente y la compañía de software, los
modelos de ciclo de vida se han actualizado para reflejar las etapas de desarrollo
involucradas y la documentación requerida, de manera que cada etapa se valide antes
de continuar con la siguiente etapa. Al final de cada etapa se arreglan las revisiones
de manera que (texto faltante).

También podría gustarte