Está en la página 1de 15

UNIVERSIDAD DE GUAYAQUIL

FACULTAD EN INGENIERÍA INDUSTRIAL

LICENCIATURA EN SISTEMAS DE INFORMACIÓN

EXAMEN COMPLEXIVO – TRABAJO PRACTICO

USOS Y APLICACIONES EMPRESARIALES CON


SOFTWARE BASADOS EN COMPONENTES. REVISIÓN DE
CASOS DE ESTUDIO

NOMBRE:

DIEGO GUSTAVO ABAD PILLIGUA

CIUDAD:

GUAYAQUIL

FECHA:

15/10/2018
Resumen

El desarrollo tecnológico ha sido fundamental para mejorar la calidad de vida de los seres
humanos. Uno de los aspectos que fundamentan al desarrollo tecnológico es la creación de
software. La elaboración de software es considerada como una de las actividades tanto
económicas como de desarrollo de mayor importancia en la actualidad. No se puede pensar en
tener un centro de cómputo sin tener un software capaz de controlarlo. El software es capaz de
cumplir actividades básicas como encender un computador, hasta sistemas muy específicos
como analizar cálculos contables para una institución bancaria. Una forma de elaborar softwares
es basarse en componentes, mismos que pueden ser utilizados a nivel empresarial. El siguiente
trabajo de investigación tiene como objetivo determinar que es el software basado en
componentes y cuáles son los usos y aplicaciones que se les puede otorgar en el ámbito
empresarial

Palabras clave: software, software basado en componentes, negocios, base de datos,


flujograma.

2
ÍNDICE GENERAL

Resumen.................................................................................................................................2
1. ANTECEDENTES.....................................................................................................4
1.1. El desarrollo de software puede llegar a ser estresante......................................4
2. OBJETIVO GENERAL............................................................................................6
2.1. Objetivo general..................................................................................................6
2.2. Objetivo especifico..............................................................................................6
3. MARCO TEÓRICO..................................................................................................6
3.1. Software basado en componentes.........................................................................6
3.2. Desarrollo basado en componentes.......................................................................8
3.3. Centrarse en las competencias básicas.................................................................8
3.4. Método para reutilizar componentes..................................................................10
3.5. El desarrollo de componentes..............................................................................10
3.6. El desarrollo de software con reutilización de componentes............................11
3.7. Software basado en componentes para negocios...............................................11
4. ANÁLISIS CRITICO.................................................................................................12
5. CONCLUSIONES Y RECOMENDACIONES........................................................14
6. Bibliografía....................................................................................................................15

3
1. ANTECEDENTES

El software se está comiendo al mundo. Ya han pasado más de cinco años desde
que Marc Andreessen bromeó en el ensayo del Wall Street Journal "El software se está
comiendo el mundo". Hoy en día, la idea de que prácticamente todos los productos
nuevos son impulsados por software y "toda empresa necesita convertirse en una
compañía de software" es casi un cliché.

Desde los dispositivos personales hasta los electrodomésticos, y desde los


automóviles hasta la industria de la generación y distribución de energía, el software
sofisticado proporciona funcionalidad y valor para los consumidores, y la capacidad de
adaptar los productos a una amplia gama de aplicaciones de la industria y gustos y
necesidades individuales [ CITATION Fab16 \l 2058 ].

La reciente ola de innovaciones rápidas y la proliferación agresiva de


tecnologías de software habilitadoras, que van desde blockchain e Internet of Things
hasta análisis de datos e inteligencia artificial, ofrece a la compañía excelentes
oportunidades para innovar rápidamente y ofrecer productos nuevos y emocionantes a
menor costo y menor capacidad física. Huella.

1.1. El desarrollo de software puede llegar a ser estresante


