Una metodología de desarrollo de software, es un marco de trabajo que mediante herramientas y procedimientos es usado para estructurar, planear y controlar el proceso de desarrollo en sistemas de información.
Metodologias Tradicionales
Rational Unified Process (RUP)
Proceso Iterativo e Incremental, centrado en la arquitectura y dirigido por casos de uso. 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.
Microsoft Solution Framework (MSF)
MSF es un compendio de las mejores prácticas en cuanto a administración de proyectos se refiere.
Más que una metodología rígida de administración de proyectos, MSF es una serie de modelos que puede adaptarse a cualquier proyecto de tecnología de información.
Metodologías Agiles
v Nacen como respuesta a los problemas de las metodologías tradicionales
v Se basa en dos aspectos puntuales,
§ Retrasar las decisiones : Es el eje en cual gira la metodología ágil, el retrasar las decisiones tan como sea posible de manera responsable será ventajoso tanto para el cliente como para la empresa
§ Planificación adaptativa: permite estar preparados para el cambio; y consiste en tomar decisiones a lo largo del 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
v Dan mayor potencia al desarrollo de software a gran escala.
Diferentes tipos de metodologías agiles:
Extreme Programming (XP)
Es la mas destacada de los procesos agiles de desarrollo de software, se diferencia de las metodologías tradicionales principalmente en que pone mas énfasis en la adaptabilidad que la previsibilidad.
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 cliente es virtualmente imposible
§ Para mitigar esta desventaja se plantea definir un alcance a alto nivel basado en la experiencia.
AUP (Agil Unified Process)
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.
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.
ICONIX
§ Se define como un proceso de desarrollo de software práctico.
§ Se encuentra entre la complejidad del RUP y la simplicidad de XP.
§ Esta adaptado a los patrones de diseño.
§ Es iterativo e incremental
Pair Programming
Dos programadores trabajando juntos son más efectivos que por separado
§ El conocimiento grupal crece más rápido
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
§ Tests funcionales
Metodologias hibridas
§ Algunos ejemplos son las adaptaciones a los desarrollos 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).
Diferencias:
Metodologías Tradicionales | Metodologías Agiles |
Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo | Basadas en heurísticas provenientes de prácticas de producción de código |
Cierta resistencia a los cambios | Especialmente preparados para cambios durante el proyecto |
Impuestas externamente | Impuestas internamente (por el equipo) |
Mas Roles | Pocos Roles |
Mas Artefactos | Menos Artefa |
La arquitectura del software es esencial y se expresa mediante modelos | Menos énfasis en la arquitectura del software |
Grupos grandes y posiblemente distribuidos | Grupos pequeños (<10 integrantes) y trabajando en el mismo sitio |
Proceso mucho más controlado, con numerosas políticas/normas | Proceso menos controlado, con pocos principios. |
El cliente interactúa con el equipo de desarrollo mediante reuniones | El cliente es parte del equipo de desarrollo |
Para un MIS en la producción, utilizaría una metodología ágil, ya que permite cumplir los objetivos en tiempo y forma, logrando así la satisfacción del cliente, y además permitiendo a la empresa reducir costos para la obtención de mayores ganancias.
Para un DSS referido a un tablero de comando en una empresa industrial, optaría por una metodología hibrida, considerando que algunos ejemplos son las adaptaciones a los desarrollos web y por esta razón a nuestro entender es lo que mas se asemejaría a ser utilizado en un tablero de comando de manera beneficiosa.
Quipildor Giovanna – Leg. 12259
Sena Cintia – Leg. 12914
No hay comentarios:
Publicar un comentario