¡Esta es una revisión vieja del documento!


Procesos de Ingeniería de Software (300CIS005)

Información Básica

Descripción del Curso

En el curso de Procesos de Ingeniería de Software se estudian los procesos involucrados en el desarrollo de software, concebidos desde la ingeniería de software. Se revisan las diferentes etapas de un proceso de desarrollo de software y su finalidad. Se introducen diferentes metodologías de desarrollo de software y su aplicación de acuerdo al contexto. El curso se enfoca en la aplicación de la metodología Rational Unified Process (RUP) y el establecimiento de la documentación requiera para proyectos de software. Finalmente, por medio de la realización de un proyecto de desarrollo de software de tamaño mediano, se aplican los conceptos y técnicas estudiadas en el curso.

Objetivos

Al finalizar el curso los participantes podrán:

  1. Identificar los conceptos fundamentales de la ingeniería de software
    1. Enumerar las principales características y cualidades del software
    2. Identificar cual es el propósito de la Ingeniería de Software y la diferencia con las ciencias de la computación
    3. Describir los procesos de software y los modelos asociados a ellos.
    4. Reconocer la importancia de los modelos en el proceso de desarrollo de software.
  2. Reconocer los ciclos de vida del software, los modelos de procesos de desarrollo y metodologías de desarrollo de software.
    1. Identificar los ciclos de vida del software.
    2. Reconocer y diferenciar los modelos de procesos de desarrollo.
    3. Identificar y comparar diferentes metodologías de desarrollo de Software.
    4. Evaluar las ventajas y desventajas de cada metodología de acuerdo al contexto donde se aplicará.
    5. Aplicar una metodología de desarrollo ágil de software a un proyecto pequeño
  3. Recolectar, analizar y modelar los requerimientos de un producto de software mediano.
    1. Enumerar las diferentes etapas en el proceso de ingeniería de requerimientos
    2. Explicar las características que deben tener los requerimientos en un proyecto de software.
    3. Identificar requerimientos funcionales y no funcionales en proyectos de desarrollo de Software.
    4. Enumerar los diferentes tipos de requerimientos no funcionales.
    5. Realizar documentos de Requerimientos de Software (SRS) basados en estándares establecidos.
    6. Modelar con diagramas UML los requerimientos de un producto de software.
  4. Diseñar un producto de software de tamaño mediano
    1. Utilizar diferentes técnicas y modelos en el proceso de diseño de Software.
    2. Realizar documentos de Diseño de Software basados en estándares establecidos.
    3. Modelar con diagramas UML el diseño y funcionamiento de una aplicación.
    4. Evaluar diferentes alternativas de diseño relacionadas con la arquitectura, estructura e interfaces de un producto de software.
  5. Desarrollar, validar y probar un producto de software de tamaño mediano
    1. Reconocer las “buenas prácticas” en los procesos de desarrollo de software.
    2. Identificar los aspectos más importantes en los procesos de verificación y validación de software.
    3. Enunciar los aspectos más importantes del desarrollo formal de Software.
    4. Construir e integrar componentes de software de acuerdo a especificaciones y diseños establecidos.
    5. Evaluar y validar soluciones de software con respecto a las especificaciones establecidas.
  6. Utilizar los procesos metódicos de análisis, diseño, desarrollo, validación y mantenimiento de software en un proyecto real.
    1. Implementar una solución de software siguiendo una metodología específica, desde la etapa de obtención de requerimientos hasta la validación del producto desarrollado.

Contenido

Capítulo 1: Introducción

Sesión Horas de Clase Tópicos Bibliografía
1 2 Presentación del curso. Introducción. Reto y realidad del desarrollo del software[1,cap 1]
2 2 Definiciones y Conceptos básicos sobre la Ingeniería de Software [2,cap 1]
2 Definición de requerimientos para un miniproyecto de desarrollo de software (aplicación de metodología ágil)

Total de Horas: 4

Capítulo 2: Ciclo de vida, modelos de proceso y metodologías de desarrollo

Sesión Horas de Clase Tópicos Bibliografía
3 2 Ciclos se Vida y Modelos de Proceso [1,cap 2],[2,cap 2]
4 2 Métodologias de Desarollo de Software[1,cap 3],[2,cap 2.4,3],[6,cap 1,2,3]
5 2 Métodologías de Desarrollo de Soft : Comparativo. Rational Unifed Process (RUP)[1,cap 3],[2,cap 2.4,3],[6,cap 1,2,3]

Total de Horas: 6

Capítulo 3: Especificación y requerimientos de software