Algunas de estas tecnologías novedosas y prometedoras son demasiado nuevas y
provienen de campos matemáticos y algorítmicos complejos y algo esotéricos, que
desafían incluso a los experimentados equipos de desarrollo de software. Considere, por
ejemplo, que los sistemas de cadena de bloques y de aprendizaje automático que
prometen rejuvenecer muchos sistemas de software empresarial son tan extraños para la
mayoría de los ingenieros de software a los que se les pide que entreguen aplicaciones
de software cada vez más complejas, con seguridad y confiabilidad sin compromisos.

De hecho, no solo las tecnologías de vanguardia desafían a los desarrolladores


de software. El desarrollo de software ha sido un cuello de botella durante décadas, lo
que ha generado un exceso de proyectos y una calidad deficiente, y una causa
importante de retrasos en el lanzamiento de productos. Por ejemplo, el 32% de las
organizaciones encuestadas en un estudio de la industria informaron que lanzan
software con demasiados defectos. En un estudio diferente, aproximadamente un tercio
de las empresas encuestadas informaron que solo el 22% o los proyectos de aplicaciones

4
de software se completan a tiempo y dentro del presupuesto. El 34% informó que menos
del 75% de los proyectos están a tiempo y dentro del presupuesto [ CITATION San11 \l
2058 ].

Esta situación de toda la industria es grave en industrias que no estaban


preparadas para que el software se infiltrara en tantas facetas del diseño de productos y
asumiera funciones complejas y de misión crítica que durante décadas dependieron de
subsistemas eléctricos y mecánicos, como la industria automotriz. Aunque los
fabricantes de automóviles empezaron a usar el software de control a comienzos de
1977, la densidad y complejidad del software automotor en la última década se había
multiplicado por muchos.

Entre 2005 y 2012, hubo 32 retiros de automóviles que incluyeron correcciones


de software en 3.6 millones de vehículos. En los siguientes 3.5 años hubo 63 retiros
asociados con un componente de software, que afectó a 6.4 millones de autos. En la
mitad del tiempo, el impacto de los defectos de software en la industria automotriz casi
se duplicó [ CITATION Kib17 \l 2058 ].

Y esta tendencia, en todas las industrias, continuará y, por todas las cuentas, se
acelerará. El software está asumiendo un papel cada vez mayor en la realización de
nuevos productos, y el desarrollo de software amenaza con convertirse en un gran dolor
de cabeza y enfatizará las capacidades de desarrollo de productos en muchas industrias
que hace apenas una década no podían deletrear ingeniería de software [ CITATION Quo18
\l 2058 ].

En el caso de los negocios, el software es fundamental para controlar desde las


operaciones más simples en la empresa, hasta las más complejas orientadas al análisis
financiero y a la toma de decisión. Uno del software que mejor desempeño han
generado en los últimos 5 años son los que han sido elaborados en base a componentes.
El siguiente trabajo de investigación tiene como objetivo principal explicar que es el
software basado en componentes y como es el uso que se le da al sector empresarial.

5
2. OBJETIVO GENERAL

2.1. Objetivo general

 Analizar el uso y aplicaciones de software aplicados al sector empresarial


basado en componentes.

2.2. Objetivo especifico

 Definir el concepto de software basado en componentes


 Determinar el desarrolla un software basado en componentes
 Definir cuáles son los usos y aplicaciones que se pueden otorgar a
software basado en componentes en el sector de negocios.

3. MARCO TEÓRICO
3.1. Software basado en componentes

El desarrollo basado en componentes es un procedimiento que acentúa el


diseño y desarrollo de sistemas basados en computadora con la ayuda de
componentes de software reutilizables. Con el software basado en componentes el
enfoque cambia de la programación de software a la composición del sistema de
software.

Las técnicas de desarrollo basadas en componentes involucran


procedimientos para desarrollar sistemas de software al elegir los componentes
ideales disponibles en el mercado y luego ensamblarlos utilizando una arquitectura
de software bien definida. Con la reutilización sistemática de componentes de grano
grueso, el software basado en componentes, se pretende ofrecer una mejor calidad y
rendimiento.

