Priorización de necesidades de usuario basada en valor estratégico

 

Prioritization of user needs based on strategic value

 

Priorização das necessidades do usuário com base no valor estratégico

  

 
         

 

 

 

 

 
 

 

 

 

 

 

Correspondencia: elizabeth.neroo@ucuenca.edu.ec

 

  

 

Ciencias Técnicas y Aplicadas  

Artículo de Investigación

 

 

*Recibido: 04 de enero de 2022 *Aceptado: 31 de enero de 2022 * Publicado: 21 de febrero de 2022

 

 

  1. Facultad de Ingeniería, Universidad de Cuenca, Av. 12 de Abril, Cuenca, Ecuador, Universidad Estatal del Sur de Manabí, Jipijapa, Ecuador.
  2. Departamento de Ciencias de la Computación, Universidad de Cuenca, Av. 12 de Abril, Cuenca, Ecuador.

Resumen  

La correcta definición y análisis de los requisitos es uno de los factores que contribuyen al éxito final de los proyectos de desarrollo de software. En donde, técnicas de la ingeniería de software tanto basadas en valor como orientadas por objetivos ayudan al analista a razonar sobre objetivos, identificar conflictos o seleccionar entre alternativas para lograr los objetivos. Sin embargo, no proponen un método que permita priorizar necesidades de usuario de acuerdo con el valor que aporta el satisfacerlas a la estrategia de la organización. El método propuesto hace uso de técnicas: i) para representar la relación entre las necesidades de clientes y los objetivos estratégicos de la organización, ii) para la estandarización de las variables que se deben considerar para determinar el valor de satisfacer cada necesidad, y iii) para establecer de forma cuantitativa el valor de satisfacer las necesidades de los usuarios. Se presenta un ejemplo que muestra la aplicación del método en la priorización de las necesidades de los usuarios en base al valor que aporta el satisfacerlas a la estrategia organizacional.

Palabras Clave: Valor; Priorización de necesidades; Ingeniería de requisitos orientada por objetivos.

 

Abstract

The correct definition and analysis of the requirements is one of the factors that contribute to the final success of software development projects. Where, both value based and goal oriented software engineering techniques help the analyst to reason about goals, identify conflicts, or select among alternatives to achieve goals. However, a method that allows prioritizing user needs according to the value that satisfying them brings to the organization's strategy is not proposed. The proposed method makes use of techniques: i) to represent the relationship between the customers' needs and the strategic objectives of the organization, ii) for the standardization of the variables that must be considered to determine the value of satisfying each need, and iii) to quantitatively establish the value of satisfying the users' needs. An example is presented that shows the application of the method in the prioritization of users’ needs based on the value that satisfying them brings to the organizational strategy.

Keywords: Value; Prioritization of needs; Engineering requirements oriented by objectives

 

 

Resumo

A correta definição e análise dos requisitos é um dos fatores que contribuem para o sucesso final dos projetos de desenvolvimento de software. Em que, tanto técnicas de engenharia de software baseadas em valor quanto orientadas a objetivos ajudam o analista a raciocinar sobre objetivos, identificar conflitos ou selecionar entre alternativas para atingir objetivos. No entanto, não propõem um método que permita priorizar as necessidades dos usuários de acordo com o valor que satisfazê-las traz para a estratégia da organização. O método proposto faz uso de técnicas: i) para representar a relação entre as necessidades dos clientes e os objetivos estratégicos da organização, ii) para a padronização das variáveis ​​que devem ser consideradas para determinar o valor da satisfação de cada necessidade, e iii ) para estabelecer quantitativamente o valor de atender às necessidades do usuário. É apresentado um exemplo que mostra a aplicação do método na priorização das necessidades dos usuários com base no valor que satisfazê-las traz para a estratégia organizacional.

Palavras-chave: Valor; Priorização de necessidades; Engenharia de requisitos orientada a objetivos.

 

Introducción

La ingeniería de software tradicional estudia cómo desarrollar software que satisfaga las necesidades de clientes o usuarios. La correcta definición y análisis de los requisitos es uno de los factores que contribuyen al éxito final  de los  proyectos de desarrollo de software (Vázquez, 2012). En donde, mediante un proceso complejo de toma de decisiones mediante el cual se determina que funcionalidades son adecuadas a incluir en cada liberación de producto de software se priorizan las necesidades de los usuarios; priorización que debería considerar la estrategia de negocio que responde al mercado globalizado y así evitar que se haga un gasto innecesario de recursos (Aurum & Wohlin, 2005).

Existen enfoques como la “Ingeniería de software Basada en Valor” (ISBV) (Boehm, 2003) que tienen en consideración el valor que el desarrollo de software pueda aportar a la estrategia organizacional. Este enfoque establece que no todas las funcionalidades son igualmente importantes ya que algunas aportan más valor que otras. Según ISBV, el “valor” es la cuantificación de la importancia que un determinado artefacto o tarea tiene para todas las partes interesadas (stakeholders) en un sistema (Cabrera Moreno, 2009). La ISBV tiene varias áreas de estudio, entre ellas está la ingeniería de requisitos basada en valor, para la cual se han propuesto técnicas de priorización de requisitos basados en valor, tales como: “Analytic Hierachical Process” (AHP) (Karlsson & Ryan, 1997a), “Método de la Mochila” (Jung, 1998) y “Agrupación de Requisitos” (Cleand-Huang & Denne, 2005). Según el estudio (Cabrera Moreno, 2009) una desventaja común de estas técnicas es que no proponen mecanismos de estandarización de las variables que se deben considerar para determinar el valor de cada necesidad, por lo cual la asignación de valor es considerada como imprecisa y por ende dichas técnicas no pueden ser aplicables a proyectos reales.

