Diferencia entre revisiones de «Ciclo de vida del software»
| Línea 1: | Línea 1: | ||
| − | |||
{{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"> | ||
| − | + | '''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 | + | "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 | + | '''Procesos principales:''' |
*Adquisición | *Adquisición | ||
| Línea 26: | Línea 21: | ||
*Explotación | *Explotación | ||
*Mantenimiento | *Mantenimiento | ||
| − | ''' | + | |
| − | Procesos de | + | '''Procesos de soporte:''' |
*Documentación | *Documentació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 | + | '''Procesos de organización:''' |
*Gestión | *Gestión | ||
*Mejora | *Mejora | ||
*Infraestructura | *Infraestructura | ||
| − | * | + | *Formación |
| − | === Proceso | + | === Proceso adquisición=== |
| − | *Análisis de | + | *Análisis de requisitos del sistema |
| − | *Diseño de la | + | *Diseño de la arquitectura del sistema |
| − | * | + | *Análisis de los requisitos del software |
| − | *Diseño de la | + | *Diseño de la arquitectura del software |
| − | *Diseño | + | *Diseño detallado del software |
| − | *Codificación y | + | *Codificación y prueba del software |
| − | === Proceso | + | === Proceso suministro=== |
| − | *Integración del | + | *Integración del software |
| − | *Prueba del | + | *Prueba del software |
| − | * | + | *Integración del sistema |
| − | * | + | *Prueba del sistema |
| − | *Instalación del | + | *Instalación del software |
| − | *Soporte del proceso de | + | *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). | ||
| − | == | + | == 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 | + | === 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 | + | 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 | ||
*'''Ciclo de vida en V''' | *'''Ciclo de vida en V''' | ||
| − | Este ciclo fue dise-ado por | + | 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/ | + | *[http://wwwes.kioskea.net/contents/genie-logiciel/ Kioskea] |
| − | *[http://www.biblioteca.co.cr/pdf/ | + | *[http://www.biblioteca.co.cr/pdf/ Biblioteca] |
| − | *[http://www.ia.uned.es/ia/asignaturas/adms/ | + | *[http://www.ia.uned.es/ia/asignaturas/adms/ Asignaturas] |
| − | *[http://www.virtual.unal.edu.co/cursos/sedes/.../ | + | *[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. 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.
Sumario
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.