El modelado orientado a objetos da como resultado una plétora de clases,


objetos y relaciones de grano fino. Es muy difícil descubrir partes reutilizables entre
estas unidades más pequeñas. La idea detrás de software basado en componentes es
integrar las partes relacionadas y reutilizarlas colectivamente. Estas partes
integradas son conocidas como componentes.

6
Las técnicas de desarrollo basadas en componentes consisten en rutinas de
desarrollo no convencionales, que incluyen evaluación de componentes,
recuperación de componentes, etc. Es importante que el software basado en
componentes se lleve a cabo dentro de una infraestructura de middleware que
admita el proceso, por ejemplo, Enterprise Java Beans [ CITATION Jon01 \l 2058 ]

Los objetivos clave del software basado en componentes son los siguientes:

 Ahorrar tiempo y dinero al construir sistemas grandes y complejos: el


desarrollo de sistemas de software complejos con la ayuda de
componentes listos para usar ayuda a reducir sustancialmente el tiempo
de desarrollo del software. Se pueden utilizar puntos de función o
técnicas similares para verificar la asequibilidad del método existente.
 Mejorar la calidad del software: la calidad de los componentes es el
factor clave detrás de la mejora de la calidad del software.
 Detectar defectos dentro de los sistemas: la estrategia de software basado
en componentes admite la detección de fallas al probar los componentes;
Sin embargo, encontrar el origen de los defectos es un reto en el software
basado en componentes.
Algunas ventajas adicionales del software basado en componentes incluyen:

 Entrega minimizada
 Búsqueda en catálogos de componentes.
 Reciclaje de componentes prefabricados.
 Eficiencia mejorada, pues los desarrolladores se concentran en el
desarrollo de aplicaciones
 Calidad mejorada, pues los desarrolladores de componentes pueden
permitir tiempo adicional para garantizar la calidad
 Gastos minimizados
Las rutinas específicas de software basado en componentes son:

 Desarrollo de componentes
 Publicación de componentes
 Búsqueda de componentes, así como la recuperación
 Análisis de componentes

7
 Montaje de componentes [ CITATION Mar04 \l 2058 ]

3.2. Desarrollo basado en componentes


El desarrollo basado en componentes se centra en la implementación de
componentes. El componente basado en acciones.

El desarrollo implica las siguientes acciones:

 Análisis de la aplicación particular, Refiriéndose al modelo de dominio


 Diseño arquitectónico. Refiriéndose al modelo estructural.
 Calificación de componentes, adaptación, composición. Posible
ingeniero otro componente
 Pruebas
 Calificación de componentes [ CITATION Lid17 \l 2058 ]

3.3. Centrarse en las competencias básicas


Desarrollar habilidades y experiencia en el desarrollo de software moderno es
obviamente crítico. Pero también es una buena oportunidad para que las organizaciones
de productos revisen el adagio "se centran en las competencias básicas y subcontratan el
resto". Este consejo alienta a las empresas a aprovechar los recursos de aumento de la
fuerza laboral y los activos de desarrollo de software offshore de bajo costo para ayudar
a reducir los costos y concentrar las inversiones internas.

En competencias estratégicas y propiedad intelectual. Pero este consejo resalta


igualmente los beneficios de la arquitectura de software de una manera que permite
subcontratar los componentes básicos de la funcionalidad que de otro modo podrían
considerarse fundamentales.

Las organizaciones de productos deben considerar la ingeniería de software


basada en componentes (CBSE) para mejorar aún más la eficiencia del desarrollo de
software y reducir el costo y el riesgo del proyecto.

Un componente de software es una pieza de código prefabricada que encapsula


una funcionalidad bien definida, pero es lo suficientemente pequeña como para ser
desarrollada y mantenida como una unidad de software independiente. Los
componentes tienen una interfaz estándar bien definida para facilitar la integración y la
interoperabilidad con otros componentes de software y código externo.

8
La distinción entre núcleo y no núcleo siempre ha sido difícil. Y cuando se
considera una estrategia basada en componentes, la pregunta es tan relevante,
especialmente cuando la funcionalidad o tecnología que se considera es una de esas
tecnologías emergentes que prometen grandes ventajas tecnológicas y funcionales.

La primera consideración para la subcontratación debe ser la complejidad


algorítmica de desarrollar e integrar funcionalidades avanzadas, como la visualización
de datos complejos, los núcleos de modelado 3D y la representación fotorrealista
[ CITATION Jul12 \l 2058 ].

Otra área a considerar es la subcontratación de tecnologías que cambian


continuamente debido a la expansión de formatos, estándares y regulaciones, como los
traductores de CAD. De manera similar, las tecnologías prometedoras que continúan
evolucionando y mejorando debido a un gran ecosistema externo que impulsa una
innovación rápida, como blockchain, inteligencia artificial y aprendizaje automático,
son buenos candidatos.

De manera similar, las aplicaciones que aprovechan las arquitecturas de


hardware emergentes, como los sistemas de visión y los motores de inteligencia
artificial que se ejecutan en las GPU y el hardware especialmente diseñado, podrían ser
desarrolladas y mantenidas de forma más rentable por desarrolladores externos que se
especializan en estos dominios.

Un tema común en estos ejemplos y el subrayar el beneficio técnico y


estratégico de usar componentes validados y la externalización de ciertos aspectos del
desarrollo de software, es la complejidad de probar y validar aplicaciones basadas en
tecnologías avanzadas. Por ejemplo, probar la precisión de los traductores de CAD es
una tarea matemáticamente compleja que también requiere un conocimiento profundo
del dominio. La validación de la salida de un sistema de inteligencia artificial no
determinista es otra tarea desalentadora para los desarrolladores de aplicaciones
convencionales inexpertos [ CITATION Mac14 \l 2058 ].

Los beneficios claros del desarrollo de software basado en componentes CBSE y


conceptos de ingeniería de software similares que abogan por un enfoque de diseño
basado en componentes reutilizables ofrecen múltiples beneficios que son bastante
evidentes:

9
 La portabilidad reduce el esfuerzo de desarrollar, probar, mantener y
admitir aplicaciones de software en plataformas heterogéneas.
 La confiabilidad reduce el esfuerzo de prueba de integración y asegura
que las aplicaciones sean robustas, seguras y más fáciles de mantener
durante toda su vida útil.
 La extensibilidad reduce el esfuerzo para implementar cambios en
respuesta a nuevos requisitos.
 La flexibilidad reduce el esfuerzo de admitir una variedad siempre
creciente de tipos de datos, formatos de archivo y protocolos.
 La eficiencia reduce la latencia en aplicaciones de software de uso
intensivo de ancho de banda.
Es fundamental enfatizar que reutilizar componentes de software ahorra mucho
más que un costoso tiempo de codificación. La reutilización del software reduce las
pruebas de integración y los esfuerzos de validación y verificación del sistema, y brinda
a los arquitectos del sistema y a los gerentes de proyectos una mayor confianza en el
diseño y en el cronograma del proyecto, lo que resulta en una mayor tasa de éxito de los
proyectos de software.

Por esa misma razón, las organizaciones de productos deben insistir en que los
contratistas externos y las compañías de subcontratación utilicen componentes
validados como una forma de mejorar la calidad del software y al mismo tiempo
mejorar el tiempo y el costo de desarrollo [ CITATION Isa16 \l 2058 ].

3.4. Método para reutilizar componentes


El desarrollo de componentes se lleva a cabo según dos tipos de categorías que
son:

3.5. El desarrollo de componentes


