Está en la página 1de 12

TIA

Tecnología, Investigación y Academia

El papel de la Ingeniería de
Software en el desarrollo de
aplicaciones
The role of software engineering in application
development
Jenny Carolina Bayona Zubieta1, Olga Lucía Pineda Samacá2, Oscar Daniel
Pardo Mahecha3

Para citar este artículo: Bayona, J. C.; Pineda, O. L.; Pardo, O. D. (2016). El papel de la Ingeniería de
Software en el desarrollo de aplicaciones, 4(1), 3-14.
Artículo
de investigación

Fecha de recepción: Resumen


29-05-2014 La Ingeniería de Software es una nueva área de la ingeniería y es considerada como una
Fecha de aceptación: disciplina que se encarga de crear y mantener las aplicaciones de software haciendo uso de
14-01-2015 tecnologías, prácticas, métodos y técnicas para el desarrollo de programas informáticos con
calidad, apoyándose en las herramientas y los procedimientos que provee la informática
ISSN: 2344-8288 para su aplicación.
Vol. 4 No. 1 Palabras clave: desarrollo de software, métricas, dirección, control, organización,
Enero - Junio 2016 planificación, diseño, pruebas.
Bogotá-Colombia
Abstract
Software engineering is a new area of engineering and it is considered as a discipline
http://revistas.udistrital.edu.co/ojs/index.php/tia/issue/archive

responsible for creating and maintaining software applications using technologies, practices,
methods and techniques for quality software development, relying on tools and procedures
that provides computing for its application.
Keywords: software development, metrics, management, control, organization, planning,
design, testing.

1
Ingeniera en Telemática. Correo electrónico: jennycarob@gmail.com
2
Ingeniera de Sistemas, Universidad Católica de Colombia. Correo electrónico: opineda11259@hotmail.com
3
Ingeniero en Telemática. Correo electrónico: oscar_dpm@hotmail.com

Publicación de la Facultad de Ingenieria


Tecnol.Investig.Academia TIA
ISSN: 2344-8288 • Vol. 4 No. 1 • Enero - Junio 2016 • Bogotá-Colombia

Introducción mantenerlos. Se conoce también como desarrollo


de software o producción de software (Bohem,
En la actualidad, para el desarrollo del software se 1976).
requiere de una mayor productividad y calidad tanto • Ingeniería de software trata del establecimiento de
de los productos como de los procesos involucrados, los principios y métodos de la ingeniería a fin de
así como la gestión de los mismos mediante la obtener software de modo rentable, que sea fiable
planificación, las estimaciones, el control y el y trabaje en máquinas reales (Bauer, 1972).
seguimiento de las tareas en curso; es aquí donde la • Es la aplicación de un enfoque sistemático,
Ingeniería de Software juega un papel importante en disciplinado y cuantificable al desarrollo,
el desarrollo de aplicaciones, pues es una disciplina operación y mantenimiento del software; es decir,
que se encarga del manejo de proyectos informáticos. la aplicación de la ingeniería al software (IEEE,
1993).
I. Ingeniería de software
En la Ingeniería se involucran actividades como el
Una definición precisa aún no ha sido contemplada análisis previo de la situación, el diseño del proyecto,
en los diccionarios, sin embargo se pueden citar el desarrollo del software, las pruebas necesarias
las enunciadas por algunos de los más prestigiosos para confirmar su correcto funcionamiento y la
autores[1]: implementación del sistema.
En esta disciplina surge un rol importante:
• Ingeniería de software es el estudio de los principios el “Ingeniero de software”, quien se encarga de
y metodologías para el desarrollo y mantenimiento crear aplicativos informáticos que den solución
de sistemas software (Zelkovitz, 1978). a problemas de información y automatización,
• Ingeniería de software es la aplicación práctica del mediante la gestión, el desarrollo, la operación,
conocimiento científico al diseño y construcción de el mantenimiento, la adquisición, la utilización y
programas de computadora y a la documentación reutilización de servicios y productos de software en
asociada requerida para desarrollar, operar y general.
El papel de la Ingeniería de Software en el desarrollo de aplicaciones
Bayona, J.; Pineda, O.; Pardo, O.

Figura 1. Ingeniería de software [10]

4
ISSN: 2344-8288 • Vol. 4 No. 1 • Enero - Junio 2016 • Bogotá-Colombia