Las técnicas de la ingeniería de requisitos orientada por objetivos refinan la visión global del negocio, exponen el valor de un sistema/software y proporcionan la fundamentación para su desarrollo (Herrera et al., 2017). El “Método Genérico de Aplicación de Valor” (GVAL) (Cabrera Moreno, 2009) permite calcular de manera cuantitativa el valor de cada necesidad. Sin embargo, a pesar de que este método permite priorizar las necesidades en base su valor cuantitativo, no considera de manera explícita los objetivos estratégicos de la organización para la priorización.

Este trabajo propone un método para la priorización de necesidades de usuarios de software basado en el valor que aporta el satisfacer una necesidad a la estrategia organizacional, y así evitar inversiones innecesarias en implementación de software. Por lo que, para considerar de manera explícita los objetivos estratégicos de la organización durante la priorización de necesidades de usuario, y proveer mecanismos de estandarización de las variables que se deben considerar para determinar el valor de satisfacer las necesidades de usuario el método propuesto integra: i) técnicas de la ingeniería de software basada en valor, tales como GVAL y el “Enfoque de Realización de Beneficios” (BRA)(Thorp & Fujitsu, 2007); con ii) técnicas de la ingeniería de requisitos orientada por objetivos, tal como el lenguaje el Lenguaje de Modelo de Requerimientos Orientado a Metas (GRL)(ITU-T, 2018). BRA y GRL son utilizadas para representar la relación entre los requerimientos de software y los objetivos estratégicos de la organización. Mientras que, GVAL es utilizado tanto para la estandarización de las variables que se deben considerar para determinar el valor de satisfacer cada necesidad, como para establecer de forma cuantitativa el valor de satisfacer las necesidades de usuario. La aplicación del método propuesto se muestra con un ejemplo de priorización de necesidades de usuario en base al valor que aporta a la estrategia organizacional.

El resto del artículo está organizado de la siguiente manera: la sección 2 presenta los trabajos relacionados al método propuesto, la sección 3 describe el método propuesto, la sección 4 presenta un ejemplo ilustrativo de la ejecución del método en un caso real, y finalmente la sección 5 presenta las conclusiones.

1.      Trabajos relacionados

Al realizar la búsqueda de trabajos relacionados que permitan realizar la priorización de necesidades de usuario, alineada a la estrategia de negocio se pueden mencionar los siguientes trabajos:

La propuesta presentada en (Genoves, 2019) hace uso del modelado de objetivos usando el lenguaje GRL para representar “por qué” se requiere implementar las necesidades de usuario desde el punto de vista del negocio. Sin embargo, no tiene en consideración la priorización de necesidades de usuario ya que se centra en la evaluación de alternativas de solución para estas necesidades. Por otro lado (Cabrera Moreno, 2009), propone GVAL, un enfoque de ingeniería de software basada en valor, el cual permite priorizar las necesidades de usuario calculando el valor cuantitativo de cada necesidad. Sin embargo, no considera de manera explícita los objetivos estratégicos de la organización para la priorización. En el presente trabajo de investigación se considera el método GVAL ya que permite una priorización basada en valor.

 

2.      Método de priorización de necesidades de usuario basado en su valor estratégico

En esta sección se presenta el método propuesto en este trabajo, un método para la priorización de necesidades de usuario basado en el valor que el satisfacer las necesidades aporta a la estrategia de la organización.

2.1.   Descripción de las actividades del método

La Figura 1 muestra una descripción del método propuesto haciendo uso del lenguaje Software & Systems Process Engineering Metamodel Specification (SPEM), un estándar del Object Management Group (OMG) para el modelado de procesos de software (Francisco Ruiz, 2008). Este método consta de dos fases principales: “Fase 1: Alinear necesidades con la estrategia de negocio” y “Fase 2: Determinar prioridad de necesidades”.

Figura 1: Método para la priorización de necesidades de usuario basado en el valor estratégico

 

 

3.1.1        Fase 1: Alinear necesidades con estrategia de negocio

En esta fase el analista de negocio realiza la alineación de las necesidades de usuario con los objetivos estratégicos de la organización. Si hay necesidades de usuario que no estén alineadas a la estrategia del negocio estas no serán consideradas para la “Fase 2: Determinar prioridad de necesidades”.

Las actividades para ejecutar en esta fase, así como sus entradas y salidas, se describen a continuación:

 

3.1.1.1: Mapear necesidades de usuario y objetivos estratégicos

En esta actividad, por cada necesidad se elabora el Diagrama de relación entre necesidades y objetivos estratégicos con el propósito de identificar si existe o no relación entre la necesidad y el o los objetivos estratégicos de la empresa.

Entradas: Tal como se indica en la Figura 1 esta actividad utiliza las siguientes entradas:

·         Objetivos estratégicos del negocio: Listado de objetivos estratégico de la organización.

·         Necesidades de usuario: Las necesidades de usuario son descritas a través de un listado. Cada necesidad representa “Una condición o necesidad de un usuario para resolver un problema o alcanzar un objetivo”(Arias Chaves, 2006).

Salidas: Como resultado de la ejecución de esta actividad, tal como se muestra en la Figura 1 se generan los siguientes resultados.

