0% encontró este documento útil (0 votos)
6 vistas13 páginas

Homework Two

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 13

El Proceso de

Desarrollo de
Software
Participantes : Anderson Javier Balbuena

Matricula : 20210671

Materia : Administración de Proyectos de Software

Docente : Valentín Sánchez Estévez

Tema : El Proceso

1.
2.

10/03/2023
Tabla de Contenido

Tema : El Proceso................................................................................................. 2
Introducción: ..................................................................................................................... 4
Desarrollo: ........................................................................................................................ 5
2.1. El Proceso del Software......................................................................................... 5
2.2. Modelos de Proceso del Software: ........................................................................ 5
2.4. El Modelo de Construcción de Prototipos: ............................................................ 7
2.5. El Modelo DRA (Desarrollo Rápido de Aplicaciones) ......................................... 8
2.6. Modelos Evolutivos de Proceso de Software ........................................................ 8
2.7. Desarrollo Basado en Componentes ...................................................................... 9
Agregar ejemplos de los modelos de desarrollo de Software..................................... 10
Análisis Crítico: .......................................................................................................... 11
Opinión personal: ....................................................................................................... 12
Conclusión: ................................................................................................................. 13
Introducción:

En el vertiginoso mundo de la tecnología y la informática, el desarrollo de software se


ha convertido en un pilar fundamental para la transformación digital de empresas y
organizaciones. La eficacia y calidad de los productos de software se traducen en
ventajas competitivas significativas, lo que hace que el entendimiento profundo del
proceso del software y sus modelos sea esencial.

Este informe se sumerge en el capítulo 2 del libro "Ingeniería del Software: Un Enfoque
Práctico" de Roger S. Pressman se centra en los diferentes modelos de proceso de
software. En este informe de lectura, se discutirán los subtemas clave del capítulo, que
incluyen: El Proceso del Software, Modelos de Proceso del Software, El Modelo Lineal
Secuencial, El Modelo de Construcción de Prototipos, El Modelo DRA, Modelos
Evolutivos de Proceso de Software, Desarrollo Basado en Componentes y Tecnologías
del Proceso.
Desarrollo:

2.1. El Proceso del Software

El capítulo comienza introduciendo el concepto fundamental de proceso del software.


Un proceso de software es una serie de actividades ordenadas y planificadas que
conducen a la creación, modificación y mantenimiento de un sistema de software. Estas
actividades se llevan a cabo para lograr objetivos específicos, como satisfacer los
requisitos del cliente y producir un software de alta calidad. La gestión efectiva del
proceso del software es esencial para el éxito de un proyecto de desarrollo de software.

Es fundamental para garantizar que el software se desarrolle de manera efectiva y


eficiente, cumpliendo con los requisitos y las expectativas del cliente.

2.2. Modelos de Proceso del Software:

Se discute la importancia de los modelos de proceso del software para guiar y estructurar
el desarrollo de software. Estos modelos son enfoques sistemáticos para la gestión y
ejecución de actividades en un proyecto de desarrollo de software. Los modelos
proporcionan una estructura que ayuda a los equipos de desarrollo a comprender y
gestionar mejor el proceso.
Algunos de los puntos clave a tratar sobre los modelos de proceso del software son:

1. Importancia de los Modelos de Proceso: Los modelos de proceso son


fundamentales porque proporcionan una guía sobre cómo organizar y gestionar
un proyecto de desarrollo de software. Ayudan a los equipos a comprender las
actividades necesarias, los roles y las responsabilidades, así como la secuencia
en la que deben llevarse a cabo.
2. Diversidad de Modelos: Existen varios modelos de proceso del software, y
cada uno tiene sus propias características, ventajas y desventajas. Algunos de los
modelos más conocidos incluyen el modelo en cascada, el modelo ágil, el
modelo en espiral y el modelo de construcción de prototipos. Cada uno de estos
modelos está diseñado para abordar diferentes tipos de proyectos y requisitos.
3. Selección del Modelo Adecuado: La elección del modelo de proceso adecuado
depende de factores como la naturaleza del proyecto, los requisitos del cliente, el
tamaño del equipo y la disponibilidad de recursos. No hay un enfoque único que
funcione para todos los proyectos.
4. Hibridación de Modelos: En algunos casos, los equipos de desarrollo pueden
combinar elementos de diferentes modelos para adaptarse mejor a las
necesidades específicas de un proyecto. Esto se conoce como enfoque híbrido.
5. Énfasis en la Comunicación y la Colaboración: La comunicación y la
colaboración efectivas son esenciales en todos los modelos de proceso. Los
equipos deben estar alineados en sus objetivos y compartir información de
manera continua.
2.3. El Modelo Lineal Secuencial:

