Especialización en Construcción de Software



Título Especialista en Construcción de Software
Nivel Especialización
Duración Doce meses
Número de créditos 17
Jornada nocturna
Modalidad Presencial
Código SNIES 6684

Conscientes del potencial que la industria de software representa para nuestro país y del papel primordial que en este proceso de consolidación debe jugar la academia, el Departamento de Ingeniería de Sistemas y Computación de la Universidad de los Andes ofrece el programa de Especialización en Construcción de Software ECOS.

En los últimos años ha habido un interés creciente por la industria de software en Colombia. Este interés ha sido motivado por una conciencia cada vez más clara del costo de la producción y mantenimiento de soluciones informáticas, y en particular, del costo de la baja calidad de las mismas. Así mismo, esta motivación también proviene de experiencias exitosas en otros países en vía de desarrollo que muestran que esta industria no es un privilegio de los países desarrollados.

Diversas instituciones del sector productivo y del gobierno (Colciencias, Proexport, Fedesoft, ACIS, etc.) han reconocido la importancia estratégica que la industria de software representa para Colombia. Sin embargo, estos estudios coinciden en que debe haber esfuerzos en la formación y actualización de los profesionales de esta industria. Los beneficios de una mejora en los procesos de construcción, mantenimiento y contratación de software podrán obtenerse si formamos profesionales comprometidos con la calidad de sus productos y con procesos de mejoramiento continuo.

Perfil del Aspirante

Objetivos

El propósito global del programa es ofrecer a directores de proyectos de software, desarrolladores y participantes en la construcción y mantenimiento de software, una formación complementaria especializada en Ingeniería de Software, orientada particularmente a la construcción de sistemas de información empresariales. Este mejoramiento podrá desarrollarse desde la gestión de los proyectos, el mejoramiento de los procesos de desarrollo y con las arquitecturas de software adecuadas para soportar las necesidades estratégicas, tácticas y operativas de las empresas.

Plan de Estudios

Enfoque Pedagógico

El enfoque pedagógico fue concebido para proveer un balance entre los aspectos teóricos y prácticos. De igual manera, gracias a los distintos talleres y proyectos en los que el estudiante debe participar, se logra una completa integración entre las áreas de procesos de software, gerencia de proyectos, arquitectura de software, metodologías y tecnologías.

El participante debe:

  • Asistir a clases teóricas y seminarios.
  • Asistir a talleres de uso de tecnología.
  • Realizar tareas y proyectos relacionados con el material teórico.
  • Participar en proyectos en grupo que integran temas cubiertos en varios cursos.

Escolaridad y Cursos


La especialización tiene una duración de un año académico organizado en tres períodos académicos. El horario de los cursos regulares es de 6 a 9 pm tres veces por semana: martes, miércoles y jueves. En promedio, el estudiante debe asistir a clases o talleres doce horas por semana. El programa es presencial con dedicación de tiempo parcial. Todas las clases tienen lugar en las instalaciones de la Universidad de los Andes.

Criterios de Admisión

Ser profesional en Ingeniería o afines, cuya actividad profesional actual se relacione con la construcción de software. El candidato debe contar con una experiencia comprobable en desarrollo de, al menos, dos años. Se preferirán los candidatos con apoyo de la organización donde trabajan, de manera que puedan aplicar allí los diferentes proyectos de la especialización.

Los participantes que no tengan los conocimientos básicos requeridos de programación orientada objetos en java para iniciar el programa podrán ser admitidos después de realizar un examen y aprobar un curso nivelatorio en el tema. El curso nivelatorio exige un mínimo de conocimientos en principios básicos de lenguajes de programación y de estructuras de datos.

Se exigirá que los participantes sean capaces de leer textos técnicos en inglés.

Áreas de Profundización

La Especialización en Construcción de Software se desarrolla en las siguientes líneas de profundización:


  • Arquitectura de software
  • Gerencia de desarrollo

  • Construcción de soluciones de software

  • Desarrollo de proyectos en equipo

Programa Modelo

Primer Período

CSOF 5103Gerencia de Proyectos (PMI)

2

