EL PROCESO DE DESARROLLO DEL SOFTWARE No existe un proceso de software universal que sea efectivo...
-
Upload
chiquita-acevedo -
Category
Documents
-
view
1 -
download
0
Transcript of EL PROCESO DE DESARROLLO DEL SOFTWARE No existe un proceso de software universal que sea efectivo...
EL PROCESO DE DESARROLLO EL PROCESO DE DESARROLLO DEL SOFTWAREDEL SOFTWARE
No existe un proceso de software No existe un proceso de software universal que sea efectivo para universal que sea efectivo para
todos los contextos de todos los contextos de proyectos de desarrollo. proyectos de desarrollo.
ACTIVIDADES ACTIVIDADES FUNDAMENTALES DE TODOS FUNDAMENTALES DE TODOS LOS PROCESO DE SOFTWARELOS PROCESO DE SOFTWARE
Especificación de softwareEspecificación de software Diseño e ImplementaciónDiseño e Implementación ValidaciónValidación EvoluciónEvolución
ALGUNOS MODELOS DE ALGUNOS MODELOS DE PROCESO DE SOFTWAREPROCESO DE SOFTWARE
Codificar y corregirCodificar y corregir Modelo en cascadaModelo en cascada Desarrollo evolutivoDesarrollo evolutivo Desarrollo formal de sistemasDesarrollo formal de sistemas Desarrollo basado en reutilizaciónDesarrollo basado en reutilización Desarrollo incrementalDesarrollo incremental Desarrollo en espiralDesarrollo en espiral
CODIFICAR Y CORREGIR CODIFICAR Y CORREGIR (CODE-AND-FIX)(CODE-AND-FIX)
ETAPASETAPAS
Codificar parte del softwareCodificar parte del software
Corregir errores, agregar Corregir errores, agregar funcionalidad o nuevos elementos.funcionalidad o nuevos elementos.
UTILIZACIÓNUTILIZACIÓN
Desarrollo de software tarea unipersonal.Desarrollo de software tarea unipersonal. El problema es claramente comprendido El problema es claramente comprendido El programador es el usuario de la El programador es el usuario de la
aplicación.aplicación. La aplicación es simple según estándares La aplicación es simple según estándares
actualesactuales
DESVENTAJASDESVENTAJAS No se planifica ni se controla. No se planifica ni se controla. Después de una serie de cambios: Después de una serie de cambios:
La estructura del código se hace más y La estructura del código se hace más y más complicada más complicada
Los cambios siguientes son más y más Los cambios siguientes son más y más difíciles.difíciles.
Los resultados son menos confiables.Los resultados son menos confiables.
DESVENTAJASDESVENTAJAS El software no satisface las necesidades ni El software no satisface las necesidades ni
las expectativas del cliente. las expectativas del cliente. La calidad no es adecuada. La calidad no es adecuada. Productos terminados fuera de plazo y Productos terminados fuera de plazo y
presupuesto. presupuesto. Cambios estructurales del software son casi Cambios estructurales del software son casi
imposibles. imposibles.
CASCADACASCADA
Se popularizó en la década de los 70 y Se popularizó en la década de los 70 y guía la mayor parte de la práctica actual. guía la mayor parte de la práctica actual.
El proceso es una “cascada” de fases, El proceso es una “cascada” de fases, donde el producto de una fase es la donde el producto de una fase es la entrada de la siguiente. entrada de la siguiente.
Cada fase se compone de una serie de Cada fase se compone de una serie de actividades que deben realizarse en actividades que deben realizarse en paralelo. paralelo.
DESCRIPCIÓNDESCRIPCIÓN Este modelo admite hacer iteraciones, Este modelo admite hacer iteraciones,
durante las modificaciones en el durante las modificaciones en el mantenimiento se puede ver por ejemplo la mantenimiento se puede ver por ejemplo la necesidad de cambiar algo en el diseño, lo necesidad de cambiar algo en el diseño, lo cual significa que se harán los cambios cual significa que se harán los cambios necesarios en la codificación y se tendrán necesarios en la codificación y se tendrán que realizar de nuevo las pruebas, si se tiene que realizar de nuevo las pruebas, si se tiene que volver a una de las etapas anteriores al que volver a una de las etapas anteriores al mantenimiento hay que recorrer de nuevo el mantenimiento hay que recorrer de nuevo el resto de las etapas.resto de las etapas.
FASES MODELO CASCADAFASES MODELO CASCADA
Cada fase tiene como resultado documentos que deben ser aprobados por el usuario.
Una fase no comienza hasta que Una fase no comienza hasta que termine la fase anterior y termine la fase anterior y generalmente se incluye la corrección generalmente se incluye la corrección de los problemas encontrados en de los problemas encontrados en fases previas.fases previas.
En la práctica, este modelo no es En la práctica, este modelo no es lineal, e involucra varias iteraciones e lineal, e involucra varias iteraciones e interacción entre las distintas fases de interacción entre las distintas fases de desarrollo.desarrollo.
VENTAJASVENTAJAS La planificación es sencilla. La planificación es sencilla. La calidad del producto resultante es alta. La calidad del producto resultante es alta. Permite trabajar con personal poco cualificado.Permite trabajar con personal poco cualificado. Con este modelo se tiene un seguimiento de Con este modelo se tiene un seguimiento de
todas las fases del proyecto y de su todas las fases del proyecto y de su cumplimiento.cumplimiento.
DESVENTAJASDESVENTAJAS
Necesidad de tener todos los requisitos al Necesidad de tener todos los requisitos al principio. principio.
Si se han cometido errores en una fase es Si se han cometido errores en una fase es difícil volver atrás. difícil volver atrás.
No se tiene el producto hasta el finalNo se tiene el producto hasta el final Si se comete un error en la fase de análisis no Si se comete un error en la fase de análisis no
lo descubrimos hasta la entrega, gasto inútil de lo descubrimos hasta la entrega, gasto inútil de recursos. recursos.
DESVENTAJASDESVENTAJAS
El cliente no verá resultados hasta el final, El cliente no verá resultados hasta el final, con lo que puede impacientarse . con lo que puede impacientarse .
No se tienen indicadores fiables del No se tienen indicadores fiables del progreso del trabajoprogreso del trabajo
Es comparativamente más lento que los Es comparativamente más lento que los demás y el coste es mayor también.demás y el coste es mayor también.
Tipos de proyectos para los Tipos de proyectos para los que es adecuadoque es adecuado
Aquellos con todas las Aquellos con todas las especificaciones desde el principio especificaciones desde el principio (reingeniería). (reingeniería).
Desarrollo de un tipo de producto que Desarrollo de un tipo de producto que no es novedoso. no es novedoso.
Proyectos complejos que se Proyectos complejos que se entienden bien desde el principio.entienden bien desde el principio.
VARIACIONES DEL MODELO VARIACIONES DEL MODELO EN CASCADAEN CASCADA
CICLO DE VIDA EN V CICLO DE VIDA EN V
Propuesto por Alan Davis, tiene las mismas Propuesto por Alan Davis, tiene las mismas fases que el cascada pero se considera el nivel fases que el cascada pero se considera el nivel de abstracción de cada una. Una fase además de abstracción de cada una. Una fase además de utilizarse como entrada para la siguiente, de utilizarse como entrada para la siguiente, sirve para validar o verificar otras fases sirve para validar o verificar otras fases posteriores.posteriores.
Ciclo de vida en V Ciclo de vida en V
VARIACIONES DEL MODELO VARIACIONES DEL MODELO EN CASCADAEN CASCADA
CICLO DE VIDA TIPO SASHIMI CICLO DE VIDA TIPO SASHIMI
Se permite un solapamiento entre fases. Por Se permite un solapamiento entre fases. Por ejemplo, sin tener terminado del todo el ejemplo, sin tener terminado del todo el diseño se comienza a implementar. Una diseño se comienza a implementar. Una ventaja es que no necesita generar tanta ventaja es que no necesita generar tanta documentación debido a la continuidad del documentación debido a la continuidad del mismo personal entre fases.mismo personal entre fases.
DESVENTAJASDESVENTAJAS
CICLO DE VIDA TIPO SASHIMICICLO DE VIDA TIPO SASHIMI
Más difícil controlar el progreso del Más difícil controlar el progreso del proyecto debido a que los finales de fase proyecto debido a que los finales de fase ya no son un punto de referencia claro. ya no son un punto de referencia claro.
Al hacer cosas en paralelo si hay Al hacer cosas en paralelo si hay problemas de comunicación pueden problemas de comunicación pueden surgir inconsistenciassurgir inconsistencias
ESTRUCTURAESTRUCTURA Ciclo de vida tipo sashimi Ciclo de vida tipo sashimi
ESTRUCTURAESTRUCTURA
CICLO DE VIDA TIPO SASHIMI CICLO DE VIDA TIPO SASHIMI
La fase de ``concepto'' consiste en definir los La fase de ``concepto'' consiste en definir los objetivos del proyecto, beneficios, tipo de objetivos del proyecto, beneficios, tipo de tecnología. El diseño arquitectónico es el de tecnología. El diseño arquitectónico es el de alto nivel, el detallado el de bajo nivel. alto nivel, el detallado el de bajo nivel.
VARIACIONES DEL MODELO VARIACIONES DEL MODELO EN CASCADAEN CASCADA
CICLO DE VIDA EN CASCADA CON CICLO DE VIDA EN CASCADA CON SUBPROYECTOS SUBPROYECTOS
Al realizar el diseño arquitectónico, el sistema se Al realizar el diseño arquitectónico, el sistema se divide en varios subsistemas independientes entre divide en varios subsistemas independientes entre sí, estos se pueden desarrollar por separado y en sí, estos se pueden desarrollar por separado y en consecuencia en paralelo con los demás. Cada consecuencia en paralelo con los demás. Cada uno tendrá seguramente fechas de terminación uno tendrá seguramente fechas de terminación distintas. Una vez terminados todos se integran y distintas. Una vez terminados todos se integran y se prueba el sistema en conjunto. La ventaja es se prueba el sistema en conjunto. La ventaja es tener a más gente trabajando en paralelo de forma tener a más gente trabajando en paralelo de forma eficiente. El riesgo es que existan eficiente. El riesgo es que existan interdependencias entre los subproyectosinterdependencias entre los subproyectos
VARIACIONES DEL MODELO VARIACIONES DEL MODELO EN CASCADAEN CASCADA
CICLO DE VIDA EN CASCADA CICLO DE VIDA EN CASCADA INCREMENTAL INCREMENTAL
Se va creando el sistema añadiendo pequeñas Se va creando el sistema añadiendo pequeñas funcionalidades. Cada uno de los pequeños funcionalidades. Cada uno de los pequeños incrementos es parecido a lo que ocurre dentro de incrementos es parecido a lo que ocurre dentro de la fase de mantenimiento. La ventaja es que no es la fase de mantenimiento. La ventaja es que no es necesario tener todos los requisitos en un necesario tener todos los requisitos en un principio. El inconveniente es que los errores en la principio. El inconveniente es que los errores en la detección de requisitos se encuentran tarde. detección de requisitos se encuentran tarde.
ESTRUCTURAESTRUCTURA
Ciclo de vidaCiclo de vida
en cascada en cascada
incrementalincremental
VARIACIONES DEL MODELO VARIACIONES DEL MODELO EN CASCADAEN CASCADA
CICLO DE VIDA EN CASCADA CON CICLO DE VIDA EN CASCADA CON REDUCCIÓN DE RIESGOSREDUCCIÓN DE RIESGOS
Uno de los problemas del ciclo de vida en Uno de los problemas del ciclo de vida en cascada es que si se entienden mal los cascada es que si se entienden mal los requisitos esto sólo se descubrirá cuando requisitos esto sólo se descubrirá cuando se entregue el producto. Para evitar este se entregue el producto. Para evitar este problema se puede hacer un desarrollo problema se puede hacer un desarrollo iterativo durante las fases de análisis y iterativo durante las fases de análisis y diseño globaldiseño global
DESARROLLODESARROLLO CICLO DE VIDA EN CASCADA CON CICLO DE VIDA EN CASCADA CON
REDUCCIÓN DE RIESGOSREDUCCIÓN DE RIESGOS Preguntar al usuario. Preguntar al usuario. Hacer diseño global que se desprende del Hacer diseño global que se desprende del
punto 1. punto 1. Hacer un prototipo de interfaz de usuario, Hacer un prototipo de interfaz de usuario,
entrevistas con los usuarios, etc y volver entrevistas con los usuarios, etc y volver con ello al punto 1 para identificar más con ello al punto 1 para identificar más requisitos o corregir malentendidos. requisitos o corregir malentendidos.
El resto es igual al ciclo de vida en El resto es igual al ciclo de vida en cascada.cascada.
DESARROLLO ITERATIVO DESARROLLO ITERATIVO INCREMENTALINCREMENTAL
Forma de reducir la repetición del trabajo Forma de reducir la repetición del trabajo en el proceso de desarrollo y dar en el proceso de desarrollo y dar oportunidad de retrasar la toma de oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir decisiones en los requisitos hasta adquirir experiencia con el sistema.experiencia con el sistema.
Es una combinación del Modelo de Es una combinación del Modelo de Cascada y Modelo Evolutivo.Cascada y Modelo Evolutivo.
DESARROLLO ITERATIVO DESARROLLO ITERATIVO INCREMENTALINCREMENTAL
Bajo este modelo se entrega software “por Bajo este modelo se entrega software “por partes funcionales más pequeñas” , pero partes funcionales más pequeñas” , pero reutilizables, llamadas incrementos. Cada reutilizables, llamadas incrementos. Cada incremento se construye sobre aquel que ya incremento se construye sobre aquel que ya fue entregado.fue entregado.
DESARROLLO ITERATIVO DESARROLLO ITERATIVO INCREMENTALINCREMENTAL
Este es Este es un modelo del tipo evolutivo, donde se un modelo del tipo evolutivo, donde se permiten y esperan probables cambios en los permiten y esperan probables cambios en los requisitos en tiempo de desarrollo; se admite requisitos en tiempo de desarrollo; se admite margen para que el software pueda evolucionar. margen para que el software pueda evolucionar. Aplicable cuando los requisitos son Aplicable cuando los requisitos son medianamente bien conocidos pero no son medianamente bien conocidos pero no son completamente estáticos y definidos.completamente estáticos y definidos.
DESARROLLO ITERATIVO DESARROLLO ITERATIVO INCREMENTALINCREMENTAL
La Descripción del Sistema es esencial La Descripción del Sistema es esencial para especificar y confeccionar los para especificar y confeccionar los distintos incrementos hasta llegar al distintos incrementos hasta llegar al Producto global y final. Las actividades Producto global y final. Las actividades concurrentes (Especificación, Desarrollo concurrentes (Especificación, Desarrollo y Validación) sintetizan el desarrollo y Validación) sintetizan el desarrollo pormenorizado de los incrementos, que pormenorizado de los incrementos, que se hará posteriormentese hará posteriormente..
DESARROLLO ITERATIVO DESARROLLO ITERATIVO INCREMENTALINCREMENTAL
Durante el desarrollo de cada Durante el desarrollo de cada incremento se puede utilizar el modelo incremento se puede utilizar el modelo de cascada o evolutivo, dependiendo de cascada o evolutivo, dependiendo del conocimiento que se tenga sobre del conocimiento que se tenga sobre los requisitos a implementar. los requisitos a implementar.
VENTAJASVENTAJAS No se espera hasta el fin del desarrollo para No se espera hasta el fin del desarrollo para
utilizar el sistema. utilizar el sistema. Se pueden aclarar requisitos conforme se Se pueden aclarar requisitos conforme se
entrega el sistema.entrega el sistema. Se disminuye el riesgo de fracaso de todo el Se disminuye el riesgo de fracaso de todo el
proyecto, ya que se puede distribuir en cada proyecto, ya que se puede distribuir en cada incremento.incremento.
Las partes más importantes del sistema son Las partes más importantes del sistema son entregadas primero, por lo cual se realizan más entregadas primero, por lo cual se realizan más pruebas en estos módulos y se disminuye el pruebas en estos módulos y se disminuye el riesgo de fallos.riesgo de fallos.
DESVENTAJASDESVENTAJAS Cada incremento debe ser pequeño para Cada incremento debe ser pequeño para
limitar el riesgo (menos de 20.000 líneas).limitar el riesgo (menos de 20.000 líneas). Cada incremento debe aumentar la Cada incremento debe aumentar la
funcionalidad.funcionalidad. Es difícil establecer las correspondencias Es difícil establecer las correspondencias
de los requisitos contra los incrementos.de los requisitos contra los incrementos. Es difícil detectar las unidades o servicios Es difícil detectar las unidades o servicios
genéricos para todo el sistema.genéricos para todo el sistema.