Diferencia entre revisiones de «Ciclo de vida del software»

Línea 1: Línea 1:
{{Normalizar}}
 
 
{{Definición
 
{{Definición
 
 
|nombre= Ciclo de vida del software
 
|nombre= Ciclo de vida del software
 
 
|imagen=cicloevida1.jpg
 
|imagen=cicloevida1.jpg
 
 
|tamaño=
 
|tamaño=
 
 
|concepto= Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del [[software]]. [[IEEE]] 1074.
 
|concepto= Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del [[software]]. [[IEEE]] 1074.
 
 
}}
 
}}
 +
<div align="justify">
  
El [[Ciclo de vida del software]] es el proceso que se sigue para construir, entregar y hacer evolucionar el [[software]], desde la concepción de una idea hasta la entrega y retiro del sistema. Se definen las distintas fases intermedias que se requieren para validar el [[desarrollo]] de un software, 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.
+
'''Ciclo de vida del software.'''  Es el proceso que se sigue para construir, entregar y hacer evolucionar el [[software]], desde la concepción de una idea hasta la entrega y retiro del sistema. Se definen las distintas fases intermedias que se requieren para validar el [[desarrollo]] de un software, 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.
  
== Concepto de la [[ISO]] 12207-1 ==
+
==ISO 12207-1 ==
  
"Un marco de referencia que contiene los procesos, las actividades y las tarear involucradas en el desarrollo, la [[explotación]] y el mantenimiento de un producto de software, abarcando la vida del [[sistema]] desde la definición de los requisitos hasta la finalización de su uso."
+
"Un marco de referencia que contiene los procesos, las actividades y las tarear involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del [[sistema]] desde la definición de los requisitos hasta la finalización de su uso."
  
 
== Procesos del ciclo de vida del software ==
 
== Procesos del ciclo de vida del software ==
  
'''Procesos Principales:'''
+
'''Procesos principales:'''
  
 
*Adquisición
 
*Adquisición
Línea 26: Línea 21:
 
*Explotación
 
*Explotación
 
*Mantenimiento
 
*Mantenimiento
'''
+
 
Procesos de Soporte:'''
+
'''Procesos de soporte:'''
  
 
*Documentación
 
*Documentación
*[[Gestión de configuración]]
+
*Gestión de configuración
 
*Aseguramiento de calidad
 
*Aseguramiento de calidad
 
*Verificación
 
*Verificación
Línea 38: Línea 33:
 
*Resolución de problemas
 
*Resolución de problemas
  
'''Procesos de Organización:'''
+
'''Procesos de organización:'''
  
 
*Gestión
 
*Gestión
 
*Mejora
 
*Mejora
 
*Infraestructura
 
*Infraestructura
*[[Formación]]
+
*Formación
  
=== Proceso Adquisición===
+
=== Proceso adquisición===
 
   
 
   
*Análisis de Requisitos del Sistema
+
*Análisis de requisitos del sistema
  
*Diseño de la Arquitectura del Sistema
+
*Diseño de la arquitectura del sistema
  
*[[Análisis de los Requisitos del Software]]
+
*Análisis de los requisitos del software
  
*Diseño de la Arquitectura del Software
+
*Diseño de la arquitectura del software
  
*Diseño Detallado del Software
+
*Diseño detallado del software
  
*Codificación y Prueba del Software
+
*Codificación y prueba del software
  
=== Proceso Suministro===
+
=== Proceso suministro===
  
*Integración del Software
+
*Integración del software
  
*Prueba del Software
+
*Prueba del software
  
*[[Integración del Sistema]]
+
*Integración del sistema
  
*[[Prueba del Sistema]]
+
*Prueba del sistema
  
*Instalación del Software
+
*Instalación del software
  
*Soporte del proceso de Aceptación del Software
+
*Soporte del proceso de aceptación del software
  
 
== Procedimientos ==
 
== Procedimientos ==
Línea 77: Línea 72:
 
*Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global.
 
*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.
 
*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 general: requisitos generales de la [[arquitectura]] de la aplicación.
 
*Diseño en detalle: definición precisa de cada subconjunto 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.
 
*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.
Línea 87: Línea 82:
 
*Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).
 
*Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).
  
== La Reutilización en el ciclo de vida ==
+
== Reutilización en el ciclo de vida ==
  
 
=== Principios de la reutilización ===
 
=== Principios de la reutilización ===
Línea 96: Línea 91:
 
*Los sistemas nuevos se pueden caracterizar por diferencias respecto a los antiguos
 
*Los sistemas nuevos se pueden caracterizar por diferencias respecto a los antiguos
  
