Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1de 16

UNIVERSIDAD TECNOLOGICA DE LOS ANDES

ESCUELA PROFESIONAL DE INGENIERIA DE SISTEMAS E INFORMATICA

CURSO: ANÁLISIS Y DISEÑO DE SISTEMAS DE INFORMACIÓN

PROFESOR: LUIS ENRIQUE ZEGARRA RAMIREZ

TEMA: METODOLOGÍAS DE SOFTWARE

ALUMNA: MELIZA CORINA VILCA CCANAHUIRE

CUSCO-PERU

2021
LAS METODOLOGÍAS DE SOFTWARE

1
METODOLOGÍAS DE SOFTWARE

DEFINICION DE METODOLOGIA
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. (Autores varios).
Las metodologías se basan en una combinación de los modelos de proceso genéricos. Definen
artefactos, roles y actividades, junto con prácticas y técnicas recomendadas. La metodología para el
desarrollo de software es 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.

Si esto se aplica a la ingeniería del software, podemos destacar que una metodología:

 Optimiza el proceso y el producto software.


 Métodos que guían en la planificación y en el desarrollo del software.
 Define qué hacer, cómo y cuándo durante todo el desarrollo y mantenimiento de un
proyecto.

Una metodología define una estrategia global para enfrentarse con el proyecto. Entre los elementos
que forman parte de una metodología se pueden destacar:

 Fases: tareas a realizar en cada fase o etapa.


 Productos: E/S de cada fase, documentos.
 Procedimientos y herramientas: apoyo a la realización de cada tarea.
 Criterios de evaluación: del proceso y del producto. Saber si se han logrado los objetivos.

DEFINICION SOFTWARE
El software es el equipamiento lógico e intangible de un sistema informático, que comprende el
conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas
específicas, en contraposición a los componentes físicos que son llamados hardware.
En otras palabras, es el conjunto de los programas de cómputo, procedimientos, reglas,
documentación y datos asociados, que forman parte de las operaciones de un sistema de
computación. (Autores varios).

2
¿QUÉ ES UNA METODOLOGÍA DE DESARROLLO DE SOFTWARE?
Una metodología de desarrollo de software es un marco de trabajo que se usa para estructurar,
planificar y controlar el proceso de desarrollo de sistemas de información. Una gran variedad de
estos marcos de trabajo ha evolucionado durante los años, cada uno con sus propias fortalezas y
debilidades. Una metodología de desarrollo de sistemas no tiene que ser necesariamente adecuada
para usarla en todos los proyectos. Cada una de las metodologías disponibles es más adecuada para
tipos específicos de proyectos, basados en consideraciones técnicas, organizacionales, de proyecto
y de equipo.

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.

TIPOS DE METODOLOGÍAS DE DESARROLLO DE SOFTWARE

1. MODELO DE CASCADA(WATERFALL)
Si alguna vez has incursionado en el mundo del Desarrollo de Software, de seguro te has topado en
algún momento con el modelo de cascada. De no ser así, cabe destacar que en este modelo cada
etapa representa una unidad de desarrollo con un pequeño descanso en el medio. Por lo tanto, cada
siguiente etapa inicia tan pronto como la anterior haya culminado, y esos descansos son usados
para confirmaciones del lado del cliente. Adicionalmente, este es considerado como el método
tradicional de explicar el proceso de desarrollo de software en ingeniería de software, por lo que
actualmente es visto como anticuado. Sin embargo, aún sigue siendo aplicado a proyectos con
metas claras y requisitos que demandan hasta 100 horas de desarrollo, sobre todo considerando
que este enfoque permite a los negocios deshacerse del papeleo innecesario, reuniones regulares
que consumen mucho tiempo y retrasos en sus procesos de negocio. Es por esto que esta es una
gran opción para pequeños proyectos donde todos los aspectos del proceso de desarrollo de
software se conocen de antemano, pero una mala solución para proyectos complicados, ya que se
trata de un modelo bastante inflexible.

Las fases de desarrollo de software del modelo en cascada:


1. Análisis de Requisitos.
2. Diseño del Sistema
3. Diseño del Programa
4. Codificación
5. Ejecución de Pruebas

3
6. Verificación
7. Mantenimiento.

2. MODELO DE ESPIRAL
Mientras que la metodología de la cascada ofrece una estructura ordenada para el desarrollo de
software, las demandas de tiempo reducido al mercado hacen que sus pasos en serie sean
inapropiados.
El siguiente paso evolutivo desde la cascada es donde se realizan los diversos pasos para múltiples
entregas o traspasos. La última evolución de la caída del agua es la espiral, aprovechando el hecho
de que los proyectos de desarrollo funcionan mejor cuando son incrementales e iterativos.
La metodología espiral refleja la relación de tareas con prototipos rápidos, mayor paralelismo y
concurrencia en las actividades de diseño y construcción. El método en espiral debe todavía ser
planificado metódicamente, con las tareas y entregables identificados para cada paso en la espiral.

4
3. METODOLOGÍA DE PROTOTIPO
Es un procedimiento de desarrollo especializado que permite a los desarrolladores la posibilidad de
poder solo hacer la muestra de la resolución para poder validar su esencia funcional ante los
clientes, y hacer los cambios que sean fundamentales antes de crear la solución final auténtica. De
hecho, la mejor parte de esta metodología es que tiende a resolver un conjunto de problemas de
diversificación que ocurren con el método de la cascada.

Además de esto, la gran ventaja de optar por este enfoque es que da una idea clara sobre el proceso
funcional del software, reduce el riesgo de falla en una funcionalidad de software y asiste bien en la
recolección de requisitos y en el análisis general.
Las etapas de desarrollo de software por las cuales tendrás que pasar, en caso de utilizar la
metodología de prototipos.
1. Planeación
2. Modelado
3. Elaboración del Prototipo
4. Desarrollo
5. Entrega y Retroalimentación
6. Comunicación con el Cliente
7. Entrega del Producto Final
Características:
Es un método menos formal de desarrollo.
El prototipo es una técnica para comprender las especificaciones.
Un prototipo puede ser eliminado.
Un prototipo puede llegar a ser parte del producto final.

Ventajas:
Útiles cuando los requerimientos son cambiantes.
Cuando no se conoce bien la aplicación.
Cuando el usuario no se quiere comprometer con los requerimientos.
Cuando se quiere probar una arquitectura o tecnología.
Cuando se requiere rapidez en el desarrollo.

5
4. DESARROLLO RÁPIDO DE APLICACIONES (RAD - Rapid Application Development)
Con el objetivo de otorgar resultados rápidos, se trata de un enfoque que está destinado a
proporcionar un excelente proceso de desarrollo con la ayuda de otros enfoques, pero, además,
está diseñado para aumentar la viabilidad de todo el procedimiento de desarrollo de software para
resaltar la participación de un usuario activo.

Dicho esto, algunas de las ventajas a destacar de este tipo de desarrollo son las siguientes:

 Hace todo el proceso de desarrollo sin esfuerzo.


 Asiste al cliente en la realización de revisiones rápidas.
 Alienta la retroalimentación de los clientes para su mejora.

Fases del RAD

 Modelado de gestión: el flujo de información entre las funciones de gestión se modela de


forma que responda a las siguientes preguntas: ¿Qué información conduce el proceso de
gestión? ¿Qué información se genera? ¿Quién la genera? ¿A dónde va la información?
¿Quién la procesó?

 Modelado de datos: el flujo de información definido como parte de la fase de modelado de


gestión se refina como un conjunto de objetos de datos necesarios para apoyar la empresa.
Se definen las características (llamadas atributos) de cada uno de los objetos y las relaciones
entre estos objetos.

 Modelado de proceso: los objetos de datos definidos en la fase de modelado de datos


