maestría en ingeniería de software plan 2016 - cimat.mx · matemáticas discretas, lenguajes de...
Post on 29-Sep-2018
215 Views
Preview:
TRANSCRIPT
MaestríaenIngenieríadeSoftwarePlan2016
1
Centro de Investigación en Matemáticas, A.C.
MAESTRÍA EN INGENIERÍA DE SOFTWARE
2016 -
VIGENCIA
El programa de la MIS del CIMAT es para licenciados en Ciencias Exactas, Ciencias Naturales o Ingeniería. Pueden ser profesionistas o profesores universitarios que cumplan con los siguientes requisitos:
● PROFESIONISTAS ○ Con experiencia en desarrollo de software ○ Con interés en aprender y aplicar técnicas y métodos avanzados de Ingeniería
de Software en el desarrollo de sus proyectos
● PROFESORES UNIVERSITARIOS ○ Con interés en aprender y transferir técnicas y métodos avanzados de Ingeniería
de Software a sus alumnos ○ Con experiencia en desarrollo de software y/o liderazgo de proyectos de
software ○ Con experiencia en cursos impartidos en el desarrollo de software y/o
tecnologías de información
● CONOCIMIENTOS DESEADOS ○ Con conocimiento equivalente a un alumno de licenciatura en las áreas de
matemáticas discretas, lenguajes de programación, algoritmos y estructuras de datos
○ Con conocimientos del ámbito de la informática en compiladores, sistemas operativos y bases de datos
○ Con conocimiento del ámbito de las matemáticas como álgebra, cálculo diferencial e integral, estadística y álgebra lineal
○ Con dominio de un lenguaje de programación estructurado (por ejemplo C, Pascal) o dominio de un lenguaje orientado a objetos (por ejemplo Java, C++, C#)
ANTECEDENTES ACADEMICOS DE INGRESO MODALIDAD ESCOLARIZADA DURACION DEL CICLO 4 SEMESTRES DE 16 SEMANAS Y
1 VERANO DE 5 SEMANAS CLAVE DEL PLAN DE ESTUDIOS 2016
MaestríaenIngenieríadeSoftwarePlan2016
2
OBJETIVOS GENERALES DEL PLAN DE ESTUDIOS La Maestría en Ingeniería de Software (MIS) nace para atender la necesidad de los profesionales de la Industria de Software de elevar sus capacidades y conocimientos para el desarrollo de Software. La MIS está diseñada para transmitir principios, mejores prácticas, y tecnologías avanzadas de la Ingeniería de Software. La MIS está dirigida a:
● Profesionales de la industria del software con experiencia que estén buscando las mejores prácticas y tecnologías para desarrollar su trabajo.
● Profesores Universitarios, con interés en aprender y transferir técnicas y métodos avanzados de Ingeniería de Software a sus alumnos en sus respectivas instituciones académicas.
● Profesionales del software que trabajan de manera independiente o que deseen emprender un Negocio de Base Tecnológica.
● Recién egresados que demostraron iniciativa y autodirección durante su carrera al participar de manera reiterada en proyectos de software y que cuenten con el aval de al menos uno de sus profesores, preferentemente, su director de tesis.
La MIS está diseñada para ser cursada durante cuatro semestres y un verano.
PERFIL DEL EGRESADO
Al concluir el grado el estudiante: ● Será un agente de cambio para mejorar las prácticas en el área de trabajo en la
cual se desempeña. ● Entenderá y aplicará las mejores prácticas de la Ingeniería de Software en el
desarrollo de soluciones competitivas a los problemas que se enfrente en su trayectoria profesional.
● Tendrá la preparación necesaria para desempeñarse como: ○ Emprendedor de base tecnológica ○ Líder de equipo de proyectos de software ○ Jefe de Procesos y Calidad de empresa de desarrollo de software ○ Consultor de organizaciones que desarrollan software ○ Instructor que transfiere técnicas y métodos avanzados de Ingeniería de
Software a sus alumnos ○ Desarrollador Sénior ○ Estudiante de doctorado en Universidades o Centros de Investigación
Nacional o Internacional que ofrezcan programas en Ciencias de la Computación, Informática, Sistemas de Información, Administración de Sistemas Computacionales, Ingeniería de Software, etc.
MaestríaenIngenieríadeSoftwarePlan2016
3
LISTA DE
ASIGNATURAS O UNIDADES
DE APRENDIZAJE
CLAVE SERIACION HORAS
CREDITOS INSTALACIONES
CON DOCENTE
INDEPENDIENTES
(A) aula, (L) laboratorio, (T) taller, (O) otros
Semestre I
Principios de Diseño de Software
16PDS01
48 48 6 A, O
Herramientas básicas de desarrollo de software
16HBD01 48 48 6 A, O
Ingeniería de Requisitos
16IRE01 48 48 6 A, O
Modelos y Metodologías de Ingeniería de Software
16MMS01 48 48 6 A, O
Arquitectura de Software
16ASS01 48 48 6 A, O
Semestre II
Administración del Desarrollo de Software
16ADS01 48 48 6 A, O
Aseguramiento de la Calidad de Software
16ACS01 48 48 6 A,O
OPTATIVA 1
OPTATIVA 2
Proyecto con la Industria I
16PIN01 32 128 10 A,O
Verano I Métodos y Técnicas de Investigación Orientados a la Ingeniería de Software
16MTI01 60 356 20 A,O
Proyecto con la Industria II
16PIN02 15PIN01 32 128 10 A,O
Semestre III
OPTATIVA 3
Seminario de Tesis I
16STE01 15MTI01 60 356 20 A,O
MaestríaenIngenieríadeSoftwarePlan2016
4
Proyecto con la industria III
16PIN03 15PIN02 32 128 10 A,O
Semestre IV
OPTATIVA 4
Seminario de Tesis II
16STE02 15STE01 60 356 20 A,O
Proyecto con la Industria IV
16PIN04 15PIN03 32 128 10 A,O
SUMA 644 1916 142
ASIGNATURAS O UNIDADES
DE APRENDIZAJE
OPTATIVAS
CLAVE
SERIACION
HORAS
CREDITOS
INSTALACIONES
CON DOCENTE
INDEPENDIENTES
Probabilidad y Estadística
16PYE01 48 48 6 A,T
Fundamentos de Interacción Humano
Computador
16FUN01 48 48 6 A,T
Métodos de Interacción Humano
Computador
16MIC01 48 48 6 A,T
Diseño de Videojuegos
Centrado en el Usuario
16DVI01 48 48 6 A,T
Inteligencia Artificial para
juegos
16IAJ01 48 48 6 A,T
Sistemas Distribuidos
16SDI01 48 48 6 A,T
Bases de Datos No SQL
16BDN01 48 48 6 A,T
Programación Funcional
16PFU01 48 48 6 A,T
Análisis de Datos
16ADR01 48 48 6 A,T
Tópicos Selectos de
Aseguramiento del Software
16TAS01 48 48 6 A,T
Modelos y Estándares de
Seguridad
16MES01 48 48 6 A,T
Programación 16PSE01 48 48 6 A,T
MaestríaenIngenieríadeSoftwarePlan2016
6
PROGRAMASDEESTUDIOS
PRINCIPIOS DE DISEÑO DE SOFTWARE
SEMESTRE I 16PDS01
DESCRIPCIÓN
El diseño es una de las habilidades básicas del desarrollo de sistemas de software. Por ello, antes de diseñar sistemas completos, es necesario saber cómo diseñar programas.
Este curso busca dotar al alumno de los conceptos, técnicas y herramientas que le permitan desarrollar la habilidad de diseñar programas que serán implementados en un lenguaje de programación orientado a objetos.
Con esto se pretende elevar la calidad de los programas que el alumno desarrolla, lo que será indispensable en las siguientes materias de la maestría y en su vida laboral.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
Al término de este curso el alumno será capaz de diseñar programas que serán implementados con calidad en un lenguaje de programación orientado a objetos. OBJETIVOS PARTICULARES Al finalizar este curso el alumno será capaz de:
1. Identificar y comprender los conceptos fundamentales del diseño de sistemas, especialmente los del paradigma orientado a objetos y del diseño basado en el dominio.
2. Identificar y comprender el concepto de patrón de diseño, especialmente los relacionados al diseño de sistemas orientados a objetos.
3. Identificar el lenguaje de diseño UML así como comprender la sintaxis y semántica de algunos de sus diagramas y su mapeo a código fuente.
4. Aplicar estos conceptos así como técnicas y herramientas relacionadas en el diseño e implementación de un problema del mundo real.
TEMAS Y SUBTEMAS
1. DISEÑO DE SISTEMAS DE SOFTWARE 1.1. Definición y Objetivos
1.2. Principales Artefactos.
MaestríaenIngenieríadeSoftwarePlan2016
7
1.2.1. Modelo estático
1.2.2. Modelo dinámico
1.2.3. Modelo de datos 1.3. Principios de Diseño.
1.3.1. Modularidad
1.3.2. Cohesión
1.3.3. Acoplamiento
2. CÓDIGO DE CALIDAD (CLEAN CODE) 2.1. Fundamentos 2.2. Principios SOLID 2.3. Diseño de Componentes
3. ANÁLISIS Y DISEÑO ORIENTADO A OBJETOS 3.1. Qué es la Paradigma Orientado a Objetos 3.2. Cómo es diferente Paradigma Orientado a Objetos de otros Paradigmas 3.3. Diseño Guiado por el Dominio (Domain Driven Design)
4. LENGUAJE DE MODELADO 4.1. Diagramas Estáticos 4.2. Diagramas Dinámicos
5. PATRONES DE DISEÑO (DESIGN PATTERNS)
5.1. Patrones creacionales 5.2. Patrones estructurales 5.3. Patrones de comportamiento
6. REDISEÑO CON PATRONES (REFACTORING TO PATTERNS) * Se recomienda que los diagramas de UML sean introducidos, poco a poco al ir cubriendo los demás temas del plan de estudio.
ACTIVIDADES DE APRENDIZAJE
Clases
Proyecto de Software
Taller
Desarrollo de prototipos
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
ASPECTO A EVALUAR PORCENTAJE Proyecto de code review usando clean code 15% Proyecto de implementación de patrones 15% Proyecto de patrones aplicados a refactoring 15% Tareas y Exámenes rápidos 55%
MaestríaenIngenieríadeSoftwarePlan2016
9
TALLER DE HERRAMIENTAS BÁSICAS PARA DESARROLLO DE SOFTWARE
SEMESTRE I 16HBD01
DESCRIPCION
“A un buen artesano se le conoce por sus herramientas” Brooks. Existen herramientas básicas de desarrollo de software que son genéricas y necesarias para poder ser un desarrollador efectivo.
Dichas herramientas forman un lenguaje común que permitirá al alumno colaborar con proyectos open source en equipos distribuidos.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
El alumno usará efectivamente herramientas básicas para desarrollo de software que le permitirán ser más productivo de manera individual y colaborativa. OBJETIVOS PARTICULARES
● El alumno usará efectivamente las herramientas del entorno Unix. ● El alumno podrá trabajar en equipos remotos usando herramientas de colaboración para
desarrollo de software. ● El alumno podrá contribuir a proyectos open source distribuidos.
TEMAS Y SUBTEMAS
1. Antecedentes 1.1. ¿Por qué es necesario dominar herramientas de software?
2. Mecanografía 2.1. “Primero somos tecladistas, segundo: programadores.“ -Steve Yegge
3. Línea de comandos Unix 3.1. Comandos básicos 3.2. Scripts de bash
4. Repositorio de código 4.1. Uso básico (pull, update, commit, push) 4.2. Uso avanzado (pull request)
5. Editor de texto 5.1. Funcionalidades básicas 5.2. Uso del teclado para desplazamiento
MaestríaenIngenieríadeSoftwarePlan2016
10
6. Sistemas de control de Tickets 7. Herramientas de detección de defectos o debugging 8. Generadores de código 9. Procesamiento rápido de texto
9.1. sed, awk
ACTIVIDADES DE APRENDIZAJE
Tareas y exámenes rápidos
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION (7)
ASPECTO A EVALUAR PORCENTAJE
Tareas y exámenes rápidos 100%
MaestríaenIngenieríadeSoftwarePlan2016
11
INGENIERÍA DE REQUERIMIENTOS
SEMESTRE I 16IRE01
DESCRIPCIÓN
La materia de Ingeniería de Requerimientos proporciona información al estudiante que le permite crear correctamente requerimientos pasando por el proceso de obtención, análisis, especificación y validación. También se presenta información sobre el cómo administrar la configuración de los elementos involucrados en un proyecto para un mejor control de versiones, cambios, estados de requerimientos y rastreo de los mismos en un proyecto de software. Para la creación de requerimientos también se presenta el cómo modelarlos gráficamente con el modelado de lenguaje unificado. La materia de Ingeniería de Requerimientos tiene un gran impacto en la Maestría en Ingeniería del Software ya que todo los proyectos inician con este paso y es aquí donde comienza el largo camino de la calidad y donde puede evitarse trabajo en vano en la etapa de construcción del software.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Crear, modelar y controlar los requerimientos de un proyecto de software. OBJETIVOS PARTICULARES Al finalizar el alumno podrá:
● Diseñar el negocio de un producto o servicio para su posterior diseño en proyecto de software.
● Definir el alcance de un proyecto de software. ● Describir el proceso de Ingeniería de Requerimientos. ● Caracterizar y definir requerimientos en el entorno tradicional y ágil de software. ● Modelar en UML los requerimientos pertinentes. ● Extrapolar el diseño del proyecto de software con sus requerimientos en unos
documentos de especificación de requerimientos. TEMAS Y SUBTEMAS
1. Introducción a la calidad de software 1.1. El negocio del software 1.2. Principios de la gestión del software
MaestríaenIngenieríadeSoftwarePlan2016
12
1.3. ¿Por qué los proyectos fallan? 1.4. Gestión racional
2. Funcionamiento de un equipo 2.1. Motivación 2.2. Equipo de trabajo 2.3. Estructura del equipo de trabajo y de medición
3. Lo esencial de los requerimientos de software 3.1. ¿Por qué son importantes los requerimientos? 3.2. Requerimientos de software definidos 3.3. Niveles de requerimientos 3.4. Qué no es un requerimiento 3.5. Ingeniería de requerimientos 3.6. Cuando se crean malos requerimientos 3.7. Características de un excelente requerimiento 3.8. Requerimientos desde la perspectiva del cliente
4. Gestión de la configuración 4.1. El cambio constante 4.2. Gestión racional de la configuración 4.3. Fundamentos de la gestión de la configuración 4.4. Requerimientos y la gestión de la configuración
5. Ingeniería de requerimientos: Qué, por qué y quién? 5.1. Proceso de gestión de requerimientos 5.2. El analista de requerimientos 5.3. Atributos de calidad en software
6. Definición del alcance y visión de un proyecto 6.1. 6.1. Definiendo la visión, alcance y contexto de un proyecto 6.2. 6.2. Encontrando la voz del cliente
7. Licitación de requerimientos 7.1. Talleres de licitación 7.2. Encontrando los requerimientos perdidos 7.3. Matriz CRUD 7.4. Cuando la licitación ha terminado
8. Requerimientos ágiles para equipos 8.1. Organización de los equipos ágiles 8.2. Características de un programa en Backlog y pruebas 8.3. Requerimientos no funcionales
9. Modelado en UML 9.1. Introducción a UML 9.2. Diagramas de estructura
9.2.1. Diagramas de objetos 9.2.2. Diagramas de clases 9.2.3. Diagramas de despliegue
MaestríaenIngenieríadeSoftwarePlan2016
13
9.2.4. Diagramas de componentes 9.2.5. Diagramas de estructura compuesta 9.2.6. Diagramas de paquetes
9.3. Diagramas de comportamiento 9.3.1. Diagramas de actividades 9.3.2. Diagramas de máquina de estados 9.3.3. Diagramas de casos de uso 9.3.4. Diagramas de secuencias 9.3.5. Diagramas de interacción 9.3.6. Diagramas de colaboración 9.3.7. Diagramas de tiempo
10. Modelado con arquitectura de negocios 10.1. Procesos de negocios 10.2. Recursos 10.3. Objetivos 10.4. Reglas de negocio
11. Lenguaje de restricción de objetos 12. Lenguaje de descripción de procesos 13. Documentación de la especificación de requerimientos
13.1. Especificación de requerimientos de software: el contrato 13.2. Principios de la especificación 13.3. Que no debe contener el documento de especificación de requerimientos de
software 13.4. Características de un buen documento de especificación de requerimientos de
software
ACTIVIDADES DE APRENDIZAJE
Participación
Ejercicios
Presentaciones
Examen
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION (7)
ASPECTO A EVALUAR PORCENTAJE
Participación 10% Ejercicios 40% Presentaciones 20% Examen 30%
MaestríaenIngenieríadeSoftwarePlan2016
15
MODELOS Y METODOLOGÍAS DE INGENIERÍA DE SOFTWARE
SEMESTRE I 16MMS01
DESCRIPCIÓN
El software se ha convertido en el elemento clave de la evolución de los sistemas y productos informáticos. Teniendo en cuenta que su desarrollo no es una tarea fácil surgen los modelos y metodologías de desarrollo de software. Sin embargo, hoy en día existen un gran número de propuestas de metodologías, por lo tanto, es muy importante saber elegir y usar una metodología adecuada a un proyecto dependiendo de la naturaleza del mismo, así como la aplicación de conceptos básicos de ingeniería de software, permitiendo establecer un marco de trabajo para construir software de mayor calidad.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Adquirir una visión integral de los conceptos básicos de ingeniería de software así como las prácticas más reconocidas de desarrollo de software, analizando técnicas e identificando diferencias de modelos y metodologías de desarrollo de software actuales, para poder elegir y combinar las prácticas de gestión más eficientes según el contexto y naturaleza de un proyecto.
OBJETIVOS PARTICULARES
● Conocer y aplicar conceptos de Ingeniería de Software para la gestión del desarrollo del software. ● Conocer las metodologías y marcos de trabajos más empleados en la industria de TI en el desarrollo de software y desarrollar habilidades para su correcta selección. ● Identificar las principales prácticas de las metodologías de gestión de proyectos de desarrollo de software. ● Desarrollar la habilidad para identificar y aplicar la metodología adecuada para el desarrollo de diferentes productos de software.
MaestríaenIngenieríadeSoftwarePlan2016
16
TEMAS Y SUBTEMAS
1. Introducción a la Ingeniería de Software 1.1. Importancia del Software 1.2. Características y tipos de software 1.3. La crisis del software 1.4. Definición e Importancia de la Ingeniería de Software
2. Modelos de desarrollo de software 2.1. Modelo en cascada 2.2. Modelo Incremental 2.3. Modelo Iterativo 2.4. Modelo en espiral 2.5. Modelo de desarrollo de componentes
3. Metodología tradicional y Metodología Ágil 3.1. Introducción a las Metodologías 3.2. Metodologías tradicionales 3.3. Metodologías ágiles 3.4. Análisis de semejanzas y diferencias entre metodologías tradicionales y
ágiles 3.5. Metodologías tradicionales y ágiles más empleadas
4. Análisis del proyecto Software 4.1. Importancia del modelado 4.2. Lenguaje Unificado de Modelado 4.3. Modelado de un sistema
ACTIVIDADES DE APRENDIZAJE
Asistencia (al menos 90% de las clases) Trabajos Exposiciones Proyecto Final
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
ASPECTO A EVALUAR PORCENTAJE Asistencia (al menos 90% de las clases) 10% Trabajos 25% Exposiciones 25% Proyecto Final 40%
MaestríaenIngenieríadeSoftwarePlan2016
17
ARQUITECTURA DE SOFTWARE
SEMESTRE I 16ASW01
DESCRIPCIÓN
En el contexto de la ingeniería de software el desarrollo de la arquitectura tiene que ver con la estructuración de un sistema para satisfacer los requerimientos de clientes y otros involucrados, en especial los requerimientos de atributos de calidad. En esta materia se abordan aspectos relacionados al desarrollo de la arquitectura con un énfasis importante hacia las bases teóricas, pero también realizando ejercicios prácticos que permiten relacionar la teoría con la realidad.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Al término de este curso el alumno deberá comprender el concepto de arquitectura de software en el contexto de desarrollo de sistemas. OBJETIVOS PARTICULARES Al finalizar este curso el alumno será capaz de:
a. Identificar y comprender el concepto de arquitectura de software. b. Identificar y comprender el proceso de desarrollo de la arquitectura de software. c. Identificar y comprender los conceptos de objetivo de negocio, requisitos arquitectónicos
y su relación con el diseño de la arquitectura de software. d. Identificar la noción de concepto de diseño y comprender algunos relevantes al diseño
de la arquitectura. e. Reconocer y aplicar algunos métodos de desarrollo de la arquitectura de software a
través de ejercicios prácticos. TEMAS Y SUBTEMAS
1. Presentación y Descripción del Curso 2. Introducción a la Arquitectura de Software
2.1. Definición de Arquitectura de Software 2.2. Objetivos de Negocio 2.3. Proceso de Desarrollo de Arquitectura
3. Identificación de Requisitos Arquitectónicos 3.1. Requisitos Arquitectónicos
MaestríaenIngenieríadeSoftwarePlan2016
18
3.2. Métodos de Identificación de Requisitos Arquitectónicos 4. Diseño de la Arquitectura
4.1. Principios de Diseño de Sistemas 4.2. Conceptos de Diseño de Arquitectura: Patrones, Tácticas y Tecnologías. 4.3. Métodos de Diseño de Arquitectura
5. Documentación de la Arquitectura 5.1. Vistas Arquitectónicas 5.2. Notaciones 5.3. Métodos de Documentación de la Arquitectura
6. Evaluación de Arquitectura 6.1. Tipos de Evaluación 6.2. Métodos de Evaluación de Arquitectura
7. Tópicos Avanzados 7.1. Diseñando para … 7.2. Métodos Ágiles 7.3. Investigación y Desarrollo en Arquitectura de Software
8. Conclusiones y Cierre del Curso
ACTIVIDADES DE APRENDIZAJE
Habrá un proyecto de diseño con varios entregables y presentaciones durante el curso.
Habrán varias tareas de programación en el curso. Habrán varias lecturas en el curso para las cuales se pide contestar
cuestionarios. Habrá dos exámenes parciales.
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
ASPECTO A EVALUAR PORCENTAJE
Habrá un proyecto de diseño con varios entregables y presentaciones durante el curso.
30%
Habrán varias tareas de programación en el curso. 30%
Habrán varias lecturas en el curso para las cuales se pide contestar cuestionarios.
20%
Habrá dos exámenes parciales. 20%
MaestríaenIngenieríadeSoftwarePlan2016
19
ADMINISTRACIÓN DE PROYECTOS DE SOFTWARE
SEMESTRE II 16APS01
DESCRIPCIÓN
Este curso está enfocado en el conocimiento de buenas prácticas para la Administración de Proyectos de Software pero además en cuáles son los errores y riesgos más comunes en el contexto internacional, pero también en el contexto mexicano. El curso se apoya con algunos videos de la materia de Administración de Desarrollo de Software de Carnegie Mellon, además de la exposición de proyectos fallidos de software en el contexto mexicano. Los alumnos además tienen lecturas de materiales clásicos, además de videos recientes de administración y proyectos de software fallidos. Como soporte, los alumnos asisten a talleres para procesos específicos de desarrollo de software que imparten expertos de la industria con los que CIMAT tiene convenio. Al final, los alumnos desarrollan un caso por equipo en el cual identifican a manera narrativa el peor proyecto fallido en el que han participado. Así, se incrementa la base de datos de casos de proyectos fallidos de la materia, los cuales son serán consultados en su momento por alumnos de la materia.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Conocer los principios teóricos y prácticos de la Administración de Proyectos de Software de Maestros como Frederick Brooks, Tom de Marco, David Anderson y Jeff Sutherland y reflexionar sobre experiencia en proyectos de desarrollo de software fracasados en el contexto regional y nacional a través de exposición de casos de exalumnos de la materia y el desarrollo de un caso propio por parte de los alumnos que sí toman la materia.
OBJETIVOS PARTICULARES ● El alumno desarrollará en equipo un caso de negocio en relación al mayor fracaso en un
proyecto de software en que los alumnos del equipo hayan tenido participación. ● El alumno identificará patrones de falla o de fracaso en casos expuestos por alumnos de
generaciones anteriores. ● El alumno tendrá la visión completa de cuatro libros de administración de proyectos de
software. ● El alumno reflexionará sobre los principios aprendidos en un caso presentado al final.
MaestríaenIngenieríadeSoftwarePlan2016
20
● El alumno llevará un taller o certificación en alguna metodología de gestión de proyectos de software como requisito de la materia.
TEMAS Y SUBTEMAS
1. Introducción del curso. 1.1. Uso de mapas conceptuales. Ejemplo de “No Silver Bullet de Brooks”. 1.2. Estadísticas de éxito y fracaso en proyectos de Software. The Chaos Manifesto
2013. 1.3. Uso de compendium para realizar mapas conceptuales. 1.4. Encuesta sobre lectura de libros de desarrollo de software.
2. Administración del desarrollo de software 2.1. Mythical Man Month 1/4
2.1.1. EQUIPO 1. Capítulo 1. “The Tar Pit” 2.1.2. EQUIPO 2. Capítulo 2 “The Mythical Man Month” 2.1.3. EQUIPO 3. Capítulo 3. “The surgical team” 2.1.4. EQUIPO 4. Capítulo 4. “Aristocracy, Democracy and System Design” 2.1.5. EQUIPO 5. Capítulo 5 “The second system effect”
2.2. Mythical Man Month 2/4 2.2.1. EQUIPO 1. Capítulo 6. “Passing the Word” 2.2.2. EQUIPO 2. Capítulo 7. Why Did the Tower of Babel Fail? 2.2.3. EQUIPO 3. Capítulo 8. “Calling the shoot” 2.2.4. EQUIPO 4. Capítulo 9. “The Pounds in a Five-Pound Sack” 2.2.5. EQUIPO 5. Capítulo 10. “The Documentary Hypothesis”
2.3. Mythical Man Month 3/4 2.3.1. EQUIPO 1. Capítulo 11. Plan to Throw One Away” 2.3.2. EQUIPO 2. Capítulo 12. Sharp Tools”. 2.3.3. EQUIPO 3. Capítulo 13. “The Whole and the parts” 2.3.4. EQUIPO 4. Capítulo 14. “Hatching a Catastrophe” 2.3.5. EQUIPO 5. Capítulo 15. “The Other Face”
2.4. Mythical Man Month 4/4 2.4.1. EQUIPO 1. Capítulo 16. “No Silver Bullet – Essence and Accident 2.4.2. EQUIPO 2. Capítulo 17. “No Silver Bullet” Refired 2.4.3. EQUIPO 3. Capítulo 18. Propositions of The Mythical Man-Month: True or false? 2.4.4. EQUIPO 4. Capítulo 19. “The Mythical Man-Month after 20 Years” 2.4.5. EQUIPO 5. Video de Visual Project Management del Dr. James Holt de la
Universidad Estatal de Washington 2.5. Peopleware 1/2
2.5.1. EQUIPO 1. PART I. Managing the Human Resources (Capítulos 1, 2, 3, 4, 5 and 6)
2.5.2. EQUIPO 2. PART II. The Office Environment (Capítuos 7, 8 and 9). 2.5.3. EQUIPO 3. Intermezzo: Productivity Measurement and Unidentified Flying
Objects. Chapters 10, 11,12 and 13.
MaestríaenIngenieríadeSoftwarePlan2016
21
2.5.4. EQUIPO 4. PART III. THE RIGHT PEOPLE. Capítulos 14, 15, 16 and 17. 2.5.5. EQUIPO 5. PART IV. Growing productive Teams. Capítulos 18, 19, 20, 21, 22
and 23. 2.6. Peopleware 2/2
2.6.1. EQUIPO 1. PART V: ITS SUPPOSED TO BE FUN TO WORK HERE. Capítulos 24, 25
2.6.2. EQUIPO 2: PART V: ITS SUPPOSED TO BE FUN TO WORK HERE. Capítulo 26 2.6.3. EQUIPO 3. PART VI: SON OF PEOPLEWARE. Capítulos 27, 28, 2.6.4. EQUIPO 4. PART VI: SON OF PEOPLEWARE. Capítulos 29, 30, 2.6.5. EQUIPO 5. PART VI: SON OF PEOPLEWARE. Capítulos 31, 32 y 33
2.7. KANBAN 1/4 2.7.1. EQUIPO 1. Capítulo 1. Solving an Agile Managers Dilemma 2.7.2. EQUIPO 2. Capítulo 2. What is the Kanban Method? 2.7.3. EQUIPO 3. Capítulo 3. A récipe for succes 2.7.4. EQUIPO 4. CHAPTER 4. From Worst to Best in Five Quarters 2.7.5. EQUIPO 5. CHAPTER 5. Continuous Improvement Culture
2.8. KANBAN 2/4 2.8.1. EQUIPO 1. CHAPTER 6. Mapping the Value Stream 2.8.2. EQUIPO 2. CHAPTER 7. Coordination with Kanban Systems 2.8.3. EQUIPO 3. CHAPTER 8. Establishing a Delivery Cadence 2.8.4. EQUIPO 4. CHAPTER 9. Establishing an input cadence 2.8.5. EQUIPO 5. Chapter 10. Setting Work in Progress Limit
2.9. KANBAN 3/4 2.9.1. EQUIPO 1. CHAPTER 11. Establishing Service Level Agreements. 2.9.2. EQUIPO 2. CHAPTER 12. Metrics and Management Reporting 2.9.3. EQUIPO 3. CHAPTER 13. Scaling Kanban 2.9.4. EQUIPO 4. CHAPTER 14. Operations review. 2.9.5. EQUIPO 5. CHAPTER 15. Starting a Kanban Change Initiative.
2.10. KANBAN 4/4 2.10.1. EQUIPO 1. Chapter 16. Three Types of Improvement Opportunity 2.10.2. EQUIPO 2. Chapter 17. Bottlenecks and Non-Instant Availability 2.10.3. EQUIPO 3. Chapter 18. An Economic Model for Lean 2.10.4. EQUIPO 4. Chapter 19. Sources of Variability 2.10.5. EQUIPO 5. Chapter 20. Issue Management Escalation Policies
2.11. SCRUM 2.11.1. EQUIPO 1. Chapter 1. The way the world works is broken. Chapter 2. The
origins of scrum 2.11.2. EQUIPO 2. Ch3. Teams. Ch4. Time 2.11.3. EQUIPO 3. Ch5. Waste is a crime. Ch6. Plan Reality, Not Fantasy 2.11.4. EQUIPO 4. Ch7. Happiness. Ch8. Priorities. Ch9. Change the world 2.11.5. EQUIPO 5. Scrum from the trenches de Henrik Kniberg
MaestríaenIngenieríadeSoftwarePlan2016
22
2.11.6. Desarrollo de caso de negocio sobre fracaso en proyectos de desarrollo de software
ACTIVIDADES DE APRENDIZAJE
Exposición por parte de los alumnos Caso de negocio sobre fracaso en un proyecto de software Taller de gestión de proyectos de software Examen final
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
ASPECTO A EVALUAR PORCENTAJE
Exposición por parte de los alumnos 50% Caso de negocio sobre fracaso en un proyecto de software
30%
Taller de gestión de proyectos de software 10% Examen final 10%
MaestríaenIngenieríadeSoftwarePlan2016
23
ASEGURAMIENTO DE LA CALIDAD DE SOFTWARE
SEMESTRE II 16ACS01
DESCRIPCIÓN
La calidad de software es uno de los elementos fundamentales en una empresa exitosa. Para que los egresados de la maestría puedan desempeñar sus roles como líderes de la industria es necesario que reconozcan y eleven la calidad de software.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Al finalizar la materia el alumno será capaz de liderear del departamento de calidad de una empresa de tecnología al implementar las prácticas aceptadas en la industria.
OBJETIVOS PARTICULARES El alumno conocerá los conceptos y aplica apropiadamente las herramientas y artefactos de los siguientes temas:
● Pruebas en métodos ágiles ● Static code analysis ● Continuous Integration ● Continuous Deployment
TEMAS Y SUBTEMAS
1. Introducción 1.1. ¿Por qué es importante la calidad de Software? 1.2. ¿Cuáles son los roles de un equipo de testing? 1.3. ¿Cuáles son los niveles y tipos de pruebas? 1.4. Defectos históricos en el software.
2. Herramientas fundamentales de la calidad 2.1. Repositorio de código 2.2. Sistema de control de tickets
3. Herramientas de análisis estático de código 3.1. Revisión automática de estándares de código 3.2. Linters y code sniffers
MaestríaenIngenieríadeSoftwarePlan2016
24
4. Herramientas de Pruebas 4.1. Herramientas de pruebas unitarias 4.2. Herramientas de pruebas de aceptación
5. Integración continua o Continuous Integration 5.1. ¿Qué es la integración continua? 5.2. Herramientas de integración continua en la nube 5.3. Herramientas de integración continua en el servidor local
6. Publicación continua o Continuous Delivery (CD) 6.1. ¿Qué es la publicación continua? 6.2. ¿Qué es la virtualización? 6.3. Herramientas de integración continua en la nube 6.4. Herramientas de integración continua en el servidor local
ACTIVIDADES DE APRENDIZAJE
Proyecto Integrador de Aseguramiento de la calidad Proyecto Intermedio Tareas y Exámenes rápidos
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
ASPECTO A EVALUAR PORCENTAJE
Proyecto Integrador de Aseguramiento de la calidad 25% Proyecto Intermedio 15% Tareas y Exámenes rápidos 60%
MaestríaenIngenieríadeSoftwarePlan2016
25
MÈTODOS Y TÈCNIAS DE INVESTIGACIÒN ORIENTADOS A LA INGENIERÌA DE SOFTWARE
VERANO I 16MTI01
DESCRIPCIÓN
Esta materia está orientada a que el alumno aprenda de manera práctica los principios, técnicas y herramientas necesarias para desarrollar trabajos de investigación, tales como artículos científicos, reportes técnicos y su tesis de maestrías.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL En esta materia se plantea establecer las bases que permitan a los estudiantes de maestría abordar sus trabajos de investigación de manera satisfactoria incrementando su eficiencia y productividad. El objetivo principal es cubrir aspectos relacionados con la forma de llevar a cabo una investigación de modo que revierta en bien de la comunidad científica en términos de buenas publicaciones de resultados, realización de informes técnicos y elaboración de tesis.
OBJETIVOS PARTICULARES ● Conocer el significado de la investigación científica. ● Aprender a orientar un trabajo de investigación. ● Aprender los tipos genéricos de publicaciones científicas y técnicas que existen. ● Conocer de manera general como se puede estructurar una tesis. ● Conocer las líneas de investigación más actuales y los referentes nacionales e
internacionales en el ámbito de la Ingeniería del Software. ● Conocer algunas de las técnicas de experimentación más utilizadas en la Ingeniería del
Software. TEMAS Y SUBTEMAS
1. Introducción y Motivación 1.1. Reflexiones sobre la investigación 1.2. Investigación en ingeniería del software: La vida más allá de la programación 1.3. Áreas y tópicos de investigación en la ingeniería del software
2. Cómo centrar un tema de investigación 2.1. Consideraciones y recomendaciones generales para centrar un tema de
investigación
MaestríaenIngenieríadeSoftwarePlan2016
26
2.2. Guía práctica para definir un tema de investigación 2.3. Compromisos de tutores, directores y alumnos una vez que se define un tema de
investigación 3. Búsqueda de información y revisión crítica de trabajos científicos
3.1. Bases de datos y motores de búsqueda especializados 3.2. Guía práctica para la revisión crítica de trabajos científicos 3.3. Proceso de revisión literaria 3.4. Proceso de revisión sistemática
4. Herramientas tecnológicas de apoyo a la investigación 4.1. Equipo de cómputo 4.2. Sistemas de almacenamiento físicos y virtuales 4.3. Procesadores de texto y sistemas de composición de texto (TeX y LaTeX) 4.4. Hojas de cálculo, programas estadísticos y lenguajes de programación orientados
al análisis estadístico 4.5. Gestores de referencias
5. Recomendaciones generales para escribir artículos científicos y reportar resultados 5.1. Consejos prácticos para la escritura de artículos científicos, reportes técnicos y
bitácoras de trabajo 5.2. Estructura general de un trabajo científico 5.3. Principales guías de estilo para referencias y trabajos 5.4. Tipos de publicaciones científicas
6. Técnicas para redactar y estructurar una tesis 6.1. Técnicas y estructura para redactar un informe técnico 6.2. Método general para estructurar y escribir una tesis
ACTIVIDADES DE APRENDIZAJE
Asistencia (al menos 80% de las clases) Trabajo sobre definición de tema de investigación Revisión y análisis crítico de artículo científico Elaboración de anteproyecto de tesis
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN ASPECTO A EVALUAR PORCENTAJE Asistencia (al menos 80% de las clases) 10% Trabajo sobre definición de tema de investigación 20% Revisión y análisis crítico de artículo científico 10% Elaboración de anteproyecto de tesis 60%
MaestríaenIngenieríadeSoftwarePlan2016
27
PROYECTO CON LA INDUSTRIA I, II, II Y IV
SEMESTRE II VERANO I SEMESTRE III SEMESTRE IV
16PIN01 16PIN02 16PIN03 16PIN04
DESCRIPCIÓN
La serie de materias de Proyecto con la Industria tiene por objetivo la aplicación de conocimientos, habilidades, destrezas y técnicas avanzadas de Ingeniería de Software para resolver algún problema en específico o una necesidad de la industria del software. Durante el curso, el alumno aprenderá a definir un proyecto aplicado a la industria, planificar una serie de actividades interrelacionadas, plantera objetivo de acuerdo al tipo de proyecto y los recursos disponibles y llevar a cabo el proyecto durante un periodo definido. Se espera que al finalizar el curso, los alumnos hayan creado un producto o servicio que agregue valor a la industria o mejores sus procesos, además se espera que hayan incorporado las técnicas aprendidas durante su estancia en el programa.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL El objetivo general es que el alumno desarrolle software o proyectos relacionados en el ámbito empresarial, emprendedor o académico y que incorpore las técnicas aprendidas durante su estancia en el programa. OBJETIVOS PARTICULARES
● Que los alumnos adquieran experiencia en participar en proyectos de software. ● Que los alumnos implementen las técnicas avanzadas de ingeniería de software para
desarrollar prototipos de manera iterativa. ● Que los alumnos cierren proyectos entregando materiales de calidad y replicables para
alumnos de generaciones posteriores. ● Que el profesor y los alumnos determinen la técnica de gestión de proyectos utilizar
durante el desarrollo del proyecto y se dé un seguimiento puntual al mismo. ● Equilibrio entre la obtención de resultados y la administración del proyecto. ● Que el alumno comprenda y aplique las mejores prácticas de gestión de proyectos en un
proyecto real.
MaestríaenIngenieríadeSoftwarePlan2016
28
● Que el resultado de proyecto con la industria pueda dar pie al desarrollo de un tema de tesis.
TEMAS Y SUBTEMAS
NO APLICA.
ACTIVIDADES DE APRENDIZAJE
Revisión semanal Artefactos de software Reporte final Presentación final
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
ASPECTO A EVALUAR PORCENTAJE Revisión semanal 30% Artefactos de software 30% Reporte final 30% Presentación final 10%
MaestríaenIngenieríadeSoftwarePlan2016
29
SEMINARIO DE TESIS I Y II
SEMESTRE III SEMESTRE IV
16STE01 16STE02
DESCRIPCIÓN
Esta serie de tres materias está orientada a que el alumno adquiera las bases de investigación científica que le permitan el desarrollo de su trabajo de tesis para la obtención del grado de Maestro en Ingeniería de Software. Durante el transcurso de estos cursos el alumno establecerá un estado del arte sobre un tema en particular de acuerdo a las líneas de trabajo de los investigadores del área en la que desarrolle su trabajo de tesis. Los alumnos deberán tener reuniones de seguimiento con el investigador líder resumiendo sus actividades y el avance logrado en su investigación.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Proporcionar una ayuda, razonada y concreta, que permita una ordenada elaboración y presentación de un trabajo de tesis con suficiente rigor técnico y/o científico para que pueda ser presentado como proyecto de tesis en forma escrita y oral.
OBJETIVOS PARTICULARES
● Comprender el significado de la investigación científica y tecnológica en el ámbito de la ingeniería de software.
● Desarrollar las habilidades básicas que le permitan conocer la fundamentación de una investigación.
● Ser capaz de vincular los elementos básicos del conocimiento científico con el diseño de una investigación.
● Utilizar las herramientas proporcionadas en este curso y en los anteriores para elaborar su proyecto de tesis.
● Ser asesorado por parte de su tutor en el aspecto formal de metodología de la investigación en el caso particular de la tesis que el alumno desarrollará.
TEMAS Y SUBTEMAS
MaestríaenIngenieríadeSoftwarePlan2016
30
NO APLICA.
ACTIVIDADES DE APRENDIZAJE
De manera particular estos cursos no tienen un temario específico con la finalidad de dar libertad a cada director de tesis de plantear los objetivos de aprendizaje de manera concreta al proyecto de tesis que defina con el alumno; sin embargo, como resultado de estos cursos se espera que el alumno desarrolle los siguiente productos de trabajo:
1. Plan de trabajo para el desarrollo de la tesis. 2. Protocolo de tesis. 3. Presentación de propuesta de tesis en los seminarios de la Maestría en Ingeniería de
Software. 4. Documento de tesis.
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN ASPECTO A EVALUAR PORCENTAJE Elaboración de protocolo de tesis 20% Participación en seminario de tesis 20% Participación en revisiones semanales de la Maestría 20% Elaboración de entregables parciales para el avance de su tesis
40%
MaestríaenIngenieríadeSoftwarePlan2016
31
PROBABILIDAD Y ESTADÍSTICA
SEMESTRE II, III o IV 16PYE01
DESCRIPCIÓN
Este curso de nivel básico tiene la intención de desarrollar en el estudiante la capacidad de realizar análisis cuantitativos en situaciones de incertidumbre. Requiere conocimientos previos de conceptos básicos de álgebra de conjuntos, series y de cálculo diferencial e integral de una variable. Como resultado del aprendizaje se espera que el estudiante domine los conceptos básicos de distribuciones de probabilidad y realice inferencias estadísticas en situaciones de incertidumbre propias de su área de estudio, apoyándose en herramientas tecnológicas, cuando sea necesario. Introducir al estudiante al razonamiento probabilístico como una extensión del razonamiento lógico.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Al finalizar este curso el estudiante será capaz de comprender y aplicar las herramientas y metodologías básicas de la estadística y la probabilidad, en situaciones de incertidumbre propias de su área de trabajo. OBJETIVOS PARTICULARES Organizar, sintetizar y representar gráficamente información relevante con apoyo de la tecnología.
● Comprender y aplicar las diferentes técnicas de conteo para el cálculo de probabilidades de sucesos aleatorios.
● Comprender y aplicar el concepto de independencia de eventos y el Teorema de Bayes. ● Comprender y aplicar el concepto de variable aleatoria discreta en la modelación de
sucesos aleatorios relacionados con su área de estudio. ● Comprender y aplicar el concepto de variable aleatoria continua en la modelación de
sucesos aleatorios relacionados con su área de estudio ● Obtener e interpretar el valor esperado y la varianza de una variable aleatoria. ● Comprender el método de la función generadora de momentos.
TEMAS Y SUBTEMAS
1. Estadística Descriptiva.
MaestríaenIngenieríadeSoftwarePlan2016
32
2. Probabilidad e Inferencia. 3. Probabilidad Condicional e Independencia de Eventos 4. Teorema de Bayes 5. Variables Aleatorias Discreta 6. Variables Aleatorias Continuas 7. Valor Esperado y Varianza de una Variable Aleatoria 8. Funciones de Variables Aleatorias y el Método de la Función Generadora de
Momentos. 9. Teorema del límite Central.
ACTIVIDADES DE APRENDIZAJE
Exámenes Rápidos y Tareas Examen General: Evaluación global de comprensión de contenidos.
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE
Exámenes Rápidos y Tareas 40%
Examen General: Evaluación global de comprensión de contenidos.
60%
MaestríaenIngenieríadeSoftwarePlan2016
33
FUNDAMENTOS DE INTERACCIÓN HUMANO COMPUTADOR
SEMESTRES II, III o IV 16FUN01
DESCRIPCIÓN
La Interacción Humano-Computador (IHC) es una disciplina que estudia el diseño, evaluación e implementación de sistemas computacionales interactivos para el uso humano y el estudio de los fenómenos principales que los rodean. Existen muchas características a estudiar de las personas en los sistemas interactivos como lo son: percepción, experiencia, estados cognitivos, emociones, usabilidad. En este curso se discuten los orígenes de IHC, los aspectos básicos del humano y del computador, los fundamentos para el diseño centrado al usuario, y el cómo abstraer y perfeccionar el entendimiento del usuario.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Proporcionar los fundamentos de IHC para formar estudiantes que logren comprender los elementos humanos, de computador, y de interacción para lograr capturar y perfeccionar el entendimiento del usuario en el diseño de sistemas IHC. OBJETIVOS PARTICULARES Al finalizar el alumno podrá:
● Describir la historia de la disciplina Interacción humano-computador (IHC). ● Describir los aspectos básicos de IHC como los factores humanos, los elementos de
interacción, y la experiencia del usuario. ● Recopilar el proceso del diseño de productos centrado en el usuario. ● Extrapolar los métodos, herramientas y técnicas para abstraer el conocimiento del
usuario. TEMAS Y SUBTEMAS
1. Historia de la disciplina Interacción Hombre-Computador (IHC) 1.1. El mouse 1.2. El bloc de dibujo de Ivan Sutherland 1.3. El nacimiento de IHC 1.4. Las interfaces gráficas
2. El factor humano
MaestríaenIngenieríadeSoftwarePlan2016
34
2.1. Factores humanos 2.2. Sensores 2.3. Respondedores (labios, voz, ojos) 2.4. El cerebro 2.5. El lenguaje 2.6. El rendimiento humano
3. Elementos de interacción 3.1. Controles duros y suaves 3.2. Relaciones espaciales 3.3. Percepción de propiedad y orden del control 3.4. Relaciones neutrales y aprendidas 3.5. Modelos mentales y metáforas 3.6. Modos de funcionalidad 3.7. Grados de libertad 3.8. Contexto Móvil 3.9. Errores de interacción
4. Experiencia del Usuario (EU) 4.1. Interacción ubicua 4.2. De usabilidad a EU 4.3. Impacto emocional como parte de EU
5. Diseño centrado en el usuario dentro del ciclo de vida de un producto 6. Conceptualización 7. Aprendiendo del producto y del usuario 8. Métodos de obtención de información de los usuarios
8.1. Entrevistas 8.2. Cuestionarios 8.3. Grupos de enfoque 8.4. Análisis de lo que quieres y necesitas 8.5. Sorteo de cartas 8.6. Estudios de campo
9. Concluyendo con los hallazgos de la información del usuario
ACTIVIDADES DE APRENDIZAJE
Participación Ejercicios Presentaciones Examen
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
MaestríaenIngenieríadeSoftwarePlan2016
35
ASPECTO A EVALUAR PORCENTAJE
Participación 10% Ejercicios 40% Presentaciones 20% Examen 30%
MaestríaenIngenieríadeSoftwarePlan2016
36
DISEÑO DE VIDEOJUEGOS CENTRADO EN EL USUARIO
SEMESTRES II, III o IV 16DVI01
DESCRIPCIÓN
Al terminar la segunda guerra mundial, justo después que Alan Turing junto con Claude Shannon descifraron los códigos secretos usados por los submarinos alemanes U-Boot, se creó el primer programa para el juego de ajedrez. En 1949, Shannon presentó un programa para jugar ajedrez, pero las computadoras no tenían la capacidad para procesarlo, fue hasta 1952 que su programa fue simulado con movimientos de la computadora. En ese mismo año Alexander Douglas de la Universidad de Cambridge había creado el juego tres en raya llamado “OXO” conocido en México como “el gato”. Los videojuegos fueron evolucionando, así como la tecnológica pasando de computadoras a consolas de juegos, máquinas recreativas. Cabe destacar que la primer consola “Magnavox Odyssey” fue la que dio a conocer el entorno de los videojuegos en 1972 con las ventas de navidad, ascendiendo a 130 Mil unidades y atrayendo a emprendedores, principalmente su juego “Pong” fue el atractivo. Atari en su reciente creación mejoró el juego de “pong” con mejoras para la experiencia del usuario como lo son: mejor movimientos, marcación de la puntuación en pantalla, efectos de sonido y más. Al parecer estos fueron los inicios de la mejora de la experiencia del usuario para videojuegos a nivel mundial. Actualmente, la industria del videojuego tiene una gran preocupación por la experiencia de los usuarios, esto se debe a que este el principal motivante para los jugadores en su decisión para comprar o no un videojuego. Los estudios sobre las relaciones afectivas de los jugadores con el videojuego ha crecido en gran manera. Steve Swink (2009) percibe las relaciones afectivas como “Game feel”, el cual puede clasificarse en: control en tiempo real, espacio simulado y encerrado. Otros autores como Rex Harstson y Pardha Pyla (2012) ven la experiencia del usuario como un proceso acerca de la práctica de sobre los conceptos creativos de la exploración y visión del diseño para hacer que los diseños apelen a las emociones de los usuarios, valiéndose también de conceptos de ingeniería de costo-efectividad. Ambos puntos de vista son presentados en este curso. La experiencia del usuario en una investigación se torna relevante cuando necesitamos instrumentos de observación, es por ello que en este curso toma técnicas de investigación como observaciones, pruebas de usabilidad, encuestas, entre otras. Estas técnicas pueden ser utilizadas para capturar aspectos diseño para simuladores, juegos serios y videojuegos comerciales.
MaestríaenIngenieríadeSoftwarePlan2016
37
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL En este curso se busca formar a los alumnos con un conocimiento enfocado a la mejora de la experiencia del usuario en videojuegos y así lograr obtener los aspectos de diseño para un videojuego que logre crear un impacto emocional y mejorar su aceptación en el segmento de población seleccionado. OBJETIVOS PARTICULARES Al finalizar el alumno podrá:
● Analizar la conceptualización de un videojuego. ● Comprender el concepto de experiencia de usuario y su proceso de ciclo de vida. ● Contrastar las necesidades del usuario con las experiencias requeridas en un
videojuego. ● Aplicar técnicas para valorar aspectos cualitativos de experiencia de usuario de un
videojuego. ● Deducir los aspectos estéticos con mayor impacto en el usuario.
TEMAS Y SUBTEMAS
1. Historia de los videojuegos y su primer mejora en Experiencia del Usuario (EU) 2. Sensación del juego
2.1. Sensación del juego y percepción humana 2.2. Modelo de interactividad 2.3. Mecánicas de la sensación del juego 2.4. Métricas y reglas para la sensación del juego
3. Proceso de ciclo de vida de la experiencia de usuario 3.1. Plantilla del proceso del ciclo de vida de la EU 3.2. Instancia del proceso EU
4. Extracción de requerimientos de diseño en la interacción 5. Métodos rápidos de evaluación 6. Métodos de EU para el desarrollo ágil 7. Métodos de obtención de información de los usuarios
7.1. Entrevistas 7.2. Cuestionarios 7.3. Análisis de lo que quieres y necesitas 7.4. Sorteo de cartas 7.5. Grupos de enfoque 7.6. Estudios de campo
8. Técnicas de investigación en la EU 8.1. Planificación de la investigación 8.2. Más que palabras: técnicas basadas en objetos
MaestríaenIngenieríadeSoftwarePlan2016
38
8.3. Aprendiendo de la observación 8.4. Analizando los datos cualitativos
ACTIVIDADES DE APRENDIZAJE
Participación Ejercicios Presentaciones Examen
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE
Participación 10% Ejercicios 40% Presentaciones 20% Examen 30%
MaestríaenIngenieríadeSoftwarePlan2016
39
MÉTODOS DE INVESTIGACIÓN PARA INTERACCIÓN HUMANO-COMPUTADOR
SEMESTRES II, III o IV 16MIC01
DESCRIPCIÓN
Considerando que el ser humano tiene capacidad limitada de procesar información, la interacción humano-computadora trata de potenciar la capacidad del humano a través del intercambio de información entre computadoras y humanos. De tal manera que se minimicen errores, y se incremente la satisfacción y la productividad del usuario. En este curso se estudian los métodos para evaluar una nueva técnica de interacción. El curso introduce al alumno al diseño y evaluación de experimentos, y se describe cómo analizar los modelos de interacción con modelos descriptivos y predictivos. Finalmente, se describe el proceso de escritura y publicación un artículo de investigación.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL El alumno conocerá los métodos de investigación en el área de Interacción humano-computadora (IHC). OBJETIVOS PARTICULARES Al finalizar el curso, el alumno podrá:
● Reconocer y aplicar la filosofía del método científico. ● Formular experimentos en el área de IHC. ● Distinguir los diferentes técnicas de evaluación de experimentos en IHC. ● Demostrar su capacidad de investigación a través de desarrollo de ensayos o artículos
científicos. TEMAS Y SUBTEMAS
1. El factor humano. 2. Elementos de interacción humano-computadora 3. Filosofía del método científico. 4. Diseño de experimentos. 5. Pruebas de hipótesis. ANOVA, chi cuadrada, pruebas paramétricas y no paramétricas. 6. Un enfoque cualitativo. 7. Análisis teórico y desarrollo de teorías. 8. Publicación de investigación científica.
ACTIVIDADES DE APRENDIZAJE
MaestríaenIngenieríadeSoftwarePlan2016
40
Exámenes/ Escritura de ensayos / artículos
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJEExámenes 50% Escritura de ensayos / artículos 50%
MaestríaenIngenieríadeSoftwarePlan2016
41
INTELIGENCIA ARTIFICIAL PARA JUEGOS
SEMESTRES II, III o IV 16IAJ01
DESCRIPCIÓN
Durante décadas, la inteligencia artificial se ha dedicado a estudiar juegos de mesa con el fin de derrotar a los mejores jugadores humanos. Se ha considerado siempre que la habilidad de jugar era propia de la inteligencia. Las damas y el othello fueron derrotados primero, seguido por el ajedrez en 1997. En la actualidad, la industria de los videojuegos se ha interesado en el desarrollo de técnicas de IA para aumentar la participación y la satisfacción del jugador. El curso de IA para juegos estudia las técnicas clásicas para resolución de problemas simulando “Inteligencia”. A diferencia de un curso convencional, el curso de IA para juegos se enfoca más en el resultado por ejemplo, en cómo navegar en un mundo virtual, las tácticas y el comportamiento de los agentes para obtener un comportamiento creíble para el jugador. De esta manera, el curso aborda temas de IA con un enfoque a juegos digitales. Los temas se revisan a profundidad pero se aplican en implementaciones de juegos digitales.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Al finalizar el curso el alumno podrá describir y aplicar las principales técnicas de IA a juegos digitales. OBJETIVOS PARTICULARES
● Identificar los retos y técnicas actuales que se usan en investigación y en la industria de IA para juegos.
● Hacer uso de diferentes tecnologías de IA para el desarrollo de videojuegos. ● Identificar conceptos claves en el área de IA y usarlos para valorar desarrollos
personales y de sus compañeros. ● Demostrar su capacidad de liderazgo y trabajo en equipo
TEMAS Y SUBTEMAS
1. Introducción. Qué es IA. Algoritmos, estructuras de datos y representación. Relación de IA y juegos. Complejidad temporal y espacial.
2. Algoritmos de movimientos. Algoritmos simples de planeación de movimientos. Algoritmos de Persecución-Evasión.
3. Algoritmos en grafos. Recorridos en grafos. Ruta más corta. Árbol de cobertura de costo mínimo.
MaestríaenIngenieríadeSoftwarePlan2016
42
4. Toma de decisiones. Árboles de toma de decisión. Máquinas de estado. Procesos de Markov. Lógica difusa. Sistemas basados en reglas.
5. Aprendizaje. Conceptos básicos. Aprendizaje por refuerzo. Redes neuronales. 6. Teoría de Juegos. Tipos de juegos. Juegos de suma cero. Criterios “maximin” y
“minimax”. Teoría no cooperativa.
ACTIVIDADES DE APRENDIZAJE
Exámenes Proyectos Exposiciones Autoevaluación
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE Exámenes 40% Proyectos 30% Exposiciones 20% Autoevaluación 10%
MaestríaenIngenieríadeSoftwarePlan2016
43
ANÁLISIS DE DATOS CON LENGUAJE DE PROGRAMACIÓN ESTADÍSTICO
SEMESTRES II, III o IV 16ADR01
DESCRIPCIÓN
El análisis de datos es fundamental para un profesional cuya responsabilidad es manejar grandes cantidades de información o Big Data. En este curso el alumno desarrollará las habilidades fundamentales de estadística, programación y visualización esenciales para cualquier científico de datos.
A lo largo del curso el alumno aprenderá a desarrollar programas en lenguajes de programación estadísticos , como el Lenguaje R, con la finalidad de desarrollar la capacidad de realizar programas para un análisis de datos efectivo. Además, el alumno aprenderá a configurar el entorno de desarrollo y a trasladar los elementos de control que ya conoce a un lenguaje estadístico. Finalmente, el alumno se expondrá a problemas prácticos de implementación como la importación y organización de datos, el desarrollo de comentarios al código y el importar librerías y crear librerías, entre otros.
Finalmente el alumno aprenderá a hacer representaciones visuales de datos usando librerías específicas, como lattice y ggplot2 para lenguaje R, aplicando principios básicos de representación gráfica de datos para crear visualizaciones proviniendo de conjuntos de datos heterogéneos que permitan mejorar la toma de decisiones.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL El alumno será efectivo en el análisis de datos usando un lenguaje de programación estadístico. OBJETIVOS PARTICULARES
Aprenderá a crear programas con un lenguaje de programación estadístico. Conocerá los modelos estadísticos fundamentales en el diseño de experimentos. Programará modelos matemáticos y estadísticos utilizando un lenguaje de programación
estadístico. Implementará visualizaciones de datos que den respuesta a un experimento o demanda
de análisis de datos concreta.
MaestríaenIngenieríadeSoftwarePlan2016
44
TEMAS Y SUBTEMAS
1. Desarrollo de programas con lenguajes estadísticos 1.1. Introducción al lenguaje R 1.2. Tipos de datos y objetos 1.3. Operaciones de lectura y escritura 1.4. Estructuras de control 1.5. Funciones y ciclos 1.6. Reglas de alcance de objetos en el lenguaje R 1.7. Manejo de fechas y tiempo. 1.8. Herramientas de depuración 1.9. Simulación y medición del desempeño del código
1.10. Técnicas de obtención y limpieza de datos 2. Herramientas estadísticas básicas
2.1. Diseño de experimentos y rigor estadístico 2.2. Variables y distribuciones 2.3. Correlación y Medición 2.4. Regresión simple y múltiple 2.5. Comparación de grupos con Prueba-T y ANOVA 2.6. Pruebas paramétricas y no paramétricas (U de Mann-Whitney, Kruskal-Wallis)
3. Visualización de datos 3.1. Fundamentos de Visualización 3.2. Principios de diseño 3.3. Librerías de visualización de datos en el Lenguaje R 3.4. Visualización dinámica de datos (d3.js, Shiny)
ACTIVIDADES DE APRENDIZAJE
Proyecto de integrador de análisis de datos Proyecto intermedio de análisis de datos Tareas y Exámenes rápidos
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE Proyecto de integrador de análisis de datos 25% Proyecto intermedio de análisis de datos 15% Tareas y Exámenes rápidos 60%
MaestríaenIngenieríadeSoftwarePlan2016
45
BASES DE DATOS NO SQL
SEMESTRES II, III o IV 16BDN01
DESCRIPCIÓN
Los datos disponibles en el mundo han ido creciendo en cantidad, de gigas a tera y petabytes de información. Al mismo tiempo esta información ha sido cada vez más interconectada y finalmente es cada vez menos estructurada. Ante los retos generados, como la gran información, el alto grado de interconexión de los datos y la poca estructura que las bases de datos el movimiento denominado No Relacional o NoSQL proponen maneras alternativas de almacenar y recuperar los datos.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Que el alumno comprenda las diferencias entre el modelo relacional y los distintos modelos NoSQL y sepa seleccionar y aplicar el modelo adecuado para cada situación.
OBJETIVOS PARTICULARES
Que el alumno conozca y aplique una herramienta específica para cada modelo. Que el alumno sepa en qué ocasiones es más apropiado utilizar el modelado tradicional
relacional y un modelado NoSQL. Que el alumno sea capaz de instalar y configurar cualquier base de datos NoSQL con
múltiples servidores. TEMAS Y SUBTEMAS
1. Antecedentes 1.1. ¿Qué son las bases de datos NoSQL? 1.2. ¿Cuáles son los problemas con el modelo relacional? 1.3. ¿Cuáles son las virtudes del modelo relacional? 1.4. ¿Cuáles son los distintos modelados de las bases de datos NoSQL?
1.4.1. Columnas 1.4.2. Grafos 1.4.3. Objetos 1.4.4. Clave-valor
MaestríaenIngenieríadeSoftwarePlan2016
46
1.4.5. Multimodelo 1.5. Qué significa el teorema CAP?
2. Aplicación de Modelos de bases de datos NoSQL 2.1.1. Se seleccionaron bases de datos Open Source para cada uno de los
distintos modelados, para cada uno de los siguientes modelos el alumnos conocerá a profundidad:
2.1.2. Cómo se representan los datos conceptualmente? 2.1.3. Cómo se estructura la base de datos? 2.1.4. Cómo se consultan y extraen los datos? 2.1.5. Las bases de datos seleccionadas son:
2.2. Orientada a Documentos con MongoDB 2.3. Orientadas a columnas con Cassandra 2.4. Multimodelo con OrientDB 2.5. Orientadas a grafos con Neo4j 2.6. Clave - Valor con Redis 2.7. Orientadas a objetos (ZODB)
3. Aplicación para cada uno de los siguientes problemas el alumno será capaz de implementar una solución y justificar su elección 3.1. Sistema de nómina 3.2. Sistema de control escolar 3.3. Sistema de árbol genealógico 3.4. Sistema de seguimiento de logs 3.5. Sistema de una red social
ACTIVIDADES DE APRENDIZAJE
Proyecto Integrador Proyecto intermedio Tareas y exámenes rápidos
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE Proyecto Integrador 25% Proyecto intermedio 15% Tareas y exámenes rápidos 60%
MaestríaenIngenieríadeSoftwarePlan2016
47
PROGRAMACIÓN FUNCIONAL
SEMESTRES II, III o IV 16PFU01
DESCRIPCIÓN
En general, la programación funcional es el paradigma de programación en el cual el principal método de cálculo es la aplicación de funciones a argumentos. Debido a su cercanía con las matemáticas puras los lenguajes funcionales son muy compactos, tienen abstracciones poderosas y facilitan el razonamiento de problemas complejos.
La programación funcional es la vanguardia del diseño de lenguajes de programación. Sin embargo no es necesario sólo programar funcionalmente para recibir los beneficios de conocer el paradigma. Prácticamente cualquier lenguaje de programación actual (C#, Java, Python, Ruby) ha tomado conceptos funcionales y los aplica.
En este curso en particular usaremos el lenguaje de programación Scala con miras a aplicarlo posteriormente en el procesamiento de Big Data.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL El alumno conocerá y aplicará efectivamente el paradigma de programación funcional.
OBJETIVOS PARTICULARES
Entenderá las diferencias entre la programación funcional y orientadas a objetos. Desarrollará sistemas con programación funcional Aplicará sus conocimientos en la implementación de sistemas de Big Data
TEMAS Y SUBTEMAS
1. Paradigmas de programación 1.1. Revisión del paradigma Procedural 1.2. Revisión del paradigma Orientado a Objetos 1.3. Revisión del paradigma Funcional
2. Fundamentos 2.1. Definiendo y usando funciones 2.2. Recursividad 2.3. Las funciones como valores
MaestríaenIngenieríadeSoftwarePlan2016
48
2.4. Razonamiento por reducción 3. Inmutabilidad
3.1. Definición y uso de objetos inmutables 3.2. Herencia 3.3. Vinculación Dinámica
4. Tipos de datos 4.1. Clases y categorías 4.2. Patrones
5. Estructuras de datos 5.1. Listas 5.2. Árboles 5.3. Colecciones
6. Evaluación Floja o Lazy 7. Concurrencia
7.1. Modelo de Agentes con Akka 8. Aplicaciones de la programación funcional
8.1. Scala en Apache Spark
ACTIVIDADES DE APRENDIZAJE
Proyecto de programación funcional Proyecto de programación Akka Proyecto de programación Spark Tareas y Exámenes rápidos
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE Proyecto de programación funcional 15% Proyecto de programación Akka 15% Proyecto de programación Spark 15% Tareas y Exámenes rápidos 55%
MaestríaenIngenieríadeSoftwarePlan2016
49
SISTEMAS DISTRIBUIDOS
SEMESTRES II, III o IV 16SDI01
DESCRIPCIÓN
Virtualmente todas las computadoras en la actualidad forman parte de un sistema distribuido. Los desarrolladores, arquitectos y líderes de proyecto necesitan entender los principios básicos así como la aplicación en el mundo real de esos principios. En esta materia se estudiarán los principios de los sistemas distribuidos y su aplicación en la arquitectura de sistemas de Big Data.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL El alumno será capaz de diseñar e implementar sistemas distribuidos de una manera efectiva. OBJETIVOS PARTICULARES
El alumno comprenderá los distintos tipos de sistemas distribuidos. Implementará sistemas distribuidos en la nube. Tendrá conocimientos básicos de las herramientas básicas de arquitectura de sistemas
distribuidos. TEMAS Y SUBTEMAS
1. Antecedentes 1.1. Conceptos básicos: Programa, Proceso, Mensaje, Paquete, Protocolo, Red
Component, Sistema Distribuido 1.2. Características de los sistemas distribuidos 1.3. Las ocho falacias de los sistemas distribuidos
2. Tipos de sistemas distribuidos 2.1. Distribuyendo la función 2.2. Distribuyendo la tarea
3. Distribuyendo la tarea 3.1. Análisis en tiempo real con Apache Spark
3.1.1. Instalación y configuración de Spark
MaestríaenIngenieríadeSoftwarePlan2016
50
3.1.2. Programación de procesos con Scala 3.2. Procesamiento con lotes con Apache Hadoop
3.2.1. Instalación y configuración de Hadoop 3.2.2. Programación de procesos con Python
4. Distribuyendo la función 4.1. Arquitectura de sistemas de colas 4.2. Uso e instalación de RabbitMQ
4.2.1. Workers 4.2.2. Patrón Pub/Sub 4.2.3. Ruteo 4.2.4. RPC
4.3. Patrones de sistemas distribuidos
ACTIVIDADES DE APRENDIZAJE
Proyecto Práctico Apache Spark Proyecto Práctico Apache Hadoop Proyecto Práctico RabbitMQ Tareas y Exámenes Rápidos
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE Proyecto Práctico Apache Spark 15% Proyecto Práctico Apache Hadoop 15% Proyecto Práctico RabbitMQ 15% Tareas y Exámenes Rápidos 55%
MaestríaenIngenieríadeSoftwarePlan2016
51
MODELOS Y ESTÁNDARES DE SEGURIDAD
SEMESTRES II, III o IV 16MES01
DESCRIPCIÓN
El auge de las redes computacionales, el surgimiento de múltiples plataformas tecnológicas, el uso de diferentes sistemas operativos y la interconexión entre todos estos elementos, si bien han favorecido el desarrollo operativo, comercial y han mejorado la productividad de las empresas, representan también el surgimiento de nuevas amenazas, muchas de las cuales cada vez son más sofisticadas dentro de Internet. Por lo tanto se hace necesaria la implementación de metodologías, modelos y estándares enfocados en el establecimiento de controles de gobernanza y gestión para la seguridad de Tecnologías de Información y Comunicación (TICs) encaminados hacia el logro de una gestión de la seguridad eficiente y efectiva.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Brindar el conocimiento de la importancia de la seguridad de la información para las organizaciones, sus métodos de gestión y establecimiento de objetivos de control así como conocimiento relacionado con el establecimiento de políticas, procedimientos y controles de seguridad informática dentro de una organización aplicando los estándares y mejores prácticas ampliamente aceptados y utilizados por las organizaciones en la actualidad.
OBJETIVOS PARTICULARES ● Conocer la importancia de la seguridad de la información para las organizaciones. ● Desarrollar las habilidades y capacidades necesarias para resolver problemas relacionados con aspectos de la gestión de la seguridad informática. ● Conocer buenas prácticas de modelos y estándares que permiten el establecimiento de mecanismos de control y comunicación. ● Conocer cómo establecer lineamientos para la instalación, operación y mantenimiento de políticas y controles de seguridad informática dentro de una organización.
TEMAS Y SUBTEMAS
1. Introducción a SGSI 1.1 ¿Qué es un SGSI?
MaestríaenIngenieríadeSoftwarePlan2016
52
1.2 El enfoque basado en procesos 1.3 ¿Por qué es importante un SGSI? 1.4 Establecer, supervisar, mantener y mejorar el SGSI 1.5 Factores críticos de éxito de un SGSI 1.6 Beneficios de la familia de normas de SGSI de la calidad del producto y el
procesos 2. Contexto de la Organización
2.1 Comprensión de la organización y de su contexto 2.2 Política de seguridad 2.3 Gestión de activos 2.4 Seguridad ligada a los recursos humanos 2.5 Seguridad física y del entorno 2.6 Gestión de comunicaciones y operaciones 2.7 Controles de acceso
3. Tratamiento de los riesgos de seguridad de información 3.1 Acciones para tratar riesgos y oportunidades 3.2 Gestión de incidentes de seguridad de la información
4. Modelos y estándares de Seguridad 4.1 CERT Resilience Management Model 4.2 ISO 17799, 27000, 27001, 27002 4.3 ITIL 4.4 COBIT 4.5 Otros
5. Metodologías para establecimiento de seguridad 5.1 Adquisición, desarrollo y mantenimiento de los sistemas de información
ACTIVIDADES DE APRENDIZAJE
Asistencia (al menos 90% de las clases) Trabajos, exposiciones Proyecto Final
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE Asistencia (al menos 90% de las clases) 10% Trabajos, exposiciones 40% Proyecto Final 50%
MaestríaenIngenieríadeSoftwarePlan2016
53
PROGRAMACIÓN SEGURA
SEMESTRES II, III o IV 16PSE01
DESCRIPCIÓN
Este es un curso de introducción al desafiante mundo de la programación segura. Los principales problemas de seguridad contemporáneos se deben principalmente a problemas de implementación. Es común pensar que un diseño libre de errores no los tendrá en la práctica; sin embargo, una implementación que maneje de manera segura la información es una tarea que requiere de conocimientos en seguridad informática.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL En este curso se cubrirán los problemas típicos de la programación que afectan a la seguridad de las aplicaciones que se traduce en debilidades y vulnerabilidades en los sistemas informáticos. OBJETIVOS PARTICULARES
● El alumno aprenderá a utilizar técnicas adecuadas de programación que reduzcan la aparición de errores y vulnerabilidades en el software.
● El alumno podrá utilizar técnicas de programación segura que prevengan el uso inadecuado de la memoria de las computadoras, así como un tratamiento inadecuado de los datos.
● El alumno practicará aspectos de programación segura en lenguajes de alto nivel como C, C++, y C#.
● El alumno comprenderá y aprenderá a utilizar lenguajes de programación que traten la implementación de protocolos criptográficos, una causa común de fallas de seguridad.
TEMAS Y SUBTEMAS
1. Introducción 1.1 Conceptos generales de la seguridad de la información 1.2 Vulnerabilidades de software
2. C y C++ seguro 2.1 Cadenas de texto 2.2 Punteros
MaestríaenIngenieríadeSoftwarePlan2016
54
2.3 Administración de memoria 2.4 Entrada y Salida 2.5 Concurrencia
3. C# seguro 3.1 Objetos 3.2 Assemblies 3.3 Excepciones 3.4 Archivos y flujos 3.5 Multihilos 3.6 Interoperabilidad
4. Criptografía aplicada en C/C++/C#/Java 4.1 Introducción a los protocolos de seguridad 4.2 Generación de números pseudo-aleatorios criptográficamente seguros 4.3 Autenticación de usuarios 4.4 Cifrado de información 4.5 Implementación de protocolos criptográficos
ACTIVIDADES DE APRENDIZAJE
Examen Prácticas Ensayo Total
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE Examen 50% Prácticas 30% Ensayo 20% Total 100%
MaestríaenIngenieríadeSoftwarePlan2016
55
TÓPICOS SELECTOS DE ASEGURAMIENTO
SEMESTRES II, III o IV 16TAS01
DESCRIPCIÓN
Actualmente existe un crecimiento importante en el aseguramiento del software, principalmente debido a crecimiento potencial de los ataques a sistemas de software y a la severidad de las consecuencias en caso de fallos en los sistemas software. Se hace cada vez más necesario adquirir y dominar el conocimiento en temas relacionados con el aseguramiento del software.
El aseguramiento del software surge como una disciplina que proporciona requisitos de niveles de dependencia y seguridad en el desarrollo, adquisición y operación del software, abarcando actividades enfocadas en asegurar que los procesos del ciclo de vida del software y sus productos se adecuan a unos requerimientos, estándares y procedimientos de seguridad establecidos en las organizaciones.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Brindar el conocimiento para en distintas metodologías y técnicas emergentes orientadas a mejorar el control de las Tecnologías de la información, como frameworks para desarrollo de software seguro, Informática forense y técnicas y herramientas de soporte para prevención y gestión de amenazas en TI.
OBJETIVOS PARTICULARES ● Dominar temas avanzados en aseguramiento ● Conocer frameworks para desarrollo de software seguro ● Conocer la relación e importancia entre calidad y seguridad en el desarrollo de software seguro ● Desarrollar habilidades para el uso de métodos y prácticas para el desarrollo de software seguro ● Desarrollar habilidades en temas relacionados con establecimiento de control en sistemas e informática forense ● Desarrollar habilidades para el aseguramiento de TICs mediante el uso de herramientas especializadas
TEMAS Y SUBTEMAS
MaestríaenIngenieríadeSoftwarePlan2016
56
1. Frameworks para desarrollo de software seguro 2. Calidad y seguridad del software
2.1. Calidad y Seguridad. 2.2. El nuevo ciclo de vida de desarrollo del software orientado a la seguridad 2.3. Los requisitos de software y la seguridad 2.4. La gestión del riesgo durante el desarrollo del software 2.5. Las pruebas de seguridad del software 2.6. Plan de calidad del software seguro
3. Auditoría Informática 3.1. El marco de objetivos de control CobiT 3.2. Conceptos de Informática Forense 3.3. Nuevas tendencias
4. Laboratorio de seguridad Informática
ACTIVIDADES DE APRENDIZAJE
Asistencia (al menos 90% de las clases) Trabajos y exposiciones Prácticas Proyecto Final
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE Asistencia (al menos 90% de las clases) 5%
Trabajos y exposiciones 20%
Prácticas 25% Proyecto Final 50%
MaestríaenIngenieríadeSoftwarePlan2016
57
SEGURIDAD EN SISTEMAS DE INFORMACIÓN
SEMESTRES II, III o IV 16SSI01
DESCRIPCIÓN
Este es un curso de introducción a un campo muy amplio de la computación, redes y la seguridad informática. Se cubrirán temas de seguridad computacional, de seguridad en la red, así como de los aspectos relevantes de criptografía.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Revisar los aspectos generales de la seguridad en sistemas de información que afectan los sistemas informáticos. OBJETIVOS PARTICULARES El objetivo de este curso es de interesar a los asistentes en las diversas áreas de la computación que requieren atención específica sobre aspectos de seguridad, así como de mostrar las consecuencias de un uso inadecuado de los recursos informáticos, y sus posibles soluciones. Se busca sentar las bases de la criptografía necesaria para proveer de servicios de seguridad y aplicaciones. Se conocerán las herramientas existentes para el experto en seguridad, y los aspectos de administración de la seguridad de los sistemas de información También se busca que al terminar el módulo, los asistentes se profundice en estos temas. TEMAS Y SUBTEMAS
1. Introducción 1.1. Introducción a la seguridad en los sistemas de información 1.2. Conceptos generales de la seguridad de la información
2. Criptografía 2.1. Introducción a la criptografía
2.1.1. Introducción a la criptografía 2.1.2. Criptografía Simétrica 2.1.3. Criptografía Asimétrica
MaestríaenIngenieríadeSoftwarePlan2016
58
2.1.4. Infraestructura de Llave Pública (PKI) 2.2. Criptografía en la seguridad de la información
2.2.1. Firmas digitales 2.2.2. Privacidad y Seguridad 2.2.3. Tópicos selectos de criptografía aplicada
3. Seguridad Perimetral 3.1. Modelo TCP/IP
3.1.1. Modelo TCP/IP 3.1.2. IGMP 3.1.3. IP 3.1.4. TCP/UDP
3.2. Seguridad en redes 3.2.1. Intranet, Extranet, Internet. DMZ 3.2.2. Planeación de una red de datos 3.2.3. Segmentación en IPv4, e IPv6 3.2.4. SNMP 3.2.5. Políticas de acceso 3.2.6. Administración de la red, y sus herramientas
3.3. Seguridad perimetral 3.3.1. Firewall 3.3.2. Mecanismos de prevención y detección de intrusos 3.3.3. Pasarelas de aplicación
3.4. Redes privadas virtuales 3.5. Privacidad en la red
3.5.1. Seguridad versus privacidad 3.5.2. Técnicas de anonimato en la red
4. Seguridad del Software y políticas de seguridad 4.1. Estándares y mejores prácticas de la seguridad de la información en el desarrollo
del software 4.2. Certificaciones relacionadas a la seguridad en sistemas de información 4.3. ISO 27001 - Sistemas de Gestión de Seguridad de la Información 4.4. Principales controles y mecanismos para la detección y mitigación de riesgos de
seguridad en aplicaciones 4.5. Creación y gestión de políticas de seguridad informática 4.6. Vulnerabilidades de software
ACTIVIDADES DE APRENDIZAJE
Examen escrito Programas Ensayos
MaestríaenIngenieríadeSoftwarePlan2016
59
Total
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE Examen escrito 50% Programas 30% Ensayos 20% Total 100%
MaestríaenIngenieríadeSoftwarePlan2016
60
DEFINICIÓN DE PROCESOS DE SOFTWARE
SEMESTRES II, III o IV 16DPS01
DESCRIPCIÓN
La capacidad de las organizaciones y de sus productos, sistemas y servicios les permite competir, adaptarse y sobrevivir en este entorno altamente cambiante. Está capacidad depende cada vez más del software. El software facilita la adaptación rápida de productos y servicios a diferentes sectores del mercado, por tanto, es indispensable garantizar su calidad. Basado en la perspectiva de que la calidad del software está directamente relacionada con la calidad de los procesos utilizados para su desarrollo, las organizaciones necesitan concretar “el CÓMO” definen y despliegan sus procesos. Por lo tanto, es necesario conocer técnicas y herramientas para modelar los procesos, además de la capacidad de seleccionar las más adecuadas al entorno de la organización.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Proporcionar una visión integral de los procesos y su importancia para la madurez y capacidad de las organizaciones, además de brindar las bases para modelados de procesos a través de la selección y uso de técnicas y herramientas existentes para tal fin.
OBJETIVOS PARTICULARES ● Ofrecer una visión integral la importancia de los procesos en las organizaciones de desarrollo de software. ● Comprender la importancia de la correcta definición de los procesos software. ● Identificar mejores prácticas en la definición de procesos software. ● Desarrollar las habilidades para conformar y liderar grupo de procesos de ingeniería de software o Software Engineering Process Group - SEPG.
TEMAS Y SUBTEMAS
1. Establecimiento de la cultura de procesos en las organizaciones. 2. Conceptos Generales de la mejora de procesos. 3. La relación entre la calidad de procesos y la calidad de productos y servicios de
software. 4. Modelos y estándares de calidad.
MaestríaenIngenieríadeSoftwarePlan2016
61
5. Uso de Goal Question Metric en la definición de procesos. 6. Entendiendo el entorno empresarial para la definición de procesos. 7. Herramientas para el modelado de procesos. 8. Extracción del Conocimiento Tácito Organizacional. 9. Trazabilidad entre objetivos de negocio y procesos organizacionales.
10. Aplicación de caso de estudio
10.1 Establecimiento de equipos. 10.2 Identificación de necesidades. 10.3 Propuesta de Objetivos de negocio y métricas. 10.4 Extracción de conocimiento tácito. 10.5 Propuesta de modelado de procesos. 10.6 Trazabilidad entre objetivos de negocio y procesos. 10.7 Propuesta de mejora para la organización.
ACTIVIDADES DE APRENDIZAJE
Asistencia (al menos 90% de las clases) Trabajos Exposiciones Proyecto Final
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE Asistencia (al menos 90% de las clases) 10% Trabajos 20% Exposiciones 30% Proyecto Final 40%
MaestríaenIngenieríadeSoftwarePlan2016
62
INTEGRACIÓN DE EQUIPOS DE DESARROLLO DE SOFTWARE
SEMESTRE II, III o IV 16DTE01
DESCRIPCIÓN
En la actualidad el software es desarrollado por equipos de personas, por lo tanto, los profesionales en TI deben de estructurarse como equipos, lo que significa que deben comprender su propio rendimiento y aprender de su experiencia. Por lo tanto, un aspecto clave para lograr ser un equipo de trabajo real es que sean capaces de establecer una comunicación adecuada, así como, tener la habilidad para planificar y estimar su trabajo, que se verá reflejado en el cumplimiento de sus compromisos y una mejora en su productividad y calidad.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Proporcionar una visión integral de la importancia de la conformación de equipos de desarrollo de software mediante la impartición de conocimientos y habilidades necesarias para la conformar y liderar de manera efectiva de equipos de desarrollo de software. Además, de proporcionar conocimiento de cómo gestionar cuantitativamente proyectos de software usando medidas de calidad, costo y cronograma.
OBJETIVOS PARTICULARES ● Ofrecer una visión integral sobre la importancia del factor humano en el desarrollo de software. ● Comprender la importancia de la formación correcta de los equipos. ● Adquirir conocimiento para el establecimiento de una comunicación adecuada en los equipos de trabajo. ● Desarrollar las habilidades para conformar y liderar equipos de desarrollo de software de manera efectiva. ● Identificar mejores prácticas para la gestión de un equipo de desarrollo de software.
TEMAS Y SUBTEMAS
TEMARIO 1. Introducción a la Formación de Equipos
1.1. Perfiles de personalidad 1.2. Roles necesarios para el cambio
MaestríaenIngenieríadeSoftwarePlan2016
63
1.3. Equipos vs grupos 1.4. Razones de fracaso de un equipo 1.5. Características comunes a los equipos eficaces
2. Modelos de crecimiento del equipo 2.1. Actitudes y comportamiento 2.2. Etapas del modelo de crecimiento
3. Facilitando reuniones de equipos 3.1. Dirigir reuniones productivas 3.2. Proceso de reuniones 3.3. Técnicas de decisión de equipos 3.4. Habilidades para interactuar en equipo
4. Proceso de desarrollo de software en equipo o Team Software Process - TSP 4.1. Introducción al TSP 4.2. Estructura de TSP 4.3. Roles de TSP 4.4. Fases de TSP
5. Equipos de desarrollo en metodologías ágiles 5.1. Introducción a equipos auto dirigidos 5.2. Roles en metodologías ágiles 5.3. Comparativa entre roles TSP y roles de metodologías ágiles
ACTIVIDADES DE APRENDIZAJE
Asistencia (al menos 90% de las clases) Trabajos Exposiciones Proyecto Final
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE Asistencia (al menos 90% de las clases) 10% Trabajos 20% Exposiciones 30% Proyecto Final 40%
MaestríaenIngenieríadeSoftwarePlan2016
64
EVALUACIÓN Y MEJORA DE PROCESOS DE SOFTWARE
SEMESTRE II, III o IV 16MDP01
DESCRIPCIÓN
Mejorar la forma de desarrollar software o procesos software es un desafío clave para la sociedad. El software es el núcleo de cualquier producto o servicio software, por lo que garantizar su calidad es vital para establecer una ventaja competitiva frente a los competidores. Como respuesta a esta necesidad, para lograr calidad en productos o servicios, la mejora de procesos software es un esfuerzo crítico e importante que cualquier compañía software persigue ya que se enfoca en la existencia un proceso software extensivo a toda la organización. El objetivo de esta materia es proporcionar conocimiento en modelos de proceso que proporcionan a las organizaciones software una orientación sobre cómo obtener con el control de sus procesos de desarrollo y mantenimiento de software, además de cómo evolucionar hacia una cultura de ingeniería del software y de gestión de sus procesos.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Proporcionar una visión práctica sobre la mejora de procesos de software, brindando las herramientas necesarias para implementar y mantener buenas prácticas contenidas en modelos de proceso más utilizados a nivel nacional e internacional en las organizaciones software de diferentes tipos y tamaños, de tal manera que puedan ser orientadas hacia una cultura de mejora continua y control de sus procesos de desarrollo y mantenimiento de software.
OBJETIVOS PARTICULARES ● Ofrecer una visión integral sobre la mejora de procesos y su importancia para las organizaciones de desarrollo de software. ● Comprender modelos de buenas prácticas del proceso software, teniendo en cuenta factores como la tecnología, la organización y el propio negocio. ● Desarrollar la habilidad para abordar proyectos de evaluación y mejora de procesos teniendo en cuenta los factores que inciden en los mismos.
● Desarrollar la habilidad para gestionar el proceso software.
TEMAS Y SUBTEMAS
MaestríaenIngenieríadeSoftwarePlan2016
65
1. Introducción a la Mejora de Procesos 1.1. La mejora de procesos software 1.2. Importancia de la mejora de procesos 1.3. Características de la mejora de procesos
2. Modelos de mejora de procesos software 2.1. Modelo CMMI v1-3 2.2. Modelo ISO 15504 2.3. Modelos de mejora para Pymes 2.4. Características de los modelos 2.5. Análisis comparativos de los modelos
3. Uso de entornos Multimodelo en la mejora de procesos software 3.1. Introducción a Multimodelo 3.2. Características de entornos de referencia Multimodelo 3.3. Uso de entornos de referencia Multimodelo
4. Evaluación y mejora de los proceso software con distintos modelos 4.1. Métodos para evaluación de procesos 4.2. Métodos para implementación de modelos 4.3. Principales esquemas de certificación 4.4. Aproximación práctica
5. Herramientas para implementar mejoras de procesos 5.1. Infraestructura de Mejora 5.2. Metodología para implementación de mejora de procesos software enfocando en
la reducción de la resistencia al cambio 5.3. Soporte al proyecto y a la organización
ACTIVIDADES DE APRENDIZAJE
Asistencia (al menos 90% de las clases) Trabajos Exposiciones Proyecto Final
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE Asistencia (al menos 90% de las clases) 10% Trabajos 20% Exposiciones 30% Proyecto Final 40%
MaestríaenIngenieríadeSoftwarePlan2016
66
OPTIMIZACIÓN DE PROCESOS
SEMESTRE II, III o IV 16ODP01
DESCRIPCIÓN
Los mercados y el mundo empresarial actual presentan como característica más notoria la necesidad a la que se enfrentan las organizaciones para optimizar y hacer más efectivos los distintos procesos de producción con el objetivo de conseguir el máximo rendimiento y la mayor productividad generando la mínima cantidad de costos relativos al tiempo, dinero y esfuerzo.
OBJETIVO(S) GENERAL(ES) DE LA ASIGNATURA
OBJETIVO GENERAL Brindar el conocimiento para identificar problemas de optimización y proporcionar soluciones basadas en el desarrollo de modelos matemáticos adecuados, selección e implementación de las técnicas más adecuadas para resolverlos e interpretación de los resultados obtenidos.
OBJETIVOS PARTICULARES ● Conocer modelos matemáticos para representación de problemas de optimización. ● Desarrollar la habilidad para construir o adaptar modelos matemáticos para representar problemas de optimización. ● Diseñar, analizar e implementar algoritmos para problemas específicos de optimización.
TEMAS Y SUBTEMAS
1. Introducción a la Optimización de procesos 2. Métodos numéricos 3. Investigación de operaciones 4. Métodos estadísticos 5. Técnicas y herramientas utilizadas en optimización de procesos 6. Simulación
ACTIVIDADES DE APRENDIZAJE
Asistencia (al menos 90% de las clases) Trabajos y exposiciones
MaestríaenIngenieríadeSoftwarePlan2016
67
Proyecto Final
CRITERIOS Y PROCEDIMIENTOS DE EVALUACION Y ACREDITACION
EVALUACIÓN
ASPECTO A EVALUAR PORCENTAJE Asistencia (al menos 90% de las clases) 10% Trabajos y exposiciones 30% Proyecto Final 60%
MaestríaenIngenieríadeSoftwarePlan2016
68
LISTADODEACERVOBIBLIOGRÁFICO
A) PRINCIPIOS DE DISEÑO DE SOFTWARE
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro CleanCode:AHandbookofAgile
SoftwareCraftsmanshipRobert C. Martin PrenticeHall 2008
2 Libro UMLDistilled:ABriefGuidetotheStandardObjectModelingLanguage(3rdEdition)
MartinFowler Addison‐WesleyProfessional
2003
3 Libro DomainDrivenDesignQuickly AbelAvram infoq 2006
4 Libro HeadFirstDesignPatterns EricFreeman,Bert,Bates,Sierra,Robson
O'ReillyMedia 2004
5 Libro DesignPatterns:ElementsofReusableObject‐OrientedSoftware
Gamma,Helm,Johnson,Vlissides
Addison‐WesleyProfessional
1994
6 Libro HolubonPatternsLearningDesignPatternsbyLookingatCode
AllenHolub Apress 2004
7 Libro RefactoringtoPatterns JoshuaKerievsky Addison‐WesleyProfessional
2004
B) TALLER DE HERRAMIENTAS BÁSICAS PARA DESARROLLO DE SOFTWARE
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro ThePragmaticProgrammer:From
JourneymantoMasterAndrewHunt,DavidThomas
Addison‐WesleyProfessional
1999
2 Libro CleanCode:AHandbookofAgileSoftwareCraftsmanship
RobertC.Martin PrenticeHall 2008
3 Libro IntroducingGitHub:ANon‐TechnicalGuide
PeterBell,BrentBeer
O'ReillyMedia 2014
4 Libro TheArtofDebuggingwithGDB,DDD,andEclipse
NormanMatloff,PeterJaySalzman
NoStarchPress 2008
5 Libro DataScienceattheCommandLineFacingtheFuturewithTime‐TestedTools
JeroenJanssens O'ReillyMedia 2014
MaestríaenIngenieríadeSoftwarePlan2016
69
C) INGENIERÍADEREQUERIMIENTOS
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro SoftwareRequirementsBusiness
ModelingwithUML:BusinessPatternsatWork
WIEGERS,KARLE.
MicrosoftPress 1999
2 Libro RapidDevelopment McConnell,S MicrosoftPress 2008
3 Libro QualityAttributtesCMU/SEI‐95‐TR‐021.ESC‐TR‐95‐021
MarioBarbacci,MarkH.Klein,ThomasA.Longstaff.CharlesB.Weinstock.
MicrosoftPress 2014
4 Libro IEEERecommendedPracticeforSoftwareRequirementsSpecifications.ISBN0‐7381‐0332‐2
IEEE IEEE 2008
5 Libro Agilesoftwarerequirements:Leanrequirementspracticesforteams,programs,andenterprise
DeanLeffingwell Addison‐Wesley
2014
NOTA:Eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Lineapuedenaccederutilizandocorreoinstitucional,utilizandosucuentaycontraseña.
MaestríaenIngenieríadeSoftwarePlan2016
70
D) MODELOS Y METODOLOGÍAS DE INGENIERÍA DEL SOFTWARE
INTRODUCCIÓNGENERALDELAMATERIA
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro
Ingenieríadelsoftware:unenfoquepráctico.6taEdición
RogerS.PressmanTraduccióndeVíctorCamposOlguín,JavierVillegasQuezada.(7th.Edition.
McGrawHill. 2010
2 Libro Softwareengineering(7ªed.) Sommerville,I. Pearson 2004
3 Libro
EllenguajeUnificadodeModelado,UML2.0,GuiadeUsuario.1ª.Edición
BoochG.PearsonADDISON‐WESLEY
2006
4 LibroSoftwareEngineering.PrinciplesandPractice(3aed.)
HansVanVliet Wiley 2007
NOTA:Eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Lineapuedenaccederutilizandocorreoinstitucional,utilizandosucuentaycontraseña.
MaestríaenIngenieríadeSoftwarePlan2016
71
E) ARQUITECTURAS DE SOFTWARE
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro SoftwareArchitectureinPractice LenBass,Paul
Clements,andRickKazman.
Addison‐Wesley 2012
2 Libro ArchitectingSoftwareIntensiveSystems:APractitioner’sGuide
AnthonyJ.Lattanze.
TaylorandFrancis/Auerbach
2008
3 Libro SoftwareArchitecture:Foundations,TheoryandPractice
RichardN.Taylor,NenadMedvidovic,andEricM
Addison‐Wesley 2007
4 Libro DocumentingSoftwareArchitectures:ViewsandBeyond
PaulClements,FelixBachmann,LenBass,DavidGarlan,JamesIvers,ReedLittleandRobertNord
Addison‐Wesley 2011
5 Libro ThePerformanceofOpenSourceApplications.
TavishArmstrong.
Lulu.com. 2013
6 Libro TheArchitectureOfOpenSource Applications.
AmyBrownandGregWilson.
Lulu.com. VolI,2011VolII,2012
7 Diversosartículoscientíficosydedivulgaciónquepuedenserbajadosdelapáginawebdelcurso.NOTA:Eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Lineapuedenaccederutilizandocorreoinstitucional,utilizandosucuentaycontraseña.
F) ADMINISTRACIÓN DE PROYECTOS DE SOFTWARE
TIPO TITULO AUTOR EDITORIAL AÑO
MaestríaenIngenieríadeSoftwarePlan2016
72
1 Libro TheMythicalManMonth Frederick Brooks,Jr.
AddisonWesley
1995
2 Libro Peopleware:ProductiveProjectsandteams
TomDeMarco McGrawHill 1999
3 Libro Kanban DavidAnderson BlueHolePress 2010
4 Libro Scrum. Doing Twice in the half oftime
JeffSutherland CrownBusiness
2014
NOTA:Eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Lineapuedenaccederutilizandocorreoinstitucional,utilizandosucuentaycontraseña.
G) ASEGURAMIENTO DE LA CALIDAD DE SOFTWARE
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro HowGoogleTestsSoftware WhittakerJA,
ArbonJ,CarolloJ.Addison‐WesleyProfessional
2012
2 Libro ContinuousDelivery,ReliableSoftwareReleasesthroughBuild,Test,andDeploymentAutomation.
HumbleJ,FarleyD.
PearsonEducation
2010
3 Libro ContinuousIntegration,ImprovingSoftwareQualityandReducingRisk.
DuvallPM,MatyasS,GloverA.
PearsonEducation
2007
4 Libro Test‐drivenDevelopment,ByExample
BeckK. Addison‐WesleyProfessional
2003
5 Libro ATDDbyExample GärtnerM. Addison‐WesleyProfessional
2012
MaestríaenIngenieríadeSoftwarePlan2016
73
H) PROBABILIDAD Y ESTADÍSTICA
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro Mathematical Statistics with
Applications,SeventhEditionDennis D.Wackerly,WilliamMendenhall III,Richard L.Scheaffer
ThomsonLearning,Inc.
2008
2 Libro StatisticsforBusinessandEconomics McClave, J.T.,Benson, P.G.,Sincich,T.
PrenticeHall. 2012
I) FUNDAMENTOS DE INTERACCIÓN HUMANO‐COMPUTADOR
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro Human‐ComputerInteraction:An
EmpiricalResearchPerspectiveI. Scott
MacKenzie
Elsevier 2013
2 Libro TheUXBook:Processandguidelinesforensuringaqualityuserexperience
RexHartsonandPardhaPyla
Elsevier 2012
3 Libro Understandingyourusers:Apracticalguidetouserrequirements:Methods,ToolsandRequirements
CatherineCourageandKathyBaxter
Elsevier 2005
NOTA:Eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Lineapuedenaccederutilizandocorreoinstitucional,utilizandosucuentaycontraseña.
J) DISEÑO DE VIDEOJUEGOS CENTRADO EN EL USUARIO
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro Gamefeel:agamedesginer’sguideto
virtualsensationSteveSwink Elsevier 2009
2 Libro TheUXBook:processandguidelinesforensuringaqualityuserexperience
RexHartsonandPardhaPyla
Elsevier 2012
3 Libro Understandingyourusers:Apracticalguidetouserrequirements:Methods,ToolsandRequirements
CatherineCourageandKathyBaxter
Elsevier 2005
4 Libro Observingtheuserexperience:apractitioner’sguidetouserresearch
ElizabethGoodman,Mike
Elsevier 2012
MaestríaenIngenieríadeSoftwarePlan2016
74
(2nded.) Kuniavsky,AndreaMoed
K) MÉTODOS DE INVESTIGACIÓN PARA INTERACCIÓN HUMANO‐COMPUTADOR
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro Human‐ComputerInteraction:An
EmpiricalResearchPerspectiveScottMacKenzie Morgan
Kaufmann2013
2 Libro ResearchMethodsforHuman‐ComputerInteraction
Cairns, et.al CambridgeUniversityPress
2008
NOTA:Eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Lineapuedenaccederutilizandocorreoinstitucional,utilizandosucuentaycontraseña.
L) INTELIGENCIA ARTIFICIAL PARA JUEGOS
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro ArtificialIntelligenceforGames IanMillington,
andJohnFungeCRCPress 2009
Complementaria
TIPO TITULO AUTOR EDITORIAL AÑO 2 Libro ArtificialIntelligence:AModern
ApproachStuartRussellandPeterNorvig
CRCPress 2009
3 Libro PrinciplesofRobotMotion:Theory,Algorithms,andImplementations
Choset, et.al ABradfordBook
2005
4 Libro ProgrammingGameAIByExample MatBuckland PrenticeHall 2009
NOTA:Eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Lineapuedenaccederutilizandocorreoinstitucional,utilizandosucuentaycontraseña.
MaestríaenIngenieríadeSoftwarePlan2016
75
M) ANÁLISIS DE DATOS CON LENGUAJE DE PROGRAMACIÓN ESTADÍSTICO
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro HeadFirstDataAnalysis:Alearner's
guidetobignumbers,statistics,andgooddecisions
MichaelMilton O'ReillyMedia 2009
2 Libro PracticalDataSciencewithR NinaZumel,JohnMount
ManningPublications
2014
3 Libro VisualizeThis:TheFlowingDataGuidetoDesign,Visualization,andStatistics
NathanYau Wiley 2011
4 Libro SoftwareforDataAnalysis,ProgrammingwithR
JohnChambers Springer 2009
5 Libro IntroductoryStatisticswithR PeterDalgaard Springer 2004N) BASESDEDATOSNOSQL
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro NoSQLDistilled:ABriefGuidetothe
EmergingWorldofPolyglotPersistence
PramodJ.Sadalage,MartinFowler
Addison‐WesleyProfessional
2012
2 Libro SevenDatabasesinSevenWeeks:AGuidetoModernDatabasesandtheNoSQLMovement
EricRedmond,JimR.Wilson
PragmaticBookshelf
2012
3 Libro JoeCelko'sSQLforSmarties,FifthEdition:AdvancedSQLProgramming
JoeCelko MorganKaufmann
2014
O) PROGRAMACIÓN FUNCIONAL
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro ScalafortheImpatient CayHorstmann Addison‐
WesleyProfessional
2012
2 Libro ProgramminginScala:AComprehensiveStep‐by‐StepGuide
MartinOdersky,LexSpoon
ArtimaInc 2011
3 Libro FunctionalProgramminginScala PaulChiusano, Manning 2014
MaestríaenIngenieríadeSoftwarePlan2016
76
RúnarBjarnason Publications
4 Libro LearningSpark:Lightning‐FastBigDataAnalysis
HoldenKarau,AndyKonwinski
O'ReillyMedia 2015
5 Libro LearningConcurrentProgramminginScala
AleksandarProkopec
PacktPublishing
2014
P) SISTEMAS DISTRIBUIDOS
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro ProgrammingDistributedComputing
Systems:AFoundationalApproachCarlosA.Varela,GulAgha
TheMITPress 2013
2 Libro LearningSpark:Lightning‐FastBigDataAnalysis
HoldenKarau,AndyKonwinski
O'ReillyMedia 2015
3 Libro HadoopinPractice Alex Holmes ManningPublications
2014
4 Libro RabbitMQinAction:DistributedMessagingforEveryone
AlvaroVidela,JasonJ.W.Williams
ManningPublications
2012
Q) MODELOS Y ESTÁNDARES DE SEGURIDAD
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro CERTResilienceManagementModel RichardA.Caralli;
JuliaH.Allen;DavidW.White
Adison‐Wesley 2011
2 Libro ImplantarControlesdeSeguridaddelaInformación:ImplantacióndeControlesdeSeguridaddelaInformaciónenunCSIRT/CERT(SpanishEdition)
CarlosSolísSalazar
EditorialAcadémicaEspañola
2012
3 Libro TransformingCybersecurity:UsingCOBIT5
Isaca Isaca 2013
4 Libro SoftwareVulnerability:IdentificationandMinimization
AlkaAgrawal,RaeesAKhan
Scholars'Press 2014
MaestríaenIngenieríadeSoftwarePlan2016
77
5 EstándaresISO2700027001y27002
NOTA:Lamateriaseapoyaráconelusodeartículocientíficosrelacionadosconlostemas,porlotanto,eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Linealacualpuedenaccederutilizandosucorreoinstitucional,utilizandosucuentaycontraseña.
R) PROGRAMACIÓN SEGURA
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro SecureCodinginCandC++.2nd
edition.ISBN:978‐0‐321‐82213‐0Seacord Addison‐
Wesley2013
3 Libro SafeC++.ISBN:978‐1‐449‐32093‐5 Kushnir O'Reilly 2012
3 Libro C#5.0inaNutshell:TheDefinitiveReference.ISBN:978‐1‐449‐32010‐2
Albahair O'Reilly 2012
4 Libro Understandingcryptography.ISBN:978‐3‐642‐04100‐6
Paar,Pelzl Springer 2010
NOTA:Eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Lineapuedenaccederutilizandocorreoinstitucional,utilizandosucuentaycontraseña.
S) TÓPICOS SELECTOS DE ASEGURAMIENTO
TIPO TITULO AUTOR EDITORIAL AÑO
MaestríaenIngenieríadeSoftwarePlan2016
78
1 Libro CERTResilienceManagementModel RichardA.Caralli;JuliaH.Allen;DavidW.White
Adison‐Wesley 2013
3 Libro TheWebApplicationHacker'sHandbook:FindingandExploitingSecurityFlaws(2edition)
Stuttard,Dafydd,Pinto,Marcus
Wiley 2012
3 Libro SoftwareVulnerability:IdentificationandMinimization
AlkaAgrawal,RaeesAKhan
Scholars'Press 2012
4 Libro TheHackerPlaybook:PracticalGuideToPenetrationTesting
Kim,Peter CreateSpaceIndependentPublishingPlatform
2010
5 Libro TheDatabaseHacker'sHandbook:DefendingDatabaseServers
Litchfield,David,Anley,Chris,Heasman,John,Grindlay,Bill
Wiley
6 EstándaresISO2700027001y27002
NOTA:Lamateriaseapoyaráconelusodeartículocientíficosrelacionadosconlostemas,porlotanto,eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Linealacualpuedenaccederutilizandosucorreoinstitucional,utilizandosucuentaycontraseña.
T) SEGURIDAD EN SISTEMAS DE INFORMACIÓN
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro Anintroductiontomathematical
cryptography.ISBN:978‐0‐387‐77993‐5
Hofftein,Pipher,Silverman
Springer 2008
2 Libro Understandingcryptography.ISBN:978‐3‐642‐04100‐6
Paar,Pelzl Springer 2010
MaestríaenIngenieríadeSoftwarePlan2016
79
NOTA:Eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Lineapuedenaccederutilizandocorreoinstitucional,utilizandosucuentaycontraseña.
U) DEFINICIÓN DE PROCESOS DE SOFTWARE
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro CMMIforDevelopment:Guidelines
forProcessIntegrationandProductImprovement(3rdEdition)(SEISeriesinSoftwareEngineering)
byMaryBethChrissis(Author),MikeKonrad(Author),SandraShrum(Author)
Addison‐WesleyProfessional;
2011
3 Libro CMMIparadesarrollo:Guíaparalaintegracióndeprocesosylamejoradelproducto(Terceraedición)
byMaryBethChrissis(Author),MikeKonrad(Author),SandraShrum(Author)TraducciónCátedraMPSEI
EditorialUniversitariaRamónAreces
2011
3 Libro CMMImplementationGuide:ChoreographingSoftwareProcessImprovement
KimCaputo Addison‐WesleyProfessional
1998
4 Libro GestióndelProcesoSoftware GonzaloCuevasAgustín
EditorialUniversitariaRamónAreces
2002
5 Libro MetodologíaMultimodeloparaImplementarMejorasdeProcesosSoftware
MirnaMuñoz;GonzaloCuevas;TomásSanFeliu
EditorialAcadémicaEspañola
2012
MaestríaenIngenieríadeSoftwarePlan2016
80
6 Libro GoalQuestionMetric VictorBasili Amethodologyforcollectingvalidsoftwareengineeringdata.Basili,V.R.,D.M.Weiss
1984
NOTA:Lamateriaseapoyaráconelusodeartículocientíficosrelacionadosconlostemas,porlotanto,eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Linealacualpuedenaccederutilizandosucorreoinstitucional,utilizandosucuentaycontraseña.
V) INTEGRACIÓN DE EQUIPOS DE DESARROLLO DE SOFTWARE
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro IntroductiontotheTeamSoftware
ProcessWattsS.Humphrey
Addison‐WesleyProfessional
1999
3 Libro TSP:CoachingDevelopmentTeams(TheSEISeriesinSoftwareEngineering)
WattsS.Humphrey
Addison‐WesleyProfessional
2006
3 Libro ThePeopleCMM:AFrameworkforHumanCapitalManagement(2ndEdition)
BillCurtisandWilliamE.Hefley
Addison‐WesleyProfessional
2009
4 Libro TheAgileTeamHandbook JanBeaver CreateSpaceIndependentPublishingPlatform
2013
5 Libro CoachingAgileTeams:ACompanionforScrumMasters,AgileCoaches,andProjectManagersinTransition
LyssaAdkins (Addison‐WesleySignatureSeries(Cohn))
2010
MaestríaenIngenieríadeSoftwarePlan2016
81
NOTA:Lamateriaseapoyaráconelusodeartículocientíficosrelacionadosconlostemas,porlotanto,eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Linealacualpuedenaccederutilizandosucorreoinstitucional,utilizandosucuentaycontraseña.
W) EVALUACIÓNYMEJORADEPROCESOSDESOFTWARE
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro CMMIforDevelopment:Guidelines
forProcessIntegrationandProductImprovement(3rdEdition)(SEISeriesinSoftwareEngineering)
byMaryBethChrissis(Author),MikeKonrad(Author),SandraShrum(Author)
Addison‐WesleyProfessional;
2011
3 Libro CMMIparadesarrollo:Guíaparalaintegracióndeprocesosylamejoradelproducto(Terceraedición)
byMaryBethChrissis(Author),MikeKonrad(Author),SandraShrum(Author)TraducciónCátedraMPSEI
EditorialUniversitariaRamónAreces
2011
3 Libro ProcessAssessmentandISO/IEC15504:AReferenceBook
HanvanLoon Springer 2nded.2007edition(November16,2014)
MaestríaenIngenieríadeSoftwarePlan2016
82
4 Libro CMMImplementationGuide:ChoreographingSoftwareProcessImprovement
KimCaputo Addison‐WesleyProfessional
1998
5 Libro ADisciplineforSoftwareEngineering.
Humphrey,W AddisonWesley 1995
6 Libro SCAMPIStandardCMMIAppraisalMethodforProcessImprovement
SEI/CMU 2004
7 Libro MetodologíaMultimodeloparaImplementarMejorasdeProcesosSoftware
MirnaMuñoz;GonzaloCuevas;TomásSanFeliu
EditorialAcadémicaEspañola
2012
8 Libro GestióndelProcesoSoftware GonzaloCuevasAgustín
EditorialUniversitariaRamónAreces
2002
9 Libro MakingProcessImprovementWork:AConciseActionGuideforSoftwareManagersandPractitioners
NeilPotterandMarySakr
Addison‐WesleyProfessional
2002
NOTA:Lamateriaseapoyaráconelusodeartículocientíficosrelacionadosconlostemas,porlotanto,eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Linealacualpuedenaccederutilizandosucorreoinstitucional,utilizandosucuentaycontraseña.
X) OPTIMIZACIÓNDEPROCESOS
TIPO TITULO AUTOR EDITORIAL AÑO
MaestríaenIngenieríadeSoftwarePlan2016
83
1 Libro ProcessDynamicsandcontrol(2ndEdition)
SeborgD.E.,EdgarT.F.,MellichampD.A.
JohnWileyandSonsInc.
2004
3 Libro EngineeringOptimization
G.V.Reklaitis,A.Ravindran,K.M.Ragsdell
J.Wiley
1983
3 Libro PracticalMethodsofOptimization(2ndeditión)
R.Fletcher. J.Wiley 1991
4 Libro ModelBuildinginMathematicalProgramming(4thedition)
H.P.Williams J.Willey 2002
5 Libro Optimization,FoundationsandApplications
R.E.Miller J.Wiley 2000
NOTA:Lamateriaseapoyaráconelusodeartículocientíficosrelacionadosconlostemas,porlotanto,eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Linealacualpuedenaccederutilizandosucorreoinstitucional,utilizandosucuentaycontraseña.
Y) TÓPICOS SELECTOS DE MEJORA DE PROCESOS DE SOFTWARE
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro AgileEstimationTechniquesand
innovativeapproachestosoftwareprocessimprovement
RicardoColomo‐Palacios,JoseAntonioCalvo‐ManzanoVillalón,AntonioAmescuaSeco,TomásSanFeliuGilabert
IGI‐Global 2014
3 Libro GestióndelProcesoSoftware GonzaloCuevasAgustín
EditorialUniversitariaRamónAreces
2002
MaestríaenIngenieríadeSoftwarePlan2016
84
3 Libro CMMIforDevelopment:GuidelinesforProcessIntegrationandProductImprovement(3rdEdition)(SEISeriesinSoftwareEngineering)
byMaryBethChrissis(Author),MikeKonrad(Author),SandraShrum(Author)
Addison‐WesleyProfessional;
2011
4 Libro CMMIparadesarrollo:Guíaparalaintegracióndeprocesosylamejoradelproducto(Terceraedición)
byMaryBethChrissis(Author),MikeKonrad(Author),SandraShrum(Author)TraducciónCátedraMPSEI
EditorialUniversitariaRamónAreces
2011
5 Libro MakingProcessImprovementWork:AConciseActionGuideforSoftwareManagersandPractitioners
NeilPotterandMarySakr
Addison‐WesleyProfessional
2002
6 Libro ProjectManagementSuccesswithCMMI:SevenCMMIProcessAreas
JamesPersse PrenticeHal 2007
NOTA:Lamateriaseapoyaráconelusodeartículocientíficosrelacionadosconlostemas,porlotanto,eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Linealacualpuedenaccederutilizandosucorreoinstitucional,utilizandosucuentaycontraseña.
Z) MÉTODOS Y TÉCNICAS DE INVESTIGACIÓN ORIENTADOS A LA INGENIERÍA DEL
SOFTWARE
TIPO TITULO AUTOR EDITORIAL AÑO 1 Libro ResearchMethodology:AStep‐by‐
StepGuideforBeginners,4thEdition
RanjitKumar SAGEPublicationsLtd
2014
3 Libro AcademicWritingforGraduateStudents,3rdEdition:EssentialTasksandSkills
JohnM.Swales,ChristineFeak
UniversityofMichiganPress
2012
MaestríaenIngenieríadeSoftwarePlan2016
85
3 Libro AManualforWritersofResearchPapers,Theses,andDissertations,EighthEdition:ChicagoStyleforStudentsandResearchers(ChicagoGuidestoWriting,Editing,andPublishing)
KateL.Turabian UniversityOfChicagoPress
2013
4 Libro MétodosyTécnicasOrientadasalDesarrollodeTrabajosdeInvestigación
Maria‐IsabelSanchez‐Segura,FuensantaMedina‐Dominguez,ArturoMora‐Soto
CreateSpaceIndependentPublishingPlatform
2013
NOTA:Eldocenteyelalumnopuedenhacerusodelabibliotecadigitalhttp://www.cimat.mx/es/Catalogos_Servicios_en_Lineapuedenaccederutilizandocorreoinstitucional,utilizandosucuentaycontraseña.
top related