Al hablar de desarrollo de software basado en componentes se refiere al hecho
de adaptar o desarrollar componentes con un propósito específico como ser reutilizados
posteriormente. Al finalizar la creación del software, se dejarán repositorios que puedan
ser utilizados por nuevas generaciones quienes deseen adaptar el software a sus
necesidades.

10
3.6. El desarrollo de software con reutilización de componentes
 Cuando se refiere a la reutilización de componentes, se hace cuando se
utilizan componentes de un software ya existente para desarrollar una
nueva aplicación.
 Cuando se ejecuta de esta manera, se debe de maximizar la reutilización
de componentes de software en base a programas que ya existen.

3.7. Software basado en componentes para negocios


En los negocios, es fundamental contar con un sistema informático de altura, ya
que el mundo globalizado exige cambios oportunos y respuestas inmediatas. Por ende,
el desarrollo de software basado en componentes otorga la posibilidad de construir
programas directamente orientados a resolver un problema en concreto y que tengan
componentes que ya se hayan utilizado con anterioridad. Este tipo de paradigma es
capaz de facilitar la resolución del problema de manera corta y con un menor
presupuesto.

Grafico 1. Modelo de software orientado a un negocio particular. Recuperado de Angelfire.com

Cabe destacar que antes de desarrollar el software es fundamental considerar los


objetivos que se deseen lograr con la aplicación. Para elaborar el software también hay
que tener en cuenta la estructura que tendrá el programa, el diseño, su eficiencia, la
capacidad de cambio, la portabilidad y en caso de ocurrir un fallo su sencillez de
corrección.

Para poder desarrollar un software se necesita descomponer el desarrollo de


software en componentes más pequeños para así trabajar de una forma más sencilla.
Para ello, el programador debe de descomponer cuales son las necesidades de la

11
empresa, se necesita posteriormente identificar los procesos que debe seguir la
compañía y finalmente agrupar los componentes según sus funciones y similitudes. Es
vital determinar si estos componentes necesitan datos. De ser así, es vital utilizar una
base de datos [ CITATION Ang181 \l 2058 ].

4. ANÁLISIS CRITICO
Un ejemplo de la aplicación de un software basado en componentes es el caso
que presenta Vignaga y Perovich (2016), en la cual definen la implementación en una
cadena hotelera de un software basado en componentes. En este proyecto define la
necesidad de clasificar y calificar los procesos del negocio, con el objetivo de tener en
cuenta que procesos se llevan a cabo en el negocio y cuáles son los más importantes.

Grafico 2. Proceso de negocio hotelero usando software basado en componentes. Recuperado de


Vignaga y Perovich (2016).

Una vez que se haya determinado el proceso del negocio, se debe comenzar con
la implementación del mismo en el sistema. Además, es fundamental la detección de los
actores que conforman el proceso. En el caso del proceso hotelero son el huésped y la
persona que realiza la reserva. Existen otros actores como son el administrador de la
reserva y el sistema de facturación, encargado de generar los costos por la reserva. La
calificación determinará qué proceso es el más importante de ejecutar

12
Grafico 3. Implementación del proceso hotelero en el sistema. Recuperado de Vignaga y
Perovich (2016).

Posteriormente se creará el sistema, indexando la base de datos ya sea Oracle o


MySql. Cuando el sistema esté en marcha existirá una interacción de componentes.
Finalmente, es necesaria la definición de las políticas de manejo de Integridad
Referencial, las cuales tendrán el objetivo de definir el manejo del sistema. Luego, si se
detectan errores o si se necesita algún cambio adicional se puede realizar una revisión
de la arquitectura [ CITATION And161 \l 2058 ]

Pero, un informe desarrollado por Calero (2010), determina que el programa


elaborado en base a componentes posee desventajas, como la de generar mucho tiempo
en su desarrollo. A pesar de simplificar la programación, el analizar un software ya
existente o el modelo arquitectónico de su elaboración pueden requerir mucho tiempo
para los programadores. Esto se resume como un aumento del trabajo, que incluso
puede generar costes adicionales.

