Desarrollo de Software
Proceso de Desarrollo de
Software
Proceso
 Un proceso define quien hace que cuando y
como para alcanzar cierto objetivo
 El éxito de una empresa depende en gran
medida de la definición y seguimiento de sus
procesos.
 Los sistemas software pueden llegar a ser
extremadamente complejos
 Por lo tanto es necesario contar con modelos de
proceso y tecnologías adecuadas.
Modelo de Proceso
 Define como solucionar la problemática
 Para desarrollar SW se requiere resolver ciertas
fases de su proceso(ciclo de vida)
 Aspectos a considerar:
 Conjunto de personas
 Estructuras organizacionales
 Reglas
 Politicas
 Actividades
 Componentes SW
 Metodologías y Herramientas
Modelo de proceso
 El modelo depende de un tipo de proyecto
 Primer proyecto de su tipo
 Segundo proyecto de su tipo
 Variación de un proyecto
 Proyecto de reescritura de legado(legacy)
 Proyecto de creacion de software reutilizable
 Proyecto de mejora de sistema o
mantenimiento
Modelo de Proceso(3)
 Componentes de un modelo
 Arquitectura
 Actividad
 Metodos
 Estrategia
 Herramientas
Arquitectura
 Una arquitectura de SW define la
estructura general de un sistema
 Ejemplos:
 Transformacion en lote
 Transformacion continua
 Sistemas interactivos
 Simulacion dinamica
 Sistemas de tiempo real
 Administracion de transaccion
Actividad
 Una actividad es una unidad o paso básico
de un proceso
 Son las pasos necesarios para lograr la
meta
 Las actividades básicas se conocen como
el ciclo de vida del software
Actividad(1)
 Requisitos
 Sirve para especificar los aspectos funcionales
 Modelo de requisitos
 Analisis
 Permite dar una estructura robusta y extensible
 Diseño
 Adoptar y refinar una arquitectura y adaptarla al
ambiente
Actividad(2)
 Implementacion
 Codificar el sistema
 Integracion
 Combinar componentes
 Pruebas
 Validar y verificar el sistema
 Documentacion
 Describir el sistema
 Mantenimiento
 Extender la funcionalidad del sistema
Métodos y Metodologías
 Los métodos definen las reglas para las
transformaciones internas de las
actividades
 Las metodologías definen un conjunto de
métodos.
 Método es un procedimiento que define
tareas o acciones a realizar
Métodos y Metodologías(1)
 Existe una gran variedad de métodos y
metodologías
 Metodologias:
 Estructuradas o tradicionales
 Orientadas a objetos
Métodos y Metodologías(2)
 Estructuradas
 Descomposición funcional
 Definir en forma de funciones, y estableciendo
los datos de entrada y salida
 Herramientas
 Diagramas de flujos de datos
 Diagramas de transición de estados
 Diagramas Entidad-Relación
Métodos y Metodologías(3)
 Orientadas a objetos
 Modelado de un sistema en términos de objetos
 Se identifican objetos, para luego especificar su
comportamiento
 Hay una gran variedad
 Herramientas
 Diagramas de clases
 Diagramas de casos de uso
 Diagramas de transición/estado
 Diagrama de secuencia
 Diagrama de colaboracion
Métodos y Metodologías(4)
 Son distintos actividad, metodo y notacion
 Actividad: Requisitos
 Metodos de requisitos:
 OBA
 FUSION
 UP
 Notación
 Caso de uso
Estrategias
 Un plan para lograr un objetivo
 Afectan a: La arquitectura del sistema,
Orden de las actividades, Metodologías a
usarse.
 Decisiones sobre:
 Tipo de proyecto
 Tecnologia
 Herramientas
Estrategias(1)
 Estrategias aceptadas actualmente:
 Prototipos
 Versión preliminar intencionalmente incompleta o
reducida del sistema
 Reutilización
 Explotación de componentes desarrollados
Herramientas
 Aplicaciones que apoyan la administracion
del proceso de software.
 Herramientas CASE
 Editores de texto
 Diagramadores
 etc
MODELOS DE DESARROLLO
Modelos Clásicos
 Creencias u opiniones de personas involucradas