Para la creación de software, el “Ingeniero para alcanzar un objetivo, mejorar los resultados
del software” genera modelos sistémicos o completar una actividad.
aplicando métodos, herramientas y técnicas
computacionales que le permiten construir Proyectos
paquetes informáticos de acuerdo con los Es la integración de una serie de procesos y
requerimientos y las necesidades de los clientes en actividades haciendo uso de una metodología
los diferentes contextos nacional e internacional.4 con el fin de lograr objetivos y metas de la manera
más eficiente y efectiva. En cualquier tipo de
II. Gestión de proyectos proyecto se debe realizar gestión (planificación
y seguimiento durante la duración del proyecto)
La gestión del proyecto de software es el primer de los recursos que se tienen disponibles como
nivel del proceso de ingeniería de software, son dinero, tiempo, personas, herramientas, entre
porque cubre todo el proceso de desarrollo. otros.
Para conseguir que un proyecto de software sea
fructífero se deben tener en cuenta: A. Control
El objetivo de aplicar control en la gestión de
• El ámbito del trabajo a realizar. proyectos es mantener alineado el proyecto con
• Los riesgos en los que se puede incurrir. los objetivos establecidos en su inicio. El control
• Los recursos requeridos. del proyecto se debe realizar en tiempo, recursos,
• Las tareas a llevar a cabo. costes, alcances y demás procesos que pueden
• El esfuerzo (costo) a consumir. impactar positiva o negativamente el proyecto.
• El plan a seguir. La importancia de tener control es que quien
está a cargo de liderar el proyecto puede saber el
El objetivo de la gestión de proyectos es estado actual del mismo y, en caso de que algo
canalizar el trabajo de los desarrolladores de ande mal, puede tomar las acciones correctivas
forma eficiente y productiva, de tal manera pertinentes.
que conduzca al éxito del proyecto. El éxito de
los proyectos incluye la gestión activa de los B. Dirección
El papel de la Ingeniería de Software en el desarrollo de aplicaciones

procesos (gestión de proyectos), a fin de cumplir La dirección de proyectos informáticos está


exitosamente con los requisitos de los interesados compuesta por una serie de actividades las cuales el
como lo es el cliente. Para entender la gestión director del proyecto debe dirigir o gestionar, como:
de proyectos informáticos en la Ingeniería de
Software se debe tener claro los siguientes • Tomar decisiones.
términos: • Impartir instrucciones.
• Liderar grupos (coordinación de personas).
Gestión • Asumir compromisos.
Bayona, J.; Pineda, O.; Pardo, O.

Son todas las actividades y tareas ejecutadas • Supervisar el cumplimiento de las actividades o
por una o más personas con el propósito de tareas asignadas.
administrar (planificar y controlar) las actividades • Adoptar medidas para la corrección de
desviaciones.
• Programar las actividades a desarrollar y asignar
los recursos necesarios.
4 http://www.eam.edu.co/site/presentacioningenieria- • Gestionar información y comunicación
software.php necesarias para el proyecto.

5
ISSN: 2344-8288 • Vol. 4 No. 1 • Enero - Junio 2016 • Bogotá-Colombia

• Gestionar compras y contratos asociados al software. Las evoluciones en las metodologías


proyecto. de desarrollo del software han traído consigo
nuevos retos y formas de pensar alrededor de
C. Reclutamiento la problemática que se ha generado. De igual
Es un proceso en el cual se hace una búsqueda forma, se han introducido fortalezas y debilidades
del personal necesario para poder llevar a cabo alrededor del desarrollo del software.
la realización del proyecto. De este proceso Uno de los puntos más influyentes en el
de selección dependerá en gran parte el éxito cambio y la evolución de las metodologías de
o el fracaso de los proyectos, razón por la desarrollo de software es cómo los sistemas de
cual se debe buscar personas competentes y información y los dominios de tecnología de
altamente calificadas en las funciones que van a información están avanzando rápidamente con
desempeñar y poder así crear grupos de trabajo respecto a las tecnologías disponibles, y atado
multidisciplinarios. a esto, la demanda de aplicaciones con nuevos
objetivos y propósitos, además de los entornos en
D. Organización los que son ejecutadas y el volumen de usuarios
La organización de los proyectos informáticos se que demandan mayor cuidado, no solo en los
encarga de planificar las actividades de tal forma requerimientos funcionales sino también en los
que facilite la realización y el control de cada una no funcionales o atributos de calidad.
de las tareas generadas. Además la organización Estas evoluciones se han convertido en un reto
ayuda a definir los límites de autoridad y la para los profesionales de la ingeniería de software
asignación de obligaciones y responsabilidades para mantener el ritmo de las tecnologías de
de cada uno de los integrantes del equipo. la información disponibles y su aplicación en
diversos dominios.
E. Planificación Dentro de las metodologías de desarrollo
El objetivo de la planificación del proyecto de del software deben estar consideradas las
software es proporcionar un marco de trabajo distintas áreas de conocimiento del ciclo de
que permita al gerente o director estimar vida del software. La siguiente figura muestra las
recursos, costos y actividades o tareas de trabajo. principales áreas:
El papel de la Ingeniería de Software en el desarrollo de aplicaciones

