0% encontró este documento útil (0 votos)
3 vistas23 páginas

Modelosdecalidadsoftware

El documento aborda los modelos de procesos de software, clasificándolos en predictivos y ágiles, y detalla características, ventajas y desventajas de varios modelos como el modelo en cascada, incremental, por prototipos y en espiral. Además, se enfatiza la importancia de las habilidades blandas que deben desarrollar los ingenieros de software para desempeñarse exitosamente en sus roles. Se concluye que la elección del modelo adecuado depende de las características del proyecto y la capacidad del ingeniero para adaptarse a las necesidades específicas.
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)
3 vistas23 páginas

Modelosdecalidadsoftware

El documento aborda los modelos de procesos de software, clasificándolos en predictivos y ágiles, y detalla características, ventajas y desventajas de varios modelos como el modelo en cascada, incremental, por prototipos y en espiral. Además, se enfatiza la importancia de las habilidades blandas que deben desarrollar los ingenieros de software para desempeñarse exitosamente en sus roles. Se concluye que la elección del modelo adecuado depende de las características del proyecto y la capacidad del ingeniero para adaptarse a las necesidades específicas.
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

Contenido

1 Modelos de procesos de software

2 Habilida des blandas, trabajo en equipo


1. Modelos de procesos de software

En el Escenario anterior se abordaron las principales características de un proceso de

software, sin embargo, la ejecución específica del proceso de software difiere

significativam en te de acuerdo con las características de cada proyecto, entre las diferencias

más relevantes se encuentran las siguientes:

• Flujo general de las activida des, accion es y tareas, así como de las interdepen den cias entre ellas

• Grado en el que las acciones y tareas están definidas dentro de cada activida d estructural

• Grado en el que se identifican y requieren los productos del trabajo

• Forma en la que se aplican las activida des de aseguram iento de la calidad

• Manera en la que se realizan las activida des de seguimien to y control del proyecto

• Grado general de detalle y rigor con el que se describe el proceso

• Grado con el que el cliente y otros participantes se involucran con el proyecto

• Nivel de autonomía que se da al equipo de software

• Grado con el que son prescritos la organización y los roles del equipo (Pressman , 2010, 14)

De acuerdo con las necesidades de los diferentes proyectos se han definido distintos modelos

del proceso de software, también conocidos como “ciclos de vida del software”. Estos se

clasifican en dos:

2
1. Modelos de procesos predictivos o tradicion ales: enfatizan la definición , la

identificación y la aplicación detallad a de las actividades y tareas del proceso. En

especificar muy bien los requerimien tos y el camin o a seguir antes de comen zar y

ceñirse a dicho camin o fielmen te documentando todo. Si estas metodologías no

se usan con un criterio que defina que

adaptacion es son necesarias, puede resultar en un proceso demasiado burocrático

que genera complejidades innecesarias.

2. Modelos de procesos ágiles: su énfasis está en la maniobra bilida d y la adapta bilida d,

son mucho más flexibles que los modelos tradicion ales por lo que se adaptan con más

facilidad a las condiciones cambiantes.

Este tema nos enfocaremos en los modelos de procesos prescriptivos o tradicion ales y en él

se ve con más detalles las características de los modelos de procesos ágiles y las

metodologías que lo aplican.

3
Modelo en Cascada

proceso de software en el tiempo. Este es el primer modelo de procesos formalmente

definido y es conocido como el ciclo de vida clásico. De acuerdo con diferentes autores

se pueden encontrar variacion es en el número

de etapas a desarrollar y los nombres asignados a los mismos, sin embargo, su característica

principal es que aplica el flujo de procesos lineal, es decir que es necesario lograr todos los

objetivos de una actividad para continuar con la ejecución de la siguiente. De acuerdo

con Pressman (2010) Las principales etapas de este modelo son las siguientes:

• Comunicación: en dónde se busca definir con detalle el alcance y los

requerimientos del proyecto, otros autores la nombran como etapa de análisis y

definición de requerimien tos.

• Planeación : en esta etapa se define el plan de proyecto, es decir, cuáles son las

actividades que se van a desarrollar y el tiempo y demás recursos.

• Modela do: en esta etapa y a partir de los requerimien tos identificados de manera

previa, se define la arquitectura y la estructura general interna del software a

implem en tar, en otras aproxim acion es esta etapa se conoce la etapa de diseño y

también se puede encontrar dividida en: diseño prelimin ar en donde se definen la

arquitectura de alto nivel y diseño detallado en donde se incrementa el nivel de

especificid ad de los modelos desarrollad os.

• Construcción : en esta etapa se implem en tan las unidades de código que

reflejen el diseño definido con anteriorid ad. Cada una de ellas es probada para

garantizar que cumple con la especificación del diseño, esta etapa es también
4
conocida como etapa de implementación o codificación.

• Despliegu e: es la etapa en que el software es puesto en producción , incluye

también la capacitación de los usuarios y las actividad es de soporte y

manten imien to. Esta etapa es también conocida como: etapa de

implantación, operación y mantenimiento o funcionamiento y

mantenimiento.

inicio del proyecto estimación diseño código pruebas entrega


recabar los programación asistencia
requerimientos seguimiento retroalimentación

Modelo de cascada

Figura 1. Modelo en Cascada

Este modelo presenta las siguientes ventajas:

• Dado que las etapas están claramen te definidas, se facilita su planeación , seguimiento

y control ayudan do a prevenir que se sobrepasen las fechas de entrega y los costes

esperados.

• En el caso de proyecto donde los requerimientos están bien definidos y hay poca

probabilid ad de que se presenten cambios en la especificación hay bajos riesgos.

• Este modelo muestra los pasos que son intuitivos cuando se está desarrollan do software.

5
Algunas de sus desventajas son las siguientes:

• Es difícil responder a los cambios de los requerimientos del cliente ya que cualquier

cambio afecta a todo el proyecto y en el mundo real es muy difícil encontrar un

proyecto en donde se pueda asegurar que los requerimien tos se pueden identificar y

no van a sufrir variacion es.

• Pasar por cada etapa de manera estrictamente secuencial puede hacer que se pierda

tiempo en el proceso ya que parte del equipo puede estar esperan do a que otros

terminen determin ada etapa para poder continuar a la siguiente.

• Las revisiones de proyectos de gran complejidad son muy difíciles.

• Entre más tarde se detecte un error más costoso resulta su corrección.

• El usuario no podrá tener una versión funcional sino hasta en las etapas finales del proceso.

1.1. Modelo de Procesos Incremental

La Figura 2, Modelo de procesos incremental, presenta las actividades y el desarrollo en el

tiempo del modelo de procesos incremen tal, el cual combin a el flujo de procesos lineal y

6
paralelo para dar respuesta adecu ada a proyectos donde no es posible esperar a tener

toda la especificación de requerimientos del sistema y se tienen que tener partes

funcionales del sistema rápidamen te e ir amplian do esta funcionalida d en entregas

posteriores. La primera entrega será el producto que correspon de a las funcionalidades

básicas o mínimas requeridas que se van a ir complem en tan d o con cada incremento.

Incremento # n
Funcionalidad y caracterí st ica s del software

Modelado Incremento # 2
n-ésimo
Construcción

Calendario del proyecto

Figura 2. Modelo de procesos incremental

7
Las características fundamentales de este modelo son las que se explican a continuación:

• Se ajusta a entornos de alta incertidu m bre donde los requerimien tos no se

conocen en su totalidad al inicio del proyecto o hay un alto riesgo de que

sufran modificaciones.

• El sistema se crea por compon entes que luego se integran para formar el sistema.

• El sistema se divide en entregas sucesivas que se van entregan d o e integran d o a

medida que se desarrollan y no un gran sistema con una única fecha de entrega.

Las principales ventajas de este modelo son que se explican a continuación .

• Se acortan los tiempos de entrega y el usuario ve algo que puede valorar del

sistema con más frecuencia.

• El usuario participa más en el desarrollo de proyecto ya que las etapas en las que más

particip a que son las etapas de comunicación y despliegu e están ocurriendo de

manera iterativa.

• Al tener alguna funcionalida d más rápidamente el usuario percibe un retorno de la

inversión más rápidamente.

• Al reducir la complejida d del sistema el más fácil gestion ar los riesgos

8
• Es más fácil gestion ar los cambios en los requerimientos ya que se pueden aumentar o

modificar en cada versión.

• Reduce costos, si algo sale mal solo volvemos a la antigu a versión y continuamos

desde ese punto, no tenemos que comenzar todo el proceso de nuevo.

Este modelo presenta las siguientes desventajas.

• Al no tener una especificación de requerimien tos inicial se hace más difícil estimar el

coste total del proyecto.

• Este modelo incrementa la complejidad en la gestión del proyecto, por lo que se

requiere gestores experimentados.

• Difícil de aplicar a sistemas transaccion ales que tienden a ser integrados y a

operar como un todo.

• La interacción constante de los usuarios para retroalim en tar puede hacer

que se avance lentamente.

• La participación constante de los usuarios finales puede agregar costos o reducir la

productivid ad de la empresa.

9
1.2. Modelo de procesos por prototipos

Este modelo de procesos, más que modificar las activida des o su flujo, agrega al modelo

de cascada o incremental la posibilidad de modelar el producto final verifican do algunas

características antes de construirlo. La Figura 3. Modelo de procesos de prototipo

presenta esta aproximación sobre

el modelo de procesos en cascada, incluye la generación de prototip os al finalizar la etapa

de comunica cion es, y durante la etapa de modelado incluyen do un prototipo del diseño de

alto nivel y un prototipo del diseño detallado. Los prototipos tienen dos funcionalidades.

10
• El cliente ve el producto (en una versión no funcional) y refina sus requisitos.

• El ingeniero compren de mejor lo que va a hacer.

Actividades Ejecución de actividades

Comunicación

Prototipo
Identificación de
requerimientos

Planeación

Estimación
Programación
Seguimiento

Prototipo de diseño detallado

Construcción

Código
Modelado

Diseño
Despliegue
Entrega
Asistencia
Retroalimentación

Tiempo

Figura 3. Modelo de procesos de prototipo

11
Las principales características de este modelo se señalan a continuación.

• Reduce el riesgo de construir productos que no satisfagan las necesida des de los usuarios.

• Reduce costos y aumenta la probabilidad de éxito.

• Exige disponer de las herramientas adecuad as para la elaboración de los prototipos.

• Incremen ta los riesgos de calidad y robustez en los diseños.

12
Principales ventajas de esta aproximación son las que se listan enseguida.

• Un prototipo es una buena forma de facilitar la comunica ción con el usuario final.

• El cliente se va familiarizan do con el nuevo producto.

• Se pueden desarrollar prototipos tanto de interfaz de usuario como de como de rendimiento.

Las desventajas más relevantes del modelo de procesos por prototip os son las que se listan a

continuación.

• La gestión de desarrollo puede hacerse lenta ya que se pueden hacer demasia das

iteracion es hacer que el usuario final este de acuerdo con el prototipo o se

pongan límites.

• Imposibilid ad de conocer a priori el tiempo de desarrollo.

• Dificultad para manejar las expectativas del usuario ya que la presentar una versión no

funcional o parcialm en te funcional al usuario final este puede subestimar el proceso de

desarrollo que debe realizarse para la construcción de un producto con la calidad

esperada.

13
1.3. Modelo de procesos en espiral

Comunicación

Inicio

Modelado
Entrega

Figura 4. Modelo de procesos en espiral

14
La Figura 4. Modelo de procesos en espiral se basa en el flujo de procesos evolutivo e incluye

además la generación de prototipos en cada iteración . En este modelo, “el software se

