Volver a buscar

ELECTIVA DE ÉNFASIS IV (DESARROLLO DE SOFT POR COMPONENTES)

Campo disciplinario / Disciplinary field : Ingeniería de Sistemas
Nivel des programa / Program Level : Pregrado/Undergraduate
Pais / Country : Colombia
Horas curso : 3
Programa académico : Ingeniería Informática
Créditos : 3
3
Idioma del curso : Español/Spanish
Fecha de inicio curso : 22/07/2024
Fecha de terminación : 06/12/2024
100% virtual
UNIVERSIDAD MILITAR NUEVA GRANADA
Ver perfil

Descripción del curso

ENFOQUE GLOBAL DE LA ASIGNATURA
Desde que el ser humano tiene conciencia ha aprendido a reutilizar el conocimiento, de hecho, para evitar cometer los mismos errores del pasado, nos basamos en nuestro conocimiento, experiencia y herramientas para lograr evolucionar en mejores soluciones. Es este concepto de la “reutilización”, en el que debemos basarnos desde el primer día en que decidimos crear una aplicación de software o parte de ella. Con el tiempo el desarrollo de aplicaciones de software se ha convertido en un proceso complejo a tal punto que muchas veces no es posible la reutilización de partes del software existente porque pensamos la solución como una sola pieza y orientada a un único cliente.

 

El desarrollo de software basado en componentes nos permite crear varias piezas de una misma solución que permiten realizar diversas tareas independientes y al mismo tiempo interrelacionadas, causando múltiples ventajas como el mejoramiento de la calidad, la reducción de tiempo del ciclo de desarrollo y la disminución de costos.

 

La programación orientada a objetos abrió el camino al desarrollo de software basado en componentes, siendo este último una práctica principal y actual de la ingeniería de software. Sin embargo, los componentes nos ofrecen una mayor reutilización y una mejor estructura modular con mayor flexibilidad en comparación con la programación orientada a objetos o los enfoques de programación basados en librerías.

 

Es importante comprender que este desarrollo basado en componentes requiere más disciplina por parte de los desarrolladores durante las etapas de diseño y programación para proporcionar una mayor flexibilidad, estabilidad y extensibilidad de los componentes.

 

 

 

JUSTIFICACIÓN
Comprendiendo las características y la aplicabilidad de los conceptos del desarrollo de software basado en componentes por parte de los estudiantes, permitirá introducirlos en las buenas prácticas de la ingeniería de software. Adicionalmente estarán en condiciones de plantear mejoras en el desarrollo de soluciones utilizando componentes de software y tecnologías de vanguardia.

 

Darán importancia al desarrollo de software basado en componentes porque identificarán el aumento de la productividad del desarrollo de aplicaciones a nivel personal y organizacional; y tendrán en cuenta la disminución del tiempo de desarrollo y, por lo tanto, el tiempo de lanzamientos y liberaciones de versiones. Por su fácil mantenibilidad y escalabilidad, contribuirán a la calidad del software que desarrollen.

 

También ayudarán a la generación de una documentación completa de los componentes para conocer y reutilizar los componentes por parte de otros individuos o de equipos de trabajo. Adicionalmente, tendrá en cuenta que entre más se reutilice un componente, existirá mayor probabilidad de estabilización del mismo porque existirán mayor número de iteraciones de pruebas y ajustes de errores.

 

OBJETIVO GENERAL
Proporcionar a los estudiantes los fundamentos del desarrollo de software basado en componentes para que puedan tener e implementar un modelo de desarrollo de software con el fin de diseñar soluciones a problemas propuestos.

 

OBJETIVOS ESPECÍFICOS
  1. Comprender los fundamentos y la teoría del desarrollo de software basado en componentes.
  1. Determinar enfoques sobre los modelos de los componentes y los problemas que puedan surgir al momento de programar componentes.
  1. Establecer la arquitectura y los marcos de trabajo para el desarrollo de software basado en componentes.
  1. Utilizar la programación orientada a componentes como una técnica de implementación dentro de las arquitecturas de software para fabricar soluciones de software sobre las plataformas tecnológicas actuales.

 