Además, las estimaciones deben intentar definir


los escenarios de mejor y peor caso de modo que A. Requerimientos de software
los resultados del proyecto se puedan acotar. Se puede definir un requisito de software como
una propiedad que debe ser realizada por el
III. Metodologías de desarrollo de software desarrollado o modificado para resolver
software un problema particular; teniendo en cuenta que
el problema puede ser una necesidad del usuario
De manera general, una metodología de en cuanto a la automatización de una tarea de
Bayona, J.; Pineda, O.; Pardo, O.

desarrollo de software describe el marco de quien va a utilizar el software, el apoyo en un


trabajo realizado para estructurar, planificar proceso de negocio, la corrección de un defecto
y controlar el desarrollo de los sistemas de en el software, o para controlar un dispositivo, etc.
información. Lo anterior hace que los requisitos de software
Las metodologías de desarrollo de software en muchas ocasiones sean algo complejo porque
han sido desde los inicios de la construcción pueden ser originados por diferentes usuarios y
del software uno de los puntos principales de a diferentes niveles dentro de la organización
estudio dentro del ciclo de vida de desarrollo de dependiendo del entorno donde se use el sistema.

6
ISSN: 2344-8288 • Vol. 4 No. 1 • Enero - Junio 2016 • Bogotá-Colombia

Figura 2. Guide of the software engineering body of knowledge

Una de las características fundamentales de los software; por ejemplo, en cuanto a la tecnología
requisitos de software es que sean verificables y esto a usar.
hace que en algunas ocasiones esta verificación • Requerimientos funcionales y no funcionales.
sea costosa. Funcionales son los que describen lo que el
Los requisitos de software también tienen otros sistema debe realizar, también conocidos como
atributos, adicionales a los de comportamiento, y capacidades del sistema, y no funcionales son
El papel de la Ingeniería de Software en el desarrollo de aplicaciones

que permiten una clasificación, por ejemplo para su los que están dados para limitar la solución y por
atención por áreas de desarrollo. En muchos casos las restricciones o atributos de calidad como:
estos atributos permiten realizar una priorización usabilidad, seguridad, desempeño, integridad,
de acuerdo a los que tengan mayor valor para el interoperabilidad, fiabilidad, entre otros.
usuario o sean mandatorios. Otro ítem importante • Propiedades emergentes. Hace referencia a
dentro de los requerimientos es la relación o requerimientos que no pueden ser abordados por
dependencia de unos con otros indicando además un solo componente del sistema pero que para
la secuencia de implementación. satisfacción del usuario dependen de cómo inter-
Bayona, J.; Pineda, O.; Pardo, O.

A continuación se relacionan los aspectos más operan todos los componentes de software; por
relevantes en cuanto a requerimientos de software: ejemplo, una respuesta a una solicitud ingresada
por un usuario. Las propiedades emergentes
• Parámetros de producto y parámetros de proceso. dependen totalmente de la arquitectura del
Los parámetros del producto son requisitos a sistema.
desarrollar; por ejemplo, una funcionalidad o • Requerimientos cuantificables. Este aspecto
validación del sistema, y los parámetros del indica que el requerimiento debe expresarse lo
proceso son restricciones sobre el desarrollo del más claro posible, de tal manera que no refleje

7
ISSN: 2344-8288 • Vol. 4 No. 1 • Enero - Junio 2016 • Bogotá-Colombia

ambigüedad; por ejemplo: “que el software Suficiencia, completitud y primitivismo.


sea fácil de usar”, esta definición no está
indicando claramente lo que se está esperando Existe una serie de aspectos fundamentales
en la usabilidad. Esta característica se requiere que deben considerarse en el diseño y que están
especialmente para cubrir los requerimientos atados a la calidad del software, como por ejemplo
no funcionales; por ejemplo: número de el rendimiento. Entre las propiedades que deben
transacciones por segundo, nivel de seguridad contemplarse en el diseño se encuentran:
requerido, tiempo de respuesta esperado, etc.
• Requerimientos del sistema y requerimientos de • Concurrencia.
software. En este punto, se cita la definición: • Control y manejo de eventos.
“an interacting combination of elements • Distribución de componentes.
to accomplish a defined objective. These • Control de excepciones, manejo de errores y
include hardware, software, firmware, people, tolerancia a fallos.
information, techniques, facilities, services, and • Interacción y presentación.
other support elements”, según lo definido por el • Persistencia de datos.
Consejo Internacional de Ingeniería de Sistemas,
International Council on Systems Engineering C. Construcción de software
(INCOSE00)[8]. Dada esta definición, se La construcción del software hace referencia a la
debe aclarar que existen diferencias entre los creación detallada de trabajo y sentido del software
requerimientos del sistema —como requisitos a través de la combinación de la codificación, la
del sistema como un todo— y los requerimientos verificación, las pruebas unitarias, las pruebas
de software son derivados de los requisitos del integrales y la depuración.
sistema. El área de conocimiento de la construcción
de software está vinculada a las demás áreas de
B. Diseño de software conocimiento del ciclo de vida del software; sin
En términos generales, se puede describir el diseño embargo, está relacionada con más fuerza al
de software como un mecanismo de resolución de diseño de software y a las pruebas del software.
problemas. Este diseño debe contemplar objetivos, La construcción de software normalmente
El papel de la Ingeniería de Software en el desarrollo de aplicaciones

limitaciones, alternativas, representaciones y produce muchos elementos de configuración que


soluciones. El diseño de software es considerado deben ser administrados dentro de un proyecto
un proceso de dos pasos: de software, como por ejemplo: código fuente,
contenido, casos de prueba, etc.; y por esto también
• El diseño arquitectónico, describe cómo está está relacionada estrechamente con el área de
formado el software a través de sus componentes gestión de la configuración del software. También
y sus interrelaciones (arquitectura de software). está relacionada con la gestión de proyectos, en la
• El diseño detallado, el cual describe el medida en que la gestión de la construcción puede
Bayona, J.; Pineda, O.; Pardo, O.

comportamiento específico de esos componentes. presentar retos considerables.


• Existen unos principios o unas técnicas de diseño Los fundamentos o principios la construcción
de software como son: del software incluyen:
• Abstracción.
• Cohesión y acoplamiento. • Minimizar la complejidad.
• Descomposición y modulación. • Anticiparse al cambio.
• La encapsulación / ocultar información. • Construcción para la verificación.
• Separación de interfaz e implementación. • Estándares en construcción.

8
ISSN: 2344-8288 • Vol. 4 No. 1 • Enero - Junio 2016 • Bogotá-Colombia

D. Pruebas de software realmente es ahí donde inicia porque una vez se


En el área de conocimiento de las pruebas entrega, comienzan las iteraciones para atender la
de software debe diferenciarse entre un mal solución a las fallas que se presenten y las nuevas
funcionamiento del sistema —conocido como necesidades que se generen sobre el sistema y
falla o defecto— y un efecto no deseado que se la evolución del mismo, dada por los nuevos
observa en la utilización del sistema. requerimientos del usuario o por la obsolescencia
Una prueba puede ser considerada como tecnológica que un software pueda llegar a
una observación de una serie de ejecuciones del presentar a futuro.
programa. El mantenimiento del software se define en la
En las pruebas cuyo objetivo es la identificación Norma IEEE 1219, como la modificación de un
de defectos, se dice que esta es exitosa si el producto de software después de la entrega para
resultado de su ejecución es que el programa corregir los fallos, para mejorar el rendimiento u
falle, pero si las pruebas son para demostrar que el otros atributos, o para adaptar el producto a un
software cumple con las especificaciones entonces entorno modificado. El estándar también aborda
los casos de prueba son exitosos si no se presentan las actividades de mantenimiento antes de la
fallas en su ejecución. entrega del producto de software, pero solo en un
Las pruebas de software deben ser realizadas apéndice de la información del estándar[8].
en diferentes niveles a lo largo de los procesos de
desarrollo y mantenimiento de software. Tres fases F. Gestión de la configuración del software
de pruebas deben ser consideradas en el proceso Una de las áreas de conocimiento del ciclo
de desarrollo de software: las pruebas unitarias, las de desarrollo de software que tiene una gran
pruebas de sistema y las pruebas integrales. relevancia es la gestión de la configuración del
Los objetivos de las pruebas pueden estar software.
enfocados en comprobar distintas propiedades Gestión de la configuración (CM) es la
de un sistema; por ejemplo los casos de prueba disciplina de identificar la configuración de un
pueden estar diseñados para verificar que sistema en puntos distintos en el tiempo con el
las especificaciones funcionales hayan sido propósito de controlar sistemáticamente cambios
implementadas correctamente, estas se denominan en la configuración y el mantenimiento de la
El papel de la Ingeniería de Software en el desarrollo de aplicaciones