Sesión Horas de Clase Tópicos Bibliografía
6 1 Especificación y requerimientos de Software [1,cap 5], [3,cap 4], [5,cap 6,7]
6 1 Definición de requerimientos para proyecto semestral (aplicación de metodología RUP). Taller en clase
7 2 Ingeniería y Modelado de Requerimientos[1,cap 5,6,7], [2,cap 4], [5,cap 6,7]
8 2 Diagramas UML - Casos de Uso [1, Apéndice 1],[5,cap 3,7,A]
9 2 Doc. de Especificación de Requerimientos [2,cap 4.2], [8]
10 2 Presentación de Miniproyecto de desarrollo de software basado en métodos ágiles
11 2 Taller en Clase y Revisión de requerimientos de Proyecto Semestral

Total de Horas: 14

Capítulo 4: Diseño de Software

Sesión Horas de Clase Tópicos Bibliografía
12 2 Diseño de Software [1,cap 13,14,22], [3,cap 11,14]
13 2 Diseño de Software [1,cap 13,14,22], [3,cap 11,14]
14 2 Diagramas UML - Clases, y otros [5,cap 9,A]
15 2 Documento de Diseño de Software
16 2 Patrones de Diseño [3,cap 16], [7]
17 2 Diagramas UML - Diag. de Actividad [5,cap A,B]
18 2 Buenas Práctica en Diseño
19 2 Taller en Clase

Total de Horas: 16

Capítulo 5: Construcción (Desarrollo de Software)

Sesión Horas de Clase Tópicos Bibliografía
20 2 Construcción (Desarrollo) [2,cap 19, 21]
21 2 Estándares en el desarrollo de software
22 2 Taller en Clase
23 2 Calidad de Software[1,cap 14,16],[2, cap 24]
24 2 Desarrollo Formal de Software [1,cap 21]

Total de Horas: 10

Capítulo 6: Validación

Sesión Horas de Clase Tópicos Bibliografía
25 2 Verificación y Validación [3,cap 22]
26 2 Verificación y Validación [3,cap 22]
27 2 Pruebas [1,cap 17,18], [2,cap 8]
28 2 Taller en Clase. Presentación de herramientas
29 2 Métricas [1,cap 23], [3,cap 24.4]
30 2 Métricas [1,cap 23], [3,cap 24.4]

Total de Horas: 12

Capítulo 7: Evolución del Software

Sesión Horas de Clase Tópicos Bibliografía
31 2 Evolución del Software [2,cap 9.1]
32 2 Mantenimiento de Software[2, cap 9.3]

Total de Horas: 4

Integración Curricular

Resultados de Programa (ABET)

(A) La habilidad para aplicar conocimientos de matemáticas, ciencias e ingeniería.

(B) La habilidad para analizar un problema e identificar los requerimientos necesarios para su definición y solución.

(C) La habilidad para diseñar, implementar y evaluar procesos y sistemas computacionales.

(D) La habilidad para funcionar en equipos de trabajo.

(E) El entendimiento de la responsabilidad profesional y ética.

(F) La habilidad para comunicarse efectivamente.

(G) La habilidad para analizar los impactos de la computación y la ingeniería en las personas, organizaciones y la sociedad.

(H) El reconocimiento de la necesidad de, y la habilidad para, continuar con el desarrollo profesional.

(I) La habilidad para usar las técnicas, destrezas y herramientas modernas para la práctica de la computación.

(J) La habilidad para aplicar los fundamentos y principios de las matemáticas y de la computación en el modelamiento y diseño de sistemas computacionales de manera que se demuestre comprensión de las ventajas y desventajas en las decisiones de diseño.

(K) La habilidad para aplicar los principios de diseño y desarrollo de software en la construcción de sistemas de diferente complejidad.

Relevancia del curso con los resultados de programa

Resultados de Programa
A B C D E F G H I J K
Relevancia 4 5 5 1 2 2 1 2

Escala: (1) baja relevancia - (5) alta relevancia.

Integración de objetivos, contenido y metodología del curso

