METODOLOGÍAS DEL DESARROLLO DE SOFTWARE
¿Qué es metodología para el Desarrollo de
Software?
- Son procedimientos, técnicas y ayudas a la documentación para el desarrollo de productos software.
Es como un libro de recetas de cocina, en el que se van indicando paso a paso todas las actividades a realizar para lograr el producto informático deseado, indicando además qué personas deben participar en el desarrollo de las actividades y qué papel deben de tener. Además detallan la información que se debe producir como resultado de una actividad y la información necesaria para comenzarla.
Actualmente es imprescindible considerar los riesgos, aunque habitualmente las
empresas, no han sido concienciadas de los riesgos inherentes al procesamiento
de la información mediante ordenadores, a lo que han contribuido, a veces, los propios
responsables de informática, que no han sabido explicar con la suficiente
claridad las consecuencias de una política de seguridad insuficiente o incluso
inexistente. Por otro lado, debido a una cierta deformación profesional en la
aplicación de los criterios de coste/beneficio, el directivo desconocedor de la
informática no acostumbra a autorizar inversiones que no lleven implícito un
beneficio demostrable, tangible y mensurable.
Las técnicas indican cómo debe ser realizada una actividad técnica determinada
identificada en la metodología. Combina el empleo de unos modelos o
representaciones gráficas junto con el empleo de unos procedimientos
detallados. Se debe tener en consideración que una técnica determinada puede
ser utilizada en una o más actividades de la metodología de desarrollo de
software. Además se debe tener mucho cuidado cuando se quiere cambiar una
técnica por otra.
Finalidad de una metodología
Es ayudarnos
a dar corrección y control en cada etapa del desarrollo de un programa que se está
por realizar. Lo que nos permitirá una forma sistemática para poder obtener un
producto correcto y libre de errores.
CLASIFICACIÓN DE LAS METODOLOGÍAS.
Metodologías estructuradas.
Proponen la creación de modelos del sistema que representan los
procesos, los flujos y la estructura de los datos de una manera descendente
(top-down), tanto en las funciones del sistema, en la estructura de los datos o
a ambos aspectos dando lugar a metodologías orientadas a procesos, orientadas a
datos y mixtas.
Mecanismos para el análisis:
- Flujo de datos.
- Estructura de datos.
Mecanismos de subdivisión: cada metodología aplica un criterio diferente
de descomposición, y se apoya en elementos gráficos distintos.
- Proceso.
- Estructura de datos.
Tendencias principales:
- Metodologías orientadas a PROCESOS (FLUJO DE DATOS.)
- Metodologías orientadas a ESTRUCTURAS DE DATOS.
Metodologías orientadas a objetos.
Cobra mucha más importancia el aspecto de modelado del sistema,
examinando el dominio del problema como un conjunto de objetos que interactúan
entre sí. Tenemos dos enfoques en las metodologías orientadas al objeto:
Revolucionarios o puros: que entienden la orientación al objeto como un
cambio profundo que convierten a las metodologías estructuradas en obsoletas.
Sintetistas o evolutivos: que piensan que el análisis y diseño
estructurado constituyen la base para el desarrollo orientado al objeto,
pudiéndose combinar elementos del análisis y diseño estructurado con los de
orientación a l objeto.
Sistemas en tiempo real.
Son sistemas muy dependientes del tiempo que procesan información
orientada al control. Controlan y son controlados por eventos externos. Se
caracterizan porque:
- Se lleva a cabo el proceso de muchas actividades de forma simultanea.
- Se asignan prioridades a determinados procesos.
- Se interrumpe una tarea antes de que concluya, para comenzar otra de mayor prioridad.
- Existe comunicación entre tareas.
- Existe acceso simultáneo a datos comunes.
Para especificar los requisitos de estos sistemas hay que incluir nuevos
conceptos para:
- El manejo de interrupciones.
- La comunicación y sincronización entre tareas.
- Gestionar procesos concurrentes.
- Dar respuesta oportuna y a tiempo ante eventos externos.
- Datos continuos o discretos.
Comparación entre Metodologías Estructuradas y Orientadas a Objetos.
Estructuradas
|
Orientadas a
Objetos
|
|
|
|
|
|
|
|
|
METODOLOGÍAS AGILES Y TRADICIONALES
Metodologías Tradicionales
|
Metodologías Ágiles
|
- Rigidez ante los cambios, de manera lentos o moderada
- Los clientes interactúan con el equipo de desarrollo mediante
reuniones
- Grupos de gran tamaño y varias veces distribuidos en diferentes
sitios
- Dependencia de la arquitectura de software mediante modelos
- Poco Feedback lo que extiende el tiempo de entrega
- Mínimos roles
- Basadas en normas de estándares de desarrollo
- Procesos muy controlados por políticas y normas
- Seguimiento estricto del plan inicial de desarrollo
|
- Flexibilidad ante los cambios del proyecto de forma moderada a
rápida
- Los clientes hacen parte del equipo de desarrollo
- Grupos pequeños (promedio 10 participantes in situ) en el mismo
lugar.
- Menor dependencia de la arquitectura de software
- Continuo Feedback acortando el tiempo de entrega
- Diversidad de roles
- Basadas en heurísticas a partir de prácticas de producción de código
- Procesos menos controlados, pocas
políticas y normas
- Capacidad de respuesta ante los cambios
|
Las metodologías ágiles proporcionan
una serie de pautas y principios junto a técnicas pragmáticas* que puede que no
curen todos los males pero harán la entrega del proyecto menos complicada y más
satisfactoria tanto para los clientes como para los equipos de entrega.
Entre las metodologías
ágiles más destacadas hasta el momento se pueden nombrar:
• XP (Extreme Programming)
• Scrum
• Crystal Clear
• DSDM (Dynamic Systems
Developmemt Method)
• FDD (Feature Driven
Development)
• ASD (Adaptive Software
Development)
• XBreed
• Extreme Modeling
Aquellas con mayor
importancia en la planificación y control del proyecto, en donde se especifican
todos los requisitos y modelado, reciben el apelativo de Metodologías
Tradicionales o Pesadas.
Entre las metodologías
tradicionales o pesadas podemos citar:
• RUP (Rational Unified
Procces)
• MSF (Microsoft Solution
Framework)
• Win-Win Spiral Model
• Iconix
- En este video se muestra una descripcion de la metodologia RUP me interesa presentarles esta ya que fue la que elegimos para el proyecto que realizaremos.
- Referencias