Por otro lado, el análisis del sistema puede revelar un poco confiabilidad de los
componentes. Lo cual generaría una nula interacción con el sistema en sí, pues se
buscaría desarrollar un sistema desde cero. Además, los componentes puede que no
estén disponibles para los usuarios, aumentando el problema de su reprogramación
[ CITATION Wyn10 \l 2058 ].

13
5. CONCLUSIONES Y RECOMENDACIONES
Como se pudo analizar en el trabajo de investigación, el software basado en
componentes es importante su utilización principalmente porque reduce el tiempo de
desarrollo de un sistema orientado a una necesidad. Al reducir su tiempo de desarrollo
se reduce el costo. Además, un software basado en componentes tiene la capacidad de
acoplarse a las necesidades de cada situación.

Un ejemplo de la forma en la cual se adapta el software de componentes a


cualquier tipo de situaciones, se presenta en el desarrollo de un sistema orientado a los
procesos hoteleros. Se debe de determinar cuáles son cada uno de los procesos.
Posteriormente enlazar los procesos para finalizar con un análisis de la arquitectura que
determinaría la eficiencia del programa y sus posibles fallos.

Cuando una empresa o negocio utiliza un sistema informativo basado en


componentes, se está optando por utilizar un sistema de código libre, que permitirá a
nuevos interesados la posibilidad no solo de mejorar dicho sistema. Sino también de
utilizarlo para una necesidad que tenga en particular. Cabe destacar que no todo
software basado en componentes es 100% eficaz. Es necesario determinar de forma
correcta las necesidades del negocio.

14
6. BIBLIOGRAFÍA

Angel Fire. (14 de Octubre de 2018). Desarrollo del Software basado en Orientación a
Negocios. Obtenido de http://www.angelfire.com/ex/martin1/Resumenx9.htm
Assolini, F. (19 de Mayo de 2016). El software se está comiendo el mundo. Obtenido de
http://www.elmundo.es/economia/2016/05/19/573d9acf22601d21458b4666.htm
l
Barrales, I. (2016). Desarrollo de Software basado en componentes. Santiago de Chile:
Academia.
Calero, W. (8 de Octubre de 2010). Modelo de Desarrollo Basado en Componentes.
Obtenido de http://ingenieraupoliana.blogspot.com/2010/10/modelo-de-
desarrollo-basado-en.html
Fuentes, L., Troya, J., & Vallecillo, A. (2017). Desarrollo de Software basado en
componentes. Málaga: Universidad de Málaga.
Hurtado, J., & Castillo, L. (2012). Desarrollo de software basado en componentes en la
plataforma J2EE. Popayá: Universidad del Cauca.
Kibernum. (2 de Julio de 2017). Los beneficios de implementar la ingeniería de
software. Obtenido de http://www.kibernum.com/noticias/los-beneficios-de-
implementar-la-ingenieria-de-software/
Matalonga, S. (2011). Un efoque para el análisis causal de defectos en organización de
software conducido por ontología. Montevideo: Universidad ORT Uruguay.
Montilva, J. (2001). Desarrollo de Software basado en componentes. Mérida:
Universidad de los Andes.
QuoNext. (14 de Octubre de 2018). ¿Por qué son importantes los software
empresariales? Obtenido de https://www.quonext.com/blog/por-que-las-
empresas-instalan-software-empresariales-2/
Rojas, M., & Molina, J. (2004). Introducción y principios básicos del desarrollo de
Software basado en componentes. Cali: Universidad Javeriana.
Usaola, M. (2014). Desarrollo de Software basado en reutilización. Cataluña:
Universitat Oberta de Catalunya.
Vignaga, A., & Perovich, D. (2016). Enfoque Medotológico para el Desarrollo Basado
en Componentes. Montevideo: Universidad de la Republica de Uruguay.

15

También podría gustarte