quedan transformados para lograr el flujo de información necesario para implementar una
función de gestión. Las descripciones del proceso se crean para añadir, modificar, suprimir,
o recuperar un objeto de datos. Es la comunicación entre los objetos.

6
 Generación de aplicaciones: El DRA asume la utilización de técnicas de cuarta generación.
En lugar de crear software con lenguajes de programación de tercera generación, el proceso
DRA trabaja para volver a utilizar componentes de programas ya existentes (cuando es
posible) o a crear componentes reutilizables (cuando sea necesario). En todos los casos se
utilizan
herramientas automáticas para facilitar la construcción del software.

 Pruebas de entrega: Como el proceso DRA enfatiza la reutilización, ya se han comprobado


muchos de los componentes de los programas. Esto reduce tiempo de pruebas. Sin
embargo, se deben probar todos los componentes nuevos y se deben ejercitar todas las
interfaces a fondo.

5.INCREMENTAL

El desarrollo incremental e iterativo es también una parte esencial de un tipo de programación


conocido como Extreme Programming y los demás frameworks de desarrollo rápido de software.

Permite construir el proyecto en etapas incrementales en donde cada etapa agrega funcionalidad.
Estas etapas, consisten en requerimientos, diseño, codificación, pruebas y entrega. Permite
entregar al cliente un producto más rápido en comparación del modelo en cascada.

El modelo iterativo o incremental, cuenta con algunas fases de desarrollo de software


1. Inicialización
2. Periodos de Iteración
3. Lista de Control

7
Características:

Reduce los riegos ya que provee visibilidad sobre el progreso de las nuevas versiones.
Provee retroalimentación a través de la funcionalidad mostrada.
Permite atacar los mayores riesgos desde el inicio.
Se pueden hacer implementaciones parciales si se cuenta con la suficiente funcionalidad.
Las pruebas y la integración son constantes.
El progreso se puede medir en periodo cortos de tiempo.
Resulta más sencillo acomodar cambios al acortar el tamaño de los incrementos.
Se puede planear en base a la funcionalidad que se quiere entregar primero.
Por su versatilidad requiere de una planeación cuidadosa tanto a nivel administrativo como
técnico.

Ventajas:

o La solución se va mejorando en forma progresiva a través de las múltiples iteraciones,


o incrementa el entendimiento del problema y de la solución por medio de los refinamientos
sucesivos.

o Los clientes no esperan hasta el fin del desarrollo para utilizar el sistema. Pueden empezar
a usarlo desde el primer incremento.

o Los clientes pueden aclarar los requisitos que no tengan claros, conforme ven las entregas
del sistema.

o Se disminuye el riesgo de fracaso de todo el proyecto, ya que se puede distribuir en cada


incremento.

o Las partes más importantes del sistema son entregadas primero, por lo cual se realizan más
pruebas en estos módulos y se disminuye el riesgo de fallos.

8
METODOLOGÍAS DE DESARROLLO DE SOFTWARE ÁGILES
Las metodologías ágiles de desarrollo de software son las más utilizadas hoy en día debido a su
alta flexibilidad y agilidad. Los equipos de trabajo que las utilizan son mucho más productivos y
eficientes, ya que saben lo que tienen que hacer en cada momento. Además, la metodología permite
adaptar el software a las necesidades que van surgiendo por el camino, lo que facilita construir
aplicaciones más funcionales.

se basan en la metodología incremental, en la que en cada ciclo de desarrollo se van agregando


nuevas funcionalidades a la aplicación final. Sin embargo, los ciclos son mucho más cortos y rápidos,
por lo que se van agregando pequeñas funcionalidades en lugar de grandes cambios.

Las principales metodologías ágiles son:

 KANBAN