El Modelo Lineal Secuencial, también conocido como el modelo en cascada, se presenta


como un enfoque tradicional y secuencial para el desarrollo de software. Se caracteriza
por una secuencia lineal de fases, donde cada fase debe completarse antes de pasar a la
siguiente. Si bien este modelo tiene ventajas en la claridad y documentación, puede ser
inflexible y no siempre se adapta bien a proyectos cambiantes.

Aquí se detallan los aspectos más importantes de este modelo:

1. Estructura de Fases: El modelo en cascada divide el proceso de desarrollo de


software en una serie de fases secuenciales y lineales. Estas fases son:

a. Definición de Requisitos

b. Diseño

c. Implementación

d. Pruebas

e. Entrega

f. Mantenimiento

2. Rigidez Secuencial: Una de las características más destacadas del modelo en cascada
es su rigidez secuencial. Cada fase debe completarse antes de avanzar a la siguiente.
Esto significa que no se permite retroceder a una fase anterior una vez que ha
comenzado la siguiente. Esta rigidez puede ser problemática si surgen cambios o nuevos
requisitos durante el desarrollo.

3. Requisitos Bien Definidos: El modelo en cascada funciona mejor cuando los


requisitos del proyecto están bien definidos y no cambian significativamente a lo largo
del tiempo. Si los requisitos cambian durante el proceso, puede resultar en retrasos y
costos adicionales, ya que retroceder a una fase anterior puede ser costoso.

4. Documentación Detallada: Dado que cada fase depende de la salida de la fase


anterior, la documentación detallada es esencial en este modelo. Cada fase debe estar
bien documentada para que los desarrolladores comprendan lo que se espera de ellos y
para facilitar la revisión y la verificación.

5. Aplicación Apropiada: El modelo en cascada es adecuado para proyectos donde los


requisitos están bien establecidos y no se anticipan cambios significativos. Funciona
bien en proyectos de pequeña escala con un alcance limitado y cuando se necesita un
alto grado de control y documentación.

6. Limitaciones: Entre las limitaciones del modelo en cascada se incluyen su


inflexibilidad ante cambios de requisitos, su incapacidad para adaptarse a la evolución
de los requisitos del cliente y la falta de retroalimentación temprana del cliente.
2.4. El Modelo de Construcción de Prototipos:

El Modelo de Construcción de Prototipos se enfoca en la creación de prototipos rápidos


y funcionales del software antes de desarrollar la versión final. Esto permite al cliente y
al equipo de desarrollo obtener una comprensión más clara de los requisitos y las
funcionalidades del software. Este enfoque es especialmente útil cuando los requisitos del
proyecto no están claros desde el principio.
Como ya podríamos imaginar este modelo también tiene sus pros y sus contras como
pueden ser:

Beneficios del Modelo de Prototipos:

a. Clarificación de Requisitos: La construcción de prototipos ayuda a aclarar y


refinar los requisitos del proyecto, ya que permite a los clientes experimentar
con el software de manera temprana y visualizar mejor lo que se está
desarrollando.

b. Retroalimentación Temprana: Al obtener retroalimentación temprana de los


clientes a través de prototipos, se pueden identificar y abordar problemas y
cambios en una etapa temprana del proyecto, lo que reduce el riesgo de costos y
retrasos más adelante.

c. Mayor Aceptación del Cliente: Los clientes a menudo se sienten más


involucrados y satisfechos con el resultado final cuando pueden ver y probar el
software a lo largo del proceso de desarrollo.

d. Flexibilidad: El modelo de prototipos es altamente adaptable a los cambios


en los requisitos, ya que está diseñado para iterar y ajustar el software según las
necesidades cambiantes del cliente.

Limitaciones del Modelo de Prototipos:

a. Costo Adicional: La creación de prototipos adicionales puede aumentar los


costos iniciales del proyecto, especialmente si se requieren prototipos de alta
fidelidad.

b. Posible Desviación: Si no se gestiona adecuadamente, el modelo de


prototipos puede llevar a desviaciones significativas entre el prototipo y el
producto final. Por lo tanto, es importante mantener un seguimiento cercano de
los cambios y asegurarse de que los requisitos se documenten de manera
adecuada.

c. Inversión de Tiempo: La construcción de prototipos requiere tiempo y


recursos adicionales, lo que puede no ser apropiado para proyectos con
restricciones de tiempo severas.
2.5. El Modelo DRA (Desarrollo Rápido de Aplicaciones)

