• No se han encontrado resultados

CAPÍTULO 3: Modelos de Proceso Software Modernos. Ing. Alejandra Colina V. Enero, 2019

N/A
N/A
Protected

Academic year: 2022

Share "CAPÍTULO 3: Modelos de Proceso Software Modernos. Ing. Alejandra Colina V. Enero, 2019"

Copied!
40
0
0

Texto completo

(1)

CAPÍTULO 3:

Modelos de Proceso Software Modernos

Ing. Alejandra Colina V.

Enero, 2019

(2)

• Reconocer los elementos que conforman los distintos modelos de procesos de software modernos, sus características, fortalezas, debilidades y entorno de trabajo.

Objetivo del capítulo

(3)

Contenido

XP - Extreme Programming

RUP – Rational Unified Process

MSF – Microsoft Solution Framework

FDD (Feature Driving Programming)

SCRUM

(4)

En la economía moderna es difícil o imposible predecir la forma en la que evolucionará un sistema basado en computadora.

Las condiciones del mercado cambian con rapidez, las necesidades de los usuarios finales se transforman y emergen nuevas amenazas competitivas sin previo aviso. La definición de los requerimientos no se da por completo antes de que el proyecto comience.

Se debe ser suficientemente ágil para responder a lo fluido que se presenta el ambiente de negocios.

(5)

La ingeniería de software ágil combina una filosofía con un conjunto de lineamientos de desarrollo.

Énfasis en:

‒ La satisfacción del cliente

‒ La entrega rápida de software incremental,

‒ Los equipos pequeños y muy motivados para efectuar el proyecto, los métodos informales,

‒ Los productos del trabajo con mínima ingeniería de software

‒ La sencillez general en el desarrollo.

(6)

‒ Permanecen las actividades estructurales fundamentales:

comunicación, planeación, modelado, construcción y despliegue.

‒ Pero se transforman en un conjunto mínimo de tareas que lleva al equipo del proyecto hacia la construcción y entrega.

(7)

‒ La agilidad se ha convertido en la palabra mágica de hoy para describir un proceso del software moderno.

‒ Todos son ágiles. Un equipo ágil es diestro y capaz de responder de manera apropiada a los cambios. El cambio es de lo que trata el software en gran medida

(8)

¿QUÉ ES UN PROCESO ÁGIL?

(9)

Cualquier proceso del software ágil se caracteriza por la forma en la que aborda cierto número

de suposiciones clave acerca de la mayoría de proyectos de software:

1. Es difícil predecir qué requerimientos de software persistirán y cuáles cambiarán. Es difícil pronosticar cómo cambiarán las prioridades del cliente a medida que avanza el proyecto.

2. Para muchos tipos de software, el diseño y la construcción están imbricados. Es difícil predecir cuánto diseño se necesita antes de que se use la construcción para probar el diseño.

3. El análisis, el diseño, la construcción y las pruebas no son tan predecibles como nos gustaría.

(10)

¿CÓMO CREAR UN PROCESO QUE

PUEDA MANEJAR LO IMPREDECIBLE?

(11)

Taller N° 3

En pareja se desea que realice una investigación relacionada con los modelos de proceso de software modernos. El docente asignará a cada grupo el nombre del modelo a desarrollar para lo cual se debe investigar lo siguiente:

▪ Características

▪ Fortalezas

▪ Estrategias de trabajo

▪ Ejemplos de proyecto que se pueden seguir en función del modelo

(12)

XP - Extreme Programming

(13)

Extreme Programming se centra en potenciar las relaciones interpersonales del equipo de desarrollo como clave del éxito mediante el trabajo en equipo, el aprendizaje continuo y el buen clima de trabajo.

Esta metodología pone el énfasis en la retroalimentación continua entre cliente y el equipo de desarrollo se considera ideal para proyectos con requisitos imprecisos y muy cambiantes.

(14)

Objetivos

‒ Establecer las mejores prácticas de Ingeniería de Software en los desarrollo de proyectos.

‒ Mejorar la productividad de los proyectos.

‒ Garantizar la Calidad del Software desarrollando, haciendo que este supere las expectativas del cliente.

(15)

Valores

Simplicidad

Comunicación Realimentación

Coraje

(16)

Equipo completo

