EGEL-InfoComp "A": PROGRAMACIÓN E INGENIERÍA DE SOFTWARE

Duración:

El presente material deberá estudiarlo un promedio de 38 horas divididas en 19 temas, cada tema deberá estudiarlo en 2 horas. El alumno debe de comprometerse en el estudio y comprensión del material proporcionado. Cada duda será atendida en los medios de comunicación que se le indicará al momento de su inscripción.

Dirigido a:

Todo público.

Es importante que revise y estudie únicamente la matriz que corresponda al perfil del EGEL Info-Comp que presentará. Si usted presentará el perfil "A", se encuentra en el lugar correcto. Las matrices cubren las ocho áreas de conocimiento con sus respectivos contenidos temáticos y específicos, así como las claves de las sugerencias bibliográficas. En la matriz de especificaciones, se indica el nivel cognoscitivo en el que se evalúa cada contenido específico, de acuerdo con la siguiente clasificación taxonómica y su respectivo código:

  • Recordar: R
  • Evaluar: E
  • Resolver problemas: RP
Requisitos:
  • Contar con una computadora y acceso a internet. (En casa, escuela, trabajo, cibercafé)
  • Tener acceso a uno o más libros que se recomiendan en el material de estudio.
  • Estudiar y comprender cada capítulo descrito en el sitio.
  • Aceptar las condiciones de uso e información legal del sitio. Hacer click aquí.
  • Cubrir la cuota de recuperación que es de 25 pesos mexicanos. Al momento de inscribirse se le indicará la cuenta bancaria en la que deberá de hacer el depósito.

¡Inscripciones abiertas! ...... Haga Click aquí.

¿Dudas?: vj@masapuntes.com.mx

 

Disponibilidad del material:

El material estará disponible desde el día: 25 de Febrero de 2005.

T E M A R I O .

PROGRAMACIÓN E INGENIERÍA DE SOFTWARE

A. Algorítmica

I. Representación y manipulación de datos

1. Taxonomía de las estructuras de datos

  • Apuntadores (R, E, RP)
  • Vectores, matrices, cubos, hipercubos (R, E, RP)
  • Listas: simples, ligadas, doblemente ligadas, colas, pilas (stacks), colas de prioridades (R, E, RP)
  • Árboles: binarios, n-arios (R, E, RP)
  • Montículos (heaps), balanceados, árboles-AVL (R)
  • Gráficas: no dirigidas, dirigidas, multigráficas, pesadas (R)

Sugerencias bibliográficas: [CORL90], [KNUD73], [KNUD73a], [MAGM90], [SEDR95], [WEIM95], [WIRN87]

II. Archivos

1. Archivos de almacenamiento

  • Dispositivos de almacenamiento (R)
  • Parámetros de almacenamiento: número de cilindros, pistas, tiempo de acceso, posicionamiento, densidad de grabación (R, E)
  • Formas de almacenaje: modo texto y modo binario (R, E)

Sugerencias bibliográficas: [CORL90], [MAGM90], [SEDR95]

2. Accesos

  • Acceso secuencial (R, E, RP)
  • Acceso directo y cálculo de posición (R, E, RP)
  • Acceso por índices: índice secuencial ordenado (R, E)
  • Acceso por índices: tablas de dispersión (R, E)
  • Acceso por índices: árboles B y B+ (R, E)

Sugerencias bibliográficas: [CORL90], [MAGM90], [SEDR95]

III. Fundamentos de algorítmica

1. Interpretación de algoritmos

  • Resultado de algoritmos que involucren ejecución secuencial (asignación, condición e iteración) (R, E)
  • Resultado de algoritmos que involucren ejecución recursiva (R, E)

Sugerencias bibliográficas: [CORL90], [KNUD73], [MAGM90], [SEDR95], [WEIM95]