El Modelo DRA se centra en la entrega rápida de sistemas funcionales y se basa en la


iteración continua. Se enfatiza la participación activa del cliente y la adaptabilidad a los
cambios en los requisitos. Este modelo es adecuado para proyectos que requieren una
respuesta rápida a las necesidades del cliente y la capacidad de evolucionar con el tiempo.

En el DRA, el proceso de desarrollo se divide en ciclos iterativos y fases paralelas. Cada


ciclo, a menudo llamado "iteración", representa un conjunto completo de actividades de
desarrollo, desde la definición de requisitos hasta la entrega de un producto funcional. En
lugar de esperar hasta que se complete todo el desarrollo para obtener una versión
utilizable del software, el cliente recibe versiones parciales o incrementales del producto
en cada iteración.

2.6. Modelos Evolutivos de Proceso de Software

Se mencionan los modelos evolutivos, como el Modelo Espiral, que combinan elementos
de diferentes modelos para adaptarse a proyectos específicos. Estos modelos reconocen
la necesidad de un enfoque flexible y adaptativo para el desarrollo de software. A
diferencia de los modelos lineales tradicionales, como el modelo en cascada, los modelos
evolutivos se basan en la idea de que los requisitos y las soluciones pueden evolucionar
a medida que avanza el proyecto.
Los modelos evolutivos se basan en la iteración continua, lo que significa que los
proyectos se dividen en ciclos de desarrollo repetitivos. Cada ciclo, o iteración, incluye
actividades de definición de requisitos, diseño, implementación, pruebas y evaluación.
La retroalimentación del cliente y de otros interesados es fundamental en los modelos
evolutivos. Cada iteración permite obtener comentarios valiosos para ajustar y mejorar el
software.

Los modelos evolutivos son altamente flexibles y se adaptan bien a proyectos en los que
los requisitos no están completamente definidos desde el principio o donde se esperan
cambios durante el desarrollo.

Modelos Evolutivos Comunes:

a. Modelo en Espiral: El Modelo en Espiral es uno de los modelos evolutivos


más conocidos. Combina elementos de planificación secuencial con iteración y
gestión de riesgos. Cada ciclo en espiral incluye fases de planificación, análisis
de riesgos, ingeniería, construcción y evaluación. Este modelo es especialmente
útil en proyectos grandes y complejos donde la incertidumbre es alta.
b. Modelo de Desarrollo Rápido de Aplicaciones (DRA): El DRA, discutido
en el punto anterior (2.5), también es un modelo evolutivo debido a su énfasis en
la entrega rápida y la adaptación continua a los requisitos cambiantes del cliente.

c. Modelo Incremental: En el Modelo Incremental, el proyecto se divide en


partes pequeñas o incrementos. Cada incremento agrega funcionalidad adicional
al software. Este enfoque permite una entrega temprana de partes utilizables del
software y permite una retroalimentación temprana del cliente.

2.7. Desarrollo Basado en Componentes

El Desarrollo Basado en Componentes se centra en la reutilización de componentes de


software existentes para acelerar el desarrollo. Este enfoque promueve la modularidad y
la eficiencia al aprovechar soluciones previamente desarrolladas.

El Desarrollo Basado en Componentes (DBC) es un enfoque de desarrollo de software


que se centra en la reutilización de componentes de software preexistentes para
construir aplicaciones más grandes y complejas. Este enfoque se basa en la idea de que
es más eficiente y rentable utilizar componentes probados y confiables en lugar de
construir cada parte de una aplicación desde cero.

Principios del Desarrollo Basado en Componentes:

a. Interfaz Estándar: Los componentes deben proporcionar interfaces estandarizadas y


bien definidas que describan cómo se pueden utilizar. Esto facilita su integración en
diferentes aplicaciones.

b. Independencia: Los componentes deben ser independientes y no deben depender en


exceso de otros componentes. Esto garantiza que puedan utilizarse en diferentes
contextos sin problemas.

c. Documentación y Metadatos: Es importante proporcionar documentación completa


y metadatos para cada componente, incluyendo descripciones de su funcionalidad,
requisitos y limitaciones.

2.8. Tecnologías del Proceso:

El capítulo concluye destacando la importancia de las tecnologías del proceso, como las
herramientas de gestión de proyectos y los sistemas de control de versiones, que
respaldan la ejecución eficiente de los modelos de proceso de software.

Las tecnologías del proceso se refieren a herramientas, métodos, enfoques y prácticas


