Ingeniería de software
MSC-0102Nombre de la asignatura: Ingeniería de Software
Línea de trabajo: Asignatura básica
Tiempo de dedicación del estudiante a las actividades de:
DOC TIS TPS Horas totales Créditos
48 20 100 168 6 1. Historial de la asignatura. Fecha revisión / actualización Participantes Observaciones, cambios o justificación
Febrero de 2011 M. C. Rosa de Guadalupe Cano Anguiano
M.C. Ana Claudia Ruíz Tadeo Consejo de Posgrado del Departamento
de Sistemas y Computación
2. Pre-requisitos y correquisitos.
Asignatura obligatoria en el primer semestre.
3. Objetivo de la asignatura.
Aplicar técnicas de ingeniería para el desarrollo de productos de software, con el propósito de hacer más eficientes los recursos de cómputo disponibles, así cómo determinar el esfuerzo dedicado en la producción del software.
4. Aportación al perfil del graduado.
Aplicar las normas, estándares, métodos y herramientas de desarrollo de sistemas para la aplicarlos en su actuar profesional
Conocer sobre desarrollo y administración de sistemas de información para aumentar la productividad y competitividad de las organizaciones.
Conocer, fomentar y coordinar actividades que fortalezcan la cultura informática.
Proporciona los conocimientos sobre los estándares y métricas de calidad aplicadas a la evaluación del diseño.
Ofrece los criterios para poder seleccionar herramientas computarizadas utilizadas en la etapa de diseño, construcción y documentación de sistemas de información.
Permite dirigir y participar en grupos de trabajo interdisciplinarios que propongan soluciones integrales en su entorno.
5. Contenido temático.
Unidad Temas Subtemas
1 Lenguaje de modelado orientado a objetos.
1.1. La arquitectura de 4+1vistas. 1.2. Desarrollo orientado a objetos.
1.2.1. Casos de uso. 1.2.2. Actividades. 1.2.3. Clase y Objetos. 1.2.4. Interacción. 1.2.5. Estados. 1.2.6. Transiciones. 1.2.7. Interfaces de usuario. 1.2.8. Diseño de la lógica. 2 Administración de proyectos de software. 2.1. Introducción a la administración de proyectos. 2.1.1. Significado de administración de proyectos. 2.1.2. La importancia de la administración de proyectos. 2.1.3. Funciones de la administración de proyectos.
2.1.4. Beneficios de la administración del proyecto.
2.1.5. Características e importancia del administrador de proyectos. 2.1.6. Variables principales: costo,
capacidad, calidad y programa 2.2. Herramientas de software para administrar
proyectos.
2.3. Manejo de herramientas de software 2.4. Proyectos múltiples y proyectos ubicados en
diferentes sitios. 2.5. Planificación de proyectos. 2.5.1. Diagramas PERT/CPM. 2.5.1.1. Técnicas de programación de tareas. 2.5.1.2. Manejo de holguras. 2.5.1.3. La ruta crítica. 2.5.1.4. Manejo de recursos 2.5.1.5. Gráficas de Gantt. 2.5.2. Estimación de tiempos. 2.5.3. Estimación de esfuerzos. 2.5.4. Cálculo de costos.
2.5.5. Plan general del proyecto y planes de trabajo individuales.
Unidad Temas Subtemas
2.5.6. Uso de herramientas de software para la planificación
3 Ingeniería de requerimientos.
3.1. Actividades para la obtención de requerimientos.
3.2. Modelo FURPS (Funcionalidad, facilidad de uso, fiabilidad, rendimiento, soporte). 3.3. Clasificación de requerimientos. 3.3.1. Funcionales. 3.3.2. No funcionales. 3.3.3. De implementación. 3.3.4. Organizativos. 3.3.5. Legales. 3.3.6. Humanos. 3.4. Obtención de requisitos. 3.4.1. Objetivo. 3.4.2. Metas. 3.4.3. Alcances y limitaciones. 3.4.4. Justificación.
3.5. Técnicas para obtener información sobre el proyecto.
3.6. Especificaciones del proyecto y contrato. 3.7. Validación de requerimientos. 3.7.1. Correcto. 3.7.2. Completo. 3.7.3. Consistente. 3.7.4. No ambiguo. 3.7.5. Realista. 3.7.6. Verificable. 3.7.7. Rastreable.
4 Calidad y medición de los sistemas de software.
4.1. Descripción y aplicación de los estándares ISO y modelos: 25000, 15939 y EFQM. 4.2. Modelo de mejora continua.
4.3. Medición de un proyecto de software. Basado en el Modelo Boehm.
4.3.1. Portabilidad.
4.3.1.1. Independencia del dispositivo. 4.3.2. Usabilidad.
Unidad Temas Subtemas 4.3.2.1.1. Precisión. 4.3.2.1.2. Completitud. 4.3.2.1.3. Integridad /robustez 4.3.2.1.4. Consistencia. 4.3.2.2. Eficiencia. 4.3.2.2.1. Compatibilidad. 4.3.2.2.2. Eficiencia del dispositivo. 4.3.2.2.3. Accesibilidad. 4.3.2.3. Ingeniería social. 4.3.2.3.1. Comunicación. 4.3.3. Mantenibilidad. 4.3.3.1. Pruebas. 4.3.3.1.1. Claridad. 4.3.3.1.2. Estructuración. 4.3.3.2. Entendibilidad. 4.3.3.2.1. Consistencia. 4.3.3.2.2. Legalidad. 4.3.3.3. Modificabilidad. 4.3.3.3.1. Crecimiento. 5 Procesos de software.
5.1. Definición de procesos del software. 5.2. Clasificación del software.
5.2.1. Orientados a eventos. 5.2.2. Orientados a cliente-servidor. 5.2.3. Orientados al web.
5.2.4. Orientados a objetos.
5.3. Modelos de procesos o ciclos de vida. 5.3.1. Tradicional.
5.3.2. Incremental. 5.3.3. Evolutivo. 5.3.4. Espiral. 5.3.5. Ágil.
5.4. Fases en la creación del software.
6 Diseño de software.
6.1. Conceptos generales de diseño. 6.2. Contexto del diseño de software. 6.3. Proceso del diseño de software. 6.4. Técnicas de diseño. 6.4.1. Abstracción. 6.4.1.1. Tipos de abstracción. 6.4.1.1.1. Procedimental y de datos. 6.4.2. Acoplamiento. 6.4.2.1. Tipos de acoplamiento. 6.4.2.1.1. De datos, de marca, de control, externo, común y de contenido. 6.4.3. Cohesión.
Unidad Temas Subtemas 6.4.3.1. Tipos de cohesión. 6.4.3.1.1. Coincidentalmente cohesivo, lógica, temporal, procedimental, comunicación. 6.4.4. Descomposición 6.4.5. Moduralización. 6.4.6. Encapsulación. 6.4.7. Definición de la interfaz. 6.4.8. Suficiencia. 6.4.9. Integridad. 6.4.10. Concurrencia.
6.4.11. Control y manejo de eventos. 6.4.12. Distribución de componentes. 6.4.13. Gestión de excepciones y tolerancia
a fallos.
7 Validación de software.
7.1. Definición y características de las revisiones de software.
7.2. El proceso de verificación y validación del software.
7.3. Tipos de revisiones de software.
7.4. El papel de los estándares en el proceso de verificación y validación del software. 7.5. Estándar IEEE-1012 "Standard for Software
Verification and Validation" (secciones 1 a 4) y los niveles de integridad.
7.6. Estándar IEEE-1028 "Standard for Software Reviews".
7.7. Estándar IEEE-1044 "Guide to Classification for Software Anomalies".
7.8. Plan de verificación y validación del Software (SVVP).
7.9. Métricas de la verificación y validación del software.
6. Metodología de desarrollo del curso.
En la Unidad I, se sugiere que el estudiante determine en conjunción con su asesor, el desarrollo de un proyecto de software el cual será el producto final de la asignatura. Adicionalmente, se sugiere que ésta propuesta sea analizada y diseñada dentro del marco del lenguaje orientado a objetos.
En la unidad II, se sugiere que los estudiantes trabajen en la propuesta de trabajo mencionada en la unidad no. 1 y apliquen las técnicas y herramientas de la administración de proyectos.
En la unidad III, se propone que el estudiante analice concienzudamente el impacto de un adecuado levantamiento de requerimientos y su aplicación en el desarrollo de un proyecto de software.
En la unidad IV, el estudiante desarrollará una propuesta de investigación en dónde se refleje la aplicación tácita del estándar ISO 25000 y 15939.
En la unidad V, el estudiante desarrollará un ensayo en dónde reflejará el impacto, beneficios y ventajas de las diversas formas de desarrollas un proceso de software.
En la unidad VI, el estudiante aplicará las técnicas y herramientas para lograr un diseño de software adecuado.
En la unidad VII, el estudiante aplicará las técnicas y herramientas para desarrollar adecuadamente el proceso de validación del software.
7. Sugerencias de evaluación.
Examen escrito de respuesta abierta, opcional, múltiple. Prueba cronometrada, efectuada bajo control, en la que el alumno construye su respuesta. Se le puede conceder o no el derecho a consultar material de apoyo.
Trabajo académico. Actividades evaluables correspondientes a los productos (ensayos, reportes y proyecto final) que se indican por unidad como apoyo al proceso de enseñanza aprendizaje cuya ponderación deberá ser especificada al inicio de la materia.
Desarrollo de un proyecto final donde incorpore su conocimiento referente a la bibliografía revisada durante el curso.
Estudios de caso: Supone el análisis y la resolución de una situación planteada que presenta problemas de solución múltiple, a través de la reflexión y el diálogo para un aprendizaje grupal, integrado y significativo.
Prácticas 20% Proyectos 20% Tareas 20% Exámenes 30% Participación 10%
8. Bibliografía y software de apoyo.
Unidad I. Lenguaje de modelado orientado a objetos Aprendiendo Uml en 24 horas. Joseph Schmuller
Unidad II. Administración de proyectos de software www.pmi.org – guía Pmbok versión 2004.
Pressman, Roger. Ingeniería de software (7ª ed.) México: Mc Graw Hill. ISBN: 8448132149
Planeación y evaluación de proyectos informáticos. Nuria Rodríguez y William Martínez.
Formulación y evaluación de proyectos informáticos. Baca Urbina. Mc Graw Hill.
Unidad III. Ingeniería de requerimientos. Ingeniería en Software, Ian Sommersville.
Pressman, Roger. Ingeniería de software (7ª ed.) México: Mc Graw Hill. ISBN: 8448132149
Unidad IV.Calidad y medición de los sistemas de software
Kenneth Kendall & Julie Kendall. Análisis y diseño de sistemas de información (6ª.ed.).Prentice Hall. ISBN: 978-970-26-0577-5
Pressman, Roger. Ingeniería de software (7ª ed.) México: Mc Graw Hill. ISBN: 8448132149
www.iso25000.com
Calidad del producto y calidad del proceso. Coral Calero. Ángeles Moraga. Mario Piattini.
http://www.calidaddelsoftware.com/
Unidad V. Procesos de software
Calidad del proceso y proceso de software. Coral Calero, Ma. Angeles Moraga, Mario Piattini. Editorial Ra-MA 2010.
Ingeniería en Software, Roger Pressman. Versión 7
Web Information Systems Quality. Coral Calero.
Ingeniería en Software, Ian Sommersville.
www.swebook.org.
Ingeniería en Software, Roger Pressman. Versión 7
Ingeniería en Software, Ian Sommersville.
Introducción al análisis de sistemas y a la ingeniería de software. Roberto Cortés Morales
Unidad VI Diseño de software
Calidad del proceso y proceso de software. Coral Calero, Ma.
Angeles Moraga, Mario Piattini. Editorial Ra-MA 2010.Angeles Moraga, Mario Piattini. Editorial Ra-MA 2010. http://bioinfo.uib.es/~joemiro/aenui/procJenui/Jen2004/ponencias/ponencia30.pdf http://biblioteca.utec.edu.sv/siab/virtual/auprides/16039/capitulo%207.pdf http://is.ls.fi.upm.es/udis/docencia/erdsi/Documentacion-Evaluacion-6.pdf http://www.scribd.com/doc/14897492/Estandar-ISOIEC14598-Evaluacion-del-Producto-Software http://www.sqi.gu.edu.au/sc7/mirror/N2201-N2250/07n2246.pdf
http://www.tecsi.fea.usp.br/Revistatecsi/edicoesanteriores/v03n02-2006/v03n02-2006/a04v03n02/v3n2a4.htm
www.swebook.org.
Ingeniería en Software, Roger Pressman. Versión 7
Ingeniería en Software, Ian Sommersville.
Introducción al análisis de sistemas y a la ingeniería de software. Roberto Cortés Morales
Unidad VII Validación de software
Calidad del producto y calidad del proceso. Coral Calero. Ángeles Moraga. Mario Piattini.
Ingeniería en Software, Roger Pressman. Versión 7
Ingeniería en Software, Ian Sommersville.
Software de apoyo: Microsoft Project
Rational Rose
Software (en función de las aplicaciones a desarrollar)
9. Actividades propuestas.
Se sugiere que algunas de las actividades propuestas sean realizadas por equipos de tres personas, con la finalidad de promover la discusión de ideas que plantea el curso y fomentar el trabajo colaborativo. En este sentido, se proponen las siguientes actividades por unidad:
Unidad Actividad
1. Lenguaje de modelado orientado a objetos
1.1 Analiza el tema de lenguaje de modelado orientado a objetos.
Considera puntos como:
1. Ventajas y desventajas del lenguaje orientado a objetos contra el modelo de diseño tradicional. 2. La manera en la que se relacionan los casos de
usos y el diagrama de estados y de actividades. 3. Diseño de formatos para la determinación de
actores y sus actividades.
4. Presentar los resultados en forma de ensayo. 1.2 Analizar y diseñar un proyecto de software en el que se
aplique el modelo orientado a objetos. 2. Administración de proyectos
de software
2.1 Analizar el tema Administración de proyectos de software
Unidad Actividad
2. Explica las aportaciones que hace el Pmbok, en referencia a éste tópico.
3. Revisa el impacto que tiene la administración de proyectos en el desarrollo oportuno de un sistema de información.
4. Analiza y desarrolla los temas de la unidad 2, tomando como base referencial la propuesta de desarrollo de software de la unidad no. 1. Utiliza como herramienta Ms Proyect.
2.2. Presenta los resultados en forma de ensayo.
3. Ingeniería de requerimientos
3.1 Analiza el tema de la ingeniería de requerimientos. 1. ¿Cómo impacta un adecuado levantamiento de
requerimientos a un escenario real?
2. Explica las aportaciones del modelo FURPS a la ingeniería de requerimientos.
3. Con base en la propuesta de desarrollo de un proyecto de software, de la unidad 1. Levante todos los requerimientos indicados en la unidad no. 3
4. Aplíquelos al archivo resultante de la unidad. No. 2
4. Calidad y medición de los sistemas de software 5. Procesos de software 6. Diseño de software 7. Validación de software
1. En el área de oportunidad detectada, desarrollar el proyecto de software tomado como base los tipos de procesos vistos en clase.
2. Diseñar las interfaces utilizando las técnicas y herramientas especificadas en la unidad. 3. Realizar el proceso de calidad y medición del SI
generado. Aplicar el Estándar-ISO 2500 y la ISO 15939.
4. Validar la aplicación de software generada, utilizando los estándares vistos en clase.
Proyecto Final: Estará conformado con la formalización del SI, generado en la asignatura “Ingeniería de software”. Y deberá incluir los siguientes puntos:
1. Ingeniería de requerimientos 2. Administración de proyectos.
Unidad Actividad
3. Procesos del software. 4. Diseño de software.
5. Lenguaje de modelado orientado a objetos. 6. Calidad y medición de los sistemas de software 7. Validación del software.
10. Nombre y firma del catedrático responsable.