Kategóriák: Minden - riesgo - planificación - incremental - evaluación

a JORGE LUIS HUERGO HERRAN 4 éve

258

Modelos de procesos

Los modelos de procesos de desarrollo de software incluyen diversas metodologías y etapas que buscan mejorar la eficiencia y la eficacia en la creación de sistemas. Entre estos modelos destaca el modelo espiral, que se enfoca en la ingeniería, la evaluación del cliente, la planificación y el análisis de riesgos.

Modelos de procesos

Es un modelo de procesos de software, que se creo con el fin de cubrir las mejores características del ciclo de vida clásico, como la creación de prototipos. En este modelo funciona desarrollando una serie de versiones incrementales.

Metodologías agiles más utilizadas

Kanban:

Fase 4: Esta es la fase para la revisión del sistema Kanban en cada una de las líneas de producción de manera continua para ir aprendiendo y mejorando.
Fase 3: Una vez subsanados los problemas en nuestras principales líneas de producción, se implementa la herramienta kanban en el resto de líneas de producción
Fase 2: La herramienta kanban se suele implementar en aquellas líneas de producción que tienen mas actividad y por tanto son aquellas en las que hay más probabilidades que encontremos problemas.
Fase 1: Diseño del sistema kanban que vamos a utilizar. Entrenar a todo el personal en los principios de Kanban y los beneficios de usarlo. de forma que se genere la concienciación de la necesidad de usarlo.
Es un marco de trabajo que requiere una comunicación en tiempo real sobre la capacidad del equipo, utilizado para controlar el avance de trabajo en una línea de producción, en la cual se clasifican las tareas en sub estatus, esto con la intención de determinar los niveles de productividad en cada fase del proyecto.

Scrum:

Retrospectiva: los miembros del equipo se reúnen para valorar el proceso de entrega de resultados y analizan los factores que podrían mejorar de cara al final del proceso.
Demostración: una vez ejecutadas las labores de cada fase, el equipo se reúne con el cliente para mostrar los avances correspondientes.
Reuniones: lo ideal es que cada día el equipo dedique 15 minutos para reunirse y ponerse al tanto de la evolución del plan.
Lista de tareas: el equipo de trabajo elabora la lista de tareas que debe tener en cuenta para cada entrega de resultados
Planteamiento: un proyecto gestionado bajo el modelo SCRUM parte de los objetivos que han trazado con anterioridad el cliente y la empresa. Lo primero es fraccionarlo en entregas parciales, de manera que el cliente pueda replantear aspectos a los que en principio no prestó la importancia debida o que simplemente desconocía.
Esta metodología, es un marco de trabajo de procesos ágiles que trabaja con el ciclo de vida iterativo e incremental , donde se va liberando el producto por pares de forma periódica, aplicando las buenas prácticas de trabajo colaborativo (en equipo), facilitando el hallazgo de soluciones óptimas a los problemas que pueden ir surgiendo en el proceso de desarrollo del proyecto.

Programación extrema (XP):

CARACTERÍSTICAS DE XP
Desarrollo iterativo e incremental.

Simplicidad, propiedad del código compartida y refactorización del código.

Integración del equipo de programación con el cliente.

Corrección periódica de errores.

Pruebas unitarias continuas.

Programación en parejas.

FASES
-Entregar el producto final al cliente > Fase de puesta en producción
-Crear la solución > Fase de Iteraciones
-Estimar el esfuerzo > Fase de Planificación
-Entender lo que el cliente necesita > Fase de Exploración
Conocida por sus siglas XP ( eXtreme Programming ), es una metodología basada en un conjunto de reglas y buenas prácticas para el desarrollo de software en ambientes muy cambiantes con requisitos imprecisos, por ende está enfocada en la retroalimentación continua entre el equipo de desarrollo y el cliente.

Tipos de patrones de diseño

Patrones de comportamiento:

Algunos de los más conocidos son:
Template Method: Especifica el esqueleto de un algoritmo, permitiendo a las subclases definir cómo implementan el comportamiento real.
Strategy: Permite la selección del algoritmo que ejecuta cierta acción en tiempo de ejecución.
Observer: Los objetos son capaces de suscribirse a una serie de eventos que otro objeto va a emitir, y serán avisados cuando esto ocurra.
Command: Son objetos que encapsulan una acción y los parámetros que necesitan para ejecutarse.
Los patrones comportamentales nos ayudan a definir la forma en la que los objetos interactúan entre ellos.