2. Aplicación y reconocimiento de algoritmos de búsqueda y ordenamiento interno

  • Burbuja, de inserción y selección: rangos de n para los cuales son recomendados, estructuras que requieren del lenguaje de implementación, con qué tipos de llaves son convenientes (R, E, RP)
  • Rápido (quicksort), mezcla (mergesort), ordenamiento de Shell (shellsort), montículo (heapsort): rangos de n para los cuales son recomendados, estructuras que requieren del lenguaje de implementación, con qué tipos de llaves son convenientes (R, E)
  • Búsqueda: secuencial y binaria (R, E, RP)

Sugerencias bibliográficas: [CORL90], [KNUD73a], [MAGM90], [SEDR95], [WEIM95], [WIRN87]

3. Aplicación y reconocimiento de algoritmos de ordenamiento externo

  • Polifase (R)
  • Intercalación de archivos (R, E, RP)
  • Cascada (R)
  • Mergesort (R)

Sugerencias bibliográficas: [CORL90], [KNUD73a], [MAGM90], [SEDR95], [WEIM95], [WIRN87]

4. Análisis de algoritmos

  • "Ordenar" las distintas complejidades en algoritmos y las relaciones que existen entre distintas clases de complejidad (R)
  • Dadas las funciones de complejidad, calcular el tiempo y espacio requeridos para problemas concretos que utilicen estructuras de datos con representaciones distintas (R, E, RP)
  • Problemas tratables e intratables: P, NP y NP-completos (R)

Sugerencias bibliográficas: [CORL90], [HARD92], [MAGM90], [SEDR95], [WEIM95]

B. Paradigmas de programación y lenguajes

I. Fundamentos de los lenguajes de programación

1. Elementos de modularización

  • Subprogramas: diferencia entre procedimientos (subprogramas), funciones y macros (R, E, RP)
  • Unidades, clases, bibliotecas, paquetes, módulos (R, E, RP)

Sugerencias bibliográficas: [GHEJ98], [PRAZ97], [SETR92]

2. Mecanismos de modularización y su rango de aplicación

  • Vinculación estática y dinámica (R, E)
  • Paso de parámetros: momentos de evaluación de los parámetros, tipos de parámetros, de entrada (input, por valor), de salida (output, por referencia) (R, E, RP)
  • Valores que regresan las funciones: simples o estructurados, ubicación en el ambiente de ejecución (R, E, RP)
  • Acceso y ocultamiento de la información: datos locales, globales, privados, públicos, distintos niveles de localidad, estructura de bloques, anidamiento lexicográfico, anidamiento dinámico (de ejecución), áreas comunes y registros con campos variantes (R, E, RP)
  • Programación por eventos o interrupciones: diferencias entre interrupciones y excepciones, facilidades para atrapar interrupciones o excepciones (R)
  • Coordinación de procesos concurrentes y paralelos: secciones de exclusión mutua, semáforos, mensajes (R)

Sugerencias bibliográficas: [GHEJ98], [PRAZ97], [SETR92]

3. Paradigmas de programación

  • Programación estructurada (C) (R, E, RP)
  • Programación orientada a objetos (C++ y Java) (R, E, RP)
  • Programación funcional (Lisp) (R)
  • Programación lógica (Prolog) (R)
  • Conceptos de programación visual (R)

Sugerencias bibliográficas: [ARNK97], [BRAI90], [BURH90], [KERR91], [PRAZ97], [SETR92], [STRB93], [TOUD90], [WINB89]

C. Sistemas e industria del software

I. Ciclo de vida de sistemas

