Resumen:
|
[CA] En l'àmbit de l'enginyeria del programari, l'equip de desenvolupament s'enfronta
a diverses tasques, no solament la programació. Han de capturar requisits, modelar el
problema, dissenyar una solució i triar una ...[+]
[CA] En l'àmbit de l'enginyeria del programari, l'equip de desenvolupament s'enfronta
a diverses tasques, no solament la programació. Han de capturar requisits, modelar el
problema, dissenyar una solució i triar una arquitectura, provar el programari i ocuparse del seu desplegament i evolució al llarg de la seua vida útil. En moltes ocasions, més
que seguir una metodologia concreta per al desenvolupament del projecte, per a cada
equip de desenvolupament es defineix el seu flux de treball, en funció del tipus de
projecte i de producte. Aquest flux de treball consta de diversos subprocesos i activitats
Molts d'aquests subprocesos consumeixen molt temps del desenvolupament i, per això,
és essencial reduir-lo.
D'altra banda, totes les eines programari utilitzades en els fluxos de treball
necessiten les seues configuracions per a funcionar amb el sistema que s'està utilitzant i
a més consumeixen uns recursos proporcionals a la quantitat d'ús que se'ls done. Tot
això, influeix en la necessitat d'augmentar la presència del maquinari i es transforma en
una despesa econòmica important i una pèrdua de temps per part dels enginyers, que es
podria utilitzar a continuar desenvolupant. Això comporta diversos aspectes:
l'escalabilitat que existeix dins d'un equip, és a dir, en cas que aquest equip augmente en
grandària d'una manera considerable, el sistema requerirà de major eficiència, la qual
cosa provocarà baixades de rendiment considerables per als desenvolupadors a causa de
l'alentiment d'aquestes eines; l'eficiència dels equips informàtics, moltes vegades és
necessari fer parades de manteniment per a poder realitzar els canvis pertinents del
maquinari; i la necessitat d'actualitzacions per a poder funcionar amb les últimes
característiques i millores de rendiment, sent, moltes vegades quasi obligatori a causa de
l'ús de noves tecnologies (referenciant al codi), és el cas de les eines d'integració contínua,
que han de suportar els diferents llenguatges de programació o “frameworks”.
En aquest treball es presenta una guia metodològica que especifica els diferents
camins que es poden prendre per a l'establiment d'un entorn de desenvolupament,
centrant-se al seu torn en la migració d'un sistema obsolet a un altre que solucione els
diferents problemes presentats anteriorment i que suggerisca algunes millores en el
desenvolupament. A més, es detallaran les eines que es poden utilitzar, les seues
configuracions depenent del model de desenvolupament, avantatges i desavantatges de
cadascuna d'elles. Finalment, cal indicar que aquesta guia (incloent els casos pràctics)
s'ha realitzat en el marc de les pràctiques d'empresa, més concretament en “Divina
Seguros”.
[-]
[ES] En el ámbito de la ingeniería del software, el equipo de desarrollo se enfrenta a diversas tareas, no sólo la programación. Deben capturar requisitos, modelar el problema, diseñar una solución y elegir una arquitectura, ...[+]
[ES] En el ámbito de la ingeniería del software, el equipo de desarrollo se enfrenta a diversas tareas, no sólo la programación. Deben capturar requisitos, modelar el problema, diseñar una solución y elegir una arquitectura, probar el software y ocuparse de su despliegue y evolución a lo largo de su vida útil. En muchas ocasiones, más que seguir una metodología concreta para el desarrollo del proyecto, para cada equipo de desarrollo se define su flujo de trabajo, en función del tipo de proyecto y de producto. Este flujo de trabajo consta de diversos subprocesos y actividades Muchos de estos subprocesos consumen mucho tiempo del desarrollo y, por ello, es esencial reducirlo.
Por otra parte, todas las herramientas software utilizadas en los flujos de trabajo necesitan sus configuraciones para funcionar con el sistema que se está utilizando y además consumen unos recursos proporcionales a la cantidad de uso que se les dé. Todo ello, influye en la necesidad de aumentar la presencia del hardware y se transforma en un gasto económico importante y una pérdida de tiempo por parte de los ingenieros, que se podría utilizar en seguir desarrollando. Esto conlleva varios aspectos: la escalabilidad que existe dentro de un equipo, es decir, en caso de que este equipo aumente en tamaño de una manera considerable, el sistema requerirá de mayor eficiencia, lo que provocará bajadas de rendimiento considerables para los desarrolladores debido a la ralentización de estas herramientas; la eficiencia de los equipos informáticos, muchas veces es necesario hacer paradas de mantenimiento para poder realizar los cambios pertinentes del hardware; y la necesidad de actualizaciones para poder funcionar con las últimas características y mejoras de rendimiento, siendo, muchas veces casi obligatorio debido al uso de nuevas tecnologías (referenciando al código), es el caso de las herramientas de integración continua, que deben soportar los distintos lenguajes de programación o ¿frameworks¿.
En este trabajo se presenta una guía metodológica que especifica los distintos caminos que se pueden tomar para el establecimiento de un entorno de desarrollo, centrándose a su vez en la migración de un sistema obsoleto a otro que solucione los distintos problemas presentados anteriormente y que sugiera algunas mejoras en el desarrollo. Además, se detallarán las herramientas que se pueden utilizar, sus configuraciones dependiendo del modelo de desarrollo, ventajas y desventajas de cada una de ellas. Finalmente, cabe indicar que esta guía (incluyendo los casos prácticos) se ha realizado en el marco de las prácticas de empresa, más concretamente en ¿Divina Seguros¿.
[-]
[EN] In software engineering, the development team faces a variety of tasks, not just programming. They must capture requirements, model the problem, design a solution and choose an architecture, test the software and take ...[+]
[EN] In software engineering, the development team faces a variety of tasks, not just programming. They must capture requirements, model the problem, design a solution and choose an architecture, test the software and take care of its deployment and evolution throughout its lifetime. In many cases, rather than following a specific methodology for project development, each development team defines its own workflow, depending on the type of project and product. This workflow consists of several sub-processes and activities. Many of these sub-processes consume a lot of development time and it is therefore essential to reduce it.
On the other hand, all the software tools used in the workflows need their configurations to work with the system being used and also consume resources proportional to the amount of use they are given. All this influences the need to increase the presence of hardware and becomes an important economic expense and a waste of engineers' time, which could be used for further development. There are several aspects to this: the scalability that exists within a computer, i.e., in case this computer increases in size in a considerable way, the system will require more efficiency, which will cause considerable performance drops for developers due to the slowdown of these tools; the efficiency of computer equipment, it is often necessary to make maintenance stops in order to make the relevant hardware changes; and the need for updates to be able to operate with the latest features and performance improvements, being often almost mandatory due to the use of new technologies (referring to the code), is the case of continuous integration tools, which must support the different programming languages or frameworks.
This paper presents a methodological guide that specifies the different paths that can be taken for the establishment of a development environment, focusing in turn on the migration from an obsolete system to another one that solves the different problems presented above and suggests some improvements in the development. In addition, it will detail the tools that can be used, their configurations depending on the development model, advantages and disadvantages of each one of them. Finally, it is worth mentioning that this guide (including the case studies) has been carried out within the framework of the company internship, more specifically in "Divina Seguros".
[-]
|