Siguiendo con las metodologías ágiles, nos encontramos con Kanban. Se trata de una
metodología Japonesa, la cual consiste en ir etiquetando con tarjetas cada uno de los
procesos que se deben llevar a cabo, también se le ha denominado como “Un sistema de
producción de alta efectividad y productividad”. De hecho, empresas como la marca de
autos Toyota, fueron una de las primeras en implementarla para acelerar los procesos de
producción.

La palabra Kanban, en Japonés significa “tarjetas visuales” y es precisamente lo que se


maneja en ella. Algunos la trabajan con lo que son tarjetas virtuales o bien simulando que
se pueden ver las tarjetas, sin embargo una forma correcta de hacerlo es con tarjetas físicas,
que el equipo pueda ver y sentir para tener mayor efectividad.
9
Una de las principales ventajas de Kanban, es que además de ser una metodología Ágil,
también es muy fácil de usar e implementar, sobretodo porque el equipo de trabajo se unirá
y empezarán a trabajar a la par en diferentes aspectos del desarrollo. Veamos ahora, cuales
son los principios básicos de la metodología Kanban.

Principios del método Kanban

 Calidad garantizada
 Reducción del desperdicio
 Mejora continua
 Flexibilidad

 SCRUM
Es también una metodología incremental que divide los requisitos y tareas de forma similar
a Kanban. Se itera sobre bloques de tiempos cortos y fijos (entre dos y cuatro semanas) para
conseguir un resultado completo en cada iteración.

Las etapas son:

 Planificación de la iteración (planning sprint)


 Ejecución (sprint)
 reunión diaria (daily meeting)
 demostración de resultados (sprint review).

Cada iteración por estas etapas se denomina también sprint. La metodología Scrum, es
bastante amigable y fomenta lo que es el trabajo en equipo en todo momento, con la
finalidad de conseguir los objetivos de una forma rápida.

Fundamentos de Scrum

 El desarrollo incremental de los requisitos del proyecto en bloques temporales cortos


y fijos (iteraciones de un mes natural y hasta de dos semanas, si así se necesita).
 La priorización de los requisitos por valor para el cliente y coste de desarrollo en cada
iteración.
 Calidad de las personas.
 Adiós al Secuencial y Cascada
 La comunicación es Fundamental
 El control empírico del proyecto.
 La potenciación del equipo.
 La sistematización de la colaboración y la comunicación tanto entre el equipo y como
con el cliente.

10
 PROCESO UNIFICADO DE DESARROLLO SOFTWARE
Proceso Unificado de Desarrollo (RUP) es una metodología de desarrollo de software que
está basado en componentes e interfaces bien definidas, y junto con el Lenguaje Unificado
de Modelado(UML), constituye la metodología estándar más utilizada para el análisis,
implementación y documentación de sistemas orientados a objetos.

Es un proceso que puede especializarse para una gran variedad de sistemas de software, en
diferentes áreas de aplicación, diferentes tipos de organizaciones, diferentes niveles de
aptitud y diferentes tamaños de proyecto. RUP no es un sistema con pasos firmemente
establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de
cada organización.

Es el resultado de varios años de desarrollo y uso práctico en el que se han unificado técnicas
de desarrollo, a través del UML, y trabajo de muchas metodologías utilizadas por los
clientes. La versión que se ha estandarizado vio la luz en 1998 y se conoció en sus inicios
como Proceso Unificado de Rational 5.0, de ahí las siglas con las que se identifica a este
proceso de desarrollo.

Principales Elementos

Como RUP es un proceso, en su modelación define como sus principales elementos:

 Trabajadores: define el comportamiento y responsabilidades (rol) de un individuo,


grupo de individuos, sistema automatizado o máquina, que trabajan en conjunto
como un equipo. Ellos realizan las actividades y son propietarios de elementos.
 Actividades: es una tarea que tiene un propósito claro, es realizada por un
trabajador y manipula elementos.
 Artefactos: productos tangibles del proyecto que son producidos, modificados y