1. Fases del desarrollo de software

  • Análisis preliminar (enunciado general del problema, propósito del sistema, requerimientos, principales entradas y salidas, diagrama de bloques del sistema, estimación de costos y beneficios y plan preliminar de desarrollo) (R, E)
  • Análisis detallado (técnicas de recolección de información, determinación de los requerimientos detallados, formalización de los requerimientos, especificación de alcances y limitaciones del sistema) (R, E)
  • Diseño preliminar (definición de restricciones, diseño de la arquitectura del sistema, definición de interfaces entre módulos) (R, E)
  • Diseño detallado (descomposición de los módulos en componentes elementales, especificación de los componentes elementales, diseño detallado de entradas y salidas, diseño detallado de la base de datos) (R, E)
  • Construcción (programación estructurada u orientada a objetos, pruebas de componentes) (R, E)
  • Pruebas (elaboración del plan de pruebas, preparación de casos, establecimiento de criterios de revisión, elaboración de las pruebas, evaluación de resultados) (R, E)
  • Instalación (manual de usuario, ayudas interactivas, capacitación, corridas de prueba) (R, E)
  • Mantenimiento (correctivo, adaptativo, perfectivo, pruebas de regresión, técnicas de mantenimiento) (R, E)

Sugerencias bibliográficas: [PRER92], [PRER92a], [SOMI96]

2. Ciclos de vida de desarrollo de sistemas

  • En cascada (R, E)
  • Espiral (R, E)

Sugerencias bibliográficas: [PRER92], [PRER92a], [SOMI96]

II. Metodologías para el desarrollo de sistemas

1. Enfoque funcional (Yourdon)

  • Análisis estructurado (diagrama de flujo de datos, diccionario de datos, miniespecificaciones, diagramas de transición de estado) (R, E)
  • Diseño estructurado (diagramas de estructura, acoplamiento, cohesión, análisis de transformaciones, análisis de transacciones) (R, E)

Sugerencias bibliográficas: [PRER92], [PRER92a], [SOMI96], [YOUE93]

2. Enfoque de datos

  • Modelo entidad-relación (R, E)
  • Jackson System Development (R, E)
  • Metodología Warnier-Orr (R, E)

Sugerencias bibliográficas: [PRER92], [PRER92a], [SOMI96]

3. Enfoque orientado a objetos

  • Conceptos generales (características y conceptos del modelo de objetos, clases y objetos, relaciones entre objetos, relaciones entre clases) (R, E)
  • Análisis orientado a objetos (el modelo de objetos, el modelo dinámico, el modelo funcional) (R, E)
  • Diseño orientado a objetos (definición de la arquitectura del sistema, diseño del componente del dominio: de la interfase humana, del problema, de la administración de tareas y de la administración de datos, refinamiento de clases y objetos) (R, E)

Sugerencias bibliográficas: [BOOG96], [CODY90], [CODY90a], [FORJ91], [JACC96], [MARO94], [MARO97], [MARO97a], [MARR95], [RUMB96]

4. Herramientas CASE

  • Tipos (uppercase, lowercase) (R)
  • Componentes (R)

Sugerencias bibliográficas: [GANC90], [MCCC89]

III. Administración del desarrollo y la calidad del sistema

1. Administración de proyectos

  • Estimación de tiempo y costo de cada actividad (R, E)
  • Planificación temporal de proyectos (gráficas de GANTT y ruta crítica) (R, E)

Sugerencias bibliográficas: [COHD96], [MCCC89]

2. Aseguramiento de la calidad

  • Concepto de calidad (R)
  • Estándares (R, E)
  • Especificaciones (R, E)
  • Factores de calidad (corrección, confiabilidad, eficiencia, facilidad de uso, de prueba y de mantenimiento, adaptabilidad y flexibilidad, portabilidad, reuso, completud, facilidad de auditoría) (R, E)
  • Métricas de calidad (diferencias entre el sistema y las especificaciones y estándares) (R, E)
  • Revisiones técnicas (R, E)

Sugerencias bibliográficas: [SANC94], [YOUE92]

IV. Industria del software

1. Proceso de desarrollo

  • Pruebas betas (R, E)
  • Control de versiones (R, E)
  • Soporte técnico (R, E)

Sugerencias bibliográficas: [COHD96], [CONS95], [ELLE98]

BIBLIOGRAFÍA SUGERIDA

Haga click aquí para accesar a la bibliografía.

Es importante que anote el código de referencia anotado en cada subtema. Ejemplo: [BEEG95]

* Para toda la bibliografía se debe consultar la edición más reciente y la legislación vigente.