Patrones Estructurales:

Los patrones estructurales más habituales son:
Facade: Una fachada es un objeto que crea una interfaz simplificada para tratar con otra parte del código más compleja.
Decorator: Permite añadir funcionalidad extra a un objeto (decora el objeto) sin modificar el comportamiento del resto de instancias.
Adapter: Nos ayuda a definir una clase intermedia que sirve para que dos clases con diferentes interfaces puedan comunicarse. Esta clase actúa como mediador, haciendo que la clase A pueda ejecutar métodos de la clase B sin conocer detalles de su implementación. También se conoce como Wrapper.
Los patrones estructurales nos ayudan a definir la forma en la que los objetos se componen.

Patrones Creacionales:

Patrones creacionales más conocidos son:
Builder: Separa la creación de un objeto complejo de su estructura, de tal forma que el mismo proceso de construcción nos puede servir para crear representaciones diferentes.
Factory Method: Expone un método de creación, delegando en las subclases la implementación de este método.
Abstract Factory: Nos provee una interfaz que delega la creación de una serie de objetos relacionados sin necesidad de especificar cuáles son las implementaciones concretas.
Factory: Desacoplar la lógica de creación de la lógica de negocio, evitando al cliente conocer detalles de la instanciación de los objetos de los que depende.
Como su nombre indica, estos patrones vienen a solucionar o facilitar las tareas de creación o instanciación de objetos.

Modelos de procesos

Modelo de cascada

Principales metodologías ágiles:

Conjunto tareas y procedimientos dirigidos a la gestión de proyectos . Son aquellos métodos de desarrollo en los cuales tanto las necesidades como las soluciones a estas evolucionan con el pasar del tiempo, a través del trabajo en equipo de grupos multidisciplinarios que se caracterizan por tener las siguientes cualidades: Desarrollo evolutivo y flexible. Autonomía de los equipos. Planificación. Comunicación.

Patrones de diseño de software

Se puede moldear un problema similar en el pasado, las estructuras de las clases del problema pueden ya estar inventadas si la forma de este problema se puede extraer, explicar y reutilizar en múltiples ámbitos entonces nos encontramos ante un patrón de diseño de software.

Proceso personal de software (PSP)

-El costo emocional por mantener una disciplina.
-El tiempo requerido para conocerlo.
-La seguridad para hacer el trabajo la manera que usted sabe que usted debe.
-Una base mejorada para el trabajo en equipo eficaz.
-La sensación del orgullo y de la realización.
-El grado de control se gana sobre el trabajo.
-El marco que proporciona para la mejora personal.
-El estímulo de una corriente casi ilimitada de ideas.
-Habilidades y talentos obtenidos.
PSP2, PSP2.1 (Introduce manejo de calidad y diseño) PSP2 agrega dos fases nuevas:

Revisión de diseño y de código. Se enfoca en la prevención de defectos y su remoción. Los ingenieros aprenden a evaluar y mejorar su proceso midiendo la extensión de sus tareas y la cantidad de defectos inyectados y removidos en cada fase de desarrollo. Los ingenieros construyen y usan listas de chequeo para diseño y revisión de código.

PSP1, PSP1.1 (Introduce estimación y planeación):

Teniendo como base los datos recolectados en PSP0 y PSP0.1, el ingeniero estima el tamaño que tendrá el nuevo programa y prepara un reporte de pruebas (PSP1). Los datos recolectados para proyectos previos se usan para estimar el tiempo total. Cada proyecto nuevo registrará el tiempo gastado actualmente. Esta información es usada para tareas de agendamiento, planeación y estimación(PSP1.1).

PSP0, PSP0.1 (Introduce la disciplina y la medición al proceso) PSP0 tiene 3 fases:

