Ingeniero de Software Programa Educativo Ingeniero de Software Plan 2009 Octubre de 2012.
-
Upload
jesus-rivas-marin -
Category
Documents
-
view
216 -
download
0
Transcript of Ingeniero de Software Programa Educativo Ingeniero de Software Plan 2009 Octubre de 2012.
Programa Educativo
Ingeniero de SoftwareIngeniero de Software
Plan 2009
Octubre de 2012
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 Mapa CurricularCurricular
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 Interactivos
Esta 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 Mapa CurricularCurricular
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 Web
Esta 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 Mapa CurricularCurricular
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?