Monografias.com > Computación > Software
Descargar Imprimir Comentar Ver trabajos relacionados

Desarrollo de software: Implementación de componentes



  1. Introducción
  2. Definición de Fábrica de Software
  3. Fundamentos de una Fábrica de Software
  4. Metodología
  5. Diagrama de Componentes
  6. Biblioteca de Enlace Dinámico
  7. Conclusiones
  8. Recomendaciones
  9. Bibliografía

Introducción

En el diseño y desarrollo de proyectos de software, se aplican diferentes métodos y técnicas para su implementación, la informática aporta diversas herramientas y procedimientos sobre los que se apoya la ingeniería de software. Todo analista de sistemas, ingeniero de sistemas o especialista en TI debe contemplar siempre la mejora de la calidad de los productos de software, aumentando la productividad y el trabajo de los ingenieros del software, facilitando el control del proceso de desarrollo de software y suministrando a los desarrolladores las bases para construir un software de alta calidad en una forma eficiente, garantizando siempre la producción y el mantenimiento de los productos de software desarrollados, en el plazo establecido y dentro del costo estimado.

Los sistemas basados en computadora pueden ser de ayuda para eliminar la necesidad de cálculos tediosos y comparaciones repetitivas. Un sistema automatizado puede ser de gran utilidad si lo que se necesita es un procesamiento acelerado. La incapacidad para mantener el ritmo de procesamiento no significa el abandono de los procedimientos existentes. Quizá éstos resulten inadecuados para satisfacer las demandas actuales. En estas situaciones el analista de sistemas considera el impacto que tiene la introducción de procesamiento computarizado, si el sistema existente es manual. Es poco probable que únicamente el aumento de la velocidad sea la respuesta. El tiempo de procesamiento por transacción aumenta si se considera la cantidad de actividades comerciales de la empresa junto con su patrón de crecimiento.

Las organizaciones almacenan grandes cantidades de datos, por eso, debe tenerse en cuenta donde almacenarlos y como recuperarlos cuando se los necesita. Cuando un sistema se desarrolla en forma apropiada, se puede recuperar en forma rápida la información.

Los diseños de sistemas ayudan a disminuir los costos, ya que toma ventaja de las capacidades de cálculo automático y de recuperación de datos que están incluidos en procedimientos de programas en computadora. Muchas tareas son realizadas por programas de cómputo, lo cual deja un número muy reducido de éstas para su ejecución manual, disminuyendo al personal.

Algunas veces el hecho de que los datos puedan ser guardados en una forma adecuada para su lectura por medio de una máquina, es una seguridad difícil de alcanzar en un medio ambiente donde no existen computadoras. Para aumentar la seguridad, generalmente se desarrollan sistemas de información automatizados. El acceso a la información puede estar controlado por un complejo sistemas de contraseñas, limitado a ciertas áreas o personal, si está bien protegido, su acceso será difícil.

En ese sentido, el diseño e implementación de componentes, como la creación de bibliotecas de enlace dinámico o más comúnmente denominadas DLL, permiten la encriptación o encapsulamiento de datos, del mismo modo el crear componentes ayuda enormemente en el proceso de producción de software, puesto que podemos reutilizar clases, propiedades, métodos y funciones. Un componente es diseñado inicialmente para llevar a cabo determinados cálculos o procesos, los cuales son definidos en la etapa del análisis siguiendo los requerimientos del usuario, quien solicita la automatización de tareas o procesos

El presente informe tiene por finalidad explicar de forma resumida y didáctica el significado de componente, así como su creación e implementación, a través de una aplicación de escritorio, denominado Calculadora, la cual utilizará diferentes componentes por cada operación matemática.

Definición de Fábrica de Software

Históricamente, el término "Fabrica de Software" ha sido utilizado para describir grandes esfuerzos comerciales para automatizar el desarrollo de software entre líneas similares. Las características más resaltantes de estos esfuerzos incluyen la reutilización sistematizada y continuos procesos de mejora. De acuerdo con algunos especialistas, el término sugiere un acuerdo a largo plazo para optimizar el desarrollo de software, sus métodos y prácticas en el curso de múltiples proyectos.

Según Merriam Webster, la fábrica de software es una organización altamente organizada que produce partes en una línea de producción utilizando elementos estandarizados, herramientas y procesos de producción.

Una fábrica de software es una empresa de la industria del software cuya misión es el desarrollo de software para sus clientes de acuerdo a los requisitos específicos que aquel le solicita. Típicamente una fábrica de software tiene como su principal fuente de ingreso la venta de proyectos de desarrollo de software, como así también la venta de horas hombre de desarrollo de software. Generalmente la propiedad intelectual de las aplicaciones informáticas desarrolladas le pertenecen al cliente.