COMPETENCIA GLOBAL
El estudiante estará en capacidad de diseñar soluciones para problemas presentados en la vida cotidiana y en las organizaciones; también, estará preparado para utilizar las tecnologías de la información y la comunicación para implementar estas soluciones a través de sistemas de información modulares o basados en componentes.

 

COMPETENCIAS ESPECÍFICAS
  1. Identifica los fundamentos y la teoría del desarrollo basado en componentes para aplicarlos en la solución de problemas.
  1. Analiza y utiliza modelos de componentes para implementarlos a través de plataformas de desarrollo.
  1. Determina una arquitectura y un marco de trabajo para el desarrollo de software basado en componentes.
  1. Sabe implementar servicios web y servicios REST como componentes reutilizables basados en la arquitectura orientada a servicios SOA

 

ESQUEMA GENERAL DE LOS CONTENIDOS
1.     En la primera unidad se cubren las motivaciones y los fundamentos de la tecnología del desarrollo de software basado en componentes. Se describen las ventajas del desarrollo de componentes y se compara el desarrollo de software basado en componentes con enfoques de componentes en otras disciplinas de la ingeniería. Se definen los componentes y sus características, así como la diferencia de componentes a nivel de hardware y los componentes a nivel de software. También se determinan las diferencias entre la Programación Orientada a Objetos y el Desarrollo de Software basado en Componentes.

2.     En la segunda parte se identifican los diferentes estándares de diseño tanto de objetos como de componentes, teniendo claridad sobre sus diferencias y las relaciones de interfaz y polimorfismo. Así mismo, se estudian diferentes maneras de implementación a través de algunos lenguajes de programación existentes, sus modelos de componentes, de conexión y de despliegue. Se realizarán pruebas de reutilización de componentes y la implementación de los estándares de dominio en la industria.

3.     En la tercera unidad se discute sobre el concepto de arquitecturas de componentes, las definiciones técnicas y su marco conceptual. Se incluyen los fundamentos de los marcos de trabajo de componentes y se presentan algunos contextos de composición. Se profundiza en el desarrollo de componentes, incluidas las metodologías de los lenguajes de programación y se tratan temas de adquisición y distribución de componentes, así como el ensamble de estos.

4.     En la última unidad se profundiza en los conceptos de servicios como componentes, dando importancia a las tecnologías de servicios web y servicios REST. También se identifica la arquitectura que proporciona el detalle, la publicación, el despliegue, el llamado y la orquestación de servicios. Para finalizar se detalla como la arquitectura orientada a servicios sirve de base para la creación de soluciones intermedias.

 

 

CONTENIDOS

 

UNIDAD I: INTRODUCCIÓN Y TEORÍA DEL DESARROLLO DE SOFTWARE ORIENTADO A COMPONENTES

 

INTRODUCCIÓN

ESTÁNDARES

·                     Estándares de conectividad

·                     No es eficiente tener muchos estándares

·                     ¿Dónde estamos actualmente?

·                     ¿Dónde estaremos mañana?

CONCEPTOS SOBRE COMPONENTES

·                     Términos y conceptos

COMPONENTES, INTERFACES Y REENTRADA

·                     Principios de los Componentes

·                     Interfaces

·                     Reentradas

POLIMORFISMO

·                     Sustituibilidad – usando uno por otro

·                     Tipos, subtipos y comprobación de tipos

·                     Tipos, interfaces y componentes

ASPECTOS DE ESCALA Y GRANULARIDAD

 

UNIDAD II: MODELOS DE COMPONENTES Y PLATAFORMAS DE DESARROLLO

 

ESTÁNDARES DE OBJETOS Y COMPONENTES

·                     El origen de todo

·                     De procedimientos a objetos

·                     La letra menuda

LA MANERA OMG: CORBA, CCM, OMA Y MDA

LA MANERA ORACLE

·                     JavaBean

·                     EJB Enterprise JavaBean

LA MANERA MICROSOFT