usados por las actividades. Pueden ser modelos, elementos dentro del modelo,
código fuente y ejecutables.
 Flujo de actividades: secuencia de actividades realizadas por trabajadores y que
produce un resultado de valor observable.

Características Principales de RUP

1. Unifica los mejores elementos de metodologías anteriores.


2. Preparado para desarrollar grandes y complejos proyectos.
3. Orientado a Objetos.
4. Utiliza el UML como lenguaje de representación visual.

 LEAN
Está configurado para que pequeños equipos de desarrollo muy capacitados elaboren
cualquier tarea en poco tiempo. Los activos más importantes son las personas y su

11
compromiso, relegando así a un segundo plano el tiempo y los costes. El aprendizaje, las
reacciones rápidas y potenciar el equipo son fundamentales.

Principios Lean

1. Eliminar los desperdicios

2. Ampliar el aprendizaje

3. Decidir lo más tarde posible

4. Reaccionar tan rápido como sea posible

5. Potenciar el equipo

6. Crear la integridad

7. Véase todo el conjunto

 FEATURE DRIVEN DEVELOPMENT (FDD)


La metodología ágil FDD, con sus siglas en inglés Feature Driven Development, fue
impulsada por Jeff de Luca y Meter Coad en los años 80. Como las otras metodologías
adaptables, se enfoca en iteraciones cortas que entregan funcionalidad tangible. Dicho
enfoque no hace énfasis en la obtención de los requerimientos sino en cómo se realizan las
fases de diseño y construcción. Sin embargo, fue diseñado para trabajar con otras
actividades de desarrollo de software y no requiere la utilización de ningún modelo de
proceso específico. Hace énfasis en aspectos de calidad durante todo el proceso e incluye
un monitoreo permanente del avance del proyecto. Al contrario de otras metodologías, FDD
promete ser conveniente para el desarrollo de sistemas críticos y está orientada a equipos
de trabajo más grandes, con más personas que aquellos a los que normalmente se aplican
otras metodologías como Scrum. Define claramente entregas tangibles y formas de
evaluación del progreso del proyecto. No hace énfasis en la obtención de los requerimientos
sino en cómo se realizan las fases de diseño y construcción. FDD se basa en un ciclo muy
corto de iteración, nunca superior a dos semanas, y en el que el análisis y los desarrollos
están orientados a cumplir una lista de Features que tiene que tener el software a
desarrollar.

Un Feature debe cumplir las siguientes características:

 Debe ser simple y poco costosa de desarrollar, de entre uno y diez días.
 Debe aportar valor al cliente y ser relevante para su negocio.
 Debe poderse expresar en términos de acción, resultado y objeto.

La metodología sigue cinco fases iterativas:

1. Desarrollo/Modificación de un Modelo Global


2. Creación/Modificación de la lista de Features

12
3. Planificación
4. Diseño
5. Implementación

 ADAPTIVE SOFTWARE DEVELOPMENT (ASD)


Esta metodología parte de la idea de que las necesidades del cliente son siempre
cambiantes durante el desarrollo del proyecto y posteriormente a su entrega.
Esta técnica fue desarrollada por Jim Highsmith y Sam Bayer a comienzos de los 90. La
novedad de esta metodología es que en realidad no es una metodología de desarrollo de
software, sino un método/técnica, a través del cual inculcar una cultura adaptativa a la
empresa para adaptarse al cambio y no luchar contra él. En ella no hay un ciclo de vida
estático (planear-diseñar-construir), si no que ofrece un ciclo de vida iterativo, donde cada
ciclo puede ser modificado al tiempo que otro es ejecutado (especular colaborar-aprender).

Los objetivos de esta metodología son:


1. Concienciar a la organización de que debe esperar cambio e incertidumbre
y no orden y estabilidad.
2. Desarrollar procesos iterativos de gestión del cambio.
3. Facilitar la colaboración y la interacción de las personas a nivel
interpersonal, cultural y estructural.
4. Marcar una estrategia de desarrollo rápido de aplicaciones, pero con rigor
y disciplina.

