Proceso de Desarrollo de Software en Empresas Mexicanas
Proceso de Desarrollo de Software en Empresas Mexicanas
Proceso de Desarrollo de Software en Empresas Mexicanas
Resumen—La ingeniería de software es una disciplina de la identified as a good practice, being the final artifact the
ingeniería que se interesa por todos los aspectos de la Requirements Document. The companies that specified the use
producción de software (Somerville, 2011). Partiendo de ello, of the ERS-IEEE-830 standard are minimal and some few
este trabajo de investigación tiene como objetivo mostrar la perform prototypes, UI/UX design to confirm the requirements
importancia que se le da al proceso de desarrollo de software with the client and finally, the companies that mention good
en las empresas mexicanas que llevan a cabo productos de practices in the deployment and construction stages are scarce.
software, y al mismo tiempo identificar como es que aplican la
calidad en dicho proceso. De acuerdo con Pressman, define al
proceso de software como un marco de trabajo de tareas a Keywords: Process, software, best practices, quality, stages.
realizar para desarrollar software de alta calidad. Esta
investigación se llevó a cabo a través de la Revisión Sistemática
de la Literatura (RSL), identificando una serie de empresas I. INTRODUCCIÓN
nacionales dedicadas a la construcción de software, y entre los El concepto de software, tal y como lo define la IEEE std.
hallazgos se visualizaron que las etapas imprescindibles como 610 son “programas, procedimientos y documentación y
medulares aplicadas durante el proceso de desarrollo son: datos asociados, relacionados con la operación de un
Requerimientos, Diseño, Programación, Pruebas y Despliegue. sistema informático” [17]. Para 1968, Fritz Bauer define a la
Se identificaron como buenas prácticas la buena comunicación
inicial con el cliente, siendo el artefacto final el Documento de
Ingeniería de Software como el establecimiento y uso de
requerimientos, son mínimas las empresas que especificaron el principios robustos de la ingeniería a fin de obtener
uso del estándar ERS-IEEE-830 y algunas pocas realizan económicamente software que sea fiable y que funcione
prototipos, diseño UI/UX para confirmar los requisitos con el eficientemente sobre máquinas reales [16]. En la disciplina
cliente y finalmente, son escasas las empresas que mencionan de la Ingeniería de Software se estudia el proceso de
las buenas prácticas en las etapas de despliegue y construcción. desarrollo de software como el ente nodal para llegar y
alcanzar un producto de software. El proceso de software es
un marco de trabajo de tareas a realizar para desarrollar
Palabras claves-Proceso, software, buenas prácticas, calidad,
etapas.
software de alta calidad donde se incluyen métodos y
herramientas [7], razón de ser de este trabajo de
investigación. A partir de la revisión sistemática de la
Abstract-Software engineering is an engineering discipline that literatura de empresas mexicanas dedicadas al desarrollo de
is interested in all aspects of software production (Somerville, productos de software, se analizan las etapas empleadas para
2011). Based on this, this research work aims to show the concretar un producto con la mejor calidad posible. Se deja
importance given to the software development process in ver lo medular del proceso para la industria del software en
Mexican companies that carry out software products, and at México, las etapas que son imprescindibles para tales
the same time identify how they apply quality in this process. empresas y en caso de aplicar alguna buena práctica para el
According to Pressman, he defines the software process as a aseguramiento de la calidad del producto en cada una de las
framework of tasks to be performed to develop high quality
etapas de desarrollo. Cabe señalar, que esta indagación no
software. This research was carried out through the Systematic
Literature Review (SLR), identifying a series of national busca señalar de manera específica a ninguna empresa sino
companies dedicated to the construction of software, and por el contrario conocer a partir de una pequeña muestra de
among the findings it was visualized that the essential and core empresas mexicanas como se encuentran la industria del
stages applied during the development process are software en México con respecto al proceso de desarrollo en
Requirements, Design, Programming, Testing and términos globales.
Deployment. Good initial communication with the client was
II. EL PROCESO DE SOFTWARE C. Construcción
Un proceso de desarrollo de software es algo más que la En la etapa de construcción de software se incluye un
programación; hay etapas que la preceden y otras que la conjunto de tareas de codificación que lleva a la creación de
siguen, por lo tanto es una estructura constituida por todas un software funcional, esto a partir de la etapa anterior de
esas etapas, utilizadas para el desarrollo de un producto de diseño [4].
software. Entre sus sinónimos están “ciclo de vida” y En la construcción se lleva a cabo la creación directa de
“proceso de software”. Los modelos de procesos de lenguaje de programación en código fuente, la generación
software son representaciones abstractas de estos procesos automática de código fuente que usa una representación
[2]. intermedia parecida al diseño del componente que se va a
construir o la generación automática de código ejecutable
III. BUENAS PRÁCTICAS EN EL PROCESO DE SOFTWARE [7].
Para comenzar a comprender cuando se utilizan o no las D. Pruebas
buenas prácticas en el desarrollo de software, se debe
comprender a que se refieren. La palabra práctica se puede Respecto a las pruebas, con estas se busca evaluar y
entender también como un hábito, es algo que no se necesita verificar que el producto software hace lo que se supone
recordar, al principio para la práctica se necesita recordar debe hacer. Las pruebas de software consisten en la
cada paso y pensarlo bien antes de ejecutarlo, pero cuando se verificación de que un programa proporciona los
tienen buenas prácticas esos pasos ya no se necesitan comportamientos esperados en un conjunto limitado de
recordar pues se convierten en un hábito y rutina. casos de prueba. Las pruebas ya no deben de considerarse
En el proceso de desarrollo de software se suelen cometer solo después de que se completa la fase de codificación solo
muchos errores, los desarrolladores con más experiencia han con el propósito de detectar fallas. Las pruebas de software
aprendido a prevenirlos, y han proporcionado buenas deberían ser, realizadas durante todo el ciclo de vida de
prácticas que les han servido, ayudando a que futuros desarrollo y mantenimiento [4].
profesionales del área no vuelvan a cometer los mismos
errores. E. Despliegue
Por consiguiente las buenas prácticas se pueden definir El despliegue es una etapa opcional en la administración
como un conjunto de métodos rutinarios para evitar en gran de software en la que el software se instala en estaciones de
medida problemas del desarrollo de software, además estas trabajo o se hospeda como una aplicación y es accesible
son comúnmente utilizadas por organizaciones que tienen para otros usuarios en un estado de tiempo de ejecución.
éxito en sus procesos [1]. Dicha etapa consiste en una serie de actividades
IV. ETAPAS DEL PROCESO DE SOFTWARE interrelacionadas que incluyen la liberación del software al
final del ciclo de desarrollo; la configuración del software,
A. Requerimientos de software la instalación del software en el entorno de ejecución y la
activación del software [8].
La etapa de la obtención de los requerimientos de
software tiene como propósito obtener y comprender, las
necesidades y limitaciones de las partes interesadas del V. BUENAS PRÁCTICAS EN LAS ETAPAS DE DESARROLLO
sistema a desarrollar, además se realiza la documentación de DE SOFTWARE
todo ello en una especificación de requisitos [3], [4].
Esta es una etapa crítica del proceso de software, ya que
los errores en ella pueden llevar inevitablemente a Respecto a cuáles son algunas de las buenas prácticas que se
inconvenientes en el diseño y la implementación del pueden aplicar a las etapas del proceso de desarrollo, a
sistema. continuación se recomiendan las fundamentales: