INGENIERIA DE SOFTWARE
Enviado por jonyjocker • 13 de Enero de 2014 • 34.537 Palabras (139 Páginas) • 248 Visitas
Fundamentos de Ingeniería de Software I
Programa de Estudios
Parte I: Generalidades
1.1 Introducción
1.2 Ingeniería del Software y sus paradigmas estructurado y orientado a objetos
1.3 La dualidad del software: producto y como proceso
1.4 El Producto
1.4.1 Evolución del software
1.4.2 Problemas del software
1.4.3 Aplicaciones del software
1.4.4 Características del software
1.4.5 Mitos del software
1.4.5.1 Mitos de gestión
1.4.5.2 Mitos del cliente
1.4.5.3 Mitos de lo desarrolladores
1.4.6 Calidad del software como producto
1.5 El Proceso
1.5.1 Visión genérica
1.5.2 Fase de Definición
1.5.2.1 Análisis del sistema
1.5.2.2 Planificación del proyecto de software
1.5.2.3 Análisis de requisitos
1.5.3 Fase de Desarrollo
1.5.3.1 Diseño
1.5.3.2 Codificación
1.5.3.3 Prueba
1.5.3.3.1 Casos de prueba
1.5.3.3.1.1 Prueba de la caja negra
1.5.3.3.1.2 Prueba de la caja blanca
1.5.3.3.2 Estrategias de prueba
1.5.3.3.2.1 Prueba de unidad
1.5.3.3.2.2 Prueba de integración
1.5.3.3.2.3 Prueba de validación
1.5.3.3.2.4 Prueba del sistema
1.5.4 Fase de Mantenimiento
1.5.4.1 Corrección
1.5.4.2 Adaptación
1.5.4.3 Mejora
1.5.4.4 Reingeniería
1.5.5 Modelos de Proceso de Software
1.5.5.1 Modelos Lineales Secuenciales
1.5.5.1.1 Clásico (o de cascada)
1.5.5.1.2 Desarrollo Rápido de Aplicaciones
1.5.5.2 Modelo de Construcción de Prototipos
1.5.5.3 Modelos Evolutivos
1.5.5.3.1 Modelo en Espiral
1.5.5.3.2 Modelo Incremental
1.5.5.3.3 Modelo de ensamblaje de componentes
1.5.5.4 Técnicas de Cuarta Generación (T4G)
1.5.5.5 Métodos formales
1.5.5.6 Sala limpia (clean room)
1.5.6 Combinación de paradigmas
1.5.7 Calidad del software como proceso (C.M.M. e I.S.O.)
Parte II: Gestión de proyectos de software
2.1 Gestión de proyectos de software
2.1.1 Personal
2.1.1.1 Participantes
2.1.1.2 Jefes de equipo
2.1.1.3 Estructuras del equipo
2.1.1.4 Liderazgo
2.1.1.5 Delegación
2.1.1.6 Criterios para elección de estructura organizacional
2.1.2 Problema
2.1.2.1 Ámbito del software
2.1.2.2 Características del ámbito
2.1.2.3 Cuestionario para obtención del ámbito del software
2.1.3 Proceso
2.1.3.1 Maduración del problema y del proceso
2.1.3.2 Planificación de proyectos
2.1.3.3 Objetivo de la planificación
2.1.3.4 Estimación del coste y esfuerzo del proyecto
2.1.3.5 Métodos de estimación de costo
2.1.3.5.1 Comparación de métodos
Parte III: Análisis de requerimientos
3.1 Obtención de requerimientos
3.2 Problemas en la obtención de requerimientos (de alcance, de entendimiento y de volatilidad)
3.3 Metodología para la obtención de requerimientos
Parte IV: Análisis estructurado
4.1 Antecedentes y conceptos
4.2 Herramientas de modelado
4.2.1 Diagrama de flujo de datos
4.2.2 Diccionario de datos
4.2.3 Diagrama de entidad-relación
4.2.4 Especificaciones de proceso
4.2.5 Diagrama HIPO (Hierachy Input Process Output)
4.2.6 Tabla de decisión
4.2.7 Diagrama de flujo
4.2.8 Diagrama de Nassi-Shneiderman
4.2.9 Diagrama de Ferstl
4.2.10 Diagrama de transición de estados
4.3 Balanceo de modelos
Parte V: Diseño estructurado
5.1 Consejos para un diseño de calidad
5.2 Conceptos fundamentales de diseño
5.2.1 Abstracción
5.2.2 Refinamiento
5.2.3 Modularidad
5.2.4 Arquitectura del software
5.2.5 Jerarquía de control
5.2.6 Estructura de datos
5.2.7 Procedimiento del software
5.2.8 Ocultamiento de información
5.2.9 Diseño modular efectivo
5.2.9.1 Independencia funcional
5.2.9.2 Cohesión
5.2.9.3 Acoplamiento
5.3 Métodos de diseño
5.3.1 Diseño Arquitectónico
5.3.2 Diseño de datos
5.3.3 Diseño de la interfaz
5.3.4 Diseño procedimental
Parte VI: Codificación estructurada
6.1 Acciones a seguir para un buen estilo de codificación
6.2 Documentación interna del código
6.3 Lenguajes de Programación e Ingeniería del Software
6.3.1 El porqué de estudiar lenguajes de programación
6.3.2 Breve historia de los lenguajes de programación
6.3.3 Influencias en la evolución de los lenguajes de programación
6.3.4 Atributos de un buen lenguaje de programación
6.3.5 Paradigmas de los lenguajes de programación
6.3.5.1 Aspectos de Programación Imperativa del Tipo
Procedimental
6.3.6 Los lenguajes y sus niveles
6.3.7 Estructura sintáctica
6.3.7.1 BNF (Forma de Backus-Naur)
6.3.7.2 Esquemas (diagramas o gráfica) de sintaxis
6.3.7.3 Elementos significativos de un lenguaje de programación
(comparación de lenguajes)
Parte VII: Prueba estructurada
7.1 Objetivos de la Prueba
7.2 Principios de la Prueba
7.3 Atributos de una buena prueba
7.4 Diseño de Casos de prueba
7.4.1 Prueba de la caja blanca
7.4.2 Prueba de la caja negra
7.5 Estrategias de prueba
7.6 La Depuración
7.6.1 La dificultad de la depuración
Parte VIII: Mantenimiento estructurado
8.1 Tipos de mantenimiento
El proceso de mantenimiento
8.2 Costo del mantenimiento
8.3 Mantenimiento y configuración del software
1.1 Introducción
Ingeniería del Software
Ingeniería Conjunto de conocimientos y técnicas que permiten aplicar el saber científico a la utilización de la materia y de las fuentes de energía (Diccionario de la Real Academia Española de la Lengua).
Conjunto de conocimientos y técnicas cuya aplicación permite la utilización racional de los materiales y de los recursos naturales, mediante invenciones, construcciones u otras realizaciones provechosas para el hombre (Real Academia de Ciencias Exactas, Físicas y Naturales de España).
Software • Instrucciones
...