Está en la página 1de 15

Práctica no.

1
Metodologías de desarrollo de software

Nombre del alumno: Herrera Galindo Brenda Berenice.

Matrícula: 19090013.

Grupo: 3501.

Turno: Matutino.

Calificación: _____________
Unidad 1 Práctica No. 1 Ambiente de aprendizaje: Laboratorio de
Sistemas Computacionales

Nombre de la práctica: Metodologías de desarrollo de software.


Duración: 4 Horas
Resultado de aprendizaje propuesto (Rap) asociado Investigar las metodologías de desarrollo más comunes que se
con esta práctica aplican en las empresas que se dedican a la producción de
software y elegir una para el desarrollo de un proyecto de
software, justificando su elección.

Conocimientos Previos:
 Fundamentos de Ingeniería del software

MATERIALES Y RECURSOS DIDÁCTICOS


 Internet  Software de aplicación (Word, Power Point)
 Video Proyector y Control para encendido y  Pizarrón y plumones para pizarrón.
apagado de proyector

Actividades sustantivas de aprendizaje:


 Investigar diferentes metodologías clásicas o pesadas, para el desarrollo de proyectos. Identificar las
características principales de cada metodología.

Actividades sustantivas de enseñanza:


 Explica la importancia de aplicar una metodología al desarrollar proyectos de software.
 Supervisa el desarrollo de la práctica

Evidencias que recopilar:


 Práctica resuelta en el formato.
 Trabajo de investigación.
 Cuadro comparativo.
 Esquemas

Actividad de evaluación 1. Valor 70 puntos.

Desarrollo de la práctica

1) Realizar un trabajo de investigación, sobre el tema Metodologías de desarrollo


clásicas.
2) Escribe cuáles son las fases de cada una de las metodologías investigadas.

a. Cascada
El desarrollo en cascada (en inglés, waterfall model) es un procedimiento lineal
que se caracteriza por dividir los procesos de desarrollo en sucesivas fases de
proyecto. Al contrario que en los modelos iterativos, cada una de estas fases
se ejecuta tan solo una vez. Los resultados de cada una de las fases sirven
como hipótesis de partida para la siguiente. El waterfall model se utiliza,
especialmente, en el desarrollo de software.

Royce propone un modelo compuesto por siete fases que se ha de ejecutar en


diversas vueltas (iteraciones):

 Requisitos de sistema

 Requisitos de software

 Análisis

 Diseño

 Implementación

 Prueba

 Servicio

El procedimiento popularmente conocido como waterfall model se basa en las


fases definidas por Royce, pero solo prevé una iteración.

Fig. 1 Representación del método clásico de cascada. Tomado


de: https://es.wikipedia.org/wiki/Desarrollo_en_cascada.
b. XP

La metodología XP define cuatro variables para cualquier proyecto de software:


costo, tiempo, calidad y alcance. El método especifica que, de estas cuatro
variables, tres de ellas podrán ser fijadas arbitrariamente por actores externos
al grupo de desarrolladores (clientes y jefes de proyecto), y el valor de la
restante deberá será establecida por el equipo de desarrollo, quien establecerá
su valor en función de las otras tres. Al igual que otras metodologías de gestión
de proyectos, tanto Ágiles como tradicionales, el ciclo XP incluye:

 Entender lo que el cliente necesita > Fase de Exploración

 Estimar el esfuerzo > Fase de Planificación

 Crear la solución > Fase de Iteraciones


 Entregar el producto final al cliente > Fase de puesta en producción

Lo que caracteriza a XP, al igual que al resto de métodos Agiles es un ciclo de


vida dinámico. Mediante ciclos de desarrollo cortos (llamados iteraciones), al
fin de los cuales se generan unos entregables funcionales.

En cada iteración se realiza un ciclo completo de análisis, diseño, desarrollo y


pruebas, pero utilizando un conjunto de reglas y prácticas específicas de XP.
Un proyecto con XP, implica de entre a 10 a 15 iteraciones habitualmente.
Fig. 2 Representación del método XP. Tomado
de: https://www.facebook.com/zoluxiones/.

c. Scrum

Scrum es un marco que permite el trabajo colaborativo entre equipos. Al igual


que un equipo de rugby (de donde proviene su nombre) cuando entrena para
un gran partido, scrum anima a los equipos a aprender a través de las
experiencias, a autoorganizarse mientras aborda un problema y a reflexionar
sobre sus victorias y derrotas para mejorar continuamente.