planeación, desarrollo (diseño, codificación, pruebas) y un post mortem. Se establece una base del proceso normal de medición: tiempo tomado programando, fallos inyectados/removidos, tamaño de un programa. En un post mortem el ingeniero asegura que todos los datos del proyecto hayan sido registrados y analizados correctamente. PSP0.1 agrega un estándar de código, una medida de tamaño y el desarrollo de un plan de mejora personal PIP. En el PIP el ingeniero registra ideas para mejorar su propio proceso.

Es un sistema estructurado de descripciones, de medidas, y de los métodos de proceso que pueden ayudar a ingenieros a mejorar su actividad personal.

Proceso de desarrollo unificado (RUP)

-No suele resultar práctico para proyectos pequeños.
-Genera abundante trabajo adicional (y costes asociados) de documentación y comunicación.
-Requiere una gran previsión sobre lo que va a ocurrir (para poder controlarlo).
-Se adapta mejor a las necesidades del cliente.
-Acelera el ritmo de desarrollo.
-Reduce el riesgo de no sacar el producto en el calendario previsto.
-Coste del riesgo a un solo incremento.
La fase de transición:

Se inicia con una versión “beta” del sistema y culmina con el sistema en fase de producción.

La fase de construcción:

Está compuesta por un ciclo de varias iteraciones, en las cuales se van incorporando sucesivamente los casos de uso, de acuerdo a los factores de riesgo del proyecto.

La fase de elaboración:

Tiene como finalidad completar el análisis de los casos de uso y definir la arquitectura del sistema, además se obtiene una aplicación ejecutable que responde a los casos de uso que la comprometen.

La fase de concepción o inicio:

Tiene por finalidad definir la visión, los objetivos y el alcance del proyecto, tanto desde el punto de vista funcional como del técnico

Pensado principalmente para el desarrollo de grandes proyectos. Es un proceso que puede adaptarse y extenderse en función de las necesidades de cada empresa. está basado en componentes e interfaces bien definidas, y junto con el Lenguaje Unificado de Modelado (UML)

Modelo incremental

DESVENTAJAS
-Requiere de metas claras para conocer el estado del proyecto.
-Requiere de mucha planeación, tanto administrativa como técnica.
-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.
VENTAJAS
-Por su versatilidad requiere de una planeación cuidadosa tanto a nivel administrativo como técnico.
-Resulta más sencillo acomodar cambios al acotar el tamaño de los incrementos.
-Permite entregar al cliente un producto más rápido en comparación del modelo de cascada.
Entrega del producto:

Cuando el producto en su conjunto ha sido validado y se confirma su correspondencia con los objetivos iniciales, se procede a su entrega final.

Integración de incrementos:

Una vez son validados, los incrementos dan forma a lo que se denomina línea incremental o evolución del proyecto en su conjunto.

Validación de incrementos:

Al término de cada iteración, los responsables de la gestión del proyecto deben dar por buenos los incrementos que cada una de ellas ha arrojado.

Desarrollo del incremento:

Posteriormente se realizan las tareas previstas y se desarrollan los incrementos establecidos en la etapa anterior.

Diseño de los incrementos:

Establecidas las iteraciones, es preciso definir cuál será la evolución del producto en cada una de ellas. Cada iteración debe superar a la que le ha precedido.

Definición de las tareas y las iteraciones:

Teniendo en cuenta lo que se busca, el siguiente paso es hacer una lista de tareas y agruparlas en las iteraciones que tendrá el proyecto.

Requerimientos:

Son los objetivos centrales y específicos que persigue el proyecto.

El modelo incremental aplica secuencias lineales de forma escalonada mientras avanza el tiempo. cada secuancia lineal produce un incremento de software. el modelo incremental entrega el software en partes pequeñas, pero utilizables, llamada "incrementos"

Modelo espiral

ETAPAS
Evaluación del cliente:

El cliente da evalua el trabajo, y aconseja modificiaciones.

Ingeníeria:

Aquí se crea y se autentifica. Despues de que se hace una evaluación de los riegos y se escoge un modelo para el desarrollo del sistema.

Análisis de riesgo:

En este punto el proyecto se revisa y se mira si se debe continuar con el siguiente ciclo, si se continua, entonces en este punto se desarrollan los planes para la siguiente fase del proyecto.

Planificación

Se definen los objetivos, las alternativas y las soluciones