·         Diagrama de relación entre necesidades y objetivos estratégicos: El analista construye este diagrama aplicando la técnica BRA la cual define “una cadena de resultados” que contempla las iniciativas de trabajos de TI y sus contribuciones de cara a la empresa, así las iniciativas (“Initiative”) en los sistemas deben ser conectadas con los beneficios (“Outcome”) que éstas aportan, y con las suposiciones (“Assumption”) que permiten la consecución de los beneficios (Cabrera Moreno, 2009). En donde, de acuerdo con los conceptos utilizados en el método propuesto en este artículo: las iniciativas en BRA corresponden a las necesidades de usuario, los beneficios en BRA corresponden a los objetivos estratégicos del negocio y las suposiciones en BRA corresponden a las premisas bajo las cuales se logra la consecución de los objetivos estratégicos.

·         Lista de necesidades mapeados con objetivos estratégicos: Un listado en el que por cada necesidad se identifica el objetivo estratégico al que aporta. El listado de necesidades que tienen relación con los objetivos estratégicos es considerado para la priorización que se realiza en la Fase 2: Determinar prioridad de necesidades.

 

3.1.1.2: Determinar modelo de objetivos

En esta actividad el analista elabora el Modelo de objetivos con el propósito de especificar las necesidades de usuario en términos de los requisitos de software cuya implementación satisfacer las necesidads, y como dichos requisitos se relacionan con la estrategia del negocio.

Entradas: Esta actividad, tal como se muestra en la Figura 1 toma como entrada los artefactos generados en la actividad anterior, éstas son:

·         Diagrama de relación entre necesidades y objetivos estratégicos.

·         Lista de necesidades mapeados con objetivos estratégicos.

Salidas: Como resultado de esta actividad tal como se observa en la Figura 1 se genera el

·         Modelo de Objetivos: Representación, utilizando el lenguaje GRL, de las necesidades en términos más específicos. GRL apoya el modelado orientado a objetivos y el razonamiento sobre los requisitos, proporcionando construcciones para expresar varios tipos de conceptos relacionados al proceso de requisitos. Apoya la especificación de objetivos, tareas, contribuciones, dependencias, refinamiento y propagación entre los actores para satisfacer las necesidades de las partes interesadas.

Se decidió usar GRL ya que de acuerdo a (Herrera et al., 2017), éste  es apropiado para realizar el modelado de necesidades de usuario considerando la estrategia del negocio. El modelo de objetivos contiene los siguientes elementos:

  • Objetivos.- cada necesidad es escrita como objetivo, esto en base al diagrama de relación correspondiente a la necesidad; en donde se especifica a que objetivo aporta si la necesidad es satisfecha.
  • Actores.- los interesados en la consecución de los objetivos.
  • Tareas.- las tareas de implementación de software que se deben realizar para alcanzar los objetivos que serán cumplidos para cubrir cada necesidad.
  • Relaciones.- corresponden a las relaciones de contribución entre tareas y objetivos y entre objetivos.

 

3.1.2        Fase 2: Determinar prioridad de necesidades

En esta fase el analista determina la priorización de las necesidades que están relacionadas con la estrategia del negocio, usando el GVAL. Según GVAL para determinar la priorización se identifican indicadores, tareas y las necesidades; luego se establece el valor de los indicadores con respecto a las tareas y el valor de los indicadores con respecto a las necesidades. Seguidamente se determina el valor de cada tarea con respecto a cada necesidad y de acuerdo con los valores límites de las tareas se determina la priorización (Cabrera Moreno, 2009). Las actividades para ejecutar en esta fase se describen a continuación.

3.1.2.1  Elegir indicadores

Los Indicadores de Valor son estimaciones o evaluaciones de atributos que representan algún aspecto que tiene influencia en la percepción de los implicados de un proyecto de software (Cabrera Moreno, 2009).

En esta actividad el analista, juntamente con las partes interesadas, seleccionan el conjunto de indicadores de valor (I1,I2,I3….In) en base a los objetivos representados en el Modelo de objetivos y los documenta en el ítem ‘Indicadores’ del Documento de priorización. En el trabajo (Genoves, 2019) se menciona un listado de indicadores de valor que son considerados como ejemplos para poder seleccionar del modelo de objetivos el conjunto de indicadores que se usarán para ejecutar la priorización.

A este punto luego de haber ejecutado todas las actividades anteriores, los indicadores de valor representan los objetivos que se desean alcanzar cuando las necesidades de usuario sean satisfechas.

Entradas: Esta actividad tiene como entrada el Modelo de objetivos.

Salidas: En esta actividad se crea el Documento de priorización que consta de diversos ítems, en esta actividad se listan los indicadores en el ítem ‘Indicadores’.

3.1.2.2  Elegir tareas

En esta actividad el analista, juntamente con las partes interesadas, seleccionan las tareas a priorizar(T1,T2,T3….Tn) en base a las tareas definidas en el Modelo de objetivos y el Listado de indicadores de valor. Por cada tarea se define los niveles de ejecución, los cuales representan el modo en que las tareas pueden ser ejecutadas. El analista documenta las tareas seleccionadas en el ítem ‘Tareas’ del Documento de priorización.

Entradas: Esta actividad tiene como entrada el Modelo de objetivos y el ítem ‘Indicadores’ del Documento de priorización.

Salidas: En esta actividad se completa el Documento de priorización con el ítem ‘Tareas’.

3.1.2.3  Asignar relación entre indicadores y tareas

En esta actividad el analista, juntamente con las partes interesadas determinan de forma cuantitativa el valor de cada tarea con respecto a cada indicador. Para ello se realiza lo siguiente:

·      Se determina cuantitativamente la importancia relativa de cada indicador (PI1,PI2,PI3…..PIN) usando AHP.

