0% encontró este documento útil (0 votos)
38 vistas17 páginas

INF 5220 - Z05-Unidad2-Informe

El informe analiza los capítulos 2 y 3 del libro de Roger Pressman sobre ingeniería del software, enfocándose en los procesos y modelos utilizados en su desarrollo. Se discuten la importancia de los patrones de proceso, la evaluación y mejora de estos, así como las características de los modelos ágiles frente a los prescriptivos. Se concluye que ambos enfoques tienen ventajas y desafíos, siendo crucial seleccionar el adecuado para garantizar un desarrollo eficiente y de calidad.

Cargado por

rjgp93
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
38 vistas17 páginas

INF 5220 - Z05-Unidad2-Informe

El informe analiza los capítulos 2 y 3 del libro de Roger Pressman sobre ingeniería del software, enfocándose en los procesos y modelos utilizados en su desarrollo. Se discuten la importancia de los patrones de proceso, la evaluación y mejora de estos, así como las características de los modelos ágiles frente a los prescriptivos. Se concluye que ambos enfoques tienen ventajas y desafíos, siendo crucial seleccionar el adecuado para garantizar un desarrollo eficiente y de calidad.

Cargado por

rjgp93
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

Sustentante:

Ramsés Javier Gomera Pérez

Matrícula:

100102617

Tema:

Informe de Proceso de Software del libro Roger Pressman. (2006). Ingenieria


del Software: Un Enfoque Practico. McGraw-Hill

Asignatura y sección:

Ingeniería de Software I - INF 5220 - Z05

Maestro:

José Manuel Amado P.


CONTENIDO

INTRODUCCIÓN ............................................................................................................................ 3
EL PROCESO DEL SOFTWARE ........................................................................................................ 4
MODELOS DEL PROCESO .......................................................................................................... 4
UN MODELO GENERAL DE PROCESO ....................................................................................... 4
REPRESENTACIÓN DEL PROCESO DE SOFTWARE DE MANERA ESQUEMÁTICA...................... 5
FLUJOS DEL PROCESO ............................................................................................................... 5
PATRONES DE PROCESO ........................................................................................................... 6
CLASIFICACIÓN DE LOS PATRONES DE PROCESO .................................................................... 7
IMPORTANCIA DE LOS PATRONES DE PROCESO ..................................................................... 8
EVALUACIÓN Y MEJORA DEL PROCESO ................................................................................... 8
MODELOS DE PROCESO PRESCRIPTIVO ................................................................................... 9
CAMBIO DE LOS COSTOS COMO FUNCION DEL TIEMPO TRANSCURRIDO EN EL
DESARROLLO:.......................................................................................................................... 11
PROCESO ÁGIL ........................................................................................................................ 12
PRINCIPIOS DE AGILIDAD ....................................................................................................... 12
FACTOR HUMANO .................................................................................................................. 13
MODELOS ÁGILES ................................................................................................................... 14
CONCLUSIÓN............................................................................................................................... 16
BIBLIOGRAFÍA ............................................................................................................................. 17
INTRODUCCIÓN

El presente informe tiene como objetivo analizar los Capítulos 2 y 3 del libro Ingeniería
del Software de Roger Pressman en su 7ª edición. Estos capítulos abordan aspectos
fundamentales del proceso de ingeniería del software y los métodos y modelos
utilizados en su desarrollo. Se destacan las principales ideas, ventajas y limitaciones de
los enfoques expuestos, así como una valoración crítica de su aplicabilidad en la
actualidad.
EL PROCESO DEL SOFTWARE

MODELOS DEL PROCESO

Cuando se trabaja en la construcción de un producto o sistema, es importante ejecutar


una serie de pasos predecibles — el mapa de carreteras que lo ayuda a obtener a tiempo
un resultado de alta calidad—. El mapa que se sigue se llama “proceso del software”. Es
de suma importancia ya que da estabilidad, control y organización a una actividad que
puede volverse caótica si se descontrola. Sin embargo, un enfoque moderno de
ingeniería de software debe ser “ágil”. Debe incluir sólo aquellas actividades, controles
y productos del trabajo que sean apropiados para el equipo del proyecto y para el
producto que se busca obtener.

UN MODELO GENERAL DE PROCESO

Como se dijo en el capítulo 1, una estructura general para la ingeniería de software


define cinco actividades estructurales: comunicación, planeación, modelado,
construcción y despliegue. Además, a lo largo de todo el proceso se aplica un conjunto
de actividades sombrilla: seguimiento y control del proyecto, administración de
riesgos, aseguramiento de la calidad, administración de la configuración, revisiones
técnicas, entre otras.
REPRESENTACIÓN DEL PROCESO DE SOFTWARE DE MANERA ESQUEMÁTICA