en el proyecto
 Son:
 Comprender el problema antes de desarrollar
 Proceso debe dar un resultado predecible
 Planear y calcular el proceso con gran precisión
 Evaluar y administrar el riesgo
 Entrega en etapas intermedias aumenta la confianza
de un buen resultado
Modelos Clásicos(1)
 Cascada
 Secuencia de actividades
 Seguir hacia puntos de revisión bien definidos
mediante reglas calendarizadas
 No hay etapa de documentación explicita
 Especificación de requisitos
 Analisis
 Diseño
 Implentacion
 Pruebas
 Integracion
Modelos Clásicos(2)
 Incremental
 Es un desarrollo inicial de la arquitectura
completa del sistema seguido de incrementos
o versiones parciales
 Cada incremento tiene su propio ciclo
 Cada incremento agrega una funcionalidad
Modelos Clásicos(3)
 Evolucionario
 Extensión del incremental
 Los incrementos se hacen de manera
secuencial en vez de paralela
 El sistema va evolucionando según se entrega
cada incremento
 Primeros requerimientos dictan el incremento
inicial
 Se considera las deltas de especificación de
requerimientos
Modelos Clásicos(4)
 Espiral
 Extensión del modelo de cascada
 Se basa en la estrategia para reducir el riesgo
 Enfatiza en ciclos de trabajo
 Cada uno de los cuales estudia el riesgo antes
de seguir al siguiente
 Incorpora al igual que los anteriores una
estrategia de uso de prototipos
Modelos Recientes
 Ganar-Ganar
 Extiende el modelo de espiral
 Considera condiciones de ganancia
 Crea un plan para alcanzar situaciones
ganadoras
 Ciclo
 Objetivos, restricciones, alternativas
 Evaluar alternativas
 Elaborar definición del proceso y producto
 Planear el siguiente ciclo
Modelos Recientes(1)
 Programación extrema(XP)
 Toma los principios y practicas de
programación aceptadas y las enfatiza a
mayor grado
 Refactoring
 Programacion por pares
 Evaluación permanente
 Entregas en plazos cortos
Modelos Recientes(2)
 Proceso Unificado
 Basado en casos de uso
 Centrado en la arquitectura
 Iterativo e incremental
 Involucra
 Ciclos
 Fases
 Flujos de trabajo
 Mitigación
 Control de calidad
Calidad de Software y modelos de
madurez del proceso
 Calidad directamente relacionado con su
proceso
 Factores para obtener productos de
calidad
 Cliente o usuario
 Desarrollador
 Proceso
 Producto
Modelos de madurez del Proceso
 Modelo de Madurez de Capacidades(CMM)
 Evaluar los procesos en sus niveles de
madurez
 Se evalua el area de proceso clave
 Niveles
 Inicial
 Repetible
 Definido
 Administrado
 Optimizado
Modelos de madurez del Proceso
 Organizacion Internacional De la
Estandarizacion(ISO)
 ISO 9000
 Normas relacionadas con la administracion de la
calidad de productos y servicios
 En SW 9000-1
 ISO 12207
 Calidad en los procesos del ciclo de vida
Modelos de madurez del Proceso
 Modelo de Madurez de Ingenieria de
Desempeño(PEMM)
 Evaluar niveles de integracion, aplicacion, ejecucion y
diseno de la ingenieria de desempeño
 Tiene cinco niveles
 Practicas sin coordinacion
 Desempeño en subprocesos
 Completa definicion del proceso
 Exito de integracion y prueba
 Optimizacion de procesos
Modelos de madurez del Proceso
 Proceso de Software Personal(PSP)
 Esta basado en la creencia de que la calidad del
software depende del trabajo de cada uno de los
ingenieros.
 Por lo cual el proceso Controla y Maneja el trabajo de
estos
 Instrumentacion: Evolucion del PSP
 1. medida personal
 2. Planeacion personal
 3. Calidad de personal
 4. Proceso ciclico
Modelos de madurez del Proceso
 Proceso de Software de Equipos(TSP)
 Extiende el modelo PSP e integra los aspectos
de desarrollo de SW realizados por equipos de
trabajo.
 Define asignacion y control de tareas a
