Unidad 2
-
Upload
victoria-xoxi-munoz -
Category
Documents
-
view
165 -
download
0
Transcript of Unidad 2
![Page 1: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/1.jpg)
UNIDAD 2Modelos de la ingeniería de Software
![Page 2: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/2.jpg)
Unidad 22.1 MODELO DE CAPACIDAD DE
MADUREZ
![Page 3: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/3.jpg)
INTRODUCCIÓN
El modelo de capacidad y madurez o mejor llamado CMM, CMMI o IMCM, es el modelo de evaluación de procesos de una organización.
Fue creado para los procesos elativos al software por la Universidad Carnegie-Mellon para el SEI (Software Engineering Institute).
![Page 4: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/4.jpg)
EL MODELO CMMI
A partir de Noviembre de 1986 el SEI desarrollo una definición de un modelado de madures, la cual fue publicada en 1987, esto a evolucionado hasta febrero de 1993.
Este modelo establece un conjunto de practicas o procesos clave agrupados en Áreas Clave del proceso (KPA-Key process Área). Para cada área de proceso define un conjunto de practicas que habrán de ser:
![Page 5: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/5.jpg)
EL MODELO CMMI (CONT.)
Definidas en un
procedimiento
documentado
Provistas de los medios y formación necesarios
Ejecutadas de un modo sistemático, universal y uniforme
Medidas Verificadas
![Page 6: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/6.jpg)
EL MODELO CMMI (CONT.)
A su vez estas Áreas de Proceso se agrupan en cinco "niveles de madurez", de modo que una organización que tenga institucionalizadas todas las prácticas incluidas en un nivel y sus inferiores, se considera que ha alcanzado ese nivel de madurez.
![Page 7: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/7.jpg)
EL MODELO CMMI (CONT.)
Inicial
•Las organizaciones en este nivel no disponen de un ambiente estable para el desarrollo y mantenimiento de software. Aunque se utilicen técnicas correctas de ingeniería, los esfuerzos se ven minados por falta de planificación. El éxito de los proyectos se basa la mayoría de las veces en el esfuerzo personal, aunque a menudo se producen fracasos y casi siempre retrasos y sobrecostes. El resultado de los proyectos es impredecible.
Repetible
•En este nivel las organizaciones disponen de unas prácticas institucionalizadas de gestión de proyectos, existen unas métricas básicas y un razonable seguimiento de la calidad. La relación con subcontratistas y clientes está gestionada sistemáticamente.
Definido
•Además de una buena gestión de proyectos, a este nivel las organizaciones disponen de correctos procedimientos de coordinación entre grupos, formación del personal, técnicas de ingeniería más detallada y un nivel más avanzado de métricas en los procesos. Se implementan técnicas de revisión por pares (peer reviews).
Gestionado
•Se caracteriza porque las organizaciones disponen de un conjunto de métricas significativas de calidad y productividad, que se usan de modo sistemático para la toma de decisiones y la gestión de riesgos. El software resultante es de alta calidad.
Optimizado
•La organización completa está volcada en la mejora continua de los procesos. Se hace uso intensivo de las métricas y se gestiona el proceso de innovación.
![Page 8: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/8.jpg)
EL MODELO CMMI (CONT.)
CMMI es un modelo para la mejora de procesos que proporciona a las organizaciones los elementos esenciales para procesos eficaces. Las mejores prácticas CMMI se publican en los documentos llamados modelos. En la actualidad hay dos áreas de interés cubiertas por los modelos de CMMI: Desarrollo y Adquisición.
CMMI para el Desarrollo (DEV-CMMI): En él se
tratan procesos de desarrollo de productos
y servicios.
CMMI para la adquisición (ACQ-CMMI): En él se tratan la gestión de la cadena de suministro,
adquisición y contratación externa en los procesos del
gobierno y la industria.
![Page 9: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/9.jpg)
ÁREAS DEL PROCESO CMMI
Análisis de causalidad y solución Configuration Management Decisión de Análisis y Resolución Proyecto Integrado de Gestión Medición y Análisis Innovación organizacional y
Despliegue Definición de procesos
organizacionales Enfoque en procesos
organizacionales Rendimiento de procesos
organizacionales Entrenamiento organizacional
Vigilancia y Control de proyectos Planificación de proyectos Proceso y aseguramiento de
calidad del producto Integración de Producto Gestión de proyectos
Cuantitativos Gestión de requerimientos Requerimientos de Desarrollo Gestión de Riesgos Gestión de Proveedores Solución Validación Verificación
![Page 10: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/10.jpg)
REPRESENTACIONES:
![Page 11: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/11.jpg)
El modelo para ingeniería de sistemas (SE-CMM) establece 6 niveles posibles de capacidad para una de las 18 áreas de proceso implicadas en la ingeniería de sistemas.
No agrupa los procesos en 5 tramos para definir el nivel de madurez de la organización, sino que directamente analiza la capacidad de cada proceso por separado.
Es lo que se denomina un modelo continuo.
![Page 12: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/12.jpg)
NIVELES DE CAPACIDAD DE LOS PROCESOS (REPRESENTACIÓN CONTINUA)
Incompleto: El
proceso no se realiza,
o no se consiguen
sus objetivos.
Ejecutado: El proceso se ejecuta y se logra
su objetivo.
Gestionado: Además
de ejecutarse, el proceso
se planifica,
se revisa y se evalúa
para comprobar que cumple
los requisitos.
Definido: Además de
ser un proceso
gestionado se ajusta a la política
de procesos que existe
en la organización
, alineada con las
directivas de la
empresa.
Cuantitativamente
gestionado: Además de
ser un proceso
definido se controla
utilizando técnicas
cuantitativas.
Optimizarte: Además de
ser un proceso
cuantitativamente
gestionado, de forma
sistemática se revisa y modifica o
cambia para adaptarlo a los objetivos del negocio.
Mejora continua.
![Page 13: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/13.jpg)
DIAGRAMA
![Page 14: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/14.jpg)
COMPONENTES REQUERIDOS
Objetivo genérico: Los objetivos genéricos asociados a un nivel de capacidad establecen lo que una organización debe alcanzar en ese nivel de capacidad.
Objetivo específico: Los objetivos específicos se aplican a una única área de proceso y localizan las particularidades que describen que se debe implementar para satisfacer el propósito del área de proceso.
![Page 15: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/15.jpg)
COMPONENTES ESPERADOS
Práctica genérica: Una práctica genérica se aplica a cualquier área
de proceso porque puede mejorar el
funcionamiento y el control de cualquier
proceso.
Práctica específica: Una práctica específica es una actividad que se considera importante en
la realización del objetivo específico al cual está asociado.
![Page 16: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/16.jpg)
COMPONENTES INFORMATIVOS
Propósito
Notas introductori
as
Nombres
Tablas de relaciones práctica - objetivo
Prácticas Productos típicos
Sub-prácticas
Ampliaciones de
disciplina
Elaboraciones de prácticas
genéricas
![Page 17: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/17.jpg)
Unidad 22.2 MARCO DE TRABAJO PARA EL
PROCESO
![Page 18: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/18.jpg)
INTRODUCCIÓN
En esta sección es fácil denotar que el marco de trabajo es sobre el cual se trabajara, ya que contiene el conjunto de actividades a realizar, de la cual se desprenden tareas individuales.
![Page 19: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/19.jpg)
PARTES DEL MARCO DE TRABAJO DEL PROCESO
Comunicación: Esta actividad implica una intensa colaboración y comunicación con los clientes, abarcando la
investigación de requisitos y otras
actividades relacionadas.
Planeación: Describe las tareas técnicas que deben
realizarse, los riesgos probables, los recursos que serán requeridos, los productos del
trabajo que han de producirse y un
programa de trabajo.
Modelado: Abarca la creación de modelos que permiten al
desarrollador y al cliente entender
mejor los requisitos del software y el
diseño que lograra satisfacerlos.
Construcción: Combina la
generación del código y la
realización de pruebas
necesarias para descubrir errores
en el código.
Despliegue: El software se
entrega al cliente, quien evalúa el
producto recibido y proporciona información
basada en su evaluación.
![Page 20: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/20.jpg)
PARTES DEL MARCO DE TRABAJO DEL PROCESO (CONT.)
Las actividades anteriores son útiles durante el desarrollo de programas pequeños, la creación de grandes aplicaciones en la red, y en la ingeniería de sistemas basados en computadoras grandes y complejas.
Los detalles del proceso del software serán muy diferentes en cada caso, pero las actividades dentro del marco permanecerán iguales.
![Page 21: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/21.jpg)
ACTIVIDADES SOMBRILLA
Seguimiento y control del proyecto del
software
Gestión del riesgo
Aseguramiento de la
calidad del software
Revisiones técnicas formales
MediciónGestión de la configuración del software
Gestión de la reutilización
Preparación y producción del producto de trabajo
![Page 22: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/22.jpg)
SEGUIMIENTO Y CONTROL DEL PROYECTO DEL SOFTWARE
Permite que el equipo de software evalué el progreso comparándolo con el plan del proyecto y así tomar las acciones necesarias para mantener el programa.
![Page 23: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/23.jpg)
GESTIÓN DEL RIESGO
Evalúa los riesgos que pudieran afectar los resultados del proyecto o la calidad del producto
![Page 24: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/24.jpg)
ASEGURAMIENTO DE LA CALIDAD DEL SOFTWARE
Define y conduce las actividades requeridas para asegurar la calidad del software
![Page 25: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/25.jpg)
REVISIONES TÉCNICAS FORMALES
Evalúa los productos del trabajo de la ingeniería del software en un esfuerzo encaminado a describir y eliminar los errores antes de que estos se propaguen hacia la siguiente acción o actividad
![Page 26: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/26.jpg)
MEDICIÓN
Define y recolecta mediciones del proceso, el proyecto y el producto para ayudar al equipo a entregar software que satisfaga las necesidades del cliente; se puede usar en conjunto con todas las otras actividades del marco de trabajo o actividades sombrilla
![Page 27: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/27.jpg)
GESTIÓN DE LA CONFIGURACIÓN DEL SOFTWARE
Maneja los efectos del cambio a través del proceso del software
![Page 28: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/28.jpg)
GESTIÓN DE LA REUTILIZACIÓN
Define los criterios para la reutilización de productos del trabajo y establece mecanismos para la creación de componentes reutilizables.
![Page 29: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/29.jpg)
PREPARACIÓN Y PRODUCCIÓN DEL PRODUCTO DE TRABAJO
Abarca las actividades requeridas para crear productos del trabajo como modelos, documentos, registros, formatos y listas.
![Page 30: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/30.jpg)
La aplicación inteligente de cualquier modelo de proceso del software debe reconocer que la
adaptación es esencial para el éxito de esta actividad.
Las actividades sombrilla se aplican en el proceso del software.
![Page 31: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/31.jpg)
Pero los modelos de
proceso difieren de
manera fundamental
en:
El flujo global de actividades y tareas, y las
interdependencias entre las
actividades y las tareas.
El grado en el cual las tareas de
trabajo están definidas dentro
de cada actividad del marco de
trabajo.
El grado en el cual se identifican y se solicitan los
productos de trabajo.
La forma en la que se aplican las
actividades de aseguramiento de
la calidad.
La manera en la que se aplican las
actividades de seguimiento y
control.
El grado general de detalle y el
rigor con el que se describe el
proceso.
El grado en el que los clientes están comprometidos con el proyecto.
El grado de autonomía otorgado al equipo de
proyectos de software.
El grado en el cual están definidos la
organización y las responsabilidades
en el equipo.
![Page 32: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/32.jpg)
Unidad 22.3 MODELOS DE LA INGENIERÍA DEL
SOFTWARE:MODELO DE CASCADA, MODELO DE
PROTOTIPOS,MODELO DE ESPIRAL, MODELO DE PROCESO
UNIFICADO RACIONAL (RUP)
![Page 33: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/33.jpg)
MODELOS DE LA INGENIERÍA DE SOFTWARE
Para el caso de la ingeniería de software los modelos nos ayudan a poder realizar en orden una a una las tareas, esto se logra a través de un ciclo de vida el cual nos ayuda a poder visualizar cualquier evento de forma anticipada y así poder llegar a un fin determinado, lo cual nos dará el producto deseado.
![Page 34: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/34.jpg)
MODELO DE CASCADA
Mas que nada es un modelo que nos provee de lo que seria el control de las fechas de forma ordenada ya que muestra claramente la salida de una actividad y la entrada a la siguiente; también nos sirve a la gente con poca experiencia en el ramo, aunque presenta poca flexibilidad y no poder mostrar todo al cliente de forma anticipada y su impresión es lenta ante lo cual el cliente debe presentar paciencia.
![Page 35: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/35.jpg)
MODELO DE CASCADA
Inicio
Análisis
Diseño
Código
Pruebas
Implementación
![Page 36: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/36.jpg)
MODELO DE PROTOTIPOS
Versión preliminar de un sistema de información
con fines de demostración o
evaluación.
En si es un modelo menos formal ya que en cierta manera se puede
eliminar o se puede mejorar, y claro que es algo rápido pero suele crear falsas ilusiones al usuario con respecto al
tiempo
![Page 37: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/37.jpg)
MODELO DE PROTOTIPOS
Identificación de
Requerimientos
Diseño Rápido
Utilizar el
Prototipo
Para construir
los prototipos
solo se necesita:
Revisar y Mejorar
![Page 38: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/38.jpg)
MODELO EN ESPIRAL
Un modelo que es cíclico en todo sentido ya que se repiten procesos de forma constante, lo cual beneficia ya que así se corrigen errores en el camino aunque tenga de defecto su dificultad y sobre todo el no saber cuando definir los limites y los objetivos.
![Page 39: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/39.jpg)
MODELO EN ESPIRAL
Requerimientos
Análisisde Riesgo
Prototipo
Requerimientosdel Software
Validación deRequerimientos
Plan de DesarrolloPrototipo
Diseño delProducto
Validación delDiseño
Pruebas deIntegración
Prototipo
![Page 40: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/40.jpg)
MODELO DE PROCESO UNIFICADO RACIONAL (RUP).
Es un proceso de desarrollo que forma disciplinadamente la asignación de tareas y responsabilidades.
Se vigila el cumplimiento de los objetivos, gestión de riesgos y restricciones para desarrollaran producto que sea acorde a los requisitos de los clientes y los usuarios.
![Page 41: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/41.jpg)
Proveer un marco de trabajo para gestionar
riesgos.
Configuración y control de cambios
El control de cambios permite mantener la
integridad de todos los artefactos que se
crean en el proceso, así como de mantener
información del proceso evolutivo que
han seguido.
La finalidad de esta actividad es dar
soporte al proyecto con las adecuadas
herramientas, procesos y métodos.
Brinda una especificación de las herramientas que se van a necesitar encada momento, así como definir la instancia concreta del proceso que se va a seguir.
![Page 42: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/42.jpg)
Unidad 22.4 TENDENCIAS MODERNAS DE
MODELOS DE LA INGENIERÍA DEL SOFTWARE
![Page 43: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/43.jpg)
XP (EXTREMA PROGRAMACIÓN)
La XP empieza con cuatro valores: comunicación,
retroalimentación, simplicidad y
coraje.
Construye sobre ellos una docena de prácticas que los proyectos XP deben seguir.
Muchas de estas prácticas son
técnicas antiguas, tratadas y
probadas, aunque a menudo
olvidadas por muchos,
incluyendo la mayoría de los
procesos planeados.
Además de resucitar estas
técnicas, la XP las teje en un todo sinérgico dónde
cada una refuerza a las demás.
![Page 44: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/44.jpg)
XP (EXTREMA PROGRAMACIÓN) [CONT.]
En esta plataforma XP construye un proceso de diseño evolutivo que se basa en refractora un sistema simple en cada iteración.
Todo el diseño se centra en la iteración actual y no se hace nada anticipadamente para necesidades futuras.
El resultado es un proceso de diseño disciplinado, lo que es más, combina la disciplina con la adaptabilidad de una manera que indiscutiblemente la hace la más desarrollada entre todas las metodologías adaptables.
![Page 45: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/45.jpg)
XP (EXTREMA PROGRAMACIÓN) [CONT.]
XP ha desarrollado un liderazgo amplio,
muchos de ellos provenientes del
proyecto fundamental c3.
Como resultado hay muchas fuentes
para más información.
Kent beck escribió extreme
programming explained, el
manifiesto clave de la xp que explica las razones detrás de la
metodología y bastante explicación
como para que la gente pueda saber si se interesan en
seguirla.
En el último par de años ha habido una epidemia de libros
sobre xp brillantemente coloreados la
mayoría de los cuales son bastante
similares en que describen el proceso
entero desde el punto de vista de varios seguidores
tempranos.
![Page 46: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/46.jpg)
LA FAMILIA DE CRISTAL DE COCKBURN
Es una familia porque él cree que los tipos
diferentes de proyectos requieren tipos diferentes de
metodologías.
Él mira esta variación a lo largo de dos ejes:
el número de personas en el proyecto, y las
consecuencias de los errores.
Cada metodología encaja en una parte diferente de la reja,
de modo que para un proyecto de 40
personas que puede perder dinero
discrecionalmente tiene una
metodología diferente a la de un
proyecto vital de seis personas.
![Page 47: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/47.jpg)
Los cristales comparten con la XP una orientación humana, pero esta
centralización en la gente se hace de una manera
diferente.
Alistair considera que las personas encuentran difícil
seguir un proceso disciplinado, así que más que seguir la alta
disciplina de la XP, Alistair explora la metodología menos
disciplinada que aun podría tener éxito, intercambiando
conscientemente productividad por facilidad de ejecución.
Él considera que aunque cristal es menos productivo
que la XP, más personas serán capaces de seguirlo.
![Page 48: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/48.jpg)
Alistair también pone mucho peso en las revisiones al
final de la iteración,
animando al proceso a ser
automejorante.
Su aserción es que el
desarrollo iterativo está
para encontrar los problemas temprano, y
entonces permitir
corregirlos.
Esto pone más énfasis en la
gente supervisando su
proceso y afinándolo conforme
desarrollan.
![Page 49: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/49.jpg)
CÓDIGO ABIERTO
Después de todo el código abierto es un estilo de software, no
tanto un proceso.
Sin embargo hay una manera
definida de hacer las cosas
haciendo en la comunidad de
código abierto, y mucho de su
acercamiento es tan aplicable a
los proyectos de código cerrado como a los de
código abierto.
En particular su proceso se engrana a equipos
físicamente distribuidos, lo
qué es importante porque la
mayoría de los procesos
adaptables exigen equipos
locales.
![Page 50: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/50.jpg)
El mantenedor así es responsable de coordinar los parches y mantener la cohesión en el diseño del software.
Normalmente estos cambios son hechos en forma de archivos de parches que hacen este proceso más fácil.
La diferencia importante es que estas otras personas necesitan enviar su cambio al mantenedor que entonces lo revisa y lo aplica a la base del código.
Sin embargo otras personas pueden hacer cambios a la base del código.
Un mantenedor es la única persona a la que se le permite integrar un cambio en el almacén de código fuente.
La mayoría de los proyectos de código abierto tienen uno o más mantenedores.
![Page 51: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/51.jpg)
Proyectos diferentes manejan el papel del mantenedor de diferentes maneras.
Algunos tienen un mantenedor para el proyecto entero, algunos lo dividen en módulos y tiene un mantenedor por módulo, algunos rolan el mantenedor, algunos tienen múltiples mantenedores sobre el mismo código, otros tienen una combinación de estas ideas.
La mayor parte de la gente de código abierto son de tiempo parcial, así que hay una duda en qué tan bien se coordina un equipo así para un proyecto de tiempo completo.
![Page 52: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/52.jpg)
Un rasgo particular del desarrollo de
código abierto es que la
depuración es altamente
paralelizable.
Muchas personas pueden
involucrarse en el
depurado.
Cuando encuentran
un bug pueden enviar
el parche al mantenedor.
Esto es un buen papel para los no
mantenedores ya que la
mayor parte del tiempo se
gasta en encontrar
bugs.
También es bueno para gente sin mucha
destreza en programación.
![Page 53: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/53.jpg)
El proceso para el código abierto aun no se escribe bien. La referencia más famosa es el artículo de Eric Raymond the catedral and the bazar, que aunque es una descripción excelente también es bastante informal.
El libro de karl fogel sobre el almacén de código cvs también contiene varios buenos capítulos sobre el proceso de código abierto que incluso serían interesantes para aquéllos que no quieren hacer una actualización cvs.
![Page 54: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/54.jpg)
EL DESARROLLO DE SOFTWARE ADAPTABLE DE HIGHSMITH
No proporciona el tipo de prácticas detalladas como lo hace la XP, pero proporciona la base fundamental de por qué el desarrollo adaptable es importante y las consecuencias a los más profundos niveles de la organización y la gerencia.
Su reciente libro se enfoca en la naturaleza adaptable de las nuevas metodologías, con un énfasis particular en aplicar las ideas que se originaron en el mundo de los
sistemas complejos adaptables (normalmente conocida como teoría del caos.)
Él las desarrolló, instaló, enseñó, y concluyó que son profundamente defectuosas: particularmente para los negocios modernos.
Jim Highsmith ha pasado muchos años trabajando con metodologías predictivas.
![Page 55: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/55.jpg)
En el corazón del ASD hay tres fases solapadas, no lineales: especulación, colaboración, y aprendizaje.
Ve la planificación como una paradoja en un ambiente adaptable, ya que los resultados son naturalmente imprevisibles. En la planificación tradicional, las desviaciones del plan son errores que deben corregirse. En un el ambiente adaptable, sin embargo, las desviaciones nos guían hacia la solución correcta.
En ambientes predictivos, el aprendizaje se desalienta a menudo. Las cosas se ponen de antemano y entonces se sigue ese diseño.
En un ambiente adaptable, aprender desafía a todos - desarrolladores y sus clientes - a examinar sus asunciones y usar los resultados de cada ciclo de desarrollo para adaptar el siguiente.
![Page 56: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/56.jpg)
Se enfoca directamente en fomentar las partes difíciles del desarrollo adaptable, en particular cómo fomentar la colaboración y el aprendizaje dentro del proyecto (XP, FDD y cristal).
Como tal su libro ayuda a dar ideas para fomentar estas áreas "suaves" que hacen un buen complemento a los acercamientos basados en una práctica
![Page 57: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/57.jpg)
SCRUM
Scrum ha estado durante algún tiempo en los círculos orientados a objetos, aunque confesaré que yo no estoy muy al tanto de su
historia o desarrollo. De nuevo se enfoca en el hecho de que
procesos definidos y repetibles sólo funcionan para atacar
problemas definidos y repetibles con gente definida y repetible en ambientes definidos y repetibles.
Scrum divide un proyecto en iteraciones (que ellos llaman
carreras cortas) de 30 días. Antes de que comience una carrera se define la funcionalidad requerida para esa carrera y entonces se
deja al equipo para que la entregue. El punto es estabilizar los requisitos durante la carrera.
![Page 58: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/58.jpg)
La literatura de SCRUM se enfoca principalmente en la planeación
iterativa y el seguimiento del proceso. Es muy cercana a las otras metodologías agiles en
muchos aspectos y debe funcionar bien con las prácticas
de código de la xp.
Todos los días el equipo sostiene una junta corta (quince minutos), llamada SCRUM, dónde el equipo
discurre lo que hará al día siguiente.
![Page 59: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/59.jpg)
DESARROLLO MANEJADO POR RASGOS
El desarrollo manejado por rasgos (FDD por sus siglas en inglés) fue desarrollado por Jeff de Luca y el viejo
gurú de la OO Peter Coad.
Como las otras metodologías adaptables, se enfoca en iteraciones
cortas que entregan funcionalidad tangible. En
el caso del FDD las iteraciones duran dos
semanas.
![Page 60: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/60.jpg)
Desarrollar un
modelo global
Construir una lista
de los rasgos
Planear por rasgo
Diseñar por rasgo
Construir por rasgo
El FDD tiene cinco procesos. Los primeros tres se hacen al principio del
proyecto.
Los últimos dos se hacen en cada iteración. Cada proceso se divide en tareas y se da un criterio de comprobación.
![Page 61: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/61.jpg)
Los desarrolladores entran en dos tipos: dueños de clases y programadores jefe.
Los programadores jefe son los desarrolladores más experimentados. A ellos se les asignan rasgos a construir.
Sin embargo ellos no los construyen solos.
Solo identifican qué clases se involucran en la implantación de un rasgo y juntan a los dueños de dichas clases para que formen un equipo para desarrollar ese rasgo. El programador jefe actúa como el coordinador, diseñador líder y mentor mientras los dueños de clases hacen gran parte de la codificación del rasgo.
![Page 62: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/62.jpg)
DSDM (MÉTODO DE DESARROLLO DE SISTEMA DINÁMICO)
El estudio de negocio es una serie corta de talleres para entender el área de negocio dónde
tiene lugar el desarrollo. También propone arquitecturas de esbozos del sistema y un plan
del proyecto.
El método empieza con un estudio de viabilidad y negocio. El estudio de viabilidad considera si
DSDM es apropiado para el proyecto.
![Page 63: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/63.jpg)
El resto del proceso forma tres ciclos entretejidos: el ciclo del modelo funcional produce documentación de análisis y prototipos, el ciclo de diseño del modelo diseña
el sistema para uso operacional, y el ciclo de
implantación se ocupa del despliegue al uso
operacional.
DSDM tiene principios subyacentes que incluyen una interacción activa del
usuario, entregas frecuentes, equipos
autorizados, pruebas a lo largo del ciclo. Como otros métodos ágiles usan ciclos de plazos cortos de entre
dos y seis semanas. Hay un énfasis en la alta calidad y
adaptabilidad hacia requisitos cambiantes.
![Page 64: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/64.jpg)
MANIFIESTO PARA EL DESARROLLO DE SOFTWARE ÁGIL
Con tanta similitud entre estos métodos, sería justo un poco de
interés en alguna forma de trabajo
colaborativo.
Los representantes de cada una de estas
metodologías fueron invitados a un taller
de dos días en Snowbird, Utah en febrero de 2001.
![Page 65: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/65.jpg)
Todos estábamos conscientes del hecho de
que había mucho en común, y este
reconocimiento era mucho mayor que las diferencias
entre los procesos.
Además de un contacto útil entre los líderes de
procesos, había también la idea de emitir una
declaración conjunta.
![Page 66: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/66.jpg)
COMPROBACIÓN DIRIGIDA POR EL CONTEXTO
Desde el principio han sido los desarrolladores de software quienes han conducido a la comunidad ágil.
Sin embargo muchas otras personas envueltas en el desarrollo de software son afectadas por este nuevo movimiento.
Un grupo obvio es el de los verificadores que a menudo viven en un mundo dominado por el pensamiento de cascada.
Con pautas comunes que declaran que el papel de la comprobación es asegurar la conformidad del software con las especificaciones escritas de antemano, el papel de los verificadores en el mundo ágil esta lejos de ser claro.
![Page 67: Unidad 2](https://reader036.fdocuments.ec/reader036/viewer/2022070321/558e2c1c1a28ab31048b4741/html5/thumbnails/67.jpg)
En lo que se aclara eso, varias personas en la comunidad de verificadores han estado cuestionando mucho de la corriente principal del pensamiento en comprobación por un tiempo ya.
Esto ha llevado a un grupo conocido como la comprobación conducida por el contexto. La mejor descripción de esto es el libro lecciones aprendidas en comprobación de software.
Esta comunidad es también muy activa en la web, eche una mirada a sitios organizados por Brian Marick (uno de los autores del manifiesto ágil), Brett Pettichord, James Bach, y Cem Kaner.