Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

analisis y diseño de sofware, Summaries of Software Development Methodologies

metodologia para uso de codigos

Typology: Summaries

2024/2025

Uploaded on 07/01/2025

christian-camilo-soto-corrales
christian-camilo-soto-corrales 🇺🇸

3 documents

1 / 41

Toggle sidebar

This page cannot be seen from the preview

Don't miss anything!

bg1
1
Grupo de Ejecución de la Formación Virtual
Breve descripción:
Las metodologías de desarrollo de software proponen un conjunto de procesos
y actividades que deben ser desarrolladas por el equipo de desarrollo de software
para realizar un trabajo organizado que sea fácil hacerle seguimiento y de esta forma
establecer planes de mejora en busca de una mejor calidad de los productos y servicios
que se desarrollan.
Mayo 2024
Metodologías de desarrollo de
software
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12
pf13
pf14
pf15
pf16
pf17
pf18
pf19
pf1a
pf1b
pf1c
pf1d
pf1e
pf1f
pf20
pf21
pf22
pf23
pf24
pf25
pf26
pf27
pf28
pf29

Partial preview of the text

Download analisis y diseño de sofware and more Summaries Software Development Methodologies in PDF only on Docsity!

Breve descripción:

Las metodologías de desarrollo de software proponen un conjunto de procesos

y actividades que deben ser desarrolladas por el equipo de desarrollo de software

para realizar un trabajo organizado que sea fácil hacerle seguimiento y de esta forma

establecer planes de mejora en busca de una mejor calidad de los productos y servicios

que se desarrollan.

Mayo 2024

Metodologías de desarrollo de

software

  • Introducción Tabla de contenido
    1. Metodologías de desarrollo de software
    1. Marcos de trabajos tradicionales
    • 2.1. Cascada....................................................................................................
    • 2.2. Proceso Racional Unificado - RUP
    1. Marcos de trabajo ágiles...............................................................................
    • 3.1. Programación Extrema - XP
    • 3.2. Desarrollo rápido de aplicaciones - RAD
    • 3.3. Scrum
    1. Planeación de proyectos de software
  • Síntesis
  • Material complementario....................................................................................
  • Glosario
  • Referencias bibliográficas
  • Créditos
  • Planeación de proyectos de software

Desde la asignación de recursos hasta la gestión de riesgos y la definición

de cronogramas, la planificación es vital para el éxito y la sostenibilidad de

cualquier proyecto de software.

Con estas bases establecidas, se adentrará en el corazón de cada metodología y

marco de trabajo, buscando no solo entender su propósito y prácticas, sino también

cómo y cuándo implementarlas de manera efectiva en los proyectos de software.

1. Metodologías de desarrollo de software

Es importante aclarar que existe un gran número de definiciones sobre lo que es

una metodología, para evitar cualquier confusión en este material se utilizará la

definición dada por Maida y Pacienzia (2015), quienes indican que:

Una metodología hace referencia a un conjunto de procedimientos genéricos y

lógicos que se usan para alcanzar un objetivo particular utilizando un conjunto de

habilidades y conocimientos.

Las metodologías de desarrollo de software siempre parten de un componente

teórico y, cuando son usadas por los equipos de trabajo, conllevan a la utilización de un

conjunto de técnicas y métodos que al final determinarán las tareas generales y

específicas que se deberían realizar para alcanzar un objetivo.

Existen diferentes tipos de metodologías de desarrollo de software que fueron

ideadas pensando en problemas particulares presentados en la industria en contextos

específicos, por lo cual es importante conocer sus diferentes características y

contrastarlas con las necesidades particulares a las que se enfrenta a la hora de

desarrollar un producto o servicio. Es decir, cada una de estas tiene ventajas y enfoques

que pueden ser reutilizados en diferentes momentos.

Existen dos grandes clasificaciones de metodologías de desarrollo de software

que se agrupan generalmente como marcos de trabajo tradicionales o marcos de

trabajo ágiles que se presentan a continuación.

ha sido finalizada, generalmente mediante un formalismo que puede ser un

documento.

Según Sommerville (2005), el modelo en cascada se compone de cinco etapas

principales que se asocian con actividades fundamentales en el proceso de desarrollo

de software, las cuales son:

  • Requerimientos

Se lleva a cabo la recopilación y análisis detallado de las necesidades del

sistema o software. Se definen los objetivos, funciones, interfaces de

usuario y demás necesidades del cliente o mercado.

  • Diseño

Se establece cómo será construido el sistema para cumplir con los

requerimientos identificados. Incluye la arquitectura del sistema, la

selección de patrones de diseño, y la planificación de interfaces y

experiencias de usuario.

  • Implementación

En esta fase, se escribe el código fuente del software, basado en el diseño

previamente establecido. Cada componente es desarrollado y probado

individualmente antes de ser integrado en el sistema mayor.

  • Verificación