Resultados del Programa Indicadores de Desempeño Objetivos/Contenido del Curso Actividades de aprendizaje Instrumentos de medición
(A) Aplicación de Conocimientos (A1) Identificar los fundamentos científicos y los principios de ingeniería que rigen un proceso o sistema. (Conocimiento) (A2) Resolver problemas relacionados con la disciplina y otras áreas por medio de la utilización de conocimientos, modelos y formalismos de las ciencias de la computación, las matemáticas y la ingeniería. (Aplicación) (A3) Analizar conjuntos de datos. (Análisis) Todos Exposiciones del profesor, talleres, tareas y lecturas Exámenes, miniproyecto, proyecto semestral y tareas
(B) Análisis de problemas y requerimientos (B1) Describir procesos de manera declarativa ignorando los detalles de su implementación. (Comprensión). (B2) Utilizar el lenguaje propio de las matemáticas, la lógica y la ingeniería para especificar requerimientos funcionales y no funcionales de un sistema o proceso. (Aplicación). (B3) Sintetizar la información, evidencias y hechos necesarios para analizar un problema. (Análisis - Síntesis). Obj. 3,6 / Cap. 2,3 Exposiciones del profesor, Talleres y desarrollo de proyectos Exámenes, miniproyecto, proyecto semestral y tareas
(C) Diseño (C1) Utilizar estándares de codificación en la implementación de componentes de software. (Aplicación). (C2) Identificar componentes, interacciones, relaciones e interfaces entre componentes. (Análisis). (C3) Diseñar procesos y componentes de software haciendo uso de la notación, técnicas y herramientas adecuadas. (Síntesis). (C4) Evaluar un componente de software de acuerdo a su complejidad temporal y espacial. (Evaluación). Obj. 4,5,6 / Cap. 3,4 Exposiciones del profesor, Talleres y desarrollo de proyectos Exámenes, miniproyecto y proyecto semestral
(D) Trabajo en equipo (D2) Participar en tareas y en la toma de decisiones. (Respuesta - Afectivo). (D3) Integrar diferentes puntos de vista, información, críticas y retroalimentación para proponer una solución. (Síntesis). (D4) Definir tareas, roles y responsabilidades. (Aplicación). Obj. 1,2,5,6 Desarrollo de proyectos (2) Mniproyecto y Proyecto semestral
(F) Comunicación efectiva (F2) Comunicarse de manera efectiva de acuerdo al público objetivo haciendo uso correcto del lenguaje, estilo, tiempo y expresión corporal. (Aplicación). (F3) Utilizar recursos gráficos para comunicar y expresar una idea. (Aplicación). Todos Exposiciones, sustentación de proyectos, Informes escritos de proyectos Exposiciones, Miniproyecto y proyecto semestral
(I) Uso de herramientas y técnicas (I1) Utilizar herramientas de desarrollo de software. (Aplicación). (I2) Utilizar herramientas de diseño, modelamiento y simulación. (Aplicación). Obj. 5,6 Talleres y desarrollo de proyectos Miniproyecto, proyecto semestral, y Talleres
(J) Modelamiento y diseño de sistemas computacionales (J1) Reconocer la importancia del modelamiento cuando se resuelve un problema. (Compresión). (J2) Relacionar conceptos y principios teóricos para la resolución efectiva de un problema. (Síntesis). (J4) Evaluar decisiones de diseño basándose en principios matemáticos y de computación. (Evaluación). Todos Exposiciones del profesor, talleres, tareas, lecturas y proyectos Exámenes, miniproyecto, proyecto semestral, talleres y tareas
(K) Desarrollo de software (K2) Implementar e integrar componentes de software respetando los criterios de diseño. (Aplicación). (K3) Establecer invariantes y propiedades de componentes de software. (Análisis). (K4) Evaluar y verificar soluciones de software con respecto a las restricciones y requerimientos establecidos. (Aplicación - Evaluación). Todos Proyectos (2) Exámenes, miniproyecto y proyecto semestral

Recomendaciones del Director del Programa

Reglas del curso

Calificación y Balance de Evaluación del Curso

Instrumento Porcentaje A B C D E F G H I J K
Tareas, Trabajos y Quices 10% 36% 28% 20% 10% 6%
Exposición 5% 75% 25%
Miniproyecto - Metodología Ágil 10% 30% 20% 15% 10% 15% 10%
Primer Parcial 20% 35% 55% 10%
Segundo Parcial 20% 20% 70% 10%
Proyecto Semestral
- Primera Entrega - Requerimientos 10% 60% 10% 10% 20%
- Segunda Entrega - Diseño 10% 44% 8% 15% 33%
- Tercera Entrega - Desarrollo y pruebas 15% 8% 7% 30% 55%

Uso de material en exámenes

No está permitido el uso de notas de clase, bibliografía, calculadoras, computadores personales, teléfonos celulares ni ningún otro equipo electrónico.

Asistencia

Obligatoria

Recursos

Bibliografía

  1. Ingeniería de Software, un enfoque práctico. 7ed. Roger S. Pressman. McGraw Hill. México, 2010.
  2. Ingeniería de Software. 9ed. Ian Sommerville. Pearson Educación S.A. México, 2011.
  3. Ingeniería de Software orientada a Objetos. Alfredo Weitzenfeld. Thomson Press, 2004.
  4. Software Engineering Fundamental. Ali Behforooz, Frederinck J. Hudson. Oxford University Press. New York, 1996.
  5. The Unified Modeling Language reference manual. - 2ed. James Rumbaugh, Ivar Jacobson, Grady Booch.
  6. The rational unified process and introduction. - 2ed. Philippe Kruchten.
  7. Design patterns : elements of reusable object-oriented software. Erich Gamma.

Instalaciones

Salón de clase con computador y proyector.

Material de este semestre

 
materias/pis.1383833952.txt.gz · Última modificación: 2013/11/07 09:19 por alexvalencia
Recent changes RSS feed Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki