1.- DATOS DE LA ASIGNATURA Nombre de la asignatura: Carrera: Clave de la asignatura: Horas teoría-horas práctica-créditos Ingeniería de Software I ingeniería en Sistemas Computacionales SCB-9328 4-O-8 2.- UBICACIÓN DE LA ASIGNATURA a). Relación con otras asignaturas del plan de estudio Anteriores Posteriores Asignaturas Temas Asignaturas Temas Analisis y diseño de sistemas de información. Ing. Economica Evaluación de alternativas. Varias Documentación de proyectos. b). Aportación de la asignatura al perfil del egresado Esta materia proporcionará las herramientas y técnicas,actualmente en uso, para el desarrollo de sistemas de programación, cubriendo temas como: planeación del proyecto, de software, y sobre técnicas de documentación. 3.- OBJETIVO(S) GENERAL(ES) DEL CURSO Al término del curso, el alumno será capaz de : Entender la importancia de la ingeniería de software, asi como las fases del ciclo de desarrollo de un proyecto de computación. Aplicar técnicas de ingeniería de software, asi como, definir procedimientos y estándares para la elaboración de la documentación asociada.
4.- TEMARIO Unidad Temas 1 Introducción a la Ingeniería de software. Subtemas 1.1 Definiciones. 1.2 Consideraciones de Software y Hardware. 1.3 Factores de calidad y productividad. 1.4 Problemas y soluciones en la administración de software. 2 Planeación de un proyecto de programación. 2.1 Definición del problema. 2.2 Desarrollo de una estrategia de solución. 2.3 Planeación del proceso de desarrollo. a) Análisis de factibilidad y estudio de beneficio/costo. b) Análisis del sistema. c) Especificación del sistema. d) Revisión de la definición. 3 Planeación de una estructura organizacional. 3.1 El grupo de programación. 3.2 Otras actividades de
planeación. 4 Planeación de la programación. 4.1 Objetivos de la planeación. 4.2 Recursos. 4.3 Factores de costo del software. 4.4 Estimación de los costos. a) Modelos y técnicas de estimación. 4.5 Planeación organizacional. 4.6 El plan de software.( estudio de factibilidad). 5 Análisis de requerimientos de la programación. 5.1 Análisis de requerimientos. 5.2 Técnicas de especificación. 5.3 El flujo de información. 5.4 Estructura de información. 5.5 Requerimiento de base de datos. 5.6 Documentos de especificación del software. 5.7 Herramientas de análisis: Manuales y automatizadas.
6 El proceso de diseño de software. 6.1 El proceso de diseño. 6.2 Conceptos fundamentales de diseño. 6.3 Notaciones para el diseño. 6.4 Técnicas de diseño. 6.5 Diseño preliminar y detallado. 6.6 Documentación del diseño. 6.7 Revisión del diseño. 6.8 Pruebas piloto. 7 Técnicas de diseño de software. 7.1 Diseño orientado al flujo de datos. a) Análisis de transformaciones. b) Análisis de transacciones. c) Optimización del diseño. 7.2 Diseño orientado a estrustura de datos. a) Diseño y estructura de datos. b) La metodología de jackson. c) Construcción logica de programas. 7.3 Herramientas de diseño detallado. a) Herramientas gráficas. b) Tablas de decisión.
c) Diagramas HIPO. d) Comparación de herramientas. 8 Proyecto de programación. (El proyecto consistirá en la elaboración de un producto de software, de acuerdo a las técnicas cubiertas en la materia; el proyecto se desarrollará durante el semestre). 5.- APRENDIZAJES REQUERIDOS Conocer las diferentes fases del ciclo de desarrollo de sistemas. Conocer y comprender los conceptos b6sicos della planeacibn del software y estudio de factibilidad. Conocer y aplicar tecnicas de control de avance de proyectos (PERT/CPM). Conocer y aplicar tecnicas de administración de archivos. 6.- SUGERENCIAS DIDÁCTICAS Utilizar ejemplos reales de algun producto de programación realizado en software comercial. Uso de herramientas CASE. Exposición de temas con sesión de preguntas y respuestas. Trabajos docunentales de investigación de ingenieria de software. Desarrollo grupal de un proyecto de software. 7.- SUGERENCIAS DE EVALUACION Elaboración de proyecto integrador; evaluación por etapas y presentación final. Evaluación escrita. Tareas extraclases. Nota: Los dos puntos anteriores deberán ser elaborados y enriquecidos por la academia, en coordinacion con el Departamento de Desarrollo Academico.
8.- UNIDADES DE APRENDIZAJE Unidad 1: INTRODUCCION A LA INGENIERIA DE SOFTWARE Objetivo Educacional Comprender la importancia de la ingeniería del software, asi como las consideraciones sobre calidad, productividad en la elaboración del software. 1.1 Comprender la importancia de la Ingeniería de software. 1.2 Conocer los aspectos de software y Hardware en la programación de sistemas. 1.3 Analizar y proponer soluciones a los problemas que se presenten en la administración del software. 1,2,3 1.4 Comprender los factores sobre la calidad y productividad en el desarrollo de software. Unidad 2: PLANEACION DE UN PROYECTO DE PROGRAMACION Objetivo Educacional Conocer la importancia de la 2.1 Definición de los requerimientos de planeación en el información. desarrollo de un proyecto de 2.2 Establecimiento del problema. programación. 2.3 Desarrollo de la estrategia de solución. Determinar la factibilidad de un 2.4 Planeación del proceso de desarrollo. proyecto de programación. 2.5 Desarrollo del estudio de factibilidad y de beneficio/costo. Establecer el plan de la estructura 2.6 Especificación funcional del sistema. 4,5 2.7 Revisiones.
organizacional. Establecer el plan de programación del sistema (plan de software). 2.8 El grupo de programación. 2.9 Otras actividades de planeación. 2.10 Objetivos y recursos. 2.11 Factores de costo de software. 2.12 Estimación de costos. 2.13 Planeación organizacional. 2.14 Plan de software. Unidad 3: PLANEACION DE UNA ESTRUCTURA ORGANIZACIONAL Objetivo Educacional Definir las caracteristicas del sistema a implantar, utilizando la tecnica de análisis estructurado. Definir los requerimientos de programación en abse a las necesidades de información de la empresa. 3.1 Análisis de requerimientos. 6,7,8,9 Elaborar documento especificación funcional. el de 3.2 Conocimiento y aplicación de las ténicas de especificación de los requerimientos. 3.3 Determinar el flujo y la estructura de la información. 3.4 Definición de requerimientos de base de datos. 3.5 Aplicación del análisis estructural para la elaboración de la especificación funcional del sistema. a) Definir: -Estándares. -Formatos y documentos.
-Contenido del documento de especificación de requerimientos. Unidad 4: PLANEACION DE LA PROGRAMACION Objetivo Educacional Conocer y comprender las carcteristicas y conceptos del proceso de diseño de software. Definir el documento de diseño del software. Comprender las caracteristicas del proceso de diseño de software y conceptos fundamentales. 4.1 Conceptos y caracteristicas de la fase de diseño del software. 4.2 Conocer y aplicar las ténicas de diseño preliminar detallada. 4.3 Especificar la documentacion del diseño del sistema. 4.4 Revisión del diseño. 4.5 Desarrollo de pruebas piloto. 10,11,12,13 Unidad 5: ANALISIS DE REQUERIMIENTOS DE LA PROGRAMACION. Objetivo Educacional Comprender y aplicar la técnica de diseño orientado al flujo de datos. Conocer y aplicar las diferentes filosofías del diseño de software, asi como establecer las diferencias mas importantes entre ellas. 14, 15, 16
Comprender y aplicar la técnica de diseño orientado a las estructuras de datos. Conocer y aplicar las herramientas del diseño detallado. 5.1 Comprender la técnica de diseño orientado al flujo de datos. 5.2 Análisis de transformaciones y transacciones. 5.3 Comprender la técnica de diseño orientado a las estructuras de datos. Elaborar el docimento de diseño detallado del sistema. 5.4 Definición de las estructuras de datos. 5.5 Construcción lógica de programas. 5.6 Aplicar las herramientas para el diseño detallado -Herramientas gráficas. -Tablas de decisión. -Diagrama HIPO 5.7 Aplicar las técnicas y herramentas de diseño para elaborar el documento de diseño detallado Unidad 6: EL PROCESO DE DISEÑO DE SOFTWARE. Objetivo Educacional Conocer y comprender las carcteristicas y conceptos del proceso de diseño de software. Comprender las caracteristicas del proceso de diseño de software y conceptos fundamentales. 6.1 Conceptos y caracteristicas de la fase de diseño de software. 1, 2, 12, 13 Definir el documento de diseño del software. 6.2 Conocer y aplicar las técnicas de diseño preliminar y detallado. 6.3 Especificar la documentación del diseño del sistema. 6.4 Revisión del diseño. 6.5 Desarrollo de pruebas piloto.
Unidad 7: EL PROCESO DE DISEÑO DE SOFTWARE. Objetivo Educacional Comprender y aplicar la técnica de diseño orientado al flujo de datos. Conocer y aplicar las diferentes filosofías del diseño de software, asi como establecer las diferencias mas importantes entre ellas. 1, 5, 13 Comprender y aplicar la técnica de diseño orientado a las estructuras de datos. Conocer y aplicar las herramientas del diseño detallado. 7.1 Comprender la técnica de diseño orientado al flujo de datos. 7.2 Análisis de transformaciones y transacciones. 7.3 Comprender la técnica de diseño orientado a las estructuras de datos. Elaborar el docimento de diseño detallado del sistema. 7.4 Definición de las estructuras de datos. 7.5 Construcción lógica de programas. 7.6 Aplicar las herramientas para el diseño detallado -Herramientas gráficas. -Tablas de decisión. -Diagrama HIPO 7.7 Aplicar las técnicas y herramentas de diseño para elaborar el documento de diseño detallado 10.- FUENTES DE INFORMACION 1.- PRESSMAN, ROGER SOFTWARE ENGINEERING; A DRACTITIONERLS. EDIT. ADPRDACH. CAPS. 1, 2.
2.- FAIRLEY, RICHARD. INGENIERÍA DE SOFTWARE. CAP. 1. 3.- INGENIERÍA DE SOFTWARE. SOMNERVILLE, ISN CAP. 1. 4.- PRESSMAN, ROGER. SOFTWARE ENGINEERING. CAPS. 3, 4. 5.- FRAILEY, RICHARD. INGENIERIA DE SOFTWARE. CAPS. 2, 4. 6.- PRESSMAN, ROGER. SOFTWARE ENGINEERINS. CAP. 5. 7.- FAIRLEY, RICHARD. INGENIERIA DE SOFTWARE. CAP. 4. 8.- APUNTES DE ANÁLISIS ESTRUCTURADO. 9.- SCMENENILLE, LAN. INGENIERÍA DE SOFTWARE. CAPS. 2, 3. 10.- PRESSMAN, ROGER. SOFTWARE ENGINEERING. CAPS. 6, 7. 11.- FAIRLEY, RICHARD. INGENIERÍA DE SOFTWARE. CAP. 5. 12 : APUNTES DE DISEIÑO. 13.- DAVIS, WILLIAM. TOOLS AND TECHNIQUES FOR STRUCTURED SYSTEMS ANALYSIS AND DESIGN. CAP. H. 14.- PRESSMAN, ROGER. SOFTWARE ENGINEERING.
CAPS. 8, 9. 15 : FAIRLEY, RICHARD. INGENIERIA DE SOFTWARE. CAP. 5 PP. 161-202. 16: DAVID, UILLIAM. TOOLS AND TECHNIQUES FOR STRUCTURED SYSTEMS ANALYSIS AND DESIGN. CAPS. H, I, 0.