La diferencia principal entre una empresa de Consultoría de Sistemas y un servicio de Fábrica de Software radica en que la primera cubriría toda el Ciclo de Vida de Software, desde la toma de requerimientos y diseño funcional hasta la construcción, pruebas de aceptación e implantación; mientras que la segunda inicia su tarea a partir de un diseño funcional que "otros" han realizado. Por tanto, los skills de una factoría de software son claramente diferentes: requieren de un menor conocimiento de la necesidades del futuro usuario de negocio, existe más flexibilidad respecto a la ubicación geográfica de la factoría (al no requerir cercanía con el futuro usuario del sistema a fin de definir el requerimiento) y se especializan para conseguir calidad de software a menor coste, automatizando e industrializando los procesos de desarrollo de software donde aplique.

Por lo general la fábrica de software tiene ingresos adicionales por los servicios asociados que brinda a los clientes a los que les desarrolla las aplicaciones informáticas, tales como el mantenimiento, la capacitación, la actualización, el despliegue, el soporte, etc.

Existe una gran diferencia entre una fábrica de software, de una fábrica de productos de software, dado que esta última se dedica al desarrollo de software para la generación de productos propios basados en aplicaciones informáticas cuya propiedad intelectual le pertenece. Es necesario también tener en cuenta que al emprender una fábrica de software se debe capacitar muy bien al personal que va a trabajar para ser más eficientes y contribuyan al desarrollo continuo y avanzado en el transcurrir del tiempo y de las necesidades.

Fundamentos de una Fábrica de Software

Mediante una Fábrica de Software se buscan:

  • Proyectos que sigan los mismos estándares.

  • Métricas de productividad.

  • Búsqueda de mejora continua del servicio.

  • Ganar confiabilidad de los clientes.

  • Establecer proyectos de referencia.

  • Establecer reconocimiento del servicio en el mercado.

  • Mantenerse actualizado en tecnología.

  • Convivencia necesaria entre las diversas tecnologías.

Metodología

Monografias.com

  • Ingeniería de software

Ingeniería es la aplicación sistemática de conocimiento científico en la creación y construcción de soluciones, que satisfacen una buena relación de efectividad – precio, de problemas prácticos al servicio de la humanidad. La ingeniería del software es la forma de ingeniería que aplica los principios de las ciencias de la computación y las matemáticas en la obtención de soluciones de los problemas del software que satisfacen una buena relación de efectividad – precio.

Diagrama de Componentes

Un diagrama de componentes es un diagrama representado en el Lenguaje Unificado de Modelado. Un diagrama de componentes simboliza cómo un sistema de software es dividido en componentes y muestra las dependencias entre estos componentes.

Los componentes físicos incluyen archivos, cabeceras, bibliotecas compartidas, módulos, ejecutables, o paquetes. Los diagramas de Componentes prevalecen en el campo de la arquitectura de software, pero pueden ser usados para modelar y documentar cualquier arquitectura de sistema. Debido a que los diagramas de componentes son más parecidos a los diagramas de casos de usos, éstos son utilizados para modelar la vista estática y dinámica de un sistema. Muestra la organización y las dependencias entre un conjunto de componentes. No es necesario que un diagrama incluya todos los componentes del sistema, normalmente se realizan por partes. Cada diagrama describe un apartado del sistema.

Un diagrama de componentes permite visualizar la estructura de alto nivel del sistema y el comportamiento del servicio que estos componentes proporcionan y usan a través de interfaces. 

Un diagrama de componentes, permite mostrar la vista física del modelo, así creo los elementos de Software y Hardware, principalmente las relaciones que existen entre ellos.

Monografias.com

  • Ejemplo de Diagrama de Componentes

Monografias.com

  • Construcción de Componente

Monografias.com

Biblioteca de Enlace Dinámico

Una biblioteca de enlace dinámico o más comúnmente denominado DLL (Dynamic Link Library) es el término con el que se refiere a los archivos con código ejecutable que se cargan bajo demanda de un programa por parte del sistema operativo. Esta denominación es exclusiva a los sistemas operativos Windows siendo ".dll" la extensión con la que se identifican estos ficheros, aunque el concepto existe en prácticamente todos los sistemas operativos modernos.

Las DLL son o se pueden ver como la evolución de las bibliotecas estáticas (en diversos sistemas) y de forma análoga contienen funcionalidad o recursos que utilizan otras aplicaciones. Su uso proporciona algunas ventajas:

  • Reducen el tamaño de los archivos ejecutables: Gran parte del código puede estar almacenado en bibliotecas y no en el propio ejecutable lo que redunda en una mejor modularización.

  • Pueden estar compartidas entre varias aplicaciones: Si el código es suficientemente genérico, puede resultar de utilidad para múltiples aplicaciones (por ejemplo, la MFC es una biblioteca dinámica con clases genéricas que recubren la API gráfica de Windows y que usan gran parte de las aplicaciones).

  • Facilitan la gestión y aprovechamiento de la memoria del sistema: La carga dinámica permite al sistema operativo aplicar algoritmos que mejoren el rendimiento del sistema cuando se carguen estas bibliotecas. Además, al estar compartidas, basta con mantener una copia en memoria para todos los programas que la utilicen.

  • Brindan mayor flexibilidad frente a cambios: Es posible mejorar el rendimiento o solucionar pequeños errores distribuyendo únicamente una nueva versión de la biblioteca dinámica. Nuevamente, esta corrección o mejora será aprovechada por todas las aplicaciones que compartan la biblioteca.

  • Programación de la Clase Suma: Class_Suma