Esta etapa implica probar el sistema completo para validar que cumple con

los requerimientos especificados. Incluye pruebas unitarias, de integración,

de sistema y de aceptación del usuario.

  • Mantenimiento

Una vez que el software está en operación, esta fase aborda la corrección

de errores, la actualización de funciones y la optimización del rendimiento.

También se pueden incorporar nuevos requerimientos según sea

necesario.

Continuando con el tema, se presenta un comparativo que resume las principales

ventajas y desventajas de este modelo.

Ventaja

  • La definición clara de fases permite el desarrollo de una estructura sencilla

que es ideal para proyectos sencillos y cortos.

  • Siguiendo este modelo se genera una muy buena documentación del

proceso y es posible definir hitos claros.

  • Es más fácil realizar la estimación de costos al inicio del proyecto.
  • Es fácil elaborar cronogramas de trabajo con base al desarrollo de las

actividades de cada fase.

Desventaja

  • No se acopla muy bien a proyectos complejos con múltiples equipos

trabajando en paralelo, ya que las fases normalmente se traslapan y es

difícil diferenciarlas.

  • Es difícil introducir cambios en el transcurso del proyecto.
  • Los usuarios finales y clientes normalmente son integrados al final del

proceso, lo que impide tener realimentación y ajustes en etapas

tempranas.

RUP divide el proceso de desarrollo en cuatro grandes fases. Dentro de ellas, se

realizan iteraciones donde se desglosan, con mayor o menor intensidad, un conjunto de

disciplinas según la fase en la que se está.

A continuación, se presentarán las fases y disciplinas propuestas por RUP.

Figura 1. Fases y disciplinas de RUP

Nota. Tomada de Man, Hafriz, Nural, Maizura, Noor, Wan, Bakar y Man (2008).

A continuación, se describen las fases y su impacto en el proceso, por lo que se le

invita a revisar el siguiente recurso de aprendizaje.

  • Inicio

La primera gran fase definida por RUP es la de inicio, en la cual se abordan

actividades principalmente enfocadas en la comprensión del problema y el

tipo de tecnología a utilizar, por lo que hay una gran carga en actividades

relacionadas con la disciplina de modelado del negocio y especificación de

requisitos.

  • Elaboración

La segunda fase es la elaboración, donde se centra la mayor parte del

esfuerzo en la definición general de la arquitectura del sistema y el

refinamiento de requisitos y modelado del negocio. RUP generalmente se

apoya en el lenguaje de modelado UML para el modelado del negocio y

descripción de la arquitectura.

  • Construcción

La tercera fase corresponde a la construcción, donde se centran en las

actividades relacionadas con la construcción del producto. Normalmente,

esta fase está constituida por varias iteraciones, donde en cada una de

ellas se desarrolla un subconjunto de requerimientos que normalmente

están especificados como casos de uso.

  • Transición

La cuarta fase se desarrolla principalmente las disciplinas de pruebas y

despliegue, es decir, las actividades encaminadas a garantizar que el

producto esté listo para entrega a sus usuarios.

Es importante señalar que, dentro de cada una de las fases del RUP, se

desarrollan varias disciplinas, y el esfuerzo y tiempo invertidos en cada una tendrán un

enfoque diferente dependiendo de la fase del proyecto en la que se esté.

Otro aspecto relevante de esta metodología es que se sustenta en un conjunto de

artefactos que se elaboran con el objetivo de especificar el proceso de análisis y diseño

Figura 2. Fases en el desarrollo de proyectos

A continuación, se describen cada una de las disciplinas mencionadas y cómo

estás aportan en el proceso.

RUP propone una categorización de roles encargados de la realización de

actividades dentro de cada una de las disciplinas que son:

  • Analistas
    • Analistas de procesos de negocio.
    • Diseñadores del negocio.
    • Analistas del sistema.
    • Especificador de requisitos.
    • Diseñadores de interfaces de usuario o similares.
  • Desarrolladores
    • Arquitectos de software.
    • Diseñador de bases de datos.
    • Desarrollador backend y frontend.
    • Cualquier otro rol relacionado con procesos de codificación o

integración de código.

  • Testers
    • Diseñadores de pruebas.
    • Implementadores de pruebas.
  • Encargados y otros actores

Incluye a todos los roles mencionados anteriormente en las categorías de

Analistas, Desarrolladores y Testers, reflejando su importancia en la

gestión y operación de proyectos.

  • Artistas gráficos.
  • Administradores de sistemas.
  • Especialista en herramientas.
  • Stakeholders.
  • Cualquier otro rol no especificado anteriormente.

Existen también metodologías catalogadas dentro de los marcos de trabajo

tradicionales. Sin embargo, el propósito de este texto es resaltar las características

principales de las más destacadas en la industria del software. Para aquellos

interesados en profundizar sobre las ventajas y desventajas de estas y otras