·      Se determina el conjunto de tareas que se ejecutaran de acuerdo a cada indicador de tal manera que se tiene el conjunto de tareas con los respectivos indicadores: T1={ I1, I2}, T2={I1,,I3}….TN={ I2, IN}.

·      Por cada tarea se determinar el valor relativo de cada tarea obteniendo: T1={ PI1*I1, PI2*I2}, T2={ PI1*I1, PI3*I3}….TN={ PI2*I2, PIN*IN}.

·       Se determina la suma de valor relativos de indicadores relacionados por tarea: ∑T1={PI1+PI2}, ∑T2={PI1+PI3}….∑TN={ PI2+PIN }.

·      Por cada tarea determinar el valor del indicador normalizado obteniendo: T1={ (PI1/∑T1)*I1, (PI2/∑T1)*I2 }, T2={ (PI1/∑T2)*I1, (PI3/∑T2)*I3}….TN={ (PI2/∑T3)*I2, (PIN/∑T3)*IN}.

·      Se grafica el valor de cada indicador normalizado por tarea.

Todo lo ejecutado en esta actividad es documentado en el ítem ‘tareas/indicadores’ del Documento de priorización.

Entradas: Esta actividad tiene como entrada el ítem ‘Indicadores’ e ítem ‘Tareas’ del Documento de priorización.

Salidas: En esta actividad se completa el Documento de priorización con el ítem ‘tareas/indicadores’.

 

3.1.2.4  Asignación de valor de cada indicador con respecto a cada necesidad

En esta actividad el analista, juntamente con las partes interesadas determinan de forma cuantitativa el valor de cada necesidad con respecto a cada indicador. Para ello se realiza lo siguiente:

·         A cada necesidad especificada en el listado de necesidades, se le asigna un código por ejemplo: N1,N2,N3,…NN.

·         Se determina el conjunto de necesidades que se ejecutaran de acuerdo a cada indicador obteniendo así:  N1={ I2, I3}, N2={I1,,I2}….NN={ I3, IN}.

·         Por cada necesidad se determinar el valor relativo de cada indicador relacionado,  así:N1={ PI2*I2, PI3*I3}, N2={ PI1*I1, PI3*I3}….TN={ PI3*I3, PIN*IN}.

·         Se determina la suma de valor relativos de indicadores relacionados por necesidad, así: ∑N1={PI3+PI3}, ∑N2={ PI1+PI2}….∑TN={ PI3+PIN }.

·         Por cada necesidad determinar el valor del indicador normalizado, así: N1={ (PI2/∑N1)*I2, (PI3/∑N1)*I3 }, N2={ (PI1/∑N2)*I1, (PI2/∑N2)*I2}….NN={ (PI3/∑NN)*I3, (PIN/∑NN)*IN}).

·         Finalmente se grafica el valor de cada indicador normalizado por necesidad.

Todo lo ejecutado en esta actividad es documentado en el ítem ‘indicadores/necesidades’ del Documento de priorización.

Entradas: Esta actividad tiene como entrada el ítem ‘Indicadores’ del Documento de priorización y las Necesidades de usuario.

Salidas: En esta actividad se completa el Documento de priorización con el ítem ‘indicadores/necesidades’.

3.1.2.4 Calcular el valor de cada tarea con respecto a cada necesidad

En esta actividad el analista calcula el valor relativo asociado a cada tarea por cada necesidad  (Vt) usando la Ecuación 1 y documentando el resultado en la matriz que se observa en la tabla  de Valor de tarea por necesidad (ver Tabla 1). El resultado de esta actividad es documentada en el ítem ‘valor de tareas respecto a cada necesidad’ del Documento de priorización.

 

 

Vt es el valor relativo asociado a la tarea T por cada necesidad

n es el número de indicadores por tarea

PIi es el valor asignado al indicador por tarea

Ii es el valor asignado al indicador por necesidad

 

 

Ecuación 2  Obtención de valor asociado a una tarea (Cabrera Moreno, 2009)

 

NECESIDAD

TAREA

N1

N2

NN

T1

VT1N1

VT2N2

VT1NN

T2

VT2N1

VT2N2

VT2NN

TN

VTNN1

VTNN2

VTNNN

Tabla 1 Valor de tarea por necesidad

 

 

Entradas: Esta actividad tiene como entrada el ítem ‘tareas/indicadores’ y el ítem ‘indicadores/necesidades’ del Documento de priorización.

Salidas: En esta actividad se completa el Documento de priorización con el ítem ‘valor de tareas respecto a cada necesidad’.

3.1.2.4 Determinar priorización

En esta actividad el analista determina la prioridad de cada necesidad y el nivel en que se debe ejecutar cada tarea. Para determinar la prioridad se establece que tarea es la primera de acuerdo con el orden de tareas que se usa para la implementación del software, seguidamente de dicha tarea se toma el valor máximo especificado en la tabla de Valor de tarea por necesidad (ver Tabla 1); la necesidad que corresponda a dicho valor será la necesidad que ocupe la prioridad 1; la necesidad que tenga el siguiente valor más alto ocupará la prioridad 2 y así sucesivamente.

