A) TIPOS DE METODOLOGIAS:
METODOLOGÍAS TRADICIONALES:
Rational Unified Process (RUP):
Pretende implementar las mejores prácticas actuales en ingeniería de software
Divide el proceso de desarrollo en ciclos, teniendo un producto al final de cada ciclo.
Ventajas:
Evaluación en cada fase que permite cambios de objetivos
Funciona bien en proyectos de innovación.
Es sencillo, ya que sigue los pasos intuitivos necesarios a la hora de desarrollar el software.
Seguimiento detallado en cada una de las fases.
Desventajas
Excesiva flexibilidad para algunos proyectos
Nuestro cliente deberá ser capaz de describir y entender a un gran nivel de detalle para poder acordar un alcance del proyecto con él.
Microsoft Solution Framework
Es un compendio de las mejores prácticas en cuanto a administración de proyectos se refiere
Es una serie de modelos que puede adaptarse a cualquier proyecto de tecnología de información.
El modelo de equipos de MSF (MSF team model) fue desarrollado para compensar algunas de las desventajas impuestas por las estructuras jerárquicas de los equipos en los proyectos tradicionales.
Los equipos organizados bajo este modelo son pequeños y multidisciplinarios, en los cuales los miembros comparten responsabilidades y balancean las destrezas del equipo para mantenerse enfocados en el proyecto que están desarrollando.
Comparten una visión común del proyecto y se enfocan en implementar la solución, con altos estándares de calidad y deseos de aprender
Tienen altos costos al implementar un cambio y al no ofrecer una buena solución para proyectos donde el entorno es volátil.
Se focalizan en documentación, planificación y procesos
METODOLOGÍAS AGILES:
Retrasar las decisiones, Planificación adaptativa (será ventajoso tanto para el cliente como para la empresa)
Dan mayor potencia al desarrollo de software a gran escala.
Los individuos y las interacciones entre ellos son más importantes que las herramientas y los procesos empleados.
La colaboración con el cliente debe prevalecer sobre la negociación de contratos.
La capacidad de respuesta ante un cambio es más importante que el seguimiento estricto de un plan.
La planificación adaptativa permite estar preparados para el cambio ya que lo hemos introducido en nuestro proceso de desarrollo
Consiste en tomar decisiones a lo largo del proyecto, transformando el proyecto en un conjunto de proyectos pequeños.
Esta planificación a corto plazo permite tener software disponible para los clientes y además ir aprendiendo del feedback para hacer nuestra planificación más sensible.
Extreme Programming (XP)
los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos.
Creen que ser capaz de adaptarse a los cambios de requisitos en cualquier punto de la vida del proyecto es una aproximación mejor y más realista que intentar definir todos los requisitos al comienzo del proyecto e invertir esfuerzos después en controlar los cambios en los requisitos.
Ventajas
Apropiado para entornos volátiles, Estar preparados para el cambio, significa reducir su coste., Planificación más transparente para nuestros clientes, conocen las fechas de entrega de funcionalidades, Permitirá definir en cada iteración cuales son los objetivos de la siguiente, Permite tener realimentación de los usuarios muy útil, La presión esta a lo largo de todo el proyecto, y no en una entrega final
Desventajas
Delimitar el alcance del proyecto con nuestro clientes virtualmente imposible, Para mitigar esta desventaja se plantea definir un alcance a alto nivel basado en la experiencia.
AUP
El AUP es un acercamiento aerodinámico a desarrollo del software basado en el Proceso Unificado Rational de IBM (RUP), basado en disciplinas y entregables incrementales con el tiempo. El ciclo de vida en proyectos grandes es serial mientras que en los pequeños es iterativo. Las disciplinas de Aup son:
Modelado, Implementación , prueba, Despliegue, Administración de la configuración, Administración o gerencia del Proyecto, Entorno
SCRUM
Scrum es un modelo de referencia que define un conjunto de prácticas y roles, y que puede tomarse como punto de partida para definir el proceso de desarrollo que se ejecutará durante un proyecto.
Permite la creación de equipos autoorganizados impulsando la co-localización de todos los miembros del equipo, y la comunicación verbal entre todos los miembros y disciplinas involucrados en el proyecto.
Un principio clave de Scrum es el reconocimiento de que durante un proyecto los clientes pueden cambiar de idea sobre lo que quieren y necesitan y que los desafíos impredecibles no pueden ser fácilmente enfrentados de una forma predictiva y planificada.
Se intenta maximizar la capacidad del equipo de entregar resultados rápidamente y responder a requisitos emergentes.
Existen varias implementaciones de sistemas para gestionar el proceso de Scrum, que van desde notas amarillas "post-it" y pizarras hasta paquetes de software.
Una de las mayores ventajas de Scrum es que es muy fácil de aprender, y requiere muy poco esfuerzo para comenzarse a utilizar.
Se trabaja mediante la definición de roles.
ICONIX
Es un proceso de desarrollo de software práctico.
Se encuentra entre la complejidad del RUP y la simplicidad de XP
Incorpora las tareas de análisis y diseño de RUP, que XP no contempla.
Esta adaptado a los patrones de diseño
Es iterativo e incremental.
El proceso de ICONIX maneja casos de uso, como el RUP, pero le falta mucho para llegar al nivel del RUP. También es relativamente pequeño y firme, como XP, pero contempla el análisis y diseño que no contempla XP. Este proceso también hace uso del UML mientras guarda un enfoque en el seguimiento de requisitos.
Pair Programming
Todo el código es escrito por parejas de programadores; Una sola máquina, con un teclado y un Mouse, No es un programador trabajando y el otro mirand; No es una sesión de aprendizaje para un programador junior; Los roles se pueden cambiar varias veces durante el día
Dos programadores trabajando juntos son más efectivos que por separado
Trabajar es más divertido
Test Driven Development (TDD)
Diseño e implementación de las pruebas antes de programar la funcionalidad, El programador crea sus propios tests de unidad; Integración continua
METODOLOGÍAS HÍBRIDAS
Metodologías para el desarrollo web
UWE UML(UML-Based Web Engineering) es una metodología de desarrollo de aplicaciones web, utilizada en la ingeniería web, prestando especial atención en sistematización y personalización (sistemas adaptativos).
consta de seis modelos:
Modelo de casos de uso para capturar los requisitos del sistema. Modelo conceptual para el contenido (modelo del dominio). Modelo de usuario: modelo de navegación que incluye modelos estáticos y dinámicos. Modelo de estructura de presentación, modelo de flujo de presentación. Modelo abstracto de interfaz de usuario y modelo de ciclo de vida del objeto.Modelo de adaptación.
B) Para un mis referido a la producción utilizaria la metodología Microsoft Solution Framework
Ya que fue diseñado especificamente para crear productos de muy buena calidad, donde para cumplir este objetivo prima la comunicación tanto entre el equipo de desarrollo como entre ellos y los clientes. Logran simplificar el producto o el proceso de producción, cuanto menor sea el numero de pasos de un proceso, menos tiempo y oportunidad habra para que
ocurra un error y este proceso se encuentra separado en distintas fases y muy controlado.
C) Para un dss referido a un tablero de comando de una empresa industrial utilizaría la metodología Agil ya que permite adaptarse rápidamente a los cambios y responder a la necesidad de las empresas de solucionar diferentes problemas. Y esto es fundamental para lograr una ventaja competitiva.
No hay comentarios:
Publicar un comentario