miembros del equipo

Proceso de desarrollo de software

  • 1.
  • 2.
  • 3.
    Proceso  Un procesodefine quien hace que cuando y como para alcanzar cierto objetivo  El éxito de una empresa depende en gran medida de la definición y seguimiento de sus procesos.  Los sistemas software pueden llegar a ser extremadamente complejos  Por lo tanto es necesario contar con modelos de proceso y tecnologías adecuadas.
  • 4.
    Modelo de Proceso Define como solucionar la problemática  Para desarrollar SW se requiere resolver ciertas fases de su proceso(ciclo de vida)  Aspectos a considerar:  Conjunto de personas  Estructuras organizacionales  Reglas  Politicas  Actividades  Componentes SW  Metodologías y Herramientas
  • 5.
    Modelo de proceso El modelo depende de un tipo de proyecto  Primer proyecto de su tipo  Segundo proyecto de su tipo  Variación de un proyecto  Proyecto de reescritura de legado(legacy)  Proyecto de creacion de software reutilizable  Proyecto de mejora de sistema o mantenimiento
  • 6.
    Modelo de Proceso(3) Componentes de un modelo  Arquitectura  Actividad  Metodos  Estrategia  Herramientas
  • 7.
    Arquitectura  Una arquitecturade SW define la estructura general de un sistema  Ejemplos:  Transformacion en lote  Transformacion continua  Sistemas interactivos  Simulacion dinamica  Sistemas de tiempo real  Administracion de transaccion
  • 8.
    Actividad  Una actividades una unidad o paso básico de un proceso  Son las pasos necesarios para lograr la meta  Las actividades básicas se conocen como el ciclo de vida del software
  • 9.
    Actividad(1)  Requisitos  Sirvepara especificar los aspectos funcionales  Modelo de requisitos  Analisis  Permite dar una estructura robusta y extensible  Diseño  Adoptar y refinar una arquitectura y adaptarla al ambiente
  • 10.
    Actividad(2)  Implementacion  Codificarel sistema  Integracion  Combinar componentes  Pruebas  Validar y verificar el sistema  Documentacion  Describir el sistema  Mantenimiento  Extender la funcionalidad del sistema
  • 11.
    Métodos y Metodologías Los métodos definen las reglas para las transformaciones internas de las actividades  Las metodologías definen un conjunto de métodos.  Método es un procedimiento que define tareas o acciones a realizar
  • 12.
    Métodos y Metodologías(1) Existe una gran variedad de métodos y metodologías  Metodologias:  Estructuradas o tradicionales  Orientadas a objetos
  • 13.
    Métodos y Metodologías(2) Estructuradas  Descomposición funcional  Definir en forma de funciones, y estableciendo los datos de entrada y salida  Herramientas  Diagramas de flujos de datos  Diagramas de transición de estados  Diagramas Entidad-Relación
  • 14.
    Métodos y Metodologías(3) Orientadas a objetos  Modelado de un sistema en términos de objetos  Se identifican objetos, para luego especificar su comportamiento  Hay una gran variedad  Herramientas  Diagramas de clases  Diagramas de casos de uso  Diagramas de transición/estado  Diagrama de secuencia  Diagrama de colaboracion
  • 15.
    Métodos y Metodologías(4) Son distintos actividad, metodo y notacion  Actividad: Requisitos  Metodos de requisitos:  OBA  FUSION  UP  Notación  Caso de uso
  • 16.
    Estrategias  Un planpara lograr un objetivo  Afectan a: La arquitectura del sistema, Orden de las actividades, Metodologías a usarse.  Decisiones sobre:  Tipo de proyecto  Tecnologia  Herramientas
  • 17.
    Estrategias(1)  Estrategias aceptadasactualmente:  Prototipos  Versión preliminar intencionalmente incompleta o reducida del sistema  Reutilización  Explotación de componentes desarrollados
  • 18.
    Herramientas  Aplicaciones queapoyan la administracion del proceso de software.  Herramientas CASE  Editores de texto  Diagramadores  etc
  • 19.
  • 20.
    Modelos Clásicos  Creenciasu opiniones de personas involucradas en el proyecto  Son:  Comprender el problema antes de desarrollar  Proceso debe dar un resultado predecible  Planear y calcular el proceso con gran precisión  Evaluar y administrar el riesgo  Entrega en etapas intermedias aumenta la confianza de un buen resultado
  • 21.
    Modelos Clásicos(1)  Cascada Secuencia de actividades  Seguir hacia puntos de revisión bien definidos mediante reglas calendarizadas  No hay etapa de documentación explicita  Especificación de requisitos  Analisis  Diseño  Implentacion  Pruebas  Integracion
  • 22.
    Modelos Clásicos(2)  Incremental Es un desarrollo inicial de la arquitectura completa del sistema seguido de incrementos o versiones parciales  Cada incremento tiene su propio ciclo  Cada incremento agrega una funcionalidad
  • 23.
    Modelos Clásicos(3)  Evolucionario Extensión del incremental  Los incrementos se hacen de manera secuencial en vez de paralela  El sistema va evolucionando según se entrega cada incremento  Primeros requerimientos dictan el incremento inicial  Se considera las deltas de especificación de requerimientos
  • 24.
    Modelos Clásicos(4)  Espiral Extensión del modelo de cascada  Se basa en la estrategia para reducir el riesgo  Enfatiza en ciclos de trabajo  Cada uno de los cuales estudia el riesgo antes de seguir al siguiente  Incorpora al igual que los anteriores una estrategia de uso de prototipos
  • 25.
    Modelos Recientes  Ganar-Ganar Extiende el modelo de espiral  Considera condiciones de ganancia  Crea un plan para alcanzar situaciones ganadoras  Ciclo  Objetivos, restricciones, alternativas  Evaluar alternativas  Elaborar definición del proceso y producto  Planear el siguiente ciclo
  • 26.
    Modelos Recientes(1)  Programaciónextrema(XP)  Toma los principios y practicas de programación aceptadas y las enfatiza a mayor grado  Refactoring  Programacion por pares  Evaluación permanente  Entregas en plazos cortos
  • 27.
    Modelos Recientes(2)  ProcesoUnificado  Basado en casos de uso  Centrado en la arquitectura  Iterativo e incremental  Involucra  Ciclos  Fases  Flujos de trabajo  Mitigación  Control de calidad
  • 28.
    Calidad de Softwarey modelos de madurez del proceso  Calidad directamente relacionado con su proceso  Factores para obtener productos de calidad  Cliente o usuario  Desarrollador  Proceso  Producto
  • 29.
    Modelos de madurezdel Proceso  Modelo de Madurez de Capacidades(CMM)  Evaluar los procesos en sus niveles de madurez  Se evalua el area de proceso clave  Niveles  Inicial  Repetible  Definido  Administrado  Optimizado
  • 30.
    Modelos de madurezdel Proceso  Organizacion Internacional De la Estandarizacion(ISO)  ISO 9000  Normas relacionadas con la administracion de la calidad de productos y servicios  En SW 9000-1  ISO 12207  Calidad en los procesos del ciclo de vida
  • 31.
    Modelos de madurezdel Proceso  Modelo de Madurez de Ingenieria de Desempeño(PEMM)  Evaluar niveles de integracion, aplicacion, ejecucion y diseno de la ingenieria de desempeño  Tiene cinco niveles  Practicas sin coordinacion  Desempeño en subprocesos  Completa definicion del proceso  Exito de integracion y prueba  Optimizacion de procesos
  • 32.
    Modelos de madurezdel Proceso  Proceso de Software Personal(PSP)  Esta basado en la creencia de que la calidad del software depende del trabajo de cada uno de los ingenieros.  Por lo cual el proceso Controla y Maneja el trabajo de estos  Instrumentacion: Evolucion del PSP  1. medida personal  2. Planeacion personal  3. Calidad de personal  4. Proceso ciclico
  • 33.
    Modelos de madurezdel Proceso  Proceso de Software de Equipos(TSP)  Extiende el modelo PSP e integra los aspectos de desarrollo de SW realizados por equipos de trabajo.  Define asignacion y control de tareas a miembros del equipo