pruebas de conformidad. integridad y la trazabilidad de la configuración


Sin embargo, el objetivo de las pruebas de todo el ciclo de vida del sistema (Ber97).
puede estar encaminado a garantizar ciertos Se define formalmente (IEEE610.12-90) como
comportamientos del sistema determinados “una disciplina que aplica la dirección técnica
por requerimientos no funcionales o atributos y administrativa y la vigilancia para: identificar
de calidad; en este caso, la prueba puede estar y documentar las características funcionales y
enfocada a garantizar que un sistema soporte físicas de un elemento de configuración, controlar
cierto número de usuarios concurrentes realizando los cambios de esas características, registrar y
Bayona, J.; Pineda, O.; Pardo, O.

transacciones. reportar el proceso de cambios y el estado de


Dado lo anterior, el objetivo de las pruebas implementación, y verificar el cumplimiento de
determina el diseño de los casos de prueba que se los requisitos especificados.”[8]
deban plantear. La gestión de la configuración del software para
un mejor logro de su objetivo debe apoyarse en
E. Mantenimiento de software herramientas especializadas en esta área, además
Un proyecto de software se dice que no termina de la correcta definición de una estrategia de
con la entrega del producto, para algunos autores configuración que permita garantizar:

9
ISSN: 2344-8288 • Vol. 4 No. 1 • Enero - Junio 2016 • Bogotá-Colombia

• La sincronización de los elementos de metodologías de desarrollo de software surgen las


configuración creados por los diferentes metodologías ágiles.
desarrolladores.
• Evoluciones de los componentes sobre versiones G. Metodologías ágiles de desarrollo de
estables y oficiales. software
• Manejo de líneas base del software. Una metodología ágil de desarrollo de software
• Manejo de ramas de configuración del software es un método de ingeniería del software basado
para gestión de proyectos de mayor duración al en el desarrollo iterativo e incremental, en el
mismo tiempo que la sincronización de cambios cual los requerimientos y soluciones evolucionan
en los elementos por requerimientos del día a mediante la colaboración de grupos auto-dirigidos
día garantizando los Merge en las diferentes y multidisciplinarios.
versiones de los componentes. Los valores de una metodología de desarrollo
• La promoción de los cambios para generar ágil son:
versiones en los diferentes ambientes de trabajo
del software: desarrollo, pruebas, preproducción • Individuos e interacciones en lugar de procesos
y producción. y herramientas.
• Software funcionando en lugar de
Teniendo en cuenta que las metodologías de documentación detallada.
desarrollo del software han ido evolucionando en • Colaboración hacia el cliente en lugar de
la medida en que el software evoluciona, también negociación del contrato.
se debe considerar que gran parte de la evolución • Responder al cambio en lugar de seguir un plan.
de las metodologías está dada por los avances en
la tecnología y por los entornos cambiantes del Una de las metodologías ágiles de desarrollo
negocio que cada vez demandan requerimientos es precisamente Scrum, esta palabra no es una
cuyo ciclo de vida sea más corto para poder sigla, el término se originó de una jugada de
reaccionar de forma rápida ante la competencia, Rugby, cuyo estudio dio origen al nombre de la
es por esto que dentro de las evoluciones de las metodología.
El papel de la Ingeniería de Software en el desarrollo de aplicaciones
Bayona, J.; Pineda, O.; Pardo, O.