Aunque son los equipos de desarrollo de software los que utilizan con mayor
frecuencia este tipo de scrum, sus principios y lecciones se pueden aplicar a
todo tipo de trabajo en equipo. Esta es una de las razones por las que es tan
popular. Aunque se considera a menudo un marco de gestión de proyectos
ágil, scrum incluye un conjunto de reuniones, herramientas y funciones que, de
forma coordinada, ayudan a los equipos a estructurar y gestionar su trabajo.

EL PROCESO

En Scrum un proyecto se ejecuta en ciclos temporales cortos y de duración fija


(iteraciones que normalmente son de 2 semanas, aunque en algunos equipos
son de 3 y hasta 4 semanas, límite máximo de feedback de producto real y
reflexión). Cada iteración tiene que proporcionar un resultado completo, un
incremento de producto final que sea susceptible de ser entregado con el
mínimo esfuerzo al cliente cuando lo solicite.

El proceso parte de la lista de objetivos/requisitos priorizada del producto, que


actúa como plan del proyecto. En esta lista el cliente (Product Owner) prioriza
los objetivos balanceando el valor que le aportan respecto a su coste (que el
equipo estima considerando la Definición de Hecho) y quedan repartidos en
iteraciones y entregas.

Las actividades que se llevan a cabo en Scrum son las siguientes (los tiempos
indicados son para iteraciones de 2 semanas):
Planificación de la iteración

El primer día de la iteración se realiza la reunión de planificación de la


iteración. Tiene dos partes:

 Selección de requisitos (2 horas). El cliente presenta al equipo la lista


de requisitos priorizada del producto o proyecto. El equipo pregunta al
cliente las dudas que surgen y selecciona los requisitos más prioritarios
que prevé que podrá completar en la iteración, de manera que puedan
ser entregados si el cliente lo solicita.

 Planificación de la iteración (2 horas). El equipo elabora la lista de


tareas de la iteración necesarias para desarrollar los requisitos
seleccionados. La estimación de esfuerzo se hace de manera conjunta
y los miembros del equipo se autoasignan las tareas, se autoorganizan
para trabajar incluso en parejas (o grupos mayores) con el fin de
compartir conocimiento (creando un equipo más resiliente) o para
resolver juntos objetivos especialmente complejos.

Ejecución de la iteración

Cada día el equipo realiza una reunión de sincronización (15 minutos),


normalmente delante de un tablero físico o pizarra (Scrum Taskboard). El
equipo inspecciona el trabajo que el resto está realizando (dependencias entre
tareas, progreso hacia el objetivo de la iteración, obstáculos que pueden
impedir este objetivo) para poder hacer las adaptaciones necesarias que
permitan cumplir con la previsión de objetivos a mostrar al final de la iteración.
En la reunión cada miembro del equipo responde a tres preguntas:

1. ¿Qué he hecho desde la última reunión de sincronización para ayudar


al equipo a cumplir su objetivo?

2. ¿Qué voy a hacer a partir de este momento para ayudar al equipo a


cumplir su objetivo?
3. ¿Qué impedimentos tengo o voy a tener que nos impidan conseguir
nuestro objetivo?

Durante la iteración el Facilitador (Scrum Master) se encarga de que el equipo


pueda mantener el foco para cumplir con sus objetivos.

Elimina los obstáculos que el equipo no puede resolver por sí mismo.

Protege al equipo de interrupciones externas que puedan afectar el objetivo de


la iteración o su productividad.

Durante la iteración, el cliente junto con el equipo refina la lista de requisitos


(para prepararlos para las siguientes iteraciones) y, si es necesario, cambian o
replanifican los objetivos del proyecto (10%-15% del tiempo de la iteración) con
el objetivo de maximizar la utilidad de lo que se desarrolla y el retorno de
inversión.

Inspección y adaptación

El último día de la iteración se realiza la reunión de revisión de la iteración.


Tiene dos partes:

 Revisión (demostración) (1,5 horas). El equipo presenta al cliente los


requisitos completados en la iteración, en forma de incremento de
producto preparado para ser entregado con el mínimo esfuerzo. En
función de los resultados mostrados y de los cambios que haya habido
en el contexto del proyecto, el cliente realiza las adaptaciones
necesarias de manera objetiva, ya desde la primera iteración,
replanificando el proyecto.
 Retrospectiva (1,5 horas). El equipo analiza cómo ha sido su manera de