Para determinar el nivel en que se debe ejecutar cada tarea se obtiene los valores límites para los niveles de ejecución establecidos por cada tarea, de la siguiente manera: se calcula el porcentaje de cada intervalo de la tarea identificando el valor máximo de cada tarea representado en la tabla de Valor de tarea por necesidad (ver Tabla 1) y dividiéndolo para el número de opciones de niveles de ejecución de la tarea. Con dicho valor se toma el primer nivel de ejecución de la tarea,  se establece como límite inferior el valor 0, y se suma el porcentaje de intervalo para obtener el límite superior de dicho nivel de ejecución. Para el siguiente nivel de ejecución de la misma tarea se toma como límite inferior el siguiente valor del límite superior del intervalo precedente y se suma el porcentaje de intervalo obteniendo así el límite superior del segundo nivel. En caso de existir más niveles de ejecución de la tarea para determinar sus límites se aplica lo mismo que se realizó para el segundo nivel de ejecución. Luego se crea la Tabla de Priorización (ver Tabla 2) considerando lo siguiente: en la columna ‘Prioridad’ y ‘Necesidad’ se lista las necesidades priorizadas desde la más prioritaria a la menos prioritaria, luego en la columna ‘Nivel de ejecución de tareas’ por cada fase de software se lista las tareas con sus respectivos niveles de ejecución y valores límites correspondientes, luego por cada necesidad, nivel de ejecución de tarea; considerando el valor especificado en la tabla de Valor de tarea por necesidad (ver Tabla 1)  se marca con una x la forma en que se ejecutara cada tarea para cada necesidad. Todo lo ejecutado en esta actividad es documentado en el ítem ‘priorización’ del Documento de priorización.

 

 

 

Nivel de ejecución de tareas

 

 

Análisis

 

 

T1

T2

Prioridad

 

 

 

 

 

 

Necesidad

No existe

(0-límite superior)

Informal (límite inferior-límite superior)

Documento

(límite inferior -límite superior)

 

No necesita

(límite inferior-límite superior)

Documento

(límite inferior-límite superior)

Primero

 

N2

x

 

 

x

 

Segundo

 

N1

x

 

 

x

Tabla 2 Priorización

Entradas: Esta actividad tiene como entrada el ítem ‘valor de tareas respecto a cada necesidad’ ‘tareas/indicadores’ y el ítem ‘tareas’ del Documento de priorización.

Salidas: En esta actividad se completa el Documento de priorización con el ítem ‘priorización’.

 

3.1.2.4 Formalizar priorización

Finalmente, una vez que los resultados (ver Tabla 2) del proceso de priorización han sido validados por el patrocinador el proyecto se elabora y firma una acta de formalización de priorización.

Entradas: Esta actividad tiene como entrada la Lista de necesidades mapeados con objetivos estratégicos y el ítem ‘priorización’ del Documento de priorización.

Salidas: En esta actividad genera la Acta de formalización de priorización.

 

3.      Ejemplo ilustrativo

La ejecución del modelo fue realizada para un caso real de la empresa llamada Softservice. A continuación, en la sección 3.1 se describe el contexto del caso al cual se aplicó el método propuesto y en la sección 3.2 se describe la ejecución del método.

3.1.   Contexto del caso de la empresa Softservice

Sofservice es una empresa dedicada a brindar servicios de desarrollo de software. La misión de la empresa es “Influenciar a nivel nacional e internacional el reconocimiento de talento local y ofrecer servicio de desarrollo de software que agregue valor a nuestros clientes”. Su visión es: Proveer tecnologías informáticas innovadoras que contribuyan a que los procesos del sector público y privado sean eficientes y eficaces.

Actualmente la línea de servicio “Control de calidad de software” de la empresa Sofservice con el propósito de mejorar sus servicios y captar nuevos clientes ha iniciado el proyecto de desarrollo de Software  “Implantar herramientas de gestión de pruebas automáticas y manuales” para el cual se tiene algunas necesidades que implementar. Considerando que la empresa requiere implementar las necesidades considerando el valor que el satisfacer cada una de ellas aporta a la estrategia organizacional, se ha decidido priorizar las necesidades mediante la ejecución del método mostrado en la Figura 1.

 

 

3.2.   Ejecución

De acuerdo con las entradas especificadas en la  del modelo planteado y al caso de estudio de la empresa Softservice, las entradas que se usarán para la ejecución del modelo se muestran en la tabla  Tabla 3 que describe los Objetivos estratégicos del negocio y la Tabla 4 que describe las Necesidades de usuario.

 

Código

Objetivo estratégico

OE012021

Optimizar servicio de control de calidad para captar más clientes

OE022021

Optimizar procesos operativos de las empresas

OE032021

Entrenar a profesionales recién graduados en el servicio de control de calidad

OE042021

Armar laboratorio de IA para pruebas y creación de bots

OE052021

Para el 2021 ofrecer el servicio de automatización de pruebas a clientes locales e internacionales

OE062021

Ofrecer el servicio de control de calidad manual a clientes internacionales entre el 2021 y 2022

OE072021

Ofrecer el servicio de creación de bots para al menos un cliente local en el 2021

Tabla 3 Objetivos estratégicos

 

 

 

Código de necesidad

Necesidades de usuario

P012021_NEC_01

Adaptar herramienta de software libre para gestión de pruebas manuales

P012021_NEC_02

Adaptar módulo de registro de necesidades

P012021_NEC_03

Adaptar módulo de registro de planes de pruebas y casos de pruebas

P012021_NEC_04

Integrar herramienta de gestión de pruebas con versionador de código

P012021_NEC_05

Adaptar módulo de informes de avance de pruebas

P012021_NEC_06

Registro automático de ejecución de pruebas automáticas

Tabla 4 Necesidades de usuario

 

Al ejecutar la fase 1 ‘Alinear necesidades con estrategia de negocio’ del método, como primera salida se obtuvo el ‘Diagrama de relación entre necesidades y objetivos’ [1] como se observa en la Figura 2.

Figura 2 Diagrama de relación entre necesidades y objetivos

 

 

