Metodologías de Desarrollo de Software
Metodologías de Desarrollo de Software
Metodologías de Desarrollo de Software
● Metodologías estructuradas
■ Fines de los 70’s con la Programación Estructurada
● Técnicas para el Diseño
○ Diagrama de Estructura
○ Diagramas de Flujo de Datos
■ Estas metodologías son particularmente apropiadas en proyectos que
utilizan para la implementación lenguajes de 3ra y 4ta generación.
■ Ejemplos de metodologías:
● MERISE (Francia)
● MÉTRICA (España)
● SSADM (Reino Unido)
● Gane & Sarson Ward & Mellor
● Yourdon & DeMarco
● Information Engineering.
● Características:
○ incremental
○ cooperativo
○ sencillo
○ adaptable
○ Extreme Programming .
○ Scrum.
○ Kanban
○ Lean
○ Familia de Metodologías Crystal.
○ Feature Driven Development .
○ Proceso Unificado Rational, una configuración ágil.
○ Dynamic Systems Development Method .
○ Adaptive Software Development .
○ Open Source Software Development .
Definición de stakeholders
● Son los individuos u organismos que ganan o pierden con algún cambio, son
impactados positiva o negativamente independientemente o no de su voluntad.
Tienen interés en el resultado del cambio
● Loucopoulos (cap 3):
○ “the parties who have interest in the software system under development”
● (Wieringa&Glinz, 2007)
○ “A stakeholder is a person or organization who influences a system’s
requirements or who is impacted by that system”
Clasificación de stakeholders
● Interesados en su construcción
○ Responsabilidad por el diseño y desarrollo
○ Incluye: project managers, diseñadores de software, expertos en
comunicaciones
● Interés financiero
○ Responsabilidad por la compra o la venta
○ Incluye: analista de negocios, gerente de ventas, comprador
● Interesados en su introducción y operación
○ Responsabilidad por la implementación y el mantenimiento
○ Incluye: equipo de entrenamiento y soporte del usuario, ingenieros de
instalación y mantenimiento, gerentes usuarios
● Interesados en su uso
○ Interés en su uso
○ Incluye: gerentes usuarios, toda clase de usuarios (directos e indirectos)
El Contrato social
Categorías de requerimientos
● Orientados al Mercado
○ Bocetos e informales
○ Técnicas más de manufactura que de SE
○ Especificación en forma de presentación comercial
○ “Cliente” no fácilmente identificable
○ Consultores para aspectos deseables
○ Enfoque poco estructurado.
Validación de requerimientos
Proceso de requerimientos
● EL PROCESO GLOBAL
● ELICITACIÓN
● ESPECIFICACIÓN
● VALIDACIÓN
Elicitación de requerimientos
Especificación de requerimientos
Una especificación puede ser vista como un contrato entre usuarios y desarrolladores de
software, que define el comportamiento funcional deseado del artefacto de software (y otras
propiedades de este, tales como performance, confiabilidad, etc.) sin mostrar como será
alcanzada tal funcionalidad
Validación de requerimientos
Características INVEST
● Ventajas
○ No modifica el flujo del ciclo de vida
○ Reduce el riesgo de construir productos que no satisfagan las necesidades
de los usuarios
○ Reduce costo y aumenta la probabilidad de éxito
○ Exige disponer de las herramientas adecuadas
○ Este modelo es útil cuando el cliente conoce los objetivos generales para el
software, pero no identifica los requisitos detallados de entrada,
procesamiento o salida.
○ También ofrece un mejor enfoque cuando el responsable del desarrollo del
software está inseguro de la eficacia de
○ un algoritmo, de la adaptabilidad de un sistema operativo o de la forma que
debería tomar la interacción humano máquina.
● Desventajas
○ Debido a que el usuario ve que el prototipo funciona piensa que este es el
producto terminado y no entienden que recién se va a desarrollar el software.
○ El desarrollador puede caer en la tentación de ampliar el prototipo para
construir el sistema final sin tener en cuenta los compromisos de calidad y
mantenimiento que tiene con el cliente
Agregación
Composición