Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Entrega 04
Entrega 04
METODOLOGÍAS DE DESARROLLO
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS
SISTEMAS DE INFORMACIÓN I
❑ METODOLOGÍA DE DESARROLLO
❑ WATERFALL MODEL
▪ El Waterfall Model o modelo en cascada en el cual el desarrollo se ve como una serie
de escalones descendentes (como si se tratara de una cascada de agua) a través de
las distintas fases.
✓ Análisis
✓ Diseño
✓ Desarrollo
✓ Pruebas
✓ Integración
✓ Mantenimiento
▪ Creada en 1970 por Winston W. Royce
❑ … WATERFALL MODEL
▪ Los principios básicos de este modelo son:
✓ El proyecto se divide en fases secuenciales , se permite algún tipo de solapamiento
entre las distintas fases.
✓ Hace énfasis en la planificación, los tiempos, fechas objetivo, presupuestos y en la
implantación del sistema completo al mismo tiempo.
✓ Se mantiene un férreo control durante la duración del proyecto a través del uso
extensivo de documentación así como a través de revisiones y aprobaciones por
los usuarios y gestores del proyecto, al final de cada fase antes de comenzar la
siguiente.
❑ PROTOTIPOS
▪ ...principios básicos
✓ El usuario está más involucrado a través del proyecto, y eso hace que se
incremente la aceptación final del producto por los usuarios.
✓ Se van realizando maquetas a menor escala siguiendo una política de
modificaciones hasta culminar los requerimientos de los usuarios.
✓ Mientras que la mayoría de los prototipos se desarrollan con la expectativa de ser
deshechos, es posible en algunos casos evolucionar los prototipos hacia el sistema
final.
❑ INCREMENTAL
▪ Combinación de metodologías iterativas y lineales con el objetivo primario de reducir
los riesgos del proyecto, los proyectos se dividen en partes mas pequeñas, de esta
manera también se facilitan los cambios durante el proceso de desarrollo.
▪ Los principios fundamentales son:
✓ Se realizan una serie de mini-waterfalls, donde todas las fases del desarrollo en cascada se
completan para una pequeña parte del sistema, antes de abordar la siguiente parte.
✓ Los conceptos iniciales del sistema, análisis de requerimientos, diseño de arquitectura, etc.
Del sistema completo se definen usando también la técnica de Cascada.
✓ Después de esto mediante prototipos se van desarrollando las distintas partes en las que
ha sido dividido el proyecto.
✓ Finalmente el proceso culmina con la implantación del sistema en su conjunto (otro mini-
waterfall)
Figura:
Desarrollo incremental
❑ MODELO ESPIRAL
Modelo en espiral de
Boehm del proceso de
software (© IEEE, 1988)
❑ ...ESPIRAL
▪ En cada vuelta o iteración hay que tener en cuenta:
✓ Los Objetivos: Que necesidad debe cubrir el producto.
✓ Alternativas: Las diferentes formas de conseguir los objetivos de forma exitosa,
desde diferentes puntos de vista como pueden ser:
Características:
1. experiencia del personal, requisitos a cumplir, etc.
2. Formas de gestión del sistema.
3. Riesgo asumido con cada alternativa.
❑ ...ESPIRAL
▪ Si el resultado no es el adecuado o se necesitan mejoras:
✓Se planifican los siguientes pasos y se comienza un nuevo ciclo de la espiral, la
espiral tiene dos dimensiones, la radial y la angular.
✓Angular
Indica el avance del proyecto dentro de un ciclo
✓Radial
Indica el aumento del coste del proyecto, ya que con cada nueva iteración se
pasa más tiempo desarrollado
❑ ...ESPIRAL
▪ Al ser un modelo de ciclo de vida orientado a la gestión del riesgo, se dice que uno de
los aspectos fundamentales de su éxito radica en que el equipo que lo aplique tenga
la necesaria experiencia y habilidad para detectar y catalogar correctamente los
riesgos.
❑ ...ESPIRAL
▪ Para cada ciclo hay cuatro actividades
✓ Determinar o fijar objetivos
Fijar los productos definidos a obtener, requerimientos, especificaciones, manual de usuario
Fijar las restricciones
Identificación de riesgos del proyecto y estrategias alternativas para evitarlos
▪ Análisis del riesgo
Se estudian todos los riesgos potenciales y se seleccionan una o varias alternativas propuestas
para reducir o eliminar los riesgos.
▪ Desarrollar, verificar y validad (pruebas)
Tareas de la actividad propia y prueba
Análisis de alternativas e identificación de resolución de riesgos
Dependiendo del resultado de la evaluación de riesgos, se elige un modelo para el desarrollo,
cascada, iterativo, etc...
▪ Planificar
Revisamos todo lo realizado, evaluándolo y decidimos si continuamos con las fases siguientes
y planificamos la próxima actividad
❑ …RAD
❑ …RAD
❑ OTRAS METODOLOGÍAS
▪ Metodologías de desarrollo orientado a objetos según fue diseñado por Grady Booch
✓ Este modelo incluye seis diagramas
1. Clases
2. Objetos
3. Transición y estados
4. Interacción
5. Módulos
6. Procesos
1. Una perspectiva dinámica que muestra las fases del modelo a través del tiempo.
2. Una perspectiva estática que presenta las actividades del proceso que se establecen.
3. Una perspectiva práctica que sugiere buenas prácticas a usar durante el proceso
❑ …RUP
▪ Principales características
✓ Forma disciplinada de asignar tareas y responsabilidades (quien hace que, cuando y cómo)
✓ Pretende implementar las mejores prácticas en Ingeniería de software.
✓ Desarrollo Iterativo
✓ Administración de requisitos
✓ Uso de arquitectura basada en componentes
✓ Control de cambios
✓ Modelado visual de software
✓ Verificación de la calidad del software
❑ …RUP
▪ El RUP es un producto de Rational (IBM).
▪ Se caracteriza por ser iterativo e incremental, estar centrado en la arquitectura y guiado por
los casos de uso.
▪ Incluye artefactos (que son los productos tangibles del proceso, como por ejemplo:
✓ El modelo de casos de uso
✓ El modelo de clases
✓ El código fuente
✓ Etc..
❑ …RUP
▪ Está basado en 5 principios clave
1. Adaptar el proceso
El proceso deberá adaptarse a las características propias del proyecto u organización,
el tamaño del mismo, así como su tipo o las regularizaciones que lo condicionen,
incluirán en su diseño específico.
También se deberá tener en cuenta el alcance del proyecto.
2. Balancear Prioridades
Los requerimientos de los distintos participantes pueden ser diferentes,
contradictorios o disputarse recursos limitados.
Debe encontrarse un balance que satisfaga los deseos de todos.
Debido a este balanceo se podrán corregir desacuerdos en el futuro.
❑ …RUP
3. Demostrar valor iterativamente
Los proyectos se entregan, aunque sea de un modo interno, en etapas iteradas.
En cada iteración se analiza la opinión de los inversores, la estabilidad y calidad del producto, y
se refina la dirección del proyecto, así como también los riesgos involucrados.
4. Elevar el nivel de abstracción
Persigue el uso de elementos reutilizables tales como los patrones de software, lenguajes 4GL
o frameworks.
Desarrollo con la mente puesta en la reutilización del código
Un alto nivel de abstracción también permite discusiones sobre diversos niveles y soluciones
arquitectónicas.
5. Enfocarse en la calidad
El control de la calidad no debe realizarse al final de cada iteración, sino en todos los aspectos
de la producción.
El aseguramiento de la calidad forma parte del proceso de desarrollo y no de un grupo
independiente.
ING. KAREL PERALTA SOTOMAYOR 24
UNIVERSIDAD NACIONAL DE SAN CRISTÓBAL DE HUAMANGA
ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS
SISTEMAS DE INFORMACIÓN I
1. Iniciación
2. Elaboración
3. Construcción
4. Transición
❑ …CICLO DE VIDA
▪ Las primeras iteraciones (en las fases de inicio y elaboración) se enfocan hacia la comprensión
del problema y la tecnología, la delimitación del ámbito del proyecto, la eliminación de los
riesgos críticos y al establecimiento de la línea de base de la arquitectura.
▪ Fase de Iniciación
✓ Las iteraciones hacen mayor énfasis en actividades de modelado del negocio y de
requerimientos.
✓ En muchos sentidos, la fase de iniciación es muy similar a la fase de planificación de un
enfoque tradicional de SDLC. En esta fase, se presenta un caso de negocio para el sistema
propuesto. Esto incluye un análisis de viabilidad que debe responder preguntas como las
siguientes:
✓ ¿Tenemos la capacidad técnica para construirlo (viabilidad técnica)?
✓ Si lo construimos, ¿proporcionará valor comercial (viabilidad económica)?
✓ Si lo construimos, ¿será utilizado por la organización (viabilidad organizativa)?
❑ …CICLO DE VIDA
▪ Fase de elaboración
✓ Las iteraciones se orientan al desarrollo de la línea de base de la arquitectura, abarcan más
los flujos de trabajo de requerimientos, modelos de negocio, análisis, diseño e
implementación orientada a la línea de base de la arquitectura.
✓ Los flujos de trabajo de análisis y diseño son el enfoque principal durante esta fase. La fase
de elaboración continúa con el desarrollo del documento de la visión, incluida la finalización
del caso de negocios, la revisión de la evaluación de riesgos y la finalización de un plan de
proyecto con suficiente detalle para permitir que los interesados puedan ponerse de
acuerdo con la construcción del sistema final real.
✓ Se trata de recopilar los requisitos, construir los modelos de comportamiento y estructura
UML del dominio del problema y detallar cómo los modelos del dominio del problema se
adaptan a la arquitectura del sistema en evolución.
❑ …CICLO DE VIDA
▪ Fase de Construcción
✓ La fase de construcción se centra en gran medida en la programación del sistema de
información en evolución.
✓ Esta fase se ocupa principalmente del flujo de trabajo de implementación. Sin embargo, los
requisitos de flujo de trabajo y los flujos de trabajo de análisis y diseño también están
involucrados en esta fase.
✓ Es durante esta fase que se identifican los requisitos faltantes y los modelos de análisis y
diseño se completan finalmente.
✓ El flujo de trabajo de configuración y gestión de cambios, con sus actividades de control de
versiones, se vuelve extremadamente importante durante la fase de construcción. A veces,
una iteración tiene que ser revertida. Sin buenos controles de versión, es casi imposible
revertir a una versión anterior (implementación incremental) del sistema.
✓ El principal resultado de esta fase es una implementación del sistema que puede lanzarse
para pruebas beta y de aceptación.
❑ …CICLO DE VIDA
▪ Fase de Transición
✓ Su enfoque principal está en los flujos de trabajo de prueba y despliegue. Esencialmente, los
flujos de trabajo de modelado, requisitos y análisis de negocios deberían haberse
completado en versiones anteriores del sistema de información en evolución.
✓ Además, el flujo de trabajo de prueba se habrá ejecutado durante las fases anteriores del
sistema en evolución. Dependiendo de los resultados del flujo de trabajo de prueba, podrían
ser necesarias algunas actividades de rediseño y programación en los flujos de trabajo de
diseño e implementación, pero deberían ser mínimas en este punto.
✓ Desde una perspectiva de gestión, la gestión del proyecto, la gestión de la configuración y el
cambio, y el entorno están involucrados.
✓ Algunas de las actividades que se llevan a cabo son las pruebas beta y de aceptación, para
ajustar el diseño y la implementación, la capacitación del usuario y el despliegue del
producto final en una plataforma de producción.
❑ FASE DE PRODUCCIÓN
▪ La fase de producción se ocupa principalmente de los problemas relacionados con el producto
de software una vez que se ha implementado con éxito.
▪ Esta fase se centra en los problemas relacionados con la actualización, el mantenimiento y el
funcionamiento del software.
▪ A diferencia de las fases anteriores, no hay iteraciones o entregables incrementales.
▪ Si se va a desarrollar una nueva versión del software, entonces los desarrolladores deben
comenzar una nueva ejecución a través de las primeras cuatro fases.
▪ Según las actividades que se llevan a cabo durante esta fase, no hay flujos de trabajo de
ingeniería relevantes.
❑ FASE DE PRODUCCIÓN
▪ Los flujos de trabajo de soporte que están activos durante esta fase incluyen el flujo de trabajo
de configuración y gestión de cambios, el flujo de trabajo de gestión de proyectos, las nuevas
operaciones y el flujo de trabajo de soporte, y el flujo de trabajo de gestión de infraestructura.
❑ RUP - SECCIONES
▪ Sección de Proceso
✓ Modelado de Negocio
✓ Requisitos
✓ Análisis y diseño
✓ Implementación
✓ Pruebas
✓ Despliegue
▪ Sección de Soporte
✓ Gestión del cambio y configuraciones
✓ Gestión del proyecto
✓ Entorno
❑ RUP
▪ El enfoque práctico del RUP describe las buenas prácticas de ingeniería de software que se
recomiendan para su uso en el desarrollo de sistemas.
Las seis mejores prácticas fundamentales que se recomiendan son:
1. Desarrollo de software de manera iterativa Incrementar el plan del sistema con base en las
prioridades del cliente, y desarrollar oportunamente las características del sistema de mayor
prioridad en el proceso de desarrollo.
2. Gestión de requerimientos Documentar de manera explícita los requerimientos del cliente y seguir
la huella de los cambios a dichos requerimientos. Analizar el efecto de los cambios sobre el sistema
antes de aceptarlos.
3. Usar arquitecturas basadas en componentes Estructurar la arquitectura del sistema en
componentes.
4. Software modelado visualmente Usar modelos UML gráficos para elaborar representaciones de
software estáticas y dinámicas.
❑ RUP
5. Verificar la calidad del software Garantizar que el software cumpla con los estándares de calidad de
la organización.
6. Controlar los cambios al software Gestionar los cambios al software con un sistema de
administración del cambio, así como con procedimientos y herramientas de administración de la
configuración.
❑ RUP - ARTEFACTOS
▪ En cada una de sus fases de la estructura estática realiza una serie de artefactos que sirven
para comprender mejor tanto el análisis como del diseño del sistema.
▪ Fase de Inicio
✓ Documento Visión
✓ Especificación de requerimientos
▪ Fase de elaboración
✓ Diagramas de caso de uso
❑ … ARTEFACTOS
▪ Fase de construcción
✓ Trabaja desde cuatro vistas:
1. Vista lógica
Diagrama de clases
Modelo ER
2. Vista de implementación
Diagrama de Secuencia
Diagrama de estados
Diagrama de colaboración
3. Vista conceptual
Modelo de dominio
4. Vista física
Mapa de comportamiento HARDWARE
ING. KAREL PERALTA SOTOMAYOR 40