lunes, 31 de octubre de 2011

Metodologías de Desarrollo de Software


PUNTO A:

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.

1) Metodologías Tradicionales:

a) Rational Unified Process (RUP)
RUP divide el proceso de desarrollo en ciclos, teniendo un producto al final de cada ciclo, a su vez, cada ciclo se divide en cuatro Fases:(Inicio, Elaboración, Construcción y Transición).

b) Microsoft Solution Framework (MSF)
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.

2) Metodologías Agiles:

Nacen como respuesta a los problemas de las metodologías tradicionales
Los individuos y las interacciones entre ellos son más importantes que las herramientas y los procesos empleados.
Es más importante crear un producto software que funcione que escribir documentación exhaustiva.
La capacidad de respuesta ante un cambio es más importante que el seguimiento estricto de un plan.
Se basa en dos aspectos puntuales (Retrasar las decisiones y Planificación adaptativa):

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
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.




a) Extreme Programming (XP)
Es la más destacada de los procesos ágiles de desarrollo de software formulada por Kent Beck.
La programación extrema se diferencia de las metodologías tradicionales principalmente en que pone más énfasis en la adaptabilidad que en la previsibilidad.
Los defensores de XP consideran que 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.

b) Agile 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.

c) 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.

d) ICONIX
Se define como un proceso de desarrollo de software práctico.
Se encuentra entre la complejidad del RUP y la simplicidad de XP
Es iterativo e incremental.

e) 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 mirando
No es una sesión de aprendizaje para un programador junior
Los roles se pueden cambiar varias veces durante el día

f) 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.







3) Metodologías para el desarrollo web
- Ciclo de vida clásico: (Formulación, Planificación, Análisis (contenido, interacción, funcional, configuración), Diseño (arquitectónico, navegación, interfaz, de base de datos), Implementación y Pruebas).
- 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).

4) Metodologías Híbridas:
Algunos modelos, surgen a partir de otras metodologías y se adaptan a los nuevos desarrollos.
Algunos ejemplos son las adaptaciones a los desarrollos Web.




PUNTO B

La metodología que utilizaría para administrar este sistema de información, sería “Metodologías Agiles”, particularmente el proceso XP (Extreme Programming) por lo siguiente:
Los cambios de requisitos sobre la marcha son un aspecto natural, inevitable e incluso deseable del desarrollo de proyectos. 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.


PUNTO C

Para un DSS (Sistema de apoyo a la toma de decisiones) referido a un Tablero de Comando INDUSTRIAL, utilizaría la metodología “Metodologías para el desarrollo web”  debido a las características de los componentes de los DSS (Bases de Datos, Base de Modelos, Gerente de Dialogo, Enlace con bases Externas, Intranet/Extranet, redes).


Alumno: Carlos Cerruti
Legajo: 2794

No hay comentarios:

Publicar un comentario