metodologías, se recomienda revisar la sección de materiales complementarios.

b) Son bienvenidos los requisitos cambiantes, incluso si llegan tarde al

desarrollo. Los procesos ágiles se doblegan al cambio como ventaja

competitiva para el cliente.

c) Entregar con frecuencia software que funcione, en periodos de un par de

semanas hasta un par de meses, con preferencia en los períodos breves.

d) Las personas del negocio y los desarrolladores deben trabajar juntos de

forma cotidiana a través del proyecto.

e) Construcción de proyectos en torno a individuos motivados, dándoles la

oportunidad y el respaldo que necesitan y procurándoles confianza para

que realicen la tarea.

f) La forma más eficiente y efectiva de comunicar información de ida y vuelta

dentro de un equipo de desarrollo es mediante la conversación cara a cara.

g) El software que funciona es la principal medida del progreso.

h) Los procesos ágiles promueven el desarrollo sostenido. Los patrocinadores,

desarrolladores y usuarios deben mantener un ritmo constante de forma

indefinida.

i) La atención continua a la excelencia técnica enaltece la agilidad.

j) La simplicidad como arte de maximizar la cantidad de trabajo que se hace

es esencial.

k) Las mejores arquitecturas, requisitos y diseños emergen de equipos que se

autoorganizan.

l) En intervalos regulares, el equipo reflexiona sobre la forma de ser más

efectivo y ajusta su conducta en consecuencia.

3.1. Programación Extrema - XP

XP, abreviatura de Extreme Programming, es un marco de desarrollo de

software ágil diseñado para producir software de alta calidad en entornos con

requisitos muy cambiantes. Se enfoca en contextos que presentan riesgos asociados a

plazos fijos, la implementación de tecnologías emergentes y equipos de trabajo

reducidos localizados en el mismo lugar.

En XP se definen cinco valores según Beck y Andrés (2004):

  • Comunicación

El desarrollo de software depende del trabajo en equipo, haciendo crucial

la transferencia de conocimientos y el uso de medios de comunicación

adecuados. Se sugiere la discusión cara a cara con herramientas que

faciliten dibujar o escribir, como los tableros.

  • Simplicidad

Se refiere a realizar solo lo estrictamente necesario, evitando desperdicios.

Las tareas deben ser ejecutadas de manera que resulten fáciles de

entender para otros, concentrándose únicamente en los requisitos

conocidos.

  • Retroalimentación

Permite identificar áreas de mejora y la revisión constante de las prácticas

actuales, de modo que se puedan establecer procesos de mejora continua.

  • Coraje

Implica enfrentarse a situaciones desafiantes para el equipo, como

problemas organizacionales o intentar implementar funcionalidades de

  • Diseño simple

Implica desarrollar un código que solamente haga lo que es necesario en la

forma más sencilla posible, evitando duplicaciones y reduciendo el número

de métodos y clases.

  • Pruebas

Sugiere el empleo de técnicas de prueba constantes antes de proceder con

la escritura del código, como por ejemplo el TDD (Desarrollo Dirigido por

Pruebas).

  • Refactorización

Se centra en la eliminación de elementos innecesarios, desacoplando

componentes y reduciendo redundancias para mantener el código limpio,

entendible y fácil de modificar.

Los roles fundamentales establecidos por este marco de trabajo ágil son los

siguientes: cliente, programador, coach, tester y manager.

  • Los clientes son los encargados del establecimiento de las prioridades del

proyecto y las necesidades puntuales.

  • Los programadores se encargan de transformar esos requerimientos en

bloques de código funcional, son el centro del marco de Extreme

Programming.

  • Los testers se encargan de la aplicación de pruebas para garantizar la

calidad de los productos y servicios desarrollados.

  • El coach es una figura encargada de brindar asesoría a los miembros del

equipo y son los que definen el rumbo del proyecto.

  • El manager se encarga de la coordinación de actividades, del

aseguramiento de los recursos requeridos para el proyecto y quien tiene la

responsabilidad de la comunicación externa.

3.2. Desarrollo rápido de aplicaciones - RAD

RAD (Desarrollo Rápido de Aplicaciones) es una metodología ágil de desarrollo de

software que se enfoca en la rápida creación de aplicaciones a través de iteraciones

frecuentes y retroalimentación constante. Fue propuesta por James Martin en 1991.

Algunas características fundamentales de RAD son:

  • Mayor flexibilidad y adaptabilidad a cualquier ajuste que deba realizarse

durante el proceso de desarrollo.

  • Iteraciones rápidas que reducen el tiempo de desarrollo y mantienen un

ritmo de entrega acelerado.

  • Se fomenta la reutilización de código.
  • Mejor gestión del riesgo, ya que las partes interesadas discuten y abordan

cualquier vulnerabilidad mientras se construyen los productos.

A continuación, se describen las fases propuestas en RAD.