=== Ventajas y Desventajas ===
+
=== Ventajas y desventajas ===
  
 
*Reduce  tiempos y costes de desarrollo
 
*Reduce  tiempos y costes de desarrollo
Línea 114: Línea 109:
 
*'''Ciclo de vida lineal'''
 
*'''Ciclo de vida lineal'''
  
Es el más sencillo de todos los modelos. Consiste en descomponer la actividad global del proyecto en etapas separadas que son realizadas de manera lineal, es decir, cada etapa se realiza una sola vez, a continuación de la etapa anterior y antes de la etapa siguiente. Con un ciclo de vida lineal es muy fácil dividir las tareas, y prever los tiempos (sumando linealmente los de cada etapa).Las actividades de cada una de las etapas mencionadas deben ser independientes entre sí, es decir, que es condición primordial que no haya retroalimentación entre ellas, aun que sí pueden admitirse ciertos supuestos de realimentación correctiva. Desde el punto de vista de la gestión, requiere tambión que se conozca desde el primer momento, con excesiva rigidez, lo que va a ocurrir en cada una de las distintas etapas antes de comenzarla. Esto ultimo minimiza, también, las posiblidades de errores durante la codificacion y reduce al mínimo la necesidad de requerir informacion del cliente o del usuario.
+
Es el más sencillo de todos los modelos. Consiste en descomponer la actividad global del proyecto en etapas separadas que son realizadas de manera lineal, es decir, cada etapa se realiza una sola vez, a continuación de la etapa anterior y antes de la etapa siguiente.  
 +
 
 +
Con un ciclo de vida lineal es muy fácil dividir las tareas, y prever los tiempos (sumando linealmente los de cada etapa).Las actividades de cada una de las etapas mencionadas deben ser independientes entre sí, es decir, que es condición primordial que no haya retroalimentación entre ellas, aun que sí pueden admitirse ciertos supuestos de realimentación correctiva.  
 +
 
 +
Desde el punto de vista de la gestión, requiere también que se conozca desde el primer momento, con excesiva rigidez, lo que va a ocurrir en cada una de las distintas etapas antes de comenzarla. Esto ultimo minimiza, también, las posiblidades de errores durante la codificacion y reduce al mínimo la necesidad de requerir informacion del cliente o del usuario.
  
 
*'''Ciclo de vida en cascada puro'''
 
*'''Ciclo de vida en cascada puro'''
  
 
+
Este modelo de ciclo de vida fue propuesto por Winston Royce en el a-o [[1970]]. Es un ciclo de vida que admite iteraciones, contrariamente a la creencia de que es un ciclo de vida secuencial como el lineal. Después de cada etapa se realiza una o varias revisiones para comprobar si se puede pasar a la siguiente. Es un modelo rígido, poco flexible, y con muchas restricciones. Aunque fue uno de los primeros, y sirvió de base para el resto de los modelos de ciclo de vida.
Este modelo de ciclo de vida fue propuesto por [[Winston Royce]] en el a-o [[1970]]. Es un ciclo de vida que admite iteraciones, contrariamente a la creencia de que es un ciclo de vida secuencial como el lineal. Después de cada etapa se realiza una o varias revisiones para comprobar si se puede pasar a la siguiente. Es un modelo rígido, poco flexible, y con muchas restricciones. Aunque fue uno de los primeros, y sirvió de base para el resto de los modelos de ciclo de vida.
 
  
 
*'''Ciclo de vida en V'''  
 
*'''Ciclo de vida en V'''  
  
Este ciclo fue dise-ado por [[Alan Davis]], y contiene las mismas etapas que el ciclo de vida en cascada puro. A diferencia de aquél, a éste se le agregaron dos subetapas de retroalimentación entre las etapas de [[análisis]] y mantenimiento, y entre las de diseño y debugging.
+
Este ciclo fue dise-ado por Alan Davis, y contiene las mismas etapas que el ciclo de vida en cascada puro. A diferencia de aquél, a éste se le agregaron dos subetapas de retroalimentación entre las etapas de análisis y mantenimiento, y entre las de diseño y debugging.
  
 
== Véase también ==
 
== Véase también ==
Línea 134: Línea 132:
 
==Fuentes==
 
==Fuentes==
  