utilizados en el desarrollo de software para mejorar la eficiencia, la calidad y la gestión
de proyectos. Estas tecnologías abarcan una amplia variedad de áreas y pueden aplicarse
en diferentes etapas del ciclo de vida del desarrollo de software.
Agregar ejemplos de los modelos de desarrollo de Software

1. Modelo en Cascada:

• Ejemplo: Desarrollo de un software de contabilidad financiera donde los


requisitos son muy específicos y no se esperan cambios significativos
durante el proyecto.

2. Desarrollo Rápido de Aplicaciones (RAD):

• Ejemplo: Creación de un sitio web de comercio electrónico donde se


requiere una rápida iteración y adaptación a las preferencias de los usuarios.

3. Modelo en Espiral:

• Ejemplo: Desarrollo de un sistema de control de tráfico aéreo que implica


múltiples iteraciones para gestionar riesgos y cambios regulatorios.

4. Modelo Incremental:

• Ejemplo: Construcción de un sistema de gestión de contenido (CMS) donde


se agregan módulos de funcionalidad incrementalmente.

5. Desarrollo Basado en Componentes (DBC):

• Ejemplo: Desarrollo de una aplicación empresarial que utiliza componentes


reutilizables, como un módulo de autenticación y un sistema de informes,
para acelerar el proceso de desarrollo.

6. Modelo de Prototipos:

• Ejemplo: Desarrollo de un videojuego donde se crean prototipos de nivel


para probar la mecánica del juego antes de crear el juego completo.

La elección del modelo adecuado depende de los requisitos del proyecto, la naturaleza
de las aplicaciones y las preferencias del equipo de desarrollo. Además, es común
adaptar y combinar modelos según las necesidades específicas de cada proyecto.
Análisis Crítico:

Flujo de Proceso Lineal (Cascada):

Cuando Usarlo: El flujo de proceso lineal es adecuado cuando los requisitos del
proyecto son bien conocidos y estables desde el principio, y no se esperan
cambios significativos a lo largo del ciclo de vida del proyecto.

Por Qué Usarlo: Proporciona una estructura clara y secuencial para el


desarrollo. Es útil en proyectos donde la planificación y el diseño rigurosos son
esenciales y donde los riesgos asociados con cambios tardíos son inaceptables.

Flujo de Proceso Iterativo:

Cuando Usarlo: El flujo de proceso iterativo es útil cuando los requisitos no


están completamente definidos desde el principio y se espera que evolucionen
con el tiempo. Es especialmente adecuado para proyectos donde la
retroalimentación temprana del cliente es esencial.

Por Qué Usarlo: Permite la adaptación a cambios en los requisitos y la entrega


temprana de versiones funcionales del software. Facilita la participación del
cliente y la identificación temprana de problemas.

Flujo de Proceso Evolutivo:

Cuando Usarlo: Los flujos de proceso evolutivos son apropiados cuando se


necesita una adaptación continua a los cambios, y se busca la mejora incremental
del software con el tiempo.

Por Qué Usarlo: Facilita la mejora continua, la retroalimentación constante y la


entrega de versiones mejoradas del software. Es útil en proyectos donde la
innovación y la evolución son críticas.

Flujo de Proceso Paralelo (Desarrollo Basado en Componentes):

Cuando Usarlo: El flujo de proceso paralelo, como el desarrollo basado en


componentes, es beneficioso cuando se pueden reutilizar componentes existentes
para acelerar el desarrollo y mejorar la calidad.

Por Qué Usarlo: Permite una mayor eficiencia y calidad al aprovechar


componentes probados. Es útil en proyectos donde la reutilización de
funcionalidad es posible y deseada.
Opinión personal:

El tema de los modelos del proceso de desarrollo de software es esencial en la ingeniería


del software, ya que determina la forma en que se planifica, se ejecuta y se gestiona un
proyecto de desarrollo de software. Cada modelo tiene sus ventajas y desafíos, y la
elección del modelo adecuado debe basarse en los requisitos y las características
específicas del proyecto.
Conclusión:

El Capítulo 2 de "Ingeniería del Software: Un Enfoque Práctico" proporciona una visión


general de los diferentes modelos de proceso de software y su importancia en el desarrollo
exitoso de proyectos de software. Cada modelo tiene sus ventajas y desventajas, y su
elección depende de los requisitos del proyecto y la naturaleza del trabajo. La
comprensión de estos modelos es esencial para que los desarrolladores de software tomen
decisiones informadas y adapten su enfoque según sea necesario para alcanzar sus
objetivos.

También podría gustarte