FLUJOS DEL PROCESO


PATRONES DE PROCESO

Los patrones de proceso en la ingeniería del software se definen en distintos niveles de


abstracción y se utilizan para describir problemas y soluciones en modelos de proceso,
actividades estructurales y tareas específicas. Estos patrones permiten estructurar el
desarrollo del software de manera eficiente y reutilizable.
CLASIFICACIÓN DE LOS PATRONES DE PROCESO

Según Ambler (1998), los patrones de proceso se dividen en tres tipos principales:

Patrón de etapa: Describe un problema dentro de una actividad estructural del


proceso. Ejemplo: EstablecerComunicación, que agrupa tareas como
RecabarRequerimientos.

Patrón de tarea: Enfocado en problemas asociados con tareas específicas de ingeniería


de software. Ejemplo: RecabarRequerimientos.

Patrón de fase: Define la secuencia de actividades dentro del proceso. Ejemplo:


ModeloEspiral o Prototipos.

Cada patrón de proceso está compuesto por los siguientes elementos:

Nombre del patrón: Debe ser significativo y descriptivo (ejemplo: RevisionesTécnicas).

Fuerzas: Factores que influyen en el problema y su solución.

Contexto inicial: Describe las condiciones previas para aplicar el patrón.

Problema: Define el desafío específico que resuelve el patrón.

Solución: Explica cómo implementar el patrón y su impacto en el estado del proceso.

Contexto resultante: Explica los cambios en la información y estructura del software


después de aplicar el patrón.

Patrones relacionados: Lista otros patrones con los que se vincula.

Usos y ejemplos: Casos en los que el patrón es aplicable.


IMPORTANCIA DE LOS PATRONES DE PROCESO

El uso de patrones de proceso permite desarrollar descripciones jerárquicas del proceso


de desarrollo de software, mejorando la organización y reutilización. Comienzan con
patrones de fase generales y se refinan en patrones de etapa y tarea más detallados. Su
aplicación ayuda a la definición de modelos de proceso específicos, optimizando el
desarrollo de software y garantizando una mayor eficiencia y consistencia.

EVALUACIÓN Y MEJORA DEL PROCESO

MARCO DE TRABAJO CARACTERÍSTICAS VENTAJAS DESVENTAJAS

- Permite mejorar la
- Implementación
calidad y eficiencia
costosa y compleja.
Modelo de madurez para mejorar de los procesos.
procesos en desarrollo y mantenimiento
CMMI (Capability - Establece niveles - Puede ser rígido para
de software. Se divide en niveles de
Maturity Model de mejora continua. empresas pequeñas.
madurez (1 a 5).
Integration)
- Ayuda a reducir
- Requiere compromiso
costos y tiempos de
organizacional.
desarrollo.
-Mejor alineación a
objetivos de negocio.
- Asegura un - No abarca todos los
estándar de calidad procesos relacionados
reconocido con el desarrollo de
Norma internacional de gestión de globalmente. software.
calidad aplicable a cualquier tipo de - Mejora la
ISO 9001:2000
organización. Se basa en la mejora confianza del - Puede generar
continua y la satisfacción del cliente. cliente y la burocracia excesiva.
eficiencia interna.
- Enfocada en la - Requiere auditorías
mejora continua. periódicas.

- Permite evaluar y
- Implementación
mejorar procesos
compleja.
de software.
ISO/IEC 15504 (SPICE - Modelo de evaluación de procesos de
Software Process software, basado en niveles de
Improvement and capacidad (0 a 5). Se centra en la
Capability Determination) mejora de procesos. - Aplicable a
- Requiere capacitación
cualquier
especializada.
organización.
- Flexible y
- No es tan ampliamente
adaptable a
adoptado como CMMI.
diferentes modelos.
- Flexible y
- Requiere personal
adaptable a
capacitado.
distintos proyectos.
Proceso de desarrollo de software
- Promueve el
RUP (Rational Unified basado en fases iterativas (Inicio, - Puede ser complejo
modelado visual
Process) Elaboración, Construcción y Transición). para equipos pequeños.
(UML).
Usa modelos visuales y casos de uso.
- Se enfoca en la
- Implementación puede
calidad y la
ser costosa.
reutilización.
MODELOS DE PROCESO PRESCRIPTIVO