·                     Common Lenguage Runtime CLR

·                     Bibliotecas de Clases .NET

COMPARACIÓN ESTRATÉGICA

·                     Atributos Compartidos

·                     Diferencias

·                     Esfuerzo en los Estándares de Dominio

 

UNIDAD III: LA ARQUITECTURA Y EL PROCESO DE DESARROLLO DE COMPONENTES

 

ARQUITECTURA DE COMPONENTES

·                     Los roles de una arquitectura

·                     ¿Conceptualización – más de los objetos?

·                     Definiciones de términos claves

·                     Una arquitectura de componentes escalable

MARCOS DE TRABAJO DE COMPONENTES

·                     Conceptos y características

·                     Arquitectura y diseño de patrones

·                     Factores de rendimiento

DESARROLLO DE COMPONENTES

·                     La metodología – programación orientada a componentes

·                     El entorno – seleccionando el objetivo del framework

·                     Las herramientas – seleccionando el lenguaje de programación

DISTRIBUCIÓN Y ADQUISICIÓN DE COMPONENTES

·                     ¿Aplicaciones, no componentes?

·                     Catalogación y descripción del producto

·                     Ubicación y selección de componentes

·                     Superdistribución e Intermediarios

ENSAMBLE DE COMPONENTES

 

UNIDAD IV: IMPLEMENTACIÓN DE COMPONENTES DE DESARROLLO DE SOFTWARE

 

ARQUITECTURA ORIENTADA A SERVICIOS (SOA)

·                     Una analogía orientada al servicio

·                     ¿Cómo los servicios encapsulan la lógica?

·                     ¿Cómo se relacionan los Servicios?

·                     ¿Cómo se comunican los servicios?

·                     ¿Cómo se diseñan los servicios?

·                     ¿Cómo se construyen los Servicios?

SOA CONTEMPORÁNEA

SERVICIOS WEB (WEB SERVICES)

·                     Arquitectura de Servicios Web

·                     Desarrollando Servicios Web

SERVICIOS RESTful

·                     Características de un servicio RESTful

·                     o      Desarrollando Servicios RESTful

 

 

Requisitos del curso

Ingresar de manera libre a la plataforma, cumplir con las actividades y plazos establecidos para cada actividad.
Participar de los encuentros/tutorías que se programen
Tener en cuenta que el periodo académico es desde el 22 de Julio al 06 de diciembre de 2024 y los cursos de dictan por bloques dentro de dicho periodo académico.

 

Requisitos institucionales

Ser estudiante regular en la Universidad de origen

Ser postulado según lo indicado por la plataforma emovies (procedimiento y fechas establecidas)

Cumplir con los lineamientos de la IES receptora a la hora de desarrollar el curso

Procedimiento de aplicación

Realizar la solicitud de movilidad virtual a la Oficina de relaciones Internacionales de la Universidad Militar Nueva Granada mediante un correo electrónico a los correos institucionales [email protected] y [email protected], remitiendo la documentación y formatos indicados para tal fin, en los plazos indicados para las postulaciones.

Documentación

Formato de solicitud de movilidad UMNG2. SOLICITUD DE MOVILIDAD ESTUDIANTIL (MIEMBROS OTRAS INSTITUCIONES) (1)

Formato proyecto de homologación de asignaturas o rotaciones3. PROYECTO HOMOLOGACIÓN ASIGNATURAS (MIEMBROS OTRAS INSTITUCIONES) (1)

Carta de presentación de la ORI de la Universidad de origen

Certificado original de notas

Certificado de cancelación de matrícula en la Universidad de origen

Resumen de hoja de Vida

Documento de identidad-identificación

 

 

5 Cupos disponibles
08/04/2024
Fecha de inicio para la aplicación
31/05/2024
Fecha de terminación para la aplicación:
  • ¿Te interesa este curso?
    Completa el siguiente formulario para informar a la persona encargada de eMOVIES en tu institución de Origen

    Solicitar información

  • Identificación del estudiante en la institución / University student ID
  • Este campo es un campo de validación y debe quedar sin cambios.