Contenido temático


1.Unidad I: Introducción

1.1.Categorización epistemológica y problemática de la Ingeniería de Software

1.1.1.Definición y alcances.

1.1.2.Diferencias entre las Ciencias de la Computación y la Ingeniería de Software.

1.1.3.Problemas en la construcción de sistemas de software de dimensión industrial.

1.2.Principios de la Ingeniería de Software y su aplicación al Análisis de Sistemas

1.3.Cualidades del software y su proceso de producción

1.3.1.Calidad del software; atributos de calidad; atributos de calidad del proceso de producción y del producto.

1.4.Nociones de administración y control de proyectos


2.Unidad II: Sistemas de Información

2.1.Teoría general de sistemas

2.1.1.Orígenes y alcance tradicional

2.1.2.Visión holística

2.1.3.La teoría general de sistemas como interdisciplina

2.1.4.Ingeniería de sistemas

2.2.Sistemas de Información: clasificación de los sistemas organizacionales y de información administrativa

2.2.1.Definición y el impacto de los modelos económicos

2.2.2.Data warehouses. ERP, sistemas empresariales, sistemas expertos, GIS, ofimática.

2.2.3.Ingeniería de sistemas de información.

2.2.4 Nociones de sistemas colaborativos.

2.3.Seguridad de la información
2.3.1.
Privacidad, confidencialidad, integridad y disponibilidad.
2.3.2.
Autenticación, autorización y auditoría
2.3.3. Control y peritaje de sistemas.


3.Unidad III: Especificaciones formales

3.1.Métodos Formales y Especificaciones

3.1.1.Métodos formales.

3.1.2.Especificaciones: vocabulario y conceptos.

3.1.2.1. Máquinas, Qué y Cómo, modelo WRSPM, fenómenos.

3.1.2.2. Abstracción, modelo e implementación.

3.1.2.3. Lenguajes formales de especificación.

3.1.2.4. Condiciones de corrección, invariantes, comportamiento observable y propiedades de las componentes de estado.

3.1.2.5. Precondiciones, postcondiciones, especificaciones totales, operaciones atómicas.

3.2.Introducción a la ingeniería de requerimientos

3.3.Especificación de sistemas de información en lenguaje Z

3.3.1.Modelando máquinas de estados mediante matemática y lógica simplemente tipadas.

3.3.2.Esquemas de estado y operación.

3.3.3.Promoción de operaciones.

3.3.4.Composición de operaciones.

3.3.5.Aplicación del modelo WRSPM a especificaciones Z.

3.3.6.Z/EVES: un editor de especificaciones Z.

3.4.Statecharts: modelado de sistemas reactivos simples y con requisitos temporales simples

3.5.Communicating Secuential Processes (CSP) para la especificación de sistemas concurrentes

3.5.1.Eventos y procesos; external choice y alternativas guardadas; definición de procesos recursivos y mutuamente recursivos; operador de interrupción; renombramiento funcional e indexado; internal choice; leyes CPS para los operadores estudiados.

3.5.2.Leyes para la concurrencia: sincronización, abrazo mortal, eventos independientes primero, intercalaciones.

3.5.3.Especificación de requisitos temporales simples mediante timers.

3.5.4.Procesos y eventos parametrizados; canales de comunicación; operadores imperativos; composición secuencial; procesos STOP y SKIP.

3.5.5.El modelo semántico de fallas y divergencias de CSP; la necesidad de distinguir formalmente external e internal choice; rechazos, fallas, divergencias.

3.6.Safey, Liveness y Fairness

3.6.1.Sistemas concurrentes y propiedades; el marco Alpern-Schneider.

3.6.2.Pasos intrascendentes y composición de modelos.

3.6.3.El teorema de Alper-Schneider; propiedades de safety y liveness; formalización de safety y liveness; cómo reconocer safety y liveness.

3.6.4.Problemas al interesecar propiedades de safety con propiedades de liveness arbitrarias; el concepto de máquina cerrada de Abadi-Lamport.

3.6.5.Propiedades de fairness para obtener máquinas cerradas; introducción básica a los operadores de la lógica temporal; weak y strong fairness.

3.7.Especificación de sistemas concurrentes complejos utilizando Temporal Logic of Actions Plus (TLA+)

3.7.1.El concepto de estado.

3.7.2.Módulos TLA+; cláusulas EXTENDS, INSTANCE, CONSTANT, ASSUMES y VARIABLE; instanciación múltiple; el concepto de acción; definición de acciones y predicados de estado.

3.7.3.La forma de una especificación TLA; la semántica de una especificación TLA.

3.7.4.Regla de conjunción para weak y strong fairness.

3.7.5.Cuantificación existencial universal.

3.7.6.Especificación de requisitos temporales mediante timers.

4.Unidad IV: Análisis de especificaciones Z

4.1.El asistente de pruebas de Z/EVES

4.2.Teoremas en Z/EVES

4.3.El teorema de inicialización

4.4.Cálculo de precondiciones

4.5.Errores de dominio

4.6.Inconsistencias

4.7.Propiedades del modelo