You are on page 1of 22

ESTRUCTURA DE DATOS

Facultad de Ingeniera
Universidad Nacional de Jujuy
Analista Programador Universitario
UNIDAD I: INTRODUCCIN
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
QU ES EL SOFTWARE?
Es el componente lgico de los sistemas de
computacin que facilita a las personas el uso de los
recursos hardware de una computadora.
El software comprende:
instrucciones (secuencia de operaciones)
datos (representacin de objetos del mundo real)
documentacin (manuales de usuario, instalacin,
documentos de diseo, etc.)
Cmo se construye el software?
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
INGENIERA DE SOFTWARE
La Ingeniera de Software es una disciplina que integra
procesos, mtodos y herramientas para el desarrollo de
software de alta calidad.
El desarrollo de software se realiza siguiendo diferentes
modelos de proceso (ciclos de vida). Estos modelos
comprenden una serie de fases genricas que guan el
desarrollo.
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
MODELOS DE PROCESO. FASES (1)
Fases Genricas de Desarrollo
Comunicacin: comunicacin y colaboracin con
el cliente para la determinacin de requisitos.
Planeacin: planificacin de tareas y recursos
necesarios, productos intermedios y estudio de
riesgos.
Modelado: se formulan modelos (del sistema), se
depuran requisitos y se disean soluciones.
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
MODELOS DE PROCESO. FASES (2)
Fases Genricas de Desarrollo
Construccin: generacin de cdigo y realizacin
de pruebas de software.
Despliegue: el software (en versiones parciales o
producto terminado) se entrega al usuario para su
evaluacin.
Cascada
Evolutivo
Incremental
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
DISEO DE SOFTWARE
En el diseo de software se utilizan tcnicas que
ayudan a comprender el problema a resolver. Estas
tcnicas reducen la complejidad estudiando problemas
ms pequeos y evaluando slo los aspectos
importantes.
Durante el diseo se aplican:
la descomposicin de problemas,
el refinamiento sucesivo y
la abstraccin.
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
DESCOMPOSICIN Y REFINAMIENTO
La descomposicin de problemas permite dividir un
problema complejo en pequeos problemas de solucin
ms simple.
Por cada nivel de descomposicin, el refinamiento
sucesivo permite especificar con mayor detalle los
pasos para solucin de cada subproblema identificado.
En el nivel ms bajo, la soluciones se especifican
mediante las instrucciones del lenguaje de
programacin adecuado.
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
ABSTRACCIN
El concepto de abstraccin consiste en enfocarse slo
en los aspectos relevantes del problema, situacin u
objeto que se analiza.
En el desarrollo de software, pueden distinguirse 2 tipos
de abstraccin:
abstraccin de procesos
abstraccin de datos
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
ABSTRACCIN DE PROCESOS
Un programa puede organizarse en unidades o mdulos
que realizan tareas especficas.
Cada mdulo puede tratarse como una caja negra que
puede usarse conociendo nicamente:
propsito del mdulo (qu hace),
datos de entrada (parmetros de entrada del
mdulo) y
resultados (salidas o datos generados por el
mdulo).
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
ABSTRACCIN DE DATOS (1)
La abstraccin de datos se refiere a la independencia
que existe entre la representacin de un concepto
(dato) y su implementacin en la computadora
(organizacin interna).
Por ejemplo, los datos enteros, reales, caracteres o
lgicos, habitualmente utilizados por los programadores,
no son ms que secuencias binarias para la mquina.
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
ABSTRACCIN DE DATOS (2)
Un tipo de dato hace referencia a un conjunto de
valores.
Un tipo de dato abstracto (TDA) comprende tanto el
conjunto de valores como las operaciones que pueden
aplicarse a ese conjunto.
Una estructura de datos se refiere a la implementacin
fsica de un tipo de dato abstracto.
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
ABSTRACCIN DE DATOS (3)
Tipos de datos estndar
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
TDA (1)
Los TDA se caracterizan por el conjunto de valores que
representan y las operaciones asociadas a ese
conjunto.
TDA = datos + operaciones (procedimiento y funciones)
TDA
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
TDA (2)
Al crear un TDA se identifican 2 etapas:
Especificacin del TDA (indicacin de valores y
operaciones)
Implementacin del TDA (seleccin de las
estructuras de datos y algoritmos)
ESPECIFICACIN
IMPLEMENTACIN
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
ESPECIFICACIN DE TDA (1)
La especificacin de un TDA consiste en describir el
conjunto de valores que contemplar el tipo y las
operaciones que podrn realizarse sobre estos valores.
La especificacin de TDA puede realizarse de 2 formas:
Especificacin informal del TDA (descripcin en
lenguaje natural del TDA)
Especificacin formal del TDA (descripcin en
lenguaje formal (matemtico) del TDA)
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
ESPECIFICACIN DE TDA (2)
Especificacin informal del TDA racional.
TDA racional (dato numrico compuesto por 2
valores enteros, numerador y denominador
(denominador nunca puede ser cero))
Operaciones:
Crear(racional): devuelve un racional.
Sumar(racional1, racional2): devuelve un
racional que es la suma de los dados.
Multiplicar(racional1, racional2): devuelve un
racional que es producto de los dados.
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
IMPLEMENTACIN DE TDA (1)
Seleccin de las estructuras de datos que implementen
el TDA, en este caso mediante registros.
tracional=REGISTRO
numerador: ENTERO
denominador: ENTERO
FIN_REGISTRO
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
IMPLEMENTACIN DE TDA (2)
Seleccin de los algoritmos para las operaciones.
PROCEDIMIENTO Sumar(E r1:tracional,E r2:tracional,
E/S r3:tracional)
INICIO
r3.numerador r1.numerador * r2.denominador +
r2.numerador * r1.denominador
r3.denominador r1.denominador * r2.denominador
FIN
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
IMPLEMENTACIN DE TDA (3)
Seleccin de las estructuras de datos que implementen
el TDA, en este caso mediante arreglos.
tracional=ARREGLO[1..2]de ENTERO
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
IMPLEMENTACIN DE TDA (4)
Seleccin de los algoritmos para las operaciones.
PROCEDIMIENTO Sumar(E r1:tracional,E r2:tracional,
E/S r3:tracional)
INICIO
r3[1] r1[1] * r2[2] + r2[1] * r1[2]
r3[2] r1[2] * r2[2]
FIN
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
VENTAJAS DE TDA
El uso de TDA presenta las siguientes ventajas:
Permite representar entidades del mundo real.
Facilita la comprobacin de tipos.
En lenguajes tipados, mejora el tiempo de
compilacin.
Independiza la especificacin del TDA de su
implementacin (estructuras de datos), lo que facilita
futuras modificaciones
Favorece la reusabilidad.
ESTRUCTURA DE DATOS
ANALISTA PROGRAMADOR UNIVERSITARIO
BIBLIOGRAFA
Pressman, Roger S. Ingeniera de Software: Un
enfoque prctico. 6
ta
Edicin. McGraw Hill. 2005.
Joyanes Aguilar et al. Estructuras de Datos en C++. Mc
Graw Hill. 2007.
De Giusti, Armando et al. Algoritmos, datos y
programas, conceptos bsicos. Editorial Exacta. 1998.
Joyanes Aguilar, Luis. Fundamentos de Programacin.
Mc Graw Hill. 1996.

You might also like