Los modelos de proceso prescriptivo fueron propuestos originalmente para poner orden
en el caos del desarrollo de software. La historia indica que estos modelos tradicionales
han dado cierta estructura útil al trabajo de ingeniería de software y que constituyen un
mapa razonablemente eficaz para los equipos de software. Sin embargo, el trabajo de
ingeniería de software y el producto que genera siguen “al borde del caos”. En un
artículo intrigante sobre la extraña relación entre el orden y el caos en el mundo del
software, Nogueira y sus colegas [Nog00] afirman lo siguiente: El borde del caos se
define como “el estado natural entre el orden y el caos, un compromiso grande entre la
estructura y la sorpresa” [Kau95]. El borde del caos se visualiza como un estado inestable
y parcialmente estructurado […] Es inestable debido a que se ve atraído constantemente
hacia el caos o hacia el orden absoluto. Tenemos la tendencia de pensar que el orden es
el estado ideal de la naturaleza. Esto podría ser un error […] las investigaciones apoyan
la teoría de que la operación que se aleja del equilibrio genera creatividad, procesos
autoorganizados y rendimientos crecientes [Roo96]. El orden absoluto significa ausencia
de variabilidad, que podría ser una ventaja en los ambientes impredecibles. El cambio
ocurre cuando hay cierta estructura que permita que el cambio pueda organizarse, pero
que no sea tan rígida como para que no pueda suceder. Por otro lado, demasiado caos
hace imposible la coordinación y la coherencia. La falta de estructura no siempre
significa desorden.
El paradigma de hacer prototipos

Modelo de espiral común


DESARROLLO ÁGIL

Ivar Jacobson [Jac02a] hace un análisis útil: La agilidad se ha convertido en la palabra mágica de
hoy para describir un proceso del software moderno. Todos son ágiles. Un equipo ágil es diestro
y capaz de responder de manera apropiada a los cambios. El cambio es de lo que trata el
software en gran medida. Hay cambios en el software que se construye, en los miembros del
equipo, debidos a las nuevas tecnologías, de todas clases y que tienen un efecto en el producto
que se elabora o en el proyecto que lo crea. Deben introducirse apoyos para el cambio en todo
lo que se haga en el software; en ocasiones se hace porque es el alma y corazón de éste. Un
equipo ágil reconoce que el software es desarrollado por individuos que trabajan en equipo, y
que su capacidad, su habilidad para colaborar, es el fundamento para el éxito del proyecto.
Desde el punto de vista de Jacobson, la ubicuidad del cambio es el motor principal de la agilidad.
Los ingenieros de software deben ir rápido si han de adaptarse a los cambios veloces que
describe Jacobson.

CAMBIO DE LOS COSTOS COMO FUNCION DEL TIEMPO TRANSCURRIDO EN EL


DESARROLLO:
PROCESO ÁGIL

Cualquier proceso del software ágil se caracteriza por la forma en la que aborda cierto número
de suposiciones clave acerca de la mayoría de proyectos de software:

1. Es difícil predecir qué requerimientos de software persistirán y cuáles cambiarán. También es


difícil pronosticar cómo cambiarán las prioridades del cliente a medida que avanza el proyecto.

2. Para muchos tipos de software, el diseño y la construcción están imbricados. Es decir, ambas
actividades deben ejecutarse en forma simultánea, de modo que los modelos de diseño se
prueben a medida que se crean. Es difícil predecir cuánto diseño se necesita antes de que se use
la construcción para probar el diseño.

3. El análisis, el diseño, la construcción y las pruebas no son tan predecibles como nos gustaría
(desde un punto de vista de planeación).

PRINCIPIOS DE AGILIDAD

La Alianza define 12 principios de agilidad para aquellos que la quieran alcanzar:

1. La prioridad más alta es satisfacer al cliente a través de la entrega pronta y continua


de software valioso.
2. Son bienvenidos los requerimientos cambiantes, aun en una etapa avanzada del
desarrollo. Los procesos ágiles dominan el cambio para provecho de la ventaja
competitiva del cliente.
3. Entregar con frecuencia software que funcione, de dos semanas a un par de meses,
de preferencia lo más pronto que se pueda.
4. Las personas de negocios y los desarrolladores deben trabajar juntos, a diario y
durante todo el proyecto.
5. Hay que desarrollar los proyectos con individuos motivados. Debe darse a éstos el
ambiente y el apoyo que necesiten, y confiar en que harán el trabajo.
6. El método más eficiente y eficaz para transmitir información a los integrantes de un
equipo de desarrollo, y entre éstos, es la conversación cara a cara.
7. La medida principal de avance es el software que funciona.
8. Los procesos ágiles promueven el desarrollo sostenible. Los patrocinadores,
desarrolladores y usuarios deben poder mantener un ritmo constante en forma
indefinida.
9. La atención continua a la excelencia técnica y el buen diseño mejora la agilidad.
10. Es esencial la simplicidad: el arte de maximizar la cantidad de trabajo no realizado.
11. Las mejores arquitecturas, requerimientos y diseños surgen de los equipos con
organización propia.
12. El equipo reflexiona a intervalos regulares sobre cómo ser más eficaz, para después
afinar y ajustar su comportamiento en consecuencia.