*[http://wwwes.kioskea.net/contents/genie-logiciel/cycle-de-vie.php3]
+
*[http://wwwes.kioskea.net/contents/genie-logiciel/ Kioskea]
*[http://www.biblioteca.co.cr/pdf/unidad12-4.pdf]
+
*[http://www.biblioteca.co.cr/pdf/ Biblioteca]
*[http://www.ia.uned.es/ia/asignaturas/adms/.../node10.html]
+
*[http://www.ia.uned.es/ia/asignaturas/adms/ Asignaturas]
*[http://www.virtual.unal.edu.co/cursos/sedes/.../problemas.htm]
+
*[http://www.virtual.unal.edu.co/cursos/sedes/.../ Cursos]
  
 
[[Category:Ingeniería_de_software]]
 
[[Category:Ingeniería_de_software]]

Revisión del 10:29 24 nov 2011

Ciclo de vida del software
Información sobre la plantilla
Cicloevida1.jpg
Concepto:Una aproximación lógica a la adquisición, el suministro, el desarrollo, la explotación y el mantenimiento del software. IEEE 1074.

Ciclo de vida del software. Es el proceso que se sigue para construir, entregar y hacer evolucionar el software, desde la concepción de una idea hasta la entrega y retiro del sistema. Se definen las distintas fases intermedias que se requieren para validar el desarrollo de un software, 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.

ISO 12207-1

"Un marco de referencia que contiene los procesos, las actividades y las tarear involucradas en el desarrollo, la explotación y el mantenimiento de un producto de software, abarcando la vida del sistema desde la definición de los requisitos hasta la finalización de su uso."

Procesos del ciclo de vida del software

Procesos principales:

  • Adquisición
  • Suministro
  • Explotación
  • Mantenimiento

Procesos de soporte:

  • Documentación
  • Gestión de configuración
  • Aseguramiento de calidad
  • Verificación
  • Validación
  • Revisiñon conjunta
  • Auditoría
  • Resolución de problemas

Procesos de organización:

  • Gestión
  • Mejora
  • Infraestructura
  • Formación

Proceso adquisición

  • Análisis de requisitos del sistema
  • Diseño de la arquitectura del sistema
  • Análisis de los requisitos del software
  • Diseño de la arquitectura del software
  • Diseño detallado del software
  • Codificación y prueba del software

Proceso suministro

  • Integración del software
  • Prueba del software
  • Integración del sistema
  • Prueba del sistema
  • Instalación del software
  • Soporte del proceso de aceptación del software

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).

Reutilización en el ciclo de vida

Principios de la reutilización

  • Existen similitudes entre distintos sistemas de un mismo dominio de aplicación
  • El software puede representarse como una combinación de módulos
  • Diseñar aplicaciones = especificar módulos + interrelaciones
  • Los sistemas nuevos se pueden caracterizar por diferencias respecto a los antiguos

Ventajas y desventajas

  • Reduce tiempos y costes de desarrollo
  • Aumenta la fiabilidad
  • Dificultad para reconocer los componentes potencialmente reutilizables
  • Dificultad de catalogación y recuperación
  • Problemas de motivación
  • Problemas de gestión de configuración

Tipos de ciclos de vida del software

  • Ciclo de vida lineal

Es el más sencillo de todos los modelos. Consiste en descomponer la actividad global del proyecto en etapas separadas que son realizadas de manera lineal, es decir, cada etapa se realiza una sola vez, a continuación de la etapa anterior y antes de la etapa siguiente.

Con un ciclo de vida lineal es muy fácil dividir las tareas, y prever los tiempos (sumando linealmente los de cada etapa).Las actividades de cada una de las etapas mencionadas deben ser independientes entre sí, es decir, que es condición primordial que no haya retroalimentación entre ellas, aun que sí pueden admitirse ciertos supuestos de realimentación correctiva.

Desde el punto de vista de la gestión, requiere también que se conozca desde el primer momento, con excesiva rigidez, lo que va a ocurrir en cada una de las distintas etapas antes de comenzarla. Esto ultimo minimiza, también, las posiblidades de errores durante la codificacion y reduce al mínimo la necesidad de requerir informacion del cliente o del usuario.

  • Ciclo de vida en cascada puro

Este modelo de ciclo de vida fue propuesto por Winston Royce en el a-o 1970. Es un ciclo de vida que admite iteraciones, contrariamente a la creencia de que es un ciclo de vida secuencial como el lineal. Después de cada etapa se realiza una o varias revisiones para comprobar si se puede pasar a la siguiente. Es un modelo rígido, poco flexible, y con muchas restricciones. Aunque fue uno de los primeros, y sirvió de base para el resto de los modelos de ciclo de vida.

  • Ciclo de vida en V

Este ciclo fue dise-ado por Alan Davis, y contiene las mismas etapas que el ciclo de vida en cascada puro. A diferencia de aquél, a éste se le agregaron dos subetapas de retroalimentación entre las etapas de análisis y mantenimiento, y entre las de diseño y debugging.

Véase también

Fuentes