• Forman parte del equipo todas las personas que tienen algo que ver con el proyecto, incluido el cliente y el responsable del proyecto.

Planificación:

• Se hacen las historias de usuario y se planifica en qué orden se van a hacer y las mini-versiones. La planificación se revisa continuamente.

Test del cliente:

• El cliente, con la ayuda de los desarrolladores, propone sus propias pruebas para validar las mini-versiones.

Principios

(17)

Versiones pequeñas:

• Las mini-versiones deben ser lo suficientemente pequeñas como para poder hacer una cada pocas semanas. Deben ser versiones que ofrezcan algo útil al usuario final y no trozos de código que no pueda ver funcionando.

Diseño simple:

• Hacer siempre lo mínimo imprescindible de la forma más sencilla posible.

Mantener siempre sencillo el código.

Pareja de programadores:

• Los programadores trabajan por parejas (dos delante del mismo ordenador) y se intercambian las parejas con frecuencia (un cambio diario).

Principios

(18)

Desarrollo guiado por las pruebas automáticas:

• Se deben realizar programas de prueba automática y deben ejecutarse con mucha frecuencia. Cuantas más pruebas se hagan, mejor.

Integración continua:

• Deben tenerse siempre un ejecutable del proyecto que funcione y en

cuanto se tenga una nueva pequeña funcionalidad, debe recompilarse y probarse.

El código es de todos:

• Cualquiera puede y debe tocar y conocer cualquier parte del código. Para eso se hacen las pruebas automáticas.

Principios

(19)

Normas de codificación:

• Debe haber un estilo común de codificación, de forma que parezca que ha sido realizado por una única persona.

Metáforas:

• Hay que buscar unas frases o nombres que definan cómo funcionan las

distintas partes del programa, de forma que sólo con los nombres se pueda uno hacer una idea de qué es lo que hace cada parte del programa.

Ritmo sostenible:

• Se debe trabajar a un ritmo que se pueda mantener indefinidamente. Al tener claro semana a semana lo que debe hacerse, se trabaja duro para conseguir el objetivo de terminar una historia de usuario o mini-versión.

Principios

(20)

Metodología FDD (Feature Driven

Development / Desarrollo Basado en

Funciones)

(21)

Es una técnica de programación guiada por rasgos o características (features) y centrada en el usuario, no en el programador; su objetivo es sintetizar un programa conforme a los rasgos requeridos

(22)

‒ No hace énfasis en la obtención de requerimientos sino en cómo se realizan las fases de diseño y construcción.

‒ FDD está pensado para proyectos con tiempo de desarrollo relativamente cortos (-1año).

‒ Se basa en un proceso iterativo con iteraciones cortas (-2 semanas) que producen un software funcional que el cliente y la empresa pueden ver y monitorear.

‒ Las iteraciones de deciden en base a características o funcionalidades;

que son pequeñas partes del software con gran significado para el cliente y no necesariamente para nosotros.

(23)

Se requiere un sistema para construir sistemas si se pretende escalar a proyectos grandes.

Un proceso simple y bien definido trabaja mejor.

Los pasos de un proceso deben ser lógicos y su mérito inmediatamente obvio para cada miembro del equipo.

Vanagloriarse del proceso puede impedir el trabajo real.

Los buenos procesos van hasta el fondo del asunto, de modo que los miembros del equipo se puedan concentrar en los resultados.

Los ciclos cortos, iterativos, orientados por rasgos son mejores.

Principios

(24)

El proceso consiste en 5 pasos secuenciales durante los cuales se diseña y se construye el sistema:

1.Desarrollo de un modelo general

2.Construcción de una lista de funcionalidades 3.Planeación por funcionalidad

4.Diseñoporfuncionalidad

5.Construcción por funcionalidad.

(25)

RUP – Rational Unified Process

(26)

‒ Constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos.

‒ RUP no es un sistema cerrado, es un conjunto de metodologías adaptables al contexto y necesidades de cada organización.

‒ Su ciclo de vida es una implementación del Desarrollo en espiral.

(27)

‒ El RUP es un producto de Rational (IBM).

‒ Se caracteriza por ser iterativo e incremental, estar centrado en la arquitectura y guiado por los casos de uso.

‒ Incluye artefactos (modelo de casos de uso, modelo de clases, código fuente, etc.)

