DIFERENCIA ENTRE METODOLOGIAS, FRAMEWORKS Y ESTANDARES DE DISEÑO DE SOFTWARE
edutrujillo27 de Noviembre de 2014
3.091 Palabras (13 Páginas)289 Visitas
UNIVERSIDAD PRIVADA ANTENOR ORREGO
FACULTAD DE INGENIERÍA
ESCUELA PROFESIONAL DE INGENIERÍA DE COMPUTACIÓN Y SISTEMAS
INGENIERIA DE SOFTWARE DE GESTION
Docente :
Ing. José Fernando Pérez Cueva
Tema :
DIFERENCIA ENTRE METODOLOGIAS, FRAMEWORKS Y ESTANDARES DE DISEÑO DE SOFTWARE
Alumno :
Portal Huamanchumo, Eduardo
TRUJILLO – PERÚ
2014
INTRODUCCION
El desarrollo de software no es sin dudas una tarea fácil. Como resultado a este problema ha surgido una alternativa desde hace mucho: la Metodología. Las metodologías imponen un proceso disciplinado sobre el desarrollo de software con el fin de hacerlo más predecible y eficiente. Lo hacen desarrollando un proceso detallado con un fuerte énfasis en planificar inspirado por otras disciplinas de la ingeniería.
Las metodologías ingenieriles han estado presentes durante mucho tiempo. No se han distinguido precisamente por ser muy exitosas. Aún menos por su popularidad. La crítica más frecuente a estas metodologías es que son burocráticas. Hay tanto que hacer para seguir la metodología que el ritmo entero del desarrollo se retarda.
El objeto de investigación de este trabajo es precisamente el análisis de algunas de las variedades de frameworks existentes , que gozan actualmente de mayor popularidad entre la comunidad de desarrolladores y que uno de los grandes problemas que enfrenta la producción de software tan necesario para el desarrollo de las Tecnologías de la información (TI) es el costo de desarrollo y la calidad con que estos son entregados a usuarios finales para su puesta en explotación. En la actualidad una de las disciplinas que propician contar con programas o aplicaciones de funcionalidad probada que garantiza el desarrollo de las TI es previamente la gestión de la calidad en el proceso de desarrollo de software.
En un intento de condensar en pocas páginas una línea tan amplia de conocimiento, se ha realizado una breve descripción de cada uno de ellos, así como de algunas de sus ventajas y desventajas, encaminado esto a contribuir en la elección del que más se adecue a las necesidades de la aplicación que se desarrolle.
I. MARCO TEORICO
METODOLOGÍA
El desarrollo de software no es una tarea fácil. Prueba de ello es que existen numerosas propuestas metodológicas que inciden en distintas dimensiones del proceso de desarrollo.
Este enfoque está mostrando su efectividad en proyectos con requisitos muy cambiantes y cuando se exige reducir drásticamente los tiempos de desarrollo pero manteniendo una alta calidad. Las metodologías ágiles están revolucionando la manera de producir software, y a la vez generando un amplio debate entre sus seguidores y quienes por escepticismo o convencimiento no las ven como alternativa para las metodologías tradicionales.
Un objetivo de décadas ha sido encontrar procesos y metodologías, que sean sistemáticas, predecibles y repetibles, a fin de mejorar la productividad en el desarrollo y la calidad del producto software.
Hoy en día existen numerosas propuestas metodológicas que inciden en distintas dimensiones del proceso de desarrollo. Un ejemplo de ellas son las propuestas tradicionales centradas específicamente en el control del proceso. Estas han demostrado ser efectivas y necesarias en un gran número de proyectos, sobre todo aquellos proyectos de gran tamaño (respecto a tiempo y recursos).
Aplicar metodologías tradicionales nos obliga a forzar a nuestro cliente a que tome la mayoría de las decisiones al principio. Luego el coste de cambio de una decisión tomada puede llegar a ser muy elevado si aplicamos metodologías tradicionales.
Un método es un conjunto de herramientas, técnicas y procesos que brindan soporte y facilitan el logro u obtención de una meta que hacer, a lo largo de todo el ciclo de vida del software, para construir un producto bueno, de calidad, dentro del presupuesto y a tiempo.
Una metodología es un conjunto integrado de técnicas y métodos que permite abordar de forma homogénea y abierta cada una de las actividades del ciclo de vida de un proyecto de desarrollo. Es un proceso de software detallado y completo.
Las metodologías se basan en una combinación de los modelos de proceso genéricos (cascada, incremental…). Definen artefactos, roles y actividades, junto con prácticas y técnicas recomendadas.
La metodología para el desarrollo de software en un modo sistemático de realizar, gestionar y administrar un proyecto para llevarlo a cabo con altas posibilidades de éxito. Una metodología para el desarrollo de software comprende los procesos a seguir sistemáticamente para idear, implementar y mantener un producto software desde que surge la necesidad del producto hasta que cumplimos el objetivo por el cual fue creado.
El marco de trabajo de una metodología de desarrollo de software consiste en:
Una filosofía de desarrollo de software, con el enfoque o enfoques del proceso de desarrollo de software.
Múltiples herramientas, modelos y métodos para ayudar en el proceso de desarrollo de software.
Estos marcos de trabajo están con frecuencia vinculados a algunos tipos de organizaciones, que se encargan del desarrollo, soporte de uso y promoción de la metodología. La metodología con frecuencia se documenta de alguna manera formal.
Ventajas del uso de una metodología
Son muchas las ventajas que puede aportar el uso de una metodología. A continuación se van a exponer algunas de ellas, clasificadas desde distintos puntos de vista.
Desde el punto de vista de gestión:
Facilitar la tarea de planificación
Facilitar la tarea del control y seguimiento de un proyecto
Mejorar la relación coste/beneficio
Optimizar el uso de recursos disponibles
Facilitar la evaluación de resultados y cumplimiento de los objetivos
Facilitar la comunicación efectiva entre usuarios y desarrolladores
Desde el punto de vista de los ingenieros del software:
Ayudar a la comprensión del problema
Optimizar el conjunto y cada una de las fases del proceso de desarrollo
Facilitar el mantenimiento del producto final
Permitir la reutilización de partes del producto
Desde el punto de vista del cliente o usuario:
Garantía de un determinado nivel de calidad en el producto final
Confianza en los plazos de tiempo fijados en la definición del proyecto
Definir el ciclo de vida que más se adecue a las condiciones y características del
desarrollo.
Metodologías tradicionales y ágiles
Desarrollar un buen software depende de un gran número de actividades y etapas, donde el impacto de elegir la metodología para un equipo en un determinado proyecto es trascendental para el éxito del producto.
Según la filosofía de desarrollo se pueden clasificar las metodologías en dos grupos. Las metodologías tradicionales, que se basan en una fuerte planificación durante todo el desarrollo, y las metodologías ágiles, en las que el desarrollo de software es incremental, cooperativo, sencillo y adaptado.
Metodologías tradicionales
Las metodologías tradicionales son denominadas, a veces, de forma peyorativa, como metodologías pesadas.
Centran su atención en llevar una documentación exhaustiva de todo el proyecto y en cumplir con un plan de proyecto, definido todo esto, en la fase inicial del desarrollo del proyecto.
Otra de las características importantes dentro de este enfoque, son los altos costes al implementar un cambio y la falta de flexibilidad en proyectos donde el entorno es volátil.
Las metodologías tradicionales (formales) se focalizan en la documentación, planificación y procesos (plantillas, técnicas de administración, revisiones, etc.).
Metodologías ágiles
Este enfoque nace como respuesta a los problemas que puedan ocasionar las metodologías tradicionales y se basa en dos aspectos fundamentales, retrasar las decisiones y la planificación adaptativa. Basan su fundamento en la adaptabilidad de los procesos de desarrollo. Estas metodologías ponen de relevancia que la capacidad de respuesta a un cambio es más importante que el seguimiento estricto de un plan.
Metodologías ágiles Metodologías tradicionales
Basadas en heurísticas provenientes de prácticas de producción de código Basadas en normas provenientes de estándares seguidos por el entorno de desarrollo
Especialmente preparados para cambios durante el proyecto Cierta resistencia a los cambios
Impuestas internamente (por el equipo) Impuestas externamente
Proceso menos controlado, con pocos principios
Proceso mucho más controlado, con numerosas políticas/normas
No existe contrato tradicional o al menos es bastante flexible Existe un contrato prefijado
El cliente es parte del equipo de desarrollo El cliente interactúa con el equipo de desarrollo mediante reuniones
...