Post on 12-Jul-2016
description
Proceso de desarrollo de sistemas de información
Ing. Guissella Romero Hornaguissela23756@hotmail.com
Copyright © 2015, Guissella Romero, Lima-Perú
Temas a tratarVisión genérica del proceso
de desarrollo
Modelos de proceso de desarrollo
Metodologías de desarrollo
Visión genérica del proceso de desarrollo
DefiniciónFasesDefinición
Ejemplo
Visión genérica del proceso de desarrollo
El proceso de desarrollo es un Marco de Trabajo que define las tareas a realizar para
desarrollar software de alta calidad.(Pressman).
Definición
Visión genérica del proceso de desarrollo
Definición
Desarrollo
Evolución
Fases
• Análisis del Sistema
• Requerimientos• Planificación • Diseño
• Codificación• Prueba · Corrección
· Adaptación· Mejora
AS02 El Proceso y Ciclo de vida 6/36
Visión genérica del proceso de desarrollo
La información que se debe proporcionar,
La funcionalidad y rendimiento que se desea,
Las interfaces que deben establecerse, Las restricciones de diseño que existen y
Los criterios de validación que se necesitan para definir un sistema
correcto.
Fase de DefiniciónSu propósito es identificar:
Visión genérica del proceso de desarrollo
Análisis del Sistema
Fase de Definición
Requerimientos del software
Planificación del proyecto
Se realizan las siguientes actividades:
Visión genérica del proceso de desarrollo
Cómo han de diseñarse las estructuras de datos y la arquitectura del software,
Cómo han de implementarse los detalles procedimentales,
Cómo ha de traducirse el diseño a un lenguaje de programación y
Cómo ha de realizarse la prueba..
Fase de DesarrolloSu propósito es decidir:
Visión genérica del proceso de desarrollo
Diseño del Software
Fase de Desarrollo
Codificación
Pruebas del software
Se realizan las siguientes actividades:
AS02 El Proceso y Ciclo de vida 10/36
Visión genérica del proceso de desarrollo
La corrección de errores, Las adaptaciones requeridas por la
evolución del entorno del software y Las modificaciones debidas a los cambios
de requisitos del usuario dirigidos a reforzar o ampliar el sistema.
Esta fase vuelve a aplicar las fases de definición y de desarrollo, pero en el contexto del software ya existente.
Fase de EvoluciónSe centra en los cambios asociados a:
Visión genérica del proceso de desarrollo
Corrección
Fase de Evolución
Adaptación
Mejora
Tres tipos de cambios:
Modelos del proceso de desarrollo
DefiniciónFasesDefinición
Secuencial Iterativos EvolutivosPrototipo
RAD
Incremental
Espiral
Componentes
Modelo Lineal Secuencial
Ciclo de vida clásico, modelo en cascada
+ antiguo, + usado Enfoque sistemático secuencial
AnálisisDiseño
Codif.Prueba
Mant.
Ingeniería sistemas
Modelo Lineal Secuencial Críticas:
◦ Proyectos reales raras veces se ajustan.◦ Raras veces cliente expone todos los req. de
entrada.◦ Producto operativo al final => Paciencia
(cliente) alta. Consejo:
Usar cuando todos los requerimientos han sido establecidos claramente de entrada.
Modelos Iterativos
No están claros los requisito de entrada Iterativo. Hasta cuando se itera? Working prototype, desechar y empezar con
desarrollo de sistema.
Escuchar al cliente
Validar prototipo
Construir prototipo
Construcción de Prototipos
Modelos Iterativos
Aceptado
NO Aceptado
Evaluación Cliente
Mejora de la Especificación
Construcción Prototipo
Obtención Especificació
n
Ciclo de Vida
Clásico
Construcción de Prototipos
Modelos Iterativos
Críticas:◦ Cliente cree que es el sistema.◦ Peligro de familiarización con malas
elecciones iniciales (quick and dirty). Consejo:
◦ Usar cuando inicialmente no están claros los requerimientos.
◦ Definir claramente de entrada las reglas de juego con el cliente.
◦ No ceder a presión del cliente.
Construcción de Prototipos
IS03 El Proceso SW
Modelos Iterativos
Es un modelo Lineal secuencial pero con ciclo extremadamente corto.
La rapidez se lograr porque:◦ El sistema se puede modularizar =>
cada una se asigna a equipos de desarrollo paralelos.
◦ Se basa en el reuso de componentes y T4G.
18/36
Desarrollo Rápido de AplicacionesRapid Application Development (RAD
Modelos Iterativos
Críticas:◦ Proyectos grandes => gran nro. de personas.◦ Alto compromiso en tiempo.◦ No apto para sistemas no modularizable,
baja reusabilidad de componentes. Consejos:
◦ No usar cuando riesgos tecnológicos son altos Por ejemplo, uso de un nuevo lenguaje o
alta interoperatividad con programas ya existentes.
Desarrollo Rápido de Aplicaciones
Modelos Evolutivos Se adaptan más fácilmente a los
cambios introducidos a lo largo del desarrollo.
Son Iterativos En cada iteración se obtienen versiones
más completas del Software Modelos Evolutivos:
◦ Modelo Incremental (*)◦ Modelo en Espiral (*)◦ Modelo de Desarrollo Basado en
Componentes (*)
Modelos Evolutivos
Iteración (repite) de Modelo Lineal Secuencial.
Cada iteración devuelve un “Incremento” o versión operativa.
Útil cuando no se está seguro de cumplir con plazos de tiempo o se tiene una fecha imposible de cambiar.
Modelo Incremental
Modelos Evolutivos
Análisis Diseño PruebaCodif. Entrega 1er IncrementoInc1
Análisis Diseño PruebaCodif. Entrega 2do Incremento
Inc2
Análisis Diseño PruebaCodif. Entrega 3er IncrementoInc3
Tiempo
Modelo Incremental
Modelos EvolutivosModelo en Espiral
Modelos Evolutivos
Útil para proyectos grandes. Permite usar el prototipado en todas las etapas de
la evolución para reducir el riesgo. Mantiene el enfoque sistemático de los pasos
sugeridos por el lineal secuencial, pero lo incorpora dentro de un marco iterativo más real.
Críticas: ◦ Difícil de convencer a los clientes de que es
controlable.◦ Requiere mucha habilidad para el análisis de riesgos
y de esta habilidad depende su éxito.
Modelo en Espiral
IS03 El Proceso SW 25/36
Modelos Evolutivos
PlanificaciónAnálisis de Riesgos
Ingeniería, Construcción y Entrega
Evaluación del Cliente
Comunicación con el Cliente
Ident. Comps. candidatos
Buscar Comps. en biblioteca
Construir Extraer
Colocar en biblioteca
Construir iteración
Desarrollo basado en componentes
Metodologías de Desarrollo del Software
Métodos informales
Métodos Semiformales
Métodos Formales
Métodos informales No siguen un esquema, depende
del estilo del desarrollador◦ Quick & Dirty (USA)◦ Match stick box (Europa)
Metodologías Ágiles
28/36
Métodos Semiformales Métodos Estructurados
◦ SA/SD (structured analysis & structured design)
◦ Métrica Métodos Orientados a Objetos
◦ OMT◦ OOSE◦ RUP
29/36
Métodos Formales Permiten al ingeniero de software especificar,
desarrollar y verificar un sistema informático mediante la aplicación de una notación matemática rigurosa.
Utilizan un lenguaje de especificación formal, Un método formal proporciona los medios de
especificar un sistema de forma que se aseguren, de manera sistemática, la consistencia, la completitud y la corrección.
Se suelen basar en notaciones matemáticas similares a las del álgebra de conjuntos y la lógica