Luego se determinó la siguiente salida ‘Listado de necesidades mapeadas con objetivos estratégicos’ que se muestra en la tabla de Listado de necesidades mapeadas con objetivos estratégicos (ver Tabla 5). El listado se lo realizó en base a los ‘Diagramas de relación entre necesidades y objetivos’. El diagrama de la NEC_01 y la NEC_03 son iguales por lo cual la NEC_03 no consta en el listado de necesidades a priorizar.

 

 

Código de Necesidad

Necesidad

Código de Objetivo estratégico

Objetivo estratégico al que aporta

P012021_NEC_01

Adaptar herramienta de software libre para gestión de pruebas manuales

OE012021

Aumentar la captación de clientes locales para el servicio de control de calidad de software y Captar clientes internaciones para brindar el servicio de control de calidad de software

P012021_NEC_02

Adaptar módulo de registro de necesidades

P012021_NEC_04

Integrar herramienta de gestión de pruebas con versionador de código

P012021_NEC_05

Adaptar módulo de informes de avance de pruebas

P012021_NEC_06

Registro automático de ejecución de pruebas automáticas

Tabla 5 Listado de necesidades mapeadas con objetivos estratégicos

 

 

Finalmente se determinó la última salida de la fase 1 que es el ‘Modelo de Objetivos’ de las necesidades a ser priorizadas. Dicho modelo se muestra en la imagen ¡Error! No se encuentra el origen de la referencia..

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 

 

 

 

Figura 3 Modelo de Objetivos


Para ejecutar la Fase 2 ‘Determinar prioridad de necesidades’ primeramente se eligió los indicadores y tarea en base al modelo de objetivos mencionado en la ¡Error! No se encuentra el origen de la referencia.. Los indicadores seleccionados se muestran en la tabla de Listado de indicadores (ver Tabla 6) y las tareas seleccionadas se muestran en la tabla de Listado de tareas (ver Tabla 7).

 

Código de indicador

 

Nombre

Quien proporciona

(implicados o desarrolladores)

Tipo

(objetivo o subjetivo)

I1

Flexibilidad de herramienta

Implicados

subjetivo

I2

Optimizar tiempo en proceso de control de calidad

Implicados

subjetivo

I3

Reducir costo del proceso de control de calidad

Implicados

subjetivo

I4

Centralización de datos del proceso de control de calidad

Implicados

subjetivo

I5

Disponibilidad de información centralizada del proceso de calidad

Implicados

subjetivo

I6

Disponibilidad de soporte

Implicados

subjetivo

I7

Escalabilidad de usuarios

Implicados

subjetivo

Tabla 6 Listado de indicadores

 

Código de tarea

Nombre de tarea

Equivalente con tarea de Modelo de Objetivos

Fase de software

Niveles de ejecución

T1

Definición de requisitos según cliente

Especificar necesidades de adaptación según cliente

Análisis

No existe
Informal
Documento
Modelado

T2

Tareas para la aceptación de usuario

Hacer manuales de adaptaciones

Análisis

No necesita
Documento
Prototipo
Prototipo con funcionalidad

T3

Realización de implementación de cambios

Modificar código de acuerdo con especificación del cliente

Codificación

Se realiza
No se realiza

T5

Documentación

Documentar codificación

Codificación

No existe
Requerida por clase
Requerida por paquete
Requerida por método y atributo

T6

Pruebas Funcionales

Hacer pruebas

Pruebas

No se hacen
Se hacen al 50%
Se hacen al 100%

T7

Pruebas de aceptación

Hacer pruebas

Pruebas

No se hacen
Se hacen al 50%
Se hacen al 100%

T8

Pruebas de rendimiento

Ejecutar pruebas de rendimiento

Pruebas

No se hacen
Se hacen al 50%
Se hacen al 100%

Tabla 7 Listado de tareas

Luego de seleccionar los indicadores y tareas se ejecutó el método GVAL y resultad de ello se obtuvo el valor de cada necesidad con cada tarea como se muestra en la tabla de Valor cuantitativo de cada necesidad (ver Tabla 8).

NECESIDAD

TAREA

P012021_NEC_01

P012021_NEC_02

P012021_NEC_04

P012021_NEC_05

P012021_NEC_06

T1

22,2

12,82

20,69

14,55

22,2

T2

22,04

13,06

20,55

13,89

21,62

T3

22,53

12,88

18,26

14,64

23,05

T5

22,2

12,82

20,69

14,55

22,2

T6

22,2

12,82

20,69

14,55

22,2

T7

22,2

12,82

20,69

14,55

22,2

T8

0

12

16

14

6

Tabla 8 Valor cuantitativo de cada necesidad

 

Luego se obtiene los valores límites de los niveles de ejecución de cada tarea, dividiendo el valor cuantitativo máximo de cada necesidad por tarea mostrado en la tabla de Valor cuantitativo de cada necesidad (ver Tabla 8), para el número de opciones de intervalo definidos para cada tarea, obteniendo así lo que se muestra en la tabla de Valores límites de niveles de ejecución de tareas (ver  Tabla 9).

Valores límites de niveles de ejecución de tareas

Código de tarea

Nombre de tarea

Fase de software

Niveles de ejecución

Porcentaje para intervalos

T1

Definición de requisitos según cliente

Análisis

No existe (0-5,55)
Informal (5,56-11,11)
Documento(11,12-16,67)
Modelado(16,68-22,2)

5,55

T2

Tareas para la aceptación de usuario

Análisis

No necesita(0-5,4)
Documento(5,5-10,8)
Prototipo(10,9-16,3)
Prototipo con funcionalidad(16,4-21,62)