Figura 3. SCRUM, un ejemplo de una metodología ágil

10
ISSN: 2344-8288 • Vol. 4 No. 1 • Enero - Junio 2016 • Bogotá-Colombia

¿Qué es Scrum? ‘artesanal’ y no se tiene control de aspectos


Es una metodología ágil y flexible para gestionar de calidad, es importante poder involucrar
el desarrollo de software, cuyo principal objetivo mediciones que permitan determinar de una
es maximizar el retorno de la inversión para una forma objetiva los aspectos en los cuales se está
empresa (ROI). Se basa en construir primero la fallando a la hora de desarrollar el software.
funcionalidad de mayor valor para el cliente En cuanto a las métricas de software se refiere,
y en los principios de inspección continua, éstas buscan abarcar un aspecto fundamental:
adaptación, auto-gestión e innovación. controlar la calidad del software, para ello se
Scrum es una metodología que ha sido sugieren definiciones y medidas para algunos
adoptada principalmente por compañías grandes aspectos relevantes[4]:
y que ha dado lugar a cambios en las prácticas,
como por ejemplo la duración de un sprint, que • Corrección: es el grado en el que el software
la metodología sugiere sea entre una y cuatro lleva a cabo su función requerida. La medida
semanas; de acuerdo a la experiencia en estas más común de corrección es defectos por
compañías se ha modificado a seis semanas KLDC (miles de líneas de código), donde un
la entrega del conjunto de requerimientos defecto se define como una falta verificada de
funcionando en el software[9]. conformidad con los requisitos.
• Facilidad de mantenimiento: es la facilidad
IV. Métricas del software con que se puede corregir un programa en
caso de encontrar un error, o mejorarse en
Un concepto importante dentro de la ingeniería caso de un cambio de requisitos. Una simple
del software es las métricas, por cuanto el avance métrica orientada al tiempo es el tiempo medio
en dicha disciplina paulatinamente ha buscado de cambio (TMC), es decir el tiempo que se
darle más relevancia al tema de calidad. Una tarda analizar la petición de cambio, diseñar
métrica de software relata de alguna forma una modificación adecuada, implementar el
las medidas individuales sobre algún aspecto cambio, probarlo y distribuir el cambio a todos
(por ejemplo: el número medio de errores los usuarios.
encontrados por revisión o el número medio • Integridad: este atributo mide la capacidad de
El papel de la Ingeniería de Software en el desarrollo de aplicaciones

de errores encontrados por persona y hora en un sistema para resistir ataques (accidentales o
revisiones)[2]. planeados) contra su seguridad. El ataque puede
Es importante mencionar el estándar ISO ir dirigido a programas, datos o documentos.
9126 que se usa para la evaluación de software. Para este atributo se tiene una medida definida
Dentro de dicho estándar se encuentran dos de la siguiente manera:
tipos de métricas, a saber: internas y externas.
Las internas son las que no dependen de la
ejecución del software (medidas estáticas),
Bayona, J.; Pineda, O.; Pardo, O.

mientras que las externas son las que se aplican Figura 4. Definición de Integridad
al software en ejecución[3]. Es importante
implementar métricas, pues lo que se busca es
evaluar la calidad y ello puede hacerse de una Amenaza se define como la probabilidad de
mejor manera a través de mediciones objetivas. que un ataque de un determinado tipo ocurra
En un contexto como el colombiano, en el en un determinado tiempo. La seguridad es la
cual todavía en algunos escenarios se vislumbra probabilidad de que se pueda repeler el ataque
el desarrollo de software como una actividad de un determinado tipo.

11
ISSN: 2344-8288 • Vol. 4 No. 1 • Enero - Junio 2016 • Bogotá-Colombia