FACTOR HUMANO

El desarrollo ágil de software pone énfasis en la importancia de los factores personales,


adaptando el proceso a las necesidades del equipo en lugar de imponer un método rígido. Para
que un equipo ágil funcione de manera efectiva, debe contar con ciertas características clave:

Competencia: Incluye talento innato, habilidades técnicas y conocimiento del proceso.

Enfoque común: Todos los miembros deben estar alineados con el objetivo de entregar
incrementos funcionales de software en el tiempo prometido.

Colaboración: La comunicación efectiva es esencial para evaluar, analizar y generar información


útil para el equipo y el cliente.

Autonomía en la toma de decisiones: El equipo debe tener autoridad para decidir sobre
aspectos técnicos y del proyecto.

Capacidad para resolver problemas difusos: Debe adaptarse a la ambigüedad y cambios


constantes, aprendiendo de cada experiencia.

Confianza y respeto mutuos: Fomentar un ambiente de cohesión fortalece el trabajo en equipo


y mejora los resultados.
Organización propia: El equipo gestiona su trabajo, define su proceso y planifica la entrega de
software, lo que aumenta la motivación y la moral.

MODELOS ÁGILES

Programación Extrema (XP): Se centra en la mejora continua a través de ciclos de


desarrollo cortos, comunicación constante, retroalimentación rápida y prácticas como
pruebas automatizadas y desarrollo en parejas.

Desarrollo Adaptativo de Software (DAS): Enfatiza la flexibilidad y la adaptación a


cambios frecuentes, permitiendo que el equipo evolucione su proceso en función de
las necesidades emergentes del proyecto.

Scrum: Utiliza iteraciones llamadas sprints y reuniones diarias (daily stand-ups) para
mejorar la productividad. Se basa en roles clave (Scrum Master, Product Owner y
equipo de desarrollo) y busca entregar incrementos funcionales de software en cada
ciclo.

Método de Desarrollo de Sistemas Dinámicos (MDSD): Enfocado en proyectos con


restricciones de tiempo y recursos, prioriza la colaboración entre desarrolladores y
clientes para asegurar que el software cumpla con las necesidades del negocio.

Cristal: Una familia de metodologías ágiles con distintos niveles de rigor según el
tamaño y criticidad del proyecto. Prioriza la comunicación, la flexibilidad y la entrega
temprana de software funcional.
Desarrollo Impulsado por las Características (DIC): Se enfoca en construir el software
basándose en características funcionales clave, asegurando que cada entrega agregue
valor al usuario final.

Desarrollo Esbelto de Software (DES): Inspirado en los principios Lean, busca eliminar
desperdicios, optimizar el flujo de trabajo y maximizar la entrega de valor con el menor
esfuerzo posible.

Modelado Ágil (MA): No es una metodología en sí, sino un conjunto de prácticas para
modelar software de forma ligera, asegurando que la documentación y el diseño sean
útiles sin ser excesivos.

Proceso Unificado Ágil (PUA): Una adaptación del Proceso Unificado que incorpora
principios ágiles, permitiendo flexibilidad en el desarrollo mientras se mantiene una
estructura basada en fases iterativas.
CONCLUSIÓN

El proceso de ingeniería del software es fundamental para garantizar el desarrollo


eficiente y estructurado de sistemas de calidad. A lo largo del informe, se han explorado
distintos modelos de proceso, tanto prescriptivos como ágiles, cada uno con sus
ventajas y desafíos. Mientras que los modelos tradicionales ofrecen una estructura clara
y controlada, los enfoques ágiles han demostrado ser más adaptables a las necesidades
cambiantes del desarrollo de software.

Asimismo, los patrones de proceso facilitan la organización del trabajo y la reutilización


de buenas prácticas, permitiendo a los equipos mejorar su eficiencia y calidad. La
evolución del desarrollo de software sigue una tendencia hacia la flexibilidad y la
colaboración, destacando el papel clave del factor humano en el éxito de los proyectos.

En definitiva, comprender y aplicar correctamente los diferentes modelos y


metodologías del proceso de software es esencial para optimizar recursos, mejorar la
calidad del producto final y responder de manera efectiva a los cambios en el entorno
tecnológico y en las necesidades del cliente.
BIBLIOGRAFÍA

Pressman, R. S. (2006). Ingeniería del software: Un enfoque práctico. McGraw-Hill.

También podría gustarte