trabajar y cuáles son los problemas que podrían impedirle progresar
adecuadamente, mejorando de manera continua su productividad. El
Facilitador se encargará de eliminar o escalar los obstáculos
identificados que estén más allá del ámbito de acción del equipo.
Fig. 3 Representación del método scrum.
Tomado de:
https://proyectosagiles.org/que-es-scrum/.

d. Espiral

El modelo en espiral es una combinación entre el modelo lineal o de cascada y


el modelo iterativo o basado en prototipos que habíamos mencionado
anteriormente.

El modelo en espiral consiste en seguir ciclos crecientes de cuatro fases cada


uno, que se van realizando siguiendo una forma de espiral. En cada ciclo se
pasa por dichas fases bien definidas, como en el modelo de cascada, pero con
capacidad de evolucionar su complejidad con cada ciclo. Por tanto, se trata de
un modelo evolutivo que, conforme avancen los ciclos, aumentará el tiempo de
ejecución, así como el volumen de código fuente desarrollado y la complejidad
de la gestión de riesgos y de la planificación.

Fig. 4 Representación del método espiral.


Tomado de: https://aspgems.com/metodologia-
de-desarrollo-de-software-iii-modelo-en-
espiral/.

Las fases por las que pasa cada ciclo de la espiral

 Planificación. Se determinan los objetivos y el alcance del ciclo que comienza,


tras un necesario ejercicio de investigación. Con cada iteración, se irá
incrementando el tamaño de software entregado y la funcionalidad cubierta.
 Análisis de Riesgo. Se evalúa todo aquello que pueda afectar al proyecto
según el estado en que se encuentre y su grado de avance. Para ello, se
diseñarán los prototipos que deberán ser validados en el ciclo.

 Implementación. Se desarrolla y valida el software según el alcance acordado,


el cual está íntimamente relacionado y condicionado con el análisis de riesgos
anterior.

 Evaluación. Antes de proceder a realizar otra vuelta en la espiral, se debe


prestar atención a lo que sucedió en la vuelta anterior. Se debe analizar en
detalle si los riesgos detectados anteriormente ya tuvieron solución.
Básicamente, esta fase servirá para determinar el avance del proyecto y dar
pistas de hacia dónde debe enfocarse la próxima iteración.

e. Prototipos

El pertenece a los modelos de desarrollo evolutivo. El prototipo debe ser construido en


poco tiempo, usando los programas adecuados y no se debe utilizar muchos recursos.

Fig. 5 Representación de los


métodos prototipos. Tomado
de:
https://www.ecured.cu/Modelo

El diseño rápido se centra en una


representación de aquellos aspectos del software que serán visibles para el
cliente o el usuario final. Este diseño conduce a la construcción de un prototipo,
El prototipo se prueba y modifica cuando es necesario, y los resultados se
anotan en la revisión de los bosquejos y los dibujos en funcionamiento. Se
clasifican en:
 Modelo de rendimiento:
 Modelo a escala no funcional
 Modelo a escala completa
 Modelo con características esenciales.

Los tipos de prototipo son:

 Desechables: sirve para eliminar dudas sobre lo que quiere el cliente

 Evolucionario: modelo parcialmente construido que pasa de ser


prototipo a ser el software.

ETAPAS

 Recolección y refinamiento de requisitos

 Modelado, diseño rápido

 Construcción del Prototipo

 Desarrollo, evaluación del prototipo por el cliente

 Refinamiento del prototipo


 Producto de Ingeniería

f. Desarrollo basado en componentes

El desarrollo basado en componentes consiste en construir aplicaciones


mediante ensamblado de módulos software reutilizables, que han sido
diseñados previamente independientemente de las aplicaciones en las que van
a ser utilizados. Este tipo de desarrollo tiene las siguientes implicaciones:

 Industrialización del desarrollo de software: Muchas empresas utilizan


componentes desarrollados por otras empresas e incluso algunas
venden sus propios componentes.
 Cambio en el papel de los diseñadores de aplicaciones: Los
programadores han pasado de programar aplicaciones desde cero a
ensamblar módulos.
 Finalmente decir que este tipo de desarrollo está favoreciendo la
construcción más rápida de software además de que permite gestionar
más fácilmente la creciente complejidad del software.

ETAPAS DEL MODELO BASADO EN COMPONENTES

Se realiza el estudio de procesos de desarrollo basado en componentes.

1. Análisis y comparación de Procesos especial de los que utilizan


técnicas de Desarrollo de Software Basado en Componentes.
modelado. Con extensiones específicas para componentes, a los fines
de definir adaptaciones y/o extensiones apropiadas de los mismos
Durante esta etapa se realiza el estudio y comparación de diferentes
estilos y patrones arquitecturales, analizando ventajas y desventajas.
2. Análisis arquitectural su utilización para el desarrollo de este tipo de
sistemas, así como de arquitecturas existentes y estándares más
utilizados en la actualidad. Esta etapa comprende la identificación de
interfaces del sistema, de interfaces del Negocio, la identificación de
3. Identificación de componentes y la descripción inicial de las
especificaciones de componentes, así como la especificación de la
arquitectura inicial de componentes. Se trabajará en la especificación
de interfaces y de componentes, definiendo
4. Especificación de los principales componentes Contratos de uso y
Contratos de realización. Se realizan en esta etapa, los Modelos de
Información de Interfaces.
Fig. 6 Representación de desarrollo basado en componentes. Tomado de:
http://sofware1nathalygrijalva.blogspot.com/2012/10/modelo-de-
desarrolo-basado-en.html.

3) Elabora un cuadro comparativo de las metodologías ya mencionadas. El cuadro comparativo debe contener, el nombre
de la metodología, definición de la metodología, principios, características, ventajas y desventajas.
Nombre Definición Principios Características Ventajas Desventajas

Cascada Es un procedimiento lineal que se caracteriza por o El proyecto o Es el más utilizado. o Se tiene todo bien o Se tarda mucho tiempo en pasar
dividir los procesos de desarrollo en sucesivas está dividido o Es una visión del proceso de organizado y no se por todo el ciclo.
fases de proyecto. Al contrario que en los en fases desarrollo de software como mezclan las fases. o Es difícil incorporar nuevas cosas si
modelos iterativos, cada una de estas fases se secuenciales. una sucesión de etapas que o La planificación es sencilla. se quiere actualizar.
ejecuta tan solo una vez. o Se hace produce productos
hincapié en la intermedios.
planificación, o Si se cambia el orden de las
etc. fases, el producto final será
de inferior calidad.

XP Define cuatro variables para cualquier proyecto o Realimentació o Desarrollo iterativo e o Programación organizada. o Altas comisiones en caso de fallar.
de software: costo, tiempo, calidad y alcance. El n rápida. incremental o Menor taza de errores. o Imposible prever todo antes de
método especifica que, de estas cuatro variables, o Asumir o Pruebas unitarias. o Satisfacción del programar.
tres de ellas podrán ser fijadas arbitrariamente simplicidad. o Programación en programador. o Demasiado costoso.
por actores externos al grupo de desarrolladores. o Cambio parejas
incremental.

Scrum Es un marco de trabajo para desarrollo ágil de o Control o El desarrollo o Gestión de las expectativas o Funciona con equipos reducidos.
software que se ha expandido a otras industrias. empírico. incremental de los del usuario. o Exige una alta cualificación.
Es un proceso en el que se aplican de manera o Auto requisitos del proyecto o Resultados anticipados.
regular un conjunto de buenas prácticas para organización. en bloques temporales o Flexibilidad.
trabajar colaborativamente, en equipo y obtener o Colaboración. cortos y fijos.
el mejor resultado posible de proyectos. o Se da prioridad a lo
que tiene más valor
para el cliente.

Espiral Las actividades de este modelo se conforman en o Decidir que o En cada giro se o El modelo en espiral o Tiene una elevada complejidad.
una espiral, en la que cada bucle problema se construye un nuevo permite a quien desarrolla o Es un modelo costoso.
o iteración representa un conjunto de quiere modelo del sistema aplicar el enfoque de
actividades. resolver. completo. construcción de prototipos
o Examinar o Es el mejor modelo en cualquier etapa de
alternativas. para el desarrollo de evolución del producto.
grandes sistemas.

Prototipos La metodología de prototipado está o Comprender el o Tiempo. o Modificación del sistema. o Administración difícil.
relacionada con la mejora continua y el  ciclo problema a o Coste. o Permite ver que es lo que o Adaptación.
de Deming que consiste en un proceso resolver. o Evolutivo requiere el cliente. o Surgen cambios.
iterativo enfocado en diseñar, implementar, o Definir un o Funcional.
medir y ajustar un plan. target
o Mapear el
recorrido

Desarrollo El desarrollo basado en componentes consiste o Simplifica las o Construye o Reutilización del software. o Industrialización de desarrollo del
en construir aplicaciones mediante ensamblado pruebas. aplicaciones. o Simplifica las pruebas. software.
basado en de módulos software reutilizables, que han sido o Simplifica el o Diseños de o Mayor calidad. o Cambio en el papel de los
diseñados previamente independientemente de mantenimiento aplicaciones muy diseñadores de aplicaciones.
componentes las aplicaciones en las que van a ser utilizados. del sistema. evolutivos.
o Mayor calidad.
4) ¿Qué metodología recomiendas utilizar, al desarrollar un proyecto de software y por qué?

Usaría la metodología de XP ya que me arada el entorno y pasos a seguir son sencillos y claros en caso
de tener un buen tiempo considerable usaría la metodología de espiral para desarrollar un sistema mas
amplio y de presentación oficial.

5) Dibuja un esquema de la metodología de desarrollo en cascada.

6) Dibuja un esquema de la metodología de desarrollo en espiral.

CONCLUSIONES

Puesto cada una de las metodologías indicas en esta presente practica se plasmó cada una de las
definiciones y sus pasos sabiendo cómo hay que obtener los distintos productos parciales y finales siendo en
caminado hacia el desarrollo de software, ahora bien dependiendo el sistema a realizar es la metodología que
uno como programador o estudiante decide utilizar como una de sus herramientas para la presentación de
este mismo. Los de mi agrado fueron tres metodologías (Cascada, Xp y espiral.) puesto por tiempos,
presupuesto, alcances, limitaciones sin olvidar la lógica que tenga para plasmar el sistema pensado a la
realidad para su buena funcionalidad en su futuro funcionamiento. Finalmente dependerá de la metodología
utilizada y/o elegida por nosotros para obtener los productos del proyecto, por esta razón es necesario,
conocer a fondo cada una de ellas y poder diferenciar entre una y otra, para de este modo saber elegir la
correcta en el momento de desarrollar un nuevo software, de otra manera el producto no será el mejor e
incluso puede ser inútil. La metodología de espiral es una de las mejores opciones ya que es como el
resumen de casi todos métodos correlacionados con ellos siendo el más organizado.
Actividad de evaluación 2. Valor 30 puntos. Conclusiones. (Media
cuartilla).

Parámetros de evaluación
Al terminar cada práctica, se evaluará tu desempeño mediante la siguiente rúbrica.

1. Lista de cotejo
2. Reporte de la práctica
3. Ejercicios en clase

Sistema de rúbricas
No. INDICADOR PONDERACIÓN
1 Investigación 10%
2 Trabajo en clase 40%
3 Lista de cotejo 10%
4 Reporte de la práctica 40%
Total ponderación 100%

Lista de cotejo
Parámetros Cumplió No cumplió
1 Entregaste el trabajo tiempo y forma
2 Cumpliste con el reglamento
3 Traes lista de cotejo
4 Cumpliste con la entrega de los ejercicios
5 Entregaste a tiempo la práctica
6 Cumplió en tiempo y forma

Guía de observación de la práctica No. 1

Instrucciones: Indique a través de una √ el desempeño que haya sido observado en el alumno en el desarrollo de esta práctica.

(1) Totalmente de acuerdo: Cuando el Evaluador se encuentra totalmente satisfecho respecto a la afirmación realizada
(2) De acuerdo: Cuando el Evaluador se encuentra satisfecho con respecto a la afirmación realizada
(3) Desacuerdo: Cuando el Evaluador se encuentra insatisfecho con respecto a la afirmación realizada
(4) Totalmente en desacuerdo: Cuando el Evaluador se encuentra totalmente insatisfecho con respecto a la afirmación realizada.
N° IDENTIFICACIÓN (1) (2) (3) (4)

1. Resolvió el cuestionario de la práctica de manera adecuada.        

2 Realizó el trabajo de investigación sobre metodologías clásicas de manera correcta.        

3 Dibujó los esquemas de las metodologías solicitadas.

4 Elaboró el cuadro comparativo de metodologías clásicas, con los elementos solicitados.

5 Realizó las medidas de seguridad correctamente.

6 Mostró un comportamiento adecuado y de orden dentro del laboratorio.        

7 Puso atención a la explicación del profesor.

8 El alumno limpió el área de trabajo.

9 El alumno acomodó los materiales usados.

10 Elaboró el reporte.
 Nombre del alumno (a): ____________________________________________________________________

Profesor (a): _________________________________________________ Fecha: _____________________

Hora de inicio: Hora de término: Evaluación:

Observaciones:

También podría gustarte