• Facilidad de uso: es un intento de cuantificar qué empresas del suroccidente del país no se conoce
tan ‘amigable’ puede ser el producto de software sobre métricas de software, y quienes conocen el
con el usuario. Se puede medir en función de concepto no utilizan las métricas para evaluar la
cuatro características, a saber: (1) habilidad calidad ni para ningún otro fin.
intelectual o física requerida para aprender el Este resultado muestra una tendencia
sistema; (2) tiempo requerido para llegar a ser preocupante, más aún si se complementa con
moderadamente eficiente en el uso del sistema; una investigación enfocada en empresas de
(3) aumento neto en productividad (sobre el Bogotá[10], pues se encontró que en un 85% de
enfoque que el sistema reemplaza), medida estas empresas encuestadas no existe un grupo de
cuando alguien utiliza el sistema moderada aseguramiento de la calidad.
y eficientemente; y (4) valoración subjetiva (a Estas investigaciones han mostrado de manera
veces obtenida mediante un cuestionario). evidente que hay mucho por avanzar en los
temas de calidad del software, y que si bien en
Estos elementos a evaluar permiten mejorar muchas ocasiones se puede llegar a ver en el
ostensiblemente la calidad del software; es entorno laboral que se habla de calidad y de su
importante que se pueda evaluar calidad importancia, este concepto no puede quedar
por cuanto no se puede percibir la calidad solamente en retórica sino que debe ser llevado a
simplemente a través de elementos de subjetividad la organización de manera real.
de los usuarios, sino que se debe buscar que sean La pregunta que surge es: ¿cómo pueden
las mediciones las que arrojen los resultados implementarse realmente controles de calidad? La
pertinentes de forma objetiva. respuesta va de la mano de una implementación
de metodologías de desarrollo de software
V. Métricas en el contexto colombiano en las organizaciones. Por tomar un ejemplo,
en Microsoft Solution Framework uno de los
Hay un mercado creciente, apoyado en gran principios es invertir en calidad[11], en principio
medida por políticas gubernamentales que se establece así de acuerdo a Microsoft Consulting
buscan potencializar el acceso a las TIC en Services:
ámbitos como el educativo o la conectividad para
El papel de la Ingeniería de Software en el desarrollo de aplicaciones

regiones apartadas, entre otros[5]. Si bien en este Muchas organizaciones defienden la calidad,
contexto de oportunidades para el crecimiento a menudo un término vagamente definido, pero
tecnológico surgen grandes oportunidades para carecen de los conocimientos para cuantificar la
los profesionales en diversos roles de la ingeniería calidad. La calidad es algo que se debe incorporar
de software, también se generan grandes retos y proactivamente en el ciclo de vida de la entrega
una responsabilidad que consiste en que el avance de la solución, simplemente no sucede de forma
tecnológico sea de calidad, que la tecnología que espontánea.
llegue a cada uno de los ámbitos de la sociedad
Bayona, J.; Pineda, O.; Pardo, O.

colombiana sea de gran valor y utilidad. Así pues, se tiene que la calidad no se genera de
En el caso concreto de la industria del software la noche a la mañana ni puede concebirse como
se ha visto que muchas veces se desarrolla con un concepto abstracto, las organizaciones deben
poco manejo conceptual de calidad y dando invertir en ella para lograrla y, de ser posible,
mayor prelación a los tiempos de entrega. En siempre debe desarrollarse bajo una metodología.
un estudio publicado por la Revista Lasallista de No es conveniente ‘casarse’ con x o y metodología,
Investigación[6] se pudo constatar (al menos a pues no todos los casos son iguales, pero sí es
nivel preliminar) que en la mayoría de casos en fundamental contar con alguna metodología.

12
ISSN: 2344-8288 • Vol. 4 No. 1 • Enero - Junio 2016 • Bogotá-Colombia

Conclusiones la construcción del software sino además por los


