Matriz de Especificaciones:

PROGRAMACIÓN E INGENIERÍA DE SOFTWARE

A. Algorítmica

I. Representación y manipulación de datos

  • 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, E)
  • Gráficas: no dirigidas, dirigidas, multigráficas, pesadas (R, E)

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

II. Archivos

  • 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, RP)
  • Formas de almacenaje: modo texto y modo binario (R, E)

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

  • 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

  • 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)
  • Resultado de algoritmos que involucren ejecución concurrente (R, E)

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

  • 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, RP)
  • Búsqueda: secuencial y binaria (R, E, RP)
  • Búsqueda por interpolación (R, E, RP)

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

  • Aplicación y reconocimiento de algoritmos de ordenamiento externo

 

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

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

  • 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

  • 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]

  • 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 (E)
  • Coordinación de procesos concurrentes y paralelos: secciones de exclusión mutua, semáforos, mensajes (E)

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

  • 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

  • Las 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]

  • 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

  • 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]

  • 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]

  • 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]

  • Herramientas CASE

 

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

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

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

  • 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]

  • 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

  • Proceso de desarrollo

 

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

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

 

Más información:

Matriz de Especificaciones: - Matriz de Especificaciones: - Ceneval de Informatica-Software Perfil-C Matematicas