maestría en ingeniería de software plan 2016 - cimat.mx · matemáticas discretas, lenguajes de...

85
Maestría en Ingeniería de Software Plan 2016 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

Upload: vuongphuc

Post on 29-Sep-2018

215 views

Category:

Documents


0 download

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

8

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

14

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.