‒ Incluye también roles que desempeñan acciones en un determinado momento.

(28)

‒ Forma disciplinada de asignar tareas y responsabilidades (quién hace que, cuándo y cómo)

‒ Pretende implementar las mejores prácticas en Ingeniería de software. Desarrollo Iterativo

‒ Administración de requisitos

‒ Uso de arquitectura basada en componentes

‒ Control de cambios

‒ Modelado visual de software

‒ Verificación de la calidad del software Características

(29)

Adaptar el proceso

Balancear prioridades

Demostrar valor iterativamente Elevar el

nivel de abstracción Enfocarse

en la calidad

Principios

(30)

MSF – Microsoft Solution Framework

(31)

Comprende un conjunto de modelos, conceptos y guías que contribuyen a alinear los objetivos de negocio y los tecnológicos, reducir los costos de la utilización de nuevas tecnologías y asegurar el éxito en la implantación de las tecnologías (Microsoft, 2000)

(32)

MSF se compone de varios modelos encargados de planificar las diferentes partes implicadas en el desarrollo de un proyecto:

Modelo de Arquitectura del Proyecto, Modelo de Equipo, Modelo de Proceso, Modelo de Gestión del Riesgo, Modelo de Diseño de Proceso y finalmente el modelo de Aplicación.

(33)

Adaptable: Su uso es limitado a un específico lugar.

Escalable: Puede organizar equipos tan pequeños entre 3 o 4 personas, así como, proyectos que requieren 50 personas a más.

Flexible: Es utilizada en el ambiente de desarrollo de cualquier cliente.

Tecnología

Agnóstica: Se puede utilizar para el desarrollo de soluciones basadas sobre cualquier tecnología.

Características:

(34)

Promover comunicaciones

abiertas

Trabajar para una visión compartida

Fortalecer los miembros del

equipo

Establecer responsabilidad

claras y compartidas Focalizarse en

agregar valor al negocio Permanecer

ágil, esperar los cambios Invertir en

calidad

Aprender de todas las experiencias

Principios

(35)

SCRUM

(36)

‒ Marco de trabajo ligero y ágil basado en la simplicidad

‒ Sencillo de comprender y aplicar

‒ Adaptable y flexible en proyectos de desarrollo de software

‒ Énfasis en incrementar la productividad

‒ Requerimientos o requisitos auto organizables

‒ Adaptable a cambios solicitados por los interesados

‒ Comunicación e involucramiento directo con los interesados

‒ Metodología basado en la motivación y responsabilidad

(37)

‒ Un proceso de administración y control que implementa técnicas de control de procesos; se lo puede considerar un conjunto de patrones organizacionales.

‒ En Scrum se realizan entregas parciales y regulares del producto final, priorizadas por el beneficio que aportan al receptor del proyecto.

(38)

‒ Scrum está especialmente indicado para proyectos en entornos complejos, requiere resultados pronto, donde los requisitos son cambiantes o poco definidos, donde la innovación, la competitividad, la flexibilidad y la productividad son fundamentales.

(39)

Control de procesos empíricos

Auto- organización

Colaboración

Priorización

Time- boxing Desarrollo

iterativo

Principios

(40)

Elabore un cuadro comparativo entre los cinco modelos presentados tomando en cuanta los siguientes criterios:

‒ Tamaño de los equipos

‒ Obtención de los requisitos

‒ Evaluación del estado de proyectos

‒ Carga de trabajo

‒ Tiempo aproximado de duración

Taller N° 4

Referencias

Documento similar

• For patients with severe asthma and who are on oral corticosteroids or for patients with severe asthma and co-morbid moderate-to-severe atopic dermatitis or adults with

[r]

They found the distribution function of the IPR to be scale indepen- dent for all the values of the parameter b characterizing this model (see below). The model describes a whole

dni nombre dirección 21333555 LUISA c/A, 3 22444666 PEPE c/C, 33 21777333 ANA c/E, 333 ASIGNATURA. código

[r]

El primer paso en este nivel, es analizar y determinar la plataforma que se adapte mejor a las características del curso que se está desarrollando. Es imprescindible un proceso

• Entregar a la comunidad profesionistas egresados del Tecnológico de Monterrey con más competencias para integrarse a las organizaciones y a la sociedad.. • Brindar

[r]