CSOF 5203Arquitectura Empresarial y de Integración

2

CSOF 5101Conceptos avanzados de ingeniería de software

2

CSOF 5100Proyecto I

1

Total Credit Hours:7

Segundo Período

CSOF 5204Arquitectura de Software

2

CSOF 5200Proyecto 2

1

Total Credit Hours:3

Tercer Período

CSOF 5302Desarrollo Sw Basado en Componentes

2

CSOF 5301Analisis y Diseño de Software

2

CSOF 5104Mejoramiento de Procesos de Software (Cmmi)

2

CSOF 5303Proyecto 3

1

Total Credit Hours:7

Perfil del Egresado

Se espera que, al final del programa, los participantes estén mejor entrenados para:

Liderar y administrar un proyecto de desarrollo de software:

  • Plantear una estrategia de desarrollo en ciclos iterativos.
  • Planificar el desarrollo sobre la base de estimativos reales de esfuerzo y tamaño.
  • Realizar una identificación de riesgos del proyecto que pueda ser tenida en cuenta para planificar y controlar su desarrollo.
  • Utilizar el seguimiento al plan para controlar el desarrollo del proyecto.
  • Definir esquemas adecuados de contratación de software.
  • Explicar e incluir aspectos legales relacionados con el software en los procesos de contratación.

Definir e implantar programas de mejoramiento de procesos:

  • Explicar la importancia de los procesos de software como un requerimiento fundamental para obtener software de buena calidad.
  • Definir y liderar programas de mejoramiento continuo de los procesos de construcción de software a partir de modelos y estándares internacionales.
  • Definir y poder aplicar procesos de software para: estimación, planeación y seguimiento de proyectos, pruebas de software, aseguramiento de calidad (técnicas de inspección), administración de requerimientos y administración de configuraciones.

Definir e implementar arquitecturas de software TI:

  • Explicar la importancia de la definición de las arquitecturas de software dentro de contextos amplios de arquitecturas empresariales que busquen soluciones a los problemas de negocio de la organización.
  • Definir los atributos de calidad de la arquitectura de software y los requerimientos no funcionales que van a determinar una solución.
  • Diseñar soluciones y formas de evaluar las arquitecturas para satisfacer los atributos de calidad y los requerimientos no funcionales que afectan las arquitecturas de software.
  • Proponer soluciones de integración de aplicaciones empresariales.

Utilizar metodologías de desarrollo de software:

  • Explicar la importancia de los procesos de administración de requerimientos e ingeniería de requerimientos en los proyectos de desarrollo y mantenimiento de software.
  • Enumerar y describir las actividades básicas de la administración de requerimientos y su relación con las otras actividades del desarrollo de un proyecto de software.
  • Usar la metodología de casos de uso para hacer levantamiento de requerimientos y producir un documento de definición de los mismos.
  • Usar el análisis de riesgos para establecer prioridades a los requerimientos.

  • Usar los diagramas de clases UML y de secuencia para analizar los requerimientos y entender el problema que se quiere resolver

  • Realizar un proceso de inspección de requerimientos para verificar su completitud, claridad y entendimiento.
  • Producir artefactos de diseño.
  • Utilizar conceptos de arquitecturas de software para disminuir la complejidad del problema y facilitar el diseño del software.

  • Verificar que el diseño propuesto para un software satisface los requerimientos funcionales y los no funcionales incluyendo los atributos de calidad y restricciones establecidas para el sistema.

  • Adquirir la disciplina de desarrollar software por componentes de fácil reutilización.

Utilizar herramientas y tecnología:


  • Utilizar herramientas que apoyen los procesos de software tales como: manejadores de versiones, manejadores de pruebas y reportes de error, manejadores de riesgos, software para planeación y seguimiento, manejadores de requerimientos.
  • Utilizar ambientes de desarrollo basados en tecnologías de punta para desarrollar software. Desarrollo de componentes web, desarrollo de componentes de lógica de negocio, desarrollo de componentes de sistemas de información.

Datos de Contacto

Jorge Villalobos
Coordinador Especialización en Construcción de Software ECOS
ecos@uniandes.edu.co