MODELOS DE
PROCESO DE
SOFTWARE
INF-162
Grupo #5
Definiciones
Un modelo de proceso de software es una descripción del conjunto de tareas, actividades, procesos y
resultados. Las actividades de los procesos que pertenecen a un modelo determinado son parte tanto
de los procesos como del producto software, incluyendo a las personas involucradas en la ingeniería
de software, cada uno con su respectivo papel. Algunos ejemplos de estos tipos de modelos que se
pueden producir son:
● Un modelo de flujo de trabajo.
● Un modelo de flujo de datos o de actividad.
● Un modelo de rol/acción.
Modelo en cascada o lineal secuencial
(Secuencial)
Llamado algunas veces «ciclo de vida básico» o modelo en cascada», el modelo lineal secuencial
sugiere un enfoque sistemático, secuencial, para el desarrollo del software que comienza en un nivel
de sistemas y progresa con el análisis, diseño, codificación, pruebas y mantenimiento.
Modelo de construcción de prototipos
(Secuencial)
El paradigma de construcción de prototipos comienza con la recolección de requisitos. El
desarrollador y el cliente encuentran y definen los objetivos globales para el software,identifica los
requisitos conocidos y las áreas del esquema en donde es obligatoria más definición.
Modelo RDA
(Secuencial)
Es una adaptación a «alta velocidad» del modelo lineal secuencial en el que se
logra el desarrollo rápido. Fases:
Modelado de Gestión. El flujo de información entre las funciones se modela
respondiendo a las siguientes preguntas: ¿Qué información conduce el
proceso de gestión? ¿Qué información se genera? ¿Quién la genera? ¿A
dónde va la información? ¿Quién la procesa?
Modelado de datos. Se definen las características (llamadas atributos) de
cada uno de los objetos y las relaciones entre estos objetos.
Modelado del proceso. Los datos quedan transformados para lograr el flujo
de información necesario para implementar una función de gestión.
Generación de aplicaciones. En lugar de crear software con lenguajes de
programación de tercera generación, trabaja para volvera utilizar
componentes de programas ya existentes (cuando es posible) o a crear
componentes reutilizables (cuando sea necesario). Se utilizan
herramientas para facilitar la construcción del software.
Modelo Concurrente
(Evolutivo)
Es un modelo de tipo de red donde todas las personas actúan simultáneamente
desarrollando una serie de actividades técnicas importantes.
● Se puede expresar de manera esquematizada.
● Las actividades llevan procesos concurrentes.
● Es aplicable a todo tipo de desarrollo de software.
● Está dirigido por las necesidades del usuario.
● Es aplicable al cliente servidor
Ventajas:
● Ideal para proyectos en los que se conforman grupos de trabajo
independientes.
● Proporciona una imagen exacta del estado actual de un proyecto.
Desventajas:
● Si no se dan las condiciones señaladas no es aplicable.
● Si no existen grupos de trabajo no se puede trabajar en este método
MODELO ESPIRAL
(Evolutivo)
Modelo Espiral WIN-WIN (gano & gane)
● Aternativas.
● Restricciones.
● Gestión de riesgo
Modelo Incremental
(Evolutivo)
El modelo incremental se desarrolló como una forma de reducir
la repetición del trabajo en el proceso de desarrollo y dar
oportunidad de retrasar la toma de decisiones en los requisitos
hasta adquirir experiencia con el sistema.
El Modelo Incremental combina elementos del Modelo Lineal
Secuencial con la filosofía interactiva de Construcción de
Prototipos, el modelo incremental aplica secuencias lineales de
forma escalonada mientras progresa el tiempo en el calendario.
Cada secuencia lineal produce un incremento del software. El
primer incremento generalmente es un producto esencial
denominado núcleo.
Ventajas:
Con un paradigma incremental se reduce el tiempo de
desarrollo inicial, ya que se implementa la funcionalidad
parcial.
También provee un impacto ventajoso frente al cliente, que es
la entrega temprana de partes operativas del software.
Desventajas:
El modelo incremental no es recomendable para casos de sistemas de tiempo real,
de alto nivel de seguridad, de procesamiento distribuido y/o de alto índice de
riesgos.
Requiere de mucha planeación, tanto administrativa como técnica.
Requiere de metas claras para conocer el estado del proyecto.
Modelo DSDM
(Ágil)
Principios del DSDM
Involucrar al cliente es la clave para llevar un proyecto eficiente
y efectivo.
El equipo del proyecto debe tener el poder para tomar decisiones
que son importantes.
DSDM se centra en la entrega frecuente de productos.
El desarrollo es iterativo e incremental.
Todos los cambios durante el desarrollo son reversibles.
Las pruebas son realizadas durante todo el ciclo vital del
proyecto.
La comunicación y cooperación entre todas las partes
interesadas .
Xtreme Programming
(Agil)
● Metodología liviana de desarrollo de software.
● Conjunto de prácticas y reglas empleadas para desarrollar software.
● Basada en diferentes ideas acerca de cómo enfrentar ambientes muy cambiantes.
● En vez de planificar, analizar y diseñar para el futuro distante, hacer todo esto un poco cada vez, a través de todo el proceso de
desarrollo.
Contexto XP
● Cliente bien definido
● Los requisitos pueden
(y van a) cambiar.
● Grupo pequeño y muy
● integrado (máximo 12 personas.
● Equipo con formación elevada
y capacidad de aprender.
Scrumm
(Agil)
Metodología de trabajo ágil.
• Diseñada para acortar el ciclo de desarrollo.
• Consigue una mejor aproximación entre las funcionalidades del software y los requerimientos del cliente.
• Evita la burocracia innecesaria.
• Mayor versatilidad frente a los cambios.
• Comienza el trabajo lo más rápidamente posible.
• Manejo eficiente de los requerimientos cambiantes en un proyecto.
• Mejora la comunicación entre el cliente y el equipo desarrollador.
Todas las responsabilidades del proyecto se reparten en tres roles:
1. Propietario del producto.
2. Equipo.
3. Gestor de Scrum (Scrum manager o Scrum Master).

Presentación 162 modelos de proceso de software

  • 1.
  • 2.
    Definiciones Un modelo deproceso de software es una descripción del conjunto de tareas, actividades, procesos y resultados. Las actividades de los procesos que pertenecen a un modelo determinado son parte tanto de los procesos como del producto software, incluyendo a las personas involucradas en la ingeniería de software, cada uno con su respectivo papel. Algunos ejemplos de estos tipos de modelos que se pueden producir son: ● Un modelo de flujo de trabajo. ● Un modelo de flujo de datos o de actividad. ● Un modelo de rol/acción.
  • 3.
    Modelo en cascadao lineal secuencial (Secuencial) Llamado algunas veces «ciclo de vida básico» o modelo en cascada», el modelo lineal secuencial sugiere un enfoque sistemático, secuencial, para el desarrollo del software que comienza en un nivel de sistemas y progresa con el análisis, diseño, codificación, pruebas y mantenimiento.
  • 4.
    Modelo de construcciónde prototipos (Secuencial) El paradigma de construcción de prototipos comienza con la recolección de requisitos. El desarrollador y el cliente encuentran y definen los objetivos globales para el software,identifica los requisitos conocidos y las áreas del esquema en donde es obligatoria más definición.
  • 5.
    Modelo RDA (Secuencial) Es unaadaptación a «alta velocidad» del modelo lineal secuencial en el que se logra el desarrollo rápido. Fases: Modelado de Gestión. El flujo de información entre las funciones se modela respondiendo a las siguientes preguntas: ¿Qué información conduce el proceso de gestión? ¿Qué información se genera? ¿Quién la genera? ¿A dónde va la información? ¿Quién la procesa? Modelado de datos. Se definen las características (llamadas atributos) de cada uno de los objetos y las relaciones entre estos objetos. Modelado del proceso. Los datos quedan transformados para lograr el flujo de información necesario para implementar una función de gestión. Generación de aplicaciones. En lugar de crear software con lenguajes de programación de tercera generación, trabaja para volvera utilizar componentes de programas ya existentes (cuando es posible) o a crear componentes reutilizables (cuando sea necesario). Se utilizan herramientas para facilitar la construcción del software.
  • 6.
    Modelo Concurrente (Evolutivo) Es unmodelo de tipo de red donde todas las personas actúan simultáneamente desarrollando una serie de actividades técnicas importantes. ● Se puede expresar de manera esquematizada. ● Las actividades llevan procesos concurrentes. ● Es aplicable a todo tipo de desarrollo de software. ● Está dirigido por las necesidades del usuario. ● Es aplicable al cliente servidor Ventajas: ● Ideal para proyectos en los que se conforman grupos de trabajo independientes. ● Proporciona una imagen exacta del estado actual de un proyecto. Desventajas: ● Si no se dan las condiciones señaladas no es aplicable. ● Si no existen grupos de trabajo no se puede trabajar en este método
  • 7.
    MODELO ESPIRAL (Evolutivo) Modelo EspiralWIN-WIN (gano & gane) ● Aternativas. ● Restricciones. ● Gestión de riesgo
  • 8.
    Modelo Incremental (Evolutivo) El modeloincremental se desarrolló como una forma de reducir la repetición del trabajo en el proceso de desarrollo y dar oportunidad de retrasar la toma de decisiones en los requisitos hasta adquirir experiencia con el sistema. El Modelo Incremental combina elementos del Modelo Lineal Secuencial con la filosofía interactiva de Construcción de Prototipos, el modelo incremental aplica secuencias lineales de forma escalonada mientras progresa el tiempo en el calendario. Cada secuencia lineal produce un incremento del software. El primer incremento generalmente es un producto esencial denominado núcleo. Ventajas: Con un paradigma incremental se reduce el tiempo de desarrollo inicial, ya que se implementa la funcionalidad parcial. También provee un impacto ventajoso frente al cliente, que es la entrega temprana de partes operativas del software. Desventajas: El modelo incremental no es recomendable para casos de sistemas de tiempo real, de alto nivel de seguridad, de procesamiento distribuido y/o de alto índice de riesgos. Requiere de mucha planeación, tanto administrativa como técnica. Requiere de metas claras para conocer el estado del proyecto.
  • 9.
    Modelo DSDM (Ágil) Principios delDSDM Involucrar al cliente es la clave para llevar un proyecto eficiente y efectivo. El equipo del proyecto debe tener el poder para tomar decisiones que son importantes. DSDM se centra en la entrega frecuente de productos. El desarrollo es iterativo e incremental. Todos los cambios durante el desarrollo son reversibles. Las pruebas son realizadas durante todo el ciclo vital del proyecto. La comunicación y cooperación entre todas las partes interesadas .
  • 10.
    Xtreme Programming (Agil) ● Metodologíaliviana de desarrollo de software. ● Conjunto de prácticas y reglas empleadas para desarrollar software. ● Basada en diferentes ideas acerca de cómo enfrentar ambientes muy cambiantes. ● En vez de planificar, analizar y diseñar para el futuro distante, hacer todo esto un poco cada vez, a través de todo el proceso de desarrollo. Contexto XP ● Cliente bien definido ● Los requisitos pueden (y van a) cambiar. ● Grupo pequeño y muy ● integrado (máximo 12 personas. ● Equipo con formación elevada y capacidad de aprender.
  • 11.
    Scrumm (Agil) Metodología de trabajoágil. • Diseñada para acortar el ciclo de desarrollo. • Consigue una mejor aproximación entre las funcionalidades del software y los requerimientos del cliente. • Evita la burocracia innecesaria. • Mayor versatilidad frente a los cambios. • Comienza el trabajo lo más rápidamente posible. • Manejo eficiente de los requerimientos cambiantes en un proyecto. • Mejora la comunicación entre el cliente y el equipo desarrollador. Todas las responsabilidades del proyecto se reparten en tres roles: 1. Propietario del producto. 2. Equipo. 3. Gestor de Scrum (Scrum manager o Scrum Master).