Está en la página 1de 9

TALLER 4.

MODELOS DE CICLO DE VIDA DE SOFTWARE

José Luis Suarez Mancilla -1151464


Brayan Fabian Godoy Ruiz - 1151539
William Yesid Moreno Hernández -1151531

Docente
ING. JUDITH DEL PILAR RODRIGUEZ TENJO

UNIVERSIDAD FRANCISCO DE PAULA SANTANDER


INGENIERÍA DE SISTEMAS - FACULTAD DE INGENIERÍA
CÚCUTA - COLOMBIA
2019
Ejercicio 1. Describa brevemente qué significan los siguientes términos:

a) Metodología de desarrollo de software.

Es un marco de trabajo usado para estructurar, planificar y controlar el proceso de


desarrollo en sistemas de información

b) Modelo de Ciclo de Vida para el desarrollo de software.

Es una estructura aplicada al desarrollo de un producto de software. Hay varios


modelos a seguir para el establecimiento de un proceso para el desarrollo de
software,

c) Etapa dentro de un ciclo de vida.

Es un paso específico que se llevan dentro de la estructura del proceso de desarrollo


de software y difiere entre los distintos ciclos

d) Rol que puede cumplir una persona en el desarrollo de software.

Jefe de proyecto: encargado de dirigir y salvaguardar el cumplimento deol proyecto


en los plazos de tiempos estimados

Analistas: Son quienes se encargan de analizar los requerimientos del cliente y


realizan el trabajo de campo

Arquitectos: Son los encargados de elegir la mejor tecnología que se adecue para
resolver el problema y responsables del despliegue del mismo

Diseñador: Son los encargados de realizar la estructura del proceso de los datos

Desarrollador backend: Son los encargados de programar el dominio de la


aplicación o también conocido como negocio.

Desarrollador front end: Son los responsables de crear las vistas del aplicativo para
todos los dispositivos que funcionen

Tester: Son quienes prueban el aplicativo para descubrir sus errores


Usuarios: Son quienes finalmente usan el programa desarrollado entre elos
administradores y clientes

e) Modelo/diagrama de las características de un sistema de software y sus partes


componentes.

Representa cómo un sistema de software es dividido en componentes y muestra


las dependencias entre estos componentes. Los componentes físicos
incluyen archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables,
o paquetes. Los diagramas de Componentes prevalecen en el campo de la arquitectura
de software pero pueden ser usados para modelar y documentar cualquier arquitectura
de sistema.

Ejercicio 2. Brevemente explique en qué situaciones es imprescindible seguir una


metodología, para el desarrollo de software, y en cuáles situaciones no lo sería tanto.

Por lo general siempre para dar soluciones complejas se debe primero aplicar las etapas de
una metodología con el fin de hacer software de calidad, reutilizable, expandible y
eficiente, mientras que si es algo muy pequeño no se hace necesario el uso de estas

Ejercicio 3. Según las metodologías existentes para el desarrollo de software,


identifique las categorías más comunes y sus características principales.

Entre las metodologías de software más comunes, y utilizadas se encuentran:

Metodologías de software tradicionales.

Metodología de prototipo:

La 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.

Espiral:

Las demandas de tiempo reducido al mercado hacen a este modelo uno de los más
utilizados a la hora de desarrollar software, 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

Metodologías o modelos “agiles”:

 Metodología Scrum
Scrum es una metodología ágil y flexible para gestionar el desarrollo de software, cuyo
principal objetivo es maximizar el retorno de la inversión para su empresa (ROI). Se
basa en construir primero la funcionalidad de mayor valor para el cliente y en los
principios de inspección continua, adaptación, auto-gestión e innovación.

 Metodología de programación extrema


Como metodología ágil de ingeniería de software, la metodología de programación
extrema se conoce actualmente como metodología de XP (eXtreme Programming). Esta
metodología, se utiliza principalmente para evitar el desarrollo de funciones que
actualmente no se necesitan, pero sobre todo para para atender proyectos complicados.
Sin embargo, sus métodos peculiares pueden tomar más tiempo, así como recursos
humanos en comparación con otros enfoques.
Ejercicio 4. Enumere los modelos de ciclo de vida más comunes, para el desarrollo de
software, junto con sus características principales. Para cada uno de ellos identifique
las etapas más comunes que comprenden los diferentes modelos de ciclo de vida
existentes para el desarrollo de software.