avances tecnológicos y las necesidades de las
Algunos de los objetivos de la Ingeniería de áreas de negocio de las compañías.
Software son:
El control de calidad de guiado a través de las
• Mejorar la calidad en el desarrollo de las métricas es muy importante para el desarrollo
aplicaciones (del software), suministrando a de software, puesto que permite tener elementos
los desarrolladores las bases necesarias para objetivos para determinar si el trabajo se hace o no
construir software de alta calidad y eficiente. de una manera apropiada.
• Aumentar la productividad del equipo que En el contexto colombiano hay mucho camino
conforma el proyecto y en especial de los por recorrer, si bien hay elementos iniciales que
ingenieros del software. permiten inferir que dentro de las organizaciones ya
• Facilitar el control del proceso de desarrollo de hay elementos formales de ingeniería de software,
software. estos avances se quedan cortos en aspectos como
• Definir un modelo y una metodología que implementación de metodologías y manejo de
garanticen la producción y el mantenimiento control de calidad.
de los productos de software desarrollados en el
plazo fijado y dentro del costo estimado. referencias
• La gestión de proyectos es una disciplina
encargada de organizar y administrar los recursos [1] TechNet – Microsoft. ¿Qué es la ingeniería del software?
asignados de tal forma que se puede llevar a Recuperado de: http://social.technet.microsoft.com/
cabo el proyecto con esos recursos (tiempo, Forums/es-ES/7dc2cf80-a6ad-4271-b4db-a1e3edb-
presupuesto, personas, herramientas, etc.). 946fb/-que-es-la-ingenieria-software-
• En la planificación de los proyectos, se fijan los [2] Pressman, R. (2002). Ingeniería del software. Un
objetivos a corto, mediano y largo plazo, y la enfoque práctico. México: Mc GrawHill. (p. 54).
forma como serán alcanzados. [3] Sicilia, M. Á. Estándar ISO 9126 del IEEE y la man-
• La organización en la Ingeniería de Software tenibilidad. Recuperado de: http://garciagregorio.
es en la cual los gestores determinan de forma webcindario.com/ms/iso9126.pdf
El papel de la Ingeniería de Software en el desarrollo de aplicaciones

detallada el procedimiento para alcanzar los [4] Pressman, R. (2002). Ingeniería del software. Un
objetivos. En esta fase se crea la disposición, las enfoque práctico. México: Mc GrawHill. (p. 63).
relaciones de trabajo y se asigna la persona que [5] Ministerio de Tecnologías de la Información y las
liderará la actividad. Comunicaciones de Colombia. Proyecto Nacional
• El control implica revisar si la planificación de Fibra Óptica. Recuperado de: http://www.min-
realizada al inicio del proyecto está siendo tic.gov.co/portal/vivedigital/612/w3-propertyva-
llevada a cabo y además si los objetivos lue-647.html
propuestos se han cumplido. En esta etapa, el [6] Moreno, J. J.; Bolaños, L. P.; Navia M. A. (2010). Un
Bayona, J.; Pineda, O.; Pardo, O.

líder del proyecto debe ser capaz de realizar las acercamiento a las prácticas de calidad de software
correcciones respectivas. en las MiPyMESPS del suroccidente colombiano.
• El plan de un proyecto se debe adaptar y Revista Lasallista de Investigación, 7(1). Recupe-
actualizar conforme avance el proyecto, con el rado de: http://www.scielo.org.co/scielo.php?pi-
fin de tener una visión clara del estado de este. d=S1794-44492010000100003&script=sci_arttext
• Las metodologías de desarrollo de software [7] Dahiya, D.; Jain, P. (2010). Enterprise Systems De-
han sido construidas o generadas mediante el velopment: Impact of Various Software Develop-
mejoramiento continuo, no solo demandado por ment Methodologies.

13
ISSN: 2344-8288 • Vol. 4 No. 1 • Enero - Junio 2016 • Bogotá-Colombia

[8] IEEE Computer Society. (2004). Guide to the Sof- MinPyme y pymes de Bogotá. Revista Científica,
tware Engineering Body of Knowledge, A project 15. Recuperado de: http://revistas.udistrital.edu.co/
of the IEEE Computer Society Professional Practices ojs/index.php/revcie/article/view/3949
Committee. Recuperado de: http://www.math.uni- [11] Microsoft (2013). Descripción general de Microsoft
pd.it/~tullio/IS-1/2007/Approfondimenti/SWEBOK. Solution Framework. Recuperado de: http://msdn.
pdf microsoft.com/es-es/library/jj161047.aspx
[9] Heikkilä, V.; Paasivaara, M.; Lassenius, C. (2013). [12] Pérez-Torres, J. A.; Mejía, M. (2005). Software De-
ScrumBut, But Does it Matter? A Mixed-Method velopment Using Agile Methodologies: An Airline
Study of the Planning Process of a Multi-team Case.
Scrum Organization. [13] Rasmin, R.; Paige, R. F. (2010). Iterative Criteria-Ba-
[10] Abuchar, A.; Cárdenas, B.; Alfonso, D. (2012). Ob- sed Approach to Engineering the Requirements of
servatorio de prácticas de desarrollo de software en Software Development Methodologies.
El papel de la Ingeniería de Software en el desarrollo de aplicaciones
Bayona, J.; Pineda, O.; Pardo, O.

TIA 14

También podría gustarte