desarrolla en una serie de entregas evolutivas. Durante las primeras iteracion es, lo que se

entrega puede ser un modelo o prototip o. En las iteracion es posteriores se producen versiones

cada vez más completas del sistema” (Pressman , 2010, 39). Las características principales de

este modelo son las siguientes.

• Cada ciclo empieza identifican d o los objetivos de la porción correspon diente, las

alternativas de solución y las restricciones que permitan definir un alcance detallado.

• Se formula una estrategia efectiva para resolver las fuentes de riesgos

(simulación , prototipado, etc.).

• Se plantea el próximo prototipo.

• Una vez resueltos los riesgos se sigue el ciclo en cascada.

• Cada ciclo se completa con una revisión que incluye todo el ciclo anterior

y el plan para el siguiente.

Las principales ventajas de este modelo son las siguientes.

• No necesita una definición completa de los requisitos para empezar a

implem en tar una iteración.

• Con la inclusión de los prototipos, desde la primera iteración se

empiezan a validar los requerimientos.

15
• Solo se pone el riesgo el tiempo y recursos invertidos en generar cada iteración.

• Al verificar poder identificar los problem as más rápidam en te se reduce los riesgos y se

facilita el resolverlo s a tiempo.

• Toma las ventajas de los modelos de procesos anteriores.

Las desventajas de aplicar este modelo son las siguientes.

• El cliente debe participar constantem en te y esto puede generar

inconvenientes en la organización.

• La gestión de proyectos con este tipo de modelos es bastan te compleja por lo que

requiere de gestores experimentados para garantizar el éxito del proyecto.

16
Como se puede observar, cada uno de los modelos expuestos tiene sus particu larida des, sus

ventajas y sus desventajas; las cuales se harán más eviden tes de acuerdo con las

características del proyecto a desarrollar. Por esta razón, es muy importan te que el ingeniero

de software tenga clara las alternativas que puede utilizar y use su criterio para definir el mejor

modelo a aplicar, de acuerdo con las circunstan cias de cada proyecto. Si lo requiere, que se

atreva a diseñar su propio modelo de acuerdo con las necesidades.

2. Habilida des Blandas de un Ingeniero de software

Como se ve, en la primera parte del módulo el desarrollo del proceso de software, o

proceso de desarrollo de software, es bastan te complejo. Se hace aún más complejo

de acuerdo con la complejid ad del proyecto a desarrollar. Por esta razón, creo que

este es un buen momen to para poner la atención en las personas que ejecutan el

proceso. Es decir, en los ingenieros de software. Como también se verá, en el proceso

de software intervien en diversos roles con competen cias técnicas claramente

definidas. Sin embargo, en este momento lo invito a considerar cuáles son las

habilida des blandas que tiene que desarrollar un ingeniero de software para

desempeñ arse exitosam en te. Además, se empieza a aplicar en el desarrollo del

proyecto.

De acuerdo con González (2010), las siguientes son las habilidades más importan tes que debe

desarrollar un ingeniero de software:

• Búsqueda y clasificación de información: no solamente se habla de las competencias

técnicas de gestión de información estructurada, sino también de la capacida d de

17
reconocer

la información que es relevante en otros dominios más allá de la ingeniería del software.

Generalmente, siempre que se construye un software nos enfrentamos a la necesida d de

identificar lo que es relevante en su dominio de aplicación para poder construir una

solución que se haga cargo de las necesida des de ese dominio. Es decir, por ejemplo, si

vamos a construir un software que apoye los procesos contables de una organización ,

necesitaremos tener la habilid ad de aprender del dominio de la contabilidad.

• Capacidad de análisis: consiste en la capacidad de identificar los elementos que

componen un sistema hasta llegar a reconocer sus atributos y las relacion es que existen

entre ellos.

• Deducir, sintetizar, interpretar, analizar los fenómenos que observamos. Esta habilidad es muy

importan te a la hora de modelar y proponer solucion es a través de los diseños

propuestos.

18
• Habilidades comunicativas: una de las actividades básicas del proceso de ingeniería de

software es la comunicación , ya que a través de esta podemos entender las

necesidades de los clientes y los demás particip an tes en el desarrollo del software y

ofrecer nuestras propuestas de solución garantizan d o que nos hacemos entender. Sólo a

través de nuestras habilida des de comunicación podemos además coordin ar las

accion es requeridas para poder ejecutar el proceso de software. Por esta razón no

deberíam os subestimar nuestras habilidad es de: escuchar, leer, hablar y escribir además

de la comunicación no verbal. Es mi experien cia personal he visto fracasar proyectos de

software porque el ingeniero prefiere inferir sólo en su escritorio las necesidades de los

clientes en una postura un poco arrogante antes que escuchar y sostener

conversacion es con los clientes o usuarios.

• Redacción de informes y documentos: una habilidad comunicativa específica es la

redacción de informes y documentos, como lo mencionaba anteriormente, una

parte fundamental del software son los documen tos que lo describen, el ingeniero de

software debe estar en capacid ad de comunicar a través de informes y documen tos

cómo está integrado y compu esto el software y cómo se ha desarrollado el proceso de

construcción, teniendo en cuenta las competen cias técnicas e intereses de los distintos

públicos interesados en el software. No es lo mismo escribir un documento técnico

dirigido a otro ingeniero que escribir un informe dirigido al patrocin ador del proyecto o

un manual de funcionamien to dirigido al usuario final, la información , el nivel de detalle

y la forma de comunicación varían de uno a otro.

• Habilidades de creatividad: el ingeniero de software está llamado a proponer ideas y

enfoques con cierto grado de originalid ad, amplian do las miradas más allá de los
19
espacios habitu ales y vislumbrar espacios de oportunid ad para generar posibles

cambios.

• Sensibilidad frente a los problemas del cliente: en algunas ocasiones vemos a las personas

adaptán d ose con dificultad al diseño de un software en lugar de que el software se

diseñe pensan do en las necesida des del cliente. Sin embarg o, los clientes de software

son cada vez más exigentes y si el ingeniero no es sensible a las necesida des de los

clientes para diseñar un software que se adapte a estas necesidades e incluso exceda sus

expectativas seguramente será un producto destinado a fracasar.

• Liderazgo: es la capacida d de influir en la forma de actuar de los integran tes de un

grupo de trabajo, logran do que este equipo se manten ga motivado y trabaje con

entusiasmo enfocado en lograr los objetivos propuestos.

• Toma de decisiones: durante el proceso de ingeniería de software nos encontramos

constantemente con la necesidad de elegir entre varias alternativas, cada una con

ventajas, desventajas y riesgos asociados, esta capacidad tiene que ver con elegir

una alternativa y comprometerse con esta posición gestionando la

incertidumbre.

• Gestión de conflictos: durante el proceso de ingeniería de software es común que se

presenten diferencias de opiniones que pueden convertirse en conflictos, con la

gestión de conflictos buscamos que comprender e intervenir en la resolución

pacífica no violenta de los conflictos.

20
• Trabajo en equipo: los equipos de desarrollo de software cada vez son más variados y

complejos y el éxito del proyecto depende en gran medida de la capacid ad de sus

integran tes para trabajar efectivamente en equipo. Esta más que una habilidad, es un

conjunto de habilid ades que promu even que cada integrante conoce su papel en el

equipo y se responsabiliza de cumplirlo coordin an do efectivamente las accion es

requeridas para el logro de los objetivos.

21
Referencias

González-Morales, D., Moreno de Antonio, L. M. y Roda García, J. L. (2011). Teaching “soft”

skills in Software Engineering. En la conferencia IEEE Global Engineering Education Conferen ce

(EDUCON), Amman, Jordania. (pp. 630-637)

Pressman , R. (2010). Ingeniería del software. Un enfoque práctico. (pp. 26.55) México, D.F,

México: McGraw Hill

22
23

También podría gustarte