Entre los modelos de ciclo de vida más comunes, para el desarrollo de software se
encuentran:

Modelo de Cascada

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.

Este modelo 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.

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.
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.

Desarrollo Incremental

El desarrollo incremental se basa en la idea de diseñar una implementación inicial, exponer


ésta al comentario del usuario, y luego desarrollarla en sus diversas versiones hasta
producir un sistema adecuado. El desarrollo de software incremental, que es una parte
fundamental de los enfoques ágiles, es mejor que un enfoque en cascada para la mayoría de
los sistemas empresariales, de comercio electrónico y personales. El desarrollo incremental
refleja la forma en que se resuelven problemas. Rara vez se trabaja por adelantado una
solución completa del problema, más bien se avanza en una serie de pasos hacia una
solución y se retrocede cuando se detecta que se cometieron errores.
Ejercicio 5. Enumere los roles más comunes que puede cumplir una persona en el
desarrollo de software. Describa brevemente las responsabilidades principales de cada
uno.

 Administrador de proyecto: Controla y administra los recursos del proyecto con el


fin de cumplir el plan y objetivo definido.
 Analista: debe manejar un acuerdo sobre la forma de hacer las especificaciones de
manera que el resto del equipo encuentre sentido en su labor.
 Diseñador: Genera el diseño arquitectónico y diseño detallado del sistema,
basándose en los requisitos.
 Programador: Encargado de traducir en código las especificaciones del sistema.
 Tester: Encargado de la generación de planes de pruebas.
 Asegurador de calidad: Encargado de velar por el producto de software.
 Documentador: Construir el manual de usuario del sistema, MUS, que completa los
aspectos de uso.
 Cliente: Aquella persona responsable de llevar a cabo el buen desempeño del
proyecto, por parte de la empresa que contrata el desarrollo, también llamada
mandante.

Ejercicio 6. Enumere al menos seis factores que influyen a la hora de elegir un


modelo de ciclo de vida para el desarrollo de un sistema.

Los principales factores que influyen a la hora de decidir en el modelo de ciclo de vida, son
los siguientes:

1. Disponibilidad de recursos (Económico, humano, tiempo, herramientas...)

2. Complejidad del Proyecto (Nivel de profundidad y detalle q se le da al proyecto)


3. Entendimientos de requerimientos (La comprensión de lo q se requiere para satisfacer la
necesidad q genera proyecto)

4. Conocimiento del dominio del problema (En qué proporción se tiene conocimiento y
manejo del tema central del problema)

5. Manejo de la perspectiva de riesgos (Contemplar la existencia de posibles anomalías que


afecte el desarrollo del proyecto)

6. Magnitud del proyecto (Tamaño del proyecto)

Ejercicio 7. Como ingeniero de software, se le pide que considere el desarrollo de un


sistema cuyo dominio de aplicación es conocido, sus objetivos y requerimientos
funcionales son estables y simples de comprender desde un principio, la tecnología a
utilizar ya está predeterminada y es bien conocida por el equipo de desarrollo.

¿Qué tipo de modelo de ciclo de vida elegiría para el desarrollo de dicho sistema?

Modelo Desarrollo Incremental

Por qué se tiene claridad desde un principio el planteamiento del proyecto, lo cual determina
el tamaño del mismo, se añaden funcionalidades en el proceso de desarrollo del proyecto y
se puede ir perfeccionando a medida en q se encuentran errores.

Ejercicio 8. Una vez elegido el modelo de ciclo de vida, para el desarrollo del sistema
planteado en el ejercicio anterior, ¿Qué etapas escogería para dicho modelo de ciclo de
vida, teniendo en cuenta que el desarrollo lo realizan una o pocas personas?

Como ya conocemos los requerimientos no es necesaria la etapa de captura de requerimientos


por lo cual lo podemos pasar por alto. Para continuar las etapas de planificación, control de
producción, implementación y puesta en marcha son obligatorias ya que sin una buena
organización y puesta en marcha del proyecto, fracasaría.

También podría gustarte