Programa Educativo
Ingeniero de SoftwareIngeniero de SoftwarePlan 2009
Octubre de 2009
Antecedentes Tendencias de la IT a la tercerización (Offshore y nearshore). Potencial de México para el desarrollo de la industria de
software por su cercanía a los estados Unidos. Iniciativas federales, estatales, de la iniciativa privada y de las
instituciones educativas de convertir a Sonora en el polo de desarrollo de la industria de software : Corredor de Parques Alta Tecnología, que se ubicarán respectivamente en Ciudad Obregón, Hermosillo y Nogales.
Las iniciativas estratégicas del ITSON: Parque Tecnológico de Ciudad Obregón: SonoraSoft Technology Park, la fábrica de software Novutek y el Centro de Innovación y Transferencia de Tecnologías de Información (CITTI).
Problema y Justificación• Estas iniciativas generan una demanda de profesionistas
especializados en el desarrollo de software que ayuden a consolidar los esfuerzos tendientes a transformar el estado en el polo para el desarrollo de la Industria del Software de México.
• Es preciso crear un programa educativo que satisfaga dicha demanda. Este programa dará sustento al cambio deseado en nuestra región a través de proyectos de investigación, innovación, incubación y consultoría realizados por profesores y alumnos de un programa de estudios enfocado en la Ingeniería de software.
Objetivo del Programa Educativo
Formar de manera integral recurso humano comprometido con su labor, innovador y emprendedor, capaz de desarrollar soluciones de software de
calidad en forma eficiente, que contribuyan al crecimiento y progreso
de su sociedad.
Perfil de Egreso
El ingeniero en software es un profesionista que desarrolla soluciones de software, mediante la aplicación de
procesos, modelos y estándares de calidad de la industria del software, las
cuales contribuyen al crecimiento y progreso de su sociedad, en un
ambiente que provee vida sustentable y oportunidades a sus habitantes.
Competencias Profesionales
•Diseñar Soluciones de Software a través de la aplicación de metodologías, herramientas y estándares apropiados al problema.
•Producir aplicaciones de software a partir de especificaciones de diseño y haciendo uso de las mejores prácticas que aseguren la calidad del producto.
•Administrar Proyectos de Desarrollo de Software mediante la aplicación de procesos, modelos y estándares que contribuyan a la calidad total del producto.
Áreas y Lugares de TrabajoÁreas Lugares de Trabajo
Análisis, Diseño, Construcción y Pruebas en el desarrollo de software
Empresas con áreas de Desarrollo de Software, Fábricas de Software, Su Propia Empresa.
Administración de Bases de Datos
Empresas con necesidades en Sistemas de Información.
Administración de Proyectos de Desarrollo de Software
Empresas con áreas de Desarrollo de Software, Fábricas de Software, Su Propia Empresa.
Competencia de Análisis y Diseño de Software
Diseñar Soluciones de Software a través de la aplicación de
metodologías, herramientas y estándares apropiados al problema.
Ingeniero en Software 2009 Mapa CurricularMapa Curricular
Bloques delBloques del ProgramaPrograma
Herramientas
Análisis y Diseño
Administración de Proyectos de Desarrollo de Software
Optativas
Ciencias Básicas
Formación General
Construcción de Software
Práctica Profesional
5.62cIntegridad Personal
3hc
9.37cCalculo I
5hc
5.62cMatemática
Discreta3hc
11.25cProgramació
n I c/lab.3hc 3hl
5.62cIngeniería
de Software3hc
5.62cVida
Saludable3hc
9.37cCalculo II
5hc
5.62cMatemáticas Computacion
ales3hc
5.62cAnálisis d e Sistemas
3hc
5.62cSistemas
Operativos3hc
5.62cAdministraci
ón
3hc
5.62cCiudadano: Vida Social
3hc
9.37cProbabilidad y
Estadística5hc
5.62cAnálisis y
Modelado de Soft.3hc
5.62cBases de Datos I
3hc
5.62cAdministraci
ón de Proyectos
3hc
5.62cEmprendedor
I: Espíritu Emprendedor
3hc
9.37cInglés
Avanzado I5hc
5.62cEval. de
Proyectos de Soft.3hc
11.25cDis. de Soft. I c/Pract. Prof I
3hc 3hp
11.25Admón de
Proy. de Soft. I c/ Pract. Prof.
II3hc 3hp
9.37cInglés
Avanzado II5hc
5.62cFundamentos
de Redes3hc
5.62cDiseño de Software II
3hc
5.62cMétodos
Numéricos3hc
5.62cAdmón de
Proyectos de Soft II3hc
5.62cOptativa I
3hc
5.62cEmprendedor II: Oportunidad de
Negocio3hc
5.62cSeguridad Informática
3hc
5.62cAplicaciones
Web 3hc
5.62cDiseño de Sistemas
Interactivos3hc
5.62cCalidad de Software
3hc
5.62cOptativa II
3hc
5.62cCiudadano:
Vida Ambiental
3hc
5.62cSistemas
Distribuidos 3hc
5.62cDiseño y
Desarrollo de Aplic. Emp.
3hc
5.62cOptativa III
3hc
5.62cPráctica
Profesional III
I3hc
5.62cPráctica
Profesional IV
3hc
5.62cCómputo
Móvil 3hc
5.62cOptativa V
3hc
5.62cEvaluación de Software
3hc
5.62cOptativa IV
3hc
5.62cTecnologías de Inf. en los
Negocios 3hc
5.62cÁlgebra Lineal3hc
5.62cBases de Datos II
3hc
5.62cArquitect. de Comp.
3hc
5.62cPráctica
Profesional V3hc
11.25cProgramació
n II c/lab3hc 3hl
5.62cEstructuras de Datos
3hc
5.62cProgramació
n III 3hc
5.62cPruebas de Software
3hc
Competencia de Análisis y Diseño
•Análisis de Sistemas•Análisis y Modelado de Software•Diseño de Software I c/Práctica Profesional I•Diseño de Software II•Diseño de Sistemas Interactivos•Diseño y Desarrollo de Aplicaciones Empresariales
Análisis de Sistemas
Este curso provee los conocimientos para realizar una correcta identificación de problemas susceptibles de ser corregidos mediante una aplicación software, mediante la aplicación de técnicas y métodos obtenidos del área de la Ingeniería Industrial.
Análisis y Modelado de Software.
Provee los conocimientos que permitan a los alumnos identificar y documentar adecuadamente los requerimientos de Software con los que debe cumplir una solución de software para un problema en particular. El alumno experimentará el proceso para identificar un problema, documentar los requerimientos (funcionales y No funcionales), analizarlos (marco de trabajo de RNF) y realizar un modelo de análisis completo basado en una metodología para Análisis Orientado a Objetos y UML. En este caso RUP. El curso se divide en dos partes esencialmente: por un lado identificación y modelado de requerimientos, y por otro, análisis del software.
Diseño de Software I c/Práctica Profesional I
Esta materia complementa a la materia de Análisis y Modelado de Software. Está enfocada a resolver dos aspectos básicos del desarrollo de software: el modelado de la arquitectura del sistema y el diseño detallado de la solución, aunque esto no exime a los estudiantes de tener que programar su diseño para poder corroborar que es el adecuado. Incluye un programa de Práctica Profesional mediante el cual se pretende que los alumnos apliquen los conocimientos de la materia junto con la de Análisis y Modelado de Software, a la solución de problemas en proyectos de vinculación con la industria. Entre los temas a incluir se encuentran: definición de arquitectura de software, distintos modelos arquitectónico y sus implicaciones, modelo de las 4+1 vistas, concepto de Diseño detallado, Concepto de patrón de diseño, Técnica para el diseño detallado de software utilizando patrones de diseño, reglas para implementar aplicaciones a partir de diseños de software. Uso de patrones para dar solución a Requerimientos No Funcionales.
Diseño de Software II
Esta materia complementa a la materia de Diseño de Software I con Práctica Profesional. Considera que los alumnos cuentan con los conocimientos previos para identificación, documentación y análisis de requerimientos, así como del conocimiento de técnicas y métodos para el diseño arquitectónico y detallado. Profundiza en las técnicas de diseño de software, al analizar la construcción de sistemas de patrones, que permitan optimizar el diseño de soluciones de software a través de la reutilización de estructuras completas de patrones. Al igual que en Diseño de software I, los estudiantes deben comprobar el funcionamiento de su diseño mediante la implementación. Entre los temas a incluir se encuentran: Concepto de sistemas de patrones, análisis de sistemas de patrones existentes: struts. Solución de problemas concretos utilizando patrones: caché, acceso a datos, conexión a sistemas legados.
Diseño de Sistemas InteractivosEsta materia complementa el proceso de diseño de software, al proporcionar elementos teóricos y prácticos que sustenten el diseño de las interfaces que permitan a los usuarios finales utilizar una solución de software de forma efectiva, al cumplir con los criterios de usabilidad requeridos.
Entre los puntos importantes que se tocan en esta materia se encuentran:análisis de técnicas para construcción de interfaces- criterios de usabilidad- técnica para el diseño del flujo de la aplicación- prototipos- técnicas para diseño de sistemas web- análisis de la usabilidad de la interfaz de usuario - principios del diseño de interfaces y de interacción humano-computadora
Diseño y Desarrollo de Aplicaciones Empresariales
Esta materia, siendo una clase integradora, busca lograr el desarrollo de una aplicación completa dentro de un entorno empresarial similar a los existentes en la vida comercial. Un reto importante en esta materia, es la agilización del proceso de diseño y desarrollo de soluciones mediante la aplicación de marcos de trabajo existentes.
Competencia de Construcción de Software
Producir aplicaciones de software a partir de especificaciones de diseño y haciendo uso de las mejores prácticas que aseguren la calidad del producto.
Ingeniero en Software 2009 Mapa CurricularMapa Curricular
Bloques delBloques del ProgramaPrograma
Herramientas
Análisis y Diseño
Administración de Proyectos de Desarrollo de Software
Optativas
Ciencias Básicas
Formación General
Construcción de Software
Práctica Profesional
5.62cIntegridad Personal
3hc
9.37cCalculo I
5hc
5.62cMatemática
Discreta3hc
11.25cProgramació
n I c/lab.3hc 3hl
5.62cIngeniería
de Software3hc
5.62cVida
Saludable3hc
9.37cCalculo II
5hc
5.62cMatemáticas Computacion
ales3hc
5.62cAnálisis d e Sistemas
3hc
5.62cSistemas
Operativos3hc
5.62cAdministraci
ón
3hc
5.62cCiudadano: Vida Social
3hc
9.37cProbabilidad y
Estadística5hc
5.62cAnálisis y
Modelado de Soft.3hc
5.62cBases de Datos I
3hc
5.62cAdministraci
ón de Proyectos
3hc
5.62cEmprendedor
I: Espíritu Emprendedor
3hc
9.37cInglés
Avanzado I5hc
5.62cEval. de
Proyectos de Soft.3hc
11.25cDis. de Soft. I c/Pract. Prof I
3hc 3hp
11.25Admón de
Proy. de Soft. I c/ Pract. Prof.
II3hc 3hp
9.37cInglés
Avanzado II5hc
5.62cFundamentos
de Redes3hc
5.62cDiseño de Software II
3hc
5.62cMétodos
Numéricos3hc
5.62cAdmón de
Proyectos de Soft II3hc
5.62cOptativa I
3hc
5.62cEmprendedor II: Oportunidad de
Negocio3hc
5.62cSeguridad Informática
3hc
5.62cAplicaciones
Web 3hc
5.62cDiseño de Sistemas
Interactivos3hc
5.62cCalidad de Software
3hc
5.62cOptativa II
3hc
5.62cCiudadano:
Vida Ambiental
3hc
5.62cSistemas
Distribuidos 3hc
5.62cDiseño y
Desarrollo de Aplic. Emp.
3hc
5.62cOptativa III
3hc
5.62cPráctica
Profesional III
I3hc
5.62cPráctica
Profesional IV
3hc
5.62cCómputo
Móvil 3hc
5.62cOptativa V
3hc
5.62cEvaluación de Software
3hc
5.62cOptativa IV
3hc
5.62cTecnologías de Inf. en los
Negocios 3hc
5.62cÁlgebra Lineal3hc
5.62cBases de Datos II
3hc
5.62cArquitect. de Comp.
3hc
5.62cPráctica
Profesional V3hc
11.25cProgramació
n II c/lab3hc 3hl
5.62cEstructuras de Datos
3hc
5.62cProgramació
n III 3hc
5.62cPruebas de Software
3hc
Competencia de Construcción de Software
•Programación I c/Lab.•Programación II c/Lab.•Estructura de Datos•Base de Datos I•Programación III•Métodos Numéricos Computacionales•Pruebas de Software•Base de Datos II•Aplicaciones Web•Sistemas Distribuidos•Cómputo Móvil•Optativa I•Optativa II
Programación I con/Lab.
Este curso provee las bases para solucionar problemas de computadoras utilizando el enfoque estructurado, centrándose principalmente en el desarrollo de las capacidades lógicas del alumno para enfocarla a la solución de problemas. Provee de una herramienta básica para los cursos posteriores, entre ellos los cursos de Programación II y Estructura de Datos. Contenido general: Algoritmos computacionales, Enfoque estructurado para solución de problemas básicos y avanzados con Java.
Programación II con/Lab.
•En este curso se presentan los principios de la programación orientada a objetos.•Se estudia el manejo de excepciones, algunas de clases de la API de Java como las colecciones y las clases que nos permiten construir interfaces de usuario gráficas.•Se desarrollan aplicaciones de escritorio.
Estructura de Datos
Este curso provee los conceptos y técnicas fundamentales para crear y mantener estructuras de datos que le permitan al alumno almacenar, manipular y organizar la información; a la vez que le permite hacer un uso eficiente de los recursos y facilita la programación de los sistemas de información.
Base de Datos I
Este curso provee los aspectos básicos de las bases de datos para que el estudiante, empleando las metodologías más comunes y un DBMS comercial, realice su diseño y lo implemente.
Programación III
En este curso se presentan los principios de concurrencia (programación multi-hilos), el manejo de archivos y los mecanismos de persistencia
Métodos Numéricos Computacionales
En este curso se analizan métodos para aproximar, de forma eficiente, la solución de problemas expresados matemáticamente. También se estima el error máximo que puede introducirse con cada método. Entre los métodos estudiados están la solución de ecuaciones lineales, interpolación y aproximación numérica, diferenciación e integración numérica y solución de sistemas lineales.
Pruebas de Software
Ofrecer a los alumnos el conocimiento teórico y las técnicas necesarias que les permitan realizar funciones referentes a la calidad técnica de los proyectos, control de timing, resolución de incidencias, realización de pruebas software, mantenimiento de aplicaciones informáticas y desarrollo de aplicativos. * pruebas de puesta en marcha, así como la revisión del cumplimiento de todas las especificaciones técnicas de la producción.
Base de Datos II
Este curso provee los aspectos básicos de tópicos avanzados en sistemas manejadores de base de datos. El curso cubre modelación de datos desde el punto de vista semántico y orientado a objetos. Así mismo se cubren aspectos fundamentales de base de datos orientadas a objetos y aspectos de interoperabilidad en base de datos en el WWW. Otras nuevas tecnologías en base de datos serán brevemente introducidas.
Aplicaciones WebEsta materia proporciona los conocimientos para el desarrollo de aplicaciones Web bajo la plataforma Java. Estudia los principios y limitaciones de este tipo de aplicaciones y las soluciones que se han desarrollado.En este curso se emplean algunas de las tecnologías y marcos empleados para desarrollar este tipo de aplicaciones: HTML, CSS, Javascript, JSP, Struts, JSF entre otras.
Sistemas Distribuidos
Esta materia proporciona los conocimientos para el desarrollo de aplicaciones en entornos distribuidos, donde es necesario crear soluciones de software escalables, altamente configurables y extensibles. Estudia los distintos problemas que se presentan en el desarrollo de este tipo de aplicaciones y su solución mediante patrones de diseño bien establecidos y su correspondiente implementación utilizando diversas tecnologías, desde EJB hasta servicios Web.
Cómputo Móvil
Esta materia intenta proporcionar a los alumnos las herramientas necesarias para el desarrollo de aplicaciones en entornos móviles con el fin de integrarlas a aplicaciones empresariales nuevas o pre-existentes. Se busca que el alumno comprenda las técnicas para construir soluciones en este tipo de plataformas, considerando restricciones de Procesamiento, conectividad y duración de la batería de los dispositivos.
Optativa I
Este curso provee los conocimientos y habilidades necesarias para iniciar al alumno en el desarrollo de aplicaciones utilizando el ambiente administrado que brinda la plataforma de desarrollo Visual Studio .NET y su marco de ejecución .NET Framework. Busca fortalecer y diversificar el conocimiento de los alumnos respecto a las herramientas de desarrollo que existen en la actualidad.
Optativa II
Diseño y desarrollo de aplicaciones Web con ASP.NET y C#
Competencia de Administración de Proyectos de Software
Administrar Proyectos de Desarrollo de Sw mediante la aplicación de
procesos, modelos y estándares que contribuyan a la calidad total del
producto.
Ingeniero en Software 2009 Mapa CurricularMapa Curricular
Bloques delBloques del ProgramaPrograma
Herramientas
Análisis y Diseño
Administración de Proyectos de Desarrollo de Software
Optativas
Ciencias Básicas
Formación General
Construcción de Software
Práctica Profesional
5.62cIntegridad Personal
3hc
9.37cCalculo I
5hc
5.62cMatemática
Discreta3hc
11.25cProgramació
n I c/lab.3hc 3hl
5.62cIngeniería
de Software3hc
5.62cVida
Saludable3hc
9.37cCalculo II
5hc
5.62cMatemáticas Computacion
ales3hc
5.62cAnálisis d e Sistemas
3hc
5.62cSistemas
Operativos3hc
5.62cAdministraci
ón
3hc
5.62cCiudadano: Vida Social
3hc
9.37cProbabilidad y
Estadística5hc
5.62cAnálisis y
Modelado de Soft.3hc
5.62cBases de Datos I
3hc
5.62cAdministraci
ón de Proyectos
3hc
5.62cEmprendedor
I: Espíritu Emprendedor
3hc
9.37cInglés
Avanzado I5hc
5.62cEval. de
Proyectos de Soft.3hc
11.25cDis. de Soft. I c/Pract. Prof I
3hc 3hp
11.25Admón de
Proy. de Soft. I c/ Pract. Prof.
II3hc 3hp
9.37cInglés
Avanzado II5hc
5.62cFundamentos
de Redes3hc
5.62cDiseño de Software II
3hc
5.62cMétodos
Numéricos3hc
5.62cAdmón de
Proyectos de Soft II3hc
5.62cOptativa I
3hc
5.62cEmprendedor II: Oportunidad de
Negocio3hc
5.62cSeguridad Informática
3hc
5.62cAplicaciones
Web 3hc
5.62cDiseño de Sistemas
Interactivos3hc
5.62cCalidad de Software
3hc
5.62cOptativa II
3hc
5.62cCiudadano:
Vida Ambiental
3hc
5.62cSistemas
Distribuidos 3hc
5.62cDiseño y
Desarrollo de Aplic. Emp.
3hc
5.62cOptativa III
3hc
5.62cPráctica
Profesional III
I3hc
5.62cPráctica
Profesional IV
3hc
5.62cCómputo
Móvil 3hc
5.62cOptativa V
3hc
5.62cEvaluación de Software
3hc
5.62cOptativa IV
3hc
5.62cTecnologías de Inf. en los
Negocios 3hc
5.62cÁlgebra Lineal3hc
5.62cBases de Datos II
3hc
5.62cArquitect. de Comp.
3hc
5.62cPráctica
Profesional V3hc
11.25cProgramació
n II c/lab3hc 3hl
5.62cEstructuras de Datos
3hc
5.62cProgramació
n III 3hc
5.62cPruebas de Software
3hc
Competencia de Administración de Proyectos de Software
•Ingeniería de Software•Administración•Administración de Proyectos•Evaluación de Proyectos de Software•Administración de Proyectos de Software I y Práctica Profesional•Administración de Proyectos de Software II•Tecnologías de Información para los Negocios•Calidad del Software•Evaluación del Software
Ingeniería de Software
• Este curso provee los fundamentos sobre la ingeniería de software: definición de Ingeniería de Software, el software como producto y como proceso, tipos de sistemas de información, modelos de desarrollo, ciclo de vida de desarrollo de software, herramientas que automatizan el desarrollo de software.
• Evidencia: Comprensión de las etapas del ciclo de vida de desarrollo de software, compresión de los modelos de desarrollo: cascada e iterativo.
Administración
• Este curso proporciona el fundamento para identificar las técnicas y herramientas utilizadas en cada uno de los elementos del proceso administrativo, que permitan ejercitar habilidades de análisis y razonamiento para descubrir problemas.
• Evidencia: Comprender el proceso administrativo en una organización y la estructura jerárquica de una empresa, áreas que integran una organización y su interacción.
Administración de Proyectos
• Este curso provee los fundamentos sobre la administración de proyectos, analiza a detalle las etapas de la administración de proyectos (PMI), así como las herramientas utilizadas como apoyo en cada etapa.
• Evidencia: Desarrollo de un plan en Microsoft Project y su seguimiento.
Evaluación de Proyectos de Software
• Este curso proporciona el conocimiento para evaluar la factibilidad económica de un proyecto de desarrollo de software: entender el valor del dinero a través del tiempo, elaborar los flujos netos de efectivo que habrá de producir período tras período; métodos que existen para determinar la factibilidad económica de un proyecto de desarrollo de software; distintos análisis concernientes a la sensibilidad económica.
• Evidencia: Caso de negocio.
Administración de Proyectos de Software I y Práctica Profesional
• Este curso provee los fundamentos sobre la administración de proyectos de software (RUP), analiza las fases de desarrollo y las disciplinas implicadas, así como las herramientas y productos que se generan durante la administración de proyectos.
• Evidencia: Portafolio de Administración de Proyecto de Software.
Administración de Proyectos de Software II
• Este curso provee conocimientos para realizar el monitoreo y control de un proyecto de software. Además analiza la administración de proyectos de software siguiendo una metodología ágil (XP).
• Evidencia: Evaluación de Iteración y reportes de avance de un proyecto de desarrollo de software. Portafolio de Administración de Proyectos de Software metodología ágil.
Tecnologías de Información para los Negocios
• Este curso provee al alumno la visión sobre la contribución de los sistemas de información a la estrategia competitiva de la empresa, con el fin de generar propuestas de mejora basadas en tecnologías de información, que contribuyan a dar forma a la estrategia competitiva de la organización. Para ello se abordan diversas herramientas para el diagnóstico empresarial y se revisa el proceso de planeación estratégica.
• Evidencia: Portafolio de proyectos de TI alineado a la estrategia de una empresa.
Calidad del Software
• El curso provee conocimientos para la aplicación de las normas internacionales para la certificación de la calidad en el desarrollo del software. Se revisan los fundamentos de la calidad del software, estandarización de procesos y estándares de calidad vigentes (CMMI, ISO, Moprosoft).
• Evidencia: Definición de un proceso de desarrollo de software basado en un estándar revisado en el curso.
Evaluación del Software
• Este curso provee herramientas para el diseño y aplicación de medidas de evaluación tendientes a apoyar la mejora de la calidad de un proceso de desarrollo de software, en la etapa de propuesta, en producción, y operación y mantenimiento.
• Evidencia: un plan de evaluación para un proyecto de software basado en un modelo de calidad.
• Nunca consideres el estudio como un deber, sino como una oportunidad para penetrar en el
maravilloso mundo del saber.
• ¿Por qué esta magnifica tecnología científica, que ahorra trabajo y nos hace la vida más fácil nos
aporta tan poca felicidad? La respuesta es esta, simplemente: porque aún no hemos aprendido a
usarla con tino.
Albert Einstein
¿Preguntas?¿Preguntas?
Top Related