Sus principales características son:

1. Iterativo.
2. Orientado a los componentes software más que a las tareas.
3. Tolerante a los cambios.
4. Guiado por los riesgos.
5. La revisión de los componentes sirve para aprender de los errores y volver a
iniciar el ciclo de desarrollo.

 XP O METODOLOGÍA DE PROGRAMACIÓN EXTREMA


Esta metodología es posiblemente la mas destacada de las metodologías ágiles y esto se
debe a su gran capacidad de adaptación ante cualquier tipo de imprevisto que surja. Pues
la idea no es mantener ciertos requisitos desde que se está elaborando el proyecto, sino
que durante el proceso, estos vayan cambiando o vayan evolucionando gradualmente sin
complicaciones. Básicamente los creadores de esta metodología XP, consideran que es
mejor adaptarte en el proceso a los requisitos que vayan apareciendo, que iniciar con
requisitos y desarrollar un proyecto en base a eso.

13
Es la combinación de las demás metodologías, solamente que se van utilizando de acuerdo
a como sea necesario, por eso es considerada como la más destacada de las metodologías
ágiles. Así que es momento de entrar en detalles y vamos a ver cuales son los valores que
conforman a la metodología de programación XP.

Valores de la Metodología XP
 Comunicación
 Simplicidad
 Retroalimentación
 Valentía
 Respeto

Características que componen la metodología XP

 Tipo de Desarrollo Iterativo e incremental.


 Pruebas Unitarias.
 Trabajo en Equipo
 Alguien del equipo trabaja con el cliente
 Corrección de Errores.
 Reestructuración del Código
 El Código es de todos
 Código simple es la clave

14
DIFERENCIAS ENTRE LAS METODOLOGIAS

METODOLOGÍAS ÁGILES METODOLOGÍAS TRADICIONALES

No existe contrato tradicional o al menos es


Existe un contrato prefijado
bastante flexible

Impuestas internamente (por el equipo) Impuestas externamente

Pocos roles Mas roles

Pocos artefactos mas artefactos

Están preparadas para cambios durante el


Son poco flexibles a los cambios
proyecto

Proceso mucho más controlado, con numerosas


Proceso menos controlado, con pocos principios
normas

No existe contrato tradicional o al menos es


Existe un contrato prefijado
bastante flexible

El cliente interactúa con el equipo solo mediante


El cliente es parte activa en el proceso de desarrollo
reuniones de entregas

Grupos pequeños, 10 integrantes o menos y Grupos grandes y posiblemente distribuidos


trabajando en el mismo sitio en el cual todos tienen donde a cada interante se le asignan tareas
conocimiento sobre todo el proceso de desarrollo especificas

La arquitectura del software es esencial y se


Menos énfasis en la arquitectura del software
expresa mediante modelos

15
Cabe destacar:

 El retrasar las decisiones en un proyecto de software permite potenciar el valor del producto
tanto para el cliente como al equipo o empresa que desarrolla.
 Para que un grupo de desarrollo adopte una metodología ágil debe poseer experiencia
trabajando con metodologías tradicionales, ya que la experiencia es la que predomina en
los mementos cruciales del proyecto, además debe tener la capacidad de ser equipos auto-
gestionados, altamente motivados y con gran innovación.
 Las metodologías ágiles permiten disminuir costos y brindar flexibilidad a los proyectos de
software donde la incertidumbre está presente.
 El uso de metodologías tradicionales es esencial al inicio en un equipo de desarrollo de
software.
 Las metodologías ágiles se deberían aplicar en proyectos donde exista mucha incertidumbre
donde el entorno es volátil, donde los requisitos no se conocen con exactitud, mientras que
las metodologías tradicionales obligan al cliente a tomar las decisiones al inicio del proyecto.

16

También podría gustarte