Monografias.com

  • Programación de la Clase Resta: Class_Resta

Monografias.com

  • Programación de la Clase Multiplicación: Class_Multiplicacion

Monografias.com

  • Programación de la Clase División: Class_Division

Monografias.com

  • Programación de la Clase Potencia: Class_Potencia

Monografias.com

  • Programación de la Clase Potencia: Class_Raiz

Monografias.com

  • Programación de la Clase Calculadora: Class_Calculadora

Monografias.com

Monografias.com

Monografias.com

  • Lista de Bibliotecas de Clases

Monografias.com

  • Generar Librerías

Monografias.com

  • Diseño de la Interfaz Gráfica de Usuario: FrmCalculadoraBasica

Monografias.com

  • Programación del Formulario: FrmCalculadoraBasica

Monografias.com

Monografias.com

Monografias.com

Monografias.com

Monografias.com

  • Diseño de la Interfaz Gráfica de Usuario: FrmCalculadoraCientifica

Monografias.com

  • Diseño de la Interfaz Gráfica de Usuario: FrmAuditoria

Monografias.com

Conclusiones

C1: Al pensar en el sistema como una colección de componentes con interfaces proporcionadas y necesarias bien definidas, se mejora la separación entre los componentes. Esto, a su vez, facilita la comprensión y los cambios cuando se modifican los requisitos.

C2: Se puede utilizar un diagrama de componentes para representar el diseño con independencia del lenguaje o plataforma que el diseño utiliza o va a utilizar.

C3: Un componente es una unidad modular que puede reemplazarse en su propio entorno. Sus elementos internos quedan ocultos, pero tiene una o varias interfaces proporcionadas bien definidas a través de las cuales se puede obtener acceso a sus funciones. Un componente también puede tener interfaces necesarias.

C4: Un diagrama de componentes se representa como un grafo de componentes software unidos por medio de relaciones de dependencia. Los componentes empaquetan el código que implementa la funcionalidad de un sistema, y algunas de sus propias instancias de objetos que constituyen el estado del sistema.

Recomendaciones

Es fundamental para el Analista de Sistemas o especialista en TI, conocer plenamente los requerimientos de usuario, así como también identificar cuáles serán las propiedades y métodos a codificar en la creación de la Biblioteca de Clases. Finalmente se deberá generar los Archivos DLL para su implementación y uso respectivamente.

Bibliografía

  • https://msdn.microsoft.com/es-es/library/dd409390.aspx

  • https://es.wikipedia.org/wiki/Biblioteca_de_enlace_din%C3%A1mico

  • http://www.usmp.edu.pe/fabrica/

  • http://www.monografias.com/trabajos5/inso/inso#ixzz4l9pE5eyo

 

AGRADECIMIENTO

A Dios que nos ilumina por el camino correcto, damos las gracias por darnos la sabiduría, la fuerza, la salud, la motivación y la fe para culminar esta etapa de nuestras vidas.

A nuestros padres por ser nuestro motor y motivo de superación, la paciencia y el amor incondicional que nos han brindado siempre, pero sobre todo por hacer de nosotros personas de bien. Este logro es para ustedes.

A todos nuestros maestros que nos brindan sus conocimientos y nos transmiten sus experiencias profesionales, preparándonos para los retos del futuro. En especial queremos agradecer al Dr. Luis Soto Soto por sus conocimientos y experiencia profesional que nos trasmite clase a clase.

DEDICATORIA

El presente proyecto de investigación va dedicado a nuestros padres que aún se encuentran entre nosotros e incluso a aquellos que ya partieron de este mundo, por habernos educado y brindarnos su amor. Así mismo queremos dedicar el presente trabajo a cada uno de nosotros por el esfuerzo realizado.

 

 

 

Autor:

Ing. Arias Torres, Rafael

Lic. Castañeda Hernandez, Novar Michell

Ing. Moscoso Noriega, John Paúl

Ing. Ocampo Aguilar, Eugenia Violeta

UNIVERSIDAD NACIONAL FEDERICO VILLARREAL

ESCUELA UNIVERSITARIA DE POSGRADO

Monografias.com

MAESTRÍA EN INGENIERÍA DE SISTEMAS CON MENCIÓN EN GESTIÓN DE TECNOLOGÍAS DE LA INFORMACIÓN

INGENIERÍA DE SOFTWARE

Dr. Luis Soto Soto

LIMA – PERÚ

2017

Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

Categorias
Newsletter