5,405

T3

Realización de implementación de cambios

Codificación

No se realiza(0-11,52)
Se realiza(11,53-23,05)

11,525

T5

Documentación

Codificación

No existe(0-5,55)
Requerida por clase(5,56-11,11)
Requerida por paquete(11,12-16,67)
Requerida por método y atributo(16,68-22,2)

5,55

T6

Pruebas Funcionales

Pruebas

No se hacen (0-7,4)
Se hacen al 50%(7,5-14,9)
Se hacen al 100%(15-22,2)

7,4

T7

Pruebas de aceptación

Pruebas

No se hacen (0-7,4)
Se hacen al 50%(7,5-14,9)
Se hacen al 100%(15-22,2)

7,4

T8

Pruebas de rendimiento

Pruebas

No se hacen (0-7,4)
Se hacen al 50%(7,5-14,9)
Se hacen al 100%(15-22,2)

7,4

Tabla 9 Valores límites de niveles de ejecución de tareas

 

 

Considerando los valores límites por tarea mencionados en la tabla de Valores límites de niveles de ejecución de tareas (ver Tabla 9)  y los valores cuantitativos de la tabla de Valor cuantitativo de cada necesidad  (ver Tabla 8), se determina la prioridad de las necesidades como se muestra en la tabla de Priorización de necesidades (ver Tabla 10) y por cada necesidad el nivel de ejecución de las tareas de desarrollo de software, las misma que se muestran en la tabla de Nivel de ejecución de tareas por cada necesidad priorizada para la fase de análisis (ver Tabla 11), tabla de Nivel de ejecución de tareas por cada necesidad priorizada para la fase de codificación (ver Tabla 12), tabla de Nivel de ejecución de tareas por cada necesidad priorizada para la fase de pruebas (ver Tabla 13) . La lectura de la tabla de Nivel de ejecución de tareas por cada necesidad priorizada para la fase de análisis (ver Tabla 11)  se la realiza de la siguiente manera; por ejemplo para la necesidad ‘P012021_NEC_01:Adaptar herramienta de software libre para gestión de pruebas manuales’ que tiene prioridad 1; la tarea T1 de análisis debe ser realizada en base a un modelo; la tarea T2 de análisis debe ser realizada mediante un prototipo con funcionalidad; la tarea T3 de codificación se realiza ; la tarea T5 de codificación es requerida por método y atributo; la tarea T6 de pruebas se hace al 100%; la tarea T7 de pruebas se hace al 100% y la T8 de pruebas no se hace.

Por lo mencionado en el párrafo anterior se concluye que; si se ejecuta las tareas en niveles mayores a los recomendados en las tablas Tabla 11, Tabla 12 y Tabla 13 se generaría un desperdicio de recursos y si se ejecutan en menores niveles entonces la implementación de la necesidad no aportaría valor a la estrategia de la organización.

 

Prioridad

Necesidad

1

P012021_NEC_01

2

P012021_NEC_06

3

P012021_NEC_04

4

P012021_NEC_05

5

P012021_NEC_02

Tabla 10 Priorización de necesidades

 

 

Necesidad

Nivel de ejecución de tareas

Análisis

T1

T2

No existe

(0-5,55)

Informal

(5,56-11,10)

Documento

(11,11-16,5)

Modelado

(16,6-22,2)

No necesita

(0-5,4)

Documento

(5,5-10,8)

Prototipo

(10,9-16,3)

Prototipo con funcionalidad

(16,4-21,62)

P012021_NEC_01

 

 

 

X



 

 

X

P012021_NEC_06

 

 

 

X

 

 

 

X

P012021_NEC_04

 

 

 

X

 

 

 

X

P012021_NEC_05

 

 

X

 

 

 

X

 

P012021_NEC_02

 

 

X

 

 

 

X

 

Tabla 11 Nivel de ejecución de tareas por cada necesidad priorizada para la fase de análisis

 

Necesidad

Nivel de ejecución de tareas

Codificación

T3

T5

No se realiza

(0-11,52)

Se realiza

(11,53-23,05)

No existe

(0-5,55)

Requerida por clase

(5,56-11,11)

Requerida por paquete

(11,12-16,67)

Requerida por método y atributo

(16,68-22,2)

P012021_NEC_01

 

X

 

 

 

X

P012021_NEC_06

 

X

 

 

 

X

P012021_NEC_04

 

X

 

 

 

X

P012021_NEC_05

 

X

 

 

X

 

P012021_NEC_02

 

X

 

 

X

 

Tabla 12 Nivel de ejecución de tareas por cada necesidad priorizada para la fase de codificación

 

Necesidad

Nivel de ejecución de tareas

Pruebas

T6

T7

T8

No se hacen

(0-7,4)

Se hacen al 50%

(7,5-14,9)

Se hacen al 100%

(15-22,2)

No se hacen

(0-7,4)

Se hacen al 50%

(7,5-14,9)

Se hacen al 100%

(15-22,2)

No se hacen (0-7,4)

Se hacen al 50%

(7,5-14,9)

Se hacen al 100%

(15-22,2)

P012021_NEC_01

X

 

X

 

 

X

 

 

 

P012021_NEC_06

X

 

X

 

 

X

 

 

 

P012021_NEC_04

 

 

X

 

 

X

 

 

X

P012021_NEC_05

 

X

 

 

 

 

X

 

 

P012021_NEC_02

 

X

 

 

 

 

X

 

 

Tabla 13 Nivel de ejecución de tareas por cada necesidad priorizada para la fase de pruebas

 

 

Finalmente se realiza una reunión con los interesados de las necesidades y el gerente de tecnología para exponer la priorización recomendada con las respectivas observaciones y se genera el acta de formalización de la priorización.

 

Conclusiones

En este artículo se ha presentado un método para la priorización de necesidades de usuario basado en el valor que el satisfacer las necesidades aporta a la estrategia de la organización. Este método considera de manera explícita los objetivos estratégicos de la organización durante la priorización de necesidades de usuario, y provee mecanismos de estandarización de las variables que se deben considerar para determinar el valor de satisfacer las necesidades de usuario.

Este método puede ser de utilidad para analistas durante su proceso de toma de decisiones en las etapas tempranas de desarrollo de software para considerar aquellas necesidades de usuario cuya satisfacción proporciona más valor a la estrategia organizacional.          

La aplicabilidad de este método ha sido mostrada con la ejecución de un ejemplo ilustrativo basado en un escenario real. Sin embargo, existe la limitante de que el ejemplo utilizado puede no reflejar suficiente complejidad y por lo tanto como el método planteado puede ser beneficioso en esos casos. A pesar de ello consideramos que el método propuesto es lo suficientemente robusto.

Se pretende hacer una evaluación empírica del método planteado a partir de un protocolo que permita evaluar la efectividad del método propuesto. Finalmente, se pretende crear un entorno basado en Eclipse para automatizar la aplicación del método propuesto.

 

Referencias

1.        Arias Chaves, M. (2006). La ingeniería de requerimientos y su importancia en el desarrollo de proyectos de software. Intersedes. https://www.redalyc.org/pdf/666/66612870011.pdf

2.        Aurum, A., & Wohlin, C. (Eds.). (2005). Engineering and managing software requirements. Springer.https://repository.dinus.ac.id/docs/ajar/%5bAyb%C3%BCke_Aurum_(Editor),_Claes_Wohlin_(Editor)%5d_En(BookFi.org)_.pdf

3.        Boehm, B. (2003). Value-based software engineering: Reinventing. ACM SIGSOFT Software Engineering Notes, 28(2), 3. https://doi.org/10.1145/638750.638775

4.        Cabrera Moreno, D. (2009). CONSTRUCCION Y EVOLUCIÓN DEL SOFTWARE BASADOS EN VALOR.https://www.educacion.gob.es/teseo/imprimirFicheroTesis.do;jsessionid=0A8C7DD7B0B0A8E9836CAB48BB5A47E9

5.        Cleand-Huang, J., & Denne, M. (2005). Financially informed requirements prioritization. https://www.academia.edu/29682425/Financially_informed_requirements_prioritization

6.        Francisco Ruiz, J. V. (2008). Guía de Uso de SPEM 2 con EPF Composer.https://alarcos.esi.uclm.es/ipsw/doc/guia-spem2&epf_v30.pdf

7.        Genoves, C. C. (2019). (PDF) Una Aproximación Basada en Valor para la Priorización de Alternativas en Modelos de Objetivos. ResearchGate. https://www.researchgate.net/publication/334895637_Una_Aproximacion_Basada_en_Valor_para_la_Priorizacion_de_Alternativas_en_Modelos_de_Objetivos

8.        Herrera, M. D., Rocca, A. M. L., & Ordaz, F. L. D. (2017). EVALUANDO TÉCNICAS DE MODELADO DE METAS DESDE EL PUNTO DE VISTA DE LA PLANIFICACIÓN ESTRATÉGICA DEL NEGOCIO. Revista GTI, 16(44), 49-63.

9.        ITU-T, I. T. U. (2018). User Requirements Notation (URN) – Language definition. https://www.itu.int/rec/T-REC-Z.151-201810-I/

10.    Jung, H. W. (1998). Optimizing Value and Cost in Requirements Analysis. https://ieeexplore.ieee.org/document/687950

11.    Karlsson, J., & Ryan, K. (1997a). A cost-value approach for prioritizing requirements. IEEE Software, 14(5), 67-74. https://doi.org/10.1109/52.605933

12.    Karlsson, J., & Ryan, K. (1997b). A cost-value approach for prioritizing requirements. IEEE Software, 14(5), 67-74. https://doi.org/10.1109/52.605933

13.    Thorp, J., & Fujitsu, C. (2007). Realizing the Business Benefits of Information Technology. https://www.fujitsu.com/us/imagesgig5/Information_Paradox_Complete_2007.pdf

14.    Vázquez, L. (2012). Modelado y análisis de los Factores Críticos de Éxito de los proyectos de software mediante Mapas Cognitivos Difusos. https://www.redalyc.org/pdf/1814/181423798006.pdf

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

© 2022 por los autores. Este artículo es de acceso abierto y distribuido según los términos y condiciones de la licencia Creative Commons Atribución-NoComercial-CompartirIgual 4.0 Internacional (CC BY-NC-SA 4.0)

(https://creativecommons.org/licenses/by-nc-sa/4.0/).



[1] Solo se muestra  el diagrama de la NEC_01 por motivos de tamaño del artículo.

Enlaces de Referencia

  • Por el momento, no existen enlaces de referencia
';





Polo del Conocimiento              

Revista Científico-Académica Multidisciplinaria

ISSN: 2550-682X

Casa Editora del Polo                                                 

Manta - Ecuador       

Dirección: Ciudadela El Palmar, II Etapa,  Manta - Manabí - Ecuador.

Código Postal: 130801

Teléfonos: 056051775/0991871420

Email: polodelconocimientorevista@gmail.com / director@polodelconocimiento.com

URL: https://www.polodelconocimiento.com/