Anda di halaman 1dari 355

Temario Oposicin Profesor Secundaria

Informtica
(BOE 13 FEB 1.996)

Considerando los Reyes, de gloriosa memoria, cunto era provechoso e honroso


que a estos sus Reinos se truxiesen libros de otras partes, para que con ellos se
ficiesen los hombres letrados, quisieron e ordenaron: que de los libros non se
pagase alcabala, y porque de pocos das a esta parte, algunos mercaderes
nuestros, naturales y extranjeros, han trahido y cada da trahen libros mucho
buenos, lo cual, por este que redunda en provecho universal de todos, e
ennoblecimiento de nuestros Reinos; por ende, ordenamos e mandamos que,
allende de la dicha franquiza, de aqu en adelante, de todos los libros que se
truxeren a estos nuestros Reinos, as por mar como por tierra, non se pida, nin se
pague, nin lleve almoxarifazgo, nin diezmo, nin portazgo, nin otros derechos algunos
por los nuestros Almoxarifes, nin los Desmeros, nin Portazgueros, nin otras
personas algunas, as como las cibdades e villas e lugares de nuestra Corona Real,
como de Seoros e rdenes e behenias; ms que de todos los dichos derechos o
almoxarifazgos sean libres e francos los dichos libros.

Orden de los Reyes Catlicos

1
INDICE
BLOQUE 1. HARDWARE, ARQUITECTURA E INFORMACIN....................................................................5
Tema 01. Representacin y Comunicacin de la Informacin.
Tema 02. Elementos funcionales de un ordenador digital.
Tema 03. Componentes, estructura y funcionamiento de la Unidad Central de Proceso.
Tema 04. Memoria interna. Tipos. Direccionamiento. Caractersticas y funciones.
Tema 05. Microprocesadores. Estructura. Tipos. Comunicacin con el exterior.
Tema 06. Sistemas de almacenamiento externo. Tipos. Caractersticas y funcionamiento.
Tema 07. Dispositivos perifricos de entrada-salida. Caractersticas y funcionamiento.
Tema 08. Hardware comercial de un ordenador. Placa base. Tarjetas controladoras de dispositivo y de E/S.
Tema 09. Lgica de circuitos. Circuitos combinacionales y secuenciales.
Tema 10. Representacin interna de los datos.
Tema 11. Organizacin lgica de los datos. Estructuras estticas.
Tema 12. Organizacin lgica de los datos. Estructuras dinmicas.
Tema 13. Ficheros. Tipos. Caractersticas. Organizaciones.
Tema 14. Utilizacin de ficheros segn su organizacin.
BLOQUE 2. SISTEMAS OPERATIVOS Y SISTEMAS...................................................................................67
Tema 15. Sistemas operativos. Componentes. Estructura. Funciones. Tipos.
Tema 16. Sistemas operativos: Gestin de procesos.
Tema 17. Sistemas operativos: Gestin de memoria.
Tema 18. Sistemas operativos: Gestin de E/S.
Tema 19. Sistemas operativos: Gestin de archivos y dispositivos.
Tema 20. Explotacin y administracin de un SO monousuario y multiusuario.
Tema 21. Sistemas informticos. Estructura fsica y funcional.
Tema 22. Planificacin y explotacin de sistemas informticos. Configuracin. Condiciones de instalacin.
Medidas de seguridad. Procedimientos de uso.
BLOQUE 3. PROGRAMACIN Y BBDD.....................................................................................................108
Tema 23. Diseo de algoritmos. Tcnicas descriptivas.
Tema 24. Lenguajes de programacin. Tipos. Caractersticas.
Tema 25. Programacin estructurada. Estructuras bsicas. Funciones y procedimientos.
Tema 26. Programacin modular. Diseo de funciones. Recursividad. Libreras.
Tema 27. Programacin orientada a objetos. Objetos. Clases. Herencia. Polimorfismos. Lenguajes
Tema 28. Programacin en tiempo real. Interrupciones. Sincronizacin entre tareas. Lenguajes
Tema 29. Utilidades para el desarrollo y pruebas de programas. Compiladores. Intrpretes. Depuradores.
Tema 30. Prueba y documentacin de programas. Tcnicas
Tema 31. Lenguaje C: Caractersticas generales. Elementos. Estructura de un programa. Funciones de
librera y usuario. Entorno de compilacin. Herramientas.
Tema 32. Lenguaje C: Manipulacin de estructuras. E/S. Gestin de punteros. Punteros a funciones
Tema 33. Programacin en lenguaje ensamblador. Instrucciones bsicas. Formatos. Direccionamientos.
Tema 34. SGBD. Funciones. Componentes. Arquitectura de referencia y operacionales. Tipos de sistemas
Tema 35. La definicin de datos. Niveles de descripcin. Lenguajes. Diccionario de datos.
Tema 36. La manipulacin de datos. Operaciones. Lenguajes. Optimizacin de consultas.

2
Tema 37. Modelo de datos jerrquico y en red. Estructuras. Operaciones.
Tema 38. Modelo de datos relacional. Estructuras. Operaciones. lgebra relacional.
Tema 39. Lenguajes de gestin de datos en BBDD relacionales. Tipos. Caractersticas. SQL
Tema 40. Diseo de BBDD relacionales.
Tema 41. Utilidades de los SGBD para el desarrollo de aplicaciones. Tipos. Caractersticas.
Tema 42. Sistemas de BBDD distribuidos.
Tema 43. Administracin de sistemas de BBDD.
Tema 44. Tcnicas y procedimientos para la seguridad de los datos.
BLOQUE 4. SISTEMAS DE INFORMACIN, APLICACIONES E INGENIERA DEL SW..........................199
Tema 45. Sistemas de informacin. Tipos. Caractersticas. Sistemas de informacin en la empresa.
Tema 46. Aplicaciones de propsito general y gestin empresarial. Tipos. Funciones. Caractersticas
Tema 47. Instalacin y explotacin de aplicaciones informticas. Comparticin de datos.
Tema 48. Ingeniera sw. Ciclo de desarrollo sw. Tipos de ciclos de desarrollo. Metodologas. Caractersticas
Tema 49. Anlisis de sistemas: Modelizacin de tratamientos. Modelo de flujo de datos y control. Tcnicas
descriptivas. Documentacin.
Tema 50. Anlisis de sistemas: Modelizacin conceptual de datos. Tcnicas descriptivas. Documentacin.
Tema 51. Anlisis de sistemas: Especificacin funcional del sistema. Requisitos funcionales. Especificacin
de soluciones tcnicas. Anlisis de viabilidad tcnica y econmica
Tema 52. Diseo lgico de funciones. Definicin. Descomposicin. Tcnicas descriptivas. Documentacin
Tema 53. Diseo lgico de datos. Paso del modelo conceptual a lgicos. Anlisis relacional. Documentacin
Tema 54. Diseo de interfaces de usuario. Criterios de diseo. Descripcin de interfaces. Documentacin.
Herramientas para la construccin de interfaces
Tema 55. Diseo fsico de datos y funciones. Criterios de diseo. Documentacin.
Tema 56. Anlisis y diseo orientado a objetos.
Tema 57. Calidad del software. Factores y mtricas. Estrategias de prueba.
Tema 58. Ayudas automatizadas para desarrollo software (CASE). Tipos. Estructura. Prestaciones
Tema 59. Gestin de proyectos informticos. Estimacin de recursos. Planificacin. Seguimiento.
Tema 60. Sistemas basados en conocimiento. Representacin. Componentes y arquitectura
BLOQUE 5. REDES......................................................................................................................................270
Tema 61. Redes y servicios de comunicaciones
Tema 62. Arquitecturas de sistemas de comunicaciones. Arquitecturas basadas en niveles. Estndares
Tema 63. Nivel fsico. Tipos y medios de transmisin. Adaptacin al medio. Limitaciones. Estndares
Tema 64. Funciones y servicios del nivel de enlace. Tcnicas. Protocolos
Tema 65. Funciones y servicios del nivel de red y del nivel de transporte. Tcnicas. Protocolos
Tema 66. Funciones y servicios en niveles de sesin, presentacin y aplicacin. Protocolos. Estndares
Tema 67. Redes de rea local. Componentes. Topologas. Estndares. Protocolos
Tema 68. Software de sistemas en red. Componentes. Funciones. Estructura
Tema 69. Integracin de sistemas. Medios de interconexin. Estndares. Protocolos de acceso a WAN
Tema 70. Diseo de sistemas LAN. Parmetros de diseo. Instalacin y configuracin de sistemas en LAN
Tema 71. Explotacin y administracin de sistemas en LAN. Facilidades de gestin
Tema 72. Seguridad en red. Servicios de seguridad. Tcnicas y sistemas de proteccin estandar
Tema 73. Evaluacin y mejora de prestaciones en sistemas en red. Tcnicas y procedimientos de medida
Tema 74. Sistemas multimedia

3
BLOQUE 1. HARDWARE, ARQUITECTURA E INFORMACIN.
TEMA 01. Representacin y Comunicacin de la Informacin
TEMA 02. Elementos funcionales de un ordenador digital. Arquitectura.
TEMA 03. Componentes, estructura y funcionamiento de la Unidad Central de Proceso.
TEMA 04. Memoria interna. Tipos. Direccionamiento. Caractersticas y funciones.
TEMA 05. Microprocesadores. Estructura. Tipos. Comunicacin con el exterior.
TEMA 06. Sistemas de almacenamiento externo. Tipos. Caractersticas y funcionamiento.
TEMA 07. Dispositivos perifricos de entrada-salida. Caractersticas y funcionamiento.
TEMA 08. Componentes hardware comerciales de un ordenador. Placa base. Tarjetas controladoras
de dispositivo y de entrada salida.
TEMA 09. Lgica de circuitos. Circuitos combinacionales y secuenciales.
TEMA 10. Representacin interna de los datos.
TEMA 11. Organizacin lgica de los datos. Estructuras estticas.
TEMA 12. Organizacin lgica de los datos. Estructuras dinmicas.
TEMA 13. Ficheros. Tipos. Caractersticas. Organizaciones.
TEMA 14. Utilizacin de ficheros segn su organizacin.

BIBLIOGRAFIA
Programacin estructurada y fundamentos de programacin. Snchez Chamorro y otros. McGraw Hill.
Metodologa de la programacin. Alcalde E y Garca. McGraw Hill.
Apuntes para Algoritmos y estructuras de datos I y II. Varios profesores UPV

Recursos web:
http://www.etsit.upm.es/
http://informatica.uv.es/iiguia/TSTD/
http://es.wikipedia.org/wiki/Portada
http://www.mitecnologico.com
http://ditec.um.es

4
TEMA 1. REPRESENTACIN Y COMUNICACIN DE LA INFORMACIN

1. INTRODUCCIN
2. REPRESENTACIN Y COMUNICACIN DE LA INFORMACIN
2.1. Fundamentos Matemticos
2.2. Representacin de la informacin
2.2.1. Informacin numrica
2.2.2. Informacin alfanumrica
2.3. Comunicacin de la informacin
2.3.1. Encriptacin
2.3.2. Compresin
2.3.3. Redundancia
2.3.4. Codificacin de Canal

5
1. INTRODUCCIN
La RAE define informacin como la comunicacin o adquisicin de conocimientos que permiten ampliar o
precisar los que se poseen sobre cierta materia. Del mismo modo se define informtica como el conjunto de
conocimientos que hacen posible el tratamiento automtico de la informacin por medio de ordenadores.
2. REPRESENTACIN Y COMUNICACIN DE LA INFORMACIN
Para representar los smbolos se precisan elementos fsicos que los identifiquen. Los smbolos, significan
por oposicin, por distincin. Por ejemplo, si el color rojo representa una A y el color verde una B, al ver
el color rojo, se identificar con el smbolo A por oponerse, ser diferente al color verde y todos los dems.
Para representar la informacin es necesario disponer de algn conjunto bsico de smbolos o alfabeto. La
combinacin de smbolos generar entidades de orden superior como por ejemplo palabras, que de nuevo,
combinadas permitirn una representacin y comunicacin de la informacin de forma fluida.
En el mundo de las tecnologas de informacin y comunicaciones (TIC), lo habitual es representar la
informacin con una base binaria, la que maneja dos smbolos, el 0 y el 1. stos suelen representarse con
seales electromagnticas, tales como la tensin elctrica o la luz. Una seal es una magnitud (algo que
puede medirse) fsica que vara con el tiempo.
Esta representacin es muy adecuada porque permite una implementacin e integracin correcta con la
tecnologa del silicio y un tratamiento matemtico potente al digitalizar la informacin. La digitalizacin
facilita la comunicacin al poder disponerse de equipos electrnicos que realizan las tareas propias de la
comunicacin de forma sencilla y eficiente.
2.1. Fundamentos Matemticos
Un sistema de numeracin es un conjunto de normas para representar y operar nmeros. El habitual es el
sistema de numeracin decimal. En computacin, es habitual trabajar en sistemas de numeracin binario o
hexadecimal. Por ejemplo, para expresar una direccin MAC o una direccin IPv6 se usa el sistema
hexadecimal. Para representar un valor numrico, se pueden usar diferentes bases de numeracin. Una
base o raz de numeracin es el conjunto de dgitos disponibles en un sistema numrico:
- Base 10 o Sistema Decimal: {0,1,,9} - Base 2 o Sistema Binario: {0,1}
- Base 8 o Sistema Octal: {0,1,7} - Base 16 o Sistema Hexadecimal: {0,, 9, A, B, C, D, E, F}
Estos sistemas son posicionales, es decir el valor de un smbolo depende de la base y de la posicin en la
que est, de forma que cualquier nmero tiene su expresin en la base B en forma de polinomio. Es el
mtodo polinmico. Se evala el polinomio segn la base destino. Los nmeros decimales se tratan como
los enteros, con la salvedad de los exponentes de la parte decimal, que son negativos. Ejemplo:
2 1 0.
El valor de 423 en base 10 = 423, porque son 4 centenas, dos decenas y tres unidades: 410 +210 +310 .
2 1
El valor numrico de 423 en base 8 sera 48 +28 +380=275.
De las bases de numeracin tiene una especial relevancia la base binaria, porque es la ms pequea que
se puede manejar (una base unitaria sera intratable a efectos prcticos). Sus dgitos se denominan BIT,
que deriva de la abreviacin de BInary digiT, o dgito binario.
Un BIT representa la menor cantidad de informacin que se puede tratar y equivale a la cantidad de
informacin que se recibe cuando se obtiene la respuesta a una pregunta absoluta. Por ejemplo si no se
sabe si est lloviendo, slo caben dos posibilidades, que llueva o no. Si se preguntase Est lloviendo? Y
alguien contestase, la informacin que aportara sera un bit.
Para convertir nmeros de una base a otra se separa parte entera y decimal. La parte entera se divide por
la base a la que convertir. El resto es el smbolo menos significativo. Con el cociente se va repitiendo el
proceso hasta que sea menor o igual que la base. El ltimo cociente ser el smbolo ms significativo y los
restos se toman en orden inverso de aparicin formando el nmero expresado en la nueva base. Para la
parte decimal se va multiplicando por la base, de forma que la parte entera es el dgito ms significativo. El
proceso se repite con la parte decimal que va quedando. Ejemplo: Convertir 25,625 de base 10 a base 2:
Para la conversin entre base binaria, octal y
hexadecimal, el mtodo es mucho ms sencillo. Si
se tiene un nmero expresado en base binaria y se
desea expresar en octal, se agrupan los bits en
grupos de tres comenzando desde la derecha. Cada
grupo de tres se traduce a un dgito octal de 0 a 7,
correspondiendo el 000 binario al 0 octal y el 111
binario al 7 octal.

6
Para convertir de binario a hexadecimal, el proceso es semejante, agrupando en cuatro bits. El 0000 binario
es el 0 hexadecimal y el 1111 es la F hexadecimal. Si se desea convertir de octal o hexadecimal a binario,
el proceso es el inverso. Cada dgito octal dar tres bits y cada dgito hexadecimal cuatro.
Ejemplo: El nmero 1011 en binario da dos grupos octales: 001 y 011. El primero es 1 y el segundo 3. As
1011 en binario es 13 en octal. En hexadecimal tendremos un nico grupo de cuatro bits, 1011 que es
equivalente al dgito hexadecimal B.
Sea el nmero hexadecimal A04. Para pasarlo a binario sera: A=1010; 0=0000 y 4=0100, luego A04 en
hexadecimal equivale a 101000000100 en binario.
A los grupos de 8 bits se les denomina Byte u octeto. A los grupos de 32 bits, palabras, por tanto 16 bits
sera media palabra y 32 bits una palabra doble. Menos usado es el trmino nibble para los 4 bits. Los
mltiplos de los bits se denominan como habitualmente en el sistema decimal, kilo, mega, tera, peta, hexa,
con la salvedad que las unidades ahora son potencias de base dos. As un Kilobit no seran 1000 bits, sino
10 20
2 bits, es decir 1.024 bits, un Megabit 2 1.048.576 bits, etc.
Aunque esta salvedad, es utilizada para la medida de unidades de informacin, en un contexto puro, como
por ejemplo la capacidad de memoria RAM. Sin embargo, en comunicaciones, cuando se habla de un
MBps, un Megabit por segundo, si se hace referencia a 1.000.000 de bits por segundo, ya que se refiere a
una cantidad decimal.
Las operaciones en los sistemas de numeracin binario, octal y hexadecimal se operan como en el sistema
decimal, con especial atencin a los acarreos. Ejemplo: En decimal 7+2=9. En octal 7+2=11, ocho y me
llevo una.
2.2. Representacin de la informacin
La informacin se compone de datos, antecedentes del conocimiento. Para procesar los datos, se necesita
correspondencia entre los smbolos y las seales que los representan. Ejecutar esta relacin se denomina
codificacin. La codificacin es una relacin biunvoca entre el alfabeto fuente y el destino. La funcin
inversa, a partir de las seales, obtener la informacin es decodificar.
La informacin en general, se representa segn su naturaleza. Esto da lugar a distintos tipos de codificacin
o formato. Segn su naturaleza se puede identificar distintos tipos de informacin. Por ejemplo:
Texto: Es un conjunto de smbolos que definen la expresin escrita humana. Se representa con smbolos o
caracteres alfanumricos. La agrupacin en bloque de estos caracteres se trata como un fichero de texto.
Un cdigo tpico de representacin alfanumrica es el cdigo ASCII, estndar estadounidense.
Imagen: Es informacin que representa el objeto de la visin humana. Se representan como datos, que
variarn en funcin de sus propiedades de calidad, resolucin, etc. Ejemplos de codificacin seran los
formatos jpg o gif.
Audio: Es informacin que sirve para representar sonidos. Formatos son cda, wma, mp3, etc.
Video: Informacin que representa imgenes en movimiento. La impresin de movimiento para el ojo
humano equivale a procesar un mnimo de 25 imgenes en un segundo. Formatos son avi o dvd.
Hecha esta exposicin, en general se puede decir que la informacin se trata como un conjunto de datos.
Los datos pueden clasificarse en numricos, alfabticos y alfanumricos. En las TIC se usan distintos
cdigos para codificarlos, segn su tipo.
2.2.1. Informacin numrica
Para que la representacin de nmeros sea adecuada al sistema informtico, se usan diferentes mtodos
segn el tipo de nmero. As, puede distinguirse entre la codificacin de nmeros enteros, decimales o
reales. Como idea general es ms eficiente representar los nmeros enteros codificados en binario natural
ms la codificacin del signo. Los decimales codificarlos distinguiendo parte entera y decimal y su posicin y
para los reales, la codificacin en coma flotante, con base decimal y un exponente entero.
Uno de los cdigos ms utilizados es BCD, Binary Code Decimal, usado para codificar nmeros decimales
en binario. Cada smbolo decimal utiliza cuatro bits binarios, del 0000 que sera el 0 decimal al 1001 que
sera el nueve. El resto de posibilidades hasta el 15, 1111, no se usan. As, la codificacin del nmero
decimal 235 sera 0010 0011 0101.Variantes de BCD son BCD Natural, (cada cifra corresponde a su cdigo
binario), Aiken (cada cifra es el complemento a 9, CA9, de su simtrica) y exceso A3, (que suma 3 a la cifra
en binario y tambin es CA) del simtrico). Para representar el signo de un nmero entero puede usarse un
bit, por ejemplo el ms significativo.

7
Dos representaciones muy tiles para operar son los complemento A1 y A2. El CA1 se obtiene cambiando
n
los unos por ceros y viceversa en la representacin binaria del nmero. Puede calcularse como 2 x-1. El
n
CA2 es 2 -x (igual al CA1+1). La utilidad del CA2 es la representacin de enteros negativos.
Para representar nmeros reales con decimales, ya sean muy grandes o pequeos, se suele usar la
representacin de coma flotante, que representa un real como un coeficiente M, la mantisa, multiplicada por
E
una base, B, en general 2 o 10, elevada a un exponente E. La expresin sera: R=MB . Es un sistema
similar a la notacin cientfica. En el ordenador el orden de los campos suele ser signo, exponente y mantisa
En los ordenadores de 32 bits se usa un bit para el signo, 8 para el exponente y 23 de mantisa. Con 64 bits
se usa 1 para el signo, 11 para exponente y 52 para mantisa. Como el primer bit de la mantisa siempre ser
1 se puede obviar usando bit implcito. El exponente se expresa en exceso 127 en 32 bits y 1023 en 64 bits.
Si el nmero a representar, en valor absoluto, es muy grande, puede darse desbordamiento (overflow).
2.2.2. Informacin alfanumrica
Los datos alfabticos representan los caracteres del alfabeto. Se engloban en la representacin
alfanumrica que representa adems nmeros y caracteres como signos de puntuacin, en general para ser
tratados como texto. En general, los cdigos usan 8 bits para realizar esta representacin. Dos de los
cdigos ms utilizados son ASCII, American Estndar Code for Information Interchange, y EBCDIC.
Existen tablas distintas de caracteres segn el idioma utilizado. Si se precisa usar varios idiomas pueden
usarse cdigos de dos bytes como UNICODE que permite representar 65536 smbolos distintos. El cdigo
ASCII extendido usa 8 bits, lo que permite representar 256 caracteres. Usa 7 bits repartidos en 3 de zona y
4 de posicin para representar la informacin y el octavo como bit de paridad. Posee variaciones segn los
alfabetos que se codifiquen. Un ejemplo de representacin seria V como 0101 0110.
El cdigo EBCDIC usa 8 bits, los 4 primeros se llaman de zona y los 4 segundos de posicin. Los dos
primeros bits pueden tener los valores 11 para maysculas y nmeros, 10 para minsculas, 01 para
caracteres especiales y 00 para informacin de control. Los dos siguientes: 00 de A a I, 01 de J a R, 10 S a
Z y 11 para nmeros.
2.3. Comunicacin de la informacin
La comunicacin es el intercambio de
informacin entre dos o ms entes. Se
distinguen tres partes como mnimo, emisor,
receptor y canal de transmisin.
El emisor es el ente que genera la
informacin a transmitir. La informacin se
codifica en binario, de forma adecuada
como se acaba de exponer. Si fuera
necesario, los datos pueden encriptarse,
comprimirse y aadir redundancia para
protegerlos frente a errores de transmisin.
Cuando se transmiten los datos, deben adaptarse al medio de transmisin, ya que no ser lo mismo
transmitir por radio, cable metlico o fibra ptica. La forma en que se codifica la informacin para adaptarla
al canal se denomina codificacin de canal.
En recepcin se darn los pasos inversos para recuperar la informacin. Se ha de decodificar la seal del
canal e interpretarla, analizar la redundancia e identificar posibles errores, descomprimirla y desencriptarla si
es necesario y por fin decodificarla. Si se producen errores deben corregirse o retransmitir la informacin.
Segn la naturaleza de la seal en analgico (valores continuos en el tiempo) o digital (valores discretos,
como el cdigo binario). Para la comunicacin digital son necesarios estos elementos:
2.3.1. Encriptacin
Para garantizar la confidencialidad de la informacin, esto es, que slo est accesible a los receptores
legtimos, se usa encriptacin o cifrado. Estas tcnicas consisten en reescribir la informacin de forma que
no sea fcilmente legible por alguien que no conoce la clave del cifrado.
2.3.2. Compresin
Con el objeto de agilizar la transmisin, y por tanto la comunicacin, se utiliza compresin, que es la tcnica
que permite reducir el tamao de los datos. Se distinguen dos tipos de compresin, lossless (sin prdida de
informacin) y lossly (con prdidas, no significativas).

8
La comprensin lossless comprende los compresores estadsticos, basados en la probabilidad de aparicin
de un mensaje y por tanto precisan memoria para conocer su historia y los compresores basados en
diccionarios, que se basan en la construccin de un diccionario con los mensajes enviados hasta la fecha.
Entre los compresores estadsticos estn los de tipo Huffman o Shannon-Fano, los aritmticos y los
predictivos. Entre los compresores basados en diccionario o sustitucionales estn los compresores RLE y
los Lempel-Ziv (LZ). Actualmente se utilizan compresores hbridos o de dos fases, que combinan ambos
mtodos para optimizar su labor.
La compresin lossly se usa en multimedia. Elimina informacin no significativa o imperceptible al ser
humano, por ejemplo, sonidos de frecuencias inaudibles. Tipos de comprensin lossly son la codificacin
diferencial (se codifica la diferencia con respecto a una referencia), la basada en transformadas (se codifica
el espectro), la cuantizacin vectorial (basada en la divisin en marcos y codificacin estadstica con
respecto a una referencia), la compresin fractal (similar a la vectorial) o la compresin de imgenes en
movimiento (interframe), basada en eliminacin de informacin con diferencias mnimas.
2.3.3. Redundancia
Aunque la compresin elimina redundancia en la informacin, se introduce otro tipo de redundancia, para la
transmisin. Esta redundancia se orienta a la deteccin y correccin de errores de transmisin. Lgicamente
se merma algo el ancho de banda, la capacidad del canal, pero se gana en efectividad, al reducir el nmero
de retransmisiones.
La tcnica ms simple de redundancia es la del bit de paridad, que aade un bit a la transmisin, un 1 si la
cantidad de unos en la trama es impar y cero si es par (paridad par). El bit de paridad indica si ha habido
error, pero no donde se localiza. Para detectar y corregir errores se pueden usar cdigos como los de tipo
Hamming, capaces de detectar errores mltiples y corregirlos usando pocos bits de paridad. Estos cdigos
son cada vez ms usados en las memorias.
Para detectar errores de transmisin tambin se usan cdigos de redundancia cclica (CRC) o polinomiales,
que aaden un resto o mdulo de cierto polinomio. Los cdigos Huffman emplean cdigos de longitud
variable. La codificacin de cada carcter depender de su frecuencia de utilizacin.
2.3.4. Codificacin de Canal
La codificacin de canal o de lnea es la generacin de las seales adaptadas al medio de transmisin. Para
la transmisin de seales digitales, adems la informacin debe cuantificarse
Las seales que representan la informacin en general poseen una naturaleza continua, analgica. Por
tanto, no se pueden representar todos los valores que se pueden dar, con un conjunto finito de smbolos.
Para evitar este inconveniente se cuantifican las seales, es decir, se asigna un nico valor a todos los que
pueda tomar la seal en cierto intervalo. En el caso tpico ese valor es el valor central del intervalo
considerado. Pueden establecerse otros criterios como usar longitudes distintas de intervalo.
El error que se asume con la diferencia entre el valor real y el valor cuantificado como mximo ser la mitad
de la anchura del intervalo. Por tanto es controlable. Estos errores se pueden reducir adecuadamente para
que no afecten al umbral de percepcin humano.
La cuantificacin ser el primer paso en el procesamiento de las seales. Una vez cuantificadas, se podrn
digitalizar, expresar en binario y realizar todo el proceso de comunicacin expuesto. El tratamiento digital de
la seal y su codificacin de canal incrementan sobremanera el rendimiento de la comunicacin.

9
TEMA 2. ELEMENTOS FUNCIONALES DE UN ORDENADOR DIGITAL. ARQUITECTURA.

1. INTRODUCCIN
2. ELEMENTOS FUNCIONALES DE UN ORDENADOR DIGITAL
2.1. Unidad Central de Proceso
2.2. Memoria Principal
2.3. Unidades de E/S
3. ARQUITECTURA
3.1. Unidad Central de Proceso
3.2. Memoria Principal
3.3. Unidades de E/S

10
1. INTRODUCCIN
El ordenador digital es un sistema que a partir de datos y rdenes, realiza un proceso obteniendo un
resultado. Todos los ordenadores tienen caractersticas comunes de funcionamiento que describe su
modelo funcional.
La arquitectura del sistema describe su organizacin en cuanto a componentes, sus relaciones y el entorno
y principios que guan su diseo y evolucin. La arquitectura fundamental de los computadores es la
publicada por Von Neumann a principios de la dcada de los aos 40.
2. ELEMENTOS FUNCIONALES DE UN ORDENADOR DIGITAL
Un ordenador digital tiene 3 partes fundamentales: La memoria, la unidad central de proceso y unidades de
entrada y salida, que se comunican mediante buses. Un bus es un conjunto de lneas elctricas paraleleas.
Un ciclo de bus es el tiempo en que se realiza una operacin bsica en un bus, como la transferencia de
datos entre dos unidades. La temporizacin puede ser de ciclo completo (el bus se usa todo el ciclo) o de
ciclo partido (se divide el uso del bus en periodos ms pequeos), ms complejo y eficiente.
En el ordenador se distinguen tres buses: el de direcciones, datos y control. El bus de direcciones contiene
la direccin de memoria en la que operar. El de datos, el dato con el que operar y el bus de control las
microinstrucciones que controlan los circuitos.
Se pueden distinguir ordenadores de programa fijo (Fixed Program Computer), de mquinas como por
ejemplo las calculadoras y ordenadores de programa almacenado (Stored Program Computer), en que una
memoria almacena un programa, por lo que la mquina es reprogramable por lo que al cambiar el programa
se evita tener que redisearla. Esta es la arquitectura Von Newmann.
La arquitectura Von Neumann define una mquina de
propsito general, provista de memoria que almacena
datos e instrucciones. Adems se propone un componente,
la UCP o Unidad Central de Proceso, compuesta a su vez
de dos elementos bien diferenciados, la UC, unidad de
control para la gestin de las instrucciones y una Unidad
Aritmtico Lgica para realizar las operaciones
matemticas o lgicas sobre los datos.
Por fin, se dota a la mquina de un interfaz hardware para la comunicacin con el ente humano, que servir
tambin para programarla. Son las unidades de entrada y salida.
2.1. Unidad Central de Proceso
La UCP es el elemento que coordina el funcionamiento del resto del ordenador. Ejecuta las instrucciones
almacenadas en memoria en lenguaje mquina. Para ello dispone de un conjunto de instrucciones, ISC
(Instruction Set Computer) que se almacenan en memoria y permiten gobernar la mquina.
Cada instruccin realiza una nica funcin elemental, con un nmero fijo de operandos que se representan
unvocamente. Adems poseen una codificacin de fcil interpretacin y son independientes entre s.
En lenguaje mquina, las instrucciones son muy bsicas. Por ejemplo, para enviar un archivo a un
dispositivo de salida, habra que leerlo, depositarlo en la direccin de memoria destinada a ese dispositivo,
escribirlo, etc. Es decir, una operacin que a nivel macroscpico puede ser sencilla, a nivel mquina puede
implicar varias instrucciones. Por eso, no se suele programar en lenguaje mquina, sino que se usan
lenguajes de alto nivel (Java, C, Pascal) y compiladores que lo traducen a lenguaje mquina.
Existen dos arquitecturas diferentes para el diseo del ISC: CISC y RISC. El primero, Complete ISC, se
basa en conjuntos ms o menos amplios con instrucciones algo ms complejas. Obtiene ms rendimiento
cuando la operacin a ejecutar se adapta muy bien a la definicin de la instruccin, pero lo pierden si no es
as. Un alto porcentaje de las operaciones son las mismas (leer, escribir, etc), por tanto, puede interesar
tener conjuntos de instrucciones reducidos, Reduced ISC, RISC, que agilizan el proceso. En general, se
tiende a tecnologas RISC, que suelen ser ms efectivas.
Hay varios tipos de instrucciones: aritmticas, lgicas, de entrada y salida, de transferencia de memoria
(leen o escriben en memoria) o de ruptura de secuencia (cambian el rden de las instrucciones). Las
instrucciones se ejecutan secuencialmente, en el orden en que marca el programa, de forma rutinaria.
Primero, se busca la siguiente instruccin a ejecutar, se decodifica, se leen los operandos, si los hay, se
opera y almacena el resultado. Existe un registro contador de programa, tal que, cuando la CPU ejecuta una
instruccin, leer en l la direccin de la siguiente instruccin a ejecutar, entrando de nuevo a repetir el
ciclo. Al volver a leerse la nueva instruccin a ejecutar, se actualiza el contador de programa.

11
La CPU se compone de dos subsistemas, la Unidad Aritmtico Lgica (UAL) y la unidad de control (UC). La
UAL realiza las operaciones sobre los datos que gestiona la UC. Est formada por operadores, circuitos
electrnicos capaces de hacer operaciones aritmticas y lgicas. Las operaciones pueden requerir uno o
ms operandos y realizar la operacin en paralelo sobre todos los bits o en serie.
Adems, la ALU incluye varios registros y biestables. Los registros almacenan datos temporales y destaca
el registro acumulador, para resultados parciales. Los biestables guardan una variable de estado. Algunos
ejemplos son el Z (con valor 1 si el resultado es 0), N (1 si el resultado es negativo), C (acarreo), etc.
La UC gestiona el funcionamiento del ordenador. Distribuye datos y rdenes a cada unidad. Puede
resumirse su funcionamiento en leer e interpretar las instrucciones, si la instruccin es una operacin, leer
los datos involucrados y los pasar a la ALU. El resultado final se guarda en memoria.
La UC tambin controla el flujo de datos entre la memoria y las unidades de E/S, organiza los tiempos de
acceso y ejecucin y enva o recibe seales de control de los perifricos. Cuenta adems con registros
encargados de almacenar datos durante la ejecucin de un programa, como son el registro contador de
programa, que almacena la direccin de la siguiente instruccin a ejecutar, el registro de instrucciones, que
guarda la instruccin en curso, el registro de estado que mantiene informacin sobre la actuacin de la ALU
y el registro de direcciones que guarda la direccin del dato a tratar en memoria.
2.2. Memoria Principal
Es la encargada de almacenar datos e instrucciones. Puede identificarse con la memoria RAM. Almacena la
informacin mientras existe alimentacin. Si la mquina se apaga pierde los datos. El bus de direccin
n
determina la capacidad de la memoria. Si el bus posee n bits, se podrn direccionar 2 palabras.
En el equipo pueden identificarse otras memorias, que no deben confundirse. Estas son la memoria ROM,
de slo lectura, que almacena el firmware (BIOS). La memoria cach es una memoria auxiliar, muy rpida
que funciona como ndice y agiliza las operaciones. Los discos duros y la memoria externa son memorias
conocidas como secundarias. Son permanentes.
La memoria principal es la que usan los programas en ejecucin. En general, ser de acceso aleatorio
permitiendo el acceso a cualquier direccin de forma directa. Los bits contenidos en una direccin de
memoria se denominan palabra. Para comunicarse con el procesador, la MP hace uso del bus de
direcciones, que contendr la direccin de la palabra a acceder. En el bus de datos, se situar el dato
accedido y en el bus de control se dispondr de los bits de arbitraje que indicarn las operaciones a realizar.
La secuencia de lectura o escritura en memoria es leer la direccin sobre la que se trabajar, activar la lnea
de control de lectura o escritura, segn corresponda y si es una lectura, transferir los datos al bus de datos y
si es una escritura transferir los datos del bus de datos a la memoria.
2.3. Unidades de E/S
Las unidades de E/S permiten la comunicacin con el exterior. Representan el interfaz de usuario. Debido a
lo variado de los dispositivos a manejar, cada uno lleva asociado un controlador, un firmware que
implementa el modo de comunicacin entre la UCP y el dispositivo. El sistema de E/S resuelve el problema
de la seleccin del perifrico, la sincronizacin con el procesador y la transferencia de datos.
La forma de seleccionar perifricos en los ordenadores que los conectan todos al mismo bus es mapearlos
en memoria. Esta organizacin dispone para el procesador un espacio nico de direccionamiento, la
memoria principal y la reservada a perifricos. La ventaja es no necesitar instrucciones especficas, a
cambio de perder direcciones de memoria y ser ms difcil mantener la proteccin de acceso.
Para realizar la transferencia de datos hay que sincronizar la UCP con el sistema de E/S. Hay dispositivos
siempre sincronizados. Para los que es necesario sincronizar, puede hacerse por sondeo, de forma que la
CPU consultando peridicamente la situacin de cada dispositivo hasta que est preparado para transmitir.
O sincronizar mediante interrupciones, situacin en la que el dispositivo enva una seal para indicar que
est dispuesto. La UCP interrumpe su proceso y atiende la interrupcin, ejecutando una rutina de servicio.
El sondeo es menos eficiente puesto que requiere tiempo de UCP y no tiene en cuenta prioridades. Por
contra, el sistema de interrupciones ahorra ciclos de CPU y tiene en cuenta prioridades.
3. ARQUITECTURA
La arquitectura de un sistema describe su organizacin en cuanto a componentes, sus relaciones y el
entorno y principios que guan su diseo y evolucin.
Para definir la arquitectura de un sistema conceptual, se usan dos tipos de modelos: funcionales y
estructurales. Los funcionales o de caja negra describen la funcin del sistema con relacin al entorno. Para
un sistema esttico, un modelo funcional puede ser una maqueta o un plano.

12
Para un sistema dinmico sera un diagrama que explicase la relacin entre entrada y salida. Los modelos
estructurales o de caja transparente describen el sistema detallando sus partes y sus relaciones.
Un modelo es una abstraccin del sistema. Para sistemas complejos, es habitual encontrar una jerarqua de
niveles de abstraccin. Los sistemas del nivel n-1 son componentes del nivel n. Subir del nivel n-1 al nivel
n es abstraer. Bajar del nivel n al n-1 es concretar (o implementar). Se pueden distinguir los siguientes
niveles de abstraccin en un PC:
En el nivel ms bajo, se situaran los dispositivos electrnicos
bsicos, resistencias, condensadores, transistores, puertas
lgicas, etc. Su combinacin dara lugar a otro nivel mayor de
complejidad, el de circuito lgico, es decir, circuitos
secuenciales y combinacionales.
Del mismo modo, su combinacin genera otro nivel ms
abstracto, el de micromquina, formado por mquinas
microprogramables, capaces de interpretar microinstrucciones.
El nivel de mquina convencional utilizara microprogramas, e
incluira mquinas programables binarias, capaces de
interpretar instrucciones. A estos dos niveles se encuentran los
microprocesadores y su programacin.
Podra decirse que ambos niveles forman el nivel firmware, que dara paso al de mquina operativa, donde
englobar las mquinas programables binarias extendidas, que adems de interpretar instrucciones, realizan
llamadas al sistema. Sera el nivel del Sistema Operativo.Por fin, en el nivel superior se encontrara el de
mquina simblica, que seran capaces de interpretar sentencias y rdenes en lenguajes simblicos
(programacin en C, Pascal, Java...).
Si se quiere abreviar, algo groseramente, puede dividirse la estructura englobando los dos niveles bajos en
hardware, los dos medios en firmware y los dos superiores en software.
La arquitectura de von Neumann expuesta, es una familia de arquitecturas de ordenadores, que utilizan el
mismo bus de datos para almacenar instrucciones y datos. Entonces, dada una palabra de la memoria,
cmo puede saberse si es un dato o una instruccin. Eso depender de un cdigo de instruccin y de la
operacin que est realizando la UC. La mayora de ordenadores se basan en la arquitectura von Neumann,
pero existen otras como por ejemplo la arquitectura Harvard, que utiliza un bus para las instrucciones y otro
para los datos, es decir, las instrucciones se almacenaban en lugar distinto a los datos.
El objetivo es tener una idea clara del modelo funcional y estructural de un ordenador a nivel de mquina
convencional. El modelo funcional describe la forma de representacin de la informacin (datos e
instrucciones) en binario, as como el conjunto de instrucciones y su modelo procesal.
Para simplificar el modelo
estructural de la mquina de
von Neumann, y facilitar su
comprensin, se usar una
mquina simplificada, como se
expone en el libro Arquitectura
de Ordenadores de la
bibliografa. El esquema sera el
mostrado en la figura.
Se observa la disposicin de los tres buses ya comentados, el bus D, de datos, que contiene la informacin
de o hacia la MP y la UC o UAL y entre UAL y perifricos. El bus A (direcciones) de la UC a la MP o
perifricos y el bus C (control) que agrupa seales de control, las micrordenes generadas por la UC. Los
perifricos se conectan por medio de controladores de E/S. Los nmeros sobre los buses indican el nmero
de lneas que agrupan. Por ejemplo el bus D posee 12 lneas.
El modelo funcional de la arquitectura von Neumann representa los
datos en binario con una palabra de 40 bits. El cdigo de operacin
es de 8 bits, por lo que el ISC, o conjunto de instrucciones de la
mquina es de 256 instrucciones.
12
El espacio de direccionamiento de la MP es 4096 palabras, es decir 2 , ya que 12 son los bits del campo de
direccin y por tanto del bus de direcciones. Para facilitar la presentacin, se utilizar un formato reducido
de instruccin de slo 12 bits, de los que los 3 ms significativos se reservan al cdigo de operacin, CO, y
los 9 restantes al campo de direccin, CD. Por tanto, ahora la mxima memoria direccionable es 512
9
posiciones (2 ) de 12 bits cada una. Se propone un conjunto de instrucciones compuesto por las siguientes:

13
La representacin de los caracteres podra
seguir el cdigo ISO Latin9 en los 8 bits
menos significativos de la palabra, de forma
que por ejemplo, a se representara como
0110 0001.
La programacin a nivel de mquina
convencional o simblica hara uso de este
modelo, para construir programas que
definen una mquina de nivel superior. A este
nivel se programa en lenguaje mquina.
Un ejemplo simple sera la suma de dos enteros. Para ello, se sumarn dos operandos, que se encontrarn
en las direcciones de memoria 300 y 301, respectivamente. Podran estar en otras direcciones, pero se han
elegido estas. El resultado debe almacenarse en la direccin 302 de la MP. El mapa de memoria sera el
representado en la figura y el programa podra ser:
[0] LD / 300 Carga en el AC lo que hay en la DIR. 300
[1] ADD / 301 Suma al AC lo que hay en la DIR. MP 301
[2] ST / 302 Guarda en la DIR 302 el valor del AC ([300]+[301])
[3] HALT Parar
En Binario y Octal sera:
[0] LD / 300 B 001 100101100 Q 1454
[1] ADD / 301 B 010 100101101 Q 2455
[2] ST / 302 B 000 100101110 Q 0456
HALT B 111 xxxxxxxxx Q 7xxx
Este ejemplo simple muestra cmo se trabaja a este nivel. Falta por tanto, explicar cmo se interpretan los
datos en la MP segn esta arquitectura. Supngase en MP el contenido de la columna izquierda. La
interpretacin de la memoria depende del tratamiento que se realice de los datos. As, si la UC ejecuta lo
contenido en la direccin [5], como los 3 bits ms significativos son 010, sumar al contenido del
acumulador el dato que exista en la direccin de memoria 1 y dejar el resultado en el acumulador.

Ahora bien, si el programa ejecutase la instruccin LD/5, que por ejemplo estuviese almacenada en la
direccin [4], se cargara en el acumulador el valor 1025, que es lo que contiene la direccin [5]. Por tanto,
se aprecia como la misma direccin de memoria puede interpretarse como instruccin o como dato, en
funcin de la operacin que est realizando la UC en cada momento. Es la esencia de la arquitectura von
Neumann en contraste con otras como la Harvard, ya mencionado.
3.1. Unidad Central de Proceso
Est compuesta de la UAL y la UC. La UAL trabaja como un autmata repitiendo indefinidamente el proceso
de extraer una instruccin de la MP, interpretarla, lo que significa decodificarla (y por tanto extraer un
operando, dado el caso) y ejecutarla. Por fin, se genera la direccin de la siguiente instruccin, lo que puede
realizarse en el paso 1. Tambin es habitual la utilizacin de un registro acumulador. La operacin a realizar
en la UAL estar marcada por las microinstrucciones generadas por la UC.
3.2. Memoria Principal
En cuanto a la MP, la figura muestra la organizacin
ya expuesta. Se poseen 512 posiciones numeradas
del 0 al 511, debido a que el bus A posee 9 bits. Cada
direccin posee una palabra de 12 bits, que son las
lneas del bus D. Y el bus de control lleva dos bits,
una lnea de indicacin de lectura y otra de escritura.

14
Para esta funcin podra hacerse slo con una lnea, pero en el ejemplo se usan dos para ampliar su
estudio a la hora de incrementar la complejidad. Lo importante es tener en cuenta cmo funciona.
3.3. Unidades de E/S
El ejemplo propuesto es muy limitado, para ilustrar un funcionamiento
elemental. Sea entonces, un teclado y pantalla trivializados. La
comunicacin se realiza a travs del acumulador. Cada perifrico
tiene un puerto de datos y un puerto de estado, los mostrados en la
tabla. Se utilizan las direcciones 508 a 511, robadas a la MP.
Los tiempos para las transferencias con los perifricos son mayores que los de intercambio con la UAL y la
MP, por tanto, hay que comprobar el estado del dispositivo, lo que sera la funcin de lo que se conoce
como controlador del dispositivo, o en primera aproximacin, driver.
As, la direccin 508, almacena el estado de la pantalla, y ser 1 si est preparada y 0 si no lo est. De
forma anloga para el teclado se usa la direccin de memoria 510. Las rutinas de servicio de teclado y
pantalla seran las siguientes:
Para escribir en la pantalla: Para leer del teclado:
1774 LD / 508; (En [20], p.ej.) 1776 LD / 510; (En [40], p.ej.)
4024 BZ / 20; Si no preparada, sigue probando 4050 BZ / 40; Si no preparado, sigue probando
1005 LD / 5; Carga el carcter (en [5], p.ej.) 1777 LD / 511; Carga el carcter
0775 ST / 509; Lo enva a pantalla 0003 ST / 3; Lo almacena en [3] (p. ej.)
Analizando los tiempos, se entendern bien los conceptos de espera activa, interrupciones y acceso directo
a memoria. Sean estos datos: Tiempo de ejecucin para las instrucciones BR, BZ, CLR, DEC y HALT: 1
ciclo de MP=200 ns, tiempo de ejecucin para las instrucciones ST, LD y ADD, 2 ciclos de MP=400 ns y
6
tiempo de escritura de un carcter en pantalla 1/30 s=3310 ns=33 ms.
Si inmediatamente despus de ST 509 se inicia otro bucle de espera para escritura, cuntas veces se
6
ejecutarn las dos instrucciones del bucle. Sern 3310 /600=55.000 veces, lo que resulta bastante
ineficiente. Por tanto se recurre a otros mecanismos para el control de perifricos.
Las interrupciones, son un mecanismo por el que la iniciativa es del perifrico, que interrumpe a la UCP
para cada carcter. La UCP ejecuta la rutina de servicio y vuelve a su labor. Por su parte, en el acceso
directo a memoria, el perifrico se comunica directamente con la MP. Slo interrumpe al final de la
transferencia de un bloque. Va robando ciclos a la UCP.

15
TEMA 3. COMPONENTES, ESTRUCTURA Y FUNCIONAMIENTO DE LA UCP.

1. INTRODUCCIN
2. COMPONENTES, ESTRUCTURA Y FUNCIONAMIENTO DE LA UCP
2.1. Componentes
2.1.1. UAL
2.1.2. UC
2.2. Estructura
2.3. Funcionamiento

16
1. INTRODUCCIN
La UCP o Unidad Central de Proceso es el componente principal del ordenador. Se divide en dos grandes
componentes, la UAL, unidad aritmtico-lgica, encargada de realizar operaciones y la UC, Unidad de
Control, encargada de gestionar el resto de elementos del ordenador. Adems, se dispone de una serie de
registros, elementos de memoria con informacin del programa en ejecucin.
2. COMPONENTES, ESTRUCTURA Y FUNCIONAMIENTO DE LA UCP
La UCP ejecuta los programas almacenados en la MP. Cada programa est almacenado en lenguaje
mquina como se ha visto en el tema anterior, con un ejemplo conceptual de un conjunto de instrucciones o
ISC (Instruction Set Computer).
2.1. Componentes
2.1.1. UAL
La UAL es un circuito combinacional capaz de realizar operaciones aritmticas, lgicas y de desplazamiento
que ordene la UC. Las operaciones son bsicas y probablemente requieran varias instrucciones, como en el
ejemplo de suma visto en el tema anterior. Una ALU podra responder al siguiente esquema:
En general se representa en forma de V invertida,
donde los extremos de la v representan la entrada
de operandos y el vrtice el resultado. La
comunicacin entre el sistema y la ALU se realiza
mediante registros. En la figura slo se ha
representado uno, AC, o registro acumulador, que
guardara resultados parciales. Tambin se han
indicado las microinstrucciones de la UC
simplificadas del ejemplo del tema anterior.
Otros registros que se pueden encontrar son registros de entrada, que contendrn los operandos, el registro
que contendr el resultado, en general denominado acumulador, el registro de operacin, que indica que
tipo de operacin se realiza y el registro de estado, que indica estados especiales como bits de acarreo,
divisiones entre cero o desbordamientos.
Las operaciones que realiza una ALU son operaciones aritmticas con nmeros enteros (suma, resta y en
funcin de su potencia multiplicaciones y divisiones), operaciones lgicas binaras y operaciones de
desplazamiento de bits (equivalente a multiplicar o dividir por 2). Las operaciones estn programadas con
circuitos electrnicos, combinacionales o secuenciales. Esta es la esencia de la idea de firmware.
Las operaciones pueden clasificarse en unarias, sobre un nico operando (por ejemplo un NOT lgico) o
binarias, sobre dos operandos como la suma, resta, etc. Adems pueden realizarse en paralelo, si se realiza
sobre todos los bits del operador a la vez, o en serie, si la operacin se realiza dgito a dgito.
2.1.2. UC
La UC es el elemento encargado de sincronizar el resto de los componentes del ordenador. Su tarea puede
resumirse en la interpretacin y secuenciacin de las instrucciones.
La interpretacin de una instruccin consiste en decodificarla, es decir, realizar lo indicado en el campo de
cdigo de operacin de la instruccin, lo que incluye, si hay operandos involucrados, conocer dnde leerlos,
en funcin del direccionamiento que se use para la MP y dejarlos disponibles para la UAL. La secuenciacin
de las operaciones consiste en la temporizacin y orden de las operaciones necesarias para la ejecucin de
las instruccines. Para esto, se apoya en el registro contador de programa.
Las seales de control son seales elctricas binarias generadas en la UC, para controlar la sincronizacin
de las operaciones y el funcionamiento del resto de elementos. En general, el diseo e implementacin de
una UC se realiza de forma cableada, es decir, mediante circuitos o elementos hardware o de forma
microprogramada, ms lenta, pero que permite implementar instrucciones mas potentes y flexibles.
2.2. Estructura
La arquitectura de la UCP incluye los componentes del procesador y cmo se relacionan par implementar el
conjunto de instrucciones, el ISC. En general se presenta mediante diagramas funcionales y estructurales,
que vayan desde la descripcin de las puertas lgicas a circuitos ms complejos, detallando la trayectoria
de datos (datapath) y la de control (control path).
Mquinas con diferentes arquitecturas pueden tener el mismo ISC, y por tanto podran ejecutar los mismos
programas. La evolucin en la microarquitectura, circuitos y su integracin son los factores que permiten
que generaciones ms modernas de procesadores alcancen mayor rendimiento con los mismos ISCs.

17
En principio la misma estructura de UCP podra ejecutar variantes del ISC con pequeas diferencias. La
microarquitectura de la UCP y el ISC definen la arquitectura del ordenador. La UCP puede ser de propsito
general o disearse para un proposito concreto y por tanto tener un conjunto de instrucciones diferente.
La arquitectura mas extendida en ordenadores es la del conjunto de instrucciones x86, propuesta por Intel y
compatibles, que ha ido evolucionando con el tiempo. Algunas extensiones conocidas al ISC x86, son MMX,
tambin de Intel y 3DNow! de AMD, para ampliar las funcionalidades multimedia.
Las instrucciones del ISC suelen tener las propiedades de independencia y autocontencion, es decir, que
contienen todos los datos necesarios para ejecutarse sin depender de otras instrucciones, adems son
sistemticas para obtener un decodificador simple, realizando una nica operacin para lo que usan un
nmero fijo de operandos con una representacin establecida.
Las instrucciones pueden clasificarse en instrucciones aritmticas y lgicas (que realizan operaciones de
ese tipo en la UAL), de desplazamiento, de control (para gestionar el flujo de ejecucin del programa), de
transferencia de datos (lectura y escritura en la MP) e instrucciones de gestin de entrada y salida.
A la hora de ejecutar una instruccin, la lectura de los datos suele ser el elemento crtico de retardo. Por
tanto el esfuerzo de desarrollo se centra en el diseo de circuitos que incrementen el rendimiento y adems
puedan integrarse en un nico chip. Algunas tcnicas comunes en la estructura de la UCP son la seleccin
del ISC, pipeline, uso de memoria cach, renombrado de registros y otras.
Las tcnicas de pipelining se refieren a la sincronizacin de los datos en etapas con tiempos de ejecucin
(retardos) similares para evitar que procesos lentos mermen el rendimiento. Si a la entrada de un circuito se
poseen dos datos, y la ruta de proceso del primero es mayor que la del segundo, al aplicar pipeline,
mientras se procesa el primero, el segundo podr liberar recursos para procesar nuevos datos sin esperar al
lento. En general cuantas ms etapas de pipeline se implemente la estructura, ms rendimiento ofrecer.
Otros elementos de la UCP son las unidades de coma flotante, FPU, unidades de lectura/escritura, la
prediccin de bifurcacin y SIMD. La seleccin del nmero de unidades de ejecucin, su latencia y
rendimiento es una tarea central del diseo microarquitectnico, centrado en aspectos tales como la
relacin rea coste del chip, consumo de energa, complejidad lgica, etc.
2.3. Funcionamiento
El funcionamiento de la UCP consiste en ejecutar instrucciones, siguiendo, en general, los siguientes pasos:
1. Lectura y decodificacin de la instruccin
2. Obtencin de los datos, si son necesarios, para procesarla
3. Ejecucin de la instruccin
4. Proceso del resultado (almacenamiento)
Ms en detalle, la ejecucin de una instruccin se realizara leyendo el
registro contador de programa (PC) para ser cargado en el registro MAR o
de direccin de memoria, que contiene la direccin a leer.
Entonces se genera la microinstruccin, que indica a la MP que ser leida, se incrementa el PC en 1 y la
instruccin se carga en el registro de instruccin, IR, para ser decodificada. Una vez decodificada, comienza
el paso 2, en que puede ser no haya datos, estn en la instruccin o sta proporcione un ndice que
implique otras operaciones para obtener el dato deseado.
Luego, la fase dos supone un parntesis en que el decodificador tambin generar las seales de control
para leer los operandos, si son necesarios y se cambiar el contenido de los registros segn corresponda,
puesto que para leer un dato de la MP, antes ese valor debe actualizarse en el MAR. Una vez obtenidos los
operandos, en la fase 3 se ejecuta propiamente la instruccin. Si la instruccin ha generado un resultado, se
debe tratar, de forma que en general, habr de almacenarse en MP, para lo que se usa un registro de datos
de memoria, el MDR, que contiene los datos que se escribirn o leern de la MP. Por fin se vuelve al paso
1, actualizando el MAR, PC, etc.
Especial atencin merecen las bifurcacines de un programa. Bsicamente, se consiguen sustituyendo el
contenido del PC por la direccin de bifurcacin, que lgicamente es la siguiente a ejecutar, aunque rompa
la ejecucin secuencial. Habitualmente, esa nueva direccin se calcula sumando al valor del PC un valor
diferencia entre la direccin actual y la nueva. Por lo dems, el mecanismo es idntico.

18
TEMA 4. MEMORIA INTERNA. TIPOS. DIRECCIONAMIENTO. CARACTERSTICAS Y FUNCIONES.

1. INTRODUCCIN
2. MEMORIA INTERNA
3. TIPOS
3.1. RAM
3.2. Cach
3.3. ROM
4. DIRECCIONAMIENTO
5. CARACTERSTICAS Y FUNCIONES

19
1. INTRODUCCIN
La memoria interna incluye los componentes de memoria que se encuentran en el interior del ordenador y
forman parte fundamental del proceso. No se incluyen por tanto memorias secundarias como los discos
duros, que aunque pudieran considerarse memoria interna, se engloban en la parte de componentes. Como
memoria interna se distingue la memoria RAM, la cach y la ROM.
2. MEMORIA INTERNA
La memoria interna hace referencia a la memoria fundamental para el funcionamiento del ordenador y que
se dispone en la PB. El nombre de memoria interna, a parte de deberse a que la memoria est en el interior
del ordenador, se refiere a que su acceso lo realiza la UCP directamente a travs de los buses del sistema.
Las tres memorias internas distinguidas, RAM, ROM y cach se disponen de forma diferente. Mientras para
la RAM existen zcalos donde se inserta en forma de mdulos, lo que facilita su ampliacin, la ROM suele ir
integrada, aunque tambin puede disponerse en zcalos en la PB. La memoria cach interna, est
integrada en el micro, y la externa en general va soldada en la PB, aunque podra disponer de zcalo,
situacin tpica en equipos ms antiguos.
3. TIPOS
3.1. RAM
La Memoria Principal es el componente del sistema que almacena la informacin que procesa la UCP. Su
contenido pueden ser programas o datos. Es la memoria de trabajo. Cualquier dato que procese el
ordenador pasa por la memoria principal (RAM).
Es una memoria pequea, en comparacin con memorias secundarias, pero muy rpida. Es voltil, al dejar
de alimentarla elctricamente, su contenido se pierde y de acceso aleatorio, permitiendo acceder a
cualquier posicin sin leer las posiciones anteriores, en contraste con el acceso secuencial, en que se debe
pasar por posiciones anteriores para llegar al dato deseado. Ejemplo de acceso secuencial sera una cinta
de audio, mientras un CD posee acceso aleatorio.
Internamente, la memoria RAM tiene una matriz de celdas de memoria, un decodificador de la direccin y
unos transductores encargados de leer y escribir en las celdas. Dependiendo de cmo se comporten las
celdas de memoria se distingue RAM esttica o dinmica.
La RAM esttica no necesita ser refrescada, puede ser leda sin que se pierda su contenido, lo que hace
que su acceso sea ms rpido, pero son ms caras. La RAM dinmica debe ser refrescada, ya que sus
celdas pierden la informacin al operarla. Es un proceso interno, electrnico, transparente al usuario. El
tiempo de refresco reduce la velocidad de acceso, aunque siguen siendo rpidas y ms baratas. La RAM
dinmica es usada comnmente como MP y la esttica para implementar memoria cach.
Fsicamente la memoria es un conjunto de chips fabricados con material semiconductor y soldados a una
placa alargada de circuito impreso llamada mdulo. Los mdulos de memoria RAM, que se insertan en
zcalos alargados de 10 a 15 cm. acondicionados al efecto, en la PB, habitualmente cerca del micro.
La evolucin tecnolgica de los mdulos de memoria ha dado lugar a distintas denominaciones. Los
mdulos a conocer son los SIMM, mdulos de memoria sencillos en lnea, de 30 y 72 contactos. Son los
ms antiguos, usados en los 386 y 486 (30 contactos) y en Pentium (72 contactos). Los mdulos DIMM, o
mdulos de memoria dual en lnea de 168 y 184 contactos se empezaron a usar a partir de los Pentium II.
Existe otro tipo de mdulo, obsoleto, el mdulo RIMM, desarrollo propietario, es decir no estndar, que
obliga a pagar a la empresa Rambus para usar esa tecnologa. Lgicamente, al ser ms caro no se impuso.
Segn el tipo de memoria RAM y su tecnologa de funcionamiento se distinguen memoria RAM esttica o
SRAM, que no necesita ser refrescada y es ms rpida que la dinmica, pero ms cara. Este tipo de
memoria se suele usar para memoria cach. La memoria RAM que se monta en los tpicos mdulos de
memoria es memoria dinmica o DRAM, que necesita refresco.
La memoria DRAM es ms antigua y lenta. Funciona de manera asncrona, es decir, no sigue la
temporizacin del bus del sistema. Se montaba en mdulos SIMM. Tipos de memoria DRAM son Fast Page
(FPM), un poco ms rpida usada hasta los primeros Pentium; EDO EDO-RAM, extensin de datos de
salida-RAM, permite empezar a introducir nuevos datos mientras los anteriores estn saliendo, lo que la
hace ms rpida; BEDO-DRAM es un tipo de EDO-RAM con rfaga (burst) e incluye una etapa de pipeline.
Es el doble de rpida que la FPM y un 30% ms que la EDO.
Cuando la frecuencia de bus del sistema fue haciendose mayor, se precis que la memoria RAM se
sincronizase con el bus. Esto oblig a crear memoria DRAM sncrona o SDRAM. sta memoria se monta en
mdulos DIMM y es bastante ms rpida. Se suele denominar segn su frecuencia de funcionamiento en

20
Mhz: PC100, PC133, etc. Memorias que funcionan de esta manera: CDRAM (Cach DRAM), RDRAM
(Rambus DRAM) o ESDRAM (Enchanced SDRAM), por ejemplo.
El tipo SDRAM DDR, o SDRAM de doble tasa de datos. Este nombre especifica su funcionamiento: En cada
ciclo de reloj, se intercambian dos bits, en vez de uno, alcanzando velocidades mayores, gracias a esta
nueva forma de trabajo y al incremento de frecuencia del bus de sistema. La memoria DDR no es
compatible con SDRAM no DDR.
Emplean 184 contactos en vez de 168 y el mdulo posee una muesca en vez de dos. Denominaciones de
estos mdulos: DDR200, DDR333, etc. Aunque por abuso del lenguaje se puede encontrar escrito como
PC1600, PC3200, etc. Que indican la mxima transferencia en Mbps que alcanzan.
Si la MP resulta insuficiente para ejecutar un programa, se puede ampliar con una parte de la memoria
secundaria, los discos duros, reservada para funcionar como RAM. Lgicamente, el intercambio de
informacin es ms lento, pero permite funcionar con la apariencia de una memoria RAM mayor. Esta
tcnica se denomina memoria virtual y la zona del disco duro reservada al efecto zona de swap o swap file,
zona de intercambio. Actualmente se utiliza menos debido a las mayores capacidades de RAM. Resumen:
Mdulo SIMM Memoria DRAM. Mdulo DIMM Memoria SDRAM y SDRAM DDR.
Mdulo RIMM Memoria RDRAM. Propietario de RAMBus y descartado comercialmente.
3.2. Cach
La memoria cach es una memoria intermedia ms rpida que la RAM. Esto implica un encarecimiento y
por eso suele montarse menos capacidad que la RAM. Valores tpicos son 512 KB. La cach acta como
ndice de los datos de la RAM. Si el ndice es excesivo puede ser contraproducente.
Almacenar los datos que con mayor probabilidad utilizar el micro en la prxima operacin que realice,
ahorra tiempo de acceso a memoria. Esto es un acierto de cach. Los aciertos aceleran el procesamiento,
pero si la cach es muy grande, el micro tardar un tiempo apreciable en encontrar el dato que necesita.
Esto no influye demasiado si el dato buscado est en la cach. Si no estuviera, habra que sumar ese
tiempo perdido al que tarde en leerlo de la RAM. Para usos normales, a partir de 1 MB (1024 KB) la cach
resulta ineficaz, e incluso pudiera llegar a ralentizar el ordenador. El tamao idneo depende del de la RAM.
Existen dos tipos de cach: La interna y la externa. La externa puede verse soldada en la PB y se denomina
"cach externa" o de segundo nivel (L2). La cach interna se integra en el micro y tambin se denomina de
primer nivel (L1). Su tamao suele ser de decenas de KB.
En general no se elige la memoria cach a adquirir con el ordenador, porque est integrada en la PB. Sin
embargo el tipo de memoria empleado para fabricar la cach es un factor importante. Suele ser memoria
muy rpida (p. ej. SRAM o SDRAM), con unos 10 ns de velocidad de refresco; es decir, cada 10 ns pueden
admitir una nueva serie de datos (a menor tiempo de refresco, mayor velocidad).
Otro parmetro que influye en las cach es la forma de escritura. Esto, a veces, puede elegirse en la BIOS.
Las dos formas principales son write-througth, que es el modo clsico de trabajo de la cach y consiste en
escribir en memoria y en cach a la vez. Consigue coherencia a menor velocidad. Write-Back no escribe en
RAM hasta que tenga que ser sobreescrita. Es ms rpido que el anterior.
La memoria cach forma parte, junto con la RAM de la memoria principal del ordenador. Por su fabricacin
es ms rpida y cara que la RAM. Por eso, para que los ordenadores funcionen ms rpido, se fabrican con
una cierta cantidad de memoria cach que almacena datos muy recurrentes en la ejecucin de un
programa. Existen estrategias para predecir qu datos deben estar en la cach para optimizar el proceso.
Los procesadores actuales tienen memoria cach integrada, en general en dos o ms niveles de jerarqua.
Algunos procesadores recurren a tener ms cach en vez de ms velocidad para tener mejor rendimiento.
3.3. ROM
Es memoria de slo lectura, cuyo contenido no puede ser modificado. Se usa para almacenar el firmware
del ordenador y para su arranque. En la ROM reside el programa que inicia los elementos del ordenador y
llama al sistema operativo. Este programa se conoce como BIOS.
A parte de la memoria ROM existen variantes como la PROM, que es una memoria que no se borra pero
que puede ser programada, la EPROM, una memoria que puede ser borrada o la EEPROM que puede ser
borrada por medios elctricos.
4. DIRECCIONAMIENTO
El direccionamiento de la memoria comprende la organizacin necesaria para su gestin, en particular para
acceder a una direccin concreta. Las direcciones de memoria se numeran en hexadecimal. Esto es debido

21
a que resulta ms fcil al estar organizadas en octetos o bytes. As, una direccin de 32 bits, sera capaz de
numerar 4.000 millones de direcciones y se usara el rango 0000 0000 a FFFF FFFF. La direccin a la que
se accede es codificada en el bus de direcciones por parte de la UCP.
El funcionamiento es asignar una direccin a cada dato. Para almacenarlo en memoria, la UCP dispone la
direccin en el bus de direcciones y el controlador de la memoria habilita esa direccin, de forma que con
una seal de control, los datos que existan en ese momento en el bus de datos, se transfieren a la MP. La
lectura sigue un proceso similar, cambiando la seal de control de forma que los datos de la memoria se
vuelcan al bus de datos.
Existen varias tcnicas de direccionamiento de memoria. Como se ha visto, una instruccin contiene un
cdigo de operacin y un campo de direccin (CD). El CD puede referirse a la direccin de memoria que
contiene un dato (direccionamiento directo), o a una direccin, que contendr la direccin del dato buscado
(direccionamiento indirecto). Se distinguen entre otros, los direccionamientos:
- Inmediato. La instruccin contiene el dato. No hay direccionamiento.
- Directo. El campo de direccin contiene la direccin del dato.
- Indirecto. El campo de direccin contiene la direccin de la direccin que contiene el dato.
- Relativo. La direccin del dato se obtiene sumando el contenido del CD al contador del programa.
La asignacin de memoria posee un aspecto fsico y uno
lgico. El aspecto fsico se referira al tratamiento de las
seales de control, organizacin de los registros,
elementos electrnicos implicados, etc. La lgica se refiere
a la reserva de memoria y se distingue entre asignacin
dinmica y esttica. La asignacin esttica se realiza en
tiempo de compilacin antes de la ejecucin del programa.
La asignacin dinmica asigna memoria cuando se
requiere, en tiempo de ejecucin.
5. CARACTERSTICAS Y FUNCIONES
De las caractersticas de la memoria interna cabe destacar
su mtodo de acceso, tiempo de acceso, tiempo de ciclo
de memoria, velocidad de transferencia o capacidad.
El mtodo de acceso de la memoria es la forma en que el hardware localiza una direccin de memoria.
Puede ser secuencial, en que el acceso oblida a recorrer toda la memoria hasta la direccin requerida, o
acceso aleatorio en que se indica una direccin y directamente se habilita para operar.
El estudio de los tiempos comienza con el tiempo de acceso a memoria, que es el empleado en una
operacin de lectura/escritura. El tiempo de ciclo de memoria es el debe esperarse hasta poder realizar una
nueva operacin. Consta del tiempo de acceso ms un tiempo adicional. La velocidad de transferencia de la
memoria es el nmero de bits, bytes o palabras, accedidos y transferidos por unidad de tiempo.
Otras caractersticas que se pueden citar son la capacidad de la memoria, es decir su tamao, que vendr
definido por el nmero de lneas del bus de direcciones, el tamao de palatra o nmero de bits del bus de
datos y tamao de bloque o mltiplos de palabra que se transfieren entre dos bloques funcionales.
En cuanto al funcionamiento de la memoria interna, ya se ha explicado. Es controlado por la UCP y en
funcin de sus micrordenes, se accede a una direccin que ser escrita o leida.
Mencin a parte merece el tratamiento de los errores de lectura/escritura. Algunas tcnicas de correccin y
deteccin de errores son la del bit de paridad, en que se guarda un bit adicional por cada byte, que ser 1 si
el total de unos es un nmero par y un 0 si es impar y la tcnica de ECC, que permite detectar y corregir
errores. Estas tcnicas deben implementarse en el chipset y ser soportadas por las memorias. En general
las memorias presentan una alta fiabilidad, y estas tcnicas generan un coste mayor de la memoria y
penalizaciones en la velocidad.

22
TEMA 5. MICROPROCESADORES. ESTRUCTURA. TIPOS. COMUNICACIN CON EL EXTERIOR.

1. INTRODUCCIN
2. MICROPROCESADORES
3. ESTRUCTURA
4. TIPOS
5. COMUNICACIN CON EL EXTERIOR

23
1. INTRODUCCIN
El microprocesador es la Unidad Central de Proceso o UCP. Los trminos UCP, microprocesador o micro,
se usan indistintamente. El micro es un componente electrnico que integra millones de transistores. Se le
identifica como el cerebro del sistema por ser el responsable del procesamiento de las instrucciones.
Los transistores implementan funciones lgicas y aritmticas binarias. Poseen una alta capacidad de
integracin, fiabilidad, poco consumo de energa y son baratos. Las tecnologas de integracin han ido
evolucionando y se habla de LSI (Large Scale Integration) que integra diversos chips y cientos de
transistores y VLSI (Very LSI) que permite integrar varios millones de transistores.
Su evolucin est ligada a la ley emprica de Moore, que afirma que la capacidad de los micros se duplica
cada ao. Hasta la fecha, esta ley se ha ido verificando.
2. MICROPROCESADORES
El micro define las prestaciones del sistema. Su funcionamiento consiste en leer las instrucciones de la
memoria, decodificarlas, es decir, interpretar lo que hay que hacer, ejecutar la instruccin y almacenar el
resultado, si lo hay. Este ciclo se repite indefinidamente.
El micro suele ser rectangular o cuadrado y se monta sobre un zcalo o bien va soldado directamente a la
PB, si es un equipo sencillo (router domstico). La parte externa consta de un encapsulado, que rodea al
silicio para ofrecer consistencia e impedir el deterioro. Est acoplado a los conectores externos o patillas.
El zcalo del micro recibe el nombre de socket. Existe otro tipo de zcalo, en desuso, llamado slot. Ambos
tipos se muestran en la figura. Las variantes de zcalos tipo slot ms conocidos son SEC (Single Edge
Contact) es un diseo de empaquetamiento de procesadores Intel en el que el procesador y los chips
opcionales de cach L2 se montan en una tarjeta de circuito impreso, sellado en un cartucho de metal y
plstico. El cartucho es insertado en la PB con un conector de ranura.
Existen muchas variaciones del factor de forma cartucho SEC: el SECC (SEC Cartridge) tiene una cubierta
y una placa trmica; el SECC2 con cubierta y sin placa trmica; y el SEPP (Single Edge Processor
Package), usado slo en procesadores Celeron, no tiene cubierta o placa trmica. En implementaciones sin
placa trmica, el disipador de calor est unido directamente al paquete o interior del procesador.
Los procesadores modernos, tanto Intel como AMD, usan zcalos ZIF (Zero
Insertion Force) ms manejables. La denominacin PGA (Pin Grid Array)
referencia un empaquetamiento de chip con numerosos pines para su insercin
en el zcalo. El diseo PPGA (Plastic Pin Grid Array) es una alternativa al
empaquetamiento cermico tradicional.
La tendencia en el diseo de circuitos es a disminuir la tensin de trabajo, para reducir el consumo, la
disipacin de calor y por tanto aumentar la frecuencia de trabajo del micro. Los valores histricos de las
tensiones de trabajo rondaban los 5V, actualmente los 3.3V externos y algo menos para alimentacin del
ncleo. Un regulador de tensin integrado (VRM), convierte la tensin de la fuente de alimentacin al nivel
requerido por el ncleo. En general, el micro lo ajusta automticamente con el control de la PB.
Cuando se dice que un procesador trabaja a una frecuencia de X GHz, se hace referencia al reloj con el que
trabaja el micro, es decir, su referencia temporal. El micro se alimenta con una seal de reloj de X GHz.
Procesar una instruccin puede llevar varios ciclos de reloj. Por tanto, en general no se puede decir que si
un procesador trabaja a X GHz, ejecute X miles de millones de instrucciones por segundo. El nmero de
instrucciones por segundo que es capaz de procesar se expresa en MIPS (millones de instrucciones
procesadas por segundo).
Existen otras unidades como los MFLOPS, o millones de instrucciones de coma flotante que se realizan por
segundo pero el concepto es el mismo. Para comparar el rendimiento de dos procesadores diferentes, bajo
condiciones semejantes, deben usarse las mismas magnitudes de medida. Es normal tambin hablar de las
instrucciones por ciclo, no por segundo, o IPC. Si se multiplica el IPC por la frecuencia se obtiene el nmero
de instrucciones por segundo. Los fabricantes suelen usar diferentes formas de medida. Muchas veces por
razones comerciales.
La seal de reloj se obtiene de multiplicar por un determinado factor la frecuencia base de la PB. Si el
fabricante lo permite, el factor de multiplicacin se podr configurar, bien en la BIOS, o antiguamente, en la
PB, mediante jumpers. Si se superan las especificaciones del fabricante para obtener una frecuencia de
trabajo del micro mayor, se habla de overclocking. Sin embargo, el aumento de la frecuencia de trabajo,
genera un aumento de la temperatura lo que podra generar inestabilidades.
Para disipar el calor que produce el micro se usan disipadores, que son buenos conductores del calor, que
en contacto con el micro, extraen el exceso de temperatura mediante ventiladores. El aspecto tpico de los

24
disipadores es el de un radiador, con numerosas lminas, para incrementar la superficie de contacto con el
aire y realizar un enfriamiento ms efectivo. Para facilitar la conduccin de calor es habitual usar un
interface trmico, como grasa blanca de zinc o similar. Por fin, sobre el disipador se suele montar el
ventilador para extraer el aire caliente.
Otro factor que se especifica en los microprocesadores son las etapas de
pipeline. Bsicamente la tcnica de pipeline es conseguir que la lgica interna
aproveche al mximo el tiempo, haciendo que las tareas rpidas, en vez esperar
a las lentas, vayan haciendo otras tareas. En principio cuantas ms etapas de
pipeline existan, ms eficiente ser.
3. ESTRUCTURA
Internamente la UCP consta de Unidad Aritmtico Lgica (UAL) y Unidad de Control (UC). La UC gestiona
el orden de ejecucin de instrucciones, arbitraje de buses, etc. La UAL es la encargada de las operaciones.
Existe un coprocesador matemtico o unidad de coma flotante (FPU), que por su importancia tiene entidad
propia y suele hacerse referencia a su potencia. La UC integra circuitos de control y sincronizacin.
Otro elemento que forma parte del micro es la memoria cach. Es una memoria ndice, muy rpida que
almacena datos de uso habitual. Esta memoria acelera el procesamiento, porque internamente el micro
trabaja ms rpido que si tiene que consultar datos en la MP (RAM).
Dejando de lado la evolucin histrica y distintos niveles de cach, debe distinguirse la memoria cach
interna integrada en el procesador, a la que en general se denomina cach de nivel 1 o cach L1 y la
memoria cach, externa, tambin muy rpida (ms que la RAM) que cumple las mismas funciones. Se la
denomina cach externa (por no estar integrada en el micro), de nivel 2 o cach L2.
Los niveles de cach a veces son confusos, porque la arquitectura del microprocesador cada vez integra
ms niveles. Por tanto puede haber textos que hablen de cach de nivel 2 o 3 integrada en el procesador.
Lo importante es diferenciar, si se refiere a memoria cach interna o externa.
La funcin de la memoria cach es indexar datos. Sirve como ndice. Por tanto, existe un tamao ptimo,
que suele facilitar el fabricante. Una memoria cach demasiado grande puede tener efectos adversos. Un
ndice tan extenso como un libro no tendra sentido. Se supone, entonces, que cada fabricante optimiza el
tamao de cach interna para sus procesadores. En cualquier caso ese parmetro no se puede variar. Sin
embargo la cach externa, si viene en un zcalo, puede ser ampliada. Si est soldada no se puede ampliar.
El bus de direcciones transporta la direccin de memoria que se leer o escribir. Ese dato estar presente
en el bus de datos. Si un micro tiene una tecnologa que usa un bus de direcciones de 32 bits, podr
32
direccionar como mximo 2 posiciones, es decir 4 GB de memoria RAM. A partir de la serie x386, los
procesadores usan tecnologa de 32 bits, y se evoluciona hacia los 64. Los ms conocidos pueden ser los
64
Itanium de Intel o los Athlon 64 de AMD. Con 64 bits en el bus de datos se pueden direccionar 2 bits, unos
18
16.000 PB, es decir, 1610 bytes.
Otro aspecto de la estructura del micro es su conjunto de instrucciones. Un micro siempre ejecuta las
mismas instrucciones. Es una caracterstica de la arquitectura. Un tamao ptimo del conjunto de
instrucciones ofrece mayor rendimiento. Las arquitecturas que se emplean son CISC y RISC.
CISC es Complete Instruction Set Code, basado en la implementacin de un conjunto amplio de
instrucciones. RISC es Reduced ISC, basado en utilizar un conjunto reducido, lo que facilita el diseo del
micro y la ejecucin de las instrucciones ms deprisa, a costa de usar programas ms largos. Se tiende a
usar tecnologas RISC, un tanto amplias.
El conjunto de instrucciones empleado habitualmente se conoce como el conjunto x86, que ha sufrido
ampliaciones a lo largo de su evolucin, algunas de las ms conocidas pueden ser MMX (MultiMedia
eXtensions/Matriz Math eXtensions) de Intel o 3DNow! de AMD. Bsicamente lo que aaden son mejoras
en el tratamiento de video e imgenes y mejora de los procesos de entrada/salida. Otras ampliaciones del
ISC fueron SEE y SEE2 (Streaming SIMD Extensions) para mejorar el proceso de grficos y sonido.
La arquitectura de los micros evolucion a partir del Pentium II mejorando el rendimiento del bus,
diferenciando datos de entrada y de salida. Es la arquitectura de bus dual independiente.
La tecnologa Hyper-Threading consiste en el manejo, por parte del micro, de dos ISC distintos
simultneamente. De esta forma un procesador aparece como dos procesadores virtuales. Internamente se
disponen dos conjuntos de registros y otros componentes de la arquitectura, compartiendo cach, buses y
unidades de ejecucin. Cada procesador virtual trata una nica secuencia de ejecucin o hilo (thread).
Por fin, el coprocesador matemticos (o FPU, Unidad de Punto Flotante) es otro elemento fundamental de la
estructura del micro. Es el elemento encargado de liberar a la UAL de las operaciones punto flotante. Esta

25
organizacin acelera el proceso y por ello los procesadores a partir del 486 lo integran. Las FPU realizan
operaciones matemticas de alto nivel 100 veces ms rpido que el procesador principal.
4. TIPOS
Un breve resumen de la evolucin de los micros los debe presentar agrupados por generaciones. As la
primera datara de 1.980 y se refiere a los procesadores tipo 8086 y 8088. La segunda generacin en 1.982
con los micros tipo 286. La tercera aparece hacia 1.985 y son los 386. Estos micros comienzan la
arquitectura de 32 bits. La cuarta generacin se situara en torno a 1.989 y estara formada por los
procesadores tipo 486. La quinta generacin se sita hacia 1.993 y son procesadores tipo 586. Por razones
comerciales, se produjo una diferenciacin y as Intel los llam Pentium, AMD K5 y Ciryx 6x86 o M1.
La sexta generacin suge en 1.995. Citar los nombres comerciales como Pentium II y III, los AMD K6 o
Ciryx 6x86 MX. De la sptima generacin, a partir del ao 2.000 citar los Pentium 4, AMD Duron y Athlon, y
los micros de 64 bits, como los Intel Itanium y los AMD Opteron o Athlon64. La ltima generacin, ya casi
penltima seran los procesadores duales (Intel Core Duo, Core 2 Duo, los futuros AMD Barcelona, etc.) y
los ltimos ncleos cudruples (Quad Core).
La evolucin ha seguido un camino de mejoras constantes: mayor integracin, ms pipeline, mejor conjunto
de instrucciones, ms rapidez, menor consumo, etc. Existe una ley emprica, basada en la experiencia, la
ley de Moore que predice que aproximadamente cada ao y medio o dos aos se duplica el nmero de
transistores que se pueden integrar en un microprocesador. No es una ley cientfica, ni matemtica, pero el
caso es que hasta hoy se ha cumplido. Gordon Moore fue uno de los fundadores de Intel.
Cada tipo de microprocesador, define un modo de trabajo, denominado modo de procesador, que se
relacionan con los entornos operativos, afectando a su capacidad e instrucciones. El modo controla la
manera en que el micro percibe y gestiona la memoria del sistema y las tareas que la utilizan. Los micros
con palabras de 32 bits pueden funcionar en tres modos de operacin: real, protegido y real virtual.
En el modo real se habilita compatibilidad con el procesador 8086 original. El direccionamiento de memoria
se limita a 1MB. El modo protegido ampla el direccionamiento de memoria y pueden establecerse los
niveles de modo real y de proteccin restringidas para evitar conflictos en el software y control del sistema.
En el modo real virtual el direccionamiento de memoria se limita a 4 GB, pueden establecerse niveles de
proteccin restringida (para evitar conflictos software) y adems mantener sesiones compatibles individuales
de modo real separadas.
5. COMUNICACIN CON EL EXTERIOR
Para realizar las funciones de comunicacin con el exterior de la UCP, el micro se apoya en el uso de
buses, como lo son el:
Bus de datos. Es el nmero de bits (lneas) que puede transferir simultneamente el procesador en un ciclo.
El bus tpico es de 32 bits y se evoluciona al de 64. Debe distinguirse de otro bus de datos, que se define a
nivel interno, y que por tanto se crea en el proceso de fabricacin, el bus de datos interno, que es el nmero
de bits que contiene las palabras manejadas internamente por el procesador. Por tanto coincide con el
tamao de los registros internos. El bus interno determina cmo transferir los datos dentro del chip.
Bus de direcciones. Es el nmero de lneas que transportan la informacin de direccionamiento de la MP.
Determina el tamao de memoria direccionable.
Bus de control. Posee un nmero de lneas que vara segn el micro. Cada fabricante lo implementar como
considere ms adecuado y sirve para transportar microinstrucciones al resto de componentes.

26
TEMA 6. SISTEMAS DE ALMACENAMIENTO EXTERNO. TIPOS. CARACTERSTICAS Y
FUNCIONAMIENTO.

1. INTRODUCCIN
2. SISTEMAS DE ALMACENAMIENTO EXTERNO
3. TIPOS
3.1. Elementos Magnticos
3.1.1. Cinta magntica
3.1.2. Disco Flexible
3.1.3. Disco Duro Externo
3.2. Elementos pticos
3.2.1. CD-ROM
3.2.2. DVD
3.2.3. Blu-Ray
3.3. Elementos de Estado Slido
4. CARACTERSTICAS Y FUNCIONAMIENTO
4.1. Tecnologa Magntica
4.2. Tecnologa ptica
4.3. Tecnologa de Estado Slido

27
1. INTRODUCCIN
Los sistemas de almacenamiento externo son elementos de memoria transportables independientes del PC.
En general podra decirse, no conectados a la placa base. Los ms utilizados en la actualidad son discos
magnticos, pticos y memorias flash.
2. SISTEMAS DE ALMACENAMIENTO EXTERNO
Los sistemas de almacenamiento externo han sufrido una evolucin rpida en poco tiempo. Los primeros
sistemas fueron tarjetas y cintas de papel perforado, cartones con agujeros con los que representaban la
informacin de forma binaria (agujero=1, no agujero=0), pero no eran reutilizables.
El desarrollo de las tecnologas magntica, ptica y de estado slido ha ido ofreciendo mejores
prestaciones, resumidas en mayor capacidad, velocidad y coste relativamente menor.
3. TIPOS
3.1. Elementos Magnticos
Los elementos de almacenamiento magntico se basan en la polarizacin, an en ausencia de alimentacin
de partculas ferromagnticas. Un sentido de polarizacin representa un uno lgico; el otro sentido un cero.
3.1.1. Cinta magntica
Fue el primer dispositivo magntico usado. Es una cinta plstica cubierta de material ferromagntico. Los
datos se registran como combinacin de puntos sobre pistas paralelas al su eje longitudinal. El acceso
secuencial es su principal caracterstica: para llegar a la informacin almacenada en un punto, debe pasarse
por los anteriores. Aunque cada vez menos, todava se usan para copias de seguridad.
3.1.2. Disco Flexible
El disco flexible, o disquete, se basa en los mismos principios que la cinta magntica y a da de hoy est
obsoleto. Internamente contaba con dos caras de almacenamiento organizadas en pistas (crculos
concntricos del disco) y sectores (porcin angular del disco) de capacidad tpica 512 Bytes.
3.1.3. Disco Duro Externo
Un disco duro es un conjunto de discos magnticos montados sobre un mismo eje. Para las operaciones de
lectura y escritura se cuenta con un cabezal para cada cara de los discos y un motor para hacerlos girar y
posicionarlo. No hay diferencias con respecto a la tecnologa ni al funcionamiento de un disco duro interno.
La estructura fsica de un disco duro est organizada en caras, que son las superficies de los discos que se
montan en su eje, pistas, que son los anillos concntricos de grabacin que existen en cada cara, los
cilindros, que son el conjunto de pistas con la misma posicin en todos los discos, los sectores o divisiones
n
angulares del disco con capacidad de 512 B y los cluster o conjunto de 2 sectores consecutivos.
A nivel lgico un disco duro se puede dividir en particiones o divisiones lgicas. Como mnimo han de tener
una particin primaria y como mximo cuatro. Para poder realizar ms particiones, se pueden definir
particiones extendidas, que son particiones lgicas que permiten realizar a su vez ms subparticiones.
Por tanto un disco duro tendr como mnimo una particin primaria, donde se instalar el SO. Si se desean
tener ms de cuatro particiones habr que crear una particin extendida, de las que slo podr haber una,
dentro de la cual se podrn realizar las particiones que se deseen. Las particiones deben tener un formato
lgico para organizar los datos. Especificar el formato lgico de datos en el disco duro recibe el nombre de
formateo. Tipos de formateo son FAT, NTFS (en sistemas WS) o ext3, ext4, NFS, ms extendidos en el
mundo Linux. En general, por compatibilidad, los discos duros externos suelen formatearse en formato FAT.
La conexin del disco duro externo al PC se puede realizar mediante un interfaz USB, una baha hueca que
desemboque en un conector IDE o SCSI, o cualquier otro mtodo que sea factible.
3.2. Elementos pticos
Los elementos de almacenamiento ptico se componen de un disco de material plstico o similar con una
capa de aluminio reflectante y protegido con una laca protectora transparente. El disco dispone de zonas
denominadas lands (zonas lisas) y pits (zonas con agujeros), para representar la informacin.
3.2.1. CD-ROM
El CD (Compact Disk) comenz utilizndose para almacenar msica, pero debido a su naturaleza digital, su
campo de aplicacin se ampli a los datos. El CD-ROM es un dispositivo de slo lectura, aunque existen
discos regrabables como los CD-R y CD-RW.

28
El CD es muy popular por ofrecer alta capacidad en poco espacio a un coste bajo. La principal caracterstica
es su fiabilidad. No les afectan los campos magnticos, apenas la humedad ni el calor y pueden aguantar
golpes importantes. Por el contrario, precisan un cierto cuidado frente al polvo e imperfecciones en su
superficie. La capacidad tpica es de 650MB.
Los CD grabables son de dos tipos: CD-R (Recordable), grabable una nica vez, y CD-RW (ReWritable por
motivos comerciales, en un principio se denominaron Erasable, borrables), regrabable varias veces. Son
idneos para datos que poco actualizados, copias de seguridad, etc.
Los programas de grabacin llevan implementados drivers para la mayora de grabadoras. En la grabacin
el flujo de datos que llega a la grabadora debe ser constante por tanto, es necesario insertar una memoria
intermedia denominada buffer memory. La velocidad de grabacin y lectura se mide en relacin al estndar,
que es el del audio (1x=150 Kb/s).
3.2.2. DVD
Podra decirse groseramente que el DVD es un CD con mayor capacidad, conseguida incrementando la
densidad de pistas y el tamao del pit, por lo que se hace necesario reducir la longitud de onda del lser.
Un lector de DVD puede leer cualquier CD, pero no al contrario. La capacidad tpica de un DVD es 4,7 GB.
Existen DVDs de doble capa, en que el laser se enfoca para una u otra. Esta caracterstica hace que doblen
la capacidad de los normales llegando a los 8,5 Gb y usando las dos caras se llega a 17 Gb.
3.2.3. Blu-Ray
Blu-Ray es un formato de disco ptico de nueva generacin. Su capacidad de almacenamiento es de 25 GB
en una capa y llega a 50GB en doble capa. Utiliza luz azul de menor longitud de onda que el DVD. Es ms
resistente a ralladuras, evitando errores de lectura.
3.3. Elementos de Estado Slido
Los dispositivos de almacenamiento externo basados en tecnologa de estado slido (SSD, Solid State
Drive) utilizan memorias tipo flash, realizadas con tecnologa de silicio. Al no tener partes mviles son ms
rpidas que los discos tradicionales, ms resistentes a impactos, duran ms y no generan ruido.
Se componen de memorias EEPROM (ROMs borrables elctricamente) organizadas en matrices de
transistores. Se distinguen las realizadas con celdas tipo NOR, y las de celdas tipo NAND. stas no
permiten acceso aleatorio, son ms baratas y el mecanismo de borrado es ms sencillo, por lo que son las
que implementan la mayora de memorias USB y tarjetas flash.
Sus aplicaciones tpicas son dispositivos USB, tarjetas flash, reproductores MP3,
telfonos mviles, etc. En el futuro, si se alcanzan capacidades de almacenamiento
similares y precios competitivos podran sustituir a los discos duros.
4. CARACTERSTICAS Y FUNCIONAMIENTO
4.1. Tecnologa Magntica
Para la lectura y escritura, los dispositivos magnticos precisan una cabeza lectora, que con un electroimn
capta o induce un campo magntico. La velocidad de rotacin tpica es de 7200 rpm. Los datos, a nivel
macroscpico poseen tres coordenadas, pista, sector y cilindro, lo que ofrece acceso aleatorio y mayor
velocidad que los dispositivos secuenciales. Los cortes sbitos de alimentacin y golpes pueden daar los
dispositivos, al colisionar la cabeza lectora con la superficie de los discos.
Una caracterstica de los discos duros y por tanto tambin de los externos es su tiempo de E/S o tiempo que
se tarda en leer o escribir un dato. Bsicamente se compone de dos tiempos: el de posicionamiento, o
tiempo de un cabezal en desplazarse hasta la pista a acceder y el tiempo de latencia, empleado en girar y
dejar el sector al que se accede debajo de la cabeza lectora. Si los datos a leer no estn almacenados en
una zona continua del disco, se habla de fragmentacin. Una fragmentacin excesiva puede mermar el
rendimiento, al requerir numerosos movimientos de la cabeza.
Para almacenar en el disco la informacin ha de organizarse segn cierto criterio. Esta organizacin es el
formateo del disco duro. El formateo puede ser fsico (de bajo nivel) y lgico. El fsico es el que trae el disco
de fbrica y establece sectores y pistas. Puede formatearse a bajo nivel con algunos programas. Cada
sector contiene su direccin en cilindro, cabeza y sector (CHS) y un campo de 512 B para datos.
El formateo lgico o de alto nivel establece la estructura de disco para el SO. Se apoya en una tabla de
particiones que almacena los sectores que pertenecen a cada particin del disco. Una particin se comporta
de forma lgica como un disco independiente. Adems existe un sector de arranque en el primer sector de
cada disco y sectores de uso del SO dedicados a describir la organizacin de ficheros.

29
4.2. Tecnologa ptica
La tecnologa ptica de almacenamiento se basa en un haz lser que lee o escribe marcas en la superficie
de un disco plstico recubierto de material reflectante y una capa de proteccin. Al recibir un rayo laser, la
capa reflectante refleja la luz de forma diferente, en funcin de si posee pit o no, lo que es interpretado por
el lector.
La velocidad de lectura mnima en un CD es 150KBps, velocidad de lectura de los reproductores de audio.
Los datos pueden ser ledos a velocidad mltiplo de sta, denominndose 2x, 4x, etc. En funcin de sta
velocidad de giro, puede implementarse tecnologa CLV (velocidad variable) o CAV (velocidad constante).
Los pits y lands se distribuyen en una pista continua en espiral a lo largo de todo el disco y que presenta la
misma densidad lineal. La secuencia de lectura para un disco ptico es posicionar el cabezal en la zona en
la que estn los datos, dirigir el lser a la superficie del disco y en funcin del reflejo obtenido en el
fotodetector, interpretar la informacin leda.
Los bytes se codifican mediante una modulacin 8 a 14, en la que cada 1 debe estar seguido al menos de
dos 0. La secuencia obtenida se agrupa en tramas de 588 bits, de los cuales 24 se usan para sincronismo,
14 de control, 536 de datos y 14 de redundancia.
La grabacin de los datos puede realizarse mediante estampado o con multisesin. La grabacin por
estampado se usa para copias masivas. El patrn se graba con lser sobre un disco de cristal pulido
cubierto de material fotosensible, se revela y cubre con nquel. El positivo generado se usa para la estampar
por inyectado de resina de policarbonato. Por ltimo se aplica la capa de aluminio y la laca protectora.
La grabacin multisesin se efecta con grabadores. En lugar de accidentes fsicos, los discos se simulan
con mtodos pticos. Estos discos tienen una capa recubierta de colorante. Cuando el colorante es
quemado en un punto, la reflectividad de ese punto se reduce simulando un pico.
4.3. Tecnologa de Estado Slido
La mayora de dispositivos de estado slido se basa en tecnologa de puertas NAND, que ofrecen ms
compacidad y robustez. Al no tener, prcticamente tiempo de acceso (no poseen partes mviles), su
velocidad de trabajo es mucho mayor que la de los dispositivos magnticos y pticos. Existen dispositivos
SSD que alcanzan velocidades de 300 MBps de lectura y escritura simtricos.
Como componentes de un dispositivo de estado slido se distinguen la controladora, cach y condensador.
La controladora gestiona las clulas y los conectores de E/S. Es el firmware del dispositivo. La memoria
cach es una pequea memoria intermedia que agiliza las operaciones. El condensador mantiene la
integridad de los datos de la cach, si existen incidencias como cortes bruscos de alimentacin.
En general, se combinan puertas NAND en paralelo (tcnicas de pipeline) dentro de un SSD, lo que
incrementa el ancho de banda y reduce la latencia.

30
TEMA 7. DISPOSITIVOS PERIFRICOS DE E/S. CARACTERSTICAS Y FUNCIONAMIENTO.

1. INTRODUCCIN
2. DISPOSITIVOS PERIFRICOS DE E/S
2.1. Monitor
2.2. Teclado y Ratn
2.3. Impresora y escner
2.4. Micrfono, auriculares y cmaras
3. CARACTERSTICAS Y FUNCIONAMIENTO
3.1. Monitor
3.2. Teclado y Ratn
3.3. Impresora y escner
3.4. Micrfono, altavoces y cmaras

31
1. INTRODUCCIN
Un perifrico es un elemento hardware dispuesto en el exterior de un equipo, de un ordenador, que permite
realizar operaciones de entrada y salida (E/S).
2. DISPOSITIVOS PERIFRICOS DE E/S
Distinguiendo en un ordenador a nivel macroscpico una parte fsica, hardware y una lgica, el software, en
el hardware se incluiran componentes y perifricos. Los componentes o dispositivos se referiran a partes
internas del chasis del equipo y los perifricos a partes externas.
Dentro de los perifricos de E/S, podran diferenciarse los que sirven slo como interfaz de entrada o de
salida, o los que realizan ambas funciones. Esta distincin no se hace aqu, y se tratan en el mismo
conjunto independientemente de la naturaleza en sentido estricto que posea el perifrico. Tambin podran
distinguirse entre perifricos de almacenamiento o de comunicaciones.
Se acta igual. De hecho y para no repetir la exposicin, los dispositivos de almacenamiento se acaban de
exponer en el tema anterior y los de comunicaciones se expondrn en el ltimo bloque. Por tanto, de los
dispositivos perifricos de E/S, destacan los que se presentan a continuacin.
2.1. Monitor
El monitor es un perifrico puro de salida que sirve para presentar informacin de forma visual en una
pantalla. Los monitores actuales son LCD o TFT. Los CRT (de tubo de rayos catdicos) prcticamente estn
obsoletos, sin embargo, ofrecan niveles de contraste superiores. Los monitores planos ofrecen ventajas
como menor coste y consumo (un tercio), menos vibracin de imagen, cero radiaciones y ergonoma.
2.2. Teclado y Ratn
El teclado es el interfaz encargado de enviar los caracteres pulsados al PC para su tratamiento. Es un
perifrico de entrada puro. Existen 3 tipos fundamentales de teclados: De membrana, silenciosos y con
tacto blando, mecnicos, ms precisos y ruidosos y teclados ergonmicos, de formas romas orientadas a
ofrecer ms comodidad a muecas y codos.
El ratn es un interfaz orientado a entornos grficos que mueve un puntero en pantalla. Es un perifrico de
entrada puro. Existen varios tipos: almbricos, inalmbricos, pticos, etc. Podra quedar obsoleto si se
populariza el uso de las pantallas tctiles.
2.3. Impresora y escner
La impresora es el perifrico utilizado para imprimir informacin en papel. Existen tres tipos de impresora
clsicos: matriciales, de tinta y lser. Es un perifrico puro de salida. Por su parte, el escner es un
perifrico de entrada, utilizado para digitalizar imgenes. Es habitual encontrar perifricos en el mercado
que integren las funciones de impresora, escner y fax.
2.4. Micrfono, auriculares y cmaras
El micrfono es el perifrico de entrada que permite registrar sonido para su tratamiento. Los ordenadores
comerciales suelen integrar un micrfono de bajo coste y calidad. Los altavoces y auriculares son perifricos
de salida que reproducen sonidos. Por tanto, realizan la funcin inversa al micrfono.
Las cmaras son perifricos de entrada que permiten capturar imgenes en movimiento. Una calidad de
imagen aceptable ronda los 30 cuadros por segundo, dado que la mnima frecuencia que capta el ojo
humano sin discontinuidad son 25 imgenes por segundo. Los problemas de imgenes discontinuas en
videoconferencia suelen deberse a la velocidad de conexin.
3. CARACTERSTICAS Y FUNCIONAMIENTO
2.1. Monitor
De entre las caractersticas de los monitores, hay que empezar por distinguir si la seal de video utilizada es
analgica o digital. Actualmente, prcticamente todos utilizan seales digitales por sus prestaciones.
Estndares analgicos a conocer son VGA, SVGA, con resolucin de 800x600 pxeles y 24 bits de color
siguiendo la codificacin RGB (rojo, verde, azul), y la especificacin VESA.
Las caractersticas de monitores digitales y de tecnologas tipo LCD se resumen en un nivel de brillo de
unas 400 cd/m2, candelas por metro cuadrado, lo que define su luminancia, no poseen parpadeo de
imagen, ofreciendo una fuente de luz constante sobre la pantalla. Los monitores LCD muestran imgenes
geomtricamente perfectas y su vida til tpica es de 50.000 horas hasta llegar a la mitad de brillo que el
producido cuando es nuevo, medida estndar de la industria para la vida del producto, ms del doble que
uno CRT. Entre las caractersticas de una pantalla hay que conocer:

32
Pixel: Es la unidad mnima representable.
Tamao de punto (dot pitch). Es el tamao medio del espacio entre dos pixeles. Da idea de la nitidez de
imagen. Tamaos de punto ms pequeos producen imgenes ms uniformes. Valor habitual es 0,28mm.
Luminancia. Medida de luminosidad, en candelas.
Contraste: Proporcin de brillo entre un pxel negro y un pxel blanco. El coeficiente de contraste de imagen
se refiere a la percepcin de la intensidad del color segn la proporcin de brillo. A mayor coeficiente, mayor
es la intensidad de los colores. Se suele expresar en cifras del estilo 50000:1.
rea til. Tamao de la pantalla, que no coincide con el rea real utilizado para representar los datos.
ngulo de visin. Mximo ngulo con el que ver el monitor sin degradacin de imagen.
El funcionamiento de un monitor LCD se resume en un mapeado de pantalla que enva la informacin de
cmo ha de iluminarse cada transistor que lo compone. El pixel se mantiene encendido hasta que se le
indica su apagado o el cambio de color.
2.2. Teclado y Ratn
Como caractersticas de los teclados habituales debe decirse que cuentan con
entre 99 y 108 teclas que suelen organizarse en cuatro bloques, de funcin,
alfanumricas, numricas y especiales.
Las teclas de funcin son de F1 a F12, cuya funcin depende del programa que las use. Las teclas
alfanumricas contienen los nmeros y letras al estilo de las mquinas de escribir y forman la parte central
del teclado. Las teclas numricas o teclado numrico se dispone a la derecha y contiene nmeros y
operaciones. Se activa con la tecla Bloq Num. En los porttiles se integra con el teclado alfanumrico. Las
teclas especiales son el grupo de Imp Pant, Bloq Despl, Insert, teclas de cursor, etc.
El funcionamiento del teclado se gestiona con un circuito controlador microprogramado (firmware), que
realiza una exploracin matricial cuando se presiona una tecla. La posicin de cada tecla es identificada con
un nmero. Cuando se pulsa una tecla, el controlador enva un cdigo identificativo (Scan Code), diferente
si la tecla no est pulsada, de forma que tambin se identifique el caso en que varias teclas se pulsen a la
vez. El nuevo cdigo de una tecla libre se denomina Break Code.
El cdigo generado es procesado por el controlador, que en general origina una interrupcin hardware que
har que el procesador ejecute su rutina de servicio.
En cuanto a las caractersticas de los ratones citar que disponen de dos botones. El izquierdo se usa para
seleccionar, con una o dos pulsaciones y el derecho, que suele ofrecer acceso al men contextual del SO.
En cuanto a su funcionamiento depende de la tecnologa que utilice para capturar el movimiento. Los
ratones mecnicos poseen una esfera que mueve dos rodillos que a su vez codifican el desplazamiento
realizado y esa informacin es procesada por el controlador del dispositivo. Los ratones pticos identifican
un rea con un sensor de movimiento que lo detecta mediante las variaciones en ese rea. Del mismo
modo se codifica el movimiento y el controlador lo interpreta y ofrece la informacin al SO.
2.3. Impresora y escner
La velocidad de una impresora se suele medir con dos parmetros: ppm o pginas por minuto y cps o
caracteres por segundo que es capaz de imprimir. La resolucin es la calidad de imagen que se puede
obtener de la impresora, medida en nmero de puntos individuales capaz de dibujar.
Se habla de ppp, puntos por pulgada cuadrada. Una impresora con resolucin de "600x300 ppp" quiere
decir que en cada lnea horizontal de una pulgada se imprimen 600 puntos y en vertical 300. Si slo aparece
una cifra suele significar que la resolucin horizontal es igual a la vertical.
Una impresora puede funcionar de varias formas. Las impresoras matriciales o "de impacto" imprimen
mediante el impacto de moldes sobre una cinta de tinta. Fueron las primeras y estn obsoletas. Las de tinta
son aqullas en las que la tinta se encuentra en forma ms o menos lquida, no impregnando una cinta.
Destacan por la sencilla utilizacin del color.
Las impresoras lser presentan mayor resolucin. La impresin se consigue mediante un lser que dibuja la
imagen en un tambor que gira hasta impregnarse de un polvo llamado tner que se adhiere por la carga
elctrica. El tambor gira y se encuentra con la hoja, en la que imprime el tner que forma la imagen.
Caractersticas de un escner son la resolucin, medida en ppp, que se define como el nmero de puntos
individuales de una imagen que es capaz de captar. Una resolucin de 300x600 ppp capta 300 puntos
individuales en cada lnea horizontal de una pulgada y 600 puntos en vertical. La resolucin ptica viene
dada por el CCD.

33
El funcionamiento consiste en un proceso de captacin de una imagen resumirdo en iluminar la imagen con
un foco, conducir la luz reflejada mediante espejos hacia un dispositivo CCD que transforma la luz en
seales elctricas que se transforman en digitales en un DAC (conversor analgico-digital) y se transmite el
caudal de bits resultante al ordenador.
El CCD (Charge Coupled Device, dispositivo acoplado por carga elctrica) es el elemento fundamental del
escner. Consiste en un elemento electrnico que reacciona ante la luz, transmitiendo ms o menos
electricidad en funcin de la intensidad y color de la luz que recibe.
2.4. Micrfono, altavoces y cmaras
Las caractersticas de los micrfonos pueden resumirse en su rango dinmico, que sera el rango de
frecuencias en los que el micrfono responde adecuadamente y la respuesta en frecuencia, que es la
intensidad de seal elctrica producida para una determinada presin sonora, a distintas frecuencias.
El funcionamiento del micrfono es el de un transductor electroacstico. Un caso tpico es el de una
membrana que recoge la presin acstica golpeando una resistencia basada en partculas carbnicas. La
resistencia cambiar su valor en funcin de la presin que ejerza la membrana, modulando por tanto la
corriente a su travs, lo que podr ser convenientemente registrado.
Las caractersticas de los altavoces pueden resumirse citando su respuesta en frecuencia, potencia,
direccionalidad y sensibilidad.
La respuesta en frecuencia en frecuencia es el comportamiento que presenta el altavoz en un rango de
frecuencias determinado, lo ideal es que sea el mismo en todo el rango. La potencia, se refiere a la potencia
elctrica, no acstica mxima que es capaz de aceptar el altavoz sin saturar. La direccionalidad refleja las
direcciones del espacio que se ven favorecidas en la emisin del sonido y la sensibilidad representa una
medida de la eficiencia entre la seal elctrica aceptada y la presin sonora generada (expresada en dB/W).
Por su parte, el funcionamiento de un altavoz, podra resumirse como el inverso al del micrfono: A partir de
un cdigo sonoro, se efecta una presin sobre transductores que generan el sonido.
La caracterstica ms notable de una cmara es su resolucin. Es una medida de la calidad de imagen. Se
mide en pxeles. Una resolucin de 5 Megapxeles registra 5 millones de puntos de informacin. Cuanto
mayor sea, mayor ser la capacidad de ampliacin sin prdida de calidad de la imagen. El funcionamiento
es similar al del escner: un transductor codifica la informacin luminosa y la registra para su tratamiento.

34
TEMA 8. COMPONENTES HW COMERCIALES DE UN ORDENADOR. PLACA BASE. TARJETAS
CONTROLADORAS DE DISPOSITIVO Y DE ENTRADA SALIDA.

1. INTRODUCCIN
2. COMPONENTES HW COMERCIALES DE UN ORDENADOR
3. PLACA BASE
3.1. Chipset
3.2. BIOS
4. TARJETAS CONTROLADORAS DE DISPOSITIVO Y DE ENTRADA SALIDA
4.1. Controladoras de dispositivo
4.2 Controladoras de E/S
4.2.1. Tarjeta de video
4.2.2. Tarjeta de sonido
4.4.1. Tarjeta de red

35
1. INTRODUCCIN
El hardware de un ordenador es el conjunto de componentes fsicos que lo forman. Su estudio puede
dividirse en el hardware externo, tambin conocido como perifricos (teclado, ratn, monitor, etc.) y el
hardware interno o componentes, relacionados entre s mediante la placa base.
2. COMPONENTES HW COMERCIALES DE UN ORDENADOR
Se puede definir el hardware de un ordenador como el conjunto de componentes que integran la parte
material del ordenador, que es como lo define la RAE. Esto incluira los componentes electrnicos,
conectores, puertos, dispositivos, cableado, etc. Se opone al trmino software, que se refiere a la parte
lgica y al firmware, la parte intermedia, referida a la programacin dura, o de bajo nivel de componentes.
El hardware comercial puede dividirse en componentes (a veces se usa la palabra dispositivo con este
significado) y perifricos. Los componentes, que pueden ser referidos muchas veces como dispositivos, se
refieren a las partes internas: memoria RAM, CPU, discos duros, etc. Los perifricos seran los elementos
que se disponen en el exterior del equipo, tales como el monitor, ratn, impresora, etc.
Tambin podra establecerse una distincin entre hardware bsico y complementario. El bsico sera el
mnimo imprescindible para que el ordenador funcione y el complementario aquel que realiza alguna funcin
no estrictamente necesaria para el funcionamiento.
As, el hardware bsico sera la memoria, UCP y un dispositivo de entrada y otro de salida. Entrar en
mayores discusiones no tiene demasiado sentido, ya que podra considerarse que los dispositivos de E/S no
siempre son necesarios, como en el caso un ordenador que haga de router. En realidad, necesitar de esa
comunicacin, aunque sea mediante administracin remota. Como hardware complementario podran
citarse altavoces, impresoras, escner, etc.
El hardware bsico se ha expuesto en los temas 4, 5 y 7, dedicados a la memoria, UCP y dispositivos de
E/S, respectivamente. En el tema 7 adems se ha presentado tambin parte del hardware complementario y
en el tema 6 lo referente al almacenamiento. Por tanto, en este tema, se presentar slo la placa base y los
componentes que restan por exponer.
3. PLACA BASE
Un circuito impreso es una oblea, una placa de material semiconductor sobre la que se imprimen lneas
elctricas, generalmente de cobre y que sirve de soporte para los circuitos integrados del sistema. La placa
base (PB) es una oblea de circuito impreso que sirve de soporte y nexo de unin entre los componentes del
sistema. Otros nombres que recibe son placa madre o principal.
Determina qu elementos forman el sistema. As, condiciona qu procesador va a llevar el equipo, cuntos
mdulos de memoria, cuantas tarjetas de expansin, etc. No todas las PB sirven para todos los
procesadores, ni todos los procesadores se pueden montar en todas las PB. Depende de los fabricantes y
la tecnologa del procesador. La eleccin de una PB depende del microque se vaya a montar. Sus
prestaciones dependen de parmetros que como el chipset que monte, el micro que soporte, la FSB, etc.
En la PB estn impresos los circuitos
llamados buses del sistema (bus de
datos, direcciones y control), por los
que circula la informacin que
intercambia el procesador con la
memoria y con el resto de elementos.
La velocidad a que los datos se
mueven se denomina Frecuencia de
Bus del Sistema, o FSB y es un
parmetro que se especifica en
Megahercios (MHz). En principio, una
cantidad de X MHz, significa que se
pueden transmitir X millones de bits
en un segundo por cada lnea del bus.
Otro elemento de la PB es el zcalo del microprocesador. Es un conector donde se inserta el micro. Existen
dos tipos fundamentales de zcalo, el tipo socket y el tipo slot. El tipo socket tiene forma rectangular con un
nmero alto de conectores hembras, donde se acopla el micro.Hay muchas variantes. Su denominacin
ms comn es socket-XXX, siendo XXX un nmero que indica cuntos conectores tiene el socket, y por
tanto, tambin el nmero de patillas del micro.

36
El tipo slot, es un zcalo alargado al estilo ranura de expansin. En equipos domsticos se utiliz en la serie
Pentium II y actualmente est obsoleto. El tercer tipo de zcalo es la no existencia de zcalo, caso, en que
el micro va soldado directamente a la PB. Esta configuracin es menos verstil, pero ms barata.
Existen en la PB otros zcalos para la conexin de los otros elementos. Destacan los de la memoria
principal (RAM), los de expansin (PCI, PCI-X, IDE), el zcalo de la BIOS o el de la memoria cach. A los
zcalos de expansin, se les denomina ranuras de expansin. A los zcalos de discos duros, unidades
pticas y dems, se les llama conectores y la norma que usan, por ejemplo, conectores IDE o SATA.
El conector de alimentacin permite la entrega de energa elctrica a la placa. A ste se conecta la salida de
la fuente de alimentacin. En los PC domsticos es un zcalo de doce pines llamado conector ATX.
Adems se disponen conectores auxiliares ms pequeos para alimentar ventiladores y similares.
ATX es un conjunto de especificaciones para PB. Para abaratar costes y terminar con los distintos formatos,
los fabricantes definieron estndares que especifican recomendaciones sobre tamao y posicin de los
elementos en la placa. Un determinado formato de placa en principio no afecta a su rendimiento. De la
especificacin ATX recibe su nombre el conector de alimentacin.
El formato ATX es una especificacin de Intel. Bsicamente recomienda unas medidas para la placa de
unos 30 x 25 cm, disponiendo conectores y zcalos ms accesibles y cercanos a su posicin final, por tanto
reduce la longitud de los cables evitando interferencias y emisin de radiacin, consiguiendo placas ms
fiables, econmicas y funcionales. Otras especificaciones son Micro-ATX, Flex-ATX, Mini-ITX o BTX, cada
una con sus particularidades.
Es habitual encontrar integrados en la PB distintos puertos y controladores. Un puerto fsico, es un interfaz
hardware, que debe distinguirse de la idea de puerto lgico. Un puerto lgico es un nmero identificativo de
una conexin. En un puerto fsico pueden existir varios puertos lgicos. Por ejemplo una conexin a Internet
puede usar simultneamente un programa P2P, correo electrnico, un navegador web, etc. Cada programa
utiliza para identificarse un nmero, un puerto lgico. Sin embargo todos utilizan el mismo puerto fsico.
Un conector es un componente hardware que permite la conexin a un puerto fsico, el interfaz. Los puertos
y conectores habituales se enumeran en la siguiente tabla:
Puerto Caractersticas Aspecto
Puerto serie Norma RS-232. Conocido como COM1, COM2... El conector del sistema
suele ser un DB-9 macho como el de la figura.
Puerto Norma IEEE 1284. Conocido como LPT1, LPT2... El conector tpico es el DB-
Paralelo 25 hembra en el sistema y el macho en el cable. En desuso.
Puerto PS/2 Tanto el puerto como el conector reciben el mismo nombre PS/2. Se usan los
conectores hembra en el sistema para teclado y ratn.
Puerto Para la conexin de red de rea local. Los conectores tpicamente son RJ-45
Ethernet hembra en el equipo y macho en el cable. Tambin se usa en puertos RDSI.

Puerto USB Es un estndar desarrollado por distintos fabricantes. Prcticamente se est


imponiendo y sustituyendo a los anteriores.
Conector Norma IEEE 1394. En dispositivos Apple se denomina firewire. Sony lo
Firewire denomina i.link.
Conectores Conectores de audio tpicos de 3.5 mm o minijack. En la PB o tarjeta de
Jack sonido suelen integrarse los conectores hembra. Los dispositivos de audio
suelen llevar cable terminado en el conector macho.
Conector IDE Paralell ATA. Interfaz de datos entre PB y dispositivos de almacenamiento,
o PATA como el disco duro o DVD. En desuso por la implantacin de SATA.
Conector Serial ATA. Interfaz de datos entre PB y dispositivos de almacenamiento.
SATA Ms rpido y con mejor rendimiento que IDE.

SCSI Small Computer System Interface. Estndar para transferencia de datos


utilizado en sistemas de alto rendimiento, servidores, etc.

PCI Peripheral Component Interconnect, estndard de conexin de perifricos.

PCI-Express Evolucin de PCI ms rpido y con mejores prestaciones

37
Otro elemento de la PB que llama la atencin es la pila. Es la que se usa para mantener la hora del equipo
cuando no est alimentado, as como evitar que se borre la informacin almacenada en el firmware (BIOS).
En la PB tambin se disponen los chipset, de un tamao considerable y fcilmente identificables.
3.1. Chipset
Chipset se traduce por conjunto de chips, conjunto de circuitos integrados. Integran casi todas las funciones
de control. La frecuencia, velocidad, si se desea, a la que se intercambian los datos en la placa depende de
los chipset y el resto de la electrnica. Las funciones que desempean los chipset son, bsicamente:
Control de la Frecuencia de Bus del Sistema (FSB), estndares de memoria soportados y protocolo de
transferencia de datos, soporte de estndar grfico, gestin de los puertos de E/S (USB, Firewire, puertos
serie y paralelo, etc.), y funciones integradas (audio, video, red, infrarrojos...), control de interrupciones y
acceso directo a memoria, reloj, gestin de energa, gestin de la memoria. Pero, su principal funcin es el
soporte al microprocesador.
La deteccin correcta del micro y el soporte de sus funciones son tarea del chipset. Esto marca qu
microprocesadores podrn utilizarse en la placa, generalmente de una misma familia. De la calidad y
caractersticas del chipset depender la obtencin del mximo rendimiento del microprocesador, la
capacidad de actualizacin y uso de nuevas tecnologas que vayan apareciendo.
En general, en equipos domsticos, los chipsets se agrupan segn sus funciones en NorthBridge y
SouthBridge. El NorthBridge se encarga de las tareas ms importantes como gestionar la memoria, el micro
y puertos. Suele ser el chip ms grande. El SouthBridge gestiona tareas secundarias y otros componentes
como los canales IDE, disqueteras o puertos USB. Algunos fabricantes de chipsets conocidos: Intel, AMD,
Nvidia, VIA, SiS, Ali.
En relacin al control de la Frecuencia de bus del sistema hay que decir que sta se fija con un reloj, en
general de cuarzo, que se alimenta de la energa que suministra la pila cuando el equipo est apagado. La
frecuencia de trabajo del microprocesador es un mltiplo de sta. El microprocesador trabaja a una tasa
mayor que la de intercambio de datos en la placa. Un ejemplo para entenderlo: Un camarero atiende a la
vez a muchas personas pero no en el mismo momento. Sin embargo, parece que todos estn recibiendo su
servicio simultneamente. La velocidad de trabajo del camarero, el microprocesador, es ms rpida que la
de los clientes, el resto de elementos.
3.3. BIOS
La BIOS es un componente intermedio entre el hardware y el software, que se da en
llamar firmware. Esto se expone con detenimiento en el siguiente mdulo. Por tanto,
desde el punto de vista del hardware lo que interesa es saber identificar el chip y los
jumpers que borran la BIOS.
La BIOS (Basic Input-Output System) es el sistema bsico de entrada/salida, compuesto por un programa
incorporado en un chip de la placa base que se encarga de realizar las funciones bsicas de manejo y
configuracin del ordenador. Fsicamente es un chip de forma rectangular.
Adems, la BIOS conserva ciertos parmetros como el tipo de disco duro, la fecha y la hora del sistema, etc,
los cuales guarda en una memoria del tipo CMOS, de muy bajo consumo y que es mantenida por un pila
cuando el ordenador est desconectado. Las BIOS pueden actualizarse mediante la extraccin y sustitucin
del chip (mtodo muy delicado) o mediante software, si son del tipo flash-BIOS.
4. TARJETAS CONTROLADORAS DE DISPOSITIVO Y DE ENTRADA SALIDA
Las tarjetas controladoras de dispositivo y las de entrada salida, que proporcionan el interfaz con perifricos
o de comunicaciones. Representan el hardware y el firmware necesarios para realizar las funciones para las
que se han diseado. El hardware se refiere al conjunto, con especial atencin a los conectores. Al hablar
de hardware se engloba, si se desea, de forma un poco grosera, el firmware, que se refiere a los circuitos
que implementan las funciones de control y que se programan a bajo nivel. Las tarjetas controladoras
pueden presentarse en forma de tarjeta, que habr que conectar a la PB, o bien integrarse.
4.1. Controladoras de dispositivo
Un controlador de dispositivo o controlador, es un programa de bajo nivel, embebido en la lgica de un
circuito, un chip, que permite al SO controlar un dispositivo o elemento del sistema. Es el firmware del
dispositivo. El firmware de la PB es la BIOS. Todo dispositivo posee un firmware, un controlador. Esto es as
en prcticamente todo elemento electrnico, una lavadora, un televisor, etc.
El controlador, hablando propiamente es la programacin del chip que controla el dispositivo en cuestin.
Generalmente, se utiliza como sinnimo de driver. Hay una diferencia, los drivers son programas que
instalan el firmware, ofreciendo un interfaz grfico, ms amigable.

38
4.2 Controladoras de E/S
Como resulta lgico, lo dicho para las controladoras de dispositivos es vlido para los elementos de E/S. As
podra definirse una controladora de E/S, como el firmware que realiza las funciones de control para un
dispositivo de E/S (ratn, teclado, monitor...) o de comunicaciones.
Las controladoras de E/S, montadas en dispositivos como las tarjetas de video, tienen caractersticas de las
que se suelen hablar habitualmente, como pueda ser la resolucin de video. Por ello, slo quedara incluir
para ser presentados, algunos componentes, que adems estn muy relacionados con la PB.
4.2.1. Tarjeta de video
Es el dispositivo que transmite al monitor la informacin a presentar en pantalla. Interpreta los datos que
llegan del procesador, preparndolos para presentarlos en pantalla en forma de matriz de puntos o pxeles.
Si el monitor es analgico, los datos digitales se transforman a una seal analgica.
Este proceso lo realiza el microprocesador grfico y el conversor analgico-digital o RAMDAC, pudiendo
existir chips para otras funciones o bien se integran en un nico chip. La potencia del micro puede ser un
diferenciador comercial, por eso algunos tienen nombre propio tipo Virge, Voodoo, TNT2. La evolucin de
las tarjetas de video puede resumirse citando los principales hitos de su desarrollo.
Las primeras tarjetas de vdeo presentaban slo texto monocromo. De ah la denominacin MDA,
Monochrome Display Adapter. Los primeros PC, necesitaban una tarjeta de vdeo capaz de presentar
grficos. As surgi la CGA (Computer Graphics Array). Las CGA ofrecan una resolucin (horizontal x
vertical) para color de 320x200 y de 4640x2002 monocromo. Hrcules era una tarjeta grfica profesional.
Daba una resolucin de grficos de 720x348 pero no ofreca color.
Las tarjetas EGA, fueron definidas por IBM y conseguan resoluciones de 320x200 con 6 colores y 640x200
y 640x350 para 16 colores. Esto hizo posible que se extendieran los entornos grficos de los SO.
El estndar ms conocido es VGA. Posee varios modos de vdeo posibles, siendo el ms bsico 640x480
puntos con 256 colores, conocido como "VGA estndar" o "resolucin VGA". El xito de VGA llev a
numerosas mejoras, entre ellas SVGA (800X600 y 256 colores), XGA (1024x768 y 65.356 colores) e IBM
8514/A (1024x768 y 256 colores, no admite 800x600). La mayora de tarjetas son compatibles con varios
estndares, o alguno de sus modos. Algunas ofrecen modos adicionales al aadir ms memoria de vdeo.
La resolucin es el nmero de puntos que es capaz de presentar por pantalla una tarjeta de vdeo. As, una
resolucin de "800x600" significa que la imagen est formada por 600 filas de 800 puntos cada una. El
nmero de colores, son los que puede presentar a la vez por pantalla la tarjeta. La combinacin de estos
dos parmetros se denomina modo de vdeo y estn estrechamente relacionados: a mayor resolucin,
menor nmero de colores representables y a la inversa.
En tarjetas SVGA y superiores lo que las liga es la cantidad de memoria de vdeo (la que est presente en
la tarjeta, no la memoria RAM). Algunas combinaciones posibles son:
El clculo de la memoria Memoria de Vdeo Mx. resolucin (2D) Mx. n de colores
necesaria es: (Res.
Vert.)x(Res. Horiz.)x(Bits 512 KB 1024x768 a 16 colores 256 a 680x480
de color)/8 1 MB 1280x1024 a 16 colores 16,7 millones a 640x480
Los monitores CRT 2 MB 1600x1200 a 256 colores 16,7 millones a 800x600
deban soportar el modo
de vdeo, ya que si no 4 MB 1600x1200 a 65.356 16,7 millones a 1024x768
podan daarse. colores

Esto dependa de la Frecuencia Horizontal de refresco, nmero de veces que se dibuja la pantalla por
segundo; cuanto mayor sea menos se cansa la vista. Los modos de resolucin para grficos en 3D
necesitan ms memoria, en general unas 3 veces ms.
4.2.2. Tarjeta de sonido
Las tarjetas de sonido convierten sonido analgico a digital y viceversa. Esta funcin la realiza el DAC
(Conversor Digital-Analgico). Si se necesita reproducir sonido, tratarlo al mismo tiempo con una fuente
externa y volver a grabarlo, o reproducir y grabar al mismo tiempo, se est pidiendo una caracterstica que
se conoce como "fullduplex". Para ello, los dos conversores ADC-DAC deben trabajar de forma separada.
Las tarjetas de sonido, salvo excepciones profesionales, toman muestras de sonido a 16 bits. Es el nmero
de voces. Esos bits definen la cuantificacin de las muestras. Para emitir sonidos, los altavoces se mueven
dando golpes. Estos golpes hacen que el aire vibre, y el odo capte la vibracin, que transforma en impulsos
nerviosos que van al cerebro. El odo humano es capaz de reconocer unos 44.000 sonidos/segundo.

39
Los 16 bits de cuantificacin de las tarjetas de sonido ofrecen la posibilidad de representar 65.536 sonidos
diferentes, lo que es suficiente para una correcta calidad. Si se usasen 15 bits, se obtendran 32.762; se
estara por debajo del umbral de calidad de percepcin.
Las tarjetas de sonido suelen trabajar con una resolucin de 441KHz, las semi-profesionales sobre los
50KHz. Las profesionales pueden llegar a 100KHz. El uso de ese muestreo ampliado se debe a que si los
datos de partida no son fieles o se pierde calidad, se dispondr de ms muestras para compensarlo.
El sonido digital se representa en diversos formatos. El formato digital tiene el inconveniente de requerir
mucha capacidad para almacenar relativamente poca informacin. Se pueden hacer los clculos fcilmente:
audio a 44,1KHz, con 16 bits y en estreo, da 172 Kb/segundo (10,3 MB por minuto). Este mtodo es el
utilizado en los ficheros WAV o en el Cd-audio que no es til profesionalmente, debido a la cantidad de
memoria necesaria. Una solucin es el formato MIDI (Musical Instrument Data Interface).
El formato MIDI bsicamente consiste en representar las notas musicales del sonido y por tanto ocupa
menos. As las mismas notas suenan "igual" en distintos instrumentos. Para reproducir el sonido de un
instrumento, se estandariza su comportamiento y con el archivo MIDI se reproduce. La tarjeta de sonido
reproduce las composiciones MIDI, recomponiendo los sonidos. Se usan dos mtodos, la sntesis FM, en
que un procesador reproduce el sonido mediante el empleo de frmulas trigonomtricas, y la sntesis por
Tabla de Ondas, en que los sonidos de los instrumentos estn grabados en una memoria de la tarjeta.
Un canal es una pista de sonido en la que se graban los datos a reproducir para cada altavoz. Cada altavoz
reproducir el sonido que le corresponde, logrando mayor realismo. El sonido estreo utiliza 2 canales.
Los conectores de sonido suelen ser tipo mini-jack. Otro tipo de conector son los RCA,
que ofrecen mayor calidad y llevan un canal independiente por conector, mientras que en
el tipo jack suelen ir dos.
Otro tipo de conectores son los S/PDIF o salidas pticas digitales. Es un estndar
desarrollado por Sony y Philips como interface de conexin digital de altas prestaciones.
Las conexiones MIDI sern necesarias en caso de trabajar esos dispositivos. Si se dispone de una salida
MIDI, cualquier partitura en ese formato podr ser reproducida por cualquier instrumento MIDI conectado.
4.2.2. Tarjeta de red
La tarjeta de red es el interface entre el equipo y la red. Se conoce como NIC o Network Interface Card. Es
un circuito impreso con los componentes necesarios para ofrecer el acceso al medio de transmisin.
La NIC incluye el interfaz de la red a la que se conecte el equipo. Si es un conector fsico, puede ser el
tpico RJ-45 para redes Ethernet, o un RJ-11, tpico de conexin a la lnea telefnica por mdem. Si se trata
de una red Wifi, se hablar de una antena. La instalacin de una tarjeta de red en un equipo se hace a
travs de otro interfaz entre ambos, los clsicos son USB, PCMCIA, PCI, etc., aunque en general, estas
tarjetas vienen integradas en la placa base.

40
TEMA 9. LGICA DE CIRCUITOS. CIRCUITOS COMBINACIONALES Y SECUENCIALES.

1. INTRODUCCIN
2. LGICA DE CIRCUITOS.
2.1. lgebra de Conmutacin
2.2. Tecnologa Digital. Puertas Lgicas
3. CIRCUITOS COMBINACIONALES Y SECUENCIALES.
3.1. Circuitos Combinacionales
3.1.1. Sumadores
3.1.2. Multiplexores
3.1.3. Codificadores
3.1.4. Circuitos Lgicos Programables
3.2. Circuitos Secuenciales
3.2.1. Clula de memoria. Bscula RS
3.2.2. Registros
3.2.3. Contadores
3.2.4. Registros de desplazamiento
3.2.5. Memoria RAM

41
1. INTRODUCCIN
Los ordenadores procesan informacin en cdigo binario, lo que ofrece un soporte matemtico adecuado
para ser implementado fsicamente con circuitos digitales.
Los circuitos digitales tienen su base en las puertas lgicas, circuitos electrnicos que realizan las
operaciones lgicas elementales. Su combinacin genera circuitos cada vez ms complejos, en los que se
hace necesario conocer su lgica para poder disearlos.
2. LGICA DE CIRCUITOS.
La lgica de circuitos se apoya en el lgebra binaria, discreta o lgebra de Boole. Es la base de la
electrnica digital y la gran cantidad de aplicaciones con que cuenta debido a que presenta un aumento de
fiabilidad en el procesamiento y transmisin de informacin, posee tecnologas de fabricacin adecuadas,
una amplia distribucin comercial y un soporte matemtico adecuado para su desarrollo.
2.1. lgebra de Conmutacin
El lgebra de conmutacin es la parte de la matemtica centrada en el sistema binario. Tambin se conoce
como lgebra de Boole. Su importancia se hereda por ser el sistema binario de los ms adecuados para la
representacin de informacin y variables, como se ha visto.
El lgebra de Boole opera con las propiedades habituales
del lgebra, como la propiedad asociativa, conmutativa o
distributiva. La definicin de operadores se realiza
mediante tablas de verdad. Ejemplos:
- NOT X: X - AND: X Y - OR: X + Y
La tabla de verdad indica el resultado de la operacin. Su utilidad es la siguiente: para tratar la informacin,
se usan enunciados lgicos. Un enunciado lgico es una proposicin que puede tomar dos valores,
verdadero o falso, en lgica binaria se usa por convenio 1 para verdadero y 0 para falso.
Sea la siguiente afirmacin: Si hace fro y hay nubes, llover. Llover? Slo si se verifican las dos
condiciones a la vez, es decir si el enunciado hace fro toma el valor 1 y a la vez el enunciado hay nubes
toma tambin el valor 1. En cualquier otro caso no llover. Este enunciado puede tratarse con una
operacin AND en la que la variable X sea el enunciado hace fro y la variable Y hay nubes. Si se
enuncia la proposicin: Si hace fro o hay nubes, llover. La lgica cambia. Bastara con que se verificase
slo una de las condiciones, que haga fro o nubes para que llueva en caso contrario no llover. Se
representara con una operacin tipo OR.
En lgica de circuitos existen dos convenciones, la lgica positiva y la negativa, poco usada. En lgica
positiva un 1 se representa con un nivel de seal alto (5V, por ejemplo) y un 0 con un nivel bajo. En lgica
negativa sera al revs. Las seales se nombran con variables (X, Y, CLK...).
Sea la situacin de tres variables, pulsar las teclas Ctrl+Alt+Supr, en un ordenador. Si se denota la variable
X como pulsar Ctrl, Y pulsar Alt y Z pulsar Supr, cuando se de la variable RST=XYZ, es decir, cuando
se verifiquen las tres simultneamente, el ordenador se reiniciar. Este ejemplo tan peregrino debe servir
para dar una idea del tipo de entorno en el que se mueve la lgica de circuitos.
El nmero de combinaciones posibles entre n variables binarias es 2. Sean por tanto
las tres variables, X, Y y Z, con sus 8 posibles combinaciones. La figura presenta qu
resultado da su combinacin. El producto de variables, referido a una tabla de verdad,
se denomina minterm. Su suma maxterm.
Como se observa, F slo es verdad (1), cuando el minterm XYZ es o bien 010, 101, o
111. En caso contrario F es cero. Luego, F se puede escribir como suma de minterms:
F=XYZ+XYZ+XYZ. O bien como producto de maxterm: F= (X+Y+Z)(X+Y+Z)(X+Y+Z).
Implementar esta funcin en un circuito electrnico es sencillo, como se explica en el siguiente apartado. Lo
complicado es la simplificacin del diseo. Un problema complejo en general dar un diseo complejo.
Por eso se usan mtodos de simplificacin. El clsico es la
utilizacin de mapas de Karnaugh que realizan una
simplificacin sistemtica de la funcin. El procedimiento es
colocar los valores de la tabla de verdad en el mapa. Se
agrupan rectngulos adyacentes con la mayor cantidad de 1
(minterms) o 0 (maxterms). De los grupos slo se tiene en
cuenta las variables que no cambian, sumando minterms o
multiplicando maxterms, segn el criterio elegido. Un ejemplo
se muestra en la figura.

42
2.2. Tecnologa Digital. Puertas Lgicas
Una conjuncin lgica, una multiplicacin binaria, en electrnica se implementa con un circuito llamado
puerta lgica tipo AND. La suma binaria se implementa una puerta lgica tipo OR. Etctera.
En la siguiente figura se presentan los tipos de
puertas lgicas ms comunes. Hay muchas otras,
pero stas son las fundamentales, que sirven para
ilustrar los fundamentos de la electrnica digital.
Las puertas lgicas representan la base sobre la
que se asientan los circuitos digitales, que van
incrementando su complejidad hasta llegar a los
microprocesadores.
De las puertas arriba representadas, la puerta AND y la OR ya han sido explicadas. El inversor simplemente
niega la entrada, es decir, si a la entrada se tiene un 1, a la salida dar un 0 y viceversa. Su nombre es
puerta NOT. La puerta NOR es una OR, a la que a la salida se integra un inversor. Lo mismo para la puerta
NAND: Una puerta AND cuya salida se niega.
La puerta XOR es un comparador: Si las dos entradas, A y B, son iguales, la salida se anula y si son
distintas a la salida da un 1. Por fin, la correspondencia entre la electrnica analgica y la digital se puede
ver en los dos prximos ejemplos de implementacin de puertas lgicas con transistores.
A la izquierda se presenta un transistor que llevado al corte o saturacin, es utilizado como una puerta
inversora. Si la tensin de entrada Vi es 0, la corriente en la base ser nula y por tanto la corriente de
colector ser nula. El transistor es un circuito abierto y la salida Vo prcticamente se cortocircuita a la
alimentacin Vcc, es decir un 1.
Luego un 0 a la entrada produce un 1 a
la salida. Si a la entrada hay presente
un 1, por ejemplo 5 V, o un valor
cercano a Vcc, la tensin colector
emisor ser casi 0, el transistor satura y
se comporta casi como un cortocircuito,
llevando Vo a masa, es decir, un 0. Un
1 a la entrada produce un 0 a la salida.
Se ha implementado un inversor.
A la derecha se presenta un ejemplo de implementacin de una puerta NAND con transistores. El transistor
T1 representa dos transistores en paralelo. De esta manera si A o B, son 0, T1 saturar. Esto produce el
corte de T2 y T4. T3 satura y lleva la salida a la alimentacin, es decir un 1. Si A y B son 1, T1 se corta y T2
satura, T3 se corta y T4 satura llevando la salida a 0.
3. CIRCUITOS COMBINACIONALES Y SECUENCIALES.
Los circuitos digitales se clasifican en circuitos combinacionales, en que las salidas son funcin del valor de
las entradas y circuitos secuenciales, en que las salidas son funcin del valor de entrada y su secuencia.
3.1. Circuitos Combinacionales
La caracterstica de un circuito combinacional es la funcin lgica que realiza. Los circuitos combinacionales
ms sencillos son las puertas lgicas. A continuacin se presentan los circuitos combinacionales tpicos.
3.1.1. Sumadores
Los sumadores son circuitos que
implementan la suma binaria. El
bloque elemental es el sumador
completo o full-adder con
tratamientos de acarreos de
entrada Cin y de salida Cout. Su
tabla de verdad y su circuito
interno se representan en la figura.
Para sumar palabras de ms bits, se pueden emplear sumadores en serie, como la estructura tpica del
sumador Ripple Carry. Su velocidad viene limitada por la cadena de acarreo. Para el desarrollo de
sumadores rpidos se trabaja sobre la cadena de acarreo para eliminarla o limitarla (sumadores tipo look-
ahead carry).

43
3.1.2. Multiplexores
Los multiplexores seleccionan una entrada de entre 2 posibles en funcin de n bits de control
(seleccin).Los demultiplexores realizan la funcin inversa. A partir de n entradas de control, se transfiere la
entrada a una de entre 2 salidas posibles. Transfieren datos de una fuente comn a varios posibles
destinos. A veces tambin se denominan distribuidores.
En las siguientes figuras, a la derecha, se muestra el esquema general de un multiplexor de dos entradas y
a la izquierda, un ejemplo de una de sus numerosas aplicaciones, la implementacin de funciones lgicas:

3.1.3. Codificadores
Los codificadores (encoders) convierten un cdigo de 2 bits a uno de n bits. Se usan para compactar
informacin y asignar prioridades (codificadores de prioridad).
Los decodificadores (decoders) binarios
convierten un cdigo de n bits a una salida de
un solo bit de entre 2 (1-out-of-2). Pueden
usarse para implementar funciones lgicas y
en el direccionamiento de circuitos de
memoria y dispositivos E/S.

Los circuitos integrados, en general presentan una E, de enable o habilitacin de forma que cuando E est a
nivel bajo, la salida se anula o lo que es lo mismo, el circuito slo funciona cuando E est a nivel alto.
Se presenta un ejemplo real,
el decodificador BCD a 7
segmentos.
El cdigo BCD, ya explicado,
es muy usado para excitar
los leds de los displays de 7
segmentos.
Un ejemplo es el circuito
integrado 74LS247, del que
se puede ver a continuacin
su tabla de funcionamiento.
Como ejemplo de codificador se presenta el codificador binario 2 a 4. En el esquema se representa cmo en
funcin de dos entradas se elige un bit de salida en forma de minterm. Esto es muy til para implementar
funciones lgicas.
3.1.4. Circuitos Lgicos Programables
Los dispositivos lgicos programables (PLD) al poder ser programados, no tienen una funcin establecida.
Ejemplos de PLD son memorias ROM y variantes PROM, EPROM y EEPROM y los PLA o Arrays lgicos
programables. Los PLA son una matriz de puertas que pueden programar su funcin realizando conexiones
entre ellas. Las memorias ROM constan de n entradas (Bus de Direcciones) y b salidas (Bus de Datos). Por
cada combinacin de las entradas (2) existe un dato de longitud de b bits. En la memoria caben (2)
palabras de b bits, o sea, un total de 2 x b bits.
Una ROM (Read Only Memory) puede verse
como un circuito combinacional que responde a
una tabla de verdad. Puede implementar
cualquier funcin lgica combinacional en donde
las entradas de la funcin se conectan al bus de
direcciones y las salidas se conectan al bus de
datos. Tambin son tiles para tabular valores de
multiplicacin, funciones trigonomtricas, etc., lo
que acelera el proceso de datos.

44
3.2. Circuitos Secuenciales
Los circuitos secuenciales ofrecen valores de seales de salida que dependen de los valores de las seales
de entrada actual y anterior (historia del circuito). Las variables llamadas estados guardan la informacin de
la historia del circuito. Sus usos principales son como elementos de memoria y como circuitos de control.
Las variables de estado se guardan en uno o ms bits de informacin. Considerando como entradas las
entradas del circuito y las variables de estado, el diseo de un circuito secuencial es igual al de uno
combinacional. Para el diseo se utilizan tablas de estados, en las que para cada estado actual Q(t)
especifica las salidas actuales y los estados siguientes Q(t+1) en funcin de las entradas actuales.
Muy importante en los circuitos secuenciales es la seal de reloj, que constituye la referencia temporal. Las
variables de estado deben cambiar con los flancos del reloj
3.2.1. Clula de memoria. Bscula RS
Los circuitos secuenciales necesitan algn tipo de memoria. La clula de memoria bsica almacena un bit y
puede obtenerse combinando dos inversores en que la entrada de uno sea la salida del otro y viceversa, o
con puertas NAND, como en la figura. Este circuito se conoce como biestable, flip-flop o bscula R-S.

Es el circuito secuencial ms simple y presenta dos


estados estables, codificados con una variable (en
general Q). Los estados estables de Q son 0 y 1. Los
terminales permiten escribir en la bscula, que guardar
la informacin mientras est alimentada.
Tiene dos entradas, R y S, a nivel bajo. Cuando R=0 y S=0, la salida Q y Q es 1, que es un estado
inestable, incoherente, por lo que esa combinacin ha de evitarse. Cuando R=1 y S=0, Q=0, se almacena
un 0 en memoria. Si R=0 y S=1, Q=1, almacenndose un 1. Si R=S=1, la informacin se mantiene.
En general, el circuito incluye una entrada, la seal de reloj, para sincronizarse y habilitar las transiciones.
Variantes de la bscula RS son los circuitos Latch D, que la salida Q sigue a la entrada D, validada con otra
seal C, los Flip-flop D, activados por flanco, o los Flip-flop JK, que eliminan la indeterminacin de los RS al
cambiar de estado cuando las entradas J=K=1. Si se cortocircuitan las entradas JK de un flip-flop de ese
tipo, se obtiene uno tipo T, muy importante para implementar contadores.
3.2.2. Registros
Los registros almacenan palabras. Un registro de p
posiciones almacena p bits en p biestables. Un banco
nm
de registros est formado por un conjunto de 2
n
biestables agrupados en 2 palabras de m bits cada
una. Por lo tanto hay m entradas de datos y m salidas.
N entradas de direccin para seleccionar la palabra a
leer y n para escribir adems de las entradas de control.
Para escribir una palabra, se dispone a la entrada del
registro (bus de datos). En la entrada de direccin (bus
de direcciones) se dispone la direccin de la palabra a
escribir. El bus de control, dispondr las seales de
control de la escritura o lectura. La escritura es
destructiva, mientras que la lectura ofrece en el bus de
datos la palabra indicada en el bus de direccin. Un
registro de desplazamiento de p bits es un sistema
secuencial sncrono
3.2.3. Contadores
Un contador es cualquier circuito secuencial cuyo diagrama de estados es un nico ciclo. Posee una
entrada de reloj y unas salidas, tales que presentan una configuracin preestablecida en un determinado
orden. Pasando de una configuracin a la siguiente cada vez que llega un pulso de reloj.
Los contadores ms simples son los binarios. Su funcionamiento consiste en aumentar el valor binario de la
salida cuando se recibe un pulso de reloj.
3.2.4. Registros de desplazamiento

45
Son registros que realizan el movimiento de posicin de los bits en un bus. Son muy utilizados en
conversiones serie-paralelo y viceversa. Se usan para el manejo de datos serie como en la norma RS-232,
transmisin y recepcin de mdem, Ethernet, SONET, etc.
3.2.5. Memoria RAM
n
La memoria RAM es una matriz de celdas de almacenamiento de 2 palabras de m bits, por lo que el bus de
datos tiene m lneas a la entrada y a la salida y el bus de direccin n lneas, con sus correspondientes
seales de control. Posee un comportamiento similar a un registro, con acceso aleatorio.
Por lo que respecta a la estructura, la RAM consta de celdas de almacenamiento, un decodificador de
direcciones y adaptadores para controlar la E/S.
Hay dos tipos de RAM: SRAM o esttica en la que cada celda almacena un bit mientras exista alimentacin
y DRAM o dinmica, que deben ser refrescada cada cierto tiempo debido a efectos capacitivos. Al usar
menos transistores ofrecen mejor integracin, son ms baratas, pero ms lentas al tener tiempo de refresco.
Una memoria RAM y un contador pueden implementar memorias de acceso secuencial, tiles para los SO y
programas. En las memorias secuenciales la lectura de un dato se realiza una nica vez y al leerlo es
borrado de memoria. Se distinguen memorias secuenciales tipo FIFO y LIFO.
En las memorias LIFO (Last-In First-Out), el ltimo elemento introducido en la memoria (tambin conocidas
como memoria pila) es el primero en leerse. La memoria tipo FIFO (First-Int Fisrt-Out) ofrece a la salida el
elemento ms antiguo no ledo. Por este comportamiento tambin se las conoce como memorias tipo cola.

46
TEMA 10. REPRESENTACIN INTERNA DE LOS DATOS.

1. INTRODUCCIN
2. REPRESENTACIN INTERNA DE LOS DATOS
2.1. Instrucciones
2.2. Caracteres
2.3. Nmeros
2.3.1. Enteros
2.3.2. Reales
2.4. Otros

47
1. INTRODUCCIN
Un dato es la representacin simblica de una entidad. Aporta informacin pero puede no tener significado.
Segn la RAE es un antecedente necesario para llegar al conocimiento de algo.
Los datos se representan con magnitudes fsicas que codifican un alfabeto numrico. Un alfabeto es un
conjunto de smbolos con los que se presenta informacin. Para poder procesar la informacin, un
ordenador debe representar los datos internamente de alguna forma, como las que aqu se presentan.
2. REPRESENTACIN INTERNA DE LOS DATOS
La representacin interna de los datos que maneja un ordenador no debe coincidir necesariamenta con la
representacin de un dato a nivel humano, sino que debe ser adecuada a la tecnologa empleada. La
traduccin entre alfabetos se realizar cuando sea preciso para establecer la comunicacin entre humano y
mquina. Esta operacin de traduccin entre alfabeto fuente a cdigo, es la codificacin.
Como se ha visto, internamente, el ordenador utiliza el sistema binario para representar la informacin. En
funcin del tipo de informacin a representar, la codificacin binaria ser diferente, estar ms adaptada al
proceso que se dar a los datos. Por ello la representacin interna de una instruccin, carcter o nmero
siguen convenios diferentes.
Estos tipos diferentes de codificacin buscan optimizar el almacenamiento, representacin, proceso y
comunicacin de la informacin. Condicionantes a tener en cuenta sern la memoria disponible, que
siempre ser finita, y por tanto tambin las representaciones, en particular numricas, adems los buses y
registros del sistema tendrn un cierto tamao a considerar en la representacin.
2.1. Instrucciones
Una instruccin es un conjunto de smbolos que el ordenador interpreta para realizar las operaciones de las
que consta un programa. Las instrucciones de un programa en lenguaje de alto nivel o en ensamblador se
dan en forma de texto y el traductor, ya sea un compilador o intrprete, las transformar en instrucciones
mquina, interpretables por el ordenador.
Las instrucciones utilizadas por los ordenadores pueden tener diferentes formatos, pero como se ha
presentado ya, el formato tpico incluye una parte que las diferencia, el cdigo de operacin, y el campo de
direccin.
El campo CO diferencia las instrucciones entre si. Suele ocupar los bits ms significativos de la instruccin.
Si una instruccin ocupa ms de una palabra, el CO estar en la primera palabra. El campo de direccin no
est presente en todas las instrucciones ya que algunas instrucciones no emplean datos y en otras se utiliza
no para direccionar la memoria, sino que directamente contiene el dato necesario para operar.
2.2. Caracteres
En la comunicacin mquina hombre, sulen usarse caracteres alfabticos para tratar informacin. A nivel
interno, el ordenador representa el conjunto de caracteres codificando cada uno con un byte, tpicamente.
Las codificaciones ms habituales son:
- Cdigo ASCII. (American Standard Code for Information Interchange). Publicado en 1963 por ASA (actual
ANSI), utiliza 8 bits para codificar informacin alfanumrica, de los que utiliza los 7 primeros.
- EBCDIC. (Extended Binary Coded Decimal Interchange Code): Usa 8 bits para cada carcter por lo que se
pueden representar 256 caracteres, de los cuales, los 32 primeros son de control. Cada octeto se divide en
2 partes, bits de zona y bits de dgito. Los 128 primeros caracteres son alfanumricos y los 128 restantes
representan caracteres grficos.
- UNICODE. Es un estndar internacional del consorcio Unicode. Representa cualquier carcter. SO como
Windows NT y posteriores, Linux, Mac OS X y lenguajes de programacin como Java, Perl y C# lo usan.
2.3. Nmeros
Representar nmeros tiene el problema de ser un conjunto infinito y por tanto, con una memoria limitada, no
n
se puede representar cualquier nmero, hay que acotar. Utilizando n bits se pueden representar 2 nmeros
distintos. El rango de representacin es el intervalo entre el mayor y el menor nmero representable. La
resolucin de representacin se refiere a la diferencia que existe entre un nmero representable y el
inmediato siguiente.
Para representar nmeros debe tenerse en cuenta el tipo de nmero a representar (enteros, real), el
rango de representacin, la cantidad de nmeros del rango o la memoria necesaria, entre otros.

48
2.3.1. Enteros
Para representar un nmero entero, se distingue si es positivo o negativo. Si slo se representan enteros
n
positivos, con n bits se pueden representar de 0 a 2 -1. Para codificar enteros negativos, hay que tener en
cuenta que el intervalo de representacin de enteros positivos debe ser igual al de los negativos y que el
signo y el 0 sean fcilmente detectables y el cdigo resultante permita realizar las operaciones habituales
con una implementacin hardware sencilla.
Para ello, se utilizan tres tcnicas: signo y magnitud, complemento A1 (CA1) y complemento A2 (CA2). La
representacin de signo y magnitud consiste en reservar un bit para el signo y el resto para la magnitud.
Tpicamente se usa el 1 para indicar que el nmero es negativo. Presenta el problema de representar el 0
de dos formas y la suma no es tan sencilla. Esta representacin no suele implementarse.
La representacin con CA1 para un nmero positivo usa su CA1 y el complementario del CA1 si el nmero
es negativo. Tambin representa dualmente el 0. La representacin con CA2 con n bits para un nmero
positivo utiliza el CA1 del nmero y para un nmero negativo se usa el CA2, que es el CA1+1. Es ms
costoso de implementar, pero elimina la representacin dual del 0. Es la representacin ms extendida para
los enteros negativos.
Existen tambin otras tcnicas de representacin de enteros, no posicionales, es decir, se crea un nuevo
cdigo para representar cada cifra. Los ms representativos son:
BCD Natural. La codificacin del valor del
dgito se expresa con 4 bits. Por tanto
desaprovecha 6 smbolos.
Exceso a 3: Cdigo BCD natural que suma 3 a
cada dgito.
Aiken. Cdigo BCD en que los pesos dentro de
cada grupo de 4 bits son 2, 4, 2, 1 en vez de 8,
4, 2, 1. Es autocomplementario.
Gray. Consiste en diferenciar smbolos consecutivos en un nico bit de diferencia.
JOHNSON 5 bits. Consiste en incrementar el nmero de unos desde la derecha y disminuirlos
paulatinamente por la izquierda segn avanza la representacin. No es ponderado.
2.3.2. Reales
La representacin de reales puede seguir diversas conveciones. Las ms comunes son punto fijo, donde se
usan una parte de los bits como parte entera y otra parte como decimal; punto flotante, que representa el
nmero en forma exponencial, con mantisa, base y exponente. El exponente usa n bits y la mantisa m; IEEE
754, que es un estndar para representacin en punto flotante de con 32 y 64 bits.
La representacin de 32 bits (simple precisin) usa el primer bit para signo (S), los 8 siguientes representan
el exponente (E) en exceso 127 (C=E+127) y los 23 restantes para la mantisa (M), normalizada como 0,xxx.
La representacin de 64 bits (doble precisin) es similar: usa el primer bit de signo (S), 11 para el exponente
(E) y 52 de mantisa (M):
2.4. Otros
La representacin de otro tipo de datos, como imgenes o sonidos, depender del formato que utilice el
programa que trate la informacin. Formatos ampliamente conocidos de sonido son wav o mp3 y de video,
avi o dvd. En cualquier caso, para el ordenador son bits, que se almacenan en memoria sin ms. La
presentacin de esos datos al usuario requiere un programa que interprete la informacin y la presente en la
forma adecuada.
Destacar, que los bits de informacin que trata el ordenador han debido ser procesados anteriormente, si se
presenta en forma analgica, como es el caso expuesto del sonido y la imagen. Este tratamiento incluye el
muestreo y la cuantificacin. El muestreo consiste en tomar un conjunto amplio de valores finitos de la seal
a digitalizar para poder reconstruirla posteriormente. La cuantificacin es el proceso que asigna valores a
cada muestra. Estos valores se representarn de la manera que imponga la tecnologa de la mquina para
poder ser tratados adecuadamente.

49
TEMA 11. ORGANIZACIN LGICA DE LOS DATOS. ESTRUCTURAS ESTTICAS.

1. INTRODUCCIN
2. ORGANIZACIN LGICA DE LOS DATOS
3. ESTRUCTURAS ESTTICAS
3.1. Arrays y matrices
3.2. Registros y uniones
3.3. Algoritmos con estructuras estticas

50
1. INTRODUCCIN
En el campo de la informtica un dato puede definirse como la expresin relativa a un objeto susceptible de
ser procesado por un ordenador. Las estructuras de datos son formas de organizacin de stos.
Las estructuras de datos estticas reservan memoria en el momento en que se define el dato. Las
estructuras dinmicas no reservan memoria a priori, sino que se hace uso de la memoria en funcin de la
necesidad de la estructura y la capacidad del equipo.
2. ORGANIZACIN LGICA DE LOS DATOS
La organizacin lgica de los datos se refiere a su estructura y representacin en un ordenador. Esta
organizacin debe seguir unos criterios bien definidos para evitar errores de interpretacin. Los datos se
organizan en colecciones llamadas estructuras.
Las estructuras de datos pueden ser homogneas (si tienen el mismo tipo de datos) o heterogneas (cada
elemento puede ser de un tipos distintos).
Para acceder a los datos se utiliza un identificador del dato, que puede ser el nombre del dato, su posicin
en la estructura o una clave que lo identifica unvocamente. Estructuras del primer tipo seran las estructuras
y uniones, del segundo los vectores, matrices, pilas y colas y las terceras los rboles.
3. ESTRUCTURAS ESTTICAS
En una estructura esttica se conoce cuntos datos la componen y lo que ocupa cada uno. Por tanto el
tamao de la estructura debe estimarse cuando se disea. Al ejecutarse el programa, se reservar un
espacio en memoria para la estructura, que ser invariable.
Las estructuras estticas poseen la ventaja de ser sencillas de usar y son ms eficientes para el acceso a
datos, ya que es aleatorio en general. Como inconveniente est la rigidez de su definicin, lo que puede
llevar a una gran reserva de memoria poco utilizada, lo que ofrece un bajo rendimiento.
Las estructuras estticas bsicas son los arrays, las matrices, los registros y las uniones.
3.1. Arrays y matrices
Un array o vector es una estructura esttica en la que los datos son todos iguales y se organizan de forma
lineal. Para referenciar un dato se utiliza un ndice que indica su posicin en el array. La cantidad de datos
que contendr el array, su tamao se define al crearlo. Ejemplo en Pascal: vector1: array [1..10] of integer;
definira un array de 10 posiciones, en la que cada posicin contendr un entero.
El esquema visual de un array es el de la figura. Para acceder a una posicin y
leer o escribir un dato en el array, se utiliza un ndice entero. Siguiendo con el
ejemplo, si se tuviera la instruccin en Pascal vector1[5]:=333; se escribira la
cifra 333 en la quinta posicin del array.
Ampliando el concepto de array a ms dimensiones, se llega a la idea de matriz. En realidad, es la misma
idea, por tanto, para acceder a un dato de una matriz, se necesitarn tantos ndices como dimensiones
posea la matriz. Una matriz puede definirse como nativa o como array de array, en funcin de las
necesidades del programa que se trate.
Ejemplo de definicin de una matriz nativa en Pascal: matriz1: array [1..10][1..15] of integer; Lo que define
una matriz de dimensin 2 con 10 filas y 15 columnas en la que cada posicin contiene un entero.
La definicin de una matriz como array de array sera: matriz2: array [1..10] of vector1; Definira una matriz
de 10 filas en las que cada fila sera un vector de 10 posiciones (vector1). En realidad, habra que definir
vector1 como un tipo de datos, pero como idea puede servir para el ejemplo.
Para definir una matriz de dimensin mayor a dos, no hay ms que ampliar la definicin de ndices.El
acceso a un dato sera tan simple como por ejemplo valor:=matriz2 [2,15], que asignara a valor, el entero
almacenado en la fila 2, columna 15.
Debe tenerse en cuenta, que segn el lenguaje de programacin, las posiciones de los arrays pueden
empezar a numerarse desde el cero. Por tanto para acceder a la posicin 5 del array habra que escribir
array[4]. Del mismo modo, si en un array de 10 posiciones se escribe array[222], dar un error, porque no
existe el elemento 222.
En general, al tratar con arrays, se recorren operando con los datos que almacenan. Para ello se suelen
introducir las operaciones de lectura y escritura del array en bucles de las diferentes categoras que existen,
tpicamente los tipos for, dowhile, repeatuntil, etc. Si se trabaja con matrices se utilizarn bucles
anidados, de manera similar.

51
Un tipo especfico de array son las cadenas de caracteres o strings. Son estructuras que se comportan
como los arrays, pero que se establecen porque el tratamiento de caracteres es muy habitual y necesario en
programacin. De esta forma, la mayora de lenguajes de programacin cuentan con instrucciones de
manejo de cadenas agrupadas en bibliotecas (libreras) para facilitar su tratamiento. Operaciones tpicas
con strings son la obtencin de su longitud, concatenacin, comparacin, etc.
El lenguaje C agrupa este tipo de operaciones en la librera <stdlib.h>. Un ejemplo de manejo de string en C
sera: char cadena[7]=hola; que define un string de 7 posiciones de las cuales las 4 primeras tendran el
carcter h, o, l y a, respectivamente. Las 3 restantes contendran el carcter nulo.
3.2. Registros y uniones
Un registro es una estructura esttica type TFicha = record
heterognea, es decir, puede contener
Nombre: array[1..10] of char;
datos de distinto tipo.
DNI: integer;
Cada componente de un registro se
denomina campo. Ejemplo de definicin de end;
un registro en Pascal es:
El registro TFicha est compuesto por campo array de caracteres de 10 posiciones y un campo tipo entero
llamado DNI. y una cadena de caracteres de tamao 10. Para asignar valores al registro, hay que hacerlo
por campos. Por ejemplo: paco.Nombre:=Francisco; paco.DNI:=222.222. En este caso, faltara instanciar la
variable paco como de tipo TFicha.
Se pueden combinar las estructuras de datos y por ejemplo generar arrays o matrices de registros. Otra
estructura similar a los registros son las uniones. La diferencia estriba en que en una unin todos los datos
internos ocupan el mismo espacio y es tan grande como el mayor elemento. Si se modifica uno de esos
elementos, todos los dems se modifican. En C se declaran con la palabra union.
3.3. Algoritmos con estructuras estticas
Conviene conocer algunos algoritmos utilizados en operaciones habituales con arrays y matrices. Entre las
operaciones habituales se encuentran la ordenacin y bsqueda de algn elemento de la estructura.
Algoritmos de ordenacin son el de la burbuja, el de insercin directa, el de Mergesort y quicksort.
El algoritmo de la burbuja es un algoritmo de ordenacin que trabaja de Burbuja (int v[], int lonv)
manera semejante a como ebullen las burbujas. Consiste en recorrer la
Integer: temp, i, j;
estructura de que se trate, por ejemplo un array, comparando cada
elemento con el siguiente e intercambindolos si su orden no es correcto. for (i = 0; i < lonv -1 ; i++)
De esta forma los elementos muy grandes en posiciones bajas y for (j = i + 1; j < lonv ; j++)
viceversa se desplazan por el array en cada recorrido como si fueran
if (v[i] > v[j])
burbujas. Este algoritmo tiene el mejor comportamiento cuando ya est
ordenado y una complejidad computacional cuadrtica. temp = v[i];
Un ejemplo de implementacin en pseudocdigo se presenta en el v[i] = v[j];
cuadro. Tambin se le conoce como mtodo de intercambio directo.
v[j] = temp;
El algoritmo de insercin directa coge uno por uno los elementos de un array y lo va desplazando hacia
atrs hasta que el anterior es menor. Sigue siendo ineficiente aunque algo mejor que el de la burbuja.
El algoritmo de Mergesort divide de forma recursiva un problema en problemas menores. Su funcionamiento
analiza el caso trivial (2 elementos). Si no es el caso, divide el array en dos que analiza por separado. El
algoritmo se va repitiendo hasta llegar al caso trivial, en que ordena los elementos y va combinando las
ordenaciones parciales obteniendo al final el array completo ordenado. La complejidad de este algoritmo es
O(n)=nlog(n), mucho menor que la complejidad del algoritmo de la burbuja y el de insercin directa.
Otro algoritmo de ordenacin es quicksort. Es un algoritmo recursivo, pero puede implementarse como
iterativo mejorando su rendimiento. Se considera el algoritmo de ordenacin ms rpido. Trabaja eligiendo
un elemento del array, que har las veces de pivote. El resto de elementos del array se van colocando a un
lado u otro del pivote segn sean mayores o menores que l. Una vez hecho esto, se divide el array en dos
partes, el lado izquierdo y el lado derecho del pivote.
El algoritmo se llama recursivamente pasando como argumentos las dos partes en que se ha dividido el
array hasta llegar a un caso trivial, similar al algoritmo Mergesort. La complejidad del algoritmo en este caso
es O(n)=n log(n). Eligiendo adecuadamente el pivote se optimiza el algoritmo, ya que su eficiencia depende
de la eleccin del pivote; pivotes con valores medios mejoran la eficiencia.

52
Como ejemplo podran elegirse tres elementos al azar y seleccionar el que de valor medio como pivote.
Tambin podra elegirse realizando un recorrido inicial que calcule el valor medio de los elementos.
Entre los algoritmos clsicos de bsqueda se encuentran el de bsqueda secuencial y bsqueda binaria.
El algoritmo de bsqueda secuencial recorre la estructura desde una posicin dada hasta que encuentra el
elemento. Es la nica solucin cuando los elementos estn distribuidos de manera aleatoria, ya que no se
puede asegurar la existencia de un elemento hasta recorrer toda la estructura. Su complejidad es O(n)=n..
La bsqueda binaria se utiliza para el caso en que la estructura est ordenada. En este caso, un nmero
elevado de bsquedas, es ms eficiente si la estructura est ordenada.
El algoritmo de bsqueda bienaria selecciona un elemento al azar (en general, el elemento central). Si ese
elemento es el valor buscado, se ha terminado de buscar. En caso contrario se evala si es mayor o menor
y reduce la bsqueda a la parte del array o la estructura que contenga los elementos mayores o menores
segn corresponda y se vuelve a repetir el proceso de forma recursiva.
Cuando no se pueda dividir la bsqueda y el nuevo elemento central no sea el valor buscado, significar
que el elemento buscado no existe en la estructura. Teniendo en cuenta que el algoritmo precisa orden en
el vector, su complejidad es O(n)=log(n).

53
TEMA 12. ORGANIZACIN LGICA DE LOS DATOS. ESTRUCTURAS DINMICAS.

1. INTRODUCCIN
2. ORGANIZACIN LGICA DE LOS DATOS
3. ESTRUCTURAS DINMICAS
3.1. Contenedores lineales
3.2. rboles
3.3. Grafos

54
1. INTRODUCCIN
Las estructuras de datos son formas de organizacin de stos. Las estructuras de datos dinmicas no
reservan memoria a priori, en el momento de su definicin, sino que se hace uso de la memoria en funcin
de la necesidad de la estructura y la capacidad del equipo.
2. ORGANIZACIN LGICA DE LOS DATOS
La organizacin lgica de los datos se estudia con las estructuras de datos, que pueden ser homogneas o
heterogneas. Para acceder a los datos se utilizan ndices, identificadores que posicionan el dato en la
estructura. Estructuras dinmicas son los contenedores secuenciales, rboles y grafos.
3. ESTRUCTURAS DINMICAS
Las estructuras de datos dinmicas no tienen un tamao fijo, puede variar en tiempo de ejecucin. Son
ideales cuando no se conoce a priori, ni se puede estimar, el tamao que datos que se manejarn.
Un tipo de dato abstracto o TDA es un conjunto de datos y procedimientos de ese dato, como por ejemplo,
un objeto, dentro de la metodologa de programacin orientada a objetos, que posee atributos (datos) y
mtodos (procedimientos). Un TDA debe disponer un interfaz para conseguir encapsulamiento y ocultacin,
de forma que los detalles de implementacindel TDA sean transparentes para quien lo use.
Las estructuras de datos dinmicas que se implementan como un TDA ofrecen un interfaz completa para
operar la estructura, no permitiendo el acceso directo a la implementacin de esa estructura. Las
estructuras dinmicas podran simularse con estructuras estticas, pero lgicamente se pierde agilidad y
rendimiento. Por ejemplo, una pila podra realizarse con un array de registros, pero se complicaran las
operaciones de ordenacin, insercin y otras.
3.1. Contenedores lineales
Los contenedores secuenciales son aquellos que almacenan sus elementos en orden lineal. Suelen
implementarse como un TDA o una clase. Entre los contenedores secuenciales se distinguen los conjuntos,
listas, colas y pilas.
Un conjunto (set) es una estructura de datos cuyo orden o cantidad de repeticiones no es relevante. Poseen
dos operaciones habituales, una para indicar si un elemento est contenido en el conjunto y otra que
compruebe si est vaco. Otras operaciones son la de instanciacin o creacin, insercin y eliminacin de
elementos. Operaciones entre conjuntos seran la unin, interseccin o diferencia.
Una lista enlazada es una secuencia de nodos compuestos por sus datos y uno o varios punteros o enlaces
a otros nodos. Son tipos de datos autoreferenciados porque contienen punteros a datos del mismo tipo.
Permiten inserciones y eliminacin de nodos en cualquier punto de la lista, pero no de forma aleatoria.
Las variantes de lista enlazada son las listas doblemente enlazadas, circulares y circulares doblemente
enlazadas. La diferencia estriba en su implementacin, en que cada nodo contendr uno o varios punteros a
los nodos anterior y posterior segn corresponda. As si la lista enlazada posee un nico puntero al
siguiente nodo, las listas doblemente enlazadas tendrn un puntero al nodo anterior y otro al posterior. Las
listas circulares no tienen nodo inicial ni final, ya que el ltimo apunta al primero, y las listas circulares
doblemente enlazadas seran como las circulares, con los dos sentidos de enlace.
La lista doblemente enlazada permite conocer el primer elemento y el ltimo y podr recorrerse en dos
sentidos. Una lista puede dotarse de un nodo centinela que apunte al principio o final de la lista y para
simplificar operaciones. El elemento final de una lista se llama NULL.
Con respecto a los arrays, las listas presentan la ventaja de ordenar sus elementos de forma diferente al
almacenamiento en memoria permitiendo recorridos diferentes al secuencial. La insercin y eliminacin de
nodos posee un coste fijo al no ser necesario reordenar el array. Como desventaja, son menos eficientes en
el acceso aleatorio. Para pocos datos, el coste en memoria y complejidad puede aconsejar el uso de arrays.
Para insertar un nodo en la lista es necesario cambiar el puntero al siguiente del anterior apuntando al
nuevo nodo y el puntero al siguiente del nuevo nodo apuntando al nodo siguiente. Si hay un doble enlace,
se realizarn las mismas operaciones en sentido inverso. La eliminacin de un nodo es tan sencilla como
hacer que los punteros de los nodos adyacentes a este se apunten entre s.
Una cola puede entenderse como una lista con un comportamiento tipo FIFO (First-In, First-Out), el primero
en entrar, primero en salir. Puede implementarse como una lista con opciones restringidas. En una cola, son
tpicas las operaciones de push y pop, o bien adicin o eliminacin de elementos, respectivamente, con la
salvedad que la operacin push aade el elemento al final y pop elimina siempre el primero de la cola.
Puede ser comn encontrar la operacin front, frente, que devuelve el valor del primer elemento.

55
Una pila, por su parte, es una lista con organizacin LIFO (Last-In, First-Out). Pueden implementarse como
listas enlazadas. Tambin suelen definirse las operaciones push y pop y una operacin tipo cima, que
devuelva el valor del elemento superior de la pila. Una lista enlazada simple implementara esta estructura.
3.2. rboles
Un rbol es una estructura jerarquica de datos constituida por unidades llamadas nodos. Cada nodo podr
ser un registro o similar y puede tener uno no ms nodos que cuelguen de l, sus nodos hijo. Del mismo
modo, el nodo del que cuelga un nodo hijo, ser el nodo padre. El grado de un nodo es su nmero de hijos.
El nodo origen, que no posee padre, es el nodo raz y es nico. Un
nodo sin hijos se denomina hoja. Un nodo genrico, con padre e
hijos, se denomina nodo rama.
rboles tpicos son los binarios, en los que cada nodo padre tiene
dos nodos hijos. Su implementacin consiste en dotar a cada nodo
de dos punteros, uno a un hijo en la izquierda y otro al hijo de la
derecha, como se muestra en el esquema.
Un rbol genrico posee cualquier nmero de nodos hijo. En este caso, cada nodo contendr sus datos y
tantos punteros como hijos tenga. Otros trminos utilizados son camino, altura, profundidad y nivel.
Un camino es el conjunto de nodos que se pueden seguir de un nodo padre a una hoja. La altura es la
longitud del camino ms largo. La profundidad, la longitud del camino a un determinado nodo y el nivel, el
de los nodos que poseen la misma profundidad.
Un rbol que posee sus elementos ordenados, se dice que est equilibrado si tiene una profundidad
homogenea en todas las hojas, es decir que no vare ms de una unidad. Por ejemplo, los rboles AVL
(Adelson-Velskii, Landis), son rboles binarios ordenados, de forma que el hijo izquierdo contiene un valor
siempre menor que el padre y el hijo derecho mayor, de forma que consiguen equilibrio de forma automtica
al insertar o eliminar nodos. El equilibrio es til para reducir la complejidad de las bsquedas.
Los rboles, implementados como TDA suelen ofrecer mtodos para su manejo. Los habituales son del tipo
insercin, borrado o bsqueda. El recorrido de un rbol se puede hacer siguiendo criterios como el
preorden, postorden o inorden. El preorden consiste en recorrer el rbol, comenzando por el nodo padre,
hijo izquierdo e hijo derecho hasta llegar a una hoja. El postorden recorre el rbol comenzando por el hijo
izquierdo, hijo derecho y padre. El inorden recorre el primer hijo, el padre y el hijo derecho.
Para buscar un elemento en un rbol se puede buscar por profundidad o por niveles. Por profundidad, se
recorren los caminos hasta las hojas. Por niveles, se recorren los nodos de cada nivel. Si se posee un rbol
binario ordenado, se puede ir dividiendo la bsqueda a izquierda o derecha. La complejidad sera O(log(n)).
Los algoritmos de recorrido o bsqueda suelen implementarse con recursividad.
3.3. Grafos
Puede definirse grafo como un rbol no jerrquico. De hecho un rbol no permite referencias cclicas. La
forma general de representar un grafo es usar crculos para los nodos y lneas para las aristas.
Trminos utilizados habitualmente son orden, medida, adyacencia
y grado. El orden es el nmero de nodos del grafo. La medida el
nmero de aristas. Dos nodos son adyacentes si tienen una arista
que los une y su grado es el nmero de aristas que tiene un nodo.
Se distinguen grafos dirigidos o no dirigidos. Los primeros indican
las relaciones entre nodos mediante flechas, los no dirigidos no. Se
dice que un grafo tiene pesos si a cada arista se le asigna un valor
y es regular cuando todos los nodos poseen el mismo grado.
Grafo completo es en el que cada nodo es adyacente al resto. Para implementarlo se puede usar un grafo
genrico y una lista de adyacencia, si el grafo es ms o menos pequeo. Para grafos complejos, manejar la
lista de adyacencia puede ser complicado y ser ms eficiente usar una matriz de adyacencia. La matriz de
adyacencia ordena los nodos y sus aristas entre ellos en filas y columnas.
Las operaciones tpicas en grafos son las de recorrido, insercin o borrado. En este caso el recorrido
ordenado es ms complejo que en un rbol.
Una bsqueda en profundidad (DFS) es un algoritmo que permite recorrer los nodos de un grafo o rbol de
manera ordenada, no uniforme. Su funcionamiento consiste en seguir un camino e ir expandiendo todos los
nodos de forma recurrente. Cuando no quedan ms nodos por visitar en el camino, se repite el proceso con
los dems nodos.

56
La bsqueda en anchura (BFS) recorre el grafo o rbol, comenzando en la raz y explorando los vecinos del
nodo recursivamente hasta recorrer todo el grafo o rbol. Dos algoritmos tpicos muy utilizados para el
clculo de caminos mnimos son el de Dijkstra y el de Floyd.
El algoritmo Dijkstra explora todos los caminos ms cortos que parten del nodo origen y llevan a todos los
dems nodos. Con los datos de todos los caminos mnimos, el algoritmo se detiene.
El algoritmo de Floyd elige un nodo intermedio de un camino y calcula si la distancia entre origen y destino
es mayor que la distancia entre origen y nodo intermedio ms la distancia entre nodo intermedio y destino.
Si es mayor se asume que la distancia es la suma. Itera n veces siendo n el nmero de nodos y calcula la
distancia mnima, no el camino a seguir.

57
TEMA 13. FICHEROS. TIPOS. CARACTERSTICAS. ORGANIZACIONES.

1. INTRODUCCIN
2. FICHEROS
3. TIPOS
4. CARACTERSTICAS
5. ORGANIZACIONES
5.1. Secuencial
5.2. Indexada
5.3. Directa o aleatoria

58
1. INTRODUCCIN
Un fichero puede definirse como un conjunto de datos organizados en registros sobre un soporte fsico. Su
nombre deriva del de conjunto de fichas. Cada ficha, es un registro y cada dato que compone el registro se
denomina campo.
2. FICHEROS
Los ficheros son fundamentales en el proceso informtico, puesto que son las estructuras tpicas que se
utilizan para contener la informacin. El ejemplo clsico de fichero es el que contiene la informacin de las
personas de una organizacin. Esta informacin contendr datos como el nombre, apellidos, domicilio, etc.
Toda esa informacin referente a una nica persona constituye un registro. Cada dato particular, por
ejemplo el domicilio, sera un campo.
Los ficheros se suelen clasificar tomando como referencia algn campo de sus registros. Esto es as para
facilitar las operaciones sobre el fichero, tales como la bsqueda, insercin o borrado. El campo elegido
como referencia se denomina campo clave, aunque la clave de acceso al fichero puede estar formada por
ms de un campo. De hecho, se puede utilizar ms de un campo clave, de forma que una de ellas ser la
clave principal o primaria y el resto claves secundarias o alternativas. En general, la clave primaria es
diferente para cada registro y las claves secundarias pueden tener el mismo valor en registros diferentes.
En general el tamao de un fichero ser demasiado grande para ser cargado por completo en la MP, por
tanto, la carga se realizar por partes. Cada parte de un fichero que se carga en la MP se denomina registro
fsico o bloque. El factor de blocaje es el nmero de registros lgicos que contiene un bloque. A la operacin
de agrupar varios registros en un bloque se le llama bloqueo de registros. Se denomina volumen al soporte
fsico de almacenamiento del fichero.
En el diseo de un fichero es muy importante el diseo de los registros, el soporte de datos para su almacn
y la forma en que se organizan los datos en el soporte. El diseo de un registro consiste en seleccionar,
ordenar y definir las caractersticas de los campos que lo forman.
Suelen utilizarse hojas de diseo para los registros, en las que para cada campo se define su nombre,
posicin, tamao y descripcin y tipo de datos a contener. La definicin del tamao de cada campo es algo
complejo, dado que si es demasiado grande pueden desaprovecharse recursos, y si es pequeo, puede no
ser suficiente para la informacin a contener. Por tanto, debiera utilizarse un tamao intermedio, o segn el
caso, campos de longitud variable, aunque a costa de una mayor complejidad.
Los ficheros, debido a su tamao se almacenan en soportes externos bien sean magnticos u pticos, como
los ya presentados. Normalmente los soportes elegidos sern discos y se usarn discos duros o cintas para
copias de seguridad. Probablemente el aspecto ms importante de los ficheros es su manejo. Las
operaciones tpicas a realizar con ficheros son:
Creacin. Es la grabacin, por primera vez, sobre un soporte de los registros de un fichero.
Apertura y cierre. Para realizar una operacin sobre el fichero, ste debe abrirse y del mismo modo, si no se
utiliza debe cerrarse para evitar que la informacin se corrompa.
Borrado. Es la eliminacin del fichero. Puede realizarse denegando el acceso al fichero (caso en que podr
recuperarse) o destruyendo la informacin referente al fichero.
Ordenacin. Es la operacin de colocar los registros del fichero segn cierto criterio.
Copia. Es la creacin de un fichero idntico a otro existente. Es la operacin bsica de seguridad ante
prdida o corrupcin del fichero original.
Fusin. Es la combinacin de los datos de dos o ms ficheros.
Particin. Dividisin de un fichero siguiendo algn criterio o condicin de los registros.
Estas operaciones se refieren a los ficheros como unidades. Pueden distinguirse operaciones ms
elemantales que afecten slo a ciertos registros. El proceso ser entonces localizar el registro sobre el que
operar y realizar la operacin. Las operaciones tpicas son:
Actualizacin. Consistente en renovar los datos del registro o del fichero. Se habla entonces de modificacin
si se cambia el contenido de un registro, alta si se aade alguno nuevo y baja si se elimina.
Modificacin. Cambia el contenido de uno o ms registros.
Recuperacin. Consulta de la informacin almacenada en los registros del fichero. Las operaciones de
recuperacin tpicas son las consultas, en que se accede a uno o varios registros para ver su contenido y
los listados, consultas de numerosos registros en forma de lista ordenada.

59
3. TIPOS
Una clasificacin de los ficheros segn el uso que se les da y el tiempo de vida que van a tener sera:
- Ficheros permanentes: Ficheros de larga duracin usados en ms de un proceso por contener informacin
que permanece con el tiempo, actualizada cuando es necesario. Dependiendo de la frecuencia con que se
actualizan los datos que contiene este tipo de ficheros se pueden clasificar, a su vez, en:
- Ficheros de constantes: Con informacin consultada con frecuencia, y raramente actualizados.
Ejemplo sera un fichero de clientes.
- Ficheros maestros: Con informacin que vara con frecuencia y es necesario mantener
actualizada. Ejemplo: Fichero de las cuentas de los clientes de un banco.
- Ficheros histricos: Contienen informacin pasada, reflejando su evolucin en el tiempo. Ejemplo:
Fichero que guarda los movimientos que se produjeron en las cuentas de un banco en 1.991.
- Ficheros de movimientos: O ficheros de transacciones. Se usan para actualizar los ficheros permanentes,
almacenando en cada registro una operacin que supone el cambio de alguno de los datos del fichero
permanente. Sus registros tienen que tener al menos un campo en comn con el fichero que van a
actualizar que es el que va permitir conocer cual es el registro a modificar. La vida de estos ficheros suele
ser corta ya que al actualizar el fichero permanente, se destruyen, o se guardan como histricos.
- Ficheros temporales: Usados para almacenar resultados provisionales que sern usados posteriormente
en el mismo proceso, o en un proceso diferente. La vida de estos ficheros termina en el momento en que
finaliza, el proceso para el que fueron creados. Ejemplo: Fichero para preparar el listado de los alumnos
repetidores.
- Ficheros de control: Contienen informacin para controlar la ejecucin de programas. Tipos:
- Ficheros de parametrizacin: Contienen informacin para el funcionamiento de los programas. Se
usan para poder adaptar programas o aplicaciones estndar a las necesidades de cada usuario.
Ejemplo: Fichero que almacena el nombre de la empresa, formato de los informes, etc.
- Ficheros de registro o log: Se usan para almacenar informacin referente a la explotacin de un
programa. Ejemplo: Fichero que contiene informaciones como el nmero de veces que se ejecuta el
programa, el tiempo que es utilizado por un usuario, errores que se producen, etc.
Las operaciones de actualizacin de ficheros se efectan, bien en un proceso "por lotes" (modalidad batch),
o bien en "tiempo real". En la modalidad por lotes se espera a tener un determinado nmero de variaciones,
que se van guardando en un fichero que recoge esos movimientos, para actualizar de una vez los datos del
fichero maestro o de situacin. La modalidad en tiempo real permite actualizar los datos el fichero en el
instante en que se produce la variacin.
4. CARACTERSTICAS
Las caractersticas fundamentales de un fichero son sus datos, su soporte fsico y su organizacin.
El tipo de datos que guardar el fichero debe definirse en su etapa de diseo. Los datos se seleccionarn y
definirn adecuadamente. Esta parte es la ms importante debido a las complicaciones que generar en
etapas sucesivas si no se realiza bien. Una vez realizado el diseo, se seleccionar el soporte fsico de
almacenamiento y su organizacin y depender del tamao del fichero y de las operaciones ms frecuentes
a que se vea sometido.
Algunos parmetros a tener en cuenta a la hora de decidir el soporte y la organizacin ms adecuada para
un fichero, son su tamao, actividad y volatilidad.
Tamao. Es la cantidad de memoria necesaria para almacenar el fichero, medida en unidades de
informacin, tpicamente Megabytes o similar. Se puede estimar multiplicando el nmero de registros que
tendr por el tamao medio de cada registro.
Es importante tener una idea del tipo de evolucin que tendr el fichero. Si se puede estimar, podra
medirse el aumento del tamao como el nmero medio de registros aadidos en cada tratamiento. Se suele
expresar como una tasa de crecimiento en % sobre el nmero de registros totales.
Estos datos sirven para estimar la capacidad que debiera tener el soporte fsico utilizado para almacenar el
fichero.
Actividad. Es el nmero de registros consultados o modificados. Se expresa en % sobre el nmero de
registros totales. Si se refiere a cada tratamiento del fichero, se denomina tasa de consulta o modificacin.
Si se calcula en un perodo de tiempo, se denomina frecuencia de consulta o modificacin. Es un dato que
puede orientar en la decisin de la organizacin del fichero.

60
Para comparar los tiempos de acceso a registro empleados deben conocerse datos del soporte fsico, tales
como el tiempo medio de acceso a un registro (TMA) y la tasa de transferencia (VLS). De esta forma, el
tiempo de acceso a registros de forma directa sera el nmero de registros consultados por el TMA y el
tiempo de acceso a registros de forma secuencial sera el tamao dividido entre VLS.
En general, se elegir el modo de acceso que emplee menos tiempo en leer los registros. Por tanto, el
menor de los dos tiempos anteriores calculados ser el que oriente la decisin.
Volatilidad. Es el nmero de registros dados de alta o de baja respecto al nmero total de registros del
fichero, en %. El porcentaje calculado por cada tratamiento del fichero, se denomina tasa de renovacin. Si
se calcula en un perodo de tiempo, frecuencia de renovacin. Si la tasa de renovacin es alta se dice que
el fichero es voltil, en caso contrario se dice que es estable.
5. ORGANIZACIONES
La organizacin de un fichero es la forma en que se distribuyen los datos de los registros sobre el soporte
fsico. Existen dos formas bsicas de organizacin: secuencial y aleatoria o relativa. En la primera los
registros se graban sucesivamente en el orden en que se dan de alta. En la aleatoria, se graban segn el
valor de la clave.
El modo de acceso se refiere al procedimiento de acceso a un registro. Puede ser secuencial o directo. El
modo secuencial obliga a leer los registros anteriores a uno dado, mientras el modo directo puede
referenciar un registro directamente en funcin de la clave. El acceso directo puede hacerse de varias
formas; directamente, con el valor clave, calculando la posicin mediante alguna operacin con la clave
(acceso aleatorio o hashing), o mediante tablas de ndices, en que la localizacin del registro se hace
buscando en la tabla el valor del campo clave (acceso indexado o Keyed).
La forma de organizacin de un fichero depender del uso que se de al fichero. Factores determinantes son
la memoria necesaria y la velocidad de acceso a los datos.Se distinguen las siguientes.
5.1. Secuencial
Esta organizacin distribuye los registros uno a continuacin de otro en el soporte fsico. Es recomendable
en ficheros estables y con un ndice de utilizacin elevado. Sus ventajas son un aprovechamiento alto del
soporte, al no generar fragmentacin, utilizacin de registros de distinto tamao o la grabacin en cualquier
tipo de soporte. Entre sus inconvenientes destacan la necesidad de leer los registros anteriores a uno dado
y la no posibilidad de insercin de nuevos registros entre dos ya grabados.
Al utilizar ficheros secuenciales debe tenerse en cuenta el soporte de grabacin, ya que operaciones como
la modificacin y borrado de registros que se pueden hacer en soportes direccionables no se pueden hacer
en soportes secuenciales.
Las instrucciones de tratamiento de ficheros dependen del lenguaje de programacin con que se trabaje.
Sin embargo, como operaciones habituales destacan las de abrir (open), que en algunos lenguajes se
diferencia si es una apertura de lectura, escritura, lectura y escritura o ampliacin, cierre (close), lectura
(read) y escritura (write).
Para tratar un fichero, el SO usa un puntero que seala al primer registro cuando se abre el fichero y se va
desplazando en la misma direccin cada vez que se lee o graba un registro. La estructura del fichero se
completa con un registro de cabecera con informacin sobre el fichero y un registro de marca de fin, EOF
(End Of File), que identifica el ltimo registro.
El registro EOF se graba al crear el fichero y se desplaza al
aadir nuevos registros.Para mejorar las prestaciones de la
organizacin secuencial surgen variantes que pueden ser
utilizadas con soportes direccionables. Las mas empleadas son:
Organizacin secuencial indexada. Los registros se graban secuencialmente, pero pueden recuperarse con
acceso directo usando un fichero adicional de ndices con informacin de la posicin de cada registro.
Organizacin secuencial encadenada. Permite ordenar los registros lgicamente, de forma diferente al
orden fsico de grabado, utilizando campos adicionales con punteros.
5.2. Indexada
Los ficheros indexados se basan en el uso de ndices para acceder a un registro de forma directa, sin leer
los anteriores. Permiten acceso secuencial y directo. Los registros deben contar con al menos un campo
que lo identifique de forma nica, el campo clave, que sirve de ndice. Una clave es primaria si el campo
clave no contiene valores duplicados. Un campo clave con valores duplicados es una clave alternativa.

61
El acceso directo se realiza con el contenido del campo clave del registro a acceder. En el acceso
secuencial los registros son ledos en el orden marcado por el contenido del campo clave, de forma
independiente al orden de grabacin. Para ello deben grabarse en soportes direccionables, si no, no podra
utilizarse el acceso directo. Un fichero con organizacin indexada est formado por:
- rea de datos. rea en que se escriben los registros cuando se crea el fichero. Los registros de un fichero
con organizacin indexada se graban en un soporte de almacenamiento directo, en secuencia ascendente,
de acuerdo con los valores de la clave y en pginas o bloques de longitud fija.
- rea de ndices. La crea el sistema al almacenar datos. Contiene una tabla que asocia claves con
direcciones de los registros del rea de datos. Cada entrada del rea de ndices est formada por el valor
ms alto de la clave de cada grupo de registros y un puntero con la direccin del primer registro del grupo.
- rea de desbordamiento (overflow). Zona de grabacin de registros sin cabida en el rea de datos. Los
nuevos registros se insertan y enlazan mediante punteros conservando el orden lgico que marca la clave.
El tratamiento de ndices y punteros lo realiza el SO, de forma transparente al usuario.
Existen diferentes formas de tratar ndices, segn el SO o lenguaje de programacin. Las organizaciones de
ndices mas usadas en la prctica son ISAM (Indexed Sequential Access Method) y VSAM (Virtual Storage
Access Method). Cuando el fichero de datos tiene muchos registros puede que el fichero de ndices se haga
demasiado grande y las bsquedas se ralenticen. Para evitarlo se puede recurrir a una jerarqua de ndices.
La organizacin indexada permite el acceso directo a los registros, evitando fragmentacin y el trato
secuencial como en la organizacin directa y secuencial, respectivamente. Es muy usada y sus principales
ventajas pueden resumirse en permitir el acceso secuencial y directo a los registros, adems de poder
actualizarlos sin crear nuevos ficheros (como en el caso secuencial) y como inconvenientes se encuentran
el ocupar ms espacio en disco que los ficheros secuenciales y presentar un tiempo de acceso creciente al
crecer el nmero de registros.
5.3. Directa o aleatoria
Se independiza el orden de alta de un registro y su posicin de grabacin, que residir en el campo clave. El
espacio total se divide en celdas destinadas a contener un nico registro y se numeran correlativamente
permitiendo el acceso de forma directa, conociendo la direccin de la celda. Esta organizacin slo se da en
soportes direccionables. Requiere menor tiempo de acceso a un registro y es usada cuando el acceso se
hace empleando siempre la misma clave y la velocidad de acceso a un registro es un factor determinante.
Para localizar un registro es necesario conocer la clave. Las tcnicas de direccionamiento se usan para
relacionar el valor de la clave C y la direccin relativa D de la celda a acceder. La eleccin de una tcnica de
direccionamiento determinada debe cumplir al menos, que sea fcil de aplicar, que genere poca
fragmentacin y que las claves de registros diferentes generen direcciones diferentes.
Cuando dos o ms claves diferentes proporcionan la misma direccin se dice que genera sinnimos o que
produce colisiones. Si se produce colisin, slo un registro podr ser guardado en la celda y habr que
solucionar la ambigedad. Para ello se emplean algunos mtodos como una zona de desbordamiento o
bsqueda lineal (o direccionamiento abierto).
La bsqueda lineal consiste en almacenar el registro que colisiona en el primer hueco libre a partir de la
direccin que le corresponde, ya ocupada. La zona de desbordamiento consiste en crear un rea especial
del fichero en la que se graban los registros que colisionan y es el sistema ms empleado.
El uso de ficheros relativos requiere identificar los registros lgicos con un nmero relativo de registro, que
el usuario identificar con el valor de un campo del registro. Para transformar la clave en la direccin relativa
del registro en el fichero hay tcnicas de direccionamiento que se pueden clasificar en direccionamiento
directo, asociacin y hashing (aleatoria).
Direccionamiento directo. El caso ptimo son claves del fichero numricas y toman valores de 1 a n sin
huecos. La clave k conducir a la celda k-sima del fichero facilitando el acceso. El campo clave de cada
registro contiene su direccin en el fichero.
Asociacin. Los valores de la clave se almacenan en una tabla en que cada elemento asocia un valor de la
clave con la direccin relativa en la que se almacena el registro. La tabla debe prever la inclusin de todas
las direcciones posibles del fichero, por tanto, el problema es determinar su tamao y mantenerla ordenada
por los valores de la clave.
Direccionamiento aleatorio (hashing). Utiliza una funcin, a ser posible biunvoca, que relaciona los valores
de la clave con el conjunto de nmeros de celda. Esta funcin transformar el valor de la clave hasta en un
nmero entre 1 y el nmero de celdas del fichero. Su problema es la generacin de sinnimos, caso que no
se da en los casos anteriores.

62
TEMA 14. UTILIZACIN DE FICHEROS SEGN SU ORGANIZACIN.

1. INTRODUCCIN
2. UTILIZACIN DE FICHEROS SEGN SU ORGANIZACIN
2.1. Creacin, apertura, cierre y borrado
2.2. Lectura, escritura y extensin
2.3. Gestin

63
1. INTRODUCCIN
La organizacin de un fichero es la forma en que ste almacena la informacin. La forma de organizacin va
a marcar su naturaleza y la forma en que ese fichero ser utilizado. Las operaciones de escritura, consulta,
lectura u ordenacin seguirn distintas estrategias para ser realizadas de forma eficiente.
2. UTILIZACIN DE FICHEROS SEGN SU ORGANIZACIN
La organizacin de ficheros es la forma de estructurar y almacenar los datos en un soporte. ste podr ser
de acceso secuencial o directo, como ya se ha estudiado. La organizacin de un fichero depender por
tanto del soporte que se utilice y responder a uno de los tres tipos, secuencial (almacenamiento
consecutivo), aleatorio (usando un algoritmo) o indexado (usando ndices).
En la organizacin secuencial los registros se disponen uno a continuacin de otro. Los ficheros
secuenciales se delimitan con una marca EOF de fin de fichero. Slo se pueden leer de forma sucesiva sin
acceder directamente a un registro, ya que un campo del registro se usa para identificarlo, lo diferencia del
resto de registros y determina el orden de acceso.
Todos los registros tienen el mismo tamao. La utilizacin habitual de los ficheros secuenciales es el
procesamiento por lotes: respaldo de datos, generacin de reportes, transmisin fsica de datos, etc.
Representan el mejor aprovechamiento de espacio y son rpidos cuando hay que tratar registros que estn
seguidos y no se pierden registros por desaparicin de direcciones.
Ficheros susceptibles de ser organizados secuencialmente son los que tengan poca volatilidad, gran
actividad y tamao variable. Por contra, el acceso a los registros est limitado al no poder localizarse
directamente, y en general, lentamente. Para mantenerlo ordenado, debe reescribirse peridicamente.
Los ficheros secuenciales pueden gestionarse de forma simple o encadenada. La gestin simple coloca los
registros seguidos. La encadenada usa punteros, con lo que permiten la ordenacin, su procesamiento
lgico es secuencial, pero fsicamente pueden estar desordenados, pues se referencian con punteros.
El modo de organizacin simple presenta las ventajas de realizar consultas rpidas cuando son
secuenciales y ahorro de espacio en cualquier soporte, pero por contra, para acceder a un cierto registro,
hay que pasar por todos los anteriores, lo que ralentiza la consulta puntual y del mismo modo, para
actualizar un registro, debe copiarse el fichero y para aadirlo debe hacerse al final, lo que implica que los
registros no estn ordenados.
El modo encadenado dispone para los registros un campo para el puntero al registro anterior o siguiente, lo
que permite usar algoritmos propios de estructuras como las listas. Sus ventajas e inconvenientes son las
mismas que en la forma simple, con la diferencia que ahora los registros si estn ordenados.
En la organizacin indexada los registros se localizan mediante una tabla ndice con la direccin de cada
registro del fichero. Por tanto, el acceso a un registro se realiza directamente, buscando su ndice. La tabla
ndice puede organizarse de forma secuencial, en rbol u otras, lo que permitir procesar el fichero de forma
secuencial o directa, independientemente de su organizacin.
Este mtodo divide el espacio del soporte en 3 zonas: primaria o de datos, de ndices y de desbordamiento.
El rea primaria contiene los registros ordenados ascendentemente por clave. El rea se divide en
segmentos con n registros. El rea de ndices contiene registros con dos campos, la clave del ltimo registro
de cada segmento y la direccin de comienzo de cada segmento. El rea de desbordamiento u overflow es
una zona de memoria intermedia para registros no incluidos en el rea primaria. El rea primaria y el ndice
no se alteran despus de ser creado el fichero, el overflow si, va aumentando con los registros insertados.
La utilizacin de ficheros indexados se da en aplicaciones donde es crtica la disponibilidad y donde los
datos no se procesan habitualmente de forma exhaustiva.
En la organizacin directa o aleatoria el acceso a los registros se realiza directamente, gracias a que su
posicin puede calcularse a partir de uno de sus campos, denominado clave. La posicin de los registros no
tienen por qu ser fsicamente consecutivas, son posiciones lgicas, de ah la razn que esta organizacin
slo pueda darse en soportes direccionables.
Para direccionar un registro se usa una relacin, que ser una funcin matemtica o similar, entre la clave y
la direccin a acceder. Esta relacin debe ser fcil de aplicar, generar poca fragmentacin y evitar
colisiones. Para relacionar clave y direccin relativa del registro se usan las tcnicas de direccionamiento
directo, asociacin y hashing (aleatoria), ya presentadas.
Para la utilizacin de ficheros se definen las operaciones tpicas de creacin, apertura, cierre, etc. y variarn
en funcin de la organizacin que se de al fichero. Debe tenerse en cuenta que en este caso se trata el
fichero como una unidad, sin tener en cuenta sus registros, pero si su organizacin.

64
2.1. Creacin, apertura, cierre y borrado
La creacin de un fichero consiste en definirlo. En esta operacin habr que indicar sus propiedades y
caractersticas para poder procesarlo, como por ejemplo su nombre, el mtodo de acceso, formato de los
registros lgicos y fsicos, fecha de creacin, etc. En funcin del SO o del lenguaje de programacin de que
se trate, se realizar de formas. En algunos casos, si el fichero no existe, al abrirlo, directamente se crea.
La apertura de un fichero consiste en identificarlo para empezar a operar con l. Al abrir un fichero, se
pueden producir errores si no se encuentra (por un error en el nombre, por ejemplo), por fallo de dispositivo
o porque el usuario no tenga permisos.
Para abrir y en su caso crear un archivo, se usar una instruccin OPEN o similar. Un ejemplo de formato
podra ser: OPEN [NombreDeFichero] FOR [Append| Binary| Input| Output| Random] AS #filenumber.
Donde [NombreDeFichero] es el nombre, que puede incluir tambin su ruta, del archivo que se abrir. Si no
se especifica ruta, se entiende el archivo localizado en la unidad desde la que se trabaja. Las opciones
[Append| Binary| Input| Output| Random], especifican la utilizacin que se har del fichero. Append, Input y
Output se usan para ficheros secuenciales. Append, aade datos al fichero a partir del ltimo registro, Input
especifica la operacin de escritura y Output lectura. Binary y Random se usan para ficheros binarios y
aleatorios. Un fichero secuencial no puede abrirse para ser leido y escrito simultaneamente.
La sintaxis #filenumber se utilizara para asignar un nmero al archivo, en el rango que marque el SO o
lenguaje de programacin y servira para identificar el archivo.
El cierre de un fichero es la operacin indicativa de que el fichero se dejar de usar, para liberar los
recursos de memoria y SO que est utilizando y garantizando a la vez la integridad del mismo, si existen
datos en memorias intermedias por escribir. Al cerrar el fichero deja de ser accesible. El cierre basta, en
general, indicarlo con el identificador del fichero utilizado al crearlo o abrirlo. Errores tpicos que pueden
darse en el cierre son los debidos a dispositivos o la falta de espacio.
Las instrucciones de cierre suelen tener la sintaxis CLOSE o similares. Sintaxis tpica: CLOSE #filenumber.
La operacin de borrado de un fichero lo elimina de su localizacin y generar las operaciones necesarias
en el SO para realizarlo de forma efectiva. Sintaxis habituales son DELETE o ERASE. Ejemplo: DELETE
#filenumber.
2.2. Lectura, escritura y extensin
La lectura de un fichero es la que permite consultar o recuperar Read los datos del fichero. En un fichero
secuencial, los primeros datos que se leen son los de la ltima posicin operada. La sintaxis para la lectura
suele utilizar palabras del tipo READ. Ejemplo: READ #filenumber [condiciones], donde la opcin
condiciones puede especificar un rango de posiciones, una cantidad de registros, etc.
La escritura escribe datos en el fichero. Si el acceso del fichero es secuencial, el tamao del fichero
aumenta en proporcin a los datos introducidos. La sintaxis usa palabras del tipo WRITE. Ejemplo sera
WRITE #filenumber [datos]: WRITE #1, UserName, UserCompany, SerialNumber
Extender un fichero es aumentar su tamao asignando ms memoria de almacenamiento. Para ello, se
necesita identificar el fichero y el tamao adicional a asignar. La organizacin del fichero marca si el espacio
adicional a asignar debe ser contiguo o no. El atributo que indica el tamao del fichero ser modificado y se
devolver un cdigo de estado. El caso de error es que no haya suficiente espacio para la ampliacin. La
sintaxis habitual usa palabras tipo APPEND. Ejemplo: APPEND #filenumber [tamao].
2.3. Gestin
En caso de tratar con ficheros de acceso aleatorio, en general se tendr que especificar de dnde leer o
escribir datos, para lo que pueden ofrecerse instrucciones de llamada al sistema, que ajusten el apuntador a
una posicin concreta. Instrucciones de este tipo suelen tener la sintaxis SEEK.
En general, tambin sern necesarias algunas operaciones de gestin que pueden estar presentes en el SO
o el lenguaje de programacin. Algunas de las habituales que pueden estar presentes son la consulta de las
propiedades o atributos de un fichero. La sintaxis ser del estilo GET ATTRIBUTES #filenumber [opciones].
Si se ha de modificar algn parmetro de las caractersticas del fichero, como sus flags, se podrn
encontrar sentencias del estilo SET ATTRIBUTES #filenumber [opciones].
Por fin, una operacin tambin muy habitual es la del renombrado del fichero. Las instrucciones para
realizarlo pueden ser muy diversas, pero, respondern a una sintaxis tipo RENAME #filenumber [opciones],
como estructura general.

65
BLOQUE 2. SISTEMAS OPERATIVOS Y SISTEMAS
Tema 15. Sistemas operativos. Componentes. Estructura. Funciones. Tipos.
Tema 16. Sistemas operativos: Gestin de procesos.
Tema 17. Sistemas operativos: Gestin de memoria.
Tema 18. Sistemas operativos: Gestin de E/S.
Tema 19. Sistemas operativos: Gestin de archivos y dispositivos.
Tema 20. Explotacin y administracin de un sistema operativo monousuario y multiusuario.
Tema 21. Sistemas informticos. Estructura fsica y funcional.
Tema 22. Planificacin y explotacin de sistemas informticos. Configuracin. Condiciones de
instalacin. Medidas de seguridad. Procedimientos de uso.

BIBLIOGRAFA
Sistemas Operativos, Stallings, W., Prentice Hall
Sistemas Operativos: Diseo e implementacin, Andrew S Tanenbaum, Prentice Hall
La biblia de Linux, Prentice Hall
Seguridad en UNIX y Redes, Antonio Villaln

Recursos web:
http://www.etsit.upm.es/
http://informatica.uv.es/iiguia/TSTD/
http://es.wikipedia.org/wiki/Portada
http://www.mitecnologico.com
http://ditec.um.es

66
TEMA 15. SISTEMAS OPERATIVOS. COMPONENTES. ESTRUCTURA. FUNCIONES. TIPOS.

1. INTRODUCCIN
2. SISTEMAS OPERATIVOS
3. COMPONENTES
4. ESTRUCTURA
5. FUNCIONES
6. TIPOS
6.1. Estructura
6.2. Servicios
6.3. Entorno

67
1. INTRODUCCIN
El sistema operativo es el interface entre usuario y hardware del sistema informtico. Entre otros, gestiona
los servicios que usan los programas para ejecutarse, organiza la memoria, asigna recursos y permisos, etc.
Su concepto fundamental es abstraer los detalles hardware de la mquina al usuario.
2. SISTEMAS OPERATIVOS
En los primeros estadios de desarrollo de los ordenadores, no exista un SO, con la concepcin que tiene
actualmente, de hecho, los programas se cargaban directamente. El incremento de prestaciones de las
mquinas, posibilit el desarrollo de programas ocultaban los detalles de la interaccin de bajo nivel entre
mquina y humano, surgiendo as el SO. Su evolucin ha estado muy ligada al desarrollo hardware, ya que
no todos los SO pueden ser ejecutados eficientemente en cualquier mquina.
Los primeros SO slo ejecutaban un programa a la vez (monoprogramacin). Si el sistema es capaz de
repartir el tiempo de UCP entre varios programas es un SO multiprogramacin, dando la impresin al
usuario de simultaneidad. A esta forma de trabajo se denomina concurrencia de procesos.
Cuando un programa necesita un recurso, el SO se lo asigna hasta que el recurso es devuelto. Esto implica
que el SO debe crear o eliminar procesos de usuario y sistema, suspender y continuar procesos, controlar la
comunicacin entre ellos, sincronizarlos y solucionar los bloqueos.
El SO implementa llamadas para que los programas soliciten los recursos al sistema. Los programas no se
ejecutan directamente en el procesador; hacen peticiones al SO que las interpreta y ejecuta. El procesador
tiene instrucciones de usuario que pueden ejecutar programas e instrucciones de superusuario que slo
ejecuta el SO. Las llamadas al SO estn en bibliotecas de interfaz que ofrecen los lenguajes de
programacin.
El PC hizo que algunos SO se basaran en una arquitectura determinada y pudieran ser portados entre
equipos de tecnologas compatibles. Los SO han evolucionado al multiproceso y multiusuario, y actualmente
controla todos los procesos y proporciona recursos a los desarrolladores software para liberarlos de los
aspectos de interfaz, comunicaciones, gestin de archivos o perifricos.
3. COMPONENTES
Para realizar sus funciones el SO se estructura en varios componentes. Los principales son el kernel, el
administrador de memoria, el administrador de archivos, el de procesos o el de E/S.
El kernel o ncleo del SO. Es el software responsable de abstraer el hardware al resto del SO. Ofrece a los
programas un interfaz de acceso seguro al hw, a travs de servicios de llamada al sistema que permiten
gestionar recursos. Tipos de kernel son los monolticos, microncleos, hbridos y exoncleos.
Los monolticos agrupan todas las funciones del sistema y no contemplan instrucciones ejecutadas
directamente por entes distintos al kernel. Ejemplos son los de Linux y Unix. Los microncleos ofrecen un
conjunto reducido de operaciones. Usan programas llamados servidores para ofrecer sus servicios. Ejemplo
es el ncleo de Minix. Los kernel hbridos presentan ms instrucciones para acelerar el proceso, como el
caso de WS. Los exoncleos usan bibliotecas para acceder al ncleo, sin abstraccin hw. Es un tipo de
ncleo experimental.
El administrador de memoria. Es el componente del SO que gestiona la MP, incluyendo la memoria virtual,
si se implementa. Las tareas de administracin de memoria deben llevar un registro de las partes usadas y
libres, decidir qu procesos se cargarn y dnde y asignar y liberar la memoria segn se necesite.
Para ejecutar un programa debe cargarse en memoria. Si se ejecutan varios programas a la vez, cada uno
tendr su asignacin de memoria y por tanto el SO se encargar de velar porque ningn programa acceda a
la parte de memoria utilizada por otro. Al terminar su ejecucin, la memoria de un programa se libera.
El administrador de archivos. Toda la informacin que procesa el ordenador se trata en forma de archivo,
que representa una abstraccin del sistema de almacenamiento. Los archivos tienen atributos como
permisos de acceso, el dueo, el tamao, etc.
Un tipo especial de archivo es el directorio, que se entiende como un archivos que puede contener otros
archivos. En general se organizan en el SO en forma de rbol jerrquico cuyo origen se denomina directorio
raz. El acceso a un archivo se especifica con su ruta absoluta tomando como referencia el directorio raz o
con su ruta relativa, referida al directorio de trabajo.
Los archivos se organizan en bloques. La forma de asignar y enlazar los bloques forma parte del sistema de
archivos del SO. Los comunes son FAT y NTFS en WS, Ext2, XFS en entornos Linux y HFS en MacOs.
La asignacin de archivos puede ser adyacente si se almacenan los archivos en bloques adyacentes, en
forma de lista ligada, si se referencian con listas que apuntan a bloques o mediante listas ligadas e ndices,

68
que son usados para el acceso aleatorio.Toda la gestin de estos aspectos es responsabilidad del
administrador de archivos del SO.
El administrador de procesos. Es el componente del SO que gestiona los procesos de un programa en
ejecucin. Esto implica que cada proceso debe llevar un control diferenciado para evitar incoherencias entre
distintos programas como el acceso a los mismos recursos a la vez, el control de la creacin y muerte del
proceso, la secuencia de llamada entre procesos y aspectos del estilo, que son gestionados por el
administrador de procesos.
El administrador de E/S. Es el componente del SO encargado de la gestin de los dispositivos de E/S. Entre
otros, proporciona el acceso a los controladores, corrige errores o planifica peticiones.
4. ESTRUCTURA
Pueden identificarse rasgos comunes de la estructura de todo SO, como la administracin de procesos, de
la MP, archivos, E/S, almacenamiento secundario, comunicaciones, o el interfaz de usuario. Aunque cada
SO es diferente, sus funciones son similares y por tanto los componentes son comunes. Algunos SO
incluyen lo fundamental en el ncleo y dividen otras funciones en programas del sistema.
La estructura de un SO posee rasgos comunes, aunque el resultado final depender de la organizacin que
lo desarrolle. Sin embargo, puede decirse que la prctica totalidad de ellos, estn marcados por el
desarrollo de UNIX, por lo que ser el modelo estructural en que se apoye la presentacin.
La estructura de Unix es un modelo de capas, en el que cada
capa slo se comunica con las de nivel inmediatamente
inferior y superior.
La primera capa estara formada por el hardware, la tecnologa
fsica implementada en la mquina, fundamentalmente el
microprocesador, placa base, buses, etc. El hardware
interacta directamente con el ncleo (kernel) del SO, que
proporciona una servicios comunes a los programas de capas
superiores. Las peculiaridades del hw permanecen ocultas a
los usuarios.
Al independizar los programas del hw, es fcil mover programas entre sistemas Unix ejecutados en distintas
plataformas. Por su parte, el kernel es el ncleo del sistema y realiza funciones relacionadas con el hw sin
relacionarse con el usuario. Permanece oculto. Se divide en dos partes: la administracin de procesos, que
asigna y administra recursos de la mquina, controla la ejecucin y tiempo de los procesos y determina los
privilegios de cada uno. Y la administracin de dispositivos, que supervisa la transferencia de datos entre la
MP y perifricos.
La ejecucin de un proceso en Unix se divide en dos niveles, el de ususario y el de kernel. Cuando se
produce una llamada al sistema se pasa de modo usuario a modo kernel. ste analiza la llamada, la ejecuta
y devuelve el control al modo usuario. Esta diferenciacin se produce porque los procesos en modo usuario
pueden acceder a sus datos, pero no a instrucciones ni datos del kernel o de otros usuarios. El modo kernel
puede acceder a todos los datos e instrucciones del sistema. Hay instrucciones privilegiadas a las que slo
se puede acceder en modo kernel, que reside permanentemente en memoria.
La siguiente capa es la de shell (intrprete de comandos), que interpreta los comandos del usuario y llama a
las rutinas correspondientes. Es una utilidad del sistema, no forma parte del kernel. Existen distintas
versiones de shell, como sh (standard shell), csh (c-shell), vsh (visual shell), rsh (restricted shell) o ksh (korn
shell). Cada usuario puede elegir su shell.
La shell muestra un prompt para indicar al usuario que puede aceptar un comando. Para introducir un
comando, se escribe el comando con sus parmetros y se pulsa intro. La lnea tecleada se denomina lnea
de comandos. Cuando la shell lee una lnea de comandos, extrae la primera palabra, asume que es el
nombre de un programa ejecutable, lo busca y lo ejecuta. La shell suspende su ejecucin hasta que el
programa termina y vuelve a leer la siguiente lnea de comandos.
La shell de Unix es programable porque de hecho, los comandos de la shell el usuario son pequeos
programas de una lnea. La shell trabaja programndola constantemente. La aplicacin de estos recursos
es uniforme en todos los programas.
Por fin, en la ltima capa se situaran las aplicaciones del usuario, de entre las que cabe destacar el
compilador de C, procesador de textos y editores o utilidades de comunicacin y redes. El compilador de C
(CC), es el programa que compila los programas de usuario. Make es un programa de compilacin. Se
puede definir un fichero makefile que compile un programa a partir de sus fuentes, donde habr que

69
especificar el compilador a usar, libreras y ubicaciones para el proceso y el enlace de las libreras. Es decir,
se explica qu se compila y cmo.
5. FUNCIONES
Entre las funciones de los SO destacan la administracin de archivos, el interfaz de usuario, el sistema de
E/S, o la gestin de las comunicaciones.
Administracin de archivos. La gestin de la informacin por parte del SO debe ser lgica y uniforme. Para
ello utiliza sus propios ficheros de configuracin y directorios, que en realidad tambin pueden entenderse
como ficheros contenedores de otros ficheros. La estructura del SO, en cuanto a ficheros se refiere, se
denomina sistema de ficheros del SO.
Entre las funciones que debe proporcionar se encuentran la de almacenar y estructurar archivos y
directorios, dar soporte a la manipulacin de archivos, hacer un mapa de los archivos o realizar su respaldo
frente a errores de almacenamiento.
Interfaz de usuario. El interfaz de usuario es el intrprete de comandos, que podr incluirse en el nucleo,
segn el SO de que se trate. Todo lo relativo a la gestin del interfaz es responsabilidad del SO. El interfaz
adems, puede presentarse de forma grfica, como por ejemplo los tpicos de ventanas, donde las
operaciones que permiten realizar poseen su correspondencia en lnea de comandos y tambin son
gestionadas por el sistema.
Integridad de informacin. Se refiere a las funciones que garantizan que los datos y recursos de distintos
usuarios no se vean afectadas por la interaccin con otros usuarios. Es decir, el SO debe controlar el
acceso de programas de forma que accedan nicamente a los recursos asignados o a los que tengan
autorizacin.
Administracin de E/S. Engloba las funciones de administracin de memoria, manejo de buffers, cach y
spooling, gestin del interfaz general de controladores de dispositivos, entre otras. El objetivo es ocultar al
usuario las peculiaridades fsicas de los dispositivos hw.
Gestin de almacenamiento secundario. Entre sus funciones, el SO debe contar con la planificacin de los
discos duros para dar cabida al sistema de archivos, gestionar el espacio libre y asignar el almacenamiento.
Gestin de Comunicaciones. Son funciones relacionadas con el control de envo y recepcin de datos a
travs de la red.
6. TIPOS
Los SO pueden clasificarse siguiendo varios criterios como lo son su estructura, servicios o entorno.
6.1. Estructura
El diseo de un SO atiende dos requisitos fundamentales, los del usuario, relativos a su facilidad de uso y
aprendizaje, seguridad o rendimiento y los requisitos software, aquellos relacionados con aspectos como el
mantenimiento, operacin o eficiencia. Un SO puede estructurarse de varias formas.
Estructura monoltica. Es la estructura de los SO primitivos, constitudos por un programa compuesto de
rutinas enlazadas de forma que cada una puede llamar a cualquier otra. Las caractersticas de esta
estructura son la construccin del programa a base de mdulos compilados por separado que se enlazan,
una definicin robusta de los parmetros de enlace entre rutinas (que puede generar mucho acoplamiento)
y escasez de protecciones y privilegios en el control de recursos.
En general, se disean a medida, por lo que son eficientes y rpidos, pero sin flexibilidad para ser portados
o adaptarse a distintas aplicaciones.
Estructura jerrquica. La complejidad del SO y el incremento de sus funciones desemboc en una
organizacin jerrquica de su estructura. Para ello, el SO se organiza en partes muy definidas con
interfaces muy claras con el resto de componentes.
La primera estructura jerrquica o de niveles definida fue THE (Technische Hogeschool, Eindhoven), de
Dijkstra, utilizada con fines didcticos. Se puede asociar estos sistemas con sistemas multicapa, como
puedan ser Multics o Unix. Esta estructura es la predominante en la mayora de SO actuales. El diseo
jerrquico permite que los niveles internos del SO esen ms protegidos frente a accesos indeseados desde
las capas externas. Por tanto, las capas internas debern requerir ms privilegios para su acceso.
Mquina virtual. Es una estructura de SO en que se ofrece un interface a cada proceso, simulando una
mquina similar a la mquina real o nativa. En este caso, el SO distingue entre multiprogramacin y
mquina extendida. El objetivo de los SO basados en mquina virtual es integrar distintos SO aparentando
funcionar como mquinas diferentes.

70
El ncleo de estos SO se denomina monitor virtual y su misin es gestionar la multiprogramacin,
ofreciendo a los niveles superiores tantas mquinas virtuales como sean necesarias. Estas mquinas
virtuales no son mquinas extendidas, sino rplicas de la mquina nativa.
Cliente-servidor (microkernel). Este tipo de SO puede ser ejecutado en la mayora de ordenadores, es de
propsito general y cumple con las misma funcionalidad que un SO convencional. Su funcionamiento
consiste en que el ncleo establece comunicacin entre procesos clientes y servidores.
Los procesos pueden ser clientes del servidor correspondiente para una operacin sobre un recurso. A su
vez, un proceso cliente puede actuar como servidor para otro. Esta organizacin ofrece gran flexibilidad en
cuanto a los servicios del sistema final, ya que el ncleo provee funciones bsicas y procesos, delegando en
los servidores la mayora de funciones que el usuario final requiera. Los servidores implementarn los
mecanismos de proteccin que, a su vez, sern gestionados por el ncleo.
6.2. Servicios
En funcin de los servicios ofrecidos al usuario, se pueden identificar SO de tipo:
Monousuario. Son SO que dan servicio a un usuario a la vez, independientemente del nmero de micros de
la mquina, nmero de procesos que el usuario pueda ejecutar en un mismo instante u otras variables.
Multiusuario. Son SO capaces de dar servicio a ms de un usuario simultaneamente. Para que esto ocurra,
los usuarios se conectarn desde varios terminales, reales o virtuales (red). El servicio se presta con
independencia del hardware de la mquina y del nmero de procesos que cada usuario ejecuta.
Monotarea. Un SO monotarea slo permite realizar una tarea por usuario simultneamente. Puede darse el
caso de un sistema multiusuario y monotarea, si se atiende a varios usuarios a la vez, pero en un instante
concreto de tiempo slo se realizar una tarea perteneciente a uno en particular.
Multitarea. Son los que permiten al usuario realizar varios trabajos simultneamente. Suelen organizarse
son interfaces grficas con mens, para facilitar el cambio rpido entre tareas.
Monoproceso. Los que son capaces de gestionar slo un procesador del ordenador. Si la mquina tuviera
ms de un procesador se perdera la capacidad excedente al no poder explotarse.
Multiproceso. Los SO capaces de gestionar ms de un procesador del sistema. Pueden trabajar de forma
simtrica o asimtrica. En simetra, los procesos o sus partes (threads o hilos) se asignan indistintamente a
cualquier procesador. La asimetra consiste en establecer un procesador como maestro para distribuir la
carga al restp de procesadores esclavos.
Un thread o hilo es la parte activa en memoria de un proceso que se ejecuta. El multiproceso requiere que
la programacin se adapte a sus caractersticas para obtener su mximo rendimiento. As, programas
desarrollados para sistemas monoproceso pueden no obtener mayor rendimiento en sistemas multiproceso,
si el cdigo no es paralelizable, es decir ejecutable simultneamente en distintos procesadores.
6.3. Entorno
En funcin del entorno en que operen y su organizacin, los SO pueden clasificarse red y distribuidos.
SO de red (NOS). Son los que presentan la capacidad de interactuar con los SO de otros equipos a travs
de una red. Se orientan a la gestin de recursos, el intercambio de informacin, operaciones remotas,
sincronizacin de trabajos y tareas distribuidas, en general.
SO distribuidos. Son los que ofrecen sus servicios a travs de una red integrando los recursos de forma
centralizada, de forma que el usuario trabaja en con el SO remoto como si estuviera en local, de forma
transparente. El ejemplo paradigmtico es el de un terminal ligero, como por ejemplo un cajero automtico,
que trabaje directamente con el SO de un servidor ms o menos remoto, dando la impresin al cliente que
est trabajando en el cajero, cuando lo cierto es que accede a otra mquina que centraliza el proceso.
La realidad no cuenta con SO distribuidos puros por la complejidad que presentan a la hora de distribur
procesos en varias unidades de proceso, resolver concurrencia y paralelismo, recuperacin de errores y
otros. Adems el incremento de potencia de las estaciones remotas a bajos precios relativos aconseja
soluciones mixtas, en que el SO distribuido coordine las capacidades de la red en su conjunto.
Las razones para crear o adoptar SO distribudos bsicamente son dos, que los problemas a resolver
tengan un marcado caracter distributivo o por fiabilidad y disponibilidad de recursos. El primer caso sera
tpico el ejemplo anterior de un parque de cajeros automticos. El segundo caso vendra ejemplificado por
un sistema de alta disponibilidad en que si un servidor falla, al estar replicado, el servicio no se interrumpa.

71
TEMA 16. SISTEMAS OPERATIVOS. GESTIN DE PROCESOS.

1. INTRODUCCIN
2. SISTEMAS OPERATIVOS
3. GESTIN DE PROCESOS
3.1. Planificacin
3.2. Comunicacin entre procesos
3.3. Interbloqueo
3.4. Exclusin mtua

72
1. INTRODUCCIN
La gestin de procesos es el conjunto de actividades responsables del control y administracin de las partes
en ejecucin de cada programa. Abarca aspectos como tiempos de ejecucin asignados, control del tiempo
de respuesta, polticas de asignacin de recursos y prioridades o la comunicacin e interbloqueo entre
procesos. De esta gestin depende en gran medida el rendimiento del ordenador.
2. SISTEMAS OPERATIVOS
Sigue siendo vlido lo expuesto en el punto 2 del tema anterior.
3. GESTIN DE PROCESOS
Un proceso es un programa en ejecucin. Esto implica que ha debido ser cargado en memoria, le han sido
asignado recursos y posee un estado reflejado en el contador de programa. Adems, la gestin de un
proceso incluye una pila que almacena parmetros temporales y datos variables globales.
Un proceso puede crearse como respuesta a un intento de conexin de usuario, para ofrecer un servicio del
SO o generarse por peticin de otro proceso, que desde ese momento recibir el nombre de proceso padre
y el proceso generado se llamar hijo. Del mismo modo, un proceso que termina, debe ser gestionado por el
SO para liberar los recursos que tuviera asignados. La muerte un proceso puede ser natural o forzada,
cuando por ejemplo hay un error, o lo mata el superusuario.
Por su parte, un hilo es una tarea que puede ejecutarse en paralelo con otra. Permite a una aplicacin
realizar varias tareas a la vez, de forma concurrente, compartiendo recursos, y por tanto, simplificando el
diseo de las aplicaciones. El conjunto de hilos de ejecucin que comparten recursos y esos mismos
recursos, se denomina proceso.
Los hilos se diferencian de los procesos porque los procesos, en general, son independientes y no
comparten recursos directamente. Al cambiar de un proceso a otro mediante el dispatcher, el SO genera un
overhead, o tiempo desperdiciado por el procesador para realizar un cambio de contexto, en este caso
pasar del estado de ejecucin al de espera y colocar el nuevo proceso en ejecucin. En el caso de un hilo,
al pertenecer al mismo proceso, al realizar un cambio de hilo, prcticamente no hay overhead.
Los procesos son controlados por el SO con una cola que enlista los procesos que solicitan el uso de UCP.
La posicin de un proceso en las colas de gestin determina su estado, de los que los fundamentales son
ejecucin, listo o bloqueado. Un proceso en ejecucin, es el que ocupa actualmente la UCP, si est listo,
significa que est preparado para ejecutarse y el estado bloqueado indica la imposibilidad de ejecutarse
hasta que se de un evento como por ejemplo, una operacin de E/S.
Otros estados son el de nuevo, suspendido y terminado. En el estado nuevo, el proceso es creado, pero no
ha entrado en el grupo de ejecutables. Para crear un proceso nuevo el SO le asigna un identificador y las
tablas necesarias para su gestin. El estado terminado significa que ha sido excluido del grupo de
ejecutables y el sistema debe liberar los recursos que tuviera asignados. Un proceso suspendido es el que
pasa a memoria secundaria y dejando de estar disponible inmediatamente para ejecucin. Los estados
bloqueado y suspendido son independientes.
El cambio de estado de un proceso requiere guardar el estado anterior y cargar el nuevo. El tiempo de
cambio de contexto es variable. Puede consistir slo en cambiar punteros de registros o usar memoria. Las
transiciones entre estados son fciles de recordar. Un proceso nuevo podr pasar a listo o ejecucin. Del
mismo modo, un proceso puede terminar desde cualquier estado. Y al estado de suspenso se puede llegar
desde cualquier otro estado.
Por tanto, para recordar las transiciones fundamentales puede
usarse el esquema de la figura.Las transicin de ejecucin a
bloqueado enva una seal block al darse un cierto evento, de
ejecucin a listo se da, por ejemplo al repartir la UCP su tiempo
entre procesos, de listo a ejecucin cuando la UCP asigna su
tiempo al proceso o de bloqueado a listo, cuando la condicin de
bloqueo cesa.
La informacin de control de un proceso se agrupa en un bloque llamado de control de proceso PCB, que
se compone de varios campos que representan su estado, el contador del programa (con la siguiente
instruccin a ejecutar), registros de la UCP (que contiene los registros que utiliza), informacin de
planificacin (prioridad, punteros de colas,...), informacin de memoria y de proceso (tiempo de UCP, lmites
temporales) e informacin de E/S. Incluye tablas de pginas o tablas de segmentos adems del valor de los
registros base y lmite.Las tablas de memoria almacenan informacin sobre la asignacin de MP y virtual a
procesos, datos de proteccin y acceso a memoria compartida e informacin de gestin de memoria virtual

73
Las tablas de E/S son usadas por el SO para conocer el estado de un dispositivo de E/S, los canales de
comunicacin y las posiciones de memoria usadas para la transferencia.
A cada proceso se asigna una zona de memoria. Si es compartida habr que evitar accesos simultneos y
si es reservada, evitar accesos no autorizados. Por tanto el SO debe controlar las direcciones de memoria
permitidas a cada proceso, en general con un registro base y otro lmite que indican la primera direccin y la
ltima o la longitud de la zona. Si se produce un intento de acceso no autorizado se activar una
interrupcin de error.
El espacio de memoria en que se da concurrencia de procesos se denomina seccin crtica. El SO tiene la
responsabilidad de evitar colisiones (exclusin mutua), inanicin o interbloqueo (que la espera no sea
indefinida) y que el acceso sea progresivo. Adems, el resultado de los procesos debe ser independiente de
su velocidad y orden de entrada en la seccin crtica. Estos errores se denominan condicin de carrera.
Las tareas ms importantes de gestin de procesos que realiza el SO se resumen en la sincronizacin, que
se da cuando varios procesos interactan y debe evitarse incurrir en incongruencias entre ellos y el control
de los estados, en particular los bloqueos dados por la E/S y la asignacin de tiempo de UCP. Estas dos
tareas implican por una parte la planificacin de los procesos, la comunicacin entre ellos y el interbloqueo.
3.1. Planificacin
En la gestin de procesos adquiere especial importancia la planificacin para asignar el tiempo de UCP que
consumir cada uno. sta ha de orientarse a obtener un mnimo tiempo de respuesta mnimo y la mxima
productividad. El SO es el que decide los procesos que entran en cola, para lo que se vale de dos
planificadores, el de corto y largo plazo.
El planificador a largo plazo selecciona procesos de memoria secundaria y los carga en la MP para su
ejecucin y acta cuando lo solicita un nuevo programa. El planificador a corto plazo selecciona uno de los
procesos listos y le asigna UCP, se ejecuta casi constantemente. A veces se utilizan planificadores a medio
plazo, para organizar colas de suspensin, que contienen los procesos en espera en memoria secundaria.
Un proceso se ejecuta a rfagas, bien de CPU, bien de E/S que lo bloqueen. Las rfagas poseen distintas
duraciones, que debe tener en cuenta el planificador.
El planificador a corto, es el que planifica el uso de UCP y mantiene la cola de procesos listos y la cola de
dispositivo, con los procesos en espera de E/S. Un proceso en cola de procesos que pasa a ejecucin
podr ejecutar una rfaga de UCP, requerir una E/S y pasar a la cola de dispositivo. Del mimo modo, podr
crear nuevos procesos y esperar a que terminen o ser eliminado por algn error, violacin de permisos, etc.
Los planificadores, para asignar los procesos a la UCP utilizan algoritmos de planificacin, que deben entre
otros, deben contar con criterios como el tiempo de respuesta (el que pasa entre la emisin de la solicitud y
la primera respuesta), el tiempo de retorno (el empleado en ejecutar el proceso), uso de UCP, plazos de
ejecucin, equidad (todos los procesos deben tratarse), prioridades, productividad (nmero de procesos
terminados en la unidad de tiempo), equilibrio de recursos o tiempo de espera de un proceso.
Los algoritmos implementan polticas de asignacin, cuyo rendimiento, en general depender de los
programas que se ejecuten. Como ejemplo pueden pensarse en la asignacin de memoria a los procesos
ms comnmente utilizados, ya que puede suponerse que se seguirn utilizando ms habitualmente. Sin
embargo podr usarse la poltica contraria, los procesos ms recientemente utilizados, precisamente por
esto, se utilizarn menos en el futuro.
Esta es la razn por la que la poltica ms apropiada dependa de la ejecucin concreta de los programas.
Algunos de los algoritmos de planificacin ms conocidos son FCFS, SJF o round robin.
El algoritmo FCFS implementa una cola FIFO en la que el primer proceso que pide recursos es el primero
en ser atendido. No es eficiente ya que un proceso largo o un bucle pueden bloquear el procesador.
El algoritmo SJF (primero el trabajo corto), ejecuta rfagas sin interrupcin, eligiendo siempre la de menor
duracin de entre las asignadas a cada proceso. Es util en procesos por lotes. Si dos procesos tienen la
misma duracin de rfaga se aplica FCFS. Es ptimo, pero presenta la dificultad del clculo de la duracin
de la siguiente rfaga, que suele estimarse como de duracin igual a la anterior.
El algoritmo Round Robin (turno rotatorio) implementa una cola FIFO circular de procesos listos en que se
asigna a cada proceso un tiempo mximo o cuanto, de forma que si un proceso requiere una rfaga menor
que el cuanto, se libera y si es mayor, se interrumpe dejando paso al cuanto de otro proceso. Est pensado
para sistemas de tiempo compartido.
Cuando un algoritmo implementa una poltica de prioridades, la gestin se realiza en funcin de la prioridad
de cada proceso, con varios niveles o con colas de diferentes prioridades. En este caso, al dar servicio a la
cola ms prioritaria se procesa la siguiente ms prioritaria y as sucesivamente. Si se trata de colas

74
multinivel, se permite a los procesos cambiar de cola, de forma que los procesos prioritarios se siten en las
colas prioritarias. En general se dispondr de cierto nmero de colas, un algoritmo de gestin para cada una
y un algoritmo para el cambio de procesos a colas de mayor o menor nivel.
Estos ejemplos de algoritmo suponen el trabajo con un nico procesador que ejecuta rdenes en forma
secuencial. En un entorno multiprocesador, tanto el hardware como el SO deben gestionar los procesos de
forma diferente as como repartir la carga entre procesadores. En estos casos, la creacin de hilos no ofrece
un paralelismo en los programas de forma que se explote la capacidad de un multiprocesador.
La planificacin al ser ms compleja, afecta al rendimiento. Uno de los mayores problemas es el arbitraje de
dos procesos que se ejecutan en dos procesadores distintos y acceden al mismo espacio de memoria. Las
posibles soluciones generan dos tipos de arquitectura, NUMA y SMP. En la primera, cada proceso tiene
acceso y control de una parte de la memoria y en la segunda todos los procesos comparten memoria.
3.2. Comunicacin entre procesos
La comunicacin entre procesos (ICP) es una de las tareas importantes del SO. Se realiza a travs de
zonas de memoria compartida u otros mtodos como por ejemplo soluciones hw. El SO ofrece para la
comunicacin dos primitivas, send y receive de argumentos el identificador de proceso destino y el mensaje.
La comunicacin puede ser directa o indirecta. En la directa, un proceso nombra explcitamente al receptor,
estableciendo un enlace nico entre pares con una seal tipo Send(P, mensaje) y el destino lo recibe
mediante otra seal tipo Receive(Q, mensaje). En la comunicacin indirecta los mensajes se cambian
mediante buzones. Si dos procesos tienen un buzn compartido tienen un enlace. Un buzn puede
asociarse a ms de dos procesos y entre dos procesos puede haber ms de un buzn.
Los buzones pueden tener longitud nula, es decir, no se permite la espera o almacn de mensajes, y por
tanto el emisor y receptor se bloquean hasta que la parte contraria recibe o vuelve a enviar, longitud n, caso
en que el emisor podr dejar hasta n mensajes que ir descargando el receptor, o longitud ilimitada, si el
emisor puede dejar, tericamente, un nmero ilimitado de mensajes.
Para evitar el bloqueo de emisor y receptor se puede implementar exclusin mutua para evitar que el
receptor solicite datos antes de que ser emitidos o el emisor emita antes de que el receptor est preparado.
3.3. Interbloqueo
El interbloqueo es un problema que afecta a procesos concurrentes que se da cuando se solicita un recurso
que no puede usarse porque en teora se est utilizando por otro proceso, pero que en realidad puede no
estar usndolo. El problema puede ser originado por el sistema de gestin de recursos.
Si se produce interbloqueo, se cumplen simultneamente la exclusin mutua (los recursos no se pueden
compartir), retencin y espera (se retiene un recurso a la espera de recursos de otros procesos), no
expropiacin (un recurso no puede expropiarse) y espera circular (se esperan recursos del proceso
siguiente, que espera recursos del siguiente y el ltimo espera recursos del primero).
Un caso tpico de interbloqueo es la inanicin, situacin en la que un proceso no bloqueado espera un
evento que no se dar, por ejemplo, si con polticas de prioridades, los procesos quedan en espera de
recursos de forma que el inicio del proceso se retrase indefinidamente por atender a procesos prioritarios.
Para evitar el interbloqueo se pueden plantear mecanismos de prevencin, deteccin y recuperacin que
pueden resultar caros en cuanto a recursos y proceso, ya que por ejemplo la deteccin del del recurso o
proceso implicado puede llevar mucho tiempo.
En general para evitarlo se implementan mecanismos de exclusin mutua, u otros que garanticen que los
procesos solicitan todos los recursos necesarios a la vez, de forma que no continue hasta tenerlos todos
disponibles, o bien que si le falta algn recurso, libere el resto a l asignados.
Entre los mtodos de prevencin del interbloqueo es tpico el algortimo del banquero, que precisa
informacin de cmo se solicitan recursos y su nmero mximo necesario, el orden en que se solicitan y
liberacin. El algoritmo examina dinmicamente el estado de la asignacin de recursos para evitar la espera
circular. Para la deteccin de interbloqueo se pueden usar algoritmos basados en redes de Petri.
Se definen los estados del sistema con el nmero de recursos disponibles y asignados y por la demanda
mxima de procesos, distinguiendo entonces entre estados seguros e inseguros. Los primeros son aquellos
en que el sistema puede asignar el mximo nmero de recursos a cada proceso, en orden y evitar el
interbloqueo. un estado inseguro es el que no garantiza que se produzca interbloqueo.
3.4. Exclusin mtua
La exclusin mutua debe garantizar que no se producen inestabilidades debidas a accesos simultneos a
zonas de memoria compartida. Para ello se aplica el concepto, ya presentado de exclusin mtua. La

75
exclusin mutua se suele implementar desactivando interrupciones en secciones crticas, con variables
interruptor que indican si un proceso puede acceder a una seccin crtica o con semforos del SO, que son
mtodos de control similares. Dos algoritmos representativos de implementacin de exclusin mutua son los
de Dekker y Peterson.
El algoritmo de Peterson es una simplificacin del de Dekker para dos procesos. Bsicamente usa una
variable bandera cuyo valor depende del proceso que la invoca y un turno que indica el proceso activo. El
algoritmo de Dekker usa un turno, de forma que al asignar el turno a un proceso, se cierra la seccin crtica
al resto. El siguiente es un ejemplo de implementacin en seudocdigo.
El algoritmo tiene un vector de banderas y un turno. Un cierto:= 1; bandera[2]:= [0,0]; turno:= 0;
proceso que quiere entrar a la seccin crtica coloca su
mientras (cierto) {
bandera a 1. Si la bandera de otro proceso en la seccin
crtica es 1, queda en espera hasta que le sea cedido el bandera [Idpro]:=cierto;
turno. Cuando obtiene el turno, si el otro proceso pone su
bandera a 0, sale del primer bucle, entra en la seccin mientras (bandera[1-Idpro] = cierto) {
crtica indefinidamente y sale del segundo bucle. Cuando if (turno = 1-Idpro) {
termina le da el turno a otro y pone su bandera a 0.
bandera[Idpro] = 0
Esta solucin sw puede sustituirse por otras soluciones hw,
como lo son la inhabilitacin de interrupciones o las mientras (turno = 1- Idpro)
instrucciones atmicas. La inhabilitacin de interrupciones bandera[Idpro]:= 1 /* espera */
puede generar inanicin si un programa no termina.
} /* Seccin Crtica */
Otras posibles implementaciones para la exclusin mtua
son los mtodos de semforos y los monitores que }
proporciona el SO. Un semforo es una variable protegida turno := 1- Idpro; /* turno de otro proceso */
que funciona a modo de indicador de turno, que en general
se disponen tantos, como recursos a gestionar. bandera[Idpro] := 0;

Por ejemplo, un proceso podr invocar una primitiva tipo /* ''Seccin no crtica'' */
SIGNAL para liberar un recurso o un WAIT para esperar su }
turno. WAIT y SIGNAL son instrucciones atmicas.
Si un proceso solicita un recurso y el semforo posee un valor mayor que 0, el proceso ser atendido y se
decrementa el valor del semforo. Cuando termina libera el recurso y otro proceso en espera recoger el
turno. La forma elemental de representar un semforo es como interruptor binario.
El uso de semforos se suele explicar con problemas tpicos como el de los filsofos o el del productor
consumidor. En el primero, cinco filsofos tienen que comer de sus cinco platos respectivos, disponiendo de
slo 4 tenedores y adems se necesitan 2 para comer. En el segundo un proceso produce datos que
consume otro. Los semforos deben evitar que los datos se consuman ms rpido de lo que se producen.
Las soluciones con semforos, en el primer caso pasa por hacer que cada filsofo (proceso) solicite el
tenedor (recurso) en el mismo orden, para romper la espera circular y el interbloqueo. Si los dos tenedores
estn libres, se accede al plato de comida (seccin crtica). En el caso del productor consumidor se
incrementa el semforo en 1 cada vez que el productor genere un dato. Si el semforo es 0, el consumidor
espera hasta que sea mayor que 0, momento en que consumir los datos. El uso de semforos implica el
uso de primitivas por parte de los programas, lo que puede complicar la programacin.
Los SO tambin pueden usar monitores, para evitar la exclusin mtua. Un monitor es un mdulo sw que
garantizan que sus recursos (mtodos, variables...) slo se usan por un proceso a la vez. Un monitor se
estructura en una inicializacin, datos privados, procedimientos propios y cola de entrada que indica los
procesos en espera. La seccin crtica se programa en el cuerpo del monitor, garantizando su integridad.
Adems, un monitor podr suspender un proceso y liberar sus recursos para que otro pueda usarlos
mientras el anterior espere. Esto suele realizarse con variables de exclusin tipo Cwait o Csignal.

76
TEMA 17. SISTEMAS OPERATIVOS. GESTIN DE MEMORIA.

1. INTRODUCCIN
2. SISTEMAS OPERATIVOS
3. GESTIN DE MEMORIA
3.1. Organizacin
3.2. Asignacin
3.3. Proteccin

77
1. INTRODUCCIN
La MP es gestionada por el SO, lo que implica obtener rendimiento y seguridad. Un SO gestiona la memoria
permitiendo a varios procesos disponer simultneamente de ella y amplindola con memoria virtual.
2. SISTEMAS OPERATIVOS
Sigue siendo vlido lo expuesto en el punto 2 del tema anterior.
3. GESTIN DE MEMORIA
La gestin de memoria tiene en cuenta tres aspectos: organizacin, asignacin y proteccin. La
organizacin describe cmo se estructura la memoria para dar cabida y gestin a los procesos. La
asignacin aborda el problema del control del espacio usado y el libre. Por su parte la proteccin se encarga
de proteger los espacios reservados de memoria de accesos no autorizados.
Estos tres aspectos deben garantizar la ejecucin segura de los procesos, as como orientarse a ofrecer un
correcto rendimiento del sistema, puesto que las polticas a implementar pueden afectar de forma notable la
eficiencia del sistema, si por ejemplo se desaprovecha memoria, hay demasiada fragmentacin, etc.
3.1. Organizacin
La organizacin de la memoria la realiza el SO, designando las zonas que ocupar cada programa o
proceso. La primera solucin que se plantea, ms didctica que prctica es la organizacin absoluta, en la
que el SO reservara una zona de memoria para cada programa. Es una solucin rgida que puede generar
problemas, ya que en principio puede no conocerse la longitud ni nmero de programas que se procesarn.
La organizacin absoluta se realiza en tiempo de compilacin.
Soluciones ms flexibles son las basadas en direccionamientos lgicos, que el SO traduce a direcciones
fsicas, bien estticamente, si la traduccin se realiza en tiempo de carga del programa en MP, bien de
forma dinmica que se realiza en tiempo de ejecucin, sumando la direccin lgica al valor de un registro.
Los clculos los hace la MMU (Memory Management Unit) del procesador.
Los primeros gestores de memoria organizaban la memoria en una parte para el SO y otra de programa, lo
que se conoce como organizacin de valla o registro lmite. Actualmente, la gestin de memoria es ms
compleja distinguindose dos grandes formas de organizacin, las particiones fijas y las variables.
Particiones fijas: En esta forma de organizacin, el SO crea zonas de memoria de tamao fijo y distribuye
los procesos completos en esas zonas contiguas. Este mtodo genera fragmentacin interna, es decir, se
desaprovecha parte de la memoria, ya que es difcil que el tamao de un proceso coincida con el de la
zona, con lo cual se ubicar, en el caso general, en una zona algo mayor.
La diferencia de tamaos representa el grado de fragmentacin. Para minimizarla se usan algoritmos y
sonas de distintos tamaos. El SO decide el tamao de cada zona en funcin del tamao mximo de
proceso, memoria disponible, etc. Adems mantiene una tabla con la zona ocupada por cada proceso.
Particiones variables: La memoria se organiza en zonas en funcin de las necesidades de los procesos,
ajustando la particin al tamao del proceso. En este caso la fragmentacin surge cuando un proceso se
libera de la memoria y queda su hueco. El siguiente proceso que pase a ocupar ese hueco, lgicamente
ser de menor o igual tamao, lo que genera fragmentacin externa, en contraposicin al anterior tipo de
fragmentacin, la interna.
Para gestionar la fragmentacin interna el SO puede intentar fusionar huecos adyacentes, de forma que si
un proceso se libera y existe un hueco aledao se unan, u optar por la compactacin de memoria,
trasladando reas ocupadas a zonas contiguas, sin espacios, generando zonas libres grandes. Estas
tcnicas de desfragmentacin requieren un tiempo que debe considerarse y lgicamente se da con
organizaciones dinmicas.
La organizacin de la memoria requiere que el SO debe conocer qu zonas estn libres y cuales ocupadas.
Para ello puede servirse de un mapa de bits o listas. La utilizacin de mapas de bits divide la memoria en
zonas variables a las que se asigna, por ejemplo un 1 si est ocupada y un 0 si est libre. Otra vez se
precisa asumir compomisos puesto que si las zonas son pequeas, se incrementa el coste de
mantenimiento y si son demasiado grandes se incrementar la fragmentacin. El uso de listas representa la
memoria como nodos de la lista con la propiedad de ocupado o libre. El tipo de lista marca el rendimiento de
la gestin de los huecos y por tanto de la memoria.
Las polticas a seguir para organizar los procesos en memoria utilizan criterios, que pueden ser igual de
ptimos o no, dependiendo de la situacin. Los ms habituales son el de primer ajuste, en que se recorre la
memoria hasta que se encuentra un hueco en que cabe el proceso, el mejor ajuste, que busca el hueco ms
ajustado al tamao del proceso o el de peor ajuste, que genera el hueco ms grande posible.

78
3.2. Asignacin
La asignacin soluciona los problemas de la ubicacin de procesos en memoria. Bsicamente se distinguen
los casos de llegada de un proceso nuevo, de sustitucin y de captura, cuando un proceso que no es nuevo
debe entrar en memoria.
La asignacin de memoria a procesos debe afrontar el problema de intercambio de procesos, lo que
representa todo un arte, que implica decidir los criterios y polticas ptimas de cambio bajo demanda o las
estimaciones de los procesos que ms habitualmente se usarn en el futuro.
Paginacin. Es una tcnica que intenta optimizar el uso de memoria dividindola en bloques del mismo
tamao llamados marcos de pgina, de forma que un proceso puede dividirse y situar sus partes en marcos.
El SO mantiene el estado de cada marco con una tabla de marcos que indica si estn libres o no.
A su vez, el espacio de direcciones de un proceso se divide en pginas y se buscan los marcos necesarios
para cargar las pginas del proceso. Una direccin lgica se divide en un nmero de pgina y un
desplazamiento en la misma. Los marcos del programa no son contiguos, sino que se gestionan con una
tabla de pginas creada al cargar el proceso. La tabla de pginas se opera con la MMU y as se evita la
fragmentacin externa y la interna queda limitada a media pgina por proceso.
La forma de implementar la tabla de pginas ha de tener en cuenta que no sea de un tamao excesivo y el
tiempo de asignacin y de cambio de contexto debe minimizarse. Si en los registros se almacena un
puntero al comienzo de la tabla, el cambio de contexto slo implica cambio en un registro, pero con ms
accesos a memoria. Una solucin de compromiso es el de memoria asociativa. Se basa en que la mayora
de procesos usan habitualmente las mismas pginas, que se guardarn en la memoria asociativa con su
marco fsico. Si una pgina no est en la memoria asociativa se busca en la tabla de pginas.
Segmentacin. Intenta solucionar la fragmentacin interna distinguiendo las partes lgicas de un programa.
El espacio de direcciones de un proceso se divide en partes lgicas de tamao variable denominados
segmentos con diferentes nombres y tamaos. Las direcciones especifican el nmero de segmento y
desplazamiento. La segmentacin la controla el programador.
La segmentacin se define en tiempo de compilacin, cuando se les asigna identificadores, con los que se
crea una tabla de segmentos que hace corresponder direccines lgicas y fsicas y almacena la direccin
fsica base y el tamao de segmento. Como el nmero de segmentos es variable, es necesario almacenar
un registro con la longitud de la tabla de segmentos. Puede generarse fragmentacin externa.
Los SO actuales usan una solucin combinada, la segmentacin paginada, que usa segmentacin de cara
al usuario y los segmentos se dividen en pginas, minimizando la fragmentacin externa e interna. La tabla
de segmentos contiene la direccin de la tabla de pginas del mismo. Por tanto, una direccin lgica tiene el
nmero de segmento y el desplazamiento a su vez se divide en pgina y desplazamiento en ella.
Memoria virtual. Si un proceso necesita ms memoria que la que puede tener en MP, puede usarse
memoria virtual (MV), que es memoria secundaria (HD o similar), que se trata como si fuese MP. Su
operativa consiste en dividir el programa, cargando partes en la memoria real y partes en la virtual. Cuando
es preciso ejecutar parte del programa en MV, se genera una peticin y se cambia una pgina de memoria
por la que se necesita ejecutar. El funcionamiento es transparente al usuario, pero lgicamente ms lento.
El SO debe conocer qu partes del programa estn en cada nivel, MP o MV y aplicar una poltica de
intercambio eficiente. Cuando se requiere un cambio de pgina de MV a MP, se produce un fallo de pgina
que hace que el SO cargue la pgina necesaria. La secuencia consiste en verificar las direcciones, guardar
el estado del proceso, seleccionar un marco libre o sustituir otra pgina, cambiar la pgina en MV a MP y
actualizar la tabla de pginas.
El cambio de MV a MP tambin se conoce como swapped in y el cambio contrario swapped out (se toma
como referencia la MP). El proceso de cambio no es trivial, debe seleccionar los procesos a retirar, los que
pasarn a MP y gestionar el espacio de intercambio.
El uso de MV requiere minimizar el tiempo promedio de acceso (suma del tiempo de acceso a memoria por
la probabilidad de no tener fallo de pgina ms el tiempo de solucin de fallo de pgina por la probabilidad
de ocurrencia) para aumentar su eficiencia. Por tanto, la gestin de MV intentar reducir la probabilidad de
fallo de pgina con polticas eficientes de sustitucin de pginas. Las habituales son FIFO, sustitucin
ptima, LRU o segunda oportunidad.
Una poltica FIFO selecciona la pgina que lleve ms tiempo en memoria, considerando que las pginas
ms usadas no volvern a serlo en el futuro reciente. La sustitucin ptima considera la sustitucin de la
pgina que ms tardar en volver a ser utilizada. Posee un carcter didctico y comparativo, ya que no
puede conocerse el futuro. El criterio LRU (ltima menos usada) cambia la pgina menos usada,

79
considerando que la tendencia seguir sin usarla en el futuro. El criterio de segunda oportunidad consiste en
sealar a cada pgina referenciada o no mediante un bit que se actualiza con cada cambio.
Elegir un criterio no es trivial, y cualquiera puede presentar buen comportamiento en funcin de la ejecucin
particular que se presente. Adems pueden combinarse tcnicas, mejorando el rendimiento. En cualquier
caso, el SO debe evitar la sobreasignacin de memoria sin producir fallos de pagina.
Lgicamente, si se asignan ms marcos a un proceso se reducen sus fallos de pgina, a cambio de menos
procesos activos. Por el contrario, si se asignan menos marcos, los fallos aumentan, pero caben ms
procesos en memoria. El SO debe adquirir un compromiso entre estos parmetros.
Los algoritmos de sustitucin se pueden dividir en locales o globales. Los locales sustituyen marcos de un
proceso y los globales seleccionan marcos del conjunto de todos los que hay en memoria. Ambos criterios
suponen ventajas e inconvenientes.
Por ejemplo, la sustitucin global con muchos procesos puede provocar un aumento del intercambio de
pginas, la hiperpaginacin, que disminuye el rendimiento del procesador. La sustitucin local ante
hiperpaginacin, limita los efectos al proceso que se trate, pero el rendimiento cae si la hiperpaginacin
afecta a varios procesos.
Se denomina conjunto de trabajo al de pginas usadas en un momento por un proceso. Para evitar
problemas, la situacin deseable es contar con los conjuntos de trabajo de cada proceso simultneamente
en memoria. Determinar qu pginas constituyen el conjunto de trabajo puede utilizarse el principio de
localidad, que enuncia que las referencias de los programas tienden a agruparse en zonas concretas del
espacio de direcciones que cambian poco, es decir, podra estimarse el conjunto de trabajo con las pginas
usadas ms recientemente e intentar no sustituir las pginas del conjunto de trabajo de un proceso.
3.3. Proteccin
La gestin de memoria que realiza el SO debe garantizar que un proceso no accede a zonas de memoria
reservadas a otros espacios. Son los aspectos de proteccin de memoria. Los mecanismos de proteccin
son varios, como los ya presentados de exclusin mtua.
Por ejemplo, en caso de reubicacin esttica, las direcciones generadas por la UCP deben verificar que son
mayores que la direccin base y menores que el lmite de la zona, si no es as, debe producirse un error que
tratar el SO.
Por su parte, la paginacin obtiene mayor rendimiento cuando dos o ms procesos ejecutan cdigo comn
de una misma pgina. En este caso el SO debe garantizar que los distintos procesos no interfieren y la
ejecucin se realiza con seguridad. La proteccin de la memoria podr implementarse con bits de
proteccin asociados a las pginas o mtodos similares.
Del mismo modo, la segmentacin tambin permite la comparticin de cdigo entre procesos. Los mtodos
de proteccin de segmentos son ahora ms eficaces que en el caso de la paginacin, ya que puede
protegerse todo el cdigo y dejar los datos slo de lectura.

80
TEMA 18. SISTEMAS OPERATIVOS. GESTIN DE ENTRADA/SALIDA.

1. INTRODUCCIN
2. SISTEMAS OPERATIVOS
3. GESTIN DE E/S
3.1. Interrupciones
3.2. Acceso Directo a Memoria

81
1. INTRODUCCIN
Los dispositivos de E/S permiten la interaccin de mquina y usuario. Es misin del SO su gestin y
sincronizacin con el resto de componentes del ordenador. En general el tratamiento de la E/S es el mismo
independientemente del dispositivo que se trate. Por tanto, el SO proporciona funciones genricas para el
tratamiento de la E/S y ser el fabricante el que adapte su firmware y software al dispositivo concreto.
2. SISTEMAS OPERATIVOS
Sigue siendo vlido lo expuesto en el punto 2 del tema anterior.
3. GESTIN DE E/S
La gestin de E/S del SO debe contemplar tareas como el envo de comandos a perifricos, tratamiento de
interrupciones, control de dispositivos y errores, gestin de buffers o presentar un interface simple entre
dispositivo y resto del sistema, en general comn a todos (independencia del dispositivo).
Tratamiento de interrupciones. Si un dispositivo est preparado para una operacin de E/S generar una
interrupcin y ser el SO el que la atienda, lo que implica que se debe suspender el trabajo que en ese
momento ejecutase el procesador y realizar tareas de bajo nivel agrupadas en una rutina de servicio
transparente al usuario.
Controladores de dispositivos. El SO provee mecanismos de gestin de dispositivos, ocultando los detalles
hw. Los controladores, son el firmware del dispositivo. En general se enlazan con el SO con programas de
alto nivel conocidos como drivers. Por tanto, un driver es un programa que instala el firmware de dispositivo
necesario para que sea correctamente gestionado por el SO. Suele denominarse, por abuso del lenguaje,
driver tanto al firmware como al software instalador.
Buffers. Un buffer es una memoria intermedia o cach que se suele usar para adaptar velocidades en las
transferencias de E/S, de forma que se escribe o lee rpidamente en la cach y cuando el dispositivo est
listo se le transfiere la informacin a su ritmo. Un tipo especial de buffer es el pool, que es un buffer en
forma de cola, lo que permite tratar varios trabajos a la vez, lo que se conoce como spooling.
Independencia de dispositivos. Ofrece un nivel ms de independencia que los controladores, que permite al
SO tratar dispositivos similares con el mismo cdigo de forma consistente. Por ejemplo, los dispositivos
orientados a bloques, como discos o CD pueden tratarse con las mismas llamadas.
La comunicacin con los dispositivos de E/S se puede realizar por sondeo, interrupciones o acceso directo a
memoria, lo que ya se cit en el tema 2. El sondeo sera una evolucin de la espera activa, donde la UCP
consulta peridicamente el estado del dispositivo. No tiene en cuenta prioridades y es muy ineficiente. El
mtodo de interrupciones consiste en utilizar seales hw que alertan del estado operativo de un dispositivo.
Al recibirse, el micro pasa a atender la interrupcin con una rutina de servicio de la interrupcin. El acceso
directo a memoria supondra una evolucin de las interrupciones al gestionarse casi automticamente la
rutina de servicio, al permitirse directamente el acceso del dispositivo a su rutina en memoria.
3.1. Interrupciones
Las interrupciones surgen de la necesidad de enviar informacin a la CPU por parte de los perifricos. Al
contrario que el sondeo, esta tcnica es ms eficiente, ya que slo usa la CPU cuando el perifrico lo
demanda. A cada dispositivo se asigna una lnea de interrucin o IRQ (Interrupt ReQuest) que llega al
controlador de interrupciones que entre sus funciones debe habilitar o inhibir las lneas de interrupcin
(enmascaramiento), establecer prioridades e interpretar lneas no enmascables conocidas como NMI
El procesador, si no integra un controlador de interrupciones suele disponer una lnea nica de interrupcin
llamada INT, activada por el controlador de interrupciones. Cuando se activa, el procesador consulta los
registros del controlador de interrupciones para identificar la IRQ y ejecutar su correspondiente rutina.
La secuencia del procesador entonces termina la instruccin en curso, guarda el valor del contador de
programa para poder continuar tras la rutina de servicio (ISR, Interrupt Service Routine), que es ejecutada y
al terminar retoma el estado anterior restaurando el contador de programa.Un PC tpico dispone un
controlador (en general en el chipset) de 16 o 24 lneas IRQ y ofrece interrupciones software o excepciones
en ensamblador para cambiar de contexto a modo monitor ante posibles errores.
El tratamiento de las interrupciones depender del dispositivo. Para ello, se dividen en dispositivos
orientados a bloques y a caracteres. Los orientados a bloques son direccionables, es decir, el programador
puede leer o escribir un bloque concreto del dispositivo. Ejemplos son discos duros y CS. Estos bloques
tienen tamao fijo y una direccin y pueden operarse sin afectar otros bloques.
Los dispositivos orientados a caracteres trabajan con secuencias de bytes sin estructuracin. No son
direccionables. Ejemplos son el teclado y pantalla. Otros componentes no se ajustan a esta clasificacin,
como los relojes, que ni aceptan direccionamiento ni generan o aceptan flujos de caracteres.

82
3.2. Acceso Directo a Memoria
En el tratamiento de las interrupciones, cuando se produce una, el SO ejecuta el controlador de dispositivo y
su correspondiente rutina de servicio, de forma que la comunicacin con la UCP se realiza por medio de los
registros del procesador o bien a travs de zonas reservadas de la MP, lo que se denomina E/S mapeada
en memoria. Esto implica que se pierde parte de la memoria, para implementar la memoria de comunicacin
con los dispositivos.
Una tcnica ms avanzada es la de acceso directo a memoria o DMA
por sus siglas en ingls. DMA consiste en permitir a los dispositivos
acceder directamente al bus del sistema, con su respectivo control,
lgicamente, para realizar su comunicacin, sin que tenga que
intervenir la UCP, lo que la descarga de proceso.
Ejemplos de dispositivos que usan esta tcnica son tarjetas grficas o
controladores de disco duro. Una transferencia DMA copia un bloque
de memoria de un dispositivo a otro sin afectar al proceso del micro,
aunque bien es cierto, que al ocuparse el bus del sistema, se prohibe
su uso en esos instantes.
El arbitraje del bus puede realizarse por medio de dos esquemas, el
robo de ciclo y la rfaga.
El DMA por robo de ciclo est basado en la utilizacin de uno o ms ciclos de UCP por cada instruccin, de
forma que cuando una instruccin no recurre al bus, puede ser usado para la transferencia DMA. De esta
forma se consigue una alta disponibilidad del bus para la UCP, a cambio de una transferencia de datos ms
lenta. Es el mtodo habitual debido a la baja interferencia con el procesador.
El DMA por rfagas trabaja enviando bloques en rfagas que ocupan el bus completamente consiguiendo
una alta velocidad pero impidiendo el uso del bus a la UCP. El arbitraje del bus lo realiza en este caso el
controlador DMA.

83
TEMA 19. SISTEMAS OPERATIVOS. GESTIN DE ARCHIVOS Y DISPOSITIVOS.

1. INTRODUCCIN
2. SISTEMAS OPERATIVOS
3. GESTIN DE ARCHIVOS Y DISPOSITIVOS
3.1. Sistema de archivos
3.2. Gestin de dispositivos

84
1. INTRODUCCIN
La gestin de archivos y dispositivos requiere una estructura y organizacin que debe proveer el SO. Cada
uno dispondr de su sistema de archivos particular y gestionar los dispositivos segn su programacin. La
forma de organizacin del SO en este mbito debe ser tenida en cuenta por administradores, usuarios y
programadores, para obtener el mximo rendimiento del equipo.
Esta gestin lleva asociada problemas de seguridad, que estarn previstos en su mayora por el SO, que
proveer una estructura homognea, herramientas de correccin de errores, de proteccin y de explotacin
de la informacin.
2. SISTEMAS OPERATIVOS
Sigue siendo vlido lo expuesto en el punto 2 del tema anterior.
3. GESTIN DE ARCHIVOS Y DISPOSITIVOS
Un archivo o fichero es una unidad lgica de almacenamiento, que ofrece una forma homognea de
tratamiento de la informacin. Cada SO provee su sistema de archivos, que ser elegido al instalarse. Para
referenciar un archivo, se utiliza un identificador, un nombre que suele asociarse a un ndice de una tabla de
asignacin, y una ruta, que indica dnde se encuentra almacenado.
En general, el sistema de archivos, los directorios, se organizan en forma de rbol jerrquico. Los directorios
son un tipo de archivo especial, capaces de contener otros archivos, que a su vez podrn volver a ser
directorios. Los archivos finales, suelen llevar asociado a su nombre una extensin que indica su tipo o
formato para facilitar tareas como la identificacin del programa con el que tratarlo.
La ruta de un archivo suele tener una estructura que comienza con la unidad o dispositivo raz donde se
encuentra almacenado y, separados con barras (\ o /) los distintos directorios a los que acceder hasta llegar
al contenedor ltimo. El ltimo componente de la ruta ser el nombre del archivo con su correspondiente
extensin, o sin ella, segn las opciones del SO.
Se distinguen dos tipos de rutas, la absoluta y la relativa. Una ruta absoluta especifica toda la localizacin
del archivo desde su raz y la relativa especifica la localizacin desde el directorio actual, con lo que se
ahorra la referencia de los directorios de niveles anteriores.
Cada archivo lleva asociados atributos como su nombre, tipo, tamao, permisos, fechas, etc. Los atributos
se usan, entre otros, para su proteccin, en general, limitar que usuarios no autorizados puedan acceder a
l, o modificarlo. La seguridad suele implementarse mediante ACL, listas de control de acceso o el acceso
por capacidades. Se pueden distinguir tres tipos de sistemas de archivos: sistemas de archivo de disco, de
archivo de red y de propsito especial.
Los sistemas de archivos de disco se orientan al almacenamiento en memoria secundaria como por ejemplo
FAT, NTFS, Ext2, Ext3 o ISO 9660 (CDs). Los sistemas de archivos de red, solucionan el acceso a
archivos a travs de red para lo que usan protocolos como NFS o Samba. Los sistemas de archivos de
propsito especial son los que ofrecen funciones distintas a las anteriores, como el intercambio con
memoria virtual. Ejemplos son Swap, acme o cfs.
Si un archivo puede tener distintas estructuras lgicas, el SO debe ser capaz de identificarlos y tratarlos, lo
que incrementa la complejidad del sistema. En otros SO, como Unix no se definen tipos de archivos, de
forma que slo se empaquetan bytes segn los bloques fsicos, otorgando ms flexibilidad a costa de menor
soporte y obligando a las aplicaciones a interpretar la estructura de archivo. Los archivos con estructura de
rbol organizan sus registros con una clave y segn su organizacin se distinguen tres tipos, serie no
estructurada de bytes, secuencia de registros de longitud fija o rbol de registros.
Un archivo es operado por las aplicaciones o por el SO que provee un programa gestor de archivos que
para ello, adems de mostrar el contenido de directorios o revisar la estructura de archivos del sistema. Los
gestores en modo texto ofrecen la informacin en forma de lista de contenido, mientras los grficos los
muestran con iconos.
3.1. Sistema de archivos
Los archivos se almacenan en soportes de almacenamiento permanente y son operados por el SO con
herramientas como el gestor de archivos. A nivel de programa un archivo es tratado como una secuencia de
bytes sin orden o agrupados en registros.
A nivel fsico se estructuran en bloques fijos de 512 B, debido a la naturaleza de los dispositivos. El sistema
de archivos permite la organizacin de los bloques en archivos o directorios, con la informacin de qu
bloques pertenecen a qu archivos. Adems gestiona la seguridad y permisos, integridad, cuotas de disco,
crecimiento de archivos, mtodos para evitar fragmentacin o enlaces simblicos, entre otros.

85
Un sistema de archivos seguro debe asegurar a los archivos su integridad, privacidad y disponibilidad, o
sea, que no sean modificados, ni consultados sin autorizacin y que estn presentes cuando se requieran.
Para asegurar estos extremos, el SO puede utilizar mecanismos como las ACL, el sistema UGO (user,
group and others) que establece permisos en una jerarqua para el propietario del archivo, su grupo y el
resto de usuarios u otros mecanismos particulares.
Las tcnicas de limitacin de fragmentacin tienden a almacenar los archivos en zonas contiguas del disco,
con el fin que las cabezas lectoras minimicen sus movimientos de posicionamiento y por tanto tambin el
tiempo de acceso. Para optimizar la estructura del rbol de directorios, los SO suelen usar enlaces, archivos
que apuntan a otros archivos, mediante la ruta del archivo enlazado.
Las cuotas y el soporte para crecimiento de archivos se
orientan a evitar que el disco se sature. Las cuotas
reservan un lmite de espacio a cada usuario. El
sistema de archivos debe soportar un aumento de la
capacidad de disco.
Los discos tienen su cach, pero el SO puede
implementar ms cach en MP para realizar menos
accesos a disco. La gestin de la cach es similar a la
gestin de memoria presentada en el tema 16.
El proceso de escritura de la cach puede realizarse de forma diferida, en la que se escribe en cach y ms
tarde en disco, o de forma directa. El uso de cachs mejora el rendimiento del sistema.
Por fin, el SO mantiene una zona de memoria virtual en disco, que puede estar o no, relacionada
directamente con el sistema de archivos, por ejemplo, en WS se usa un archivo protegido de tamao
variable, mientras Linux usa una particin swap al margen del sistema de archivos.
La implantacin del sistema de archivos puede organizarse con asignacin adyacente, con lista, lista e
ndice o inodos. La primera almacena cada archivo en bloques contiguos en disco. Es eficiente pero
produce mucha fragmentacin. La asignacin con lista mantiene cada archivo con una lista ligada de
bloques, donde la primera palabra de cada bloque apunta al siguiente, eliminando la fragmentacin, pero
ralentizando el acceso al obligar a leer toda la estructura.
La asignacin mediante una lista e ndice combina el mtodo anterior con un ndice que soluciona el
problema de acceso aleatorio. Cada archivo tiene una lista con sus bloques y una tabla en que se indica si
el bloque est ocupado o no. Si est ocupado, se presenta la direccin del siguiente bloque del archivo. El
problema es el tamao de tabla.
Los sistemas tipo Unix usan inodos, que permiten asociar a cada archivo un tabla con la direccin de sus
bloques, pudiendo existir varios niveles de bloques. Cuando se carga el archivo, se carga en MP el inodo, lo
que acelera la gestin.
Para conocer si un bloque est ocupado o no, el sistema de archivos, en general usar un mapa de bits,
que lo indicar con uno de sus dos posibles valores o una lista que enlace los bloques libres.
3.2. Gestin de dispositivos
El SO puede planificar el acceso a disco en base a prioridades o posicin del cabezal para minimizar el
tiempo de acceso. Esto puede hacerse eligiendo los accesos que menor movimiento de las cabezas
precisen. Esta planificacin la implementan algoritmos como SSTF, SCAN o LOOP.
El planificador de disco minimiza tiempo de bsqueda, prioriza procesos, reparte el ancho de banda del
disco a procesos y garantiza plazos de tiempo. Los algoritmos de planificacin bsicamente reordenan
peticiones para que sigan el orden que el cabezal ir encontrando en su movimiento.
Algunos algoritmos de planificacin son el de planificacin aleatoria (RSS), FIFO y LIFO, no ptimos, al no
tener en cuenta la posicin del cabezal, SSTF (bsqueda ms corta primero) que busca el movimiento
mnimo del cabezal, SCAN, que ordena las peticiones segn el movimiento en un sentido del cabezal, con
sus variantes C-SCAN, SAN-N y LOOP o la planificacin por prioridades..

86
TEMA 20. EXPLOTACIN Y ADMINISTRACIN DE UN SO MONOUSUARIO Y MULTIUSUARIO.

1. INTRODUCCIN
2. EXPLOTACIN Y ADMINISTRACIN DE UN SO MONOUSUARIO
2.1. Explotacin
2.2. Administracin
2.2.1. Sistema
2.2.2. Procesos
2.2.3. Memoria
2.2.4. Archivos
3. EXPLOTACIN Y ADMINISTRACIN DE UN SO MULTIUSUARIO
3.1. Explotacin
3.2. Administracin
3.2.1. Usuarios
3.2.2. Recursos
3.2.3. Permisos
3.2.4. Seguridad

87
1. INTRODUCCIN
La explotacin de un SO es la forma en que el usuario utiliza los recursos del sistema. En primera
aproximacin puede decirse que explotar un SO se refiere a su utilizacin.
La administracin de un SO se refiere a la forma en que se configura su potencial. Bsicamente la
administracin gira en torno a tres conceptos: usuarios, recursos y permisos, cuyas relaciones deben ser
definidas como marco principal de la administracin.
Un SO monousuario es aquel en que slo gestiona un nico usuario simultneamente, bien debido a
limitaciones hardware, software o de otra ndole. La explotacin y administracin de un SO multiusuario es
ms compleja que el caso monousuario, pero ofrece ms prestaciones, ya que permite gestionar varios
usuarios simultneamente. Las soluciones comerciales de este tipo ms extendidas son WS 2003 y 2008
Server, UNIX, Linux o Solaris. Los WS son la versin para servidores mientras que los Unix-like tienen
versiones libres, que no gratuitas, aunque pueden conseguirse de forma gratuita sin quebrantar la ley.
2. EXPLOTACIN Y ADMINISTRACIN DE UN SO MONOUSUARIO
Los SO monousuario son los que slo gestionan un usuario a la vez. Esta forma de trabajo lo simplifica, ya
que los dispositivos de E/S y control dependen del proceso en ejecucin y por tanto las instrucciones
acaparan los recursos y se procesan en el momento. Ejemplos de SO monousuario son las versiones
domsticas de WS y MS-DOS.
En general el tipo de usuario no se define y, por tanto, los medios para restringir el acceso al mismo usuario
son casi inexistentes, ya que un usuario accede a la informacin y por tanto apenas existen limitaciones
para acceder a cualquier archivo. Las tcnicas de proteccin y seguridad se basan en copias de seguridad.
En algunos SO se accede al sistema por medio de un usuario nico con permisos totales. Es el caso de SO
antiguos como MS-DOS y WS 95/98/Me o MacOS, en que no se diferencia claramente los permisos de
administrador y usuario genrico. No implementan el concepto de multiusuario.
Para presentar la explotacin y administracin de un SO monousuario, en la siguiente exposicin se ir
combinando teora y ejemplos de implementacin con MS2 (Microsoft Disk Operating System), por ser uno
de los SO ms representativos y no resta generalidad. Entre sus limitaciones se encuentran ser
monousuario, monotarea y gestionar pobremente la memoria y como fortalezas su compatibilidad, lo que
hizo que fuera uno de los SO de ms amplia difusin.
2.1. Explotacin
En general, un SO puede explotarse en modo por lotes o en tiempo real. En el proceso por lotes se agrupan
tareas que se realizan de forma conjunta y diferida, mientras en los sistemas de tiempo real, las instrucciones
se ejecutan instantneamente, que es la forma habitual. La explotacin del SO en tiempo real puede
clasificarse en funcin del nmero de usuarios, procesos, procesadores o el tiempo de respuesta. Este tema
presenta la explotacin del SO atendiendo al nmero de usuarios, en particular, el caso monousuario.
La principal herramienta de explotacin de un SO son sus instrucciones. En general, se dispone de dos
tipos de instrucciones, las del SO, privilegiadas y las instrucciones de usuario que representan el verdadero
interface, denominado tambin intrprete de comandos. La interfaz de MS2 trabaja en modo texto
presentando en pantalla C:\> o similar. El smbolo '>' es el prompt o indicador de comienzo de lnea y la letra
anterior la unidad activa en el momento actual. Es gestionado por el programa command.com.
La explotacin del DOS se realiza con rdenes o comandos, que son palabras que expresan una operacin.
Las rdenes se ejecutan introducindolas con sus parmetros tras el prompt y pulsando Enter. MS2 no es
case-sensitive, no distingue entre maysculas y minsculas en las rdenes y permite el uso de caracteres
comodines, que pueden tomar cualquier valor como * e ? Para el direccionamiento de ficheros, se puede
especificar un direccionamiento absoluto o relativo, separando los directorios con /. La sintaxis de un
comando es el esquema que indica cmo se interpreta correctamente ese comando. Indica el nombre de la
orden, los parmetros vlidos y las opciones posibles.
En la explotacin del sistema, el usuario realizar tareas sobre archivos y dispositivos, manejo de discos y
unidades, uso del sistema de archivos, gestin y trato de ficheros o uso de variables de entorno y
configuracin del SO. La realizacin de estas tareas se har siguiendo la sintaxis que marque el sistema.
Como ejemplo, algunos comandos tpicos usados para el tratamiento de discos en MS2 son:
Comando Funcin Sintaxis
format / Formatea unidades. El parmetro obligatorio es el nombre de la format unidad [opciones]
unformat unidad a formatear. Unformat deshace el formateo e intenta
unformat unidad [opciones]
recuperar datos en el anterior formateo.

88
chkdsk / Realiza una revisin lgica y fsica del disco y ofrece un chkdsk unidad [opciones]
scandisk informe.
scandisk unidad [opciones]
defrag Realiza una defragmentacin de una unidad defrag unidad
diskcomp Compara dos discos pista a pista diskcomp disco1 disco2
fdisk Crea particiones en el disco duro. Fdisk [particion] [opciones]
sys Instala los ficheros necesarios en el sector de un disco para convertirlo en disco de arranque.
Los archivos de arranque son io.sys y msdos.sys.
diskcopy Copia un disquete a otro evaluando archivos, no bytes. No sirve para discos duros.
Ejemplos de comandos usados para el tratamiento de directorios son:
Comando Funcin Sintaxis
dir Muestra el contenido de un directorio dir [nombre de fichero][opciones]
cd Cambia de directorio a la nueva ruta absoluta o relativa cd [nuevo directorio]
md (Make Diredtory) Crea un directorio. md [ruta/nombre de directorio]
rd (Remove Directory) Elimina un directorio que estar vaco rd [ruta/nombre directorio]
tree Muestra el rbol de directorios que cuelgan del actual
deltree Elimina directorios y todo su contenido deltree [ruta/nombre directorio]
Comandos usados para el tratamiento de ficheros son:
Comando Funcin Sintaxis
copy Copia un archivo de una ruta origen a otra ruta. Conserva el original copy [origen] [destino]
xcopy Copia archivos y directorios vacos o no, de origen a destino xcopy [origen] [destino]
move Mueve un archivo de un directorio a otro. El origen desaparece. move [origen] [destino]
rename Cambia el nombre de un fichero. rename fichero
del Borra un fichero. del fichero
undelete Intenta recuperar ficheros borrados con el comando del. undelete fichero.
print Print. Imprime un fichero. print fichero
attrib Muestra los archivos con sus atributos. Permite modificarlos. attrib fichero [accion]
sort Ordena un fichero Sort fichero
Ejemplos de comandos de parametrizacin del sistema son:
Comando Funcin Sintaxis
doskey Almacena instrucciones ejecutadas y las recupera con el cursor
prompt Configura la forma de mostrar la lnea de comandos prompt [opciones]
cls Limpia la pantalla y coloca el prompt en la lnea superior
date / time Muestran y permiten modificar la fecha y hora configurada en el sistema
Ejemplos de operadores son:
Operador Funcin Sintaxis
< Redireccin de la entrada [comando] < archivo
> Redireccin de la salida [comando] > archivo
>> Redireccin de la salida a un archivo existente [comando] >> archivo
| Redireccin de la salida de un comando como entrada de otro [comando1] | [comando2]

89
2.2. Administracin
La administracin de un SO monousuario puede dividirse en la administracin del sistema, procesos y
memoria. Siguiendo con el caso representativo, decir que MS2 es un SO monousuario y monotarea,
robusto, con un sistema de archivos jerrquico, sin protecciones, y con una administracin engorrosa de la
memoria. Para ejecutar un proceso hijo, el SO necesita ejecutar un programa padre, de forma que slo se
ejecuta uno en cada momento. Si el programa padre deja de funcionar, el programa hijo se bloquea
automticamente.
2.2.1. Sistema
MS-DOS utiliza cinco programas para su funcionamiento, io.sys, config.sys, ms-dos.sys, command.com y
autoexec.bat. El arranque de MS-DOS se realiza con los ficheros io.sys y ms-dos.sys. Con ellos se lee y
ejecuta autoexec.bat, que lee la configuracin del sistema del fichero config.sys.
io.sys configura el arranque y gestiona la E/S de memoria. En el proceso de arranque debe especificarse la
configuracin del sistema, que en MS2 se hace con el fichero config.sys. ms-dos.sys representa el ncleo
del SO y el command.com el intrprete de comandos, responsable del prompt. Por fin, autoexec.bat es un
fichero que contiene instrucciones ejecutadas en el arranque.
En general, un SO ofrecer flexibilidadpara adaptarse a las exigencias del usuarios. Para ello dispondr de
comandos de parametrizacin, personalizacin y optimizacin del sistema. En MS2 esta parametrizacin se
realiza bsicamente en los ficheros autoexec.bat y config.sys.
El fichero autoexec.bat debe tener obligatoriamente ese nombre y extensin, pues ser el que se busque
para su ejecucin. Debe situarse en el directorio raz (C:\). Es editable, ya que se codifica en texto en
formato ASCII. En su estructura se distinguen tres partes, de sistema, de configuracin y de gestin.
En la parte del sistema se encuentran las siguientes lneas de configuracin:
@ECHO OFF. Para no mostrar las instrucciones de autoexec.bat en pantalla.
SET PROMPT $P$G. Define el prompt.
SET PATH [ruta]. Establece directorios abiertos, para ejecutar cualquier programa que est en l desde
cualquier otro punto del ordenador.
SET TEMP [ruta]. Establece el directorio temporal. En general suele definirse en C:\dos\temp.
SET DIR CMD=/O/P/W. Define las condiciones iniciales de ejecucin del comando dir.
La configuracin del fichero autoexec.bat, sigue una sintaxis bastante lgica, con la referencia al parmetro
que se configurar. Lineas de configuracin tpicas podran ser mode codepage select= 850, para la
configuracin de video o c:\dos\keyboard.sys sp para la configuracin del idioma del teclado.
Por su parte, para la gestin, se debe seguir tambin la sintaxis que define Microsoft. Ejemplos de lneas de
configuracin tpicas de gestin seran C:\dos\drivers\mouse.com o C:\dos\mscdex.exe, para instalar los
drivers del ratn.
La configuracin del fichero config.sys es similar, pudindose editar y teniendo en cuenta que es el fichero
donde se cargan los controladores mnimos de funcionamiento del sistema, ha de encontrarse en el
directorio raz. Ejemplos de lneas de configuracin podran ser device=display.sys, device=mouse.sys, etc.
Comandos de parametrizacin del fichero config.sys son mode, para definir las caractersticas del teclado,
date y time para introducir fechas, path, que indica la ruta de un programa a ejecutar, prompt, para
cambiarlo, keyb para configuracin del teclado o device/devicehigh, que carga controladores de dispositivos.
Algunos controladores genricos de MS2, suelen tener la extensin sys. Los ms conocidos pueden ser
himen.sys y emm386.sys para gestin de memoria, ramdrive.sys, que crea un disco virtual en memoria,
ansi.sys de gestin de monitor y teclado, display.sys y ega.sys para la pantalla, setver.exe, para especificar
la versin a ejecutar de un programa y dblspace.sys para indicar dnde se guarda dblspace.bin.
En MS2, algunas llamadas al sistema, son similares a las de Unix, pero tambin se pueden realizar con
sealamientos al ncleo, en general a travs del vector 0x20. Pueden clasificarse tambin en llamadas para
gestin de procesos, memoria, ficheros y directorios y gestin de E/S.
2.2.2. Procesos
La administracin de procesos en MS2 no soporta ejecucin simultnea. Una vez arrancado el SO la shell
muestra su prompt indicando que puede aceptar instrucciones. Cuando se ejecuta una instruccin o
programa, la shell inicia un nuevo proceso hijo que debe finalizar antes de volver a mostrar el prompt.
Cuando un proceso hijo se ejecuta, su padre se suspende hasta que termine el hijo.

90
MS2 cuenta con dos tipos de archivos ejecutables, los .com y los .exe que generan dos tipos de procesos.
Los archivos .com, no llevan encabezado, contienen un slo segmento de cdigo ejecutable que es cargado
en memoria y ejecutado. Los procesos que generan poseen segmentos de texto, datos y pila que no
pueden superar en total 64K. Los archivos .exe poseen cdigo ejecutable e informacin sobre reasignacin.
Sus procesos disponen adems de los mencionados, de segmentos adicionales.
Cada proceso en MS2 dispone de un bloque PSP (Prefijo de Segmento de Programa) inicial de 256 B, que
guarda informacin como el tamao del programa, puntero al PSP padre, puntero al bloque del contexto
(zona de memoria con las variables de shell), etc.
Al generarse un proceso hijo en MS2 se comprueba si existe memoria suficiente y en caso que no haya no
se crear, ya que no utiliza memoria virtual. Si el proceso hijo se crea, en general hereda los archivos del
padre y puede abrir sus propios archivos, que sern cerrados al morir el hijo, se recuperar la memoria que
ocupase y se elimina por completo.
Existen tambin programas residentes en memoria, que aunque terminen su ejecucin, siguen cargados en
la memoria, debido a razones diversas como si, por ejemplo, se usan frecuentemente al contener sus
propios controladores de interrupciones.
2.2.3. Memoria
La administracin de memoria tiene por objetivo su optimizacin. En MS2 la gestin puede ser manual o
configurarse automticamente (a partir de la tercera generacin, 80386) mediante el gestor memmaker, que
evita bastante la intervencin del usuario. La administracin de memoria permite direccionar tanta RAM
como disponga el hw, aunque se hace de forma compleja debido a las limitaciones impuestas por las
primeras generaciones de procesadores (8086, 8088) en que se contaba con 20 bits en el bus de
20
direcciones, es decir slo se poda direccionar hasta 1 Mb de memoria (2 posiciones). De esta forma, la
memoria se divide en cuatro zonas: memoria convencional, superior, alta y extendida.
La memoria convencional es la zona que abarca desde la primera posicin hasta los
640 Kb y almacena los datos y programas de usuario.
La memoria superior es la zona comprendida entre los 640 Kb y el 1 Mb, se divide
en mdulos de 64 Kb y se usa para datos del sistema como las rutinas BIOS. A
veces se la denomina memoria reservada y como no suele emplearse por completo,
a partir de MS2 5.0 es posible usar bloques libres (UMB, Upper Memory Blocks)
para programas residentes o controladores obteniendo ms memoria convencional.
A partir del 1 Mb, 1024 Kb, se encuentra la memoria extendida, que abarca el resto
de memoria que disponga el ordenador. En los de segunda generacin (80286)
hasta 16 Mb, y a partir de los procesadores de tercera generacin, hasta los 4 Gb.
Dentro de la memoria extendida hay una zona, la memoria alta que comprende las
direcciones entre los 1024 y 1088 Kb. En un principio MS2 no poda acceder a la
memoria extendida, porque se requera que el procesador trabajase en modo
protegido, por lo que la mayora de programas modernos usaban recursos para
acceder con sus propios gestores de memoria.
Una de las soluciones para direccionar la memoria extendida fue la tcnica de memoria expandida (EMS),
que maneja la memoria extendida con punteros almacenados en la memoria superior en un bloque
reservado de 64 K (marco de pgina). En realidad, es un mapeo de memoria, con una gestin engorrosa, ya
que la informacin debe llevarse a memoria convencional, tratarse y volver a almacenarlo en la memoria
extendida, actualizando el bloque de la memoria superior.
Esta tcnica tambin se conoce como conmutacin de bancos de memoria. Adems puede usarse memoria
extendida para simular memoria expandida. El direccionamiento se realiza por medio de dos bloques de 16
bits, segmento y desplazamiento y la gestin la realiza el programa hymen.sys
La zona de memoria alta se usa para cargar el ncleo del SO y liberar espacio en memoria convencional. A
partir de MS2 5.0 se accede a memoria alta sin trabajar en modo protegido. Si se distingue memoria alta, la
extendida comienza a partir de los 1088K. Por fin, decir que si se mapea la BIOS en la memoria, para
acelerar el proceso, a esa zona que contiene la BIOS se la denomina shadow.
MS2 cuenta con dos programas para la administracin de la memoria, hymen.sys, ya presentado, para el
direccionamiento y emm386.exe para el acceso y gestin de memoria alta. La administracin de la memoria
requiere analizar las lneas de configuracin del fichero config.sys residentes en memoria (files, buffers,
lastdrive) ajustando sus valores y aadir la linea device para cargar los controladores himen.sys y
emm386.exe, el primero para crear memoria alta y el segundo los bloques de memoria superior. La orden
DOS = HIGH carga el ncleo en memoria alta y DOS = UMB crea los bloques.

91
Para obtener el mximo de memoria convencional debera parametrizarse emm386 para tener la mayor
cantidad de memoria superior posible, examinar los controladores de dispositivos del config.sys definidos
con las rdenes device o devicehigh e intentar cargarlos en memoria superior y examinar los programas
residentes del fichero autoexec.bat (cargados o no con loadhigh) e intentar cargarlos en memoria superior.
2.2.4. Archivos
La administracin de archivos sigue una organizacin jerrquica en forma de rbol, de cuya raz cuelga el
resto archivos y se nota como el nombre asignado a la unidad lgica o fsica que lo contiene, por ejemplo
C:\. Para referenciar un archivo, se usan rutas absolutas y relativas y para referenciar el directorio padre se
puede usar .. y el actual ., existiendo ficheros especiales de caracteres y bloques para dispositivos.
A nivel lgico, el disco duro del SO diferencia cuatro zonas, el sector de arranque, el primero del disco, y por
tanto el primero en ser ledo, que almacena los programas de arranque, la tabla FAT, para
direccionamiento, el directorio raz, en general limitado a 3 sectores y por fin, informacin de usuario.
La informacin se almacena en directorios y archivos. Los directorios son archivos con referencias a otros
archivos. Los archivos son grupos de bytes referidos por un nombre. Los archivos y directorios slo pueden
verse desde el directorio inmediatamente superior. El directorio activo es el actual del usuario, y como no se
pueden montar sistemas de archivos adicionales, si se referencia un archivo de una unidad no activa
actualmente, se debe indicar su ruta.
El nombre de los directorios puede tener como mximo 8 caracteres y extensin no obligatoria, de 3,
separada por un punto. En sus atributos estn el nombre, tamao y fecha de la ltima modificacin. Los
nombres de los archivos tambin tienen como mximo 8 caracteres y una extensin obligatoria de 3,
separada por un punto. Ejemplos de extensin de archivo son .exe para ejecutables, .sys de sistema, .bat
para los de procesamiento por lotes,.com de comando o ejecutables, .bak, copias de seguridad, etc.
Los archivos no poseen propietario ni enlaces. Sus atributos indican si son de slo lectura (readonly),
archive, si ha sido modificado desde su creacin, hidden, si es oculto, system, si es un archivo del SO o
directory, si es un directorio.
MS2 ofrece varias herramientas de administracin. Pueden sealarse msbackup, dblspace y defrag.
Msbackup realiza copias de seguridad o las restaura. La copia puede ser total o incremental y puede
programarse. A partir de MS2 6.0 se incorpora el compresor de disco DoubleSpace, con el que poder doblar
la capacidad del disco duro. Los datos se comprimen antes de grabarse en el disco y se descomprimen al
ser ledos. Por su parte el defragmentador, defrag, reduce la lejana de los clusters que almacenan un
fichero para reducir el tiempo de acceso e incrementa el rendimiento del disco.
3. EXPLOTACIN Y ADMINISTRACIN DE UN SO MULTIUSUARIO
Un SO multiusuario es aqul que soporta simultneamente ms de un usuario, de forma que la misma UCP
puede dar servicio a la vez a distintos usuarios, que accedern desde distintos terminales. El paradigma de
SO multiusuario es UNIX, filosofa presente desde su concepcin y que ha heredado la familia GNU-Linux.
En el mundo Microsoft, SO multiusuario caractersticos son los WS a partir de XP y las versiones servidores
como 2003 y 2008 Server. Se basan en la tecnologa WS NT y como caractersticas destacables estn el
que todas las opciones de seguridad funcionan sobre NTFS, no sobre FAT, son multitarea y multiusuario y
el sistema de seguridad est basado en niveles de proteccin para usuarios y grupos.
Se permite acceder al escritorio de un usuario desde cualquier equipo conectado al servidor mediante
Terminal Server, se pueden compartir directorios y recursos en red, contiene servidores para aplicaciones
de red y se ofrece el servicio de controlador de dominio para gestionar usuarios y grupos.
La exposicin del tema se apoyar en la descripcin de Unix y se comentarn las caractersticas ms
relevantes de las soluciones Microsoft.
3.1. Explotacin
Unix es un SO que deriva de los primeros diseos para gestionar centrales de conmutacin telefnica. Es
un sistema robusto y caro. Parte del cdigo se cedi para su uso en investigacin y universidades. As
surgi Minix, una pequea implementacin didctica de Unix que fue aprovechada por Linus Torvalds para
escribir un nuevo ncleo de SO llamado Linux.
Anteriormente, la FSF, Free Software Foundation, tena como proyecto principal el llamado GNU (GNU is
Not Unix) cuyo objetivo era el desarrollo de un SO libre. Desarroll numerosas aplicaciones, pero le faltaba
el ncleo, lo que complet el lanzamiento de Linux. La mayora de SO de libre distribucin, estn basados
en Linux y por eso se les denomina por su nombre particular y se aade GNU/Linux, especificando as la
separacin entre el ncleo del sistema, Linux, y el resto, GNU.

92
Unix es un SO completo de grandes prestaciones, multiusuario, multitarea y de tiempo compartido. Linux es
casi idntico, comparte la mayora de caractersticas tcnicas y funcionales yrepresenta una alternativa
directa de los sistemas comerciales. Tambin existen distribuciones comerciales basadas en Linux como
SUSE o Red Hat y otras gratuitas como Ubuntu o Debian.
Los SO basados en Unix, como Linux, tambin se pueden referenciar como Unix-like. En general, las
caractersticas generales del SO son vlidas para los Unix like. stos SO suelen soportar diversos sistemas
de archivos, como Ext3, XFS, FAT o NTFS, usan las caractersticas de modo protegido de los procesadores
80386 y superiores, soportan paginacin por demanda con una particin en disco llamada swap.
La memoria dedicada a los programas y la cach del disco est unificada, los ejecutables pueden usar
libreras de enlace dinmico y el acceso a dispositivos se trata como un fichero. Ofrecen potentes
herramientas y servicios de trabajo en red en general utilizando una estructura cliente servidor e incluyen un
servidor X-Windows y numerosos controladores.
El formato de un comando Unix es: comando [parmetro]. Donde comando es el nombre de la instruccin,
siempre presente y en minsculas y el parmetro ser el que requiera o no, el comando. Los parmetros
sern opciones, precedidas de un guin o nombres de ficheros. Los metacaracteres son caracteres que
tienen un valor comodn, sustituyendo a uno o ms caracteres, son el * y el ?, como en MS2.
El acceso al SO requiere identificacin, que consta de un nombre de usuario (login) y una contrasea o
password. Si la identificacin es correcta se accede al sistema. Para salir del sistema se usan los comandos
exit, logout, o pulsando Ctrl-D. Una consola virtual en Unix permite a un usuario tener ms de una sesin de
login al mismo tiempo. Para acceder a una nueva consola virtual se utiliza la combinacin de teclas alt-tecla
de funcin. Para abrir una consola virtual despus de entrar al sistema se usa Alt-F2 y para conmutar a la
primera alt-F1. Para salir del sistema se deben cerrar todas las sesiones abiertas.
Algunos ejemplos de comandos usados para el tratamiento de directorios son:
Comando Funcin Sintaxis
ls, dir Muestra el contenido de un directorio. Dir equivale a ls l. ls [nombre de fichero][opciones]
cd Cambia de directorio a la nueva ruta absoluta o relativa cd [directorio]
mkdir (Make Diredtory) Crea un directorio. mkdir [ruta/nombre de directorio]
rmdir (Remove Directory) Elimina un directorio rmdir [ruta/nombre directorio]
pwd Path absoluto del directorio actual desde el raz pwd
Comandos usados para el tratamiento de ficheros son:
Comando Funcin Sintaxis
cp Copia un fichero de un origen a un destino. Conserva el original. cp [origen] [destino]
rm Borra ficheros rm [opciones] [fichero]
mv Mueve un archivo de un directorio a otro. El origen desaparece. mv [origen] [destino]
cat Dirige el contenido de un fichero a la salida estndar. cat [fichero]
more Muestra un fichero en pantalla haciendo pausa entre pantallas more [fichero]
In Crea vnculos entre archivos In [opcion] [origen][destino]
grep Busca el patrn pasado como argumento en un fichero o varios grep [patrn] [fichero]
Comandos de propsito general son:
Comando Funcin Sintaxis
man Ayuda en lnea man [comando]
passwd Cambia la clave de acceso de usuario en la mquina que se ejecuta passwd [contrasea]
who Informacin de quin est en el sistema who
hostname Devuelve el nombre de la mquina del SO Hostname
echo Devuelve el contenido del argumento que se le pasa Echo [argumento]
date Fecha y hora del sistema date

93
Los operadores tpicos en Unix son los mismos que en MS2, ya que prcticamente son estndar. Sin
embargo, si debe destacarse un clsico de las herramientas de explotacin en Unix, el editor de textos vi,
muy usado, en general para editar los ficheros de configuracin. La forma usual de vi es vi [fichero].
Vi tiene tres formas de trabajo, modo comando, comando de lnea y edicin. El modo comando permite
desplazarse por el texto, el modo comando de lnea permite ejecutar comandos y el modo edicin permite
agregar texto. Al entrar en vi, se entra por defecto en modo comando y podr pasarse a modo edicin,
mediante comandos de edicin como i. Para pasar de modo edicin a modo comando se pulsar Esc. Para
acceder a modo comando de lnea, se debe estar en modo comando y pulsar :, para ejecutar comandos
como por ejemplo salir guardando cambios (wq).
Linux, ofrece interfaces grficas de explotacin y administracin. El administrador Linux suele usar la lnea
de comandos, dado que su shell es muy potente. El interfaz grfico en Linux se denomina servidor X, y se
conocen como X-Window, gestores grficos de tipo ventanas. Los ms conocidos son KDE y Gnome. Por
su parte WS presenta un interface de usuario grfico permitiendo administrarlo con ventanas y mens,
aunque tambin permite usar la lnea de comandos MS-DOS con su smbolo del sistema.
3.2. Administracin
Un administrador de sistemas cuenta entre sus tareas la gestin de usuarios, recursos y permisos, la
organizacin del sistema de archivos, mantenimiento y documentacin tcnica o el control del rendimiento
del sistema. Para ello, los SO multiusuario ofrecen sus herramientas de administracin.
Tanto WS como Linux organizan jerrquicamente su estructura de archivos en forma de rbol. Con respecto
a los dispositivos WS los distingue, mientras que en Linux se tratan como ficheros. En WS el disco del
sistema suele ser C:. En Unix cuando se desea acceder a un dispositivo se debe montar sobre algn
directorio del sistema de archivos.
La organizacin de los directorios de Unix parte del directorio raz, o root, notado como /. De ste cuelgan
el resto, que se organizan lgicamente. Los directorios habituales son /home, que contiene los directorios
principales de cada usuario, /dev, contiene los ficheros que representan los dispositivos, /etc contiene los
ficheros de configuracin del sistema, /bin los ejecutables de los programas, /sbin contiene programas
accesibles al superusuario, /usr los programas de uso comun a los usuarios, /lib contiene libreras comunes
a los programas, /proc contiene ficheros especiales que intercambian informacin con el kernel, /var
contiene informacin temporal de programas o /tmp con informacin temporal de los programas.
La configuracin del sistema en Unix est en ficheros de configuracin en su mayora tipo texto que pueden
ser editados con cualquier programa editor de textos.
WS tiene tres carpetas fundamentales por defecto en C:, Archivos de Programa, Documents and Settings y
Windows. La primera contiene los ejecutables de los programas instalados en el sistema, la segunda una
carpeta por cada usuario del sistema y la tercera los archivos del SO. Con respecto a las carpetas de cada
usuario, contienen los datos del perfil de usuario en un archivo llamado ntuser.dat. Adems, contiene los
documentos del usuario y los datos que los programas necesitan de ese usuario en concreto.
3.2.1. Usuarios
Para que alguien acceda a Unix, necesita una cuenta de usuario, es decir, un conjunto de datos que lo
definan en el sistema. Como se ha dicho, el acceso se realiza mediante login (nombre de usuario) y
contrasea. Los datos de una cuenta del sistema entre otros incluyen el nombre de usuario, su clave, un
UID, o nmero de identificacin de usuario, un GID o nmero de identificacin de grupo, el directorio inicial
de entrada al sistema o la shell que usa por defecto el usuario. Los usuarios se registran en el fichero
etc/passwd. La informacin de los grupos est en etc/group.
En Unix, los usuarios se clasifican segn una jerarqua, en superusuario o root, con todos los privilegios, es
el perfil administrador del sistema, usuarios tpicos, son los normales del sistema, con limitaciones sobre l y
los usuarios especiales, que se asignan por el sistema a tareas especficas, como por ejemplo el uso de
aplicaciones de uso comn. Cualquier usuario posee la perspectiva de su propio usuario, lo que se nota
como u, user, los usuarios de su grupo, notado como g y el resto de usuarios referidos como o (others).
El comando useradd o adduser, aade un usuario al sistema y permite modificar algunos parmetros como
el grupo, directorio de trabajo, etc. Userdel suprime un usuario del sistema. Los comandos groupadd y
groupdel permiten gestionar grupos en Unix, creando y eliminando un grupo respectivamente.
En WS se distinguen usuarios locales y globales. Los locales se conectan directamente y los globales los
gestiona el controlador de dominio pudiendo conectarse en remoto. Para cada usuario se almacena el
nombre de login, nombre completo, contrasea cifrada y un dato llamado SID o identificador seguro, que
garantiza la identificacin nica del usuario. El usuario administrador se crea por defecto, requiriendo
contrasea. Existe un usuario invitado, por defecto desactivado.

94
Un usuario tiene un perfil local o de red. El perfil local afecta a la configuracin del equipo en que se crea. Si
es un perfil de red, se puede tener la misma configuracin en todas las estaciones de red. El perfil de red,
puede ser mvil u obligatorio. En mvil puede modificarse y los cambios permanecen para las siguientes
sesiones. El perfil se guarda en la carpeta Documents and Settings. Algunos grupos se crean al instalar el
sistema como por ejemplo Administradores, Duplicadores, Invitados, Operadores de Copia, etc. cada uno
con unos permisos predefinidos.
3.2.2. Recursos
La administracin de recursos en Unix se realiza de manera similar al resto del sistema, de manera muy
lgica. Por un lado, el hardware instalado est en el directorio /dev como un fichero ms. Si son discos se
pueden montar mediante la orden mount para acceder a ellos. La configuracin del dispositivo est en el
directorio /etc. En Unix la administracin de recursos se hace con el usuario root.
Algunas distribuciones cuentan con instaladores sencillos que guan al usuario. En ocasiones se debe
compilar el cdigo fuente de los programas, lo que adapta mejor el programa al hardware y las necesidades
del usuario. El administrador debe, una vez instalado, asignar permisos a los programas e informar a los
usuarios de los cambios.
Un caso tpico es la administracin de la impresin. En Unix se incluyen programas, el sistema Ip, para
imprimir. La complejidad de Ip se abstrae al usuario, que accede con slo tres comandos: Ip, Ipstat y cancel.
La gestin se realiza mediante colas de impresin. El comando Ipstat muestra el estado de la impresora y
cancel elimina o detiene los trabajos de impresin. En algunos sistemas la utilidad Ipadmin permite
gestionar todos los recursos de impresin. El sistema cuenta con el proceso demonio (daemon) llamado
spooler que secuencia las tareas de impresin y convierte los datos a un formato que entienda la impresora.
En lenguaje de impresin estndar de Unix es PostScript.
En WS, la administracin de recursos se suele realizar con programas que suelen incluir un ejecutable
instalador que facilita la tarea. Los dispositivos P&P (plug and play) son sencillos de instalar. WS reconoce
el dispositivo y pide la instalacin de drivers. El administrador los instala o el sistema le asigna, si puede, un
controlador genrico. En WS, las impresoras se gestionan mediante ventanas. Permite compartirlas en red.
En la administracin de recursos puede incluirse la administracin de procesos. En Unix, el comando ps
muestra una lista de los procesos del usuario activos actualmente. Si el comando es ejecutado por el root, la
informacin ser la de todos los procesos de todos los usuarios. El listado de los procesos muestra un PID
(Process IDdentifier), nmero nico que identifica un proceso, el nombre del proceso, el terminal (TT) que
lanz el proceso, su estado (STAT) y el tiempo de UCP (TIME). Si se desea eliminar un proceso se utiliza el
comando kill que mata el proceso, especificando su PID, o el numero de job precedido del carcter %.
3.2.3. Permisos
La administracin de permisos quiz sea el aspectos ms importantes en la gestin de un SO. Un SO
multiusuario debe ofrecer modos de proteger el acceso a la informacin. Para ello se utilizan los permisos.
Los permisos distinguen tres tipos, de lectura (r, read), que permite a un usuario consultar el contenido de
un archivo, de escritura (w, write), que permite a un usuario modificar o borrar un archivo y el permiso de
ejecucin (x, eXecution), que permite al usuario ejecutar un programa o un script. A cada usuario (u, g, o) se
le asigna una terna rwx que define sus permisos para cada fichero o directorio. Para comprobar los
permisos de un archivo se usa el comando Is I (o sus alias dir o II).
Cada archivo cuenta con 12 bits de permiso. El primer grupo de 3 bits indica los permisos rwx para el
propietario, el segundo indica los del grupo propietario, el tercero indica los permisos para el resto de
usuarios y los ltimos tres bits son Sticky, Setgid y Setuid. Con estos 12 bits solamente debe garantizar la
privacidad y la seguridad de los archivos del sistema.
El bit de ejecucin, en caso de un directorio, indica si se puede acceder a l. Los bits Setuid y Setgid, si
estn activos, si se trata de un ejecutable, al ser ejecutado por un usuario, el proceso adquiere el UID o el
GID del propietario. Los ficheros seuidados son uno de los problemas bsicos de seguridad en Linux, ya
que un ejecutable seudidado cuyo propietario tenga muchos permisos tiene control total sobre la mquina.
El usuario root tiene todos los permisos de la mquina, por tanto, el administrador del equipo debe usar para
su trabajo normal un usuario que no sea root, ya que puede ser peligroso.
El propietario de un archivo puede cambiar los permisos con el comando chmod cuya sintaxis se puede
indicar con texto o una combinacin numrica con bits en grupo de 3 decimales. La sintaxis es chmod [a, u,
g, o] [+, -] [r, w, x] [fichero], donde a referencia a todos los usuarios, u al propietario del archivo, g a su
grupo, y o al resto de usuarios. El signo + significa la adicin del permiso y el la sustraccin. Las letras
indican los permisos, como se ha visto. Por ejemplo chmod go-x fichero (o bien, chmod 766 fichero),
eliminara el permiso de ejecucin para el grupo y el resto de usuarios (766 significa que los bits sern 111
110 110, es decir, no permite la ejecucin ni al grupo ni a otro usuario).

95
Por su parte, WS organiza los permisos para el sistema en conjunto y para archivos en concreto. Cuenta
con directivas de seguridad que establece las polticas de gestin de cuentas, directiva local y configuracin
de claves pblicas. Los archivos contienen atributos de proteccin, el SID del usuario propietario.
Las listas de control de acceso de proteccin incluyen permisos que los usuarios y grupos tienen sobre un
archivo o carpeta. La lista puede tener un nmero indefinido de entradas de forma que concede o deniega
permisos a cada usuario o grupo del sistema. Cada entrada define una serie de niveles de acceso al
archivo, cada uno de ellos puede ser negativo o positivo.
Las listas de control de acceso de seguridad se usan para definir qu acciones tiene que auditar el sistema.
En principio la lista est vaca. Los permisos se ordenan por nivel, es decir, si un usuario tiene permiso de
control total, tiene todos los permisos anteriores. Estos permisos de los archivos son leer, escribir, leer y
ejecutar, modificar y control total. En caso de carpetas, se aade un permiso al principio que es el de listar.
El administrador puede no tener acceso a un archivo, pero si el derecho de tomar posesin, es decir, de
hacer que el SID del propietario del archivo sea l mismo por lo que al tomar posesin del mismo puede
modificar los permisos. La posesin no se puede devolver.
3.2.4. Seguridad
La seguridad es uno de los pilares bsicos de la administracin de un SO. Por tanto hay que tener
consciencia de las amenazas a la seguridad y de las prcticas para garantizarla. Debe existir un plan de
seguridad que al menos contemplar qu se debe proteger (hw, sw y datos) y a qu amenazas est
sometido el sistema (fsicas, desastres naturales, sabotajes, virus).
En el tema 63 se hace un estudio ms profundo de los aspectos de seguridad. Adelantar sin embargo que
debe considerarse al menos el estudio de la seguridad en dos planos, el fsico y el lgico. El primero
orientado a mitigar los efectos de las amenazas del mundo fsico y el plano lgico, ms referido a software.
En cualquier caso, la seguridad en los SO, exige que los usuarios dispongan de permisos limitados, justos
para realizar su trabajo y el SO ofrezca nicamente los servicios necesarios. Es comn que los SO
dispongan de archivos de registro, log o eventos del sistema para analizar disfunciones, como errores o
intrusiones. Asimismo, es conveniente mantener el sistema de archivos limpio y ordenado comprobando
que cada archivo tenga los permisos mnimos necesarios.
Las auditoras y anlisis forenses, permiten revisar sucesos de seguridad del sistema. Un SO debe poderse
auditar para investigar los fallos de seguridad. Unix permite monitorizar casi todas las actividades llevadas a
cabo en el sistema mediante archivos de log. Un archivo de log, o log, es un fichero de texto cuya
informacin es parametrizable. El demonio syslogd almacena informes sobre el estado del SO y el fichero
syslog contiene el registro de seguridad. La configuracin la realizar el administrador, disponiendo de los
ficheros log que considere necesarios, con la informacin que crea oportuna.
En WS Server pueden usarse herramientas de auditoria activando las categoras de sucesos a auditar y
definir el registro de seguridad. Esto permite registrar sucesos como el acceso a servicios, cambio de
directivas, privilegios, administracin de cuentas y otros del estilo.
Otros aspectos de seguridad son las copias de seguridad, mantener actualizado el software, monitorizar la
actividad de red, equipos de usuarios y la gestin de contraseas. En cuanto a las copias de seguridad y la
creacin de imgenes de un sistema, existen numerosas herramientas en Unix y WS para realizar estas
tareas. Es prcticamente un deber tener una copia de seguridad actualizada y una imagen del sistema para
restaurarlo en poco tiempo.

96
TEMA 21. SISTEMAS INFORMTICOS. ESTRUCTURA FSICA Y FUNCIONAL.

1. INTRODUCCIN
2. SISTEMAS INFORMTICOS
3. ESTRUCTURA FSICA Y FUNCIONAL
3.1. Estructura fsica
3.2. Estructura funcional

97
1. INTRODUCCIN
Un sistema informtico es el conjunto de elementos relacionados para procesar informacin de manera
automtica. El conjunto de elementos que forman un sistema informtico diferencia tres partes
fundamentales, el hardware, o parte fsica, el software o parte lgica y el factor humano.
Ejemplos de sistemas informticos son los equipos habituales, como el PC, impresoras y dems o las redes
de comunicaciones.
2. SISTEMAS INFORMTICOS
En temas anteriores se han expuesto los fundamentos de los ordenadores. Los primeros se enfocan al hw y
arquitectura de sistemas para dar paso a la parte lgica, en particular los SO. Una vez estudiados estos
aspectos, se combinan para presentar un nivel superior de abstraccin, el sistema informtico. Para ello, se
aade el recurso humano, que incluye administradores, analistas y usuarios, entre otros.
El subsistema fsico de un sistema informtico es el conjunto de elementos inertes de un equipo, y que han
sido presentados bajo el nombre de hardware. Este incluye la UCP, memoria, dispositivos de E/S o
perifricos. El subsistema lgico se ha englobado bajo el nombre de software y como se ha explicado
tambin, hace referencia al conjunto de recursos lgicos que consiguen hacer funcionar al subsistema fsico
como se espera. En resumen, se refiere a la programacin del hardware.
El software distingue dos tipos de programas, los de sistema y los de aplicacin. Los primeros manejan los
recursos lgicos para que opere el ordenador y los segundos atienden funcionalidades de usuario. Dentro
de esta divisin primaria, el software debe incluir tambin el firmware.
El subsistema humano de un sistema informtico es el conjunto de recursos humanos que intervienen en la
explotacin y administracin del sistema. Como primera aproximacin, el recurso humano puede dividirse
en usuarios e informticos. Los usuarios son las personas dedicadas a la explotacin del sistema, capaces
de realizar su trabajo sin unos conocimientos avanzados de informtica o del sistema, aunque si los posean
de las aplicaciones que utilizan. Los informticos englobaran al personal que realiza labores avanzadas
sobre el sistema, como la administracin, anlisis, diseo, programacin o formacin.
3. ESTRUCTURA FSICA Y FUNCIONAL
3.1. Estructura fsica
La estructura fsica de un sistema informtico, el hardware, agrupa el conjunto de elementos fsicos,
componentes electrnicos y mecnicos. Las estructuras fsicas y lgicas capaces de obtener un rendimiento
adecuado a las exigencias actuales en cada momento se pueden englobar bajo el trmino de mnimos
operativos. Bsicamente, el mapa conceptual puede dividir la estructura fsica en dos partes, la UCP y los
interfaces de E/S, dispositivos y perifricos.
La UCP a su vez distingue dos componentes fundamentales ya estudiados, la unidad de control, UC, que
gestiona los componentes del equipo y la UAL, unidad aritmtico lgica, encargada de los clculos y
operaciones lgicas a ejecutar.Los interfaces de E/S incluyen perifricos y dispositivos para las funciones de
interface humano o tareas relacionadas con la E/S como las memorias externas.
Entre los mnimos operativos de la estructura fsica debe tenerse en cuenta la capacidad de memoria, tanto
la memoria principal, RAM y las secundarias como los discos duros. Las dos caractersticas a evaluar para
prever sus prestaciones son capacidad y velocidad de acceso. En general, y debido al abaratamiento de la
memoria auxiliar y secundaria, el peso de la inversin en un equipo, en lo que a memoria se refiere, debe
centrarse en la memoria principal, ya que la capacidad de disco duro podr suplirse con almacenamiento
externo o de otro tipo, como el almacenamiento en red.
La estructura fsica de un sistema informtico debe proveer interfaces serie y paralelo. Los clsicos puertos
van perdiendo popularidad a medida que la ganan desarrollos como USB. Otros puertos habituales son los
de red (conector RJ45) y mdem (conector RJ11), lectores de tarjetas, puertos PCMCIA, etc.
La estructura fsica y sus caractersticas, tales como potencia de cldulo o velocidad sirve para clasificar los
sistemas informticos, distinguiendo entre sistemas mainframe, miniordenadores y microordenadores.
Un mainframe es un gran ordenador con altas prestaciones en cuanto a memoria, potencia, etc. Suelen ser
de propsito general. Si estn muy especializados y equipados para ofrecer ms prestaciones se
denominan supercomputadores. Los miniordenadores son ordenadores con prestaciones medias orientados
a un propsito general. Los microordenarores poseen una estructura fsica de perfil bajo, e incluira los
ordenadores domsticos, aunque sus prestaciones, en ocasiones son bastante considerables.
Otros criterios de clasificacin de ordenadores son por la forma de tratamiento de la informacin, que los
divide en digitales y analgicos. Los analgicos tratan seales continuas, en general orientados al trabajo en
tiempo real y los digitales realizan su proceso con informacin y seales en formato digital.

98
Los ordenadores digitales segn la aplicacin para la que se conciben pueden a su vez clasificarse en
cientficos, para tareas especializadas y administrativos, diseados para menos operaciones, pero ms
datos de entrada y salida, usados en tareas de administracin y gestin.
El ltimo aspecto a considerar de la estructura fsica es el sistema de vdeo, ya presentado y de cuyas
caractersticas deben recordarse la resolucin, medida en puntos luminosos o pixels y representada como
una matriz de columnas por lneas. El valor de la resolucin es inversamente proporcional al nmero de
colores. Sistemas de vdeo clsicos son CD (Color Display), ECD (Enhanced Color Display), MCGA (Multi
Color Graphics Adapter) y VGA (Video Graphics Array). Estndares ms avanzados son SVGA (Sper
VGA) y XGA (Extended GA). Debe resaltar la importancia de la estandarizacin impulsada por VESA (Video
Electronics Standard Association) en la evolucin de la tecnologa de video.
3.2. Estructura funcional
La estructura funcional de un sistema informtico puede resumirse en la elaboracin de unos resultados en
funcin de unos datos de entrada. La informacin es gestionada y tratada por el sistema lgico, el software,
que es la parte crtica de la estructura funcional del sistema.
El procesamiento de la informacin requiere una secuencia de instrucciones o etapas a cubrir, que en
general, implementa un programa. La confeccin de un programa concreto comienza con la bsqueda de la
solucin a un problema que se plantear de acuerdo a una metodologa de diseo. El diseo suele
apoyarse en tcnicas como el uso de seudocdigo y organigramas para la elaboracin de algoritmos, lo que
se presenta en mayor profundidad en el tema 25.
Resumiendo, se podra decir que la estructura fsica de un sistema informtico posee tres componentes
fundamentales, UCP, memoria y unidades de E/S. La estructura funcional, por tanto, depender de la fsica
y se describe definiendo la interrelacin de los elementos fsicos. Tambin puede resumirse el
funcionamiento del sistema como un proceso indefinido en el que las instrucciones de un programa son
ejecutadas en la UCP, que har uso de la memoria para almacenar la informacin en curso y adaptar
velocidades de las unidades de E/S, que tambin son gestionadas por la UCP.
Por tanto la estructura funcional descansa sobre el software, que es el que controla el proceso de datos. Se
distingue tres tipos de sw dependiendo de su uso, el software de sistemas, de programacin y de aplicacin.
El software de sistemas sirve de interfaz usuario mquina y permite controlar los perifricos. Son los SO,
que disponen instrucciones internas, cargadas en memoria y de ejecucin inmediata e instrucciones
externas que se guardan en memoria secundaria y para su ejecucin deben cargarse en memoria.
El software de programacin est compuesto por los entornos de programacin que permiten generar
cdigo. El grueso de este software lo representan los lenguajes de programacin, que se clasifican en
lenguajes de bajo nivel, nivel medio y alto nivel. Los lenguajes de bajo nivel son los lenguajes mquina
binarios, los de nivel medio suponen un nivel superior de abstraccin como los ensambladores y los
lenguajes de alto nivel se acercan al lenguaje humano, usados habitualmente para programar.
El software de aplicacin es el que implementa las soluciones para el usuario. Se codifica con lenguajes de
programacin y puede clasificarse en programas verticales, estndar y shareware.
Los programas verticales son programas a medida creados para problemas muy concretos. Los programas
estndar o de propsito general se disean para resolver problemas genricos, de forma que se limita el
coste de la programacin a medida. En este grupo se encontraran los procesadores de texto, hojas de
clculo, BBDD, programas de diseo grfico y en general el grueso del software comercial.
El shareware son programas que incluyen soluciones verticales y estndar. Se disea para resolver
distintos tipos de problemas y su distribucin suele ser libre, es decir, con el cdigo fuente y gratuito,
aqunque existan opciones comerciales.

99
TEMA 22. PLANIFICACIN Y EXPLOTACIN DE SISTEMAS INFORMTICOS. CONFIGURACIN.
CONDICIONES DE INSTALACIN. MEDIDAS DE SEGURIDAD. PROCEDIMIENTOS DE USO.

1. INTRODUCCIN
2. PLANIFICACIN Y EXPLOTACIN DE SISTEMAS INFORMTICOS
2.1. Planificacin
2.2. Explotacin
3. CONFIGURACIN
3.1. Servidores
3.2. Clientes
3.3. Usuarios
4. CONDICIONES DE INSTALACIN
4.1. Instalacin del HW
4.2. Arranque
4.3. Parada
5. MEDIDAS DE SEGURIDAD
6. PROCEDIMIENTOS DE USO

100
1. INTRODUCCIN
Una vez realizado el anlisis de necesidades y el diseo de la solucin para los requisitos de una empresa u
organizacin, en lo referente a sus sistemas de informacin, se procede con la instalacin de los sistemas
informticos. La instalacin debe tener en cuenta el entorno, la forma de conexin, la configuracin y los
aspectos de seguridad.
Tras la instalacin del sistema informtico se entra en la fase de planificacin y explotacin. La planificacin
del sistema requiere una metodologa para su correcta configuracin y funcionamiento, lo que garantizar
una explotacin, un uso, eficiente que logre los objetivos de rendimiento y productividad marcados.
2. PLANIFICACIN Y EXPLOTACIN DE SISTEMAS INFORMTICOS
La planificacin de un sistema informtico es el conjunto de mtodos y organizacin que lo estructuran de
cara a su explotacin, es decir su funcionamiento en la operativa habitual. Sin una correcta planificacin que
organice el sistema, es previsible que se produzcan errores y un uso ineficiente de los recursos que limiten
en gran medida la productividad.
La planificacin debe contar con consideraciones tales como que los usuarios deben monitorizar el buen
funcionamiento de su equipo en la gestin de su trabajo habitual. Debe existir una funcin de lanzamiento y
control que, de acuerdo con la planificacin, prepara y encola la operacin de los trabajos a realizar,
controlando su seguimiento y calidad.
La analoga entre la explotacin de un sistema informtico y un sistema industrial clsico ha hecho heredar
su estructura a los departamentos de explotacin y proceso de datos. Sin embargo, las particularidades de
la informtica obliga a adaptar la explotacin a la escala del teleproceso y las nuevas aplicaciones,
distinguiendo entre procesos orientados a la actualizacin de informacin y los dedicados a obtenerla e
interpretarla, restado protagonismo al operador, pero conservando su responsabilidad en el proceso.
Existe pues una fuerza centrpeta hacia la informacin donde el operador posee un perfil ms de custodio y
garante del correcto funcionamiento del servicio, aligerando sus funciones de control que interpreta la
explotacin como un servicio ms que como proceso o cadena de transformacin.
El esquema de explotacin, groseramente resumido, pondra al usuario como origen de la informacin, al
ser el que la obtiene y al operador como monitor de disponibilidad del servicio. La programacin distribuida y
conceptos de organizacin como el cloud computing aceleran este enfoque aunque haya partes que sean
ms clsicas, apareciendo funciones tipo atencin al cliente del servicio y similares.
2.1. Planificacin
La planificacin de un sistema informtico es la forma de estructurar su organizacin y funcionamiento. Se
concreta en normas de actuacin y deriva en un modelo de explotacin que responde a los objetivos. El
modelo variar segn la organizacin y poseer caractersticas distintas segn el nivel de aplicacin. La
metodologa de explotacin consistir en disear un modelo acorde con las necesidades y cuya complejidad
aconseja analizarlo bajo modelos especficos. Se distinguen los siguientes niveles de planificacin.
A largo plazo. Representa el primer nivel de planificacin del trabajo y recursos. Entre sus tareas estn la
negociacin de fechas, plazos de entrega o tiempos de respuesta con los usuarios, la cantidad y calidad de
recursos a utilizar con los proveedores y considerar conjuntamente todo el sistema informtico para
actualizarlo en funcin de las necesidades.
A corto plazo. Se apoya en los compromisos adquiridos y recursos disponibles, sin negociacin. Se
contempla un nmero de trabajos limitado y la realiza el departamento de explotacin o similar, marcando
como objetivo el cumplimiento de plazos y realizando un seguimiento detallado de las operaciones, que se
corregirn con algn proceso de realimentacin.
Microplanificacin. Es la planificacin a nivel de estacin de trabajo y consiste en ordenar temporalmete las
operaciones a realizar, evaluar el uso de recursos crticos, la informacin de operaciones precedentes y
prioridades. El objetivo es el cumplimiento de plazos y la optimizacin del uso de recursos.
Una vez realizada la planificacin a cada nivel, se debe establecer un sistema de planificacin, en el que al
menos existan tres etapas, una planificacin manual, mecanizada y automtica. La planificacin manual
tiene por objetivo la recogida y validacin de los datos de la planificacin. El departamento de explotacin
se ve como una caja negra, aunque a nivel interno estn definidas las relaciones entre sus componentes.
La planificacin mecanizada parte de los datos recogidos en la planificacin manual y su objetivo es
mecanizar el tratamiento de la informacin para elaborar los planes a corto y largo plazo. La planificacin
automtica pretende explotar la documentacin obtenida en la planificacin mecanizada para generar
planes automticos en funcin del desarrollo del trabajo y conseguir una realimentacin de las operaciones

101
de forma que los datos sean reflejo de la realidad. Sus ventajas son la visin automtica de los trabajos que
no alcanzarn el plazo de entrega y la obtencin de informacin estadstica o detallada del servicio.
La informacin obtenida del sistema de planificacin, caracteriza por el estudio directo del uso de los
recursos podra ser suficiente para facilitar la negociacin de la carga de trabajo a largo plazo y por tanto
representa un recurso fundamental para la gestin de la explotacin.
Sin embargo, esta informacin puede no ser significativa para la planificacin de recursos. Para ello debe
tenerse en cuenta la utilizacin de recursos por parte de las aplicaciones. Si en el futuro, las aplicaciones
requieren otros recursos, se debe realizar un anlisis que describa su nivel de utilizacin en cada caso,
estableciendo, por ejemplo un perfil de uso por horas, una proyeccin temporal en funcin de las
perspectivas de crecimiento y la estimacin de los sistemas de respaldo para garantizar la disponibilidad.
La explotacin, por su parte generar informacin de realimentacin sobre el uso actual de recursos (nivel
de carga) y la utilizacin que de ellos hacen las distintas aplicaciones. Esto marcar las tendencias de
crecimiento y actualizacin en el tiempo.
2.2. Explotacin
La explotacin de un sistema informtico es la utilizacin y operativa diaria que se realiza en el sistema.
Para que sta sea correcta, se debe usar una metodologa que defina un modelo de explotacin conforme a
las necesidades y cuya complejidad aconseja basarlo en modelos tpicos como lo son el modelo decisional,
organizacional, relacional e informacional.
El modelo decisional define la estructura de las decisiones y funciones a realizar en los diversos niveles
para controlar las operaciones de explotacin. Distingue tres niveles, planificacin, lanzamiento y control.
La planificacin comprende la de largo plazo, con decisiones de previsin y necesidades de los planes de
desarrollo, normalmente anual y la de corto plazo, que distribuye temporalmente el trabajo en plazos tpicos
de meses, semanas o das. El lanzamiento consiste en la preparacin de los requisitos necesarios para la
ejecucin del trabajo. El sistema debe de dotarse de cierta holgura para hacer frente a trabajos no previstos.
El control consiste en verificar los resultados obtenidos, obteniendo adems medidas de rendimiento y
caractersticas del trabajo para la elaboracin de nuevos planes. El conjunto de planificacin, lanzamiento y
control garantiza el flujo correcto de tareas y aprovechamiento eficaz del sistema.
El modelo organizacional muestra la asignacin de responsabilidades y la estructura de la organizacin.
Depender de la complejidad y volumen de trabajo as como de los recursos humanos disponibles.
El modelo relacional define la relacion entre el departamento de explotacin y el resto de la organizacin.
La gestin de los recursos hw, sw y las normas de trabajo marcar las relaciones entre los departamentos
de explotacin, sistemas y proyectos. Las normas deben establecer muy claramente las relaciones con los
usuarios, con desarrollo, coordinacin y seguimiento de incidencias y sistemas.
El modelo informacional es el encargado de organizar los soportes documentales y el flujo de informacin.
Se distinguen tres grupos de informacin, documentacin de procedimientos, necesaria para explotar los
programas, controlar resultados, etc., documentacin de trabajos, informacin necesaria para su ejecucin y
control y documentacin de control, que revela periodicamente el estado de la explotacin.
El sistema de informacin utilizado en la explotacin debe ser
mecanizable para evitar al mximo la burocracia. Asimismo, la
metodologa de explotacin influir en el diseo de las
aplicaciones, que debe tener en cuenta aspectos como la
utilizacin de recursos, seguridad o el seguimiento y control.
La organizacin del departamento de explotacin est
condicionada por factores como el tamao de la instalacin, SO,
las caractersticas de la organizacin, sus recursos disponibles o
su personal.
El objetivo del departamento de explotacin es el proceso de datos, eje de su actividad, para lo que ser
necesario distinguir cuatro funciones bsicas, el establecimiento de procedimientos operativos,
procesamiento, actualizacin del sistema y formacin.Cada rea funcional del departamento de explotacin
estar encargada de realizar las tareas bsicas, que en un primer momento no deben identificarse con
puestos de trabajo concretos hasta tener en cuenta las particularidades de la empresa, ya que, por ejemplo,
una persona podra desempear diversas tareas.Si la escala del departamento es mayor, ser necesario
crear reas de trabajo, negociados o similares. Algunas reas tpicas son control, produccin, almacn y
biblioteca.
El rea de control o planificacin tiene por misin la recepcin de documentos, planificacin de trabajos,
control de los resultados o la distribucin de documentos, entre otros. El rea de produccin suele tener

102
encomendadas tareas como la conversin de informacin a soportes adecuados para la entrada en el
sistema, la preparacin de los trabajos, su ejecucin y el acabado y presentacin de los mismos. El almacn
gestionar los suministros y la biblioteca los elementos tcnicos y documentacin.
Como en toda organizacin, habra que incluir una jefatura o direccin y si cabe podra darse alguna
secretara general. La direccin del departamento debe estar perfectamente coordinada con la direccin de
la que dependa dentro de la empresa.
El objetivo ltimo de la explotacin de un sistema informtico ser ofrecer cierto nivel de servicio, razn por
la cual el departamento de explotacin visto por el cliente ya sea externo o interno, la propia empresa, ser
el principal indicador de la efectividad del proceso de datos.
La efectividad se entiende como cumplimiento del nivel de servicio comprometido, conjunto de aspectos
tales como plazos de entrega, tiempo de respuesta, calidad o coste, susceptibles de negociarse. En
ocasiones, los problemas de la explotacin sern ajenos al departamento o la propia organizacin y la
solucin probablemente pase por coordinar a otros departamentos o empresas.
Por su parte, la actividad del departamento de explotacin puede encajarse en el modelo clsico de
planificacin, ejecucin, medida y realimentacin. La actividad propia del departamento y sus objetivos
concretarn las exigencias de recursos y aplicaciones, que a su vez facilitarn la elaboracin de la
planificacin a largo y corto plazo.
Una vez en ejecucin la planificacin diaria, la necesidad fundamental es la informacin operativa para la
gestin del centro de proceso de datos, que exige un control a dos niveles, uno inmediato, que vigile la
correcta evolucin del plan diario y corrija pequeas variaciones eventuales y un control diferido, fruto del
anlisis a posteriori de desviaciones y que debe tender a la renegociacin de nuevos planes a largo plazo, o
el rediseo de recursos.
Este control diferido no es una reaccin directa ante problemas, es un anlisis en el que tener en cuenta
consideraciones como la implantacin de nuevos servicios, aplicaciones o necesidades de crecimiento,
aspectos de mayor envergadura que las posibles desviaciones de los objetivos.
Este control tiene como primera derivada la consideracin de dos criterios bsicos para la consecucin de
los objetivos, la necesidad del predominio de la proactividad sobre la reaccin, es decir, la necesidad de una
replanificacin constante y la disposicin de un sistema de informacin para la gestin y control del centro
de explotacin robusto y coherente
3. CONFIGURACIN
Una vez preparado el sistema informtico y comprobado su funcionamiento, el penltimo paso de su
instalacin competa es la configuracin del sistema, visionndolo en conjunto. Debido a la complejidad que
suele representar la configuracin es bueno dividirla en partes, de entre las que pueden destacarse la
configuracin de los servidores, las estaciones clientes y los usuarios.
3.1. Servidores
En el caso general, un sistema informtico descansar sobre una estructura de red, en la que existirn
equipos especiales que ofrezcan servicios fundamentales para el desarrollo de la actividad. Estos equipos
son los servidores.
La configuracin de una mquina como servidor depende del software que monte. En principio, ordenadores
que pueden considerarse orientados al usuario pueden tener la potencia suficiente para realizar funciones
de servidor. Lgicamente, la carga estimada de trabajo marcar la potencia del equipo a disponer como
servidor. Pero, es importante aclarar que el carcter cliente o servidor lo da el sw instalado.
Por estas razones, se puede hablar de servidores dedicados y no dedicados. Los dedicados realizan tareas
de servidor en exclusiva, mientras que los servidores no dedicados pueden realizar funciones de distintos
servidores o de servidor y estacin de trabajo. Otra vez, en funcin de la organizacin, recursos y
especificaciones tendr que decidirse si se opta por servidores dedicados o no.
En general, se recomienda el uso de servidores dedicados para cada tipo de servicio, como puedan ser los
servidores web, de correo electrnico, impresin, etc. En el tema 68 se explican las funciones de los
servidores ms comunes en una red.
3.2. Clientes
Un cliente puede entenderse como cualquier mquina o usuario de una red que solicita un servicio. En
principio, las estaciones de trabajo de la organizacin cumplirn con el rol de cliente y por tanto
implementarn el software y los protocolos de comunicacin necesarios para el dilogo con los servidores.
En un principio, y debido a lo caro del equipamiento, las soluciones de trabajo se diseaban con grandes
ordenadores a los que se conectaban clientes ligeros o tontos, que incluso cargaban su SO desde la red, o

103
smplemente suponan una puerta de entrada a la red como terminal remoto. Esto podra considerarse
como la prehistoria de las redes, donde los programas y los datos residan en los servidores y los usuarios
accedan al servidor que requiriesen.
Con el avance y reduccin de costes informticos, la limitacin de la velocidad de transmisin en red gener
una fuerza centrfuga en la que las estaciones de trabajo ofrecan una gran potencia (micros potentes,
discos de gran capacidad de almacenamiento, velocidad de proceso) y por tanto se carg su capacidad de
proceso con ms inteligencia. En este caso las aplicaciones se instalan en el disco duro local de cada
estacin y no son compartidos en red.
Actualmente, el desarrollo, velocidad de transmisin y fiabilidad de las redes vuelve a mover el centro de
gravedad hacia la centralizacin de servicios, de manera que los servidores vuelven a recuperar importancia
y conceptos como el cloud computing, en que se dispone el trabajo en red, tiende a aligerar los clientes y
estaciones de trabajo orientndolos a la conexin a la red.
Se podra, sin embargo, hablar de una estructura o escenario intermedio, en que las aplicaciones se
instalan de forma distribuida, parte en el servidor y parte en el cliente, ya que en muchos casos los clientes,
ya sean estaciones de trabajo, mviles, blackberrys, tablets o dems, poseen mucha potencia de proceso y
no se podran considerar terminales ligeros sin inteligencia.
3.3. Usuarios
Un usuario es la persona o ente que hace uso del sistema informtico. Para gestionar un usuario se utiliza
informacin agrupada en un objeto llamado cuenta de usuario. A un usuario se le identifica con un nombre
(username o login) y contrasea (password). Sus caractersticas definen el perfil de usuario.
La distincin mnima entre usuarios define dos perfiles, el administrador y el usuario. A partir de aqu puede
desgranarse y especializarse la definicin de perfiles tanto como se quiera. Ejemplos de usuarios en WS
pueden ser invitados, administradores de impresin, etc. La distincin entre usuarios es un concepto muy
vlido a la hora de otorgar permisos sobre los recursos del sistema, lo que facilita la administracin, en
particular de lo relativo a seguridad. Lgicamente, los usuarios administradores poseen privilegios sobre el
sistema y los usuarios habituales los tienen limitados.
El siguiente paso en la administracin de usuarios es el concepto de grupo, un conjunto de cuentas de
usuario con caractersticas comunes que a veces se nombran como grupos de seguridad. Un grupo es una
unidad para facilitar la administracin de usuarios que puede ser efectiva en entornos reducidos, sin tener
que mantener una infraestructura mayor de servidores. Un usuario puede pertenecer a ms de un grupo y
cada grupo podra tener establecidos ciertos privilegios.
Los aspectos que permite configurar la definicin de usuarios y grupos, entre otros son las restricciones de
conexin, caducidad de cuentas, poltica de contraseas o aspectos de seguridad avanzados.
4. CONDICIONES DE INSTALACIN
4.1. Instalacin del HW
Una vez disponible el hw del sistema puede comenzar su instalacin, conforme a las recomendaciones y
normativa de seguridad, salud y riesgos laborales. La lgica recomienda trabajar en superficies planas,
despejadas y limpias de polvo, papeles, ceniza, etc. Del mismo modo es recomendable aislar el sistema de
fuentes de distorsin elctrica, generadoras de ruido, como los motores elctricos o aires acondicionados.
Un aspecto clave para la seguridad del trabajador es que los bancos de trabajo e instalaciones elctricas
dispongan de tomas de tierra en correcto estado. Los posibles accidentes debidos a malas instalaciones
elctricas y tomas de tierra pueden ser muy graves. Adems se podran causar daos al hardware, originar
malos funcionamientos que deriven en prdida de informacin o generar inestabilidades en los programas.
La conexin de perifricos no suele ser problemtica, ya que cada uno suele llevar asociado un conector
diferente que no presenta dudas en cuanto a la forma de conectarlo. As, por ejemplo, los conectores del
monitor suelen ser los tpicos VGA y la popularizacin de conectores USB suelen usarse para ratones,
teclados, impresoras y dems dispositivos. La conexin elctrica no debe realizarse hasta terminar la
instalacin de todos los elementos.
La instalacin de discos duros y unidades de DVD lleva asociada una alimentacin que debe revisarse
porque si se olvida generar errores de deteccin que son molestos aunque fciles de localizar. Cuando se
arranca el equipo y se empieza a leer los discos duros hay que evitar movimientos que puedan daarlos.
4.2. Arranque
Antes de encender el sistema, debe comprobarse que las tomas de electricidad estn conectadas, en
particular la del monitor, porque sino, no se ver nada en pantalla. Si se considera que est todo correcto se

104
arranca el sistema y comienza su secuencia de inicio con una rutina de comprobacin de los componentes,
que sigue los procesos de la BIOS y se denomina POST (Power On Self Test).
Durante el POST aparecen en pantalla las imgenes programadas en la BIOS y la tarjeta grfica (en
general un logotipo del fabricante) y los mensajes en que se indica la tecla para acceso a BIOS y secuencia
de arranque. Si existen problemas se indicar con un cdigo y un mensaje en pantalla o seales acsticas
en forma de pitidos. Su significado debe ser consultado en el manual del fabricante porque no es estndar.
Si existen problemas que pueden ser identificados, por los mensajes o los pitidos, los esfuerzos se
orientarn en esa solucin. Si no se tienen indicaciones es recomendable apagar el sistema y revisar la
instalacin de nuevo. En caso que no aparezca nada en pantalla problemas tpicos son la falta de
alimentacin del monitor, encendido del mismo, ajustes de resolucin, memoria de video, etc.
A veces, pueden generarse pausas en el proceso de arranque por mensajes que indica la BIOS, que hasta
que no se afirma su lectura no dejan seguir la secuencia, como por ejemplo la indicacin de fecha errnea,
pila baja, o similares. Si el POST es correcto suele terminar con uno o dos pitidos y comenzar la secuencia
de arranque, que podr realizarse desde una unidad de DVD, USB o el HD.
4.3. Parada
La parada de un sistema informtico no es trivial. Debe considerarse que si hay aplicaciones en bloqueo o
en funcionamiento, una parada mal realizada puede ser crtica y ocasionar daos al equipo y la informacin.
La parada podr ser lgica o fsica. Lo recomendable es realizar una parada o interrupcin lgica, pero
puede darse el caso de una parada fsica brusca, a la que a veces se denomina botonazo. Una parada
lgica es la que hace un cierre ms o menos ordenado del sistema. Si se tiene el control sobre el SO, la
forma de proceder es el cierre de las aplicaciones con los mens del programa o bien con las utilidades de
administracin del propio SO como las seales kill o los administradores de tareas.
Si se pierde el control del SO se puede recurrir a la combinacin de teclas Ctrl+Alt+Sup, que es una
interrupcin lgica de reinicio del sistema. En algunos sistemas esto es equivalente a dejar apretado unos
instantes el botn de encendido o bien a pulsar el botn de Reset. Si no funcionase ninguna opcin de
parada lgica, debe considerarse la parada fsica, muy agresiva y que conlleva ciertos riesgos, por tanto,
slo se realizara en casos un tanto extremos. Al parar el sistema de manera abrupta, se deja de alimentar y
por tanto pueden daarse los dispositivos y como en el caso de la parada lgica, es casi seguro que parte
de la informacin pueda perderse.
5. MEDIDAS DE SEGURIDAD
Cuando se habla de seguridad e informtica, casi de inmediato se piensa en los dos aspectos en que se
divide, la seguridad fsica y lgica, que se aplica tanto a equipos individuales como a los sistemas en red,
verdadero taln de aquiles de la seguridad lgica. Para su desarrollo, se puede consultar el tema 63.
En este contexto, la instalacin de un sistema informtico, las medidas de seguridad se refieren a las que
deben adoptarse para realizar correctamente la instalacin. Puede decirse que tienen como marco general
las normas bsicas de seguridad y salud laboral, regidas por la ley 31/1995 de 8 NOV de prevencin de
riesgos laborales y toda la legislacin asociada como puedan ser los RD 485/1997 o el 486/1997 de 14
ABR, disposiciones mnimas en materia de seguridad y salud en el trabajo y lugares de trabajo.
Es muy importante prestar atencin a las normas de seguridad laboral y concientizar al trabajador en la
importancia de la prevencin. Las normas y medidas de seguridad tienden a prevenir accidentes laborales,
proteger la salud de los trabajadores y preservar el cuidado de la maquinaria, elementos de uso comn y
materiales con los que se desarrolla el trabajo.
El xito de las medidas de seguridad resulta de la capacitacin constante, la responsabilidad en el trabajo y
la concienciacin de toda la organizacin. Debe comprenderse que el no respeto a las normas puede poner
en peligro la integridad fsica o degenerar en enfermedades profesionales. Cada individuo debe cumplir y
hacer cumplir las normas de seguridad.
Para desarrollar la cultura de seguridad en el trabajo, las empresas deben evaluar los riesgos laborales de
las instalaciones y los puestos de trabajo y dotar a los trabajadores de EPIS (equipos de proteccin
individual), que les permitan un desarrollo seguro de sus tareas. Tambin es conveniente llevar un registro
de los accidentes e investigar sus causas y aplicar medidas tendentes a su eliminacin. La cultura de
seguridad laboral en la empresa reduce significativamente el nmero de accidentes.
Como medidas de seguridad particulares en la instalacin de sistemas informticos pueden citarse la
revisin de la instalacin elctrica, que est adecuada a lo dispuesto en el RD 842/2002, de 2 AGO, por el
que se aprueba el RBT, ITs complementarias y Normas UNE. Y el uso de pulseras de conexin a masa a la
hora de manipular equipos, lo que proteger contra descargas tanto al trabajador como al propio equipo.

105
La iluminacin general de los puestos de trabajo debe alcanzar los 100 lux como mnimo segn el anexo IV
del RD 486/1997. Tambin se indica la disposicin en las proximidades de los puestos de trabajo, de locales
de aseo con garantas higinicas, retretes, dotados de lavabos, etc. Las disposiciones de seguridad contra
incendios, sealizacin de pulsadores y alumbrado de emergencia tambin se recogen en distintas
recomendaciones, como por ejemplo en el RD 786/2001. En el RD 485/1997, su anexo 11 especifica
normas de orden, limpieza y mantenimiento de los lugares de trabajo. Asimismo, es importante la
colocacin de las mesas de oficina en posicin vertical a ventanas para eliminar los reflejos en las PVD.
Como resumen general, las medidas de seguridad siguen una lgica sencilla encaminada a mantener un
orden y limpieza orientado a la prevencin de los riesgos. Es comn en toda empresa u organizacin
realizar cursos de formacin en seguridad para los trabajadores, implantar su cultura de seguridad en el
trabajo y tener planes de evaluacin de riesgos, de recomendada lectura.
6. PROCEDIMIENTOS DE USO
Los procedimientos de uso de los sistemas informticos son el conjunto de normas y recomendaciones que
se establecen en un contexto dado para conseguir una utilizacin responsable y eficiente de los recursos.
Hay que hacer notar que un uso no responsable de los mismos puede tener implicaciones legales.
Aunque no forme parte, en sentido estricto, de los procedimientos tambin es conveniente tener en cuenta
la documentacin necesaria para el funcionamiento y mantenimiento de los sistemas informticos. De este
modo, es recomendable tener bien localizada la documentacin completa relativa a cada aplicacin, la
descripcin clara y detallada de su uso, hardware sobre el que opera, el SO, versin y dems programas
relacionados con la aplicacin, BBDD utilizadas, estructura de los archivos y en general, toda la informacin
que se considere importante y til para facilitar el funcionamiento.
La documentacin, cuando describe cmo utilizar el sistema, se presentar en formato de procedimiento de
trabajo normalizado. Los procedimientos suelen incluir aspectos generales y principios de buenas prcticas
de uso, responsabilidades del personal implicado, procedimientos de seguridad, de de control de cambios
hw y sw, de revisin peridica del sistema, de mantenimiento, validacin, etc. Si el aspecto a tratar es de
especial importancia, se establecer un procedimiento individual para ese uso particular que se pretende
automatizar y normalizar.
Es importante que los procedimientos de uso establezcan claramente que cada usuario es responsable de
los recursos a l asignados, por lo que cada usuario soporta las consecuencias de usos negligentes. Las
normas especficas establecidas en cada procedimiento, para el uso de un equipo o recurso deben seguirse
puntualmente. Asimismo, debe formarse al usuario, o dejar patente en los procedimientos la observancia y
cumplimiento de la legislacin vigente acerca de la proteccin de la intimidad, propiedad intelectual y ley de
telecomunicaciones. En este sentido, la legislacin sobre propiedad intelectual tambin afecta a contratos
sobre licencias sw y otros materiales como imgenes, texto y similares. En general, se prohibe de forma
expresa la copia de sw que no sea libre. La facilidad de tratamiento de estos contenidos es un factor de
vulnerabilidad frente a derechos de autor.
Pueden establecerse procedimientos menos tcnicos, referidos a aspectos ms humanos como por ejemplo
normas de comunicacin con otros entes, de forma que, por ejemplo, no se cometan faltas de respeto a la
hora de usar el correo electrnico, envo de correo basura, utilizacin responsable del mismo, etc. Debe
concienciarse y dejarse escrito, que, considerado como parte del sistema informtico, la informacin es el
recurso ms valioso. Protejerla y hacer un uso responsable de la misma es labor de toda la organizacin.
Suele ser habitual tambin utilizar los sistemas de una organizacin para labores diferentes a las de la
propia organizacin. Estas situaciones deben evitarse en lo posible, segn los procedimientos que se
establezcan. Por fin, tanto administradores como usuarios deben informarse de los cambios en los sistemas
informticos, nuevos servicios y requisitos de seguridad o nuevas necesidades de los usuarios.
Los cambios deben comunicarse y hacerse accesibles de forma gil, con mtodos y herramientas como por
ejemplo listas de distribucin o entornos web.

106
BLOQUE 3. PROGRAMACIN Y BBDD.
Tema 23. Diseo de algoritmos. Tcnicas descriptivas.
Tema 24. Lenguajes de programacin. Tipos. Caractersticas.
Tema 25. Programacin estructurada. Estructuras bsicas. Funciones y procedimientos.
Tema 26. Programacin modular. Diseo de funciones. Recursividad. Libreras.
Tema 27. Programacin orientada a objetos. Objetos. Clases. Herencia. Poliformismo. Lenguajes.
Tema 28. Programacin en tiempo real. Interrupciones. Sincronizacin y comunicacin entre tareas.
Lenguajes.
Tema 29. Utilidades para el desarrollo y prueba de programas. Compiladores. Intrpretes.
Depuradores.
Tema 30. Prueba y documentacin de programas. Tcnicas.
Tema 31. Lenguaje C: Caractersticas generales. Elementos del lenguaje. Estructura de un programa.
Funciones de librera y usuario. Entorno de compilacin. Herramientas.
Tema 32. Lenguaje C: Manipulacin de estructuras de datos dinmicas y estticas. Entrada y salida
de datos. Gestin de punteros. Punteros a funciones.
Tema 33. Programacin en ensamblador. Instrucciones bsicas. Formatos. Direccionamientos.
Tema 34. Sistemas gestores de BBDD. Funciones. Componentes. Arquitectura de referencia y
operacionales. Tipos de sistemas.
Tema 35. La definicin de datos. Niveles de descripcin. Lenguajes. Diccionario de datos.
Tema 36. La manipulacin de datos. Operaciones. Lenguajes. Optimizacin de consultas.
Tema 37. Modelo de datos jerrquico y en red. Estructuras. Operaciones.
Tema 38. Modelo de datos relacional. Estructura. Operaciones. lgebra relacional.
Tema 39. Lenguajes para definicin y manipulacin de datos en sistemas de BBDD relacionales.
Tipos. Caractersticas. Lenguaje SQL.
Tema 40. Diseo de BBDD relacionales.
Tema 41. Utilidades de los sistemas gestores de base de datos para el desarrollo de aplicaciones.
Tipos. Caractersticas.
Tema 42. Sistemas de BBDD distribuidos.
Tema 43. Administracin de sistemas de BBDD.
Tema 44. Tcnicas y procedimientos para la seguridad de los datos.

BIBLIOGRAFA
Sistemas de tiempo real y lenguajes de programacin. Alan Burns & Andy Wellings. Pearson Educacin.
Sistemas de BBDD: Conceptos fundamentales. Elmasri, R. y Shamkant, B.
Diseo y Administracin de BBDD. Gary W. Hansen. Prentice Hall.
Fundamentos de Algoritmia. Brassard, Bratley. Prentice-Hall.
Metodologa de la programacin. Alcalde E y Garca. McGraw Hill.
Domingo Gimnez Cnovas: Apuntes de algortmica. Publicaciones UPM.
Introduccin al lenguaje C. Jose Miguel Santos..

Recursos web:
http://www.etsit.upm.es/ http://informatica.uv.es/iiguia/TSTD/
http://es.wikipedia.org/wiki/Portada http://www.mitecnologico.com
http://ditec.um.es

107
TEMA 23. DISEO DE ALGORITMOS. TCNICAS DESCRIPTIVAS.

1. INTRODUCCIN
2. DISEO DE ALGORITMOS
3. TCNICAS DESCRIPTIVAS
3.1. Seudocdigo
3.2. Diagrama de Flujo de Datos

108
1. INTRODUCCIN
Un algoritmo es una secuencia lgica de pasos a seguir en la solucin de un problema. Pueden
implementarse con distintos lenguajes de programacin.
2. DISEO DE ALGORITMOS
El diseo de un algoritmo debe ser estructurado; partir de una situacin inicial, desarrollar un determinado
proceso y por concluir en uno o varios estados finales. Debe ofrecer los mismos resultados ante las mismas
condiciones. Su concepto base es el mismo que el de la programacin.
Un algoritmo presenta las propiedades de precisin (todos los pasos estn definidos), finito (nmero limitado
de pasos), estructuracin (posee una entrada y una o varias salidas) y eficacia (resuelve un problema). En
informtica, un algoritmo representa el proceso de datos. Para ello se apoya en el uso de operandos y
operadores, variables y constantes, instrucciones, y en general, de los recursos tpicos de programacin.
Los operandos son los datos que tratar el algoritmo y los operadores, los smbolos que expresan cmo
tratarlos (suma, comparacin, etc). Una variable es un dato que puede cambiar de valor en la secuencia del
algoritmo. Deben ser declaradas e inicializadas. En contraste, una constante es un dato que no modifica su
valor. Se definen al principio del algoritmo. Por su parte, las instrucciones de proceso, indican una operacin
sobre un dato o del sistema. Se dividen en declarativas, primitivas y de control.
Las instrucciones declarativas asignan valores a operandos. Las primitivas incluyen instrucciones del
sistema, como las de E/S. Las de control permiten dirigir y gestionar el desarrollo del proceso. Pueden ser
alternativas o repetitivas. Las alternativas bifurcan el proceso y las repetitivas implementan bucles en
funcin de las condiciones que se evalen.
Por ltimo, se pueden definir subalgoritmos al estilo de subprogramas, subrutinas, mtodos o funciones, que
seran pequeos algoritmos que realizan algn proceso que puede ser identificado funcionalmente y posee
la ventaja de ahorrar cdigo y facilitar la comprensin de la rutina.
Cuando un algoritmo se ejecuta sobre un nmero elevado de datos o muchas veces, el coste computacional
es un factor crtico del rendimiento del programa o el sistema. Para evaluar si el algoritmo es eficaz, se
calcula tericamente el coste del mismo como un lmite en el infinito, en general, en trminos de la cota
superior asinttica, representada con la letra omega.
Expresa cmo aumenta la cantidad de proceso en funcin del nmero de variables u operaciones a realizar.
De este modo, la operacin de sumar los nmeros de una lista recorrida secuencialmente aumenta su
complejidad de forma lineal con el nmero de elementos. Esto se representa como O(n).
El clculo de la complejidad se realiza modelando el comportamiento del algoritmo para el peor de los casos
con una funcin, que ser la que indique el orden de complejidad que tiene. Una complejidad expresada
2
como O(l) es constante, O(logn) posee un comportamiento logartmico, O(n) lineal, O(n ) cuadrtico,
c
O(nlogn) lineal logartmico, O(n ) exponencial y O(n!) factorial.
No siempre puede ser interesante buscar un algoritmo de baja complejidad, ya que esta se calcula en el
peor de los casos. Si los datos no son muy voluminosos o en el entorno de trabajo, algoritmos distintos
presentan complejidades similares podra utilizarse alguno que, en principio, no fuese el menos complejo,
debido a razones de simplicidad, uso de recursos, etc.
Como orientacin en el diseo de algoritmos, pueden utilizarse estrategias como buscar problemas
anlogos al propuesto o generalizaciones del problema, particularizacin a partir de problemas generales,
modificacin (buscar una solucin parecida y adaptarla al problema original), uso de esquemas o la
posibilidad de aadir factores catalizadores que ayuden a encontrar la solucin del problema.Otras
tcnicas tpicas son aplicar superposicin, es decir dividir el problema en partes ms pequeas, fciles de
resolver y encontrar la solucin total como suma de las parciales.
Por su parte, la recursividad aplica el mismo algoritmo sobre si mismo varias veces, de forma que en la
ltima llamada, devuelve una solucin que ser empleada por la penltima llamada, y as, de forma
sucesiva hasta completar la solucin total. En estos casos debe tenerse en cuenta el recorrido del algoritmo.
Existen algoritmos ms sofisticados como los de ensayo y error, evolutivos, voraces o de vuelta atrs. El
diseo final, tambin depender de factores tcitos, como la experiencia del analista o programador.
3. TCNICAS DESCRIPTIVAS
Las tcnicas descriptivas de algoritmos definen cmo trabaja el algoritmo, detallando pasos y proceso.
Tambin sirven de ayuda en el diseo. Las tcnicas utilizadas habitualmente son seudocdigo y diagramas
de flujo de datos o DFD.
3.1. Seudocdigo

109
Consiste en escribir un algoritmo de forma intermedia entre el lenguaje humano y uno de programacin. Su
esencia es olvidar los detalles de la implementacin y centrarse en el diseo. No existen estndares,
simplemente basta aplicar la lgica, utilizando unas ciertas pautas de claridad y estructuras tpicas en
programacin. Como convenios de facto, podran ponerse los siguientes ejemplos:
Las sentencias de control, pueden codificarse de manera similar PROGRAMA pares
a cualquier lenguaje de programacin. Por ejemplo MIENTRAS
VARIABLES
[condicin] FIN-MIENTRAS, o SI [condicin] ENTONCES
FIN-SI. n : Entero
Las primitivas pueden codificarse de forma clara como EMPIEZA
ESCRIBIR, LEER, etc. Para la asignacin de valores puede
LEER n
utilizarse :=, >, , etc.
SI RESTO(N/2)==0 ENTONCES
Los subprogramas deben declararse de forma ntida. Por ejemplo
SUBPROGRAMA [nombre del subprograma], definir el cuerpo y ESCRIBIR el nmero es par
por fin declarar su fin con FIN-SUBPROGRAMA. Como en un
lenguaje de programacin, el subprograma podr aceptar SI NO
parmetros de entrada y proporcionarlos a su salida. ESCRIBIR el nmero es impar
Los comentarios podrn ponerse entre asteriscos, /*, etc. A la FIN-SI
derecha se muestra un ejemplo de programa que identifica un
nmero par, realizado con seudocdigo. FIN-PROGRAMA

3.2. Diagrama de Flujo de Datos


Un diagrama de flujo de datos es un esquema que presenta
visualmente la secuencia de proceso de datos. Permiten
representar varios niveles de concrecin. Los que indican el flujo
de datos de un sistema sin entrar en detalles son los
organigramas. Si se detalla la secuencia de acciones de un
algoritmo se denominan ordinogramas.
Los organigramas usan smbolos para representar soportes, E/S,
dispositivos de almacenamiento, etc. y lineas de flujo que
enlazan los soportes con los procesos.Los ordinogramas
representan algoritmos al detalle. Cuentan con smbolos como
los de inicio y fin (valo), proceso (rectngulo), E/S
(paralelogramo), alternativa (rombo), subprograma (rectngulo
con lados verticales dobles), conectores (crculos pequeos para
unir lineas de flujo o pginas) y lneas de flujo.
En la figura se presenta un ejemplo con la utilizacin de stos
smbolos.

110
TEMA 24. LENGUAJES DE PROGRAMACIN. TIPOS Y CARACTERSTICAS.

1. INTRODUCCIN
2. LENGUAJES DE PROGRAMACIN
3. TIPOS Y CARACTERSTICAS
3.1. Abstraccin
3.2. Objetivo
3.3. Paradigma
3.4. Traduccin

111
1. INTRODUCCIN
Un lenguaje de programacin es una representacin formal de algoritmos y funciones de un sistema. Por
ello tiene una serie de smbolos que pertenecen al lenguaje. Para desarrollar programas se utilizan
lenguajes de programacin que establecen una sintaxis de codificacin de instrucciones.
2. LENGUAJES DE PROGRAMACIN
Un lenguaje de programacin es un conjunto de smbolos, con una sintaxis que define el significado de sus
elementos y expresiones y es usado para gestionar el comportamiento fsico y lgico de un sistema. Su
principal caracterstica es ofrecer un sistema normalizado para que distintos programadores puedan
desarrollar aplicaciones que sean portables entre equipos o puedan ser combinadas entre si.
Un lenguaje de programacin permite especificar cmo y sobre qu datos operar un ordenador. Un
lenguaje de programacin es parecido al lenguaje natural, pero ms esquemtico. Como se ha presentado,
los micros ejecutan instrucciones de su ISC, el lenguaje mquina. La traduccin de un lenguaje de
programacin a lenguaje mquina se puede realizar secuencialmente o en bloque.
Si la traduccin la realiza un programa intrprete, ste ir adaptando las instrucciones del lenguaje de
programacin cuando se vayan ejecutando. Si el programa se traduce por completo a lenguaje mquina se
realiza una compilacin y el programa que realiza la traduccin se denomina compilador.
La evolucin de los lenguajes de programacin se puede agrupar en 5 generaciones. La dos primeras
responden al estado primitivo de desarrollo, lenguaje mquina y lenguaje ensamblador, respectivamente.
La tercera generacin incluira lenguajes de medio y alto nivel, que ofrecen sintaxis ms amigables para el
programador. Ejemplos seran COBOL, C, C++ o Java. Son lenguajes imperativos u orientados a objetos.
La cuarta generacin se refiere a lenguajes declarativos, cuyo principal exponente es SQL, que ms que
resolver el problema, lo plantea en un lenguaje ms cercano an al lenguaje natural. La quinta generacin
estara compuesta por los lenguajes pensados para resolver problemas sin la intervencin del programador,
propios del campo de la inteligencia artificial.
Los lenguajes de programacin poseen algunas caractersticas comunes. Entre ellas, la definicin de sus
elementos, como operadores o instrucciones. La definicin de los niveles lxico (smbolos), sintctico
(reglas de relacin entre smbolos) y el semntico (significado de las expresiones). Y el mbito de su
aplicacin, bien concreta o genrica. Cada lenguaje de programacin define su sintaxis, para lo que hace
uso de distintos parmetros:
Datos. Cada lenguaje define sus tipos de datos, as como su representacin interna. Tipos de datos
comunes son enteros (int, integer), reales (real) o lgicos (boolean).
Variables y constantes. En general, al declarar un tipo de datos, el lenguaje lo entiende como una variable.
Si se desea declarar una constante se usar una palabra reservada como constant o similar. La asignacin
de valores puede usar distintos smbolos (:=, =, etc.) Algunos lenguajes necesitan caracteres especiales
para las variables, como PHP, que usa el smbolo $.
Aspecto importante de las variables es su mbito de definicin. Las variables pueden ser locales y globales.
Una variable local se utiliza en un mbito limitado, como una subrutina o un bucle, al abandonarlos se
destruyen. Una variable global se usa en el contexto del programa. No se deben mezclar mbitos de uso y
es buena prctica no dar el mismo nombre a variables locales y globales. Para relacionarlas es
recomendable utilizar el paso de variables por valor, es decir, utilizar en cada mbito, el valor concreto de la
variable, no la variable directamente.
Operadores. Las operaciones sobre datos, se indican con operadores. Se distinguen los aritmticos como
suma, resta, etc. prcticamente comunes a cualquier lenguaje, los relacionales, utilizados para comparar (<,
> =, <>, ==,...) y los lgicos, que evalan expresiones devolviendo un valor binario. Ejemplos son NOT (!),
AND (&), OR (||), etc. Los operadores tienen prioridades, esto es, el procesador evaluar primero unas
operaciones sobre otras, a no ser que se modifique la prioridad mediante parntesis.
Instrucciones. Indican qu accin se realiza. Se distinguen las condicionales, de repeticin y ordinarias.
Instrucciones condicionales son las que evalan una expresin, y en funcin del resultado realizan un
proceso u otro. Ejemplos son la instruccin tipo IF... THEN... ELSE, SWITCH o CASE. Las instrucciones de
repeticin realizan el mismo proceso un nmero dado de veces. Ejemplos son las instrucciones tipo WHILE,
FOR o DO... UNTIL. Las instrucciones ordinarias englobaran el resto de instrucciones que realizan los
procesos comunes de lectura, escritura, etc.
Otra caracterstica comn a todos los lenguajes de programacin es la posibilidad de definir subprogramas,
procedimientos o funciones. Estas estructuras son agrupaciones de cdigo que es repetido en el programa

112
varias veces. Por tanto, lo que hacen es englobar ese cdigo comn, y cada vez que es necesario se invoca
para que realice la funcin que sea. Esta organizacin ahorra lneas de cdigo y facilita su legibilidad.
Entre los subprogramas se suele distinguir entre funciones y mtodos. La diferencia estribara en que los
mtodos realizan un proceso y las funciones adems devuelven un valor. La llamada a un procedimiento
requiere que se le den unos datos de entrada, en general variables, que cambian de mbito, como se acaba
de explicar. El paso de variables se realiza por valor o por referencia, siendo recomendable el primero.
Por fin, los lenguajes de programacin tambin incluyen la posibilidad de incluir comentarios en el cdigo,
que no son tenidos en cuenta por el intrprete o compilador, pero hacen el cdigo ms legible y sobre todo,
mantenible para los programadores. Pueden usar smbolos como // o /*.
Para presentar un esquema general, puede decirse que un programa, al igual que un texto, consta de una
introduccin, cuerpo del escrito y conclusin. Pero, por afinar un poco ms, debe desgranarse la
introduccin en una cabecera, declaracin de unidades externas, variables, constantes, tipos de datos y
subprogramas, el cuerpo del programa y un fin, que en general se dar con la instruccin END o similar.
Lenguajes como PASCAL son rgidos en su estructura y otros como Java ofrecen ms libertad. Por ejemplo,
en Java, el cuerpo del programa comienza con MAIN y los subprogramas seran los mtodos y funciones de
la clase principal u otras.
3. TIPOS Y CARACTERSTICAS
Los lenguajes de programacin se pueden clasificar segn varios criterios: abstraccin, objetivo, paradigma
de programacin y tipo de traductor.
3.1. Abstraccin
Segn el nivel de abstraccin del lenguaje, es decir, su cercana al lenguaje natural, se pueden identificar
los lenguajes mquina, ensamblador y de alto nivel.
El lenguaje mquina es el que interpreta el microprocesador. Utiliza cdigo binario, octal o hexadecimal y
era utilizado por los programadores de los primeros ordenadores. Como es diferente para cada mquina, es
difcil de portar y lo engorroso de su programacin desaconseja la programacin directa. El proceso normal
es programar en alto nivel y traducir a lenguaje mquina. Todas las instrucciones mquina son imperativas,
ya sean de trasferencia de datos, E/S, control u otras.
El lenguaje ensamblador es una primera abstraccin del lenguaje mquina y usa nemnicos para identificar
instrucciones y datos. Permite comentarios y etiquetas para definir puntos de control lgico o rutinas.
Los lenguajes de alto nivel son ms cercanos al humano, ms fciles de aprender y con una sintaxis bien
definida. Permiten a los programadores realizar un desarrollo independiente de la tecnologa que lo ejecute,
liberndolos de los detalles hardware, no usando instrucciones mquina directamente.
Entre sus caractersticas destacan el uso de variables, una sintaxis flexible, un conjunto de instrucciones
mplio y potente e inteligibilidad humana. Deben ser traducidos o compilados y los programas resultantes,
aunque puedan perder eficiencia en comparacin con un desarrollo en ensamblador, es recomendable. El
compilador marcar la eficiencia del cdigo mquina resultante de la traduccin.
Como ejemplos y caractersticas de algunos lenguajes
de alto nivel, se pueden citar Basic, un lenguaje
desarrollado con fines didcticos, pero su evolucin a
Visual Basic lo ha hecho muy popular en el desarrollo
de aplicaciones. MS Office ofrece un intrprete Basic.
C y C++, tambin muy populares, permiten usar
instrucciones de bajo nivel. Son muy usados en el
desarrollo de SO y aplicaciones. En general, los
programas en C obtienen muy buen rendimiento.
Java es un lenguaje que suele ser interpretado, lo que
permite una buena ejecucin en mquinas virtuales
con independencia del hardware y SO.
PHP es tambin un lenguaje interpretado que no precisa compilacin. Fue diseado para aadir
funcionalidad a HTML en la generacin de pginas web dinmicas.
3.2. Objetivo
Pueden identificarse lenguajes de programacin de propsito general, especfico y scripting. Los primeros
pueden utilizarse para programar cualquier tipo de aplicacin mientras que los segundos slo se aplicaran
a problemas particulares como grficos o sonido.

113
Los lenguajes de propsito general, lo que si han marcado es una especializacin, por sus caractersticas
particulares. As, por ejemplo, C y C++ se usan mucho en programacin de SO o Java en aplicaciones
multiplatarfoma.
Los lenguajes de scripting automatizan tareas dentro de otro programa. Son interpretados por el programa
que los ejecuta. Los lenguajes de shell scripting se ejecutan en el shell del SO automatizando tareas de
gestin. Los ms conocidos son los de Unix o Linux como Bash.
Otros lenguajes de scripting son los usados en navegadores, como JavaScript, uno de los ms extendidos.
El esquema actual de trabajo puede resumirse en uso de PHP en servidores, datos en XML y Javascript en
el navegador cliente. PHP, PERL o ASP son lenguajes de script, interpretados directamente.
Los lenguajes de propsito especfico iran un poco ms all de los de scripting. Como ejemplo podra servir
el lenguaje MediaWiki, que actuara entre el lenguaje natural del redactor de un artculo y el lenguaje HTML
final, no utilizndose para otro propsito.
3.3. Paradigma
El paradigma de programacin es la filosofa utilizada en el desarrollo. El tipo de programa a desarrollar
marcar el paradigma ms adecuado a aplicar. Se distinguen los siguientes:
Programacin estructurada. Basada en la definicin de mtodos y funciones que representan subprogramas
lo que facilita su mantenimiento, la reutilizacin de cdigo y el ahorro de lneas de cdigo. No se considera
buena prctica de programacin estructurada el uso de instrucciones incondicionales como GOTO.
Programacin modular. Es la evolucin de la programacin estructurada. La idea subyacente es la misma,
estructurar el desarrollo en mdulos o subrutinas que resuelven problemas complejos y facilitan la
mantenibilidad y reutilizacin de cdigo. Se usan bibliotecas (libreras).
Orientacin a objetos (POO). Es la ms empleada actualmente, aunque su esencia es similar a la
programacin estructurada, organizando el cdigo de forma diferente y orientndose al desarrollo modular.
Un programa se denomina clase y posee una entidad diferenciada. Cada clase, puede ser hija o padre de
otra clase que la ample, es el concepto de herencia, que materializa la reutilizacin masiva de cdigo. Los
elementos de un programa son objetos que se declaran en la ejecucin y pueden interactuar. En el tema 29
se trata ms en detalle. Lenguajes como C++, Java, o Pascal soportan POO. Java adems proporciona un
repositorio de clases llamado API con clases definidas para facilitar la programacin.
Programacin en tiempo real. Es la necesaria para sistemas que tienen especificaciones temporales de
caracter inmediato. Un ejemplo podra ser un sistema de seguridad de una central nuclear que requiera una
respuesta casi instantnea. Un lenguaje de programacin para sistemas de tiempo real debe ofrecer
facilidades para interactuar gilmente con los dispositivos de E/S, tener algn medio de control del tiempo,
establecimiento de umbrales y prioridades temporales y aspectos del estilo.
Estos paradigmas se desarrollan en orden en los siguientes temas. Otros paradigmas que pueden ser
identificados son la programacin imperativa, usada en todos los lenguajes y consiste en detallar los pasos
a dar en la solucin de un problema, en trminos de estados del programa y sentencias de cambio entre
estado. Algunos lenguajes como Basic poseen un carcter imperativo ms marcado. La programacin
funcional define sus instrucciones con funciones matemticas. Ejemplo destacado es LISP.
La programacin declarativa enuncia tareas, dejando al sistema que lo resuelva. Ejemplo es una consulta
SQL. La consulta no especifica cmo buscar la informacin, que se har segn se implemente en la
mquina o servidor. Por fin, la programacin lgica, intenta modelar la lgica humana, con parmetros y
mtricas matemticas. Se aplica en inteligencia artificial y sistemas expertos y lenguaje representativo es
PROLOG
3.4. Traduccin
Como se coment, los lenguajes de programacin pueden ser compilados (ejemplo, C) si se traducen por
completo antes de su ejecucin o interpretados (PHP) si se traducen cuando se ejecutan instruccin a
instruccin o compilados en tiempo de ejecucin (usados en mquinas virtuales).
Por fin, otra clasificacin ms especfica distinguira entre lenguajes tipados y no tipados. Los primeros,
declaran tipos de datos de forma esttica, como C, en que sus variables tienen el mismo tipo de datos
durante la ejecucin. Los lenguajes no tipados manejan variables cuyo tipo de datos puede cambiar, como
JavaScript.

114
TEMA 25. PROGRAMACIN ESTRUCTURADA. ESTRUCTURAS BSICAS. FUNCIONES Y
PROCEDIMIENTOS.

1. INTRODUCCIN
2. PROGRAMACIN ESTRUCTURADA
3. ESTRUCTURAS BSICAS
4. FUNCIONES Y PROCEDIMIENTOS

115
1. INTRODUCCIN
La programacin estructurada estudia la forma de organizar la programacin de manera que establece una
serie de reglas para generar programas legibles y fciles de mantener, obteniendo software de calidad.
2. PROGRAMACIN ESTRUCTURADA
Desde el principio de la programacin, surgi la necesidad de desarrollar cdigo sencillo y sobre todo
mantenible. La programacin estructurada es una forma de desarrollar cdigo de forma clara. Para ello hace
uso de tres estructuras: secuencia, seleccin e iteracin, desaconsejando las estructuras incondicionales
tipo GOTO. El teorema del programa estructurado, demostrado por Bhm-Jacopini, enuncia que todo
programa puede escribirse usando slo esas tres estructuras.
La programacin estructurada presenta las ventajas de ofrecer una estructura diferenciada con un cdigo
ms legible, con bloques de cdigo ms contextuales y ms fciles de documentar, reduce el coste de
mantenimiento y en general los programas reducen la complejidad, obteniendo mayor rendimiento. Como
inconvenientes, citar que todo el programa se presenta en un bloque de cdigo, lo que se puede solucionar
modularizando.
La programacin estructurada propone una tcnica consistente en refinamientos sucesivos, consistentes en
valorar el programa con completitud e ir concretando poco a poco sus parcelas funcionales. Esto puede
lograrse identificando partes funcionales en la estructura del programa. Son los conocidos como recursos
abstractos, y la tcnica de Top-Down, consistente en el planteamiento general del problema e ir
descendiendo paulatinamente en la implementacin de los detalles. La tcnica inversa se llama Bottom-Up.
La programacin estructurada hace un uso exhaustivo del Top-Down para enfatizar la planificacin del
problema globalmente y evitar los detalles de soluciones tangentes al objetivo del programa. Como
inconveniente se puede citar el retraso de las pruebas, ya que es necesario detallar el programa para
empezar la codificacin de subrutinas para obtener resultados. El desarrollo real combina ambas tcnicas.
En general, el planteamiento del problema aconseja el Top-Down y la reutilizacin de cdigo o la necesidad
de prototipos el enfoque Bottom-up.
La evolucin de la programacin estructurada es la modular, que permite escribir subrutinas en mdulos
independientes llamados bibliotecas, aunque se utiliza ms el nombre de libreras, por la traduccin
engaosa del ingls (library).
3. ESTRUCTURAS BSICAS
Como estructuras bsicas de la programacin estructurada se citan la secuencia, bifurcacin, iteracin y
subprogramas.
Secuencia. La estructura secuencial es la estructura natural de cualquier programa. Consiste en la
enumeracin de las instrucciones que debe realizar el programa de forma consecutiva. Cada instruccin se
define con una palabra reservada del lenguaje, que no se puede usar para otros propsitos como nombrar
una constante y suele limitarse con algn identificador como ;. Es habitual despus del limitador introducir
un retorno de carro para mejorar la legibilidad. En algn lenguaje es el salto de carro el mismo limitador.
Bifurcacin. Permite cambiar la secuencia de ejecucin del programa en funcin de condiciones. Las
condiciones pueden anidarse o usar estructuras que seleccionen una serie de operaciones segn el valor
que tome cierto parmetro. Se suelen delimitar con palabras reservadas como BEGIN o END. Estructuras
tpicas se definen con instrucciones IF... THEN... ELSE, CASE...OF o SWITCH.
Iteracin. Implementa bucles, que repiten un proceso hasta que se cumpla una condicin. El proceso puede
repetirse como poco una vez, o ninguna, segn la estructura que se use. Las tres instrucciones habituales
son FOR... TO, WHILE y DO...UNTIL.
Subprogramas y subrutinas. Agrupan cdigo que realiza una operacin, distinguiendo una funcionalidad. La
implementacin incrementa la legibilidad del programa y ofrece la funcionalidad de llamar a la subrutina
siempre que se requiera. La subrutina se declara en algn lugar del programa, en general al principio, tras la
declaracin de variables, constantes y tipos de datos.
Para identificarlas las subrutinas se nombran. Aceptan parmetros de entrada y pueden devolver valores.
Se distinguen dos tipos fundamentales de subrutinas, las funciones y los procedimientos, aunque algunos
lenguajes como C no hacen distinciones. Se exponen en ms detalle en el siguiente punto.
Operaciones comunes dentro de las estructuras es la asignacin y la definicin de constantes y tipos de
datos. La asignacin consiste en dar valores a variables. Cuando se define una variable, se reserva un
espacio en memoria que podr tener cualquier valor, denominado basura. Hasta que no se inicializa la
variable o la constante, su valor no estar controlado. La definicin de constantes y tipos de datos se realiza
segn marque la sintaxis particular de cada lenguaje.

116
4. FUNCIONES Y PROCEDIMIENTOS
Tanto las funciones como los procedimientos son estructuras que ofrecen los lenguajes de programacin
para implementar subprogramas.
Una funcin es una estructura que define una subrutina y devuelve un valor tras su ejecucin. Puede
utilizarse para asignar a una variable ese valor resultado de su ejecucin. Un ejemplo simple podra ser
resultado:=raiz(m); donde resultado sera una variable y raiz una funcin que calculase la raz cuadrada del
nmero n que le sea pasada, en este caso m.
Un procediminento es una subrutina que no devuelve valores a su salida,
simplemente realiza un proceso, como pudiera ser una presentacin en pantalla
o la impresin de un archivo.
Como se ver, en los lenguajes orientados a objetos, las funciones y los
procedimientos reciben el nombre de mtodos y definen las operaciones que
pueden realizarse con los objetos.
Las ventajas de usar subrutinas son la reduccin de redundancia en el cdigo,
mejora de su legibilidad, localizacin de puntos de fallo, reutilizacin de cdigo,
modularidad y ocultacin de los detalles de implementacin, lo que permite que
distintos programadores se centren en su parcela particular de desarrollo y su
trabajo se engrane por medio de interfaces bien definidos.
Las funciones y los procedimientos tienen una estructura definida. Suelen declararse con una cabecera
donde se indica su nombre, para identificarlos, que incluir los datos de entrada y los de salida si se trata de
una funcin. La programacin del cuerpo se realiza siguiendo las normas del lenguaje de programacin. El
valor devuelto por una funcin se indicar con alguna palabra tipo RETURN o parecida.
En el paso de variables entre el programa principal y las subrutinas, puede utilizarse el paso por valor o por
referencia, que ya se han explicado, pero que debe insistirse en su importancia. Lenguajes como C,
permiten incluir un valor o un puntero a la posicin de memoria de la variable a pasar. Siempre es
recomendable utilizar el paso por valor.
Las subrutinas tambin pueden implementar recursividad, invocndose a si mismas. Para un buen
rendimiento, se debe disear de forma que las sucesivas invocaciones vayan afrontando problemas menos
complejos del original y concluir el proceso recursivo con alguna condicin de fin de recursividad, sin la cual
se podra caer en un bucle infinito, lo que colgara el programa.

117
TEMA 26. PROGRAMACIN MODULAR. DISEO DE FUNCIONES. RECURSIVIDAD. LIBRERIAS.

1. INTRODUCCIN
2. PROGRAMACIN MODULAR
3. DISEO DE FUNCIONES
4. RECURSIVIDAD
5. LIBRERIAS

118
1. INTRODUCCIN
La programacin modular puede entenderse como el siguiente paso en la evolucin de la programacin tras
la programacin estructurada. Las diferencias son ms bien formales. Si la programacin estructurada
establece los criterios de programacin para obtener cdigo de mayor calidad en cuanto a mantenimiento y
simplicidad, la programacin modular evoluciona en el sentido de dar ms independencia al cdigo de forma
que pueda atomizarse para facilitar su reutilizacin, lo que tambin redunda en una mejora del
mantenimiento y aligera el cuerpo principal de los programas.
2. PROGRAMACIN MODULAR
La programacin modular es una tcnica de diseo de programas que plantea la codificacin dividindola
en partes sencillas llamadas mdulos que se implementan por separado. La programacin modular estudia
los mdulos desde el punto de vista de su estructura y relacin.
En general se busca que los mdulos de un programa sean funcionales y tengan poca relacin entre ellos,
simplificando los problemas, permitiendo la definicin de equipos de desarrollo independientes y logrando
programas fciles de mantener.
El ensamblado o la comunicacin entre mdulos se realizan definiendo correctamente los interfaces que
sern los que utilicen los usuarios de los mdulos. De esta se obtienen aplicaciones ms robustas, ya que
los errores no se propagan, se quedan limitados al mdulo en que se ha programado. Los mdulos adems
pueden ofrecerse compilados a empresas clientes u otros equipos de desarrollo de forma que los detalles
de la implementacin permanezcan ocultos y smplemente se maneje el interfaz.
Por tanto, aunque ya pueda tenerse una idea de mdulo, puede definirse como una parte de cdigo de un
programa definida en un mbito de visibilidad particular, oculta al resto del programa y mdulos con los que
se relaciona a travs de un interfaz que incluir los resultados que proporcione, si los hubiera.
Por tanto, un mdulo es una caja negra que define las unidades en que se descompone un programa ms o
menos extenso. Su interfaz incluir declaraciones de constantes, variables, procedimientos y funciones. El
cuerpo del mdulo debe incluir el cdigo necesario para cumplir su funcin. En general se refiere como
parte pblica el interfaz del mdulo y parte privada a los detalles de implementacin. Tambin debe
especificarse qu partes del mdulo son exportables a los dems y actuarn como interfaz. Un mdulo
puede importar otros mdulos y exportar funciones o procedimientos.
Por ejemplo, en C no se hacen distinciones entre elementos importables y exportables. El cdigo se usa
como ficheros que se incluyen en la cabecera, exportando todo menos lo marcado como static. Al crear un
mdulo se crea un archivo de cabecera (con extensin .h) que declara los elementos exportables. El archivo
de cdigo (extensin .c), incluye el de cabecera (sintaxis # include [cabecera.h]). C no permite exportar un
elemento sin su implementacin, por lo que debe ser pblica, lo que se soluciona en C++.
El correcto diseo de los mdulos debe tener en cuenta dos aspectos, la independencia funcional y la
cohesin. La independencia funcional consigue que cada mdulo realice su funcin sin apenas interaccin
con otros, simplificando los interfaces. La cohesin se refiere a que la funcin realizada sea lo ms
especfica posible, ofreciendo entonces un bajo acoplamiento, es decir poca dependencia con otros
mdulos, de forma que no se propaguen errores.
Por su parte, el programa principal se centrar en la decisin de qu mdulos utilizar y el control de la
operacin. La organizacin del programa podr entonces jerarquizarse y facilitar la comprensin y
mantenimiento del cdigo ya que se podr medir la profundidad y anchura del programa.
3. DISEO DE FUNCIONES
Una funcin es una rutina que ofrece un valor de salida. En el diseo de funciones, debe tenerse en cuenta
la agrupacin de tareas por operacin funcional, que sea reutilizable, altamente cohesionada (lo ms
especializada posible) y con bajo acoplamiento, que no dependa de otras funciones o procedimientos.
La cabecera de las funciones debe indicar su nombre. El nombre a elegir debe ser lo ms indicativo posible,
para facilitar la comprensin del programa. Del mismo modo, los parmetros o datos que recibir la funcin
deben ser definidos en la cabecera. En general, debe optarse por el paso de variables por valor y evitar en
lo posible el paso por referencia.
Del mismo modo se especificar el valor de salida de la funcin. El cuerpo del cdigo de la funcin debe
seguir las recomendaciones tpicas de buenas costumbres de programacin y documentacin.
4. RECURSIVIDAD
La recursividad consiste en la llamada de un programa a si mismo. Es un recurso tpico que ofrecen los
lenguajes de programacin para implementar operaciones que se repiten varias veces. Para evitar
problemas al implementar recursividad, como pudieran ser bucles infinitos, existen dos condiciones a

119
verificar: que en cada invocacin del programa se reduzca la complejidad del problema y que exista al
menos una condicin de fin de recursividad. Otro tipo de recursividad es la aplicada en algunos tipos de
datos, en los que su definicin incluye el mismo tipo de datos que se est definiendo. Es el caso habitual de
las estructuras dinmicas como listas o colas.
El diseo de un algoritmo recursivo es diferente al de uno iterativo. El algoritmo recursivo soluciona el
problema suponiendo que ya tiene solucionado una parte del problema, con lo que su aplicacin varias
veces va utilizando esas suposiciones hasta llegar a una solucin atmica. En ese momento se realiza el
camino inverso para completar la solucin toal. Un algoritmo iterativo soluciona una parte del problema y
repite el proceso para las dems partes, hasta completar la solucin completa del problema.
Un ejemplo clsico de comparacin entre recursividad e iteratividad es el clculo del factorial de un nmero.
Un algoritmo iterativo operar multiplicando el nmero, sea n, por n-1, etc. El algoritmo recursivo lo har
multiplicando n por el factorial de n-1, momento en que se llamara a s mismo para calcular (n-1)!. Al final
se llegara a 1!=1 y se devolveran las invocaciones hasta completar n!.
Un algoritmo recursivo puede tranformarse en uno iterativo. La eleccin depender del coste computacional,
legibilidad del cdigo u otros. El clculo de la complejidad de un algoritmo iterativo es ms sencillo que el de
uno recursivo porque aumenta el coste en memoria para cada llamada recursiva.
La recursividad es muy utilizada en recorrido de grafos, ordenacin de vectores o algoritmos de fuerza
bruta, en los que se intentan probar todas las soluciones. En este caso se requiren controles si el algoritmo
no converge a la solucin. Son los algoritmos de backtracking.
5. LIBRERIAS
Una biblioteca o librera es un conjunto documentado, probado y, en su caso, compilado, de procedimientos
y funciones invocables desde otro programa. Existen libreras bsicas o comunes que solucionan problemas
habituales y libreras adicionales que realizan tareas ms especficas. Representan el paradigma de la
reutilizacin de cdigo y ofrecen gran facilidad en el desarrollo de software.
Las libreras comunes se dividen en marcos de referencia que son conjuntos de utilidades sobre un tema
concreto. Existen marcos de referencia de matemticas, grficos, etc. Las libreras adicionales pueden ser
de libre distribucin o propietarias.
El nombre de librera es una mala traduccin del trmino ingls original, library, que debe traducirse por
biblioteca, pero habitualmente se usan los dos trminos como sinnimos.
El lenguaje C tiene una biblioteca estndar utilizada por la mayora de programas. Ofrece herramientas de
E/S, operaciones con cadenas y otras. ANSI public las bibliotecas ANSI C junto con su implementacin
estndar. Con respecto a Java es reducida y no ofrece operaciones para interfaces grficos o estructuras
dinmicas, a cambio de mayor facilidad para compilar en distintas plataformas. La biblioteca Java, o API de
Java, es potente y completo y proporciona herramientas de todo tipo para el desarrollo.
Los SO tambin proporcionan libreras. Por ejemplo, Linux permite desarrollar aplicaciones grficas con las
libreras Gnome o KDE. WS proporciona un API, bibliotecas generalmente dinmicas llamadas DLLs. Una
biblioteca de enlace dinmico puede ser enlazada por el programa y accedida en tiempo de ejecucin de
forma que las aplicaciones de interfaz grfico ocupan menos al enlazar a la parte GUI de las DLLs de WS.
La mayor parte de las bibliotecas se encuentran en los archivos Kernell32.dll User32.dll y Gdi32.dll. Algunos
entornos de programacin para WS amplan las bibliotecas y ofrecen interfaces ms amigables. Microsoft
tambin la agrup en marcos de referencia como el MFC Microsoft Fundation Classes.

120
TEMA 27. PROGRAMACIN ORIENTADA A OBJETOS. OBJETOS. CLASES. HERENCIA.
POLIMORFISMOS. LENGUAJES.

1. INTRODUCCIN
2. PROGRAMACIN ORIENTADA A OBJETOS
3. OBJETOS
4. CLASES
5. HERENCIA
6. POLIMORFISMOS
7. LENGUAJES

121
1. INTRODUCCIN
La programacin orientada a objetos, POO, supone un paso ms en el diseo y modularidad del desarrollo
de cdigo. Por un lado, hereda las buenas prcticas de la programacin estructurada y por otro, lleva ms
all la programacin modular. La POO est muy extendida, por ser ideal en el desarrollo de aplicaciones
grficas, lo que ha hecho que algunos lenguajes de programacin se hayan adaptado a esta metodologa.
2. PROGRAMACIN ORIENTADA A OBJETOS
La POO representa un paradigma de programacin que como unidad bsica utiliza objetos, abstracciones
software, para el desarrollo de programas, consiguiendo un alto nivel de abstraccin.
Un objeto puede actuar como agente que presta un servicio, sin ofrecer detalles de su implementacin, con
lo que su relacin con el resto del software es a travs de un interface muy definido. La POO utiliza los
conceptos de encapsulamiento, abstraccin, polimorfismo y herencia. Se populariz en los aos 90 y su uso
es muy extenso.
Como ejemplos de lenguajes con los que se puede programar con objetos se pueden citar Visual Basic,
C++, Object Pascal, y prcticamente la totalidad de lenguajes. Sin embargo, destacan Smalltalk y Java. El
primero se pens con fines educativos y est muy enfocado a objetos.
Java tambin est muy pensado para la POO robusta y flexible. La programacin usar al menos un objeto,
la clase main. Ofrece un API extenso y comparte la mayora de la sintaxis de C++, ms simple y evitando
instrucciones de bajo nivel. Cuenta con un recolector de basura que permite despreocuparse de la
liberacin de memoria de objetos eliminados.
3. OBJETOS
Definir un objeto sin ms es complicado sin una analoga previa. Por tanto, debe pensarse primero en el
caso de la programacin estructurada. En la programacin estructurada existan unos tipos de datos, por
ejemplo enteros y al codificar un programa, se poda hacer uso de esos tipos de datos, definiendo variables.
Por ejemplo, podra definirse una variable llamada contador de esta forma: contador:integer;
Como primera aproximacin podra decirse que un tipo de datos, en POO, se llamar clase, y una variable
de ese tipo de datos, de esa clase, ser un objeto. Siguiendo con la analoga, la variable contador sera un
objeto de la clase integer.
Por tanto, en el contexto de la POO, puede definirse un objeto como una instancia dinmica de una clase.
De esta forma, y teniendo como referencia el ejemplo propuesto ser ms fcil entenderlo. Una clase puede
instanciarse, creando un objeto, al que se asigna un espacio en memoria.
Un objeto se comporta como una entidad independiente con datos propios, capaz de relacionarse con otros
objetos a travs de un interfaz. El concepto de objeto es ms amplio que el de la variable del ejemplo. De
hecho, la variable contador, de tipo entero, termina ah su esencia. Es un entero. Un objeto es ms
complejo, puede incluir funciones, procedimientos (mtodos), variables, etc. Es una especie de contenedor
amplio, cuyas propiedades estarn marcadas por la clase a la que pertenezca.
Un objeto tiene tres caractersticas: identidad, comportamiento y estado. Su identidad es el conjunto de
propiedades que posee por el hecho de definirse. El comportamiento de un objeto se refiere a las acciones
que puede llevar a cabo, que vendrn dadas por sus mtodos, lo que equivale a los procedimientos y
funciones de la programacin estructurada. Los mtodos definen el comportamiento de los objetos y
permiten modificar su estado, es decir la situacin en la que se encuentra (valores de sus variables,
relaciones, etc.).
4. CLASES
Una clase es la definicin abstracta de un objeto. Por tanto, define las propiedades, funciones y forma de
utilizacin de los objetos de su clase. En POO, el diseo de programas se realiza pensando en las
entidades lgicas que lo componen, ms que en la funcin y subrutinas, como en los casos de
programacin estructurada y modular. Se piensa en objetos, que modelan entes reales.
De forma similar a la inicializacin de variables, un objeto, al instanciarse, debe drsele una identidad, lo
que se realiza con un mtodo llamado constructor. Una clase puede tener varios constructores en funcin
de cmo se instancie. En este caso, se denomina sobrecarga y consiste en que varios mtodos de una
clase puedan tener el mismo nombre pero cambien su funcin segn los argumentos.
Para realizar operaciones con un objeto es necesario llamar a sus mtodos y pasarle los parmetros
necesarios. No se aconseja tratar los atributos internos de un objeto directamente. En POO, las operaciones
sobre los datos de un objeto se realizan con mtodos. Pinsese por ejemplo, en una clase automvil, y un
objeto de esa clase llamado micoche. Si se desea conocer la potencia de micoche, se dispondr de un

122
mtodo llamado potencia() que devolver el valor correspondiente. Para cambiar de color micoche habr
otro mtodo, que aceptar un parmetro que indique el nuevo color y actualice el atributo color de micoche.
Los objetos pueden tener atributos o mtodos pblicos y
privados. Las clases atributos estticos que tendrn el mismo
valor para todos los objetos durante la ejecucin. Los atributos
estticos sern accedidos invocando directamente a la clase, no
a travs de objetos. En POO se utilizan dos conceptos:
ocultacin y encapsulamiento. La ocultacin es la propiedad de
los objetos por la que la implementacin de su cdigo no puede
manipularse directamente (es privada), sino que debe hacerse
uso de los mtodos que define el objeto a modo de interfaz.
El encapsulamiento se refiere a la definicin de objetos como entidades aisladas, lo que les otorga
independencia del programa que los use, pudiendo adems exportarse a otros programas.
La ocultacin se logra mediante palabras reservadas que asigan a los atributos y mtodos los permisos
correspondientes. La palabra reservada public permite el acceso a todos los objetos y protected permite
el acceso slo a clases hijas. Antes de destruir o dejar de usar un objeto, debe liberarse la memoria que
utiliza. Para ello los objetos suelen disponer de un mtodo destructor.
5. HERENCIA
Una clase puede crearse a partir de otra clase, lo que implica que la nueva clase tenga las caractersticas
de la clase padre o superclase y adems pueda aadir nuevas funciones o atributos. Este es el concepto de
herencia. Su caracterstica principal es el ahorro de cdigo al permitir crear clases complejas a partir de
otras ya definidas.
Para definir una clase hija, hay que indicar en su cdigo que extiende una superclase. Una clase abstracta
slo sirve para ser heredada, no para tener instancias propias. Si a un objeto se le llama con un mtodo que
no tiene, se consulta ese mtodo en la clase padre. Los mtodos pueden redefinirse en las clases hijas o
aadirles funciones y llamar al de la superclase.
Los lenguajes de programacin incorporan clases primitivas que pueden ser extendidas o usadas por los
programadores gracias a la herencia. La herencia trata las clases de forma jerrquica, ya que todas
descienden de una superclase comn. Estas clases se definen en el API. Leguajes como C ++ permiten
herencia mltiple, esto es, que una clase sea hija de varias superclases. Java slo permite herencia simple.
Si no se desea que un mtodo o atributo se pueda heredar, a la hora de declarar una variable o un mtodo
se usa la palabra reservada private, que impide el acceso a clases hijas y objetos.
6. POLIMORFISMOS
Un objeto que puede tener atributos de varias clases se dice polimrfico. Esta propiedad puede darse
gracias a la herencia, al instanciar el objeto como de la superclase.
Para ejemplificarlo, sea una superclase polgono, definida con un mtodo dibuja(), que presenta en pantalla
el polgono que se le pasa. Si se definen clases hijas de polgono, como crculo o cuadrado, con sus
respectivos mtodos dibuja() al ser llamados se presentar en pantalla el polgono correcto, ya sea un
crculo, un cuadrado u otro, sin ambigedad, ya que se entender que el mtodo a usar es el definido en el
polgono correspondiente. El mtodo dibuja podr declararse e implementarse o no en la superclase. Si no
se implementa, el mtodo ser virtual y se habla entonces de polimorfismo puro.
El polimorfismo puede ser de enlace dinmico o esttico. El dinmico define el tipo de clase que tendr el
objeto en tiempo de ejecucin y el esttico en tiempo de compilacin. Cuando se definen mtodos con el
mismo nombre, distinguidos por el tipo de argumentos que reciben, se habla de sobrecarga.
En el ejemplo anterior, habra sobrecarga si en la clase polgono se definieran dos constructores, uno que
recibiera el dimetro y la posicin para construir un crculo y otro la posicin de dos vrtices y el lado para el
cuadrado.
El mtodo dibujar tendra que implementar las dos posibilidades y ejecutar la que correspondiera segn el
caso. En este caso, si se aadiera un nuevo tipo de polgono no habra que recompilar la superclase como
s ocurrira en caso de sobrecarga.
En C++, el polimorfismo se define en la superclase mediante mtodos virtuales. En otro caso se considera
que hay sobrecarga de la clase hija sobre la clase padre. En caso de usar mtodos virtuales se produce un
enlace dinmico, si no, ser esttico. Java, adems, incorpora el concepto de interfaz, una clase abstracta
sin mtodos, que acta como plantilla para que el programador escriba el cdigo necesario en cada mtodo
definido en la interfaz. Esto permite implementar herencia mltiple y aplicar polimorfismo.

123
7. LENGUAJES
Los lenguajes de programacin orientada a objetos, son aquellos que implementan los conceptos y
caractersticas del paradigma de la POO. Del mismo modo, debe entenderse esta afirmacin en sentido
inverso, y es que, la propia naturaleza de la POO impone unas condiciones de estructura y definicin de los
lenguajes que la implementan.
Aunque, lenguajes no pramente orientados a objetos, pueden ampliarse o presentar facilidades para
trabajar de forma orientada a objetos. Por ejemplo, si un lenguaje no implementa la posibilidad de definir
una clase, o un objeto, no podr considerarse orientado a objetos. Para que sea considerado como tal,
deben proporcionarse los mecanismos o ampliaciones necesarias para manejar los conceptos de la POO.
Del mismo modo, podra darse el caso en que no todos los conceptos que define la POO se implementen
en un determinado lenguaje y que ste no pierda su carcter de lenguaje orientado a objetos.
Como condicin mnima para considerar a un lenguaje de programacin orientado a objetos, podra
establecerse la posibilidad, al menos, de definir tipos de datos abstractos, que puedan contener y efectuarse
operaciones sobre ellos y que puedan ser instanciados.
Suele considerarse al lenguaje Simula (1967) como el primero de los lenguajes orientado a objetos. Simula
se concibi como lenguaje para la creacin de programas de simulacin, donde los objetos representan la
informacin importante. El ejemplo paradigmtico es Smalltalk (1972) con el que se desarroll el grueso de
la teora de POO.
Otros ejemplos de lenguajes orientados a objetos lo suponen ABAP, C++, D, Object Pascal, Eiffel, Java,
JavaScript, Objective-C, Perl, PHPv5 y posteriores, PowerBuilder, Python, Ruby, Visual Basic .NET o Scala
(utilizado por Twitter).
Como se ha comentado, algunos lenguajes no son puramente orientados a objetos y combinan la POO con
otras metodologas. Es el caso de C++, Pascal o OOCOBOL, por ejemplo, a los que se les ha aadido las
funcionalidades necesarias para soportar la POO. Por fin, apuntar que el siguiente escaln en nivel de
abstraccin lo representa la metodologa de Programacin Orientada a Aspectos (POA), todava en
desarrollo.

124
TEMA 28. PROGRAMACIN EN TIEMPO REAL. INTERRUPCIONES. SINCRONIZACIN Y
COMUNICACIN ENTRE TAREAS. LENGUAJES.

1. INTRODUCCIN
2. PROGRAMACIN EN TIEMPO REAL
3. INTERRUPCIONES
4. SINCRONIZACIN Y COMUNICACIN ENTRE TAREAS
5. LENGUAJES

125
1. INTRODUCCIN
La programacin en tiempo real es la que se ocupa de los sistemas que estn sujetos a restricciones
temporales. Es decir los programas que deban trabajar en tiempo real deben ejecutarse en unos lmites de
tiempo estrictos. El software de tiempo real, controla sistemas de misin crtica, como por ejemplo las
medidas a tomar ante una alarma en una central nuclear o el control del sistema antibloqueo de los frenos
de un auto. Si la respuesta no se obtiene a tiempo, se dice que el sistema fracasa.
2. PROGRAMACIN EN TIEMPO REAL
El origen de la programacin en tiempo real se remonta a los primeros tiempos de la simulacin, cuando se
requera que la simulacin siguiera la velocidad del proceso real simulado. Actualmente, aunque el trmino
se asocia a velocidad, lo cierto es que el proceso podr ser ms o menos rpido, lo que si debe garantizar
la programacin en tiempo real es la respuesta a tiempo.
Un sistema es de tiempo real si su respuesta no slo es correcta lgicamente, sino que responde a tiempo.
Esto es debido a que una respuesta fuera de tiempo es intil y puede causar un fallo crtico del sistema
completo, como por ejemplo daarlo o implicar la prdida de vidas humanas.
En este sentido podran diferenciarse sistemas de tiempo real hard y soft. Los sistemas hard imponen
condiciones temporales severas, como por ejemplo, un sistema de control de vuelo, mientras que los soft
permiten cierta flexibilidad en los tiempos, como en un sistema de adquisicin de datos. Tambin se habla
de sistemas real, sistemas hard con respuestas temporales muy cortas, como pueda ser un sistema de
guiado de misiles y sistemas firm, sistemas soft en los que no hay beneficio con respuesta fuera de plazo.
Los criterios de diseo dependern de la aplicacin, pero algunos ejemplos tpicos son la maximizacin del
nmero de plazos cumplidos, lo que en conjunto minimiza el retraso y maximiza el nmero de tareas de alta
prioridad que cumpen plazos.
Debido a las restricciones temporales que debe cumplir la programacin en tiempo real, el diseo del
software est muy condicionado por la arquitectura del hardware, las caractersticas del SO y los requisitos
particulares de la aplicacin. En general un sistema de tiempo real integrar hardware, software y elementos
de BBDD para conseguir sus requisitos funcionales y de rendimiento.
El problema duele ser la decisin de asignar funciones relativas al rendimiento. Por ejemplo, dejar una
respuesta temporal en manos de un programa o implementarlo con hardware. Del mismo modo, los
sistemas de tiempo real suelen dedicarse en exclusiva a una aplicacin para poder cumplir sus requisitos.
Tradicionalmente los sistemas de tiempo real eran militares, pero actualmente son muchos los sistemas
cotidianos que emplean algun tipo de stos sistemas en medicina, control de procesos, automatizacin
industrial, etc. De los aspectos relativos al diseo de tiempo real destacan la coordinacin entre tareas, el
proceso de interrupciones, la E/S, la especificacin de las condiciones de tiempo y la precisin de su BBDD.
La programacin en tiempo real se aplica en el contexto del rendimiento de sistema, en general medido en
trminos temporales o con criterios como la tolerancia a fallos u otros factores crticos. Adems debe
tenerse en cuenta la carga si se controlan varias tareas simultneamente.
Trminos utilizados habitualmente en este entorno son el tiempo de respuesta del sistema o tiempo que
tarda el sistema en responder a un evento, el cambio de contexto, referido al tiempo necesario para
conmutar entre tareas y latencia de la interrupcin o tiempo transcurrido antes de que el cambio sea posible.
En general, un sistema de tiempo real se enfrenta a un flujo continuo de datos de entrada. El diseo debe
asegurar la correcta recepcin de los datos, que no se pierdan y tener en cuenta su asincronicidad. La
fiabilidad suele ser un aspecto crtico del diseo, as como la recuperacin ante fallos y la reinicializacin del
sistema. La monitorizacin y control de los eventos en directo, no suelen tolerar la prdida o errores del
sistema, por lo que la programacin presta especial atencin a mecanismos de restauracin y recuperacin
ante fallos, incorporando frecuentemente redundancias para asegurarlos.
3. INTERRUPCIONES
En el proceso de E/S, las interrupciones son un mecanismo de control fundamental. Como se present,
permiten que las operaciones sean asncronas, evitando la espera activa del estado de los dispositivos
(chequeo constante del estado).
El tratamiento de las interrupciones cobra una especial importancia en sistemas de tiempo real frente a otro
tipo de sistemas, dado que su respuesta es crtica. Del mismo modo, en el caso general, se debe responder
a numerosas interrupciones, por lo que debern establecerse prioridades entre ellas. Debe tenerse en
cuenta el retorno al estado anterior a la interrupcin as como evitar bucles o interbloqueos.
La operativa normal en el manejo de interrupciones, comienza cuando se produce una interrupcin y el flujo
normal de proceso se ve interrumpido por un evento detectado por el hardware. Un evento puede ser

126
cualquier suceso que requiere una atencin inmediata, generado por hardware o software. En ese
momento, el estado del programa se congela y se activa la rutina de servicio correspondiente a la
interrupcin. El estado del programa interrumpido incluye el valor del contador de programa, con la direccin
de la siguiente instruccin, informacin del modo de proceso, prioridad, etc. y el contenido de los registros.
Una vez congelado el estado del programa, se activa, es decir, se pasa el control
a la rutina de servicio de la interrupcin, que bifurca al software apropiado para
su tratamiento. Se ejecuta la rutina y al terminar, se devuelve el control al
programa principal, que ser descongelado.
Cada dispositivo debe controlarse de forma diferente, cada uno requerir una
rutina de servicio distinta para atender sus interrupciones. Para identificar un
dispositivo que interrumpe, pueden usarse distintos mtodos, aunque de los ms
populares es el de interrupciones vectorizadas. ste consiste en un conjunto de
posiciones de memoria, en general contiguas, llamadas vectores de interrupcin,
que mapean las direcciones hardware de los dispositivos y las asocian con sus
rutinas de servicio. Es decir, cada vector debe contener o hacer referencia a la
direccin de la rutina correspondiente.
4. SINCRONIZACIN Y COMUNICACIN ENTRE TAREAS
Cuando un sistema de tiempo real maneja varias tareas, el software y por tanto la programacin deben
suministrar mecanismos de comunicacin entre tareas y asegurar su sincronizacin. Para esto, los SO y los
lenguajes con soporte de tiempo real, usan recursos como los semforos, buzones o mensajes.
Los semforos son mecanismos de control de la sincronizacin y sealizacin. Los mensajes son similares
pero adems pueden contener algn tipo de informacin adicional.
Los semforos de colas son primitivas software para gestionar trfico como colas de tareas en espera de
recursos, acceso a dispositivos, etc. La sincronizacin evita que las tareas o recursos interfieran entre s,
afectando a los procesos independientes que desarrolla cada una.
Los semforos tambin se usan habitualmente en la gestin de buzones, que son almacenados
temporalmente en buffers para controlar el paso de mensajes entre procesos. Si un proceso genera una
informacin, se almacena en un buzn e informa al proceso receptor del nuevo mensaje. Esta operativa es
la forma ms eficiente de trabajo para ciertos sistemas de tiempo real. Algunos de estos suministran una
localizacin para evitar y recibir referencias a los datos del buzn, eliminando la necesidad de transferir los
datos y ahorrar tiempo y sobrecarga.
5. LENGUAJES
Como se ha explicado, un lenguaje de programacin de sistemas de tiempo real debe facilitar la realizacin
de sistemas concurrentes, fiables y puntuales. Las caractersticas ms importantes para realizar programas
en pequea escala son el lxico, los tipos de datos y objetos, instrucciones, subprogramacin y la estructura
de los programas.
Los mtodos y tecnologa usados en la confeccin de otros tipos de sistemas no sirven, en general, en
sistemas de tiempo real, ya que stos exigen mayor fiabilidad y condiciones temporales estrictas. Las
plataformas de desarrollo y ejecucin suelen ser diferentes, resulta difcil hacer pruebas en la plataforma de
ejecucin y medir los tiempos con precisin.
El diseo de un STR se compone de varios aspectos, tales como el funcional (relacin entre valores de
E/S), el concurrente (concurrencia, sincronizacin, comunicacin), el temporal y el arquitectnico
(componentes y relaciones). Cada aspecto se expresa mejor con un tipo de notacin. Por ejemplo, el
aspecto funcional aconseja el uso de Simulink, el diseo detallado de componentes, UML y los aspectos de
concurrencia y arquitectura se modelan mejor con AADL (Analysable Architecture Description Language).
Hay varias clases de lenguajes utilizados en STR, lenguajes ensambladores, flexibles y eficientes, pero
costosos y poco fiables, lenguajes secuenciales (Fortran, C, C++), que precisan un SO para concurrencia y
tiempo real y lenguajes concurrentes como Ada o Java que incluyen concurrencia y tiempo real.
El lenguaje C es muy utilizado para programacin de sistemas. Es estructurado, con bloques, sin un tipado
fuerte, es decir, muy flexible pero a veces poco seguro. No integra concurrencia ni tiempo real, que se
consigue invocando servicios del SO de forma explcita. Tampoco facilita la descomposicin modular ni la
POO. Se puede conseguir con C++, la extensin de C para POO. En general so se usa con STR por las
limitaciones en fiabilidad.
Ada es un lenguaje diseado especficamente para STR empotrados. Ofrece concurrencia, tiempo real y
acceso a hw e interrupciones. Ada deriva de Pascal y por tanto es marcadamente tipado y estructurado en
bloques. Est pensado para la construccin de sistemas grandes y cambiantes. Sus caractersticas

127
habituales de programacin incluyen paquetes (mdulos) y esquemas genricos, extensin de tipos con
herencia, una biblioteca jerrquica e interfaces normalizadas con otros lenguajes (C, Fortran), entre otros.
Ada 2005 es una versin actualizada de Ada, que define un ncleo comn para todas las implementaciones
(core language) y anexos especializados para programacin STR, sistemas de alta integridad, distribuidos,
sistemas de informacin y clculo numrico. Los anexos definen paquetes de biblioteca y mecanismos de
implementacin. No aaden sintaxis ni vocabulario al lenguaje.
Otro lenguaje es SPARK. Permite el uso de tcnicas de anlisis esttico. Es un subconjunto de Ada con
anotaciones. El perfil de Ravenscar define un subconjunto seguro de la parte concurrente de Ada, y los
correspondientes servicios de sistema operativo.
Java puede considerarse un lenguaje concebido para construir sistemas distribuidos, basado en objetos
dinmicos, con concurrencia integrada en el lenguaje y que ofrece bibliotecas de clases (APIs) muy tiles de
forma que el cdigo objeto sea porttil. Java es interpretado por una mquina virtual (JVM) con la filosofa
write once, run everywhere. La definicin original no es adecuada para STR ya que la planificacin de
actividades concurrentes no est bien definida, los mecanismos de sincronizacin son inadecuados, la
gestin dinmica de memoria introduce indeterminismo, la medida del tiempo no es estricta y presenta
problemas con excepciones y concurrencia.
Java para tiempo real (RTSJ) se basa en una mquina virtual extendida para STR. Existe una
implementacin de referencia (TimeSys), otras comerciales (por ejemplo, Jamaica) y versiones en
investigacin como Java para sistemas de alta integridad (HIJA). Los compiladores y mquinas virtuales
para Java de tiempo real no estn todava maduros ya que deben pulirse los aspectos de gestin de
memoria y recogida de basura.
Por su parte, los lenguajes sncronos se basan en un modelo matemtico sencillo, en los que los sucesos
son instantneos y las acciones tambin. Pueden darse sucesos y reacciones simultneos y permiten
realizar un anlisis formal del comportamiento temporal y se compilan a autmatas realizados en lenguajes
de programacin secuenciales (C, Ada sin concurrencia). Ejemplos son Esterel, Lustre, Signal o
Statecharts.

128
TEMA 29. UTILIDADES PARA EL DESARROLLO Y PRUEBA DE PROGRAMAS. COMPILADORES.
INTRPRETES. DEPURADORES.

1. INTRODUCCIN
2. UTILIDADES PARA EL DESARROLLO Y PRUEBA DE PROGRAMAS
3. COMPILADORES
4. INTRPRETES
5. DEPURADORES

129
1. INTRODUCCIN
Una vez realizado el anlisis y diseo de un programa se entra en la etapa de desarrollo y prueba. Los
programas escritos en lenguajes de alto nivel necesitan ser traducidos a lenguaje mquina. Para ello se
usan compiladores e intrpretes. Los entornos actuales de desarrollo son ms complejos que un simple
compilador y ofrecen, entre otras, funcionalidades de depuracin.
2. UTILIDADES PARA EL DESARROLLO Y PRUEBA DE PROGRAMAS
Los lenguajes de programacin se pueden clasificar segn varios criterios. Uno de ellos es el nivel de
abstraccin, distinguindose entonces lenguajes de alto y bajo nivel segn su cercana al lenguaje mquina.
La mayora de lenguajes de desarrollo software son de alto nivel, por lo que requieren ser compilados o
interpretados para traducir su cdigo a cdigo mquina.
Las utilidades para el desarrollo y prueba de programas han sufirdo una gran evolucin desde que
aparecieran los primeros compiladores. De entre ellas se distinguen las herramientas RAD, para el
desarrollo rpido de aplicaciones, que agrupan diversas tcnicas como el desarrollo iterativo, construccion
de prototipos y el uso de herramientas CASE e IDEs.
Las herramientas CASE, Computer Aided Software Engineering, son diversas aplicaciones destinadas a
aumentar la productividad del desarrollo software reduciendo el coste econmico y temporal en todos el
ciclo de vida de desarrollo software. Entre sus caractersticas comunes destacan el control de versiones, la
generacin semiautomtica de cdigo, refactorizacin de cdigo o edicin UML.
Algunas aplicaciones comerciales ofrecen funcionalidades aadidas y suelen presentar interfaces grficos,
aunque existen en modo texto. Las herramientas CASE de interface grfico tambin se conocen como IDE,
Entornos de Desarrollo Integrado, cuya principal caracterstica es el diseo de interfaces grficos, a parte de
las funciones tpicas de edicin, compilacin, depuracin, etc. En sentido estricto, las herramietas CASE e
IDE no son lo mismo, aunque suelen utilizarse ambos trminos indistintamente.
El diseo de interfaces grficos es intuitivo y potente, ya que las herramientas permiten disearlos de forma
similar a un programa de diseo grfico para aadir posteriormente funcionalidad a sus objetos. Esta
metodologa agiliza el desarrollo de prototipos de forma que la programacin pueda centrarse en la
codificacin de la funcionalidad de los objetos y funciones.
Algunos ejemplos de IDES son Visual Basic, Delphi (para Pascal) y Netbeans (para Java). Adems, hay SO
que ofrecen objetos grficos como botones, ventanas, etc. que pueden utilizarse en el IDE correspondiente,
que podr extender sus caractersticas u ofrecer bibliotecas propias como las de Swing de Java.
3. COMPILADORES
Los programas en alto nivel se escriben con herramientas que permiten editar texto. El producto se
denomina cdigo fuente, que debe compilarse para ser traducido cdigo mquina. Un compilador trabaja en
dos fases: anlisis y sntesis: La primera comprueba que la sintaxis del cdigo fuente es correcta y en la
fase se sntesis traduce el cdigo fuente al cdigo objeto.
El anlisis lxico comprueba que todos los smbolos del cdigo fuente pertenecen al lenguaje y por tanto
estn bien escritos. Para su control, se crea una tabla de smbolos, que servir para el anlisis sintctico. El
mdulo del compilador que realiza el anlisis sintctico tambin se conoce como parser.
El parser realiza un anlisis a nivel de sentencia, ms complejo, ya que debe analizar los datos de la tabla
de smbolos que cre el analizador lxico y comprobar la estructura de cada expresin del cdigo fuente. El
analizador semntico detecta la validez en cuanto a significado de las expresiones.
Entre las funciones del analizador semntico estn la comprobacin de la correcta declaracin de variables,
constantes y funciones y que sean accesibles desde su mbito de utilizacin, comprobacin de declaracin
nica de identificadores, de la coherencia de tipos al evaluar expresiones, verificacin del no intento de
modificacin de constantes o la generacin de la tabla de smbolos.
La fase se sntesis traduce el cdigo fuente al cdigo objeto. La traduccin hace uso de una etapa
intermedia en que se genera un cdigo simblico que no corresponde a una mquina real, sino a una
mquina abstracta que define un comportamiento general. El objetivo de este cdigo intermedio es reducir
el nmero de programas necesarios para construir compiladores.
As un compilador posee una primera etapa o front end que traduce a cdigo intermedio y un back end que
traduce al cdigo mquina concreto de que se trate. Cada lenguaje de programacin tiene su front end que
traduce a lenguaje intermedio y cada mquina posee su back end que traduce el lenguaje intermedio a
cdigo objeto, que ser enlazado por programas llamados linkers para poder ejecutarse.

130
La fase de sntesis optimiza el cdigo intermedio, aprovechando propiedades algebraicas de operadores,
reduciendo expresiones comunes o eliminando bucles innecesarios y una vez optimizado, se genera el
cdigo mquina, que podr optimizarse de nuevo en funcin de la mquina concreta.
Los compiladores pueden trabajar realizando en una fase el anlisis y la sntesis para obtener el programa
o en varias etapas leyendo el cdigo fuente varias veces realizando las tareas por partes. Existen tambin
compiladores que optimizan el cdigo resultante sin afectar al funcionamiento del programa, mejorando su
rendimiento. Los compiladores cruzados, por su parte, permiten generar cdigo mquina diferente de la
mquina en la que trabajan. Ejemplos de lenguajes que usan compiladores son C, C++, PASCAL o COBOL.
4. INTRPRETES
Algunos lenguajes de alto nivel no necesitan ser compilados, sino que un intrprete los analiza y ejecuta
simultneamente. El resultado de este interpretacin no se guarda como un programa ejecutable. Los
programas interpretados suelen ser ms lentos que los compilados debido a la necesidad de traducir el
programa mientras se ejecuta, pero a cambio son ms flexibles como entornos de programacin y
depuracin (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del
programa o aadir mdulos completamente nuevos), y permiten ofrecer al programa interpretado un entorno
no dependiente de la mquina donde se ejecuta el intrprete, sino del propio intrprete (lo que se conoce
comnmente como mquina virtual).
Para evitar el problema de la lentitud, sin perder la gran ventaja de poder hacer cdigo multiplataforma, la
mayora de los lenguajes interpretados actuales se denominan hbridos. Dentro de estos hay una gran
variedad de intrpretes dependiendo de la cantidad de cdigo que se precompila y el que se interpreta.
Dentro de esta variedad se pueden distinguir dos tipos de intrpretes hbridos:
- Bytecode: Es un cdigo intermedio ms abstracto que el cdigo mquina. Este cdigo est optimizado y
comprimido. El intrprete, generalmente llamado mquina virtual lo ejecuta ms rpidamente, pero sigue
siendo multiplataforma. Los lenguajes ms comunes que usan bytecode son: PHP, Perl o Python.
- Compiladores Just- In Time. O JIT, Estos compilan el bytecode a cdigo mquina en el momento de la
ejecucin. Java es el ms representativo. El programador crea un cdigo fuente que transforma a bytecode.
Al ejecutarse por primera vez, este es compilado a cdigo mquina por la mquina virtual. Luego se
almacena ya compilado. Sigue siendo multiplataforma porque la mquina virtual se debe instalar en el
ordenador cliente y ella lo adapta a la plataforma deseada.
Aunque el proceso de compilacin o de transformacin a bytecode no de errores, es posible que el
programa resultante s los de. Para facilitar la tarea a los desarrolladores, hay unos programas que permiten
encontrar el error ms fcilmente:
5. DEPURADORES
Hay multitud de situaciones en las que un error no se detecta en el momento de la compilacin. Puede
haber una divisin por cero o intentar acceder a una posicin de memoria no permitida.
Los depuradores ejecutan el programa que da el error y permiten detener el programa en algn punto de
ruptura ya definido y en ese momento, el programador puede observar la situacin de la memoria o las
variables. Tambin puede ejecutar una a una las instrucciones o las funciones, puede insertar cdigo o
hacer que salte alguna instruccin. De esta manera, podr detectar la razn del error.
Al compilar, es necesario indicar que el cdigo resultante debe tener las indicaciones necesarias para el
depurador. Los depuradores se pueden usar para tcnicas de ingeniera inversa cuando se necesite
conocer las instrucciones de un programa.

131
TEMA 30. PRUEBA Y DOCUMENTACIN DE PROGRAMAS. TCNICAS.

1. INTRODUCCIN
2. PRUEBA Y DOCUMENTACIN DE PROGRAMAS
2.1. Verificacin y prueba
2.2. Documentacin
3. TCNICAS
3.1. Pruebas de caja blanca
3.2. Pruebas de caja negra

132
1. INTRODUCCIN
La verificacin de un programa consiste en comprobar que la implementacin de un algoritmo o un cierto
desarrollo responde correctamente o de forma esperada en funcin de la entrada proporcionada. La prueba
de un programa tiene por objetivo la deteccin y eliminacin de errores. Un error puede definirse como la
diferencia entre el resultado de un programa y los esperados.
Al desarrollar un programa, su complejidad y coste obliga a mantenerlo una vez puesto en explotacin. Sin
una adecuada documentacin del desarrollo el mantenimiento puede ser muy costoso. La documentacin
debe incluir las explicaciones necesarias para desarrolladores y mantenedores as como la relativa al
usuario, como manuales y guas.
2. PRUEBA Y DOCUMENTACIN DE PROGRAMAS
La verificacin y prueba de un programa es un trabajo complejo pues evaluarlo por completo antes de su
venta o puesta en marcha puede considerarse imposible. Por tanto debe aprenderse a convivir con el error
y programar de forma que ante errores, se obtenga una respuesta adecuada.
Efectivamente, ante un error, un programa podra responder con un resultado incorrecto, sin advertir del
error, o por ejemplo, cayendo en un bucle infinito, bloqueando el SO o saliendo a l sin ms. Estos
comportamientos no son deseables, puesto que el anlisis del error se complica e indican que un programa
no es robusto. Por tanto, ante una situacin de error, ha de procurarse que un programa se comporte de
forma ordenada, generando un mensajes de error significativos, o bien detectando el error y dando la
oportunidad de corregirlo o continuar. Si un programa se comporta as, se dice que es amigable.
Una vez generado el programa, sus mdulos deben ser claros y fcilmente comprensibles para facilitar el
mantenimiento. El estilo de programacin deseable debe combinar simplicidad y claridad. Como poco, las
tcnicas de documentacin de programas deben abordar la documentacin interna (del cdigo fuente), los
mtodos de declaracin de datos, la construccin de sentencias y las tcnicas de E/S.
2.1. Verificacin y prueba
La verificacin y prueba de software son crticas para garantizar su calidad. La prueba no asegura que el
cdigo est libre de errores, su objetivo es demostrar que existen defectos en el desarrollo. Las tcnicas y
fundamentos de la prueba de programas se orientan a descubrir errores, teniendo en cuenta que un buen
caso de prueba es el que presenta alta probabilidad de descubrir errores y que una prueba tiene xito si
descubre un error.
El desarrollo de la prueba
sigue el esquema de la
figura. Se proporcionan dos
entradas al proceso de
prueba, la configuracin del
sw y una configuracin de
prueba.
La configuracin del software incluye la especificacin de los requisitos, el diseo y el cdigo fuente. La
configuracin de prueba incluye el procedimiento, casos de prueba y resultados esperados. Tras realizar las
pruebas, se evalan los resultados, comparndolos con los esperados. Cuando se descubre un error se da
comienzo a la fase de depuracin.
La fase de depuracin se apoya en tcnicas de prueba, que pueden basarse en la funcin que realice el
programa o en la relacin entre sus mdulos, comprobando que cada uno funciona correctamente. El primer
grupo seran pruebas de caja negra y el segundo las de caja blanca.
2.2. Documentacin
La documentacin de un programa es una parte vital de su desarrollo. Sin ella, la fase de mantenimiento se
complica sobremanera, se limita la vida til del software y se perjudica el desarrollo de nuevas versiones.
La documentacin comienza con la eleccin del nombre de identificadores tales como variables y etiquetas,
la generacin de comentarios y el esquema visual del programa. La eleccin de nombres significativos es
vital para la legibilidad del programa. En cuanto a los comentarios, hay recomendaciones de buenas
prcticas como la inclusin de comentarios de prlogo y descriptivos.
Se recomienda la inclusin de comentarios prologares al principio de cada mdulo que indiquen la funcin
del mdulo, una descripcin del interfaz con algn ejemplo de llamada, descripcin de los argumentos y los
mdulos subordinados. Asimismo debe explicarse la funcin de los datos relevantes como variables,
restricciones, limitaciones e informacin destacable como el diseador, revisor y fechas de modificacin.

133
En el cuerpo del cdigo se incluirn comentarios descriptivos del proceso, de forma que se realice por
bloques ms que por lneas y se recomienda el uso de tabulaciones y espacios para facilitar la lectura.
El estilo en la declaracin de datos es propio de la fase de codificacin y se recomienda estandarizarlo
aunque no se contemple en el lenguaje de programacin. El orden en la declaracin facilita la legibilidad y el
mantenimiento. Del mismo modo, la construccin de sentencias debe ser sencilla y directa, aunque implique
ms instrucciones que penalicen algo la eficiencia. As, algunos lenguajes permiten instrucciones con
muchas operaciones que merman la legibilidad del desarrollo. En lo posible, este estilo debe evitarse.
Las instrucciones pueden simplificarse evitando el uso abusivo de anidacin de bucles, uso de condiciones
complejas, intentar usar comparaciones complementarias (condiciones negativas), uso de parntesis para
clarificar expresiones o uso de espacios para incrementar la legibilidad.
En cuanto al tratamiento de la E/S, en general requerir una organizacin lgica y simple que compruebe
los errores y el formato de la informacin. Buenas prcticas de desarrollo podran ser la validacin de los
datos de entrada, la comprobacin de las posibles combinaciones de entrada, formatos de entrada simples,
uso de indicativos de fin de dato, especificar opciones y lmites, uniformidad de los formatos de entrada,
etiquetado de las salidas y diseo de informes.
3. TCNICAS
3.1. Pruebas de caja blanca
La prueba de software mediante tcnicas de caja blanca se refieren a la prueba de los mdulos internos que
forman el programa. Intentan cubrir al menos una vez las alternativas de cada mdulo, comprobar todas las
decisiones lgicas en las condiciones de verificacin o no (condicin verdadera o falsa), ejecutar los bucles
en sus lmites y comprobar las estructuras internas de datos asegurando su validez.
La importancia de las pruebas de caja blanca radican en que el desarrollo de la ejecucin de un programa
puede utilizar caminos crticos, o que pueden llegar a serlo, que deben ser probados, al menos alguna vez.
Para ello se pueden categorizar este tipo de pruebas en las siguientes:
Prueba del camino bsico. Es una tcnica de caja blanca que permite obtener una medida de la complejidad
lgica del diseo para definir un conjunto de caminos de ejecucin en que se basarn los casos de prueba.
Las pruebas deben garantizar que se ejecuta cada sentencia al menos una vez.
El proceso de realizacin de la prueba del camino bsico comienza con el diagrama de flujo, que sirve para
evaluar la complejidad del programa, lo que permitir elaborar un conjunto de caminos independientes para
definir los casos de prueba que los evalen.
Prueba de flujo de datos. Consiste en seleccionar caminos de prueba segn la definicin y uso de las
variables del programa.
Prueba de la estructura de control. La prueba del camino bsico no cubre todas las exigencias de una
prueba de caja blanca. Para ello, se usan tcnicas de prueba de estructuras de control, con especial
atencin a condiciones y bucles. La prueba de condiciones orienta en la generacin de pruebas adicionales
e intenta discernir si la cobertura de la prueba es sencilla. La prueba de bucles, por su parte, se centra en la
validez de los bucles, bien sean simples o anidados.
A los bucles simples se les debe probar al menos 0, 1, 2, m, n-1, n y n+1 veces, siendo n el nmero mximo
de iteraciones del bucle y m un nmero menor comprendido entre 2 y n-1. En los bucles anidados, el
nmero de pruebas crece geomtricamente con el nivel de anidamiento, con lo cual el nmero de pruebas
es inmanejable. Para ello se intenta probar el bucle ms profundo como si fuera un bucle simple con
condiciones mnimas en los bucles anteriores a l y extender estas pruebas hacia el exteriror.
3.2. Pruebas de caja negra
Las pruebas de caja negra consideran el sistema, el programa, como algo opaco desde el exterior. No
evalan la implementacin interna, sino las respuestas obtenidas en funcin de las entradas. Es decir, son
pruebas sobre el interfaz. Las pruebas se orientan a mostrar que la funcionalidad es correcta y el programa
responde segn lo esperado, con respuestas ntegras y coherentes. Las pruebas de caja negra intentan
encontrar errores en los interfaces, funciones, de estructuras de datos o accesos a BBDD externas y otros
errores de rendimiento, inicializacin y fin. De las tcnicas de caja negra destacan las siguientes.
Particin equivalente. Consiste en dividir el espacio de entradas posibles en clases de datos de los que
derivar los casos de prueba. El objetivo es descubrir errores genricos antes de realizar pruebas ms finas.
Es decir, se intenta reducir el nmero de casos de prueba descubriendo clases de errores.
El diseo de los casos de prueba se basa en la evaluacin de un conjunto de estados vlidos o no para las
condiciones de entrada. En general, una condicin de entrada ser un valor numrico o un rango, un
conjunto de valores relacionados o una condicin lgica. Las clases de equivalencia se pueden definir

134
teniendo en cuenta que si una condicin de entrada especifica un rango o valor especfico, se distinguir
una clase vlida y dos no vlidas. Del mismo modo, si una condicin de entrada especifica un miembro de
un conjunto o es de tipo lgico, se definir una clase de equivalencia vlida y otra no.
Anlisis de valores lmite (AVL). Los errores tienden a darse ms en los lmites de los valores de entrada
que en los valores centrales. Esta es la razn del anlisis de valores lmites, que intenta usar casos de
prueba para stos, de forma similar a la tcnica de la particin equivalente.
As, por ejemplo, si una condicin de entrada especifica un rango entre los valores a y b, se deben disear
pruebas para ambos valores y los inmediatamente superiores e inferiores y lo mismo para el rango de
valores de salida. . Si las estructuras de datos internas tienen lmites preestablecidos (como los arrays), el
caso de prueba comprobar la estructura en sus lmites.
Prueba de comparacin. En aplicaciones crticas se utiliza hw y sw redundante, para garantizar la
disponibilidad del sistema y minimizar el impacto de errores. El sw redundante es desarrollado por distintos
equipos que generan versiones independientes, caso en el que se debe comparar los desarrollos evaluando
cada versin con la misma batera de prueba que garantice la coherencia de los resultados.

135
TEMA 31. LENGUAJE C: CARACTERSTICAS GENERALES. ELEMENTOS DEL LENGUAJE.
ESTRUCTURA DE UN PROGRAMA. FUNCIONES DE LIBRERA Y USUARIO. ENTORNO DE
COMPILACIN. HERRAMIENTAS.

1. INTRODUCCIN
2. LENGUAJE C: CARACTERSTICAS GENERALES
3. ELEMENTOS DEL LENGUAJE
4. ESTRUCTURA DE UN PROGRAMA
5. FUNCIONES DE LIBRERA Y USUARIO
6. ENTORNO DE COMPILACIN
7. HERRAMIENTAS

136
1. INTRODUCCIN
El lenguaje C es una evolucin del lenguaje B, usado para desarrollar UNIX. Es uno de los ms usados y
sirve de base a otros lenguajes a nivel lxico como PHP, Java o C++.
2. LENGUAJE C: CARACTERSTICAS GENERALES
El lenguaje C fue desarrollado en la dcada de los 70 y tuvo gran xito debido a la eficiencia del cdigo que
desarrolla, permitiendo el uso de instrucciones de alto y bajo nivel. A mediados de los 80 ANSI estandariz
el lenguaje y defini sus bibliotecas e ISO lo normaliz en 1990. La evolucin de C es C++, lenguaje que
permite la programacin estructurada, modular y la POO.
Como caractersticas generales de C, destacan el ser un lenguaje de alto nivel, imperativo, de propsito
general, orientado a la programacin de sistemas, portable, flexible y muy expresivo, pudiendo especificar
muchas operaciones en pocas lneas de cdigo. Esta caracterstica aunque potente debe ser mirada con
cuidado porque su abuso puede mermar la legibilidad y por tanto el mantenimiento del cdigo.
Un lenguaje es Turing completo cuando tiene un poder computacional igual a una mquina de Turing. En
este sentido C es un lenguaje Turing completo. Un ejemplo de la potencia de C es la posibilidad de
referenciar una variable por su nombre o un puntero a la misma que indique la direccin de memoria en la
que se encuentra la variable.
El lenguaje C tambin posee desventajas como la poca modularidad, un exceso de flexibilidad que puede
hacer menos disciplinada la programacin y faltas de comprobaciones que pueden derivar en programas
inestables. Parte de estos inconvenientes se solucionan en C++ sin perder potencia ni flexibilidad.
3. ELEMENTOS DEL LENGUAJE
Los elementos del lenguaje C, como en la mayora de lenguajes de alto nivel, pueden distinguirse en
operadores, instrucciones y definicin de variables, constantes, funciones y procedimientos.
Cualquier palabra usada en la sintaxis del lenguaje constituye una palabra reservada que no podr usarse
de otro modo, como pueda ser el nombre de una variable. La definicin de variables se realiza indicando su
tipo (int, char, double, float, short o long) para asignar memoria. Un ejemplo podra ser int switch, que
definira una variable con el nombre switch que slo podr tomar valores de tipo entero. La asignacin de
valores a una variable se hace con el simbolo = seguido del valor a asignar.
Las instrucciones se codifican terminndose en punto y coma. La edicin de cdigo aconseja escribir cada
instruccin en lneas diferentes, usar tabulaciones, etc. para facilitar la legibilidad.
Los operadores bsicos que provee C son aritmticos, de comparacin, lgicos y avanzados. Los
operadores aritmticos son los smbolos tpicos de suma, resta, etc. con sus prioridades habituales,
teniendo en cuenta la evaluacin de parntesis. Los operadores de comparacin tambin son los tpicos,
slo mencionar la diferencia entre = y ==, que puede llevar a confusin. El primero se usa para
asignacin de un valor, en lenguajes como Pascal equivaldra a :=. El igual doble se refiere a la
comparacin. El smbolo = equivale a la lgica not equal. Operadores lgicos son tambin los habituales,
pudiendo usarse && para and lgico y ||para el or lgico. Ejemplos de operadores avanzados son ++
para autoincremento o += para aadir un valor a una variable.
Las instrucciones en C pueden diferenciarse en instrucciones de expresin, de control e instrucciones
compuestas. Las instrucciones de expresin son instrucciones elementales que representan una accin
simple o atmica, pueden entenderse como el tipo de accin ms sencilla que se puede ejecutar en un
programa, consistente en la evaluacin de esa expresin. Ejemplos de este tipo de instruccin sera una
definicin de una variable.
Las instrucciones de control modifican el flujo de ejecucin de un programa. if (a>0) {
Pueden ser de salto condicional y de repeticin.
//instrucciones
Las instrucciones de control de salto condicional como if, else pueden anidarse
} else if(a<0) {
entre llaves que agrupan instrucciones o funciones a ejecutar en el cuerpo de la
instuccin, como en el ejemplo. Una variante de anidamiento if, es la instruccin //instrucciones
switch(){} que selecciona un conjunto de instrucciones en funcin del valor de
cierta condicin y que termina con la sentencia break }

Las instrucciones de repeticin ejecutan cdigo mientras se cumpla una condicin. La instruccin
caracterstica es while(){}, que ejecutar cdigo mientras se de la condicin y su variante do{} while() que
funciona de igual modo con la diferencia que al menos se ejecutar una vez.
Otra instruccin de repeticin caracterstica es for, utilizada para la construccin de bucles en que un
contador controla el nmero de veces que se ejecuta el cdigo incluido en la instruccin.

137
Las instrucciones compuestas se especifican entre llaves y componen un bloque de instrucciones que
contiene una o varias instrucciones de distintos tipos, ya sean de expresin, control u otras compuestas.
Una funcin puede entenderse como un subprograma cuyo cuerpo constituye una instruccin compuesta,
ya que la funcin main especifica un bloque de instrucciones delimitado por llaves.
4. ESTRUCTURA DE UN PROGRAMA
Para describir la estructura de un programa en C se usar un ejemplo. La estructura puede distinguir tres
partes, la cabecera, el cuerpo del programa y las llamadas a subprogramas.
La cabecera indica el nombre del programa y las bibliotecas y subprogramas que utilizar el programa
principal. En el ejemplo mostrado, se utiliza la sentencia #include <stdio.h> que indica que se usar la
biblioteca de funciones bsicas de E/S. Otras bibliotecas tpicas con stdlib.h, math.h, time.h, por ejemplo.
El cuerpo del programa principal comienza con la #include <stdio.h>
definicin del programa como funcin main. Esta
// comentarios, tambin con /* */ para varias lneas
funcin es la que inicia el programa. En este ejemplo,
el cuerpo del programa se compone de una nica Int main () {
instruccin, printf(), de la biblioteca stdio.h que permite
printf(Hola Mundo);
imprimir por pantalla una cadena de caracteres, en
este caso Hola Mundo. }
En el ejemplo se ha incluido un comentario, lo que se realiza con // si ocupa una lnea o con los smbolos /*
para abrir y */ para cerrar el comentario, si son ms de una lnea.
La tercera parte de la estructura de un programa es la llamada a subprogramas, que puede no existir,
aunque en un caso genrico, por modularidad, legibilidad y mantenibilidad es lo habitual. Los subprogramas
pueden ser funciones o procedimientos. Las funciones deben indicar en su comienzo el tipo de datos que
devuelven, como en el ejemplo, mientras los procedimientos comienzan con void, ya que no devuelven
nada, simplemente ejecutan cdigo. Existen versiones de C en que no es necesario comenzar con int.
La llamada a subprogramas se realiza invocando su nombre e introduciendo entre parntesis las variables o
argumentos que usar. El paso de argumentos puede realizarse por referencia o por valor. Si se realiza por
valor, especifica simplemente el valor del argumento. La referencia pasa al subprograma la variable o
argumento en si mismo, con lo cual se pierde parte del control. Siempre que se pueda se aconseja pasar los
argumentos por valor.
Cuando una variable se pasa por referencia, suele realizarse con un puntero, es decir, una estructura de
datos que indica la direccin de memoria donde se almacena el valor de la variable. Un ejemplo bsico del
uso de punteros sera el mostrado en el recuadro.
La definicin de un puntero se hace con un nombre precedido de *, en el ejemplo se declara el int * p
puntero p. Para asignarle la direccin de memoria donde se almacena la variable v se usa &v.
p = &v
Tras esta instruccin el puntero p apuntara a la direccin de memoria que almacena a v.
El uso de punteros es delicado. Al usar el * antes del nombre, se indica la direccin a la que apunta el
puntero, con lo que se podra cambiar el valor de una variable directamente. Siguiendo con el ejemplo, si se
escribiese ahora *p = 8, el valor de v ahora sera 8. Una misma direccin puede ser apuntada por distitntos
punteros o incluso no apuntar a nada, apuntar a NULL. Usar punteros en los argumentos de las funciones,
puede mejorar el rendimiento a costa de incrementar la probabilidad de error. En general no se aconseja.
Los punteros permiten crean estructuras de datos como vectores o matrices directamente. La creacin de
un vector se puede hacer inicializando un puntero con con [n], siendo n el nmero de componentes del
vector. Esta posibilidad ofrece mucha potencia a cambio de inestabilidad, ya que no se controla el
desbordamiento que se produce si se apunta a posiciones de memoria mayores que el tamao del vector.
De forma similar se puede definir una matriz, inicializando con dos asteriscos y luego acceder con [][].
Otra estructura de datos tpica en C es estruct, lo que podra equivaler a un struct registro {
registro. Struct permite crear tipos de datos nuevos. El ejemplo muestra un struct
int campo1,campo2;
llamado registro que poseera tres campos, campo1 y campo2, de tipo entero y
una cadena de 10 caracteres. Paraa acceder a los componentes de la estructura char nombre[10]; }
registro se usa el operador flecha, ->.
La POO se implementa en C++, que permite, por ejemplo, declara una clase con la palabra class y un
nombre, que abrir una llave, se detallar el cdigo de la clase y se cerrar la llave. Para instanciar la clase
y crear un objeto, se opera de forma similar a una variable. Como recordatorio, una clase suele contar con
mtodos constructores de nombre igual al de la clase y la declaracin de variables podr ser public, private
o protected si son accesibles por cualquiera, por nadie o por sus clases hijas, respectivamente. Una variable
ser de tipo static si al usarla se hace referencia a la clase y no al objeto.

138
El acceso a un atributo o mtodo de un objeto se hace con un punto o flecha segn se declare como
puntero o por valor. La herencia en C++ se consigue usando la palabra public seguida de las clases de las
que hereda una dada. En C++ se permite herencia mltiple.
5. FUNCIONES DE LIBRERA Y USUARIO
La palabra librera, es una traduccin de la inglesa library, falso amigo, ya que la traduccin correcta es
biblioteca. Sin embargo su uso habitual la ha instaurado, usndose ambas palabras, librera y biblioteca,
para referirse a repositorios de cdigo y datos que proporcionan servicios a programas independientes, lo
que permite que el cdigo y los datos se compartan.
Algunos programas pueden ser independientes y formar parte de una biblioteca, pero la mayora de sus
componentes no son ejecutables. Ejecutables y bibliotecas se referencian entre s a travs de un proceso
conocido como enlace o link, que suele realizar un programas denominado enlazador o linker.
El lenguaje C no presenta algunos tipos y servicios de otros lenguajes, como el booleano, manejo de
cadenas o memoria dinmica. El entorno de compilacin estndar de C define un conjunto de bibliotecas de
funciones que cubre los servicios elementales. Las interfaces de estos servicios vienen definidas en los
ficheros de cabeceras (header files). El nombre de estos ficheros suele terminar en .h.
Algunos servicios proporcionados por las bibliotecas estndares son la E/S de datos (stdio.h), manejo de
cadenas (string.h), conversin standard (stdlib.h) o rutinas matemticas (math.h). Adicionalmente, los SO
tambin proveen su propio API de herramientas para acceder a recursos del sistema. Si se desarrolla
cdigo portable, estas libreras deben evitarse. Un usuario tambin puede crear sus propias bibliotecas.
El lenguaje C permite crear programas modulares, escribiendo el cdigo fuente en varios archivos, con la
extensin .c. Para ser enlazados por otros, se generar un fichero con el mismo nombre del cdigo fuente
con extensin .h. El archivo principal, por ejemplo, usar #include nombre.h.
6. ENTORNO DE COMPILACIN
Los programas en alto nivel se desarrollan generando un archivo con el cdigo fuente, que para ser
ejecutado en un SO tendr que compilarse y traducirse a cdigo mquina. Un compilador realiza la
traduccin en dos fases: anlisis y sntesis.
El entorno de compilacin de C cuenta con un preprocesador que sirve para definir las constantes y para
incluir en el cdigo fuente las libreras definidas con #include. Esta fase genera un cdigo intermedio, que es
analizado y se traduce a cdigo objeto, que est inconexo hasta que el linker de C lo monte por completo. El
compilador tambin realiza una optimizacin del cdigo, aprovechando posibilidades de simplificacion.
Ejemplos de compiladores de C en Linux, son GNU compiler collection, un conjunto de compiladores para
varios lenguajes de programacin. En este caso, para compilar cdigo fuente se usa el comando gcc con el
formato: gcc [fuente.c] [opciones] [ejecutable]. Ejemplo: gcc fuente.c o ejecutable. La opcin o indica que
se indica el nombre del fichero destino. Si no se especifica se llamar igual que el fuente sin extensin.
GNU compiler Collection permite usar un fichero make, para empaquetar los detalles de la compilacin y
realizar todas las operaciones necesarias con el comando make. Si se usa un depurador (debugger) para
detectar problemas o errores de programacin tambin se podr incluir en el fichero make.
De los depuradores ms conocidos destaca gdb. Se utiliza con la opcin g al compilar y una vez compilado
el programa, el resultado podr analizarse con gdb, para dar solucin a los problemas detectados.
7. HERRAMIENTAS
El desarrollo y depuracin de programas en C, como en la mayora de lenguajes, requiere herramientas
ms potentes que un simple editor de texto. Las necesidades de programacin, en general lo relativo a la
parte grfica, aconseja la utilizacin de entornos de desarrollo integrados o IDEs.
Las herramientas IDE comparten caractersticas de las herramientas CASE, permitiendo editar cdigo,
compilarlo, depurarlo o disear interfaces grficos. El diseo del interfaz grafico puede hacerse de forma
similar a como se hara con un programa de diseo grfico, aadiendo el cdigo necesario para cumplir con
la funcionalidad de sus elementos, desarrollo que consigue ahorrar tiempo y costes.
Entre los ms conocidos se pueden citar C++ builder, Visual C++ o Netbeans. El primero, desarrollado por
Borland, permite utilizar la capacidad de C++, facilitando la programacin de forma grfica. Posee una
versin gratuita llamada Turbo C++, por analoga con Turbo Pascal. Visual C++, est desarrollado por
Microsoft y se orienta al diseo con el API de WS. Netbeans permite programar en C y C++, aunque se
concibi para Java. Funciona con Linux y Windows.

139
TEMA 32. LENGUAJE C: MANIPULACIN DE ESTRUCTURAS DE DATOS DINMICAS Y ESTTICAS.
E/S DE DATOS. GESTIN DE PUNTEROS. PUNTEROS A FUNCIONES.

1. INTRODUCCIN
2. LENGUAJE C: MANIPULACIN DE ESTRUCTURAS DE DATOS DINMICAS Y ESTTICAS
2.1. Manipulacin de estructuras estticas
2.1.1. Arrays y cadenas
2.1.2. Estructuras
2.1.3. Uniones
2.2. Manipulacin de estructuras dinmicas
2.2.1. Listas
2.2.2. rboles
3. ENTRADA Y SALIDA DE DATOS
4. GESTIN DE PUNTEROS
5. PUNTEROS A FUNCIONES

140
1. INTRODUCCIN
C es un lenguaje de programacin flexible y potente. Se trata de un lenguaje de tercera generacin, de alto
nivel, imperativo y muy expresivo.
2. LENGUAJE C: MANIPULACIN DE ESTRUCTURAS DE DATOS DINMICAS Y ESTTICAS
Las estructuras de datos estticas y dinmicas se expusieron respectivamente en los temas 11 y 12. All se
explicaba como en las primeras, se conoce a priori cuntos datos la componen y su tamao, razn por la
cual se reserva un espacio fijo en memoria para su manipulacin. En contraste, el tamao de las estructuras
de datos dinmicas puede variar en tiempo de ejecucin, lo que las hace ms flexibles que las estructuras
estticas, que por contra presentan mayor eficiencia y sencillez de manipulacin.
2.1. Manipulacin de estructuras estticas
2.1.1. Arrays y cadenas
La declaracin de arrays en C sigue la sintaxis tipo nombre [tamao], donde tipo indica el tipo de datos
que contiene el array, su nombre especifica como se nombra y el tamao el nmero de elementos del array.
El tipo de datos no puede ser void (vaco) y el tamao puede omitirse cuando se inicializa el array, cuando
se declara como parmetro formal en una funcin o si se hace referencia a un array declarado en otra parte
del programa. Un ejemplo simple podra ser int alumnos [40].
Los arrays pueden ser multidimensionales, utilizando la sintaxis tipo nombre [tamao1][tamao2][...],
similar a la de un array unidimensional, y donde tamao1 sera la primera dimensin, tamao2 la segunda,
etc. El tamao de la primera dimensin puede omitirse en los mismos casos anteriores. El tamao tambin
puede indicarse con constantes o expresiones de constantes de tipo entero. El lenguaje C no chequea el
lmite del array, por lo que la responsabilidad descansa en el programador.
Para acceder a un elemento de un array, se hace referencia a su nombre y los ndices de la posicin a
consultar entre corchetes. Un subndice puede ser una constante, una variable u otro tipo de expresin. Un
ejemplo de definicin de array bidimensional sera int ajedrez [8][8]. La referencia ajedrez [5][3] dara como
resultado un nmero entero, que por ejemplo representase una ficha.
Una cadena de caracteres es un array unidimensional donde sus elementos son de tipo char. Su sintaxis es
char cadena [longitud], similar a la de un array. Las posiciones de una cadena se indican desde la posicin
0 y existe una ltima posicin ocupada por el carcter null (/0), con el que el lenguaje C finaliza todas las
cadenas de caracteres.
Algunas funciones tiles para manipulacin de arrays y cadenas son size of (tamao), que devuelve el
tamao en bytes de su operando, que si es un array, el resultado ser su tamao. La funcin gets() lee una
cadena de caracteres de la entrada estndar, stdin, y la almacena en la variable especificada, que ser un
puntero a la cadena de caracteres leda. Y la funcin puts(), que escribe una cadena de caracteres en la
salida estndar, stdout, reemplazando el carcter null por el de retorno de carro (\n).
Las funciones especficas de manipulacin de cadenas se agrupan en la biblioteca string.h, que se invoca
con la sentencia # include <string.h>. Algunas de estas funciones son strcat (cadena1, cadena2), para
aadir la cadena2 a cadena1 y devuelve un puntero a cadena1, strchr (cadena, c), que devuelve un puntero
a la primera posicin en que se encuentre el carcter c en la cadena o null si no se encuentra.
La funcin strcmp (cadena1, cadena2) compara la cadena1 con la cadena2 y devuelve un valor menor que
0 si la cadena1 es menor que la 2, 0 si la cadena1 es igual a la 2 y mayor que 0 si la cadena1 es mayor que
la 2. Strcpy (cadena1, cadena2), copia la cadena2, incluyendo el carcter de terminacin nulo, en la
cadena1 y devuelve un puntero a cadena1.
Estos ejemplos de funciones son muy tiles para la programacin, ya que las operaciones con caracteres
son habituales. El resto de la librera puede consultarse en su documentacin y ayuda.
2.1.2. Estructuras
Una estructura es una agrupacin de datos de distinto tipo bajo un mismo nombre. struct alumno {
Permite definir un nuevo tipo de datos que puede manipularse como si fuera un tipo
int edad;
predefinido. En el lenguaje C una estructura slo puede contener declaraciones de
variables. En otros lenguajes las estructuras se conocen como registros. Cada char nombre[50];
elemento de la estructura es un campo o miembro, y su sintaxis responde al ejemplo
}
de la derecha.
En el ejemplo se define una estructura llamada datos y entre llaves se especifica la declaracin de sus
miembros, edad, de tipo entero y nombre, una cadena de 50 caracteres. Para referir un campo de la
estructura, se utiliza la notacin variable.miembro, por ejemplo alumno.nombre.

141
Cuando los elementos de un array son tipo estructura, se dice que se maneja un array estructuras o de
registros, siendo una construccin muy potente. Si se usa la sentencia typedef se pueden usar las
estructuras como un tipo de datos predeterminado. Si la estructura se declara como puntero, se puede usar
el operador -> para acceder a sus miembros.
2.1.3. Uniones
Una unin es una estructura de datos similar a las estruct, pero que puede contener miembros de diferentes
tipos, en una misma zona de memoria, ahorrando as espacio. Para almacenar los miembros de una unin,
se requiere una zona de memoria igual a la que ocupa el miembro mas largo de la unin.
Todos los miembros son almacenados en el mismo espacio de union {
memoria y comienzan en la misma direccin. El valor almacenado
struct { int nombre;
es sobreeescrito cada vez que se asigna un valor al mismo
miembro o a un miembro diferente. long nomina;
La declaracin de una unin sigue la sintaxis de la estructura, }
cambiando "struct" por "unin". La referencia a sus campos se
realiza de forma similar a como se hace con las estructuras. Las struct { char contrato [80];
uniones representan una buena solucin cuando se presentan int duracion;
datos alternativos en una misma estructura, para lo que puede
optarse por definir dos estructuras distintas o una que englobe a }
ambas (union), como se muestra en el ejemplo. }
2.2. Manipulacin de estructuras dinmicas
Las estructuras de datos dinmicas requieren una una asignacin dinmica de memoria, es decir en tiempo
de ejecucin del programa, en vez de reservarlo en tiempo de compilacin. Esta asignacin se realiza en
general con un puntero a la zona de memoria asignada. En C esto se realiza con la funcin malloc(),
incluida en la biblioteca malloc.h, invocada con #include <stdlib.h> o <malloc.h>.
Un ejemplo de sintaxis sera p = malloc(t);, donde malloc(t) asignara un bloque de memoria de t bytes,
devolviendo un puntero que referencia el espacio asignado. Si el espacio de memoria es insuficiente o si t
es 0, la funcin retorna un puntero nulo. Para liberar un bloque de memoria asignado por malloc, se usa la
funcin free(). Ejemplo: free(void *p);
2.2.1. Listas
Una lista, se construye de forma que cada cada elemento apunta o direcciona al siguiente, por lo que
tambin recibe el nombre de lista enlazada. Para construir una lista se definen los elementos que la
componen, en general registros, struct, en lenguaje C, que tendr que contener algn campo que sirva de
referencia al elemento siguiente, en el caso tpico un puntero. En el ejemplo se muestra una definicin
general tpica de elemento de una lista.
Un tipo de lista caracterstico son las pilas y colas, en las typedef struct id tregistro;
que las inserciones y supresiones se hacen en los
struct id{
extremos, bien al principio o al final, como se explic en el
tema 12, siendo entonces una pila una lista organizada en /* declaracin miembros de la estructura */
forma LIFO y las colas en forma FIFO. Si la lista debe
tregistro *siguiente;
tener un orden, al modificar un elemento se obliga a
reordenarla por completo. }
Los punteros o campos que sirvan de enlace en la lista pueden ser ms de uno, pudindose generar listas
enlazadas, doblemente enlazadas o estructuras derivadas ms complejas.
2.2.2. rboles
Un rbol es una estructura jerrquica en la que cada nodo apunta a uno o struct nodo {
ms hijos. El primer nodo se denomina raz y un nodo sin hijos nodo terminal
/* definicin de campos */
o nodo hoja.
nodo *izqdo;
Un rbol binario es una variante de rbol en la que cada nodo posee dos
ramas, que van definindose de froma recursiva, ya que cada subrbol nodo *dcho;
tambin constituye un rbol binario. En el ejemplo de la derecha se muestra
una definicin de rbol binario en C. Si el rbol est vaco, la raz es null, en };
caso contrario, los punteros izquierdo y derecho direccionan cada subrbol. typedef nodo *arbol;
Por fin, la definicin de grafos en C es similar a la de rboles, ya que un grafo no deja de ser un rbol no
jerrquico, en que cada nodo puede ir unido a cualquier otro.

142
3. ENTRADA Y SALIDA DE DATOS
La entrada y salida de datos en el lenguaje C se gestiona con la biblioteca <stdio.h>, que incluye las
instrucciones habituales para estas operaciones por consola. En C cada dispositivo hardware es tratado
como un archivo, de forma que se le puede asociar una secuencia y para el intercambio de informacin
debe realizarse una operacin de apertura.
Para conectar el sistema de E/S con un buffer, se usan punteros a archivos, es decir, un puntero a la
informacin del archivo, tal como nombre, estado o posicin actual. El puntero a un archivo lo identifica en
disco y usa la secuencia asociada para gestionar las funciones de E/S. Para obtener una variable de tipo
puntero a archivo se debe usan sentencias tipo FILE *puntero;.
De las funciones de E/S de datos, destacan printf(), scanf, fopen, fclose o putc(), entre otras. La primera,
printf() formatea una cadena de caracteres y la enva a la salida estndar, aceptando como argumentos un
string y sus opciones. Un ejemplo podra ser printf (El TOTAL es: %d, total), donde el especificador %d
indica un entero con signo y total sera la variable que contiene ese entero. Si el valor de total fuese 120, en
pantalla se vera El TOTAL es: 120. Hay distintas especificadores para cada tipo de datos. Se usa f para
coma flotante e para coma flotante en notacin cientfica o c para carcter.
La funcin scanf se usa para obtencin de datos por consola. La sintaxis invoca la funcin y como
argumentos se espera una variable y opciones. Si se escribe scanf(%d,&opcion), por ejemplo, se asignara
a la variable opcion el valor entero introducido por consola. El smbolo & indica el puntero de la variable.
De forma similar, para obtener una cadena por consola se puede usar la funcin gets() y para un nico
carcter existe la funcin getchar().
La funcin fopen() abre una secuencia para poder ser usada y asociada a un archivo. Su sintaxis es FILE
*fopen(const char *nombre, const char *modo), siendo *nombre un puntero a una cadena de caracteres que
representan un nombre de archivo, pudiendo incluir una especificacin de directorio. La cadena apuntada
por *modo indica el modo de apertura del archivo, bien sea lectura (r), creacin y escritura (w), adicin de
datos (a), apertura y lectura/escritura (r+), creacin y lectura/escritura (w+) o adicin o creacin de un
archivo para lectura/escritura (a+). Para cerrar una secuencia abierta con fopen(), se usa fclose(), que
termina la escritura y realiza un cierre ordenado a nivel de SO, liberando el bloque de control del archivo. Su
sintaxis es int fclose(FILE *fp).
Las funciones putc() y getc() escriben caracteres en un archivo abierto previamente con fopen() en modo
escritura y en modo lectura, respectivamente. Sus sintaxis es: int putc(int car, FILE *pf) y int getc(FILE *pf).
La funcin fputs() escribe una cadena en la secuencia especificada. Su sintaxis es int fputs(const char *cad,
FILE *pf). fgets() lee una cadena de la secuencia especificada hasta el carcter de salto de lnea o hasta
completar una longitud-1 caracteres. La funcin rewind() inicia el indicador de posicin al principio del
archivo indicado en su argumento. Su prototipo es: void rewind(FILE *pf);
4. GESTIN DE PUNTEROS
Un programa escrito en C se estructura en cuatro partes principales: el rea de cdigo con las instrucciones
del programa, el rea de datos estticos, que contiene las variables tipo static y extern, el heap o zona que
almacena datos de control y variables y la pila, una zona de memoria reservada para el almacenamiento
dinmico. El rea de cdigo y la de datos estticos no puede cambiar de tamao en ejecucin.
Un puntero permite almacenar una direccin de memoria para facilitar el acceso aleatorio. En el lenguaje C,
las caractersticas de los punteros pueden resumirse en que son variables que gestionan memoria
dinmica. En general apuntan a direcciones de memoria de la zona heap, aunque pueden apuntar a
posiciones estticas y hacen referencia al tipo de datos de la posicin de memoria a que apuntan, que
recibe el nombre de tipo base o referenciado. Es decir, un puntero apunta al espacio fsico de un dato,
pudiendo apuntar variables, funciones u otras estructuras como otros punteros. En las funciones se suelen
usar para el paso de valores por referencia
Para declarar un puntero se usa el *. En el ejemplo, p es un puntero que apunta a un dato de int *p;
tipo entero. La instruccin p = &a; asignara a p la direccin de memoria de la variable a. Es
p = &a;
decir, el operador & indica la direccin de memoria de una variable.
El uso de punteros en los argumentos de funciones, permite el paso de parmetros por referencia, de forma
que las operaciones que se lleven a cabo en la funcin, modificarn la variable apuntada directamente.
Esto, como se ha explicado, con respecto al paso por valor, evita la duplicidad y mejora el rendimiento, pero
puede hacer perder el control, por tanto no es recomendable. Un puntero tipo void podr tener cualquier tipo
de datos en tiempo de ejecucin usando rdenes de casting como (int). El espacio de memoria requerido
para un puntero, es el nmero de bytes necesarios para especificar una direccin. En la familia de micros
8086, una direccin "near" (direccin con respecto a la direccin base del segmento) necesita 16 bits y una
direccin "far" (direccin segmentada) necesita 32 bits.

143
La gestin de punteros plantea la dificultad de conocr qu se referencia. Pero una vez comprendido bien
su funcionamiento, no debiera ser problemtico su uso. Para ejemplificarlo, el siguiente cdigo presenta dos
versiones de un mismo programa para el listado por pantalla de los elementos de un array. En el primer
caso, se utiliza la variable entera, ind, para referirse directamente a una posicin del array. En el segundo
cdigo, se listan los valores contenidos en la posicin base de memoria del array ms el nmero de posicin
que indica el ndice, ind. Esto se expresa con *(lista+ind), ya que *lista es la direccin de comienzo del array.
#include <stdio.h> #include <stdio.h>
main(){ main(){
static int lista[] = {10, 20, 30, 40, 50}; static int lista[] = {10, 20, 30, 40, 50};
int ind; int ind;
for (ind = 0; ind<5; ind++) printf("%d", lista[ind]); for (ind = 0; ind<5; ind++) printf("%d", *(lista+ind));
} }
Por tanto, *(lista+1) y lista[1] representan el mismo valor, es decir, hay dos formas de referirse al contenido
de una posicin de un array, *(array+posicion) o array[posicion]. Del mismo modo, la asignacin: p = lista es
equivalente a p = &lista[0], siendo p una variable de tipo puntero. Sin embargo, hay que tener en cuenta que
el nombre de un array es una constante y un puntero es una variable, por tanto operaciones como lista = p o
lista++ no seran vlidas.
Otro caso de estudio es el del ejemplo, un array cuyos elementos contengan punteros int *a[10], ente;
o direcciones. En este caso se ha definido un array de 10 posiciones con punteros a
a[0] = &ente;
datos de tipo entero y una variable entera ente. El cdigo asigna al elemento a[0] la
direccin de ente y escribe su contenido. printf("%d", *a[0]);
La situacin parece todava ms compleja si cada elemento del array fuese un puntero a otro array, caso
que se denomina de doble indireccin o punteros a punteros. Su manejo y gestin es ms compleja, pero
confiere al lenguaje C gran potencia y flexibilidad. Para especificar que una variable es un puntero a un
puntero, se utiliza la sintaxis: tipo **variable.
La sintaxis tambin debe ser cuidadosa para no caer en errores. Por ejemplo, hay que tener algunas
precauciones al direccionar un array bidimensional con punteros. Si el direccionamiento se hace con
ndices, la sintaxis tpica es tabla[fila][columna], lo que se puede interpretar como un array cuyos elementos
de una fila son arrays, que forman las columnas.
Si se escribe tabla[1], se elegir la primera posicin del array, es decir, otro array, que representa la primera
columna. Usando punteros, la expresin equivaldra a tabla+1. La posicin tabla[1][0], sera *(tabla+1)+0.
Las direcciones tabla+1 y *(tabla+1) coinciden, pero poseen diferente significado. Por ejemplo, tabla+1+2 se
refiere a la fila tabla[3], mientras *(tabla+1)+2 se refiere al elemento tabla[1][2] y *(*(tabla+1)+2) es el
contenido del elemento tabla[1][2].
5. PUNTEROS A FUNCIONES
Otra posibilidad que permiten los punteros en C es la referencia a funciones, lo que dota al lenguaje de ms
potencia y rendimiento. Un puntero a una funcin bsicamente es una variable que guarda la direccin de
comienzo del subprograma. Al declarar una funcin como puntero, el nombre se escribe entre parntesis.
En la sintaxis del ejemplo, fcn es un puntero a una funcin que acepta como int (*fcn)(int j, char ch);
argumentos un entero (j) y un carcter (ch) y devuelve como resultado un entero.
a=(*fcn) (j,ch);
Con punteros a funciones se pueden crear matrices de los mismos. Para invocarlas tambin hay que poner
su nombre con el * dentro de parntesis como en el ejemplo, en que se aceptan como argumentos j y ch en
la funcin fcn y el resultado se almacena en la variable a.

144
TEMA 33. PROGRAMACIN EN LENGUAJE ENSAMBLADOR. INSTRUCCIONES BSICAS.
FORMATOS. DIRECCIONAMIENTOS.

1. INTRODUCCIN
2. PROGRAMACIN EN LENGUAJE ENSAMBLADOR
3. INSTRUCCIONES BSICAS
3.1. De transferencia
3.2. Aritmticas
3.3. Lgicas
3.4. De desplazamiento
3.5. Constantes, directivas y cadenas
4. FORMATOS
5. DIRECCIONAMIENTOS

145
1. INTRODUCCIN
El lenguaje ensamblador es un lenguaje de programacin de bajo nivel para circuitos integrados tales como
microprocesadores y microcontroladores. Es una representacin simblica del cdigo mquina y como se
vi depende de la arquitectura de la UCP definida por el fabricante.
Es una programacin compleja que se realiza con nemnicos para representar instrucciones, datos,
direcciones de memoria o variables. En general se tiende a no programar directamente en ensamblador.
2. PROGRAMACIN EN LENGUAJE ENSAMBLADOR
El lenguaje ensamblador fue el primer intento de sustituir el lenguaje mquina por otro ms parecido al
lenguaje humano. La idea era sustituir la codificacin binaria de las instrucciones por nemnicos, lo que
supone un incremento de la abstraccin, pero sigue siendo una programacin engorrosa. Esto es debido a
que cada mquina tiene su propio conjunto de instrucciones, y se precisa conocer las particularidades del
hardware y se trabaja directamente con direcciones de memoria y registros, lo que obliga a describir
detalladamente las operaciones de un programa.
A la vez se obtienen cdigos muy
eficientes en cuanto a utilizacin
de memoria y tiempos de
ejecucin si se compara con la
compilacin del programa escrito
en un lenguaje de alto nivel.
Para ejemplificar la programacin
en lenguaje ensamblador se
presenta el ISC y modelo de
programacin del micro 8086 de
Intel, que posee los registros
internos mostrados en la tabla.
Son 14 registros de 16 bits, que
se agrupan en categoras.
Para los registros de datos,
puede hacerse referencia a la
mitad de cada registro con la
denominacin H o L.
As, AH se usa para los 8 bits ms significativos y AL para los menos menos significativos del acumulador,
BH y BL para el registro base, etc. El registro de banderas posee la estructura mostrada.
Consta de 6 flags que indican el estado del
micro y 3 que indican su modo de
funcionamiento. Su significado es:
CF. (Bit 0. Acarreo). Con valor 1 indica acarreo en operaciones aritmticas.
PF. (Bit 2. Paridad). Indica paridad par o impar.
AF. (Bit 4. Acarreo auxiliar). Indica necesidad de ajuste en operaciones aritmticas BCD.
ZF. (Bit 6. Comparacin). Indica con un 1 si el resultado de la ltima operacin ha sido 0.
SF. (Bit 7. Resultado). Almacena el bit de signo del resultado.
TF. (Bit 8. Captura). Usado para el control de la operacin paso a paso en operaciones de debbugging.
IF. (Bit 9. Interrupcin). 1 indica permiso de interrupcin para dispositivos externos.
DF. (Bit 10. Direccin). Indica si una operacin sobre una cadena de caracteres se realiza hacia adelante o
hacia atrs, incrementando o decrementando los registros SI y DI (1 empieza por el final).
OF. (Bit 11. Overflow). Indica con un 1 si ha habido desbordamiento aritmtico.
Un programa se organiza en memoria en cuatro bloques sealados con un registro de segmento y al menos
otro de desplazamiento. Los segmentos, como se indic en el tema 4, son los de cdigo, datos, pila y extra.
El segmento de cdigo contiene las instrucciones del programa, se apunta con el registro CS y se usa como
registro de desplazamiento el IP. El segmento de datos, contiene los datos del programa, es apuntado por el
registro DS y se usan los registros de desplazamiento BX, SI y DI. El segmento de pila, utiliza el registro SS
para puntarlo y los registros de desplazamiento SP o BP. Por fin el segmento de desbordamiento o extra
usa el registro de segmento ES y los registros de desplazamiento BX, SI, o DI.

146
3. INSTRUCCIONES BSICAS
Las instrucciones bsicas en lenguaje ensamblador son similares para la mayora de dispositivos. El ISC
presentado en el Tema 2, aunque un tanto conceptual, ejemplifica bien qu tipo de instrucciones se pueden
encontrar. En ensamblador, existen dos tipos de sentencias: instrucciones y directivas. Las instrucciones se
aplican en tiempo de ejecucin y las directivas, en tiempo de ensamblado.
En un primer intento, las instrucciones bsicas, pueden clasificarse en instrucciones de transferencia de
datos, aritmticas, lgicas y de desplazamiento.
3.1. De transferencia
Las instrucciones de transferencia de datos incluiran instrucciones del tipo MOV, XCHG, PUSH, POP, IN,
OUT, LEA, LDS o LES. Explicar el funcionamiento de todas no tendra demasiado sentido. Lo que si es
importante es conocer su operativa general, por lo que se presentan un par de ejemplos.
La instruccin MOV posee la sintaxis MOV [destino][origen]. Mueve un byte o una palabra del origen al
destino, que ser un registro o una posicin de memoria. El origen ser un registro, una posicin de
memoria o un valor directo. Fuente y destino deben ser del mismo tipo y no pueden moverse datos entre
dos elementos de memoria y tampoco mover un valor directo a un registro de segmento.
Ejemplo: mover el contenido de la posicin de memoria mem1 a la posicin mem2. MOV AX mem1
Como no se puede hacer directamente, se carga en el acumulador el valor de mem1 y
MOV mem2 AX
seguidamente se mueve el valor del acumulador (AX) a mem2:
Instrucciones muy usadas son las de manejo de la pila. Poseen la sintaxis PUSH [origen] y POP [destino].
El origen es la localizacin del dato que se mete en la pila y destino la localizacin del dato que se extrae.
Son ejemplos tpicos seran PUSH (dato), que introducira el valor de la variable dato en la pila y POP AX,
que extraera el valor de la cima de la pila y lo llevara al acumulador.
3.2. Aritmticas
Las instrucciones que representan operaciones aritmticas son las habituales. Internamente trabajarn en
lgica binaria con representaciones en CA2 u otros, como ya se explic. Algunas de estas instrucciones
seran NEG, ADD, ADC, SUB, DEC, SBB, MUL o MOD.
El nemnico de cada instruccin da idea de la operacin que realiza. Por ejemplo NEG cambia el signo del
operando sobre el que acta, ADD suma dos operandos y el resultado lo almacena en el destino, SUB es la
resta, MUL, la multiplicacin, etc.
Ejemplo: RESTO EQ 9 MOD 5; Esta instruccin calcula el mdulo (el resto) de la divisin de 9 entre 5 y el
resultado, 4, quedara almacenado en la variable RESTO.
3.3. Lgicas
Indican operaciones lgicas. Las habituales, NOT, OR, AND, XOR... e incluiran otras, que se podran llamar
relacionales, como EQ (equal), NE (not equal), LT (less than), GT (greater than), etc.
Como ejemplo, supngase que los registros AX y BX contienen respectivamente los valores hexadecimales
FEDC y 1234, la instruccin OR AX BX dejara en AX el resultado (FEFC).
3.4. De desplazamiento
Incluyen instrucciones como SAL, SHL, SAR, SHR, ROL, ROR, etc. Operan sobre registros realizando
desplazamientos de bits.
En el cdigo propuesto como ejemplo, la primera instruccin mueve 2 a CL y la MOV CL 2
segunda desplaza el contenido de AL 2 posiciones a la izquierda y el resultado lo deja
ROL AL CL
almacenado en AL.
3.5. Constantes, directivas y cadenas
Las constantes indican valores que no cambian. Se usan de modo similar a un lenguaje de alto nivel y se
distinguen tres tipos: binarias, numricas y caracteres. En las numricas si se usan nmeros negativos
habr que indicar su signo si son decimales o en CA2 en el caso de binario, octal o hexadecimal. Una
constante hexadecimal con su primer bit a 1 debe anteponer un cero, para que se distinga de una cadena
de caracteres.
Por su parte, las directivas se aplican en tiempo de ensamblado y se utilizan para indicar al ensamblador
qu hacer con instrucciones y datos. El formato de una directiva es: [nombre] Directiva [operandos]
[comentario], donde los corchetes indican partes opcionales, que podrn aparecer en la declaracin o no.
Ejemplo: CR EQU 13; asignar el valor 13 a la constante CR.

147
Otro aspecto importante es el tratamiento de cadenas. Una cadena es una serie de bytes o palabras de
hasta 64 Kb. Por defecto estas instrucciones suponen que la cadena fuente se define en el segmento de
datos y su desplazamiento y la cadena destino en el segmento extra y su desplazamiento.
Los registros SI y DI se actualizan automticamente tras cada operacin. Si los operandos son de tipo byte,
el incremento es 1 y 2 si son de tipo palabra, pudiendo ser adems positivo si la bandera de direccin DF
es 0, o negativo si DF es 1. Instrucciones para el manejo de cadenas son MOVS, MOSVSB o REP. Por
ejemplo, MOVS [destino][origen] transfiere un byte o palabra de la cadena fuente (direccionada por SI) en el
segmento de datos a la cadena destino (direccionada por DI) en el segmento extra.
4. FORMATOS
El formato general de una instruccin en lenguaje [Etiqueta]: INSTRUCCIN [operandos] [comentario]
ensamblador responde al siguiente esquema:
Donde los corchetes indican opciones. En la sintaxis de la instruccin, lo que siempre aparecer ser el
nombre de la instruccin, ya que una instruccin puede no usar operandos. La instruccin se escribir en
una lnea y los campos estarn separados, al menos por un espacio en blanco, como en los ejemplos que
ya se han presentado.
El campo etiqueta corresponde al nombre simblico de la primera posicin de las que ocupa la instruccin y
se usa para romper la secuencia del programa. Este nombre podr tener hasta 31 caracteres de longitud y
se permite usar letras de la A a la Z (las minsculas se convierten a maysculas), nmeros del 0 al 9 y
caracteres especiales, pero el primer carcter no puede ser un dgito, si se usa el punto estar al principio y
no se pueden utilizar palabras reservadas como AX o MOV. Los dos puntos que separan la etiqueta de la
instruccin se usan para declararla.
Esto indica si la referencia a la etiqueta se realiza desde el mismo segmento de cdigo o desde otro
distinto, ya que si se refiere al mismo segmento, el micro solo cargar el IP al bifurcar a esa instruccin,
mientras que si es en otro deber cargar los registros IP y CS al bifurcar.
La longitud de la instruccin es de dos a seis caracteres y representa la accin que ejecutar la instruccin.
El campo comentario es opcional y sirve para documentar el cdigo, al final de cada instruccin. Debe ir
precedido por punto y coma. El campo operandos indica los datos con los que se opera. Podr ser uno, dos
o ningn operando. Si son dos, en general se entiende que el primero es el destino y el segundo el origen.
Los operandos podrn ser registros, direcciones de memoria o constantes. La forma de referenciarlos se
denomina modo de direccionamiento.
5. DIRECCIONAMIENTOS
El direccionamiento es la forma en que se referencia una una posicin de memoria mediante su direccin.
La direccin se obtendr directamente o realizando algn clculo, segn el tipo de direccionamiento. Son:
Direccionamiento inmediato. No hay direccionamiento en sentido estricto, el dato aparece de forma explcita
en la instruccin. Ejemplo: MOVE AX, 0A46Bh; el operando es directamente el valor 0A46Bh.
Direccionamiento absoluto. El campo de direccin de la instruccin contiene la direccin de MP donde se
encuentra el dato o se refiere a un registro. Ejemplos: MOVE AX BX, MOV AX [073Bh]. El operando origen
es el registro BX en el primer caso y en el segundo se encuentra en la direccin de memoria 073Bh.
Direccionamiento indirecto. El CD contiene el registro donde se encuentra la direccin de memoria donde
est el dato. Ejemplo: MOV AX [BX]. Al indicar BX entre corchetes, se significa que BX contiene la direccin
de memoria donde buscar el operando.
Direccionamiento indexado. Se usa un registro y un desplazamiento (que se indicar con un nmero o
registro) que indica el comienzo de la direccin donde se encuentra el operando. Los registros que se
pueden usar son BX y BP. Ejemplo: MOV AX [BX + 4]. El dato se localiza cuatro posiciones mas all de la
direccin indicada por BX.
Los modos de direccionamiento que se refieren a posiciones de memoria, pueden ir precedidos por un
registro de segmento. Como por ejemplo en la forma MOV AX ES: [BX], que movera a AX el contenido de
la direccin indicada por BX en el segmento extra y no en el segmento de datos donde se buscara por
defecto si no se especificara el prefijo de segmento.

148
TEMA 34. SISTEMAS GESTORES DE BBDD. FUNCIONES. COMPONENTES. ARQUITECTURA DE
REFERENCIA Y OPERACIONALES. TIPOS DE SISTEMAS.

1. INTRODUCCIN
2. SISTEMAS GESTORES DE BBDD
3. FUNCIONES
4. COMPONENTES
5. ARQUITECTURA DE REFERENCIA Y OPERACIONALES
5.1. Arquitectura de referencia
5.2. Arquitectura operacional
6. TIPOS DE SISTEMAS
6.1. Segn modelo
6.1.1. Jerrquico
6.1.2. Red
6.1.3. Relacional
6.1.4. Orientado a objetos
6.2. Segn estructura
6.3. Segn usuarios

149
1. INTRODUCCIN
Una de las aplicaciones ms importantes de la informtica es el procesamiento de grandes cantidades de
informacin. Para ello se utilizan los Sistemas Gestores de BBDD, en adelante abreviado como SGBD.
Manejar mucha informacin, es un problema que inicialmente se solucion con ficheros ms o menos
organizados. En principio esto mejora la eficiencia, ya que el fichero est adaptado al programa que lo
utiliza, pero a largo plazo puede resultar una solucin ms lenta si se utiliza otro programa, o si se crea un
nuevo fichero, se pueden generar problemas de coherencia, redundancia y actualizacin. Adems, esta
organizacin impone normas rgidas en la bsqueda y recuperacin de informacin, la relacin entre los
datos no siempre est definida, as como los aspectos de seguridad.
Otros problemas son la dependencia del programa respecto de los datos o el acceso concurrente. Para ello,
estos problemas vienen a solucionarse con los SGBD, cuyos primeros modelos eran jerrquicos o en red.
Actualmente se ha impuesto el modelo relacional y se estn probando con xito modelos orientados a
objetos o datos XML.
2. SISTEMAS GESTORES DE BBDD
Las BBDD surgen para dar solucin a algunos de los problemas que presentan los sistemas de ficheros. Se
estructuran como un conjunto de datos organizados de modo que se controla el almacenamiento de datos
redundantes, y se independizan de los programas que los usan. Esto se consigue almacenando los datos y
sus relaciones, pudindose acceder a los mismos de distintas maneras.
En una BBDD se almacena informacin de entidades. Los datos de cada entidad se denominan atributos.
La informacin de cada entidad se almacena en registros y sus atributos en los campos de cada registro.
Por lo general, conociendo el valor de uno o varios atributos de una entidad se identifica un elemento.
Un conjunto de atributos de una entidad es una superclave de dicha entidad si su valor permite identificar
univocamente cada elemento de la entidad. Si de una superclave no se puede obtener ningn subconjunto
que sea a su vez superclave, esa superclave se denomina candidata. Al disear una BBDD, de las claves
candidatas existentes debe elegirse una como clave principal o primaria y el resto de claves candidatas no
elegidas como primaria se les denominar claves alternativas.
Entre dos entidades existe una referencia si un campo o conjunto de campos de un entidad es clave de la
otra, lo que permite localizar una entidad a partir de otra. Los atributos que forman la clave de la segunda
entidad se denominan clave ajena de la entidad. Para completar la estructura deben establecerse las
relaciones entre entidades, aquello que poseen en comn.
El grado de una relacin representa la participacin en ella de cada entidad. Se distinguen tres tipos de
grado, 1:1, 1:n y n:m. Un grado 1:1 (uno a uno) implica que a cada ocurrencia de una entidad le
corresponde una ocurrencia de la segunda y viceversa, es una relacin biunvoca. El grado 1:n (uno a
muchos) indica que a cada ocurrencia de la primera entidad le pueden corresponder varias ocurrencias de
la segunda y a cada ocurrencia de la segunda le corresponde no ms de una de la primera.
El grado n:m (muchos a muchos) expresa que cada ocurrencia de la primera entidad puede corresponderle
varias ocurrencias de la segunda y viceversa. Las relaciones de grado uno a uno se denominan simples y
las dems complejas.
Una vez definida una BBDD su tratamiento se realiza con un SGBD, que sirve de interface entre los datos y
el programa que hace uso de la misma, ofreciendo independencia de los datos, integridad, seguridad.
Entre los objetivos de un SGBD est la abstraccin, ya que oculta al usuario la organizacin interna de la
informacin. Los requisitos exigibles a un SGBD deben incluir el acceso simultneo de distintos usuarios sin
incoherencias con la posibilidad que cada usuario disponga de una visin particular de la estructura, debe
haber flexibilidad en los mtodos de acceso, garantizarse confidencialidad y seguridad, proveer proteccin
ante fallos con mecanismos de recuperacin y es deseable un interfaz de alto nivel.
Del mismo modo es importante la independencia fsica (el soporte fsico de la BBDD) e independencia
lgica, es decir, la capacidad de modificacin de los datos y sus relaciones, presentar una redundancia
controlada, en que los datos se almacenan una vez, salvo excepciones y permitirse la interrogacin directa
(query), para acceso a los datos de forma conversacional. Otro requisito importante es el tiempo de
respuesta, que debe ser el mnimo posible.
De este modo, un SGBD ofrece ciertas ventajas como son la facilidad para manejar gran cantidad de datos,
la integridad de los mismos y la independencia de datos y aplicaciones que los utilizan. El tiempo de
desarrollo de aplicaciones se ve reducido drsticamente aumentando adems su calidad. Por contra,
pueden sealarse como inconvenientes la complejidad, en general notable, y por tanto la necesidad de
administracin de la misma, lo que puede suponer sobrecostes a considerar.

150
3. FUNCIONES
Un SGBD como software destinado a la creacin, control y manipulacin de la informacin de una BBDD
debe incluir funciones como la descripcin del esquema de la BBDD, permitir su manipulacin y gestin, con
operaciones como la consulta, recuperacin o modificacin, ocultando su estructura fsica al usuario,
proveer un diccionario de datos y como se ha comentado, garantizar la integridad de los datos y la
seguridad del acceso y comunicaciones.
La definicin del esquema de la BBDD debe permitir, una vez diseado, describirlo mediante un conjunto de
instrucciones. Esto se realiza con un lenguaje especfico denominado de definicin de datos (DDL).
El acceso a los datos, en general se realizar con algn lenguaje de alto nivel, que se apoyar en un
lenguaje especfico que recibe el nombre genrico de lenguaje de manipulacin de datos (DML). El DML
puede utilizarse de dos formas, bien incluyendo sentencias DML en programas escritos en lenguaje de alto
nivel, bien mediante programas que contengan exclusivamente sentencias propias de este lenguaje. En el
primer caso, el SGBD incluira un precompilador que traduzca instrucciones DML en otras reconocibles por
el compilador del lenguaje de alto nivel (lenguaje anfitrin).
El acceso a la informacin de forma conversacional se refiere a la inclusin de un interfaz de usuario que
permita introducir sentencias directamente para obtener informacin. La funcin de gestin de ficheros es
realizada por un mdulo gestor encargado de la comunicacin con el SO y que podr incluir funciones de
control de usuarios, recuperacin frente a fallos y otras.
El SGBD adems permitir insertar, modificar, borrar y recuperar con un rendimiento aceptable los datos
solicitados. Por facilitar su estudio, se pueden agrupar las funciones de un SGBD en tres niveles. El primero
incluira las funciones relativas a la gestin de tablas o estructuras de datos en memoria secundaria, que
aunque responsabilidad del SO, existen casos en que se delegan en el SGBD para incrementar el
rendimiento. El segundo nivel agrupara las funciones de gestin de los datos almacenados, los enlaces que
se establecen entre ellos y las estructuras que permitan su tratamiento. En el tercer nivel se encontraran
funciones que permiten la interpretacin y anlisis de las peticiones de usuario y la presentacin de los
datos solicitados.
4. COMPONENTES
A nivel macroscpico o externo, un SGBD podra verse como un sistema compuesto por hardware, datos,
programas y usuarios.
El hardware es el componente fsico donde se almacenan los datos. Ejemplos pueden ser un sistema de
discos redundantes o un servidor dedicado. Los datos constituyen la informacin, que debe ser lo menos
redundante posible. Los programas representan el interfaz entre datos y usuarios, logrando independizar los
aplicaciones y SGBD. Son capaces de gestionar los datos y atender peticiones de consulta de ms de una
aplicacin. Por fin, los usuarios son la parte humana del sistema y se distinguen varios roles, como son los
usuarios, administradores, programadores y otros.
A nivel interno, el SO proporciona las herramientas bsicas de comunicacin con el hardware, mientras los
componentes de un SGBD pueden varian segn las soluciones comerciales y la implementacin que se
haga del mismo. Pero como componentes comunes a todos se pueden identificar mdulos gestores de
archivos, de BBDD y procesadores de consultas.
El mdulo gestor de archivos administra el almacenamiento de los datos en archivos, ya que en el ltimo
escaln, los datos se tratan como ficheros. El gestor de BBDD est encargado de comunicar el resto de
componentes con los archivos proporcionando una interfaz con la BBDD y el procesador de consultas es el
mdulo encargado de traducir las consultas de un lenguaje de alto nivel como SQL, a consultas de bajo
nivel, permitiendo su optimizacin.
Otros componentes identificables en un SGBD son el lenguaje de descripcin del esquema conceptual, el
lenguaje de definicin de esquemas, mdulos de privacidad e integridad, mdulos generadores de informes
y un lenguaje de consulta de propsito general.
El lenguaje de descripcin del esquema conceptual debe ser sencillo y capaz de evaluar la consistencia de
datos, mientras el lenguaje de definicin de esquemas, debe permitir especificar restricciones de privacidad,
seguridad y acceso. Los mdulos de privacidad tienen entre sus funciones la proteccin de la BBDD frente a
accesos no autorizados y el mdulo de integridad proporcionar la integridad y coherencia de los datos.
5. ARQUITECTURA DE REFERENCIA Y OPERACIONALES
Un SGBD es un conjunto de procedimientos, ayudas de documentacin, lenguajes y programas de software
que permite administrar una BBDD. Entre sus objetivos se encuentra proporcionar a los usuarios una visin
abstracta de la informacin, es decir, ocultar los detalles de implementacin permitiendo una recuperacin
eficaz de la informacin.

151
El SGBD proporciona informacin a los usuarios y desarrolladores desde diferentes planos de abstraccin.
De este modo, puede identificarse un nivel fsico, ms cercano al hardware, que establece la forma de
almacenamiento fsico en memoria de los datos, un nivel de visin, en que cada grupo de usuarios accede
slo a la parte de la BBDD que debe usar, permaneciendo oculta la implementacin fsica, y un nivel
conceptual que describira la estructura y organizacin interna del sistema.
5.1. Arquitectura de referencia
La arquitectura de referencia de un SGBD define una BBDD a distintos niveles, buscando la independencia
de datos y aplicaciones. La arquitectura de referencia ms extendida es la definida por ANSI-SPARC que en
su divisin X3 establece que la arquitectura de una BBDD debe poseer tres niveles: interno, conceptual y
externo. Algunos autores dividen el conceptual en dos ya que no existe una herramienta general que
permita definir el modelo conceptual. Los niveles se establecen segn la perspectiva del almacenamiento
fsico, del usuario, y del programador.
El nivel interno describe la estructura fsica interna de la BBDD mediante un esquema que especifica los
detalles de almacenamiento fsico y mtodos de acceso. El nivel interno es propio de cada SGBD y en
principio no puede ser manipulado, al contrario de los otros dos niveles que podrn modificarse con algn
lenguaje de manipulacin de BBDD.
El nivel interno define cmo se almacenn los datos, los ficheros que contienen, sus registros y las rutas de
acceso y es descrito por el SGBD por medio del esquema o vista interna. En este sentido conviene recordar
la diferencia entre los registros fsicos y lgicos, y que un registro fsico puede contener ms de un registro
lgico y elementos descriptivos como la longitud, tipo de registro o punteros. La correspondencia entre
registros lgicos y fsicos se denomina mapeo.
Por tanto, la definicin del nivel interno exige definir los archivos de datos que almacenan la BBDD, los
archivos de ndices, que permiten el acceso a la informacin y un diccionario de datos que almacene la
informacin relativa a la estructura de la BBDD.
El nivel conceptual describe la estructura de la BBDD para
una comunidad de usuarios, mediante un esquema o vista
que oculta los detalles de las estructuras de
almacenamiento describiendo entidades, atributos,
relaciones, operaciones y restricciones. El nivel conceptual
en BBDD relacionales son tablas, registros, relaciones y
consultas. Este nivel corresponde a la estructura de los
datos de la base, obtenida una vez implementados los
requisitos de los usuarios, para los que se ve como una
coleccin de registros lgicos sin especificar su
almacenamiento.
Los ficheros conceptuales no existen fsicamente. A la parte del esquema conceptual de inters para un
usuario final se le denomina subesquema conceptual. De esta forma el esquema conceptual podra
contener datos elementales, datos compuestos que permiten reagrupar campos para describir registros o
asociaciones, relaciones entre ellos e incluso las normas de definicin y restriccin de los datos.
El nivel externo es el nivel ms alto de abstraccin y describe esquemas externos o vistas de usuario. Cada
esquema externo describe la parte de la BBDD que interesa a un grupo de usuarios determinados y oculta
el resto de detalles. Representa la percepcin individual del usuario o programador de la BBDD.
El SGBD extrae los datos requeridos al invocar con una operacin de E/S un registro lgico, a partir de su
registro fsico en la BBDD. Para cada programa de manipulacin se necesita especificar un esquema,
subesquema o vista externa para acceder a los datos. Habr usuarios que puedan acceder a ms de un
esquema externo, que podr ser compartido por varios. As se protege el acceso no autorizado.
Para construir un subesquema hay que tener presente que pueden omitirse algn tipo de registro, o incluso
campos del registro conceptual, cambiarse el orden relativo de los campos del registro y que las relaciones
entre datos pueden omitirse en el esquema conceptual. Para una BBDD especfica, habr un esquema
interno y un nico esquema conceptual, pero puede haber varios esquemas externos, que podrn definirse
para un grupo de usuarios.
La relacin de un SGBD respecto a usuarios y datos debe poseer tres propiedades, permitir la descripcin
de los esquemas de la BD, excepto el conceptual, debe existir correspondencia entre esquemas y deben
estar aislados (independencia de datos).
El aislamiesto o independencia de los datos se refiere tanto a la independencia lgica entre el esquema
lgico y los externos como a la fsica, entre el esquema lgico y el esquema interno.

152
5.2. Arquitectura operacional
La arquitectura de operaciones de un SGBD est basada en mdulos funcionales, entre los que se distingue
un mdulo de anlisis y ejecucin de consultas, de acceso a datos, de transacciones y bloqueos y un
mdulo manejador de recuperacin.
El proceso de acceso a los datos se inicia con un
comando del SGBD. El comando es analizado y a
partir del esquema externo se establece la
correspondencia con el esquema lgico para
construir un plan de actuacin que es optimizado y
ejecutado.
Mediante el esquema interno, se identifican los
datos fsicos a los que acceder y el ejecutor del
plan invoca los mdulos de acceso a datos, que
usan los gestores de buffers y de espacio para
acceder a los datos de forma eficiente.
Todo el proceso se apoya en un manejador de transacciones y de bloqueos encargados de mantener la
coherencia. Tambin existe un manejador de recuperacin que permite mantener la coherencia de los datos
cuando se producen interrupciones del servicio.
6. TIPOS DE SISTEMAS
El criterio tradicional de clasificacin de BBDD ha sido su modelo, identificndose entonces sistemas
jerrquicos, en red y relacionales. Otros criterios de clasificacin son su estructura o sistemas actuales en
proceso de prueba, como se exponen en los siguientes apartados.
6.1. Segn modelo
6.1.1. Jerrquico
Las primeras BBDD se implementaban usando un modelo jerrquico, con estructura de rbol con relaciones
de uno a muchos. Los registros o segmentos siguen una organizacin jerrquica, de forma que al eliminar
un nodo padre se deben eliminar los nodos hijos. Este modelo es utilizado actualmente en algunas BBDD
como el sistema DNS. Tambin los ficheros XML presentan una estructura similar presentando utilidades de
recorrido parecidas a las de stas BBDD. Comparte adems, limitaciones de descripcin de relaciones
complejas, ya que un elemento slo se relaciona con un padre.
Las BBDD jerrquicas son navegacionales. Sus operaciones
seleccionan objetos por posicin lgica en relacin al ltimo
segmento accedido, lo que da lugar a limitaciones como la
imposibilidad de relaciones complejas de muchos a muchos y la
conveniencia de usar lenguajes de manipulacin fuertemente
navegacionales. Las relaciones suelen implementarse con punteros.
Las BBDD jerrquicas generan estructuras estables y de gran
rendimiento en casos de aplicaciones que manejen un gran volumen
de informacin con datos muy compartidos.
6.1.2. Red
El modelo jerrquico evolucion al modelo de red, que presenta forma de malla donde un hijo puede tener
varios padres, actualmente en desuso. Representa otro modelo tambin conocido como CODASYL, en que
se permiten otros tipos de relaciones, aunque, se distingue entre BBDD en red simple (no permite
relaciones muchos a muchos, caso tpico) y BBDD en red compleja. Cualquier sistema es representable
como una BBDD en red, que al igual que en el caso jerrquico requieren lenguajes navegacionales.
Las estructuras de datos distinguen registros, ficheros y conjuntos
que permiten relaciones de uno a muchos. Representa registros
propietarios y miembros. Los tipos de indicadores de posicin
pueden ser respecto a registros y respecto a sets. La representacin
de relaciones muchos a muchos, es indirecta al descomponerse en
relaciones de uno a muchos con registros puente.

En el ejemplo de la figura, cada recuadro se referira a un registro. El conjunto de registros del mismo nivel
podran agruparse en ficheros, por ejemplo Vendedores={vendedor1,vendedor2} y los conjuntos o sets
podran combinar distintos conceptos, por ejemplo Tienda_Vendedor, Vendedor_Articulo, etc.

153
6.1.3. Relacional
Las BBDD evolucionaron hacia el modelo relacional concebido por Codd, basado en la teora de relaciones
y que pretende obtener mayor flexibilidad y rigor en el tratamiento de datos. Define una estructura nica, la
relacin, dependiente de los nombres de atributo, cada uno con un dominio y utiliza como operadores
lenguajes de especificacin, no navegacionales, en donde se indica qu se quiere obtener, no cmo. El
modelo relacional es el ms usado y en el que estn basados los SGBD ms potentes de la actualidad,
como puedan ser Oracle o SQL Server.
El modelo relacional se estudia en detalle en los temas 37 y 38. Por tanto, adelantar que se estructura en
varias tablas con una serie de registros formados por columnas o campos con el mimo tipo de datos para
todos los registros. Adems, todos los registros de una tabla tienen el mismo nmero de columnas. La
esencia del modelo es imponer restricciones a las tablas para que puedan tratarse con relaciones
matemticas, de ah su nombre y que a las tablas de una BBDD relacional se les llame relaciones.
La informacin puede guardarse en cualquier orden y se acceder mediante consultas especificadas en un
lenguaje dado, en general SQL. Se permiten restricciones como por ejemplo una clave principal nica o
claves forneas que apunten a registros de otra tabla. Una BBDD relacional correcta debe evitar
redundancias, para lo que se define segn formas normales, que aconsejan la no existencia de campos con
mltiples valores en un registro y que todo campo del registro debe depender total y exclusivamente de la
clave y no de otro campo.
El modelo relacional es el ms extendido en el diseo y gestin de BBDD por presentar una
conceptualizacin sencilla y un lenguaje de definicin y manipulacin de datos potente y flexible.
6.1.4. Orientado a objetos
Este modelo ampla el relacional para integrar los lenguajes de POO y la complejidad de los nuevos
desarrollos de aplicaciones, incorporando caractersticas como herencia o polimorfismo. El grupo ODMG,
Open Database Management Group, desarrolla el estndar y el modelo de objetos para persistencia, que
especifica cmo y qu elementos deben definirse para conseguirlo. Se apoya en el lenguaje ODL de
definicin de objetos. Existen modelos hbridos, sistemas objeto-relacionales, como pueden ser Oracle o
SQL3 y capas de persistencia que mapean objetos sobre estructuras relacionales conocidos como ORM,
Object Relational Mapping, caso de Hibernate en Java o Zope en phyton.
En la estructura de una BBDD orientada a objetos se distinguen los objetos, que pertenecen a un tipo y
poseen un identificador nico y los literales, que no tienen identificador y estn embebidos en los objetos.
Las BBDD son navegacionales y se accede mediante OQL (Object Query Languaje), que obliga a la
manipulacin mediante los mtodos definidos en los objetos.
6.2. Segn estructura
Segn su estructura, los tipos de SGBD se diferencian en centralizados, cliente-servidor, paralelos y
distribuidos. Los sistemas centralizados se ejecutan en un nico equipo, no existe paralelizacin y la gestin
y visualizacin de datos se realiza en la misma mquina. En general pueden atender a varios usuarios
simultneamente. Los sistemas cliente-servidor presentan el interface en el lado del cliente y el servidor
provee el acceso a los datos, mientras una estructura paralela consta de varios procesadores y discos
trabajando en paralelo.
Por su parte, los sistemas distribuidos se estructuran en mquinas distantes conectadas en red,
compartiendo un esquema comn con transacciones locales y globales. En estos sistemas, la BBDD real y
el software del SGBD pueden estar localizados en distintos lugares de una red. Los SGBD distribuidos
homogneos usan el mismo SGBD en cada localizacin. Una tendencia actual es crear sw para tener
acceso a varias BBDD autnomas preexistentes almacenadas en SGBD distribuidos heterogneos, dando
lugar a lo que se conoce como SGBD federados o sistemas multibase de datos en los que los SGBD
participantes tienen cierto grado de autonoma local.
6.3. Segn usuarios
Atendiendo al nmero de usuarios a los que da servicio el sistema, los SGBD pueden clasificarse en
sistemas monousuario y multiusuario.Los sistemas monousuario slo atienden peticiones de un nico
usuario a la vez, siendo tpico de sistemas tipo PC. Los sistemas multiusuario, por su parte permiten atender
peticiones de varios usuarios simultneamente y son la mayor parte de los SGBD.
Por fin, tambin podran clasificarse los SGBD en aquellos de propsito general o especfico. La diferencia
suele estar en los requisitos de rendimiento que obligan a un diseo e implementacin de SGBD especficos
para aplicaciones crticas, que no tienen cabida en un contexto general, como puedan ser aplicaciones de
bolsa, de reservas areas u otros sistemas de procesamiento de transacciones en lnea (OLTP), que deben
atender un gran nmero de transacciones concurrentes sin excesivos retrasos.

154
TEMA 35. LA DEFINICIN DE DATOS. NIVELES DE DESCRIPCIN. LENGUAJES. DICCIONARIO DE
DATOS.

1. INTRODUCCIN
2. LA DEFINICIN DE DATOS
2.1. Jerrquico
2.2. Red
2.3. Relacional
2.4. Orientado a objetos
3. NIVELES DE DESCRIPCIN
3.1. Nivel de Arquitectura
3.2. Nivel de Datos
4. LENGUAJES
4.1. Jerrquico
4.2. NDL
4.3. SQL
4.4. XSD
5. DICCIONARIO DE DATOS

155
1. INTRODUCCIN
La definicin de datos desde el punto de vista de los SGBD incluye la definicin del concepto y sus
diferentes niveles de descripcin, de SGBD y de modelado. La implementacin de estos conceptos se
realiza con lenguajes de definicin de cada modelo, en particular el relacional. Los modelos jerrquico y en
red son menos utilizados, aunque poseen gran utilidad didctica. El modelo orientado a objetos tambin
resulta til para explicar los modelos de mapeo de persistencia de objetos.
2. LA DEFINICIN DE DATOS
El objetivo de la definicin de datos es especificar la estructura de una BBDD que soporte un modelo
conceptual concreto. Esto se hace detallando sus componentes, en particular los elementos que componen
la BBDD, su estructura, relaciones, reglas de integridad, controles de acceso, caractersticas fsicas y vista
de cada usuario. La definicin se realiza con los modelos de datos que se pasan a describir.
2.1. Jerrquico
Compuesto por una serie de registros bsicos (segmentos) que se relacionan con otros segmentos,
formando una estructura de rbol. El conjunto de los rboles de diferentes tipos definidos en el sistema
forma la BBDD.
2.2. Red
Compuesto por una serie de registros de datos. Los registros se almacenan en ficheros, por tipos,
conjuntos o sets, que relacionan los registros uno a uno o uno a varios.
2.3. Relacional
Es el modelo ms extendido. Se estructura con dos
elementos, la tupla y la relacin.
Las tuplas se relacionan en conjuntos llamados relaciones.
Una tupla puede estar en una nica relacin. Las relaciones
pueden representarse en forma de tabla, en la que cada fila
representa una tupla, como en el ejemplo.
2.4. Orientado a objetos
El modelo de datos orientado a objetos encapsula mtodos o procedimientos y datos en una unidad que se
denomina objeto. Los objetos a su vez se agrupan en clases. Un objeto puede contener enlaces a otros
objetos o estar compuesto por ellos. En una BBDD orientada a objetos, puede accederse a travs de un
sistema gestor y almacenarse en disco directamente.
3. NIVELES DE DESCRIPCIN
Una vez elegido el modelo de datos, su descripcin puede realizarse a distintos niveles. Uno de los
objetivos es abstraer al usuario el detalle de la implementacin. Esto se consigue organizando su estructura
en niveles, basados principalmente en dos criterios, la arquitectura de la BBDD y el modelado de los datos.
La ventaja de esta organizacin es poder realizar cambios a un nivel sin afectar al resto, es decir, de forma
transparente (por ejemplo al ampliar la capacidad de almacenamiento).
3.1. Nivel de Arquitectura
La arquitectura ms estandarizada para la definicin de niveles es la ANSI/X3/SPARC, que divide el SGBD
en tres niveles: interno, conceptual y externo.
Nivel interno. Es el nivel ms bajo de abstraccin. Describe cmo se almacenan fsicamente los datos:
tamao de bloques, posicin de registros, unidades fsicas de almacenamiento, ndice, etc.
Nivel conceptual. Define qu datos reales estn almacenados y sus relaciones (limitaciones de integridad,
relaciones entre registros, etc.). A nivel conceptual se incluyen todos los datos que contendr el SGBD.
Nivel externo. Es el de abstraccin ms alto y define para cada usuario un subesquema de la BBDD,
llamado externo, en funcin del perfil del usuario.
3.2. Nivel de Datos
A nivel de datos se persigue conocer qu datos almacenar el SGBD en cuestin. El modelado de datos
tambin se organiza en 3 niveles de abstraccin: conceptual, lgico y fsico.
Nivel conceptual. Define las reglas del sistema en estudio y el modelo de los datos para la funcionalidad
buscada. Se usan herramientas como el esquema entidad-relacin.

156
Nivel lgico. Expresa las reglas del modelo conceptual con herramientas concretas ajustadas a uno de los
modelos de BBDD. Por ejemplo, modelo lgico relacional si se ha elegido un SGBD relacional
Nivel fsico. Se definen los datos en funcin de los tres niveles de arquitectura del SGBD. Se adapta el
modelo lgico a las caractersticas del sistema que lo va a soportar.
4. LENGUAJES
Cada nivel de descripcin de datos hace preciso un lenguaje para su definicin fsica y estructural. A nivel
de arquitectura se distinguen los siguientes lenguajes.
Nivel interno y conceptual. Todos los SGBD deben poseer un lenguaje para la definicin fsica de los datos.
No existe una separacin real entre el nivel interno y el conceptual.
Nivel externo. El nivel externo presenta su lenguaje especfico. Para el modelo de datos jerrquico es BCP
(Bloque de especificacin de programa), en el modelo en red se usan subesquemas y en el relacional (SQL)
se usa la definicin de vistas y tablespaces.
Desde la perspectiva de la descripcin de datos, se usan los siguientes lenguajes:
Nivel conceptual. Se especifica mediante el modelo entidad-relacin
Nivel lgico. Los sistemas relacionales ofrecen su esquema lgico relacional. Para el modelo en red se usa
el diagrama de estructura de datos y para el modelo jerrquico diagramas de Bachman, que tambin
pueden ser usados para el modelo en red.
Nivel fsico. Cada modelo de datos usa un lenguaje. Por ejemplo, el modelo relacional SQL, o el modelo en
red que usa NDL.
4.1. Jerrquico
La definicin de datos con criterio del modelo DBNAME = GestionFacturas
jerrquico se basa en segmentos (el
SEG NAME = Factura, BYTES=12
equivalente a las tuplas del modelo relacional)
y rboles, que definen la relacin entre FIELD NAME=CodigoCliente,BYTES 4, START 1
segmentos. Se definen a la vez, como en el
ejemplo de la derecha. FIELD NAME=Nombre,BYTES 8, START
SEG NAME = Importe, PARENT=Factura, BYTES 8
Los controles de acceso se realizan
autorizando el acceso a un rbol concreto. FIELD NAME=Importe, BYTES 8, START 1
4.2. NDL
NDL (Network Database Languaje) es SCHEMA Name=GestionFacturas
un lenguaje de definicin de datos del
RECORD NAME is Factura;
modelo en Red, definido por ANSI.
Otro estndar ISO para NDL es el ISO DUPLICATES NOT ALLOWED FOR codigo IN Factura.
8907:1987. Deriva del trabajo de
definicin del modelo en red de un RECORD NAME IS CodClien; codigo TYPE IS CHARACTER 32.
grupo de trabajo llamado CODASYL y RECORD NAME IS Nombre; nombre TYPE IS CHARACTER 64.
prcticamente est en deususo.
RECORD NAME IS Importe; importe TYPE IS CHARACTER 64.
Los elementos de NDL son el registro
(similar a la tupla SQL), el fichero SET NAME IS Cliente;
(conjunto de registros) y el Set OWNER IS Factura
(relaciona registros). A la derecha se
muestra un ejemplo similar al anterior. MEMBER IS Nombre

4.3. SQL
Los elementos que integran una BBDD relacional son tuplas y relaciones. En SQL las tablas definen la
relacin y los campos de las tuplas que la componen. Se realiza con la sentencia:
CREATE TABLE NombreRelacin (definicion CampoTupla1, definicion CampoTupla2)
La integridad y definicin de relaciones cuenta con recursos como claves ajenas, claves primarias y
disparadores. Las claves ajenas y primarias se incluyen como definicin de las tablas.
Los disparadores consisten en la verificacin de una PRIMARY KEY Campos
serie de condiciones y ejecucin de ciertas acciones
FOREIGN KEY NombreClave REFERENCE Tabla
en respuesta a eventos de la BBDD.

157
Para definir los disparadores se usa el lenguaje de manipulacin de datos o DML. SQL define un
sublenguaje de control de acceso, DCL, que permite asignar uno o varios permisos (insercin, borrado,
modificacin) a ciertos recursos (tablas, columnas, etc.).
Las vistas de usuario, representan la GRANT Permiso ON recurso TO usuarios [with grant option]
posibilidad de definicin de esquemas
CREATE VIEW nombreVista AS ConsultaSeleccin
externos que faciliten la consulta de datos.
La sintaxis de permisos y vistas es la mostrada en el recuadro. Algunos SGBD permiten la creacin de
Tablespaces o espacios de usuario para la definicin de esquemas externos.
4.4. XSD
XML, es un lenguaje de marcas extensible, por sus siglas en ingls. XSD es un lenguaje de definicin de
datos basado en XML (XML Schema Definition). XML representa una estructura de datos, muy usada para
el intercambio de datos entre aplicaciones.
XSD permite definir <?xml version="1.0" encoding="UTF-8"?>
estructuras de datos
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
complejas usando XML. A
la derecha se muestra un <xsd:element name="Factura">
ejemplo.
<xsd:complexType>
XSD se orienta a una
<xsd:sequence>
mayor expresividad que la
descripcin formal ofrecida <xsd:element name="CodigoCliente" type="xsd:string"/>
por los DTD. Supone una
alternativa y evolucin. <xsd:element name="Nombre" type="xsd:string" maxOccurs="10"/>

XSD aporta muchos tipos </xsd:sequence>


de datos y tipos de datos <xsd:attribute name="importe" type="xsd:double"/>
complejos, lo que facilita la
potencia y funcionalidad de </xsd:complexType>
las aplicaciones que los </xsd:element>
usen en el procesamiento
de datos. </xsd:schema>

XSD se basa en espacios de nombres (namespaces). Cada namespace se compone de elementos y


atributos relacionados y cuya relacin se establece al crearse. Adems se permite la relacin entre
elementos de distintos espacios.
XML y otras especificaciones y tecnologas, estn muy en relacin con la POO. Las BBDD orientadas a
objetos no son comunes, lo que si es ms comn es utilizar capas de persistencia para realizar mapeos de
objetos para el modelo relacional. Los mapeos objeto-relacionales no son un modelo en s, son tcnicas de
conversin del modelo de objetos al relacional.
Como framework de persistencia puede citarse Hibernate, que define, para cada tabla, qu columnas
almacenarn cada propiedad del objeto. Incluye mtodos propios para no acceder directamente a la BBDD.
Apache propuso el framework iBatis, que define un mapeo XML para cada clase, indicando cmo realizar
las operaciones bsicas para cada objeto. Otros entornos n-tier, como Enterprise Java Beans o Rails, usan
sus propios modelos de persistencia especficos sobre BDBD relacionales.
5. DICCIONARIO DE DATOS
El diccionario de datos es la herramienta usada para gestionar la informacin de una BBDD. Es una gua
que describe la BBDD y los objetos que la forman. Contiene las caractersticas lgicas del repositorio donde
se almacenan los datos del sistema, incluyendo nombre, descripcin, alias, contenido y organizacin.
Identifica los procesos donde se emplean los datos y lugar donde se precisa acceso inmediato.
Como se ha indicado, una BBDD definir un esquema interno, un esquema lgico y esquemas externos
(vistas). El DBA define estos esquemas mediante el diccionario de datos, que contendr una descripcin
interna, conceptual y externas, una descripcin de campos, registros y relaciones e informacin relativa a la
seguridad e integridad de los datos.
Para el modelo relacional existen herramientas especficas, pero el diccionario de datos suele gestionarlo el
SGBD, que almacena la informacin como relaciones con las mismas caractersticas que el resto. La
ventaja es usar los mismos lenguajes que para datos como SQL. Cada fabricante implementa su versin.

158
En una BD relacional, el diccionario de datos contiene informacin sobre la estructura lgica y fsica de la
BBD, las definiciones de sus objetos (tablas, vistas, ndices), espacio asignado y usado por cada uno,
valores por defecto de las columnas de las tablas, restricciones de integridad, privilegios y roles de los
usuarios y auditora de informacin, como los accesos a los objetos.
Adems, el diccionario de datos debe soportar las descripciones de los modelos conceptual, lgico, interno
y externo de la BD, estar integrado en el SGBD, apoyar la transferencia eficiente de informacin al SGDB (la
conexin entre los modelos interno y externo debe ser realizada en tiempo de ejecucin) y debe estar
almacenado en un medio de almacenamiento con acceso directo para la fcil recuperacin de informacin.
El diccionario de datos es uno de los elementos clave de gestin para un administrador. No debe
confundirse el diccionario de datos de un SGBD con el diccionario de datos del proceso de anlisis. El
primer contexto es el concreto de una implementacin; el segundo es una descripcin conceptual de los
datos del sistema a analizar.

159
TEMA 36. LA MANIPULACIN DE DATOS. OPERACIONES. LENGUAJES. OPTIMIZACIN DE
CONSULTAS.

1. INTRODUCCIN
2. LA MANIPULACIN DE DATOS
3. OPERACIONES
3.1. lgebra relacional
3.2. Clculo relacional
4. LENGUAJES
5. OPTIMIZACIN DE CONSULTAS

160
1. INTRODUCCIN
Un SGBD representa un modo fiable de acceso a datos, separando stos de las aplicaciones que los
requieren. Un SGBD suele estructurarse en tres niveles de abstraccin: externo, conceptual y fsico.
El nivel externo, define los datos con la perspectiva del usuario. El nivel conceptual define cmo se
organizan los datos en el sistema y el nivel fsico define cmo se almacenan. Un SGBD debe entonces
permitir la definicin de datos (con un lenguaje de definicin, DDL), su gestin (con un lenguaje DML) y el
control de acceso (DCL).
2. LA MANIPULACIN DE DATOS
Una vez que se tienen estructurados y definidos los datos, se hace necesario manipularlos, existe la
necesidad de trabajar con la informacin que representan. Para ello, los SGBD proporcionan una serie de
reglas que se agrupan en un cdigo llamado lenguaje de manipulacin de datos o DML por sus siglas en
ingls. Son lenguajes de consulta con los que los usuarios pueden gestionar la informacin. El DML ms
extendido en la actualidad es SQL. Otros son IMS/DL1 o Codasyl, por ejemplo.
3. OPERACIONES
Una operacin es una accin indivisible sobre registros o relaciones de la BBDD. Una operacin del modelo
relacional debe permitir manipular datos estructurados en forma de relaciones. Las operaciones pueden
agruparse en dos tipos, la consulta y la actualizacin. La actualizacin distingue 3 operaciones: insercin,
modificacin y eliminacin, que a veces se presentan de forma independiente, estudindose por tanto,
cuatro operaciones bsicas. Adems, cada modelo de BBDD puede ampliar el repertorio de operaciones
bsico, en funcin de su naturaleza.
Consulta. Consiste en la obtencin de informacin a partir de las relaciones que contiene la BBDD. La
obtencin de los datos puede requerir el anlisis y la extraccin de datos de una o ms relaciones. En SQL,
se realiza con la sentencia SELECT.
Actualizacin. Es un cambio nuevo de la informacin de la BBDD. La actualizacin puede darse insertando
un nuevo dato, modificndolo o eliminndolo. La insercin consiste en aadir registros (en SQL, sentencia
INSERT), la modificacin en alterar la informacin de un registro (en SQL, sentencia UPDATE) y la
eliminacin en su borrado (en SQL, sentencia DELETE).
3.1. lgebra relacional
La formulacin de las operaciones se apoya en dos tipos de notacin, la del lgebra y la del clculo
relacional. La primera, es una notacin que presenta las operaciones aplicando operadores a las relaciones.
La notacin del clculo relacinal aplica operadores como condiciones lgicas entre tuplas. La notacin
algebraica define varias operaciones:
SELECT (). Obtiene las tuplas que satisfagan una condicin en una relacin. Si es R una tabla con el
atributo A, A=a(R) = {t R t(A) = a} donde t es una tupla de R y t(A) el valor del atributo A de la tupla t.
PROJECT (). Obtiene atributos (columnas) especficos de una relacin. Sea R una relacin que contiene
un atributo X. X(R) = {t(X) t R}, donde t(X) denota el valor del atributo X de la tupla t.
PRODUCT (). Define el producto cartesiano de dos relaciones. Si R es una tabla de rango k1 y S de rango
k2. R S es el conjunto de las k1 + k2 tuplas cuyos primeros k1 trminos forman una tupla en R y cuyos
ltimos k2 componentes forman una tupla en S.
UNION (). Es la unin de conjuntos. Sean las tablas R y S del mismo rango. La unin (R S) es el
conjunto de las tuplas que estn en R, en S o en ambas a la vez.
INTERSECT (). Es la interseccin de conjuntos. Sean las tablas R y S del mismo rango. Su interseccin (R
S) es el conjunto de las tuplas que estn en R y en S a la vez.
DIFFERENCE ( o ). Es el conjunto diferencia de tablas. Sean R y S dos tablas del mismo rango. Su
diferencia (R S) es el conjunto de las tuplas que estn en R y no en S.
JOIN (). Es la conexin de tablas por sus atributos comunes. Sea R una tabla con los atributos A, B y C y
sea S una tabla con los atributos C, D y E. C es un atributo comn. R S = R.A,R.B,R.C,S.D,S.E(R.C=S.C(R S)).
Es decir, es la seleccin de tuplas cuyos valores para el atributo C sea igual (R.C = S.C), haciendo su
producto R S. El resultado devolvera una tabla con el atributo C duplicado, que podra eliminarse.
DIVIDE (). Sea R una tabla con los atributos A, B, C, y D y sea S una tabla con los atributos C y D. Se
define la divisin de las mismas como R S = {t ts S tr R,, tr(A,B)=ttr(C,D)=ts} donde tr(x,y) es una
tupla de la tabla R con slo los componentes x e y. La tupla t consiste slo en los componentes A y B de la
relacin R.

161
3.2. Clculo relacional
El clculo relacional se basa en la lgica de primer orden. Presenta dos variantes, el clculo relacional de
dominios (DRC), que opera con componentes (atributos) de las tuplas y el clculo relacional de tuplas
(TRC), que opera con tuplas.
El clculo relacional de tuplas tienen el siguiente formato: x(A) F(x) siendo x una variable de tipo tupla, A
un conjunto de atributos y F una frmula. El resultado son todas las tuplas t(A) que satisfagan F(t).
El clculo relacional de dominios posee el formato t1 t2, donde t1 y t2 son trminos y es un operador de
comparacin. Su definicin es: { t1,t2,t3 A(t1,t2,t3) s3,s4(B(s1,s2,s3,s4) t1=s3 s4>300000) }. Las
frmulas se construyen del mismo modo que en el clculo de tuplas.
El lgebra y clculo relacionales tienen el mismo poder de expresin. Una consulta determinada puede
realizarse usando cualquiera de ambos, como demostr Codd en 1972 con su algoritmo de reduccin. A
veces se indica que los lenguajes basados en clculo relacional son de ms alto nivel o ms declarativos
porque su compilador o intrprete marca el orden de evaluacin ms eficiente, a diferencia de los basados
en lgebra relacional, donde se especifica el orden de las operaciones directamente.
4. LENGUAJES
Los lenguajes de manipulacin de datos (DML) distinguen dos tipos, procedimentales y declarativos. En
general son de ms alto nivel que los lenguajes de programacin.
Lenguajes procedimentales. Permiten al usuario declarar las instrucciones para realizar operaciones que
ofrezcan el resultado deseado.
Lenguajes declarativos. Permiten al usuario describir la informacin deseada sin especificar un
procedimiento de obtencin de la misma.
Los lenguajes basados en lgebra relacional, al basarse en la teora de conjuntos, definen consultas,
obligando a seguir etapas construidas con operaciones del lgebra relacional, resultando en una nueva
relacin con los datos de la consulta. Por tanto, son lenguajes procedimentales.
Los lenguajes basados en clculo relacional se basan en la lgica de predicados. Se sirve de una notacin
que formula la consulta en trminos de las relaciones. Al no describir procedimientos, se dice que son
lenguajes declarativos. El lenguaje SQL combina construcciones de lgebra y clculo relacionales, con
predominio del clculo. Por tanto, puede considerarse como lenguaje declarativo.
5. OPTIMIZACIN DE CONSULTAS
La optimizacin de consultas se refiere a la mejora del tiempo de respuesta de la BBDD, es decir, mejorar la
eficiencia. El problema surge desde que una consulta al realizarse de distintas formas puede generar un
nmero de lecturas que difieran en varios rdenes de magnitud. Esto supone un coste en tiempo, uso de la
red de comunicacin, almacenamiento, cmputo, etc. En definitiva un coste en rendimiento.
Por tanto, la optimizacin de consultas es un aspecto importante de la manipulacin de datos que en
general sigue un procedimiento que distingue cuatro etapas: la representacin interna de consultas, la
conversin a forma cannica, la eleccin de procedimientos de bajo nivel y la eleccin de planes de
consulta.
La representacin interna de consultas. Debe ser relacionalmente completa, ofrecer un apoyo para el resto
de etapas y proporcionar un grado de libertad para realizar posibles optimizaciones. Se representar con los
lenguajes estudiados.
Conversin a forma cannica. Existen optimizaciones previas con un resultado positivo seguro. Por tanto se
orienta a definir una expresin equivalente de una consulta, que mejore el rendimiento, la conocida como
forma cannica de la consulta.
Eleccin de procedimientos de bajo nivel. Consiste en evaluar una consulta previamente transformada, sus
ndices, rutas de acceso y distribucin de los valores de los datos almacenados para realizar una
agrupacin fsica de los registros.
Un optimizador debe tener algn procedimiento disponible para operaciones join (ms complejas) como los
casos en que la condicin sea con clave candidata, el campo de restriccin est indexado o el campo de
restriccin no est indexado pero s agrupados los datos fsicamente.
Eleccin de planes de consulta. Un plan de consulta debe contemplar una estimacin de costes, que como
se ha indicado dependen de varios factores, en particular la generacin de resultados intermedios, en
relacin directa con el nmero de E/S
Algunas estrategias generales de optimizacin seran:

162
1. Realizar las selecciones tan pronto como sea posible
2. Combinar ciertas selecciones con un producto cartesiano anterior, para realizar una asociacin o JOIN
3. Combinar secuencias de operaciones unarias, como selecciones y proyecciones
4. Detectar subconsultas con resultados equivalentes que puedan reutilizarse en una misma consulta
5. Mediante cascada de selecciones, sustituir una seleccin compuesta en varias simples
6. Mediante sus propiedades, desplazar cada seleccin y proyeccin simple lo ms abajo posible del rbol
7. Usar las propiedades de proyeccin y seleccin para combinar cascadas de proyecciones y selecciones
en una seleccin sencilla, una proyeccin sencilla o una seleccin seguida de una proyeccin
Con esta estrategia se persigue hacer todas las proyecciones y a continuacin todas las selecciones que
afecten a una misma relacin en vez de alternar dichas operaciones.
Adems, se puede intentar dividir los nodos interiores del rbol resultante en grupos de modo que todo nodo
interior que presente una operacin binaria est en un grupo con sus antecesores de una operacin unitaria.
El grupo incluir toda cadena de descendientes correspondientes a operaciones unitarias y que terminen en
una hoja del rbol, excepto en caso que la operacin binaria sea un producto cartesiano no seguido de
seleccin para formar un JOIN.

163
TEMA 37. MODELO DE DATOS JERRQUICO Y EN RED. ESTRUCTURAS. OPERACIONES.

1. INTRODUCCIN
2. MODELO DE DATOS JERRQUICO Y EN RED
2.1. Modelo de datos en red
2.2. Modelo de datos jerrquico
3. ESTRUCTURAS
3.1. Modelo de datos en red
3.2. Modelo de datos jerrquico
4. OPERACIONES
4.1. Modelo de datos en red
4.2. Modelo de datos jerrquico

164
1. INTRODUCCIN
Los sistemas jerrquico y en red estn obsoletos. Pero didcticamente ofrecen la perspectiva de evolucin
de los SGBD y por eso se usan, ya que ofrecen una estructuracin de la informacin ms directa.
2. MODELO DE DATOS JERRQUICO Y EN RED
2.1. Modelo de datos en red
El modelo en red representa la informacin como un conjunto de registros conectados entre s por enlaces.
Cada registro puede tener varios padres y varios hijos, formando una retcula o red, que le da nombre. Es
un modelo terico potente, pero complejo de implementar.
Las primeras implementaciones se basaron en las especificaciones del grupo Codasyl (Conference on Data
System Languages), un consorcio de industrias informticas creado en 1959. Un subgrupo de Codasyl se
encarg de la definicin de la gestin de datos, el DBTG, que public las primeras especificaciones para el
modelo en red, conocido como Modelo Codasyl.
Las especificaciones definan varios lenguajes por separado: un lenguaje DDL para definir el esquema de la
BBDD, otro DDL para crear uno o ms subesquemas para definir vistas en aplicaciones y un lenguaje de
manipulacin de datos (DML) para definir instrucciones para COBOL.
2.2. Modelo de datos jerrquico
Puede considerarse el modelo jerrquico como un caso particular del modelo en red. Las BBDD jerrquicas
se concibieron en la dcada de los 60. La primera implementacin del modelo fue IMS (Information
Management System) de IBM, creado para el programa Apollo de la NASA. El sector banca y AAPP
adoptaron tambin esta tecnologa. Uno de los ms fogosos defensores del modelo fue Bachman frente a
Codd, defensor del modelo relacional. El modelo es procedimental. No permite inclusin de reglas
adicionales de integridad, salvo las incluidas en los programas de acceso a datos. Los controles de acceso
se realizan autorizando o denegando al usuario el acceso a rboles concretos.
3. ESTRUCTURAS
3.1. Modelo de datos en red
Los elementos del modelo en red SCHEMA Name=Docencia
Codasyl son registros, ficheros y
RECORD NAME IS Departamento;
conjuntos.
DUPLICATES NOT ALLOWED FOR codigo IN Departamento;
Un registro es una coleccin de campos y
representa la unidad mnima de acceso. codigo TYPE IS CHARACTER 8;
Un fichero es un conjunto de registros del
mismo tipo. No es necesaria su definicin nombre TYPE IS CHARACTER 50.
ya que para cada tipo de registro se crea RECORD NAME IS Profesor
un fichero. Un conjunto o set es un
enlace del modelo de red. DUPLICATES NOT ALLOWED FOR dni IN Profesor;

La potencia del modelo en red reside en dni TYPE IS CHARACTER 10;


los sets, pero su implementacin es nombre TYPE IS CHARACTER 50.
compleja. Las restricciones que impuso
Codasyl sobre los sets fueron admitir slo RECORD NAME IS Alumno;
tipos de interrelaciones jerrquicas de DUPLICATES NOT ALLOWED FOR dni IN alumno;
dos niveles: propietario y miembro (en el
modelo terico, un set podra unir ms de dni TYPE IS CHARACTER 10;
dos registros). nombre TYPE IS CHARACTER 50.
En el nivel propietario solo se permite un SET NAME IS Departamento_Profesor;
tipo de registro. Una misma ocurrencia de
miembro no puede pertenecer en un OWNER IS Departamento
mismo tipo de set a ms de un MEMBER IS Profesor
propietario. Esto hace que se simplifique
la implementacin fsica de los set, ya SET NAME IS Profesor_Alumno;
que sus ocurrencias se pueden organizar OWNER IS Profesor
como una cadena.
MEMBER IS Alumno
En el cuadro se muestra un ejemplo de
definicin de BBDD con tres registros y RETENTION IS OPTIONAL
dos conjuntos. INSERTION IS AUTOMATIC

165
En un esquema entidad relacin las relaciones N:M se podran convertir en varias relaciones 1:N con hijos
nuevos. RETENTION puede tomar tres valores, FIXED, MANDATORY u OPTIONAL. FIXED indica que una
ocurrencia en un conjunto no puede desconectarse, ni pasar a conectar con un registro diferente.
MANDATORY que las ocurrencias no pueden desconectarse, pero pueden reconectarse a otro registro y
OPTIONAL que las ocurrencias del conjunto pueden desconectarse o reconectarse. En el ejemplo, un
profesor conectado a un departamento, si el set es MANDATORY, nunca podr estar sin departamento.
INSERTION puede ser AUTOMATIC, si un registro se conecta automticamente a la ocurrencia adecuada, o
MANUAL, cuando debe hacerse explcitamente mediante CONNECT
3.2. Modelo de datos jerrquico
El modelo jerrquico representa la informacin con estructura de rbol. Los registros, menos la raz, son
hijos de otro registro, padre, que debe ser nico. Los elementos que lo componen son el segmento, rbol y
segmentos virtuales.
El segmento equivalente al concepto de registro y consta de campos. El rbol representa las relaciones
padre-hijo entre segmentos. Una BBDD jerrquica define uno o ms tipos de rbol. De cada rbol slo
puede existir una instancia. Los segmentos virtuales evitan la duplicidad de datos cuando debe realizarse
para representar las relaciones N a N contienen un puntero al registro original.
Siguiendo el ejemplo anterior, la relacin DBD NAME=Docencia
N:N entre profesor y alumno no podra
SEG NAME=Departamento, BYTES=58
representarse directamente en el modelo
jerrquico. Habra que usar registros FIELD NAME
virtuales o duplicar informacin.
FIELD NAME=Nombre, BYTES = 50, START = 9
Un rbol que modela esa informacin se
SEG NAME=Profesor, BYTES =60, PARENT=Departamento
muestra en el recuadro.
FIELD NAME=(DNI,SEQ), BYTES=10, START=1
El sistema jerrquico ofrece varias formas
de almacenamiento, incluyendo el FIELD NAME=Nombre, BYTES=50, START=11
secuencial en cinta (que no permite
modificaciones sin reescribir la BBDD) o el SEG NAME=Alumno, BYTES=60, PARENT=Profesor
indexado que permite acceder FIELD NAME=(DNI,SEQ), BYTES=10, START=1
directamente a cada elemento.
FIELD NAME=Nombre, BYTES=50, START=11
4. OPERACIONES
4.1. Modelo de datos en red
El DML para el modelo en red es navegacional: cada MOVE 'Jesus' TO Nombre IN Factura
operador selecciona un registro, y se referencia al
FIND ANY Factura USING Nombre
ltimo registro seleccionado.
DO WHILE DB_STATUS=0
El SGBD mantiene un indicador de posicin por
cada tipo de registro y conjunto. GET Datos-Factura
Las operaciones de navegacin y recuperacin de FIND DUPLICATE Factura USING Nombre
registros se realizan con las sentencias FIND y GET.
END DO
FIND posiciona un registro. Se puede usar indicando claves. Si se desea modificar el registro, debe
aadirse FOR UPDATE. Una vez posicionado un registro se usa GET para recuperar su valor. En el cuadro
se muestra un ejemplo. Para recorrer conjuntos, se usa: FIND... WHITHIN Nombre-Set
Para las operaciones de actualizacin de registros se usan las sentencias STORE, MODIFY y ERASE.
STORE crea un nuevo registro. MODIFY reemplaza el registro actual (donde est posicionado el puntero de
fichero) y ERASE elimina un registro. ERASE ALL elimina todos los registros relacionados en un conjunto.
Para las operaciones de actualizacin de conjuntos MOVE '001' TO Codigo IN Departamento
se usan las sentencias CONNECT, RECONNECT y
FIND ANY Departamento USING Codigo
DISCONNECT. CONNECT conecta un registro a un
conjunto y quedar conectado al padre donde est MOVE '1R' TO DNI IN Profesor
apuntando el puntero del fichero. Un ejemplo se
muestra en el cuadro, donde se posiciona el puntero FIND ANY Profesor USING DNI
en el departamento de codigo '001'. CONNECT Profesor TO Departamento-Profesor
Lo que se conecte, se conectar con ese departamento como padre. En la sentencia Find Any Profesor, se
conectar ese profesor. Al final se conecta el profesor 1R al departamento 001.

166
RECONNECT reconecta un registro a un conjunto. Funciona como CONNECT. Y DISCONNECT
desconecta un elemento de un conjunto. Debe ser posicionado primero en el fichero correspondiente al
registro a desconectar.
4.2. Modelo de datos jerrquico
Las operaciones en el modelo de datos jerrquico se resumen en recuperacin de registors, adicin,
modificacin y borrado.El sistema jerrquico guarda un puntero de posicin dentro del rbol, y un rea de
memoria con la que se intercambian datos que contiene un segmento de cada tipo.
Los registros se recuperan con la sentencia GET, que tiene la sintaxis:
GET [FIRST] [NEXT] [HOLD] Registro [WHERE Condicin]
Al hacer GET NEXT se obtienen el resto de nodos, en recorrido preorden del rbol. No se obtiene un nico
tipo de segmento, se va obteniendo el que corresponde. La forma de obtener los registros hijos de un
elemento es con GET NEXT WITHIN PARENT, que devuelve el siguiente elemento hijo del segmento que
est apuntado por el contador.
La adicin de un registro se realiza con la sentencia INSERT, que aade un segmento en la posicin donde
se encuentra el apuntador de segmentos.
El reemplazo del contenido de un segmento seleccionado hace uso de la sentencia REPLACE. El borrado
del segmento a que se apunta se realiza con DELETE. Si el segmento tiene hijos, se eliminan tambin
Las instrucciones de actualizacin tambin hacen uso del rea de memoria compartida. Se modificar el
registro con el contenido de esa rea.

167
TEMA 38. MODELO DE DATOS RELACIONAL. ESTRUCTURA. OPERACIONES. LGEBRA
RELACIONAL.

1. INTRODUCCIN
2. MODELO DE DATOS RELACIONAL
3. ESTRUCTURA
4. OPERACIONES
5. LGEBRA RELACIONAL

168
1. INTRODUCCIN
Los primeros sistemas de gestin de datos usaban modelos jerrquicos o en red, muy dependientes de la
estructura fsica del sistema. El modelo de datos relacional de Codd supera sus limitacionesabstrayendo los
detalles del almacenamiento de la BBDD. El concepto clave es la relacin entre datos. El modelo se ha
impuesto y actualmente, la mayora de SGBD son relacionales.
2. MODELO DE DATOS RELACIONAL
El modelo de datos relacional es ampliamente usado en la actualidad. Su funcionalidad se resume en el
establecimiento de cinco objetivos: independencia fsica y lgica, flexibilidad, uniformidad y sencillez. La
independencia fsica separa el almacenamiento de datos de su tratamiento, mientras la independencia
lgica lo hace del cdigo del gestor. La flexibilidad ofrece al usuario diversas opciones de presentacin de
datos y la uniformidad y sencillez se refieren a la forma de organizacin de datos normalizada y de fcil uso.
El elemento central del modelo es la relacin (tabla) como estructura sobre la que se realiza toda operacin.
Una tabla se organiza en tuplas o registros, con el mismo nmero de campos (columnas). El tipo de datos
de un campo ha de ser igual en todos los registros. La informacin se recupera con consultas de un
lenguaje estndar como pueda ser SQL.
Para implementar el modelo se propusieron 12 recomendaciones o reglas, enumeradas en la tabla. En la
actualidad no se soportan por completo, como en el caso de la actualizacin de vistas y la distribucin.
Regla Significado Regla Significado
Informacin Representada con tablas Distribucin Soporte a BBDD distribuidas
Tratamiento de Lgica de tres valores Catlogo en El catlogo se consulta igual que
valores nulos lnea dinmico los datos
Alto nivel de insercin Posibilidad de hacerlo con Lenguaje Debe existir un lenguaje
actualizacin y conjuntos o por filas completo de expresable con caracteres para
supresin datos acceso completo
No subversin A bajo nivel se respetan Independencia La integridad no debe depender
las restricciones de integridad del lenguaje
Independencia lgica Los cambios en tablas no Independencia Los cambios fsicos afectarn a
de datos afectarn a programas fsica de datos programas
Acceso garantizado Acceso a tabla, clave y Actualizacin Todas las vistas actualizables el
columna de vistas sistema debe poder actualizarlas
El diseo de BBDD y su representacin grfica suele usar el modelo entidad-relacin. Se usan distintas
formas; rectngulos para las entidades (tablas), elipses para atributos o columnas (si son clave primaria se
subrayan y se indica si es atmico o multivaluado), polgonos para asociaciones de entidades y rectngulos
dobles para entidades y asociaciones dbiles dependientes de una entidad padre.
Una entidad que puede especializarse se representa con un tringulo. Los atributos tambin pueden
representarse con un crculo con el nombre, que ser negro si es clave primaria y la mitad negro y mitad
blanco si es clave alternativa. Si es multivaluado se usa una flecha y si es opcional puntos suspensivos.
Si el atributo est compuesto de otros, se unen a la entidad con la misma lnea. El grado de la asociacin
indica el nmero de entidades y se representa como M:N. La cardinalidad define el mximo y mnimo
nmero de ocurrencias de una entidad en una asociacin y se representa (0,1), (1,1), (0,M), (1,M), o (M,N).
El diseo debe definir primero las entidades, sus atributos y la clave primaria. Una vez realizado se
establecen las relaciones entre entidades, indicando tipo y cardinalidad. En general, se comienza realizando
una descripcin escrita en lenguaje natural y como orientacin se identifican entidades con sustantivos y
atributos y los verbos pueden indicar asociaciones.
Una vez diseado el modelo E/R se transforma en relacional construyendo tablas a partir de entidades. Las
relaciones M:N y los atributos mltiples definirn tablas. Si existe una entidad especializada, se puede
eliminar la entidad padre, lo que es redundante o eliminar las entidades hijas y dar todos los atributos a la
entidad padre, lo que genera valores nulos.
Las asociaciones binarias son ms complejas a cambio de claridad y jerarqua, por lo que es de las ms
usadas. Las asociaciones 1:1 con cardinalidad (1,1) se suelen agrupar en una tabla y si la cardinalidad es
distinta se puede usar una tabla para la relacin o aadir una clave fornea como en la relacin 1:M en la
tabla M. La relacin N:M siempre necesitar una tercera tabla para la relacin, al igual que si existen ms de

169
dos entidades. Las asociaciones reflexivas de cardinalidad 1 usarn una clave fornea a su clave principal y
si es N:M se usar una tabla para la relacin.
La transformacin de modelos aconseja evitar redundancias y garantizar la integridad, lo que se consigue
normalizando la BBDD. Para ello se distinguen 5 formas de normalizacin, de las que al menos deben
realizarse las conocidas como 3 primeras. Si se decide desnormalizar por algn motivo particular de
implementacin deben prevenirse las posibles incoherencias. Las formas normales son las siguientes.
Primera forma normal. Es la de una BBDD en que el valor de los dominios de los atributos es nico o
atmico, es decir, para cada campo de un registro (fila) hay un solo valor, no un conjunto. Se consigue
eliminando grupos repetitivos, informacin derivada, opcionalidad y especializacin.
Ejemplo: Sea una tabla de contabilidad con una columna facturas, que puede tener distintos valores, con lo
que no estara en primera forma normal. La transformacin de la BBDD sera eliminar esa columna de la
tabla y crear otra llamada facturas con un identificador nico para cada factura. Esto requerira otra tabla
para relacionar contabilidad y facturas. De esta forma la BBDD cumplira la primera forma normal.
Segunda forma normal. Es la de una BBDD en primera forma normal y cada atributo distinto de la clave
primaria tiene dependencia funcional completa de la clave candidata. Es decir, conociendo el valor de un
atributo puede conocerse el valor de otro.
Ejemplo: Sea una tabla con atributos usuario, artculo y domicilio. Si un usuario puede asociarse a varios
artculos, por cada registro, el domicilio se repetir tantas veces como el registro del usuario. Esto podra dar
lugar a incongruencias. Por tanto, si se crea otra tabla con un registro que tenga como campos el usuario y
domicilio, este atributo slo depender del usuario y por tanto se tendr la BBDD en segunda forma normal.
Tercera forma normal. Una BBDD est en tercera forma normal si lo est en la segunda y no hay
dependencias entre atributos no clave, o sea, un atributo que no sea clave primaria no depende de otro
distinto a la clave primaria. Una versin ms restrictiva de esta forma es la forma normal de Boyce-Codd, en
la que todo determinante (atributo que determina completamente a otro) es clave candidata.
Ejemplo: Sea una tabla con atributos cdigo, usuario y telfono. El telfono depende del usuario, que a su
vez depende del cdigo, existiendo una dependencia transitiva que puede generar incoherencias al no
impedirse que el mismo usuario se muestre con distintos telfonos en distintos registros. Por tanto, la
solucin pasa por la creacin de otra tabla que relacione un usuario como clave fornea con un telfono.
La mayora de tablas en tercera forma normal no presentan incoherencias a la hora de actualizar, insertar o
borrar y si se dan, pueden evitarse con las formas de Boyce-Codd o formas normales ms altas, que
sucesivamente eliminan dependencias ms indirectas entre campos.
Cuarta forma normal. Cada dependencia mltiple no funcional est definida por una clave candidata o un
conjunto de claves primarias. Es decir, si est en tercera forma normal y no presenta dependencias
mltiples no triviales.
Quinta forma normal. Se da cuando una tabla se encuentra en la cuarta forma normal y cada relacin de
dependencia se define por las claves candidatas. Este tipo de normalizacin se usa raramente por no existir
un conjunto de reglas de inferencia que sean seguras y completas para razonar con las restricciones.
3. ESTRUCTURA
El modelo de datos relacional se estructura en base a elementos y restricciones. Los elementos distinguen
dos estructuras, la relacin (tabla) y la tupla (registro o fila).
La relacin o tabla se apoya en la teora de conjuntos de forma que la
relacin de los conjuntos (dominios) D1, D2,..., Dn es un subconjunto
de su producto cartesiano y n representa el grado de la relacin.
Cada tabla tiene un esquema que define la estructura (metadatos) e
instancias. El esquema define la cantidad de columnas, nombre y sus
atributos, mientras que las instancias son los datos almacenados y no
tienen por qu corresponderse con toda la tabla, ya que puede
trabajarse con subconjuntos. La tabla muestra la correspondencia
entre la notacin formal y la utilizada en SQL.
Una tupla o registro es una lista ordenada de atributos pertenecientes a un dominio. Un atributo posee
nombre, un nmero finito de valores del mismo tipo y es atmico. Una visin que ayuda a comprender la
estructura es identificar tuplas con filas de una tabla y cada campo de la tupla con las columnas. Se define
la cardinalidad como el nmero de tuplas y el grado como el nmero de columnas.
Los tipos de datos son los impuestos por el SGBD aunque se permita que los usuarios generen otros a
partir de los predefinidos. Codd tambin introduce la idea de valor nulo, utilizado para modelar informacin

170
desconocida, haciendo uso de una lgica triestado en que (V and Nulo > Nulo) y (V or Nulo > Verdadero).
Las restricciones son el segundo fundamento del modelo relacional. Son limitaciones impuestas a los
dominios para evitar incoherencias como la existencia de tuplas imposibles en el sistema modelado. Se
puede diferenciar entre restricciones inherentes y de usuario.
Las restricciones inherentes exigen que no haya tuplas repetidas, la no existencia de orden tipo arriba/abajo
o izquierda/derecha, que cada atributo tenga valor nico y no se admiten estructuras en una tupla. Tambin
se las conoce como restricciones de unicidad.
Las restricciones de usuario o de valor no nulo obligan a la unicidad con valores no nulos, identificacin y
referencias dbiles (slo los completos), parciales (coinciden los no nulos) y completas (slo los completos o
los nulos se comprueban). El clculo relacional tambin permite aadir restricciones.
Otros conceptos importantes de los que se sirve la estructura del modelo son el de clave primaria y ajena.
Una clave primaria es una o ms columnas de la tabla e identifica de forma unvoca un registro, cumpliendo
por tanto las dos restricciones descritas. Una clave ajena permite relacionar tablas apuntando a la clave
primaria de otra tabla. Las relaciones pueden ser 1:1, 1:N o N:M y definen la integridad referencial evitando,
por ejemplo, borrar un registro referenciado por la clave ajena de otro y permiten realizar modificaciones o
borrados en cascada.
4. OPERACIONES
Para la operacin con BBDD relacionales, Codd propuso la utilizacin de lenguajes de fundamento
matemtico no procedimentales. Las operaciones pueden dividirse en relacionales o especficas, de
conjunto y otras operaciones.
Operaciones especficas o relacionales. Realizan una accin sobre elementos. Destacan la seleccin
(select), que extrae tuplas especificas de una tabla, la proyeccin (where), para extraer atributos (columnas)
y la reunin (join), que crea una tabla con las tuplas de una o varias relaciones.
Operaciones de conjunto. Para operar directamente con conjuntos. Son las tpicas, como la unin (U), que
crea una tabla con las columnas de todas las tablas unidas, la interseccin (), que crea una tabla con las
tuplas que aparecen simultneamente en las tablas intersecadas, la diferencia (-) crea una tabla con las
tuplas que aparecen en la primera tabla y no en la segunda y el producto cartesiano (x) que crea una tabla
de otras dos, combinando de toda forma posible pares de tuplas, una de cada tabla.
Otras operaciones. Las tpicas de gestin de la BBDD, como el renombrado (AS de SQL), asignacin
(vistas), insercin (r=r s), eliminacin (r=r s), actualizacin o divisin.
Las operaciones en el modelo de datos relacional se pueden agrupar en lo que se conoce como clculo
relacional. A diferencia del lgebra relacional, que se explica en el siguiente punto, el clculo relacional
define operaciones que indican cmo obtener un resultado, no lo que se quiere obtener, que sera el objeto
del lgebra. El clculo y las operaciones se orienta al manejo de tuplas variables (cada variable es una tupla
de una relacin) y dominios (cada variable se refiere a un determinado dominio).
El clculo relacional de tuplas y de dominios sigue la estructura lgica del clculo, con la salvedad que en
las operaciones con tuplas se manejan tuplas como elementos variables o trminos y en el clculo con
dominios se opera con dominios.
A una expresin de operacin, una frmula, tambin se la denomina tomo. Una frmula, es una expresin
que contendr variables, que podrn ser tuplas o dominios y operadores, de tipo lgico, existencial o
universal. Una constante es un valor determinado de un dominio.
El clculo es transitivo, de forma que si F y G son frmulas, tambin lo sern (F), F, F U G, F G, etc. y lo
mismo para las variables de tupla, t(F). En el caso de las operaciones con dominios, las frmulas se
construyen en la forma R (t1, t2,...,tn), siendo R una relacin de grado igual a n o superior y t1, t2,...,tn los
trminos pertenececientes a los dominios asociados a los atributos de la relacin. Las frmulas poseen la
misma sintaxis que en el caso de las tuplas.
La definicin dadas en clculo y lgebra siempre pueden resultar demasiado abstractas y ser difciles de
digerir en la primera presentacin. La comprensin real de los conceptos suele realizarse al utilizar los
conceptos con ejemplos de implementacin. Esto se concreta en el siguiente tema donde se utiliza el
lenguaje SQL como lenguaje representativo de los de definicin y manipulacin de datos en sistemas de
BBDD relacionales.
5. LGEBRA RELACIONAL
El modelo de datos relacional, en el contexto de las BBDD, utiliza el lgebra relacional para definir
relaciones que permitan organizar y operar con la informacin.

171
Como se acaba de ver, puede distinguirse entre lgebra y clculo relacional. La diferencia entre lgebra y
clculo estriba en que mientras el lgebra define reglas de construccin de relaciones, el clculo construye
las operaciones con las relaciones en base a unos trminos dados mediante un lenguaje, ms de
construccin que de manejo.
El lgebra relacional usa un lenguaje orientado a la lgica y operaciones con conjuntos. Su implementacin
particular, con lenguajes como SQL, corre a cargo del SGBD del que se trate. Por tanto el lgebra relacional
trabaja en un plano ms abstracto. El lgebra relacional define seis relaciones u operaciones bsicas:
Seleccin. Permite seleccionar un conjunto de tuplas (filas) que cumplan una relacin, que ser expresada
en forma lgica, con operaciones tipo AND, OR, >=, etc.
Proyeccin. Extrae atributos (columnas) de un conjunto de tuplas en funcin de una relacin.
Producto cartesiano. Construye una relacin a partir de dos relaciones dadas combinando de todas las
formas posibles pares de tuplas, una de cada relacin. Por ejemplo, dadas dos relaciones de 5 tuplas cada
una, el resultado del producto cartesiano seran 25 tuplas combinanda las columnas de ambas relaciones.
Unin. Construye una relacin uniendo tuplas compatibles que aparecen en al menos una relacin.
Interseccin. Construye una relacin con las tuplas que aparecen en ambas relaciones.
Diferencia. Construye una relacin con las tuplas que aparecen en la primera y no en la segunda.
De estas relaciones bsicas se deducen operaciones derivadas, tambin ampliamente utilizadas.
Combinacin (natural Join). Condiciona el producto cartesiano imponiendo sobre l la seleccin de las
tuplas que cumplen cierta condicin. De esta forma se limita el resultado del producto cartesiano, que puede
ser muy extenso y ofrecer mucha informacin no necesaria.
Enlace. Construye una relacin de otras dos dadas, enlazando todos los posibles pares de tuplas y
cumpliendo las condiciones impuestas.
Divisin. Dadas las relaciones A(x,y) y B(y) siendo y dominios equivalentes, la divisin A/B devuelve todos
los valores de x tal que para todo valor de y hay una tupla en A que sea (x,y).
Las relaciones establecidas en el lgebra relacional ofrece la posibilidad de construir otras relaciones a
partir de las originales, de forma potente y sencilla. Los lenguajes utilizados como SQL, que se expone en el
siguiente tema, son intuitivos y fciles de aprender, pero no siempre es fcil saber que relacin resulta
ptima de entre las posibles soluciones a un problema, ya que el coste de computacin puede ser muy
diferente en funcin de las promitivas utilizadas.

172
TEMA 39. LENGUAJES PARA DEFINICIN Y MANIPULACIN DE DATOS EN SISTEMAS DE BBDD
RELACIONALES. TIPOS. CARACTERSTICAS. LENGUAJE SQL.

1. INTRODUCCIN
2. LENGUAJES PARA DEFINICIN Y MANIPULACIN DE DATOS EN SBD RELACIONALES
3. TIPOS
3.1. QUEL
3.2. QBE
3.3. SQL
4. CARACTERSTICAS
4.1. QUEL
4.2. QBE
4.3. SQL
5. LENGUAJE SQL
5.1. DML
5.1.1. Consulta
5.1.2. Eliminacin
5.1.3. Insercin
5.1.4. Actualizacin
5.2. DDL
5.3. DCL
5.4. Triggers y transacciones

173
1. INTRODUCCIN
Los lenguajes para definicin y manipulacin de datos en sistemas de BBDD relacionales son lenguajes de
consulta formal que resuelven las peticiones mediante una secuencia de operaciones relacionales que
aplicadas a la BBDD producen la respuesta deseada.
Estos lenguajes representan un interfaz entre usuario y BBDD, permitiendo definir el contenido de una
consulta sin describir cmo debe realizarse, a un nivel ms interno.
2. LENGUAJES PARA DEFINICIN Y MANIPULACIN DE DATOS EN SBD RELACIONALES
Existen varios lenguajes de consulta para la definicin y manipulacin de datos en sistemas relacionales. La
presentacin del modelo relacional por parte de Codd y lenguajes relacionales de forma interrogativa
supusieron un gran impacto en el mercado y las comunidades educativas que condujo al desarrollo e
implementacin de estos lenguajes.
Los tres lenguajes caractersticos que surgieron de esta situacin fueron SQL (Structured Query Language),
y QBE (Query By Example), por una parte, desarrollados por IBM en la dcada de los setenta, similares,
pero siendo SQL textual y QBE grfico y por otra QUEL (Query Language), lenguaje original de INGRES, un
SGBD relacional desarrollado por la Universidad de Berkeley.
Cada lenguaje se basa en aspectos distintos. As, mientras SQL lo hace en el clculo relacional de
dominios, QBE se basa en el lgebra relacional y construcciones del clculo relacional y por su parte QUEL
est basado en el clculo relacional de tuplas. Los tres lenguajes adems permiten realizar otras tareas,
como la definicin y modificacin de la estructura de datos, establecer criterios de seguridad, etc.
Tanto QUEL como QBE son dos lenguajes que pueden considerarse obsoletos, aunque se expondrn
ligeramente por su utilidad didctica. Actualmente el estndar de facto es SQL, razn por la que se le dedica
el apartado 5 en exclusiva, intentando ofrecer tambin una visin global, debido a que su riqueza semntica
no permite una extensin como pueda ser la de un manual tpico de SQL.
Como se ha expuesto en el tema 36, una vez finalizado el diseo de una BBDD y escogido un SGBD para
su implementacin, deben especificarse los esquemas conceptual, interno y externo de la BBDD, para lo
que se utilizar un lenguaje de definicin de datos (DDL, Data Definition Language), que se incluye como un
componente o parte, del lenguaje SQL.
Para definir quin y cmo accede a los recursos y datos del sistema, se utilizar un lenguaje de control de
datos o DCL (Data Control Language), que viene a ser otra de las partes fundamentales del lenguaje SQL.
Por fin, y una vez creados los esquemas de la BBDD, el usuario precisa un lenguaje de manipulacin de
datos, denominado DML (Data Manipulation Language), la tercera parte en que se estructura SQL y que se
expondr con mayor detalle al presentarlo.
3. TIPOS
3.1. QUEL
QUEL es un lenguaje de consulta que permite dos modos de trabajo, el modo interactivo y el modo inmerso,
en que las sentencias se intercalan con las del lenguaje anfitrin (host programming language).
La estructura bsica en QUEL es la relacin base, caracterizada porque las tuplas que la constituyen estn
fsicamente almacenadas en la BBDD y formadas por un nmero finito de atributos. Existen distintos tipos
de datos que pueden asignarse a un atributo, numricos, cadenas de caracteres o tipos date o money.
La sintaxis de definicin de una relacin base es CREATE nombre (atributo1 tipo,...,atributon tipo). El
comando Index permite especificar el primer nivel de indexacin de una relacin base y para modificar su
estructura de almacenamiento se usa el comando Modify. En QUEL las operaciones de manipulacin de
datos son semejantes a SQL, insercin de tuplas (append), eliminacin (delete) y actualizacin (replace).
La organizacin del almacenamiento de los registros puede seguir tres criterios, heap, hash e indexacin.
En el criterio heap, los ficheros no se ordenan y los nuevos elementos se insertan al final. Hash genera
ficheros de acceso muy rpido, basndose en una funcin hash (resumen) aplicada a un campo del registro
para obtener su direccin de memoria. La indexacin de ficheros se utiliza con las siguientes estructuras de
almacenamiento isam y btree.
3.2. QBE
Es un lenguaje de consulta basado en el clculo relacional de dominios mediante la insercin de parmetros
en las columnas de una relacin. La sintaxis de consulta contiene 3 parmetros para su construccin: P
(determina un dominio variable, la columna a consultar), una constante (para indicar el valor impuesto a la
columna de consulta) e -Identificador (nombre de la variable asignada a una columna, precedido de -).

174
El interfaz de QBE permite al usuario seleccionar las relaciones necesarias para resolver una consulta entre
todas las relaciones de la BBDD, que ya seleccionadas se representadan, de forma que el usuario podr
elegir las columnas de inters para configurar su consulta.
Las tablas que constituyen la BBDD pueden definirse, eliminarse o modificarse interactivamente. Para crear
una relacin se selecciona del men, se asigna un nombre y se definen sus atributos. Asimismo, pueden
definirse ndices y vistas. Las condiciones de seleccin pueden usar los operadores habituales (=, <, <,...) o
cajas de condicin, si las condiciones son ms complejas, como por ejemplo condiciones particulares de
cada atributo de la relacin. El resultado de la consulta puede ordenarse con los modificadores AO
(Ascendent Order) y DO (Descendent Order).
En QBE, el producto cartesiano se realiza con el comando JOIN y UNQ elimina las tuplas duplicadas en el
resultado. Para la modificacin de la BBDD se utilizan las instrucciones I, para insercin de tuplas, D que las
elimina y U para la actualizacin de valores.
3.3. SQL
Es el lenguaje comercial ms extendido, quizs por su proximidad al lenguaje natural y su comodidad de
uso. El estndar ANSI que data de 1986 ha evolucionado hasta la actualidad, en que la mayora de SGBD
soportan la versin SQL:92 y SQL:2008, incluye caractersticas de manipulacin de BBDD con XML.
SQL es un lenguaje de alto nivel declarativo, es decir, indica qu obtener, no cmo obtenerlo. Por tanto, el
orden de ejecucin interno de una sentencia puede afectar la eficiencia del SGBD, lo que obliga a realizar
un proceso de optimizacin por parte del procesador de consultas del SGBD antes de la ejecucin.
Adems de las facilidades de consulta, SQL ofrece la posibilidad de definir tablas, actualizar la BBDD,
definir vistas y asignar de privilegios. Su conjunto de instrucciones permite definir, manipular y controlar los
datos en una BBDD relacional. El software relacional est diseado para facilitar la manipulacin de los
datos en forma de tablas, pudiendo actuar como lenguaje autocontenido (de consulta interactiva) o
incorporarse a lenguajes de alto nivel convencionales (lenguajes anfitriones).
4. CARACTERSTICAS
4.1. QUEL
Las consultas QUEL poseen la sintaxis RETRIEVE atributos WHERE condicin. Donde los atributos deben
especificarse bien por el nombre de la relacin base a la que pertenecen, bien por la tupla variable definida
sobre la relacin base. Las tuplas variables se declaran previamente con RANGE, que adems permite
indicar la relacin base a partir de la cual se asigna el rango.
Las funciones que ofrece QUEL son: SUM, MAX, MIN, AVG y COUNT, que pueden emplearse con la
sentencia retrieve y where. Cuando se usa una funcin en la sentencia retrieve, hay que asignar un nombre
al valor devuelto. Para eliminar las tuplas duplicadas de la consulta, debe aadirse a la funcin los
modificadores MAXU, COUNTU, MINU, AVGU y SUMU.
Asimismo se pueden incluir sentencias where como parte de los parmetros de la funcin. Tambin se
pueden agrupar tuplas con el modificador BY, que permite especificar el grupo de tuplas sobre las que se
desea que se aplique. Cada funcin puede presentar sus agrupaciones particulares y recibir como
parmetros los resultados obtenidos por otra funcin.
4.2. QBE
QBE cuenta con un operador denominado G, que puede aplicarse a una columna para determinar sobre
qu atributo efectuar agrupaciones de tuplas y es habitual que aparezca en conjuncin con funciones.
Algunas funciones tpicas que ofrece QBE son MAX (mximo valor de una columna), MIN (mnimo), SUM
(suma de los valores de una columna), AVG (valor medio de los valores de una columna) o CNT (que
devuelve el nmero de elementos distintos de una columna).
Las funciones AVG, SUM y CNT actan sobre tuplas con valores diferentes en la columna sobre la que se
aplican, ignorando valores duplicados. Si se desea aplicar las funciones sobre todos los valores, duplicados
o no, es preciso indicarlo mediante el sufijo ALL. Al igual que en SQL y QUEL las funciones permiten la
agrupacin, aplicada individualmente sobre cada una de las particiones resultantes de la agrupacin.
4.3. SQL
La caracterstica fundamental de SQL es su estructura, en la que se distinguen cuatro partes: el diccionario
de datos, un lenguaje de manipulacin de datos (DML), uno de descripcin de Datos (DDL) y un lenguaje de
control de datos (DCL).

175
El diccionario de datos, tambin conocido como catlogo o repositorio de datos, contiene metadatos y se
utiliza para consultas previas al acceso a datos reales en un SGBD. Al realizar operaciones sobre la BBDD,
el diccionario se actualizar para reflejar los cambios.
Como se ha presentado antes, el lenguaje DML es el utilizado por los usuarios para trabajar con los datos,
mientras que el DDL sirve para especificar los esquemas conceptual, interno y externo de la BBDD, es decir
lo relativo a tablas y vistas y por su parte DCL ayuda a definir quin y cmo accede a los recursos y datos
del sistema, o sea, las restricciones de usuario. Una descripcin ms detallada de las caractersticas de
SQL se desarrolla en el siguiente punto.
5. LENGUAJE SQL
SQL ofrece una gran potencia para la manipulacin de datos. Su capacidad consiste en independizar la
estructura lgica de la BBDD de la estructura fsica, es decir, diferenciar entre qu datos recuperar y cmo
recuperarlos. Es el SGBD el encargado de solucionar cmo se accede.
5.1. DML
El lenguaje DML es la herramienta fundamental para operar con los datos.
Permite manejar conjuntos de tuplas simultneamente, lo que supone una
ventaja con respecto a lenguajes de programacin de alto nivel. Se distinguen
dos tipos de lenguajes DML, procedurales y no procedurales.
Un DML procedural permite al usuario especificar cmo y qu datos obtener.
Las operaciones de acceso deben describirse con los procedimientos
adecuados. La mecnica de consulta consiste en acceder a un registro,
procesarlo y en funcin del resultado, acceder a otro registro, repitiendo el
proceso hasta obtener los datos deseados. Las sentencias se incluyen en un
lenguaje de alto nivel, lenguaje anfitrin, del que se hacer uso para el proceso.
Las BBDD jerrquicas y en red usan necesariamente DML procedurales.
Un DML no procedural o declarativo, ofrece independencia de definicin de operaciones sobre la BBDD. Es
comn que los SGBD permitan la operacin interactiva o embebida en un lenguaje de alto nivel con
comandos DML. Un DML no procedural permite especificar los datos a los que se acceda con una sentencia
nica y sencilla. El SGBD traducir las sentencias en varias acciones para recuperar los datos pedidos.
Las BBDD relacionales usan un DML no procedural, como en SQL y QBE. SQL permite el uso de DML
declarativos o procedurales, caso en que se usan los stored procedures o bien embebiendo sentencias en
un lenguaje anfitrin. En vez de SQL embebido suele hacerse uso de bibliotecas estndar de acceso a
datos que proveen objetos para las operaciones y gestin de la conexin con la BBDD. Ejemplos de
bibliotecas son ADO.NET (en .NET y Mono), JDBC (en java) o libmySQL (con PHP).
Las operaciones que ofrece un DML pueden agruparse en consulta, eliminacin, insercin y actualizacin.
5.1.1. Consulta
Para consultar registros en una BBDD se usa la sentencia SELECT. Tambin se denomina proyeccin y
responde a la sintaxis: SELECT [columnas] FROM [tablas] WHERE [condiciones] [opciones]
Ejemplo: select alumnos.nombre from alumnos where alumnos.profesor=Antonio`, seleccionara el nombre
de los alumnos a los que da clase el profesor Antonio.
El modificador from, permite especificar las tablas en las que se realiza la consulta y sobre las que se
aplican las condiciones, definidas en where. Si se especifican varias tablas en from, se realiza el producto
cartesiano de las mismas. Las opciones permiten realizar tareas adicionales como por ejemplo ordenar el
resultado. Para ello se usan operadores, que siguen la estructura [GROUP BY {expr} [ASC|DESC],... [WITH
ROLLUP] [HAVING [condicin]] [ORDER BY {expr} [ASC|DESC],...]
El operador GROUP BY agrupa el resultado segn el criterio expresado, que indica que el valor ser comn
a las columnas y con la posibilidad de ordenarlo de forma creciente o decreciente con ASC y DESC. WITH
ROLLUP, aade columnas con valores nulos que sirve para agrupar valores. Por su parte, HAVING agrega
condiciones sobre los grupos formados, para definir cuales se mostrarn y cuales no. Puede modificarse
con operadores como SUM, AVG, MIN, MAX o COUNT. El resultado se podr ordenar con los criterios
expresados en ORDER BY. Otros modificadores son ALL y DISTINCT, para permitir o no, que el resultado
tenga filas idnticas.
SQL tambin cuenta con operadores de comparacin, que a parte de los habituales (=, <>, >, < >=, o <=) se
encuentran algunos como LIKE, para comparar cadenas de caracteres con un patrn. A diferencia del =, el
patrn no tiene que ser la palabra completa o BETWEEN, que permite buscar dentro de un rango.

176
Una subconsulta es una operacin select anidada en otro comando. Para implementarlas es comn usar el
operador IN (y otros) que condiciona un conjunto de datos y facilita la labor. Un ejemplo sera: select cliente
from ventas where cliente in (select cliente from facturacion where importe>1.000).
La sentencia seleccionara los clientes de la tabla ventas, tales que el importe de su facturacin superase la
cantidad mil. Para usar los valores no escalares que devuelve una subconsulta, SQL ofrece operandos que
relacionan un escalar y un conjunto, como pueden ser ANY y SOME, que devuelven cierto si la
comparacin con alguno de los elementos del conjunto se verifica o EXISTS, que devuelve cierto si el
conjunto devuelto no es vaco. IS NULL comprueba si un valor es nulo, MATCH si alguno coincide y
UNIQUE si el resultado es nico.
La capacidad de definir operaciones de lgebra relacional en cualquier lenguaje de manipulacin de BBDD
es esencial. As, SQL cuenta con los comandos INTERSECT, que devuelve la interseccin relacional de dos
tablas, UNION que las une si son equivalentes o en algunos SGBD, MINUS para expresar la diferencia.
Mencin aparte merece la sentencia JOIN (reunin), que une tuplas de dos relaciones en una nueva. SQL
permite adems alguna variacin de la reunin pura, como son CROSS JOIN que efecta el producto
cartesiano, NATURAL JOIN, JOIN ON, LEFT JOIN, RIGHT JOIN o JOIN USING que efecta el producto
cartesiano con una condicin.
La solucin a una determinada consulta no es nica, por lo que su implementacin depender del usuario,
pero, por ejemplo, en las subconsultas utilizar JOIN suele ser ms eficiente.
5.1.2. Eliminacin
Para eliminar registros en la BBDD se usa la sentencia DELETE. El borrado debe conservar la integridad de
la BBDD. Posee la sintaxis: DELETE [columnas] FROM [tablas] WHERE [condiciones].
La potencia de SQL debe usarse con precaucin. Por ejemplo, podra realizarse un borrado en una tabla
utilizando como condicin otra. En el siguiente ejemplo se eliminan los clientes de las tablas compras y
ventas cuyo nombre sea Jan:
DELETE FROM compras, ventas WHERE compras.cliente=ventas.cliente AND ventas.cliente='Jan'
Si se desea que slo se eliminen los registros de la tabla compras sera:
DELETE compras FROM compras, ventas WHERE compras.cliente=ventas.cliente AND ventas.cliente='Jan'
5.1.3. Insercin
Para insertar registros en la BBDD se usa la sentencia INSERT, que responde a la sintaxis INSERT INTO
tabla [columnas] VALUES (valores). Los valores deben ser del mismo tipo que los de las columnas sobre los
que se inserten y darse en el mismo orden. No es necesario introducir todos los valores de un registro a
menos que una columna tenga la restriccin de not null.
A partir de la versin SQL:92 se permite introducir ms de un registro por sentencia. Adems, insert puede
combinarse con select, en la forma INSERT INTO tabla [columnas] SELECT [opciones]. Los SGBD suelen
incluir utilidades de carga masiva de elementos (bulk copy) pero no forman parte de SQL
5.1.4. Actualizacin
Para actualizar el valor de los registros se usa la sentencia UPDATE, siempre que se cumplan las
restricciones definidas en la BBDD (referencia, duplicidad, disparadores...) y responde a la sintaxis:
UPDATE [tabla] SET [columna=valor] [WHERE condicin]. Pueden usarse varias tablas simultneamente.
5.2. DDL
El lenguaje DDL relaciona los niveles interno y externo de la BBDD con el nivel conceptual. Permite entre
otras cosas la creacin y definicin de las tablas de la BBDD y sus atributos, ndices y vistas. DDL distingue
otros tres sublenguajes, de los que, al menos, conviene conocer su nombre, ya que suelen tratarse bajo el
mismo nombre de DDL. Estos sublenguajes son VDL (View Definition Language), que permite definir el
esquema externo de la BBDD mediante vistas, DDL, de definicin del esquema conceptual (relaciones,
tuplas, restricciones) y SDL (Storage Definition Language) que define el esquema interno (ndices, clusters,
segmentos) y que al no ser estndar de SQL, cada fabricante implementa su conjunto de instrucciones.
Los comandos de los tres sublenguajes, o, para no hacer distinciones, de DDL, giran en torno al comando
CREATE, que permite crear BBDD, tablas, dominios, restricciones, etc. Algunas opciones de create son
TABLE, DOMAIN, DATA BASE, SQUEME, VIEW o ASSERTION, que se enmarcan en cada sublenguaje.
SDL como sublenguaje de DDL que permite definir los parmetros del almacenamiento fsico (estructura de
ficheros, ndices de acceso, etc.), a veces se identifica como DDL interno. Un comando de DDL (referido

177
como general), perteneciente a SDL es CREATE INDEX, que permite definir un ndice y en SQL responde a
la sintaxis: CREATE INDEX [nombre del ndice] [USING [tipo]] ON [tabla] [indices de columna].
Un tablespace es una localizacin fsica donde almacenar objetos de la BBDD como ndices o tablas a los
que se pueden asignar segmentos. Para definir uno, se usa el comando TABLESPACE. Un segmento es un
concepto lgico que agrupa partes de una BBDD que se divide, a nivel de almacenamiento, en varios
segmentos, cada uno en un tablespace y en un disco fsico diferente para mejorar la eficiencia. Los ndices
podrn particionarse y guardarse en varios segmentos.
Los segmentos se definen con SEGMENT. CLUSTER se usa para definir clusters, agrupaciones de tablas
que al compartir atributos se almacenan juntas para mejorar la eficiencia. Con el comando DROP, seguido
de index, tablespace, etc. se elimina el elemento indicado
Con DDL, entendido como sublenguaje para definir el esquema conceptual se pueden definir las tablas y
sus atributos, girando tambin en torno al comando CREATE con sus modificadores. La creacin de tablas
debe preceder a la manipulacin sus datos. Para crear tablas se utiliza CREATE TABLE, con la sintaxis:
CREATE TABLE [nombre de tabla] [tuplas [tipo][restricciones]] PRIMARY KEY IS [tupla].
Para definir un esquema de BBDD se necesita identificar el comienzo de la definicin con la instruccin
CREATE SCHEMA, una clusula adicional AUTHORIZATION y definir cada dominio, tabla, vista, etc. Un
dominio es un tipo de datos especializado definido en un esquema usado en la definicin de las columnas.
Las tablas se definen en tres pasos, su nombre, sus columnas y sus restricciones. Un ejemplo de definicin
del esquema de una BBDD es el siguiente:
create schema MiEmpresa authorization YoMismo
create domain identificador numeric (4) default 0 check (value is not null)
create table Operario (IdOperario identificador primary key, NombreOperario character (12), sueldo (5, 2),
IdSupv numeric (4), foreign key IdSupv references Operario on delete set null)
La instruccin CREATE TABLE permite definir las relaciones identificando el nombre de la tabla, que debe
ser nica dentro del esquema. Siguen entre parntesis y separadas por coma las instrucciones de definicin
de columnas y restricciones sobre la tabla. Las columnas se definen con su nombre, tipo de datos, valor por
defecto y aplicacin de restricciones como not null, primary key o check.
En el ejemplo existe una restriccin de referencia en la tabla que se especifica indicando qu campo
referencia a qu tabla: foreign key IdSupv references Operario on delete set null, indica que IdSupv es una
clave externa recursiva, que referencia a su propia relacin.
Hay tres tipos de acciones a tomar para mantener la integridad referencial, rechazar la accin (si se viola la
condicin de integridad, se aborta la accin), propagar en cascada (se eliminan las tuplas que referencian a
otra, o se modifican si se trata de un cambio de clave) y poner a nulo (se pone hacen null los campos que
referencian a la tupla).
Al crear una tabla o dominio, se debe conocer el tipo de datos que provee el SGBD. En general se ofertan
tipos habituales como cadenas de caracteres (CHAR, VARCHAR, BLOB, TEXT), numricos (INTEGER,
SMALLINT, LONG DECIMAL), fechas (DATE, TIME), lgicos (BIT, BOOLEAN, BINARY) y otros tipos como
ENUM (para un grupo discreto de valores), SET (uno o varios valores de un grupo definido) u otros ms
complejos como ficheros binarios o tipos especiales de nmeros, que dependern del SGBD elegido.
Como se observa, las tuplas no se definen de forma explcita, se definen al crear la relacin. Si dos
relaciones utilizan el mismo tipo de tuplas (mismos datos) debe indicarse en la definicin de cada una los
componentes de sus tuplas.
El comando ALTER permite modificar una tabla. Acepta los modificadores ADD, DROP, COLUMN, CHANGE
para modificar algn atributo de una columna. ALTER TABLE puede usarse para aadir una columna a una
tabla, cambiar la definicin de una columna existente o eliminarla.
La instruccin DROP elimina un elemento. As, DROP DOMAIN permite eliminar dominios, DROP COLUMN
combinado con ALTER elimina columnas. DROP TABLE borra todas las filas de la tabla y elimina del
esquema la definicin completa de la tabla. Un esquema completo se elimina con DROP SCHEMA.
En el ejemplo tambin se comprueba como la definicin de restricciones sobre los datos se especifican al
crear la relacin. Los modificadores null y not null, check, unique, el tipo de datos y su rango o condiciones
ms complejas como por ejemplo EstadoCivil char check (EstadoCivil in S,C,V,D), son otros ejemplos.
A nivel de tuplas tambin pueden especificarse restricciones como con los datos, usando combinaciones de
ms de un dato para la condicin lgica con CHECK como por ejemplo check (precio<1000 or gratis='S').

178
Por fin, para definir el esquema externo, se usa el sublenguaje VDL o DDL externo. En SQL se implementa
con el concepto de vista externa, que define los registros externos de que consta. Pueden existir y ser
compartidas varias vistas externas por varios usuarios simultneamente. Algunos sistemas permiten que
una vista externa se exprese en trminos de otras, en vez de definirla explcitamente.
La definicin de vistas, consiste en parametrizar una consulta que presente slo los datos indicados. Por
tanto, son tiles para limitar resultados que no deban mostrarse y definir consultas habituales. La creacin
de vistas se realiza con el comando y sintaxis CREATE VIEW [nombre de vista] AS [sentencia SELECT].
Por ejemplo, la sentencia:
CREATE VIEW VistaOperario AS SELECT IdOperario, nombre, oficio FROM Operario,
Hara la seleccin de los tres campos especificados de la tabla Operario, omitiendo otro tipo de informacin
como por ejemplo su salario. A esta consulta, para tratarla como vista se le ha aplicado el nombre
VistaOperario.Sentencias para la gestin de la vista son REPLACE, ALTER, para modificarla y DROP que la
elimina. En mySQL se incluye el comando SHOW CREATE VIEW que muestra los datos de definicin de
una vista.
Los SGBD permiten que las vistas sean actualizables bajo condiciones estrictas, en general, que cada
registro se corresponda con un registro de una tabla, no se usen funciones agregadas, ni cierto tipo de join,
y condiciones del estilo.
5.3. DCL
El Lenguaje de Control de Datos permite controlar el acceso a datos y el uso de la BBDD, en general, segn
el criterio del administrador. DCL permite gestionar los permisos a nivel global del sistema (conexiones), que
se denominan autorizaciones y los permisos de cada elemento.
La administracin es compleja, ya que un SGBD tiene muchos recursos diferentes, que varan segn el
sistema y los permisos se entrelazan, por ejemplo, permitindose acceder a una tabla y no conectarse a la
BBDD de la misma. Para la gestin de permisos y autorizaciones, existen dos sentencias centrales en SQL,
GRANT, para otorgarlos y REVOKE, para eliminarlos. Su sintaxis escribe la instruccin y se combina con
modificadores como CONNECT, para definir el permiso de conexin a la BBDD. La sintaxis de GRANT es:
GRANT [tipo de privilegio] ON [objeto] TO [usuarios] [WITH [opciones]]
El tipo de privilegio especifica la accin sobre la que se efecta. A parte de connect, pueden ser select,
insert, drop, etc. Los tipos de objetos pueden ser table, function, procedure, etc. Si no se realizan sobre uno
de estos tipos, puede omitirse. En [usuarios] se listan los usuarios a que se refiere la restriccin y las
opciones de WITH pueden ser GRANT OPTION, para permitir al usuario delegar el permiso concedido,
MAX_QUERIES_PER_HOUR, para limitar las consultas por hora, MAX_USER_CONNECTIONS, para
especificar el nmero de conexiones simultneas, etc.
La sintaxis de REVOKE es de sintaxis similar: REVOKE [tipo de privilegio] ON [objecto] FROM [usuarios].
El DCL de Oracle permite adems definir roles y CREATE ROLE JefeProyecto
asignarles permisos y usuarios, evitando definir
GRANT select, update ON Facturacin TO JefeProyecto
permisos de forma individual. Un ejemplo es el
mostrado a la derecha. GRANT JefeProyecto TO Alfredo, Francisco
Otros comandos, para controlar el acceso a datos son LOCK y UNLOCK, para bloquear o desbloquear un
elemento. Para el control de la integridad de datos se usan COMMIT y ROLLBACK, que se estudian en el
apartado de transacciones.
5.4. Triggers y transacciones
Un trigger o condicin de disparo es una accin que se ejecuta cuando se cumple una condicin marcada
por la realizacin de una operacin. Se usan para mejorar la administracin de la BBDD, sin necesidad de la
intervencin del usuario, prevenir errores, sincronizar tablas o modificar valores de una vista. Asimismo
pueden generar valores de columnas.
La estructura de un trigger consiste en una llamada de activacin, que se define con una sentencia que
dispara la accin a realizar, una restriccin, o condicin necesaria para realizar el cdigo y por fin, la accin
a ejecutar una vez verificadas las condiciones.
Existen dos tipos de disparadores, los de fila (row triggers), que se ejecutan tantas veces como se cumpla la
condicin en la tabla asociada al trigger y los de secuencia (statement triggers), que se ejecutan una nica
vez independientemente del nmero de veces que se cumpla la condicin. Un ejemplo de trigger sera:
CREATE TRIGGER [nombre] [BEFORE|AFTER] [INSERT|DELETE|UPDATE] ON [tabla] FOR EACH
[ROW|STATEMENT] [operacin a realizar]

179
Una transaccin es una operacin realizada en una BBDD. En contra de lo que pudiera parecer, no son
exclusivas de DML, pueden aplicarse con comandos DDL y DCL. En general las operaciones en las BBDD
las realizan muchos usuarios simultneamente, lo que puede generar problemas. Por tanto deben
establecerse condiciones para que las transacciones no supongan errores.
Para ello, se exige que las transacciones sean atmicas, es decir, que deben tratarse como una unidad de
trabajo y realizar todas las operaciones incluidas en la transaccin o no realizar ninguna. Tambin deben
ser aisladas, es decir, que sus operaciones no afecten a otras transacciones concurrentes. Las condiciones
de trabajo deben garantizar la consistencia, o situacin en que la BBDD ha realizado de forma efectiva y
coherente los cambios.
Las transacciones en SQL se controlan con la sentencia BEGIN TRANSACTION, aunque en algunos SGBD
comienzan de forma implcita. Si la transaccin sufre alguna incidencia, puede volverse al estado anterior de
comienzo de la transaccin con el comando ROLLBACK y si se completa con xito, se confirma con
COMMIT, que guarda los cambios y deja la BBDD en un estado consistente.
Un ejemplo habitual de transaccin es la transferencia entre cuentas bancarias, realizada con dos
operaciones, una de decremento de saldo en la cuenta origen y otra de incremento en la cuenta destino. La
consistencia del sistema, se garantizar con la atomicidad de ambas operaciones, es decir, o que se
realicen las dos o ninguna.

180
TEMA 40. DISEO DE BBDD RELACIONALES.

1. INTRODUCCIN
2. DISEO DE BBDD RELACIONALES
2.1. Diseo Conceptual
2.2. Diseo Lgico
2.3. Implementacin

181
1. INTRODUCCIN
El desarrollo de un sistema, en particular informtico, posee un doble carcter. Un carcter esttico referido
a los elementos del modelo y uno dinmico, referido a las operaciones que se pueden realizar con los
elementos. Pinsese, por ejemplo, en el conjunto de nmeros naturales. Su carcter esttico sera la
definicin de sus elementos, el 1, 2, 3 y su carcter dinmico las operaciones que se definen sobre ellos,
por ejemplo la suma y el producto, y sus propiedades.
El diseo, entendido con completitud, es un proceso proceso descendente desde la
abstraccin a la concrecin. Suele dividirse, como se indica en la figura en tres
grandes bloques, el anlisis del sistema, su diseo y su codificacin. Esta fase
tambin se la conoce como codificacin o implementacin.
En un principio, el diseo, se centra en la parte esttica, pero su relacin con la
parte dinmica es tan estrecha que se debe tener siempre en perspectiva.
En la fase de Anlisis se especifica el esquema general del sistema, entidades y relacines, diagrama de
clases, etc. Es independiente del SGBD que se elija para la implementacin. En el segundo nivel, de
Diseo, se concreta el modelo a utilizar. En este caso se estudia el modelo relacional. Por fin, en la fase de
Codificacin o Implementacin se define la estructura del SGBD con un lenguaje especfico. En esta
exposicin, se hace con DDL de SQL
2. DISEO DE BBDD RELACIONALES
El diseo es la etapa de la construccin del sistema que consiste en concretar la solucin con un nivel de
detalle mayor al anlisis. El detalle se logra con modelos, esquemas de la realidad, que todava poseen un
grado alto de abstraccin. El modelo ms extendido es el de Chen (1976), que establece entidades y sus
relaciones. Es un modelo esttico de la estructura del sistema, que establece una notacin particular para la
representacin y ser el utilizado en este estudio.
2.1. Diseo Conceptual
Los componentes del diseo conceptual del modelo entidad-relacin son:
Entidad. Se refiere a aquello que se considera, que existe y por tanto se debe describir o representar. Son
los tipos de objetos sobre los que se desea almacenar informacin.
Relacin. Es la definicin de la asociacin entre entidades. Cada relacin asocia una instancia de las
entidades implicadas. Las relaciones poseen propiedades como el grado o la cardinalidad.
Atributo. Es una propiedad de una entidad y sus relaciones. Pueden ser simples, compuestos, multivaluados
o derivados.
Agregacin. Es una abstraccin que permite tratar relaciones como entidades de nivel superior. La
agregacin se trata como otra entidad.
Generalizacin/especializacin. La generalizacin es un proceso de diseo ascendente. Sintetiza conjuntos
de entidades en un nivel superior basado en caractersticas comunes (abstraccin). Su funcin es agrupar
caractersticas comunes de entidades para ocultar diferencias. Ahorra repetir atributos.
La especializacin es un proceso de diseo descendente. Particulariza grupos de entidades. Se puede
aplicar iterativamente para refinar el esquema de diseo. En trminos del diagrama E-R, no existe diferencia
entre especializacin y generalizacin.
Una propiedad importante de las entidades de nivel superior e inferior identificadas con la especializacin y
la generalizacin es la herencia de atributos. Los atributos de las entidades de nivel superior son heredados
por las entidades de nivel inferior.
Restricciones. Expresan condiciones del sistema. Se aplican sobre atributos (dominio, valores), entidades
o relaciones (cardinalidad, identificacin).
De especial importancia son las restricciones de cardinalidad, representadas con lneas. Se distinguen las
restricciones de dependencia e identificacin. Las de dependencia se dan cuando una entidad no puede
identificarse con sus atributos (dbil). Se distinguen por su relacin con otras entidades. Toman datos de la
entidad fuerte (ciudad/pas). Las restricciones de identificacin indican qu atributos de las entidades
participantes la identifican, ya que no poseen identificador propio.
2.2. Diseo Lgico
El diseo lgico representa semnticamente el diseo conceptual. Se usa un mtodo iterativo consistente
en transformar la entidad-relacin a un esquema lgico, teniendo en cuenta restricciones y normalizar la
estructura para evitar redundancias. Para transformar una entidad-relacin a un esquema lgico, se

182
caracteriza cada entidad con un tipo (entidad fuerte no especializada, dbil o entidad especializada) para
luego definir las relaciones con su cardinalidad y propiedades.
La normalizacin supone un proceso de refinamiento que elimina redundancias y genera estructuras que
mantienen la integridad de forma sencilla. Se identifican 6 formas de normalizacin o formas normales. Se
dice que una relacin est en una forma normal si cumple sus restricciones. Se estudian en el tema 53.
2.3. Diseo Fsico
El diseo fsico define el esquema interno de la BBDD. Su refinamiento utiliza la perspectiva dinmica. Se
suele realizar con el DDL. El diseo fsico parte del diseo lgico y resulta en la descripcin de la
implementacin de la BBDD en memoria secundaria, es decir, estructuras de almacenamiento y los
mtodos para acceder de forma eficiente a la informacin.
El objetivo de eficiencia tiene en cuenta aspectos concretos del SGBD sobre el que se implemente. Los
aspectos que debe tener en cuenta el diseo fsico, entre otros son ndices, estrategia de gestin del
espacio de almacenamiento, particionado de ficheros o el diseo de constricciones.
Las estructuras fsicas se soportan en la forma de gestin de archivos del SO, por lo que un SGBD puede
depender de esta caracterstica. El objetivo es cumplir los requisitos del usuario, que al final podran
resumirse en dos: rendimiento y disponibilidad.
El rendimiento se asocia al tiempo de respuesta y la capacidad. Lo que se tarda en ejecutar una instruccin
y el nmero de transacciones que el sistema es capaz de responder por unidad de tiempo. En general,
estos tiempos son un tanto aleatorios y su especificacin se da como valor medio.
La disponibilidad puede entenderse como el tiempo durante el que el sistema est activo. Para medirlo se
usan tiempos estadsticos como el tiempo medio entre fallos, de parada o similares.
Por tanto, el diseo fsico debe justificar las decisiones de implementacin en funcin de la especificacin
de requisitos del usuario o peticionario de forma que adece correctamente la BBDD a instalar.

183
TEMA 41. UTILIDADES DE LOS SGBD PARA EL DESARROLLO DE APLICACIONES. TIPOS.
CARACTERSTICAS.

1. INTRODUCCIN
2. UTILIDADES DE LOS SGBD PARA EL DESARROLLO DE APLICACIONES
3. TIPOS
3.1. Formularios
3.2. Mens
3.3. Informes
4. CARACTERSTICAS

184
1. INTRODUCCIN
El modelo relacional concebido por Codd para BBDD, las organiza en tablas cuyos elementos son filas o
tuplas y los campos se denominan columnas, que representan los atributos de los tipos de entidades. Cada
tabla corresponde a un tipo de entidad sin informacin repetida. La operacin se basa en lgebra y clculo
relacional, es decir operaciones lgicas entre conjuntos que por tanto afectan a tablas, no a registros.
El resto de BBDD no responde tanto a modelos tericos como a soluciones de tratamiento de datos o
gestores de ficheros. En un gestor de ficheros cada BBDD es un fichero, que se divide en varios registros a
su vez formados por campos que describen atributos de las entidades a clasificar.
En la tabla se presenta la
relacin entre conceptos y el
tratamiento de esa
informacin por parte de los
gestores de ficheros y las
BBDD relacionales
2. UTILIDADES DE LOS SGBD PARA EL DESARROLLO DE APLICACIONES
El desarrollo de aplicaciones mediante BBDD relacionales se basa en lenguajes de consulta y programacin
especficos que suelen incluir los SGBD. Estos lenguajes para BBDD son similares a los convencionales en
cuanto a estructura, pero con diferencias en cuanto a instrucciones y operaciones. Las instrucciones pueden
agruparse en instrucciones generales, de BBDD y SQL.
Las instrucciones generales, son parecidas en funcin a las de un lenguaje de programacin tpico e
incluiran instrucciones de control, declaracin de variables, asignacin, E/S, etc. Las instrucciones propias
de BBDD son las propias para su gestin, entre las que se encuentran las de uso de tablas, creacin de
consultas o impresin de formularios. Las instrucciones SQL son las de ese lenguaje de consulta y suelen
ser incluidas en la mayora de SGBD debido a su amplia difusin, prcticamente estndar.
La creacin y ejecucin de un programa sigue los pasos comunes al desarrollo, es decir, la generacin del
cdigo fuente, compilacin, enlace y ejecucin. En algunos SGBD la ejecucin puede ser interpretada, con
lo que no habra enlace, siendo comn la inclusin de utilidades de depuracin.
Una aplicacin es un programa que automatiza una tarea. El desarrollo de aplicaciones mediante SGBD
tiene por objetivo la generacin de programas para gestionarla. En general, la utilizacin de la aplicacin se
realizar mediante mens que faciliten las tareas habituales sobre la BBDD.
Las aplicaciones no son independientes del SGBD ya que ste debe arrancarse para ejecutar la aplicacin y
su rendimiento depender de la potencia del SGBD, ya que las acciones y programas de la aplicacin usan
las instrucciones que provee el SGBD.
El desarrollo de aplicaciones suele realizarse con herramientas que se identifican con el nombre genrico
de Generador de Aplicaciones, cuyo propsito es facilitar la construccin de estos programas omitiendo u
ocultando detalles de la programacin pura. El generador de aplicaciones proporciona un entorno de diseo
que facilita la creacin de objetos, mens, procedimientos y acciones sobre ellos utilizando las sentencias
necesarias que proporciona el SGBD.
En el desarrollo de una aplicacin se pueden distinguir cuatro etapas, la definicin del entorno, de los
objetos, la asignacin de acciones y la generacin del cdigo.
Definicin del entorno. Es la definicin de la aplicacin, en general con un formulario que define su entorno,
es decir, el nombre de la aplicacin, su men principal y la BBDD a emplear. Esa informacin sirve para
crear dos programas que describen el sistema de mens y las acciones asignadas. El nombre ser el del
programa que genere el SGBD y el ndice ser el asociado con la BBDD especificada.
El men principal podr ser de barra, desplegable o batch. Las opciones de barra y desplegable pueden
definirse en el generador de aplicaciones, mientras que el batch es un proceso por lotes en secuencia que
podr abrir distintos mens. Una vez definido en entorno de la aplicacin, se guardan los ficheros
generados y se pasa a definir los objetos. En general, los mens desplegables dependen de una opcin de
un men de barra horizontal, de forma que se despliega al seleccionar una opcin. Pueden usarse mens
de aparicin que tambin podrn aparecer de forma independiente.
Definicin de objetos. Los objetos son entidades que presentan alguna propiedad o permiten realizar una
accin. Se suelen disear grficamente y asignarles acciones de las que ofrece el SGBD. El generador de
aplicaciones generar el cdigo necesario para implementar el objeto y sus acciones. Si el objeto es un
men o proceso por lotes, se trata como un contenedor con otros objetos u opciones a los que asignar una
accin del SGBD.

185
Las cajas de listas son objetos con nombres de ficheros, campos o contenidos de campos de la BBDD.
Funcionan como los mens, permitendo realizar una seleccin de su contenido y disponer de la informacin
por seleccin. Hay tres tipos de cajas de listas, las de ficheros, que contienen nombres de fichero, de
estructuras, que contienen nombres de campo y de valores, con contenido de campos de BBDD.
Los procesos por lotes son objetos que especifican una secuencia de operaciones a ejecutar definida en un
men. Funcionan de forma transparente al usuario y el ejemplo tpico es el de copias de seguridad. Se
definen de forma similar a los mens y se asigna la accin de cada elemento del proceso que podr
invocarse desde cualquier men.
Asignacin de acciones. Una vez definidos mens y objetos pueden asignarse acciones a cada opcin de
los mens. Con los desplegables se puede elegir el tipo de accin a asociar que tendr su correlacin en las
opciones que ofrezca el SGBD. Es habitual encontrar opciones para desplegar mens nuevos o ejecutar un
programa de la aplicacin, permitiendo personalizar la ejecucin.
Generacin de cdigo. Es la ltima etapa del desarrollo y se implementar en el lenguaje que utilice el
SGBD. Para ello podr usarse las opciones del Generador de Aplicaciones, tales como Iniciar generacin o
Visualizar durante generacin. La primera permite generar el cdigo y la documentacin, que muestra los
objetos definidos y las acciones especificadas sobre ellos y crea los bloques de ficheros de cdigo cdigo
fuente y los ficheros de documentacin de programa. La opcin Visualizar har que se muestre como se
est generando la documentacin.
El desarrollo puede ser complejo si se trata de una aplicacin grande, caso en que debe estructurarse ms
y seguir un procedimiento que siga algunos pasos como los siguientes.
1. Definir los objetivos y funcionalidad. Es una fase similar a la captura de requisitos, donde se debe
especificar lo ms clramente posible la funcionalidad del programa. Es una definicin descendente donde
se realiza un planteamiento global para ir descendiendo hasta los detalles. Dividir el desarrollo en partes u
objetivos menores facilitar el trabajo de definicin.
2. Diseo de la BBDD. Consiste en definir la BBDD y sus componentes, tales como visualizaciones o
formularios y que sern utilizados por la aplicacin.
3. Diseo de mens y procesos por lotes. Es la conceptualizacin del men principal y los secundarios. El
diseo es necesario para evitar problemas antes de enfrentarse al Generador de Aplicaciones directamente.
4. Desarrollo. Se refiere al trabajo sobre el Generador de Aplicaciones que dar como resultado el cdigo de
la aplicacin.
5. Pruebas. Cada parte del desarrollo y una vez se obtiene la aplicacin completa se han de realizar las
pruebas pertienentes para verificar que se cumple con las especificaciones. Superada la fase de pruebas, la
aplicacin podr ponerse en explotacin.
3. TIPOS
3.1. Formularios
El desarrollo de aplicaciones mediante SGBD suele incorporar formularios para facilitar las operaciones. Las
utilidades ofrecidas por los SGBD ofrecen formularios para dar formato de pantalla para las especificaciones
y estarn referidos a los elementos de la BBDD sobre la que operen. Se distinguen dos tipos de formularios,
los de consultas (vistas) y los formularios de edicin de datos.
Formularios de consultas. Un formulario de consulta permite indicar cmo recuperar la informacin
almacenada en las tablas. La consulta indicar al SGBD qu datos recuperar. Las consultas sern de
seleccin, referencia cruzada, unin o accin.
Las consultas de seleccin permiten recuperar datos de una tabla o la combinacin de varias. Las de
referencia cruzada presentan la informacin con ttulos en filas y columnas, ofreciendo gran cantidad de
datos en un formato ms legible. Las consultas de unin permiten combinar campos de dos o ms tablas o
consultas. Las consultas de accin permiten realizar cambios masivos en los datos que afectarn de
manera similar a todo un conjunto de registros. Se distinguen cuatro tipos de consultas de accin: creacin
de tabla, eliminacin de registros, adicin de datos y actualizacin.
Una consulta debe definir qu elementos se usarn en cada seccin en que se divide, los campos que se
presentarn en pantalla, los criterios de consulta y acciones a realizar, entre otros. El diseo de consultas
sigue las normas tpicas de manejo de programas, resulta intuitivo y realiza la comprobacin de errores
habituales como la concordancia de datos. Adems los SGBD ofrecen funciones predefinidas como sumas,
mximos, promedios, etc.
La combinacin de tablas puede ser interna o externa. La interna obliga a la concordancia de datos entre
tablas para obtener la informacin de consulta. Si no se exige concordancia es una combinacin externa.

186
Formularios de edicin de datos. Los formularios son facilidades sw
que permiten realizar operaciones sobre BBDD de forma grfica e
intuitiva, son eficientes, ahorran tiempo y errores. Los SGBD suelen
incluir herramientas de diseo de formularios para automatizar
tareas habituales. La apariencia del formulario se almacena en los
archivos generados en su diseo.
3.2. Mens
Un men es una forma de agrupar comandos para facilitar la labor del usuario. Los SGBD suelen incorporar
facilidades de diseo de mens, agilizando la programacin al evitar la repeticin de cdigo. Para crear un
men se deben definir las listas desplegables con las opciones que se ofrezcan y sus acciones asociadas.
3.3. Informes
Los diseos para impresin suelen incorporar utilidades llamadas informes, que puede definirse como un
diseo de presentacin de datos orientado a la impresin (en cualquiera de sus formas), como puedan ser
facturas, listados, etc. El diseo de la seccin de contenidos aunque es libre, se recomienda como
referencia, la estructuracin en seis partes:
Encabezado del formulario. Que contendr el ttulo y aparecer en la primera pgina.
Encabezado de pgina. Con ttulos, encabezados de columna e informacin que desee incluirse al principio
de cada pgina.
Detalle. Es la parte en que se presentan los registros, lo que obliga a definir el origen de los mismos, ya sea
una tabla o consulta.
Resumen. Es opcional y se compone de campos virtuales o calculados, que presentan informacin
resumida como totales, medias o similares.
Pie de pgina. Presenta al final de cada pgina informacin considerada necesaria o de cortesa como
nmero de pgina, fecha u otra informacin del estilo.
Pie de formulario. Es opcional y se refiere a informacin que slo aparece al final de la ltima pgina.
4. CARACTERSTICAS
En cuanto a las caractersticas de los formularios, la informacin que procesa, se obtiene de una tabla, una
consulta o ser independiente, como por ejemplo una imagen. Los formularios se pueden generar con
asistentes que facilitan su creacin al automatizar la generacin de cdigo.
Si el formulario trabaja sobre una BBDD, se debe conectar a una tabla, si todos los datos del formulario se
refieren a la misma o a una consulta de seleccin si los datos pertenecen a distintas tablas.
De las caractersticas del men, destacan las barras de men, que tendrn un nombre identificativo para
que el programador asocie listas desplegables y presenten un texto de visualizacin.
Del mismo modo se opera con cada opcin de lista desplegable y sus acciones. Una caracterstica derivada
es la posibilidad de definir atributos (controlables en tiempo de ejecucin) que afectarn a la apariencia y
actividad de la opcin. Por ejemplo, una opcin de un men podr estar activa o no segn el contexto de
actuacin.
Entre las caractersticas de las utilidades que permiten la generacin de informes destacan la estructuracin
del informe que ofrece el SGBD, la posibilidad de elegir parmetros de impresin, definicin de dispositivos,
gestin de colas, estilos de impresin y otros.

187
TEMA 42. SISTEMAS DE BBDD DISTRIBUIDOS

1. INTRODUCCIN
2. SISTEMAS DE BBDD DISTRIBUIDOS
2.1. Caractersticas
2.2. Componentes
2.3. Tipos y estructura
2.4. Diseo de BDD

188
1. INTRODUCCIN
En la dcada de los 70 y principios de los 80 la tendencia era centralizar las BBDD. Pero en paralelo a la
evolucin de las autopistas de la comunicacin y el software de red, se invirti la tendencia hacia la
descentralizacin. Hoy dia esta tendencia puede resumirse en cloud, o cloud computing.
Por tanto, los sistemas de BBDD integran estas dos filosofas: BBDD y capacidad de la red. As puede
definirse una BBDD distribuida como un sistema de BBDD en que los datos estn almacenados en red. Se
comparte un esquema de datos global y se ejecutan operaciones a nivel local o global.
Puede entenderse tambin como un conjunto de localidades que se conocen y por tanto colaboran en la
ejecucin de las operaciones sobre el sistema. De esta forma la diferencia entre una BBDD centralizada y
una distribuida puede entenderse desde la localidad de los datos: en las primera una sla y en la segunda
varias. Cada equipo se da en llamar nodo o emplazamiento.
2. SISTEMAS DE BBDD DISTRIBUIDOS
Una base de datos distribuida (BDD) es un conjunto de varias BBDD lgicamente relacionadas y
distribuidas en diferentes lugares conectados por una red de comunicaciones. De esta forma, un usuario
puede acceder a los datos del sistema, desde cualquier lugar donde tenga conexin a la red.
Un sistema de gestin de base de datos distribuida (SGBDD) gestiona el sistema y proporciona un
mecanismo de acceso que hace que la distribucin sea transparente a los usuarios, ocultando los detalles
de su implementacin. Por tanto, el SBDD es el conjunto formado por la BDD y el SGBDD.
El entorno habitual de un SGBDD es un conjunto de nodos que cuentan con un sistema de proceso de
datos que incluye una BBDD local, un SGBD y comunicacin a travs de LAN o WAN.
El problema principal de una BDD es el de concurrencia. Al realizarse las operaciones en red, si coinciden
dos o ms al tiempo y sobre un mismo elemento de la BBDD o se produce un error del sistema, la
informacin puede corromperse. El concepto que subyace es la "ejecucin consistente" o "proceso fiable",
referidos a consultas.
Una transaccin se entiende, en el dominio de las
BBDD, como una operacin bsica consistente y fiable.
Una BBDD est en un estado consistente si obedece
todas las restricciones de integridad definidas en ella.
Los cambios de estado ocurren debido a operaciones
sobre la informacin. Durante la ejecucin de una
transaccin, la BBDD podra entrar temporalmente en
un estado inconsistente. El matiz es asegurar que se
regresa a un estado consistente al terminar la
transaccin.
La gestin de transacciones persigue la transparencia de las acciones concurrentes a una BBDD y en la
gestin de errores. Una transaccin siempre termina, aun con errores. Si termina con xito se dice que se
ha hecho un commit. Si se detiene sin terminar su tarea, se dice que aborta. Cuando ocurre esto, se
detiene su ejecucin y sus acciones se descartan (undone) regresando al al estado anterior. Esta operacin
tambin se conoce como rollback. Las propiedades de una transaccin son:
Atomicidad. Una transaccin se trata como una unidad de operacin. Por tanto, o se realizan todas las
acciones de la transaccin o no se realiza ninguna. Si una transaccin se interrumpe, sus resultados
parciales se deshacen. Esta actividad sobrecarga el sistema y se conoce como recuperacin de
transacciones. Asegurar la atomicidad por cadas del sistema se conoce como recuperacin de cadas.
Consistencia. Es la correccin de una transaccin. Por ello, las transacciones no violan las restricciones de
integridad de una base de datos.
Aislamiento. Una transaccin no puede revelar sus resultados a otras transacciones concurrentes antes de
su commit. Si varias transacciones se ejecutan a la vez, los resultados deben iguales a si se hubieran
ejecutado secuencialmente.
Durabilidad. Es la propiedad que asegura que una vez que una transaccin hace commit, sus resultados
son permanentes y no se borran de la BBDD. Por tanto, los SGBD aseguran que los resultados de una
transaccin sobrevivirn a errores del sistema. Se motiva la recuperacin a un estado consistente.
Un SGBDD confiable es aquel que puede continuar procesando solicitudes an cuando el sistema sobre el
que opera no es confiable. Es decir, el SGBDD debe seguir ejecutando las solicitudes de usuario sin violar
la consistencia de la base de datos. Disear un sistema confiable requiere identificar los tipos de fallos con
los que el sistema debe tratar. Los errores tpicos son:

189
De transacciones. Los errores en transacciones se pueden producir por datos de entrada incorrectos o la
deteccin de un interbloqueo. La forma usual de afrontarlos es abortarlas. Se ha determinado que el 3% de
las transacciones abortan de manera anormal.
Del sistema. En un SBDD se pueden presentar fallos en el procesador, la MP o la fuente de energa de un
nodo. En este tipo de fallos se asume que el contenido de la MP se pierde, pero el contenido del
almacenamiento secundario es seguro. Se diferencian fallos parciales y totales del nodo. Un fallo total
afecta a todos los nodos del sistema distribuido. Un fallo parcial slo a algunos nodos.
Del almacenamiento. Son errores en los dispositivos de almacenamiento secundario de las BBDD. Se
pueden presentar por errores del SO, del controlador del disco o del disco mismo.
De comunicacin. Para evitarlos se puede dividir la red en varias subredes.
2.1. Caractersticas
Suelen enumerarse como caractersticas de un SBDD las reglas de Date. Se basan en la idea que un SBDD
debe funcionar como si fuera local. As, se tienen:
Autonoma local. Los nodos de un SBDD deben ser lo ms autnomos posible.
No depender de nodos centrales. Todos deben ser tratados igual.
Operacin continua. Fiabilidad y la confiabilidad.
Independencia de localizacin. La localizacin fsica de los datos debe ser transparente.
Independencia de fragmentacin y replicacin.
Proceso de consultas y gestin de transacciones distribuida.
Independencia del hardware, SO y red
Independencia del SGBD. Permitir la heterogeneidad
Otros aspectos de importancia son la transparencia de la red y la autonoma local. El primero se refiere a la
forma en que se ocultan los detalles de la distribucin en la red. La autonoma local es el grado mximo en
que el administrador de un nodo puede ser independiente del resto del SBDD.
La transparencia de red se basa en la definicin de los elementos de datos, que es una relacin, un
fragmento o una replica. Puede ser centralizada o distribuida. La distribuida tiene prefijos, pierde
transparencia. La centralizada puede suponer un cuello de botella. La transparencia en la replicacin y la
fragmentacin, indica que el sistema debe saber como se han dividido los datos. La transparencia de
localizacin indica que el sistema debe saber dnde estn los datos
Las ventajas de la autonoma local son que el control sobre sus datos del administrador local (se distribuye
la tarea de administracin), que los fallos de un nodo no afectan tanto a otros nodos y su recuperacin es
ms rpida. Adems, se puede acceder a los datos locales sin el catalogo global y la actualizacin de
software se independiza.
2.2. Componentes
Otros aspectos globales, como la conexin con otros servidores o nomenclatura de datos deben ser tenidos
en cuenta. Por ello se pueden identificar cuatro componentes principales de un SGBDD:
SGBD local (SGBDL). Es un SGBD estndar, responsable de controlar los datos locales en cada nodo con
una BBDD.
Componente de comunicaciones de datos (CD). Es el software que permite que los nodos se comuniquen.
Contiene informacin de los nodos y los enlaces.
Catlogo global del sistema (CGS). Mantiene informacin especfica de la naturaleza distribuida del sistema,
como los esquemas de fragmentacin, replicacin y asignacin. El catlogo puede ser gestionado como una
BDD, por lo que puede estar fragmentado y distribuido, replicado o centralizado.
Procesador de consultas. Transforma peticiones de alto nivel a peticiones de bajo nivel. Sus funciones son
la descomposicin de consultas en elementos de lgebra relacional, la localizacin de datos, usando el
catalogo del sistema, la optimizacin global y la optimizacin local.
2.3. Tipos y estructura
Los SBDD se pueden clasificar con tres criterios: tipo, distribucin de los datos, y autonoma de los nodos.

190
Tipo de SBDD. Pueden ser homogneas (un mismo SGBD) o heterogneos (con distintos SGBD)
Distribucin de los datos. Distingue sistemas centralizados o no. Son centralizados si los nodos se
encuentran en la misma localizacin aunque puedan ser independientes. Los no centralizados reparten los
nodos en distintas localidades y se conectan en red.
Autonoma de los nodos. Les dan carcter de compuestos, federados o multibase. Los nodos compuestos
disponen de poca autonoma, sus SGBD estn bajo el control del sistema distribuido y su esquema local es
definido por el administrador de la BDD. Los SBDD federados son una coleccin de sistemas de BBDD
cooperativos y autnomos. Una parte del esquema lo define el administrador local, y otra el administrador
del sistema. Distingue consultas locales y globales, que implican el acceso a las otras BBDD federadas. Los
SBDD multibase o federados dbilmente acoplados son un conjunto de sistemas de BBDD que no
cooperan. Es el usuario con herramientas quien usa dichas BBDD de forma conjunta.
2.4. Diseo de BDD
El diseo de SBDD distingue 2 estrategias: ascendente, en que se parte de BBDD existentes con el objetivo
de un esquema global y descendente, en que se disea desde cero. A partir del esquema global, se disean
los esquemas locales.
La estrategia descendente supone el caso general. Adems de las consideraciones de diseo no distribuido,
se ha de definir dnde se almacenaran los datos. El enfoque habitual usa dos pasos, la fragmentacin de
datos (se dividen de la forma ms eficiente) y la asignacin de los fragmentos (se sitan de forma ptima,
segn el uso que se vaya a dar). Cuanta ms informacin se tenga sobre el uso que se har de los datos,
ms eficiente ser el diseo.
Para la fragmentacin de datos se puede usar replicacin y fragmentacin. En la replicacin los datos estn
en ms de un segmento. Con fragmentacin los datos se dividen en varios segmentos. Hay varios tipos de
fragmentacin: horizontal (se divide en filas), vertical (se divide en columnas) o en celdas (vertical y
horizontal). Para que una fragmentacin sea correcta debe cumplirse la complecin (un dato se encuentra al
menos en un fragmento, reconstruccin (existe una operacin relacional que aplicada a los fragmentos
permite reconstruir la relacin) y la disyuncin (un dato slo est en un fragmento). Pueden darse casos
mixtos, en los que la fragmentacin no sea una particin y existan datos duplicados en distintos segmentos,
caso en que no se cumplira la disyuncin.
La asignacin de los fragmentos posee el problema que dado un conjunto de fragmentos Fn, una red
formada por un conjunto de localidades Ln, y un conjunto de aplicaciones Qn que se ejecutan, debe
encontrarse la distribucin ptima de F sobre L. Los criterios de optimizacin suelen ser los de coste mnimo
(de consulta, actualizacin) y rendimiento (tiempo de respuesta y productividad).
Por fin, las ventajas de los SBDD las resumen sus caractersticas: uso compartido de informacin,
delegacin de la administracin del sistema, fiabilidad, disponibilidad y agilidad del proceso. Sin embargo,
ofrece los inconvenientes de una mayor complejidad de proceso, coste del desarrollo software, ms
probabilidad de errores y mayor tiempo de proceso.

191
TEMA 43. ADMINISTRACIN DE SISTEMAS DE BBDD

1. INTRODUCCIN
2. ADMINISTRACIN DE SISTEMAS DE BBDD
2.1. Roles
2.2. Funciones
2.3. Herramientas
2.4. Seguridad

192
1. INTRODUCCIN
La administracin de sistemas de BBDD recae en la figura del administrador. Su labor consiste en la
definicin de su responsabilidad, funciones y procedimientos de trabajo. En principio estas tareas son
independientes del SGBD concreto que se utilice en la organizacin.
2. ADMINISTRACIN DE SISTEMAS DE BBDD
2.1. Roles
El administrador de la BBDD es la persona o grupo de personas que gestiona el sistema, asegura su
correcto funcionamiento y posee la responsabilidad de su seguridad e integridad.
Segn ANSI, las funciones del administrador de una BBDD se pueden organizar en 3 niveles, distinguiendo
tres roles de administracin, que coinciden con los niveles que se identifican para una BBDD.
Administrador de la organizacin. Encargado del diseo lgico y conceptual.
Administrador de la BBDD. Se encarga del diseo fsico, mantenimiento, rendimiento y seguridad.
Administrador de Aplicaciones. Crea las vistas, aplicaciones y programas para la gestin de la BBDD.
2.2. Funciones
Las funciones del administrador de BBDD pueden agruparse en 3 reas de responsabilidad.
Definicin del esquema de la BBDD. Es misin del administrador la definicin de los esquemas conceptual,
interno y externo. Por tanto, se trata del anlisis, la estructura de almacenamiento de la informacin y el
diseo de vistas.
Gestin del rendimiento. Establecer la forma de controlar y medir el funcionamiento de la BBDD para
obtener un rendimiento ptimo, en funcin de las caractersticas o requisitos esperados.
Gestin de la seguridad. Se refiere a las medidas a implementar para garantizar la seguridad de la BBDD,
incluyendo la integridad de la informacin y el respaldo y recuperacin de la misma.
2.3. Herramientas
Para cumplir con sus funciones y responsabilidades, un administrador de BBDD en general, hace uso de las
herramientas tpicas de su entorno. Las ms directas son las que ofrece el propio SGBD, entre las que se
suelen encontrar utilidades de copias de seguridad y restauracin, gestin de usuarios, permisos,
diccionario de datos, etc.
Existen tambin herramientas CASE para facilitar tareas de ingeniera de software como la documentacin.
Para la gestin del rendimiento, puede hacerse uso de simuladores, cuyos resultados, en general en forma
de grficos y estadsticas, sirven de orientacin para la optimizacin de la BBDD.
2.4. Seguridad
La seguridad de la BBDD cubre varios aspectos. El primero, el control del acceso a la misma, asegurando,
en lo posible, que el usuario que accede, sea quien dice ser. Otro aspecto es la integridad, referido a que
las acciones que se intentan realizar sean efectivamente esas y que la informacin es consistente.
Los permisos de cada usuario en la BBDD los otorga el administrador y estarn en consonancia con lo que
cada usuario deba hacer o no, es decir, de su perfil. Las dos herramientas para gestionar este aspecto son
la vista y los permisos de usuario.
Una vista permite seleccionar la informacin sobre la que trabajar un usuario, de forma que implcitamente,
se oculta la que no se debe mostrar.
Los permisos de usuario limitan el acceso a aquellos que se autoricen. As, a una vista se pueden aplicar
permisos de usuario como si se tratase de una tabla. Por ejemplo, en una BBDD de pacientes, puede
interesar que cierto perfil de usuario acceda a los datos de contacto, pero no al historial clnico, por tanto,
una vista, recuperar de la BBDD slo la informacin relevante a cada tarea.
Por fin, un administrador debe tener en cuenta la integridad de la BBDD, que en general identifica tres
aspectos a cubrir, la integridad de dominios, general y sobre tablas base.
La integridad de dominios se refiere a la limitacin en los valores que podrn tomar los atributos o su tipo de
datos. La integridad general se refiere a las restricciones sobre las columnas de las tablas. La integridad
sobre las tablas se refiere a las restricciones de diseo que afectan a claves primarias, forneas, clusulas
u otros aspectos.

193
TEMA 44. TCNICAS Y PROCEDIMIENTOS PARA LA SEGURIDAD DE LOS DATOS.

1. INTRODUCCIN
2. TCNICAS Y PROCEDIMIENTOS PARA LA SEGURIDAD DE LOS DATOS
2.1. Tcnicas
2.1.1. Proteccin de ficheros
2.1.2. Proteccin de tablas
2.1.3. Proteccin de BBDD
2.2. Procedimientos

194
1. INTRODUCCIN
Las tcnicas y procedimientos de seguridad de los datos surgen de la necesidad de controlar la ingente
cantidad de informacin que gestionan las organizaciones. La informacin no puede verse comprometida y
debe evitarse un uso inadecuado, por el perjuicio que pueda ocasionar.
Del mismo modo, es necesario que la informacin est disponible para el que est autorizado a utilizarla.
Con lo cual, se debe establecer un compromiso entre seguridad y disponibilidad. Las tcnicas y
procedimientos se orientan entonces a garantizar las cuatro propiedades de la seguridad: confidencialidad,
autenticidad, integridad y disponibilidad.
2. TCNICAS Y PROCEDIMIENTOS PARA LA SEGURIDAD DE LOS DATOS
La seguridad de la informacin define una serie de conceptos para limitar su entorno de trabajo. Estn
presentes en el vocabulario colectivo, pero conviene repasar los ms representativos. As, se puede definir
un dato como la informacin organizada para su anlisis y toma de decisiones. Un dato confidencial es
aquel al que se limita su disponibilidad. Dato sensible es el que no es confidencial, pero permite inferir
informacin que si lo es. Un dato seguro es el que no se conoce o que no aporta informacin que deba
protegerse. Por fin, un intruso es aquel que compromete informacin sensible de un sistema de informacin.
La necesidad de las tcnicas y procedimientos para la seguridad de los datos se debe a criterios como la
intimidad de las personas, es decir, la libertad a decidir qu desea un individuo que se sepa sobre si mismo.
Se entiende como un derecho. La intimidad deriva en la idea de confidencialidad de esa informacin. La
combinacin del derecho a la intimidad y la necesidad de confidencialidad suelen regularse legalmente.
Por tanto, el problema puede centrarse en la seguridad en la divulgacin de informacin. Definir divulgacin
no es sencillo. Puede depender del contexto que la identificacin de un individuo o cierta informacin ya sea
un compromiso, pero en otros casos, el compromiso requerir ms informacin y por tanto se siga teniendo
una posicin de seguridad. Por tanto, un compromiso (prdida de la seguridad) de informacin se da
cuando se divulga informacin sensible o confidencial del sujeto al que aplica.
El compromiso de la informacin entonces puede clasificarse en funcin de lo que informa. Este
compromiso se suele denominar divulgacin y se pueden diferenciar tres criterios de clasificacin: tipo, valor
y objetivo.
El criterio del tipo, diferencia divulgacin exacta y estadstica. La divulgacin exacta se da al conocer el
valor exacto de la informacin. La estadstica se produce cuando una informacin no exacta permite inferir
claramente la informacin objetivo.
El criterio del valor, diferencia divulgacin verdadera y aparente. La divulgacin verdadera se da cuando el
valor exacto o estadstico conocido se corresponde con el valor real de la informacin cuando se da el
compromiso. Si no coincidieran, sera una divulgacin aparente.
El criterio de objetivo diferencia divulgacin positiva y negativa. La divulgacin positiva o interna es la que se
da cuando la informacin comprometida pertenece al sujeto en cuestin. En la negativa o externa, la
informacin comprometida no es la del objetivo, sino de su conjunto complementario.
Las tcnicas y procedimientos para la seguridad de los datos se orientarn a evitar cualquier tipo de
compromiso o divulgacin de informacin. Esto debe tener en cuenta la disponibilidad de informacin
indirecta que pueda permitir deducir informacin confidencial a partir de informacin tangente. Este
problema se da en llamar problema inferencial. Evitar este tipo de conclusiones es un aspecto muy
importante para la definicin de tcnicas eficientes de proteccin de datos.
Algunos factores a tener en cuenta para implementar las soluciones que aseguren esta informacin
tangencial pueden ser la informacin geogrfica, como la que recogen en forma de metainformacin
algunos dispositivos al realizar fotografas, pesos muestrales (informacin de pertenencia a un grupo o
clasificacin) o la informacin externa o pblica.
El procedimiento seguido para realizar una inferencia puede servir de base para la implementacin de otros
procedimientos y tcnicas inversos que logren lo contrario, precisamente, la proteccin de la informacin.
2.1. Tcnicas
Las tcnicas de proteccin de informacin deben cubrir los tres aspectos de su produccin, la generacin, el
proceso y la difusin. Quizs, las ms conocidas por el pblico en general, sean las que se aplican en la
fase de difusin (antivirus, cortafuegos, etc.).
Las tcnicas se clasifican de forma natural, siguiendo el criterio del formato en que los datos se ponen en
produccin, es decir, se publican. En general, se distinguen tres formas de difundir los datos, con ficheros,
con tablas y mediante consultas a BBDD.

195
2.1.1. Proteccin de ficheros
Las tcnicas de proteccin de ficheros (de registros individuales) se orientan a proteger el compromiso de
informacin confidencial evitando la identificacin. Por tanto, se trata de proteger atributos como puedan ser
nombres, direcciones, etc. que no suelen ser pblicos. Sin embargo, otros atributos como la edad o el sexo
si suelen ser pblicos. Esta informacin permitira identificar el objetivo, la informacin sobre un individuo o
asunto dado.
Las tcnicas de proteccin de ficheros intentan proteger la identificacin de unidades candidatas en la
poblacin y evitar la difusin de valores inusuales de variables que favorezcan dicha identificacin. Disponer
de informacin de una muestra representativa de la poblacin en estudio puede servir de orientacin. Del
mismo modo las anomalas o registros con informacin singular tambin representan informacin que puede
permitir inferir datos del objetivo y suponer una medida o estimacin del riesgo de compromiso. Se pueden
clasificar las tcnicas en tcnicas de restriccin, de perturbacin y de encriptacin.
Tcnicas de restriccin. Se basan en limitar la cantidad de informacin publicada con medidas como la
recodificacin o la supresin local. La recodificacin consiste en unificar categoras en variables cualitativas
o agrupar magnitudes con valores extremos en variables cuantitativas (top-bottom coding). La supresin
local consiste en suprimir la publicacin de valores sensibles que puedan generar inferencias.
Tcnicas de perturbacin. Se basan en modificar valores, permitiendo su publicacin pero de forma que no
se permita conocer el valor exacto. Se sealan medidas como el redondeo aleatorio, la introduccin de
ruido, la sustitucin y la microagregacin.
El redondeo aleatorio consiste en redondear el valor de ciertos registros. La introduccin de ruido introduce
errores controlados en el valor de los datos. La sustitucin cambia valores de los datos de forma que la
informacin pueda ser tratada estadsticamente (se mantiene la estructura de correlacin), sin riesgo de
identificacin. La microagregacin consiste en agrupar valores de los datos de acuerdo a criterios de
ordenacin, de forma que en cada registro el valor se cambia por medias, por ejemplo.
Tcnicas de encriptacin. Se basan en codificar la informacin de forma ininteligible a un intruso y que a la
vez su decodificacin no sea sencilla. Pueden aplicarse en cualquier etapa de la vida de la informacin
(generacin, proceso y difusin) y proporcionan una solucin eficiente al problema de la delegacin segura
de datos (el proceso de la informacin sin conocer su contenido). Asimismo, permiten el trnsito de
informacin entre sistemas garantizando la confidencialidad.
2.1.2. Proteccin de tablas
El uso de tablas para gestionar datos es extremadamente frecuente, lo que exige distinguir tcnicas de
seguridad especficas intentando no mermar la eficiencia. La presentacin de datos en forma agregada no
limita el riesgo de compromiso de la informacin. La frecuencia de valores o valores dominantes pueden dar
o permitir hacer inferencias de informacin sensible.
Para estimar el riesgo de compromiso, se podrn implementar medidas de sensibilidad que determinen si la
informacin de una celda de la tabla contiene o no informacin sensible. El nmero de celdas sensibles en
una tabla determinar el riesgo total de compromiso. Las tcnicas de proteccin de ficheros, pueden ser
aplicadas o adaptadas a tablas.
Como en el caso de los ficheros, la recodificacin agrupa categoras en variables cualitativas o cuantitativas,
de forma que el nuevo valor se considere seguro. El redondeo controlado, se aplica a celdas manteniendo
la aditividad entre filas y columnas, comprobando la consistencia con totales y subtotales.
La supresin de celdas puede no ser suficiente, ya que si existieran datos subtotales o totales podran
permitir recalcular el valor de una celda suprimida. De esta forma, se puede hacer una supresin secundaria
de celdas que sin ser sensibles puedan hacer inferir otros datos que lo sean. Encontrar el patrn de
supresin ptimo (el que aporta seguridad con el mnimo de supresiones) no es trivial.
Por fin, la granularidad, que puede considerarse ms criterio que tcnica, est basada en la distribucin de
celdas unitarias en la tabla. Las celdas unitarias son las que poseen valor 1 en tablas de frecuencias o
contribuciones nicas en tablas de magnitud. Si el nmero de celdas unitarias superan un umbral, la tabla
se considera insegura. Las tcnicas de proteccin aplicadas a datos singulares (que se desvan de la media
o patrones) pueden aplicarse para evitar la granularidad.
2.1.3. Proteccin de BBDD
Las BBDD son fuente inagotable de informacin, y muy importante, metainformacin como estadsticas de
ocurrencia de datos, sus relaciones, etc. El acceso a este tipo de informacin suele ser fcil, aunque a
veces laborioso, con, por ejemplo, consultas secuenciales. En estos principios se basan ataques como
pueda ser SQL Injection.

196
Por ejemplo, realizar una serie de consultas mal formadas a propsito puede generar respuestas del SGBD
que otorguen informacin sobre la estructura de la BBDD y permitir a un intruso realizar consultas bien
formadas, que si no estn filtradas, le podran dar acceso a la informacin objetivo.
Por tanto, basar la seguridad de una BBDD slo en criterios de acceso o permisos puede no ser suficiente.
Las tcnicas de proteccin de datos para este problema inferencial deben orientarse al control de consultas
evaluando el compromiso que suponen las respuestas para la seguridad.
En este sentido, se pueden destacar dos tcnicas de seguridad en BBDD, las auditoras y el camuflaje.
Las auditoras de BBDD intentan controlar las consultas y determinar si una nueva consulta dentro de una
serie, junto con la informacin aportada por las dems supone un riesgo de compromiso para la
informacin. El camuflaje consiste en ocultar la informacin confidencial entre dos valores lmites ofrecidos
como respuesta a una consulta.
2.2. Procedimientos
Los procedimientos para la seguridad de los datos se basan en las tcnicas expuestas, que a su vez se
apoyan en algoritmos matemticos. En general, los procedimientos a nivel conceptual, siguen una
secuencia de estudio de las vulnerabilidades de ficheros, tablas y BBDD.
En el estudio de cada soporte, se decide qu tcnicas aplicar y que sean consideradas oportunas en
funcin del compromiso que supone la difusin de informacin y otros aspectos como la compatibilidad con
E/S en BBDD relacionales. Por fin, los procedimientos aplican las tcnicas y transforman el sistema en otro
ms seguro.
Para ello, y debido a lo complejo de las tcnicas, se puede decir, que se hace imprescindible el uso de
algn tipo de sw, diseado para esta tarea. El sw que trabaja en este campo se oriena al control de la
publicacin de informacin. Aspectos sobre los que se trabaja pueden ser la aplicacin de microagregacin
en variables o el trabajo con grupos de tablas relacionadas. Existe sw especializado que implementa las
tcnicas expuestas, con una eficiencia muy aceptable y otorgando compatibilidad con la evolucin
tecnolgica de nuevos sistemas de informacin y redes de comunicacin.

197
BLOQUE 4. SISTEMAS DE INFORMACIN, APLICACIONES INFORMTICAS E INGENIERA DEL SW
Tema 45. Sistemas de informacin. Tipos. Caractersticas. Sistemas de informacin en la empresa.
Tema 46. Aplicaciones informticas de propsito general y para la gestin empresarial. Tipos.
Funciones. Caractersticas.
Tema 47. Instalacin y explotacin de aplicaciones informticas. Comparticin de datos.
Tema 48. Ingeniera del software. Ciclo de desarrollo del software. Tipos de ciclos de desarrollo.
Metodologas de desarrollo. Caractersticas de las principales metodologas de desarrollo.
Tema 49. Anlisis de sistemas: Modelizacin de tratamientos. Modelo de flujo de datos y control.
Tcnicas descriptivas. Documentacin.
Tema 50. Anlisis de sistemas: Modelizacin conceptual de datos. Tcnicas descriptivas.
Documentacin.
Tema 51. Anlisis de sistemas: Especificacin funcional del sistema. Bsqueda y descripcin de
requisitos funcionales. Especificacin de soluciones tcnicas. Anlisis de viabilidad tcnica y
econmica.
Tema 52. Diseo lgico de funciones. Definicin de funciones. Descomposicin modular. Tcnicas
descriptivas. Documentacin.
Tema 53. Diseo lgico de datos. Transformacin del modelo conceptual a modelos lgicos. Anlisis
relacional de datos. Documentacin.
Tema 54. Diseo de interfaces de usuario. Criterios de diseo. Descripcin de interfaces.
Documentacin. Herramientas para la construccin de interfaces.
Tema 55. Diseo fsico de datos y funciones. Criterios de diseo. Documentacin.
Tema 56. Anlisis y diseo orientado a objetos.
Tema 57. Calidad del software. Factores y mtricas. Estrategias de prueba.
Tema 58. Ayudas automatizadas para el desarrollo de software (herramientas CASE). Tipos.
Estructura. Prestaciones.
Tema 59. Gestin y control de proyectos informticos. Estimacin de recursos. Planificacin
temporal y organizativa. Seguimiento.
Tema 60. Sistemas basados en el conocimiento. Representacin del conocimiento. Componentes y
arquitectura.

BIBLIOGRAFIA
Programacin estructurada y fundamentos de programacin. Snchez Chamorro y otros. McGraw Hill.
Metodologa de la programacin. Alcalde E y Garca. McGraw Hill.
Apuntes para Algoritmos y estructuras de datos I y II. Varios profesores UPV.

Recursos web:
http://www.etsit.upm.es/
http://informatica.uv.es/iiguia/TSTD/
http://es.wikipedia.org/wiki/Portada
http://www.mitecnologico.com
http://ditec.um.es
http://www.microsoft.com/downloads/en/confirmation.aspx?familyid=B996E1E7-A83A-4CAE-936B-
2A9D94B11BC5&displaylang=en

198
TEMA 45. SISTEMAS DE INFORMACIN. TIPOS. CARACTERSTICAS. SISTEMAS DE INFORMACIN
EN LA EMPRESA.

1. INTRODUCCIN
2. SISTEMAS DE INFORMACIN
3. TIPOS
4. CARACTERSTICAS
5. SISTEMAS DE INFORMACIN EN LA EMPRESA

199
1. INTRODUCCIN
Las organizaciones se dividen en unidades funcionales menores como reas o departamentos. Cada parte
de la organizacin forma parte de su sistema de informacin, del que obtiene los datos necesarios para
realizar su trabajo y al que contribuye con el resultado del mismo.
La operativa del sistema de informacin implica flujos de informacin entre subsistemas y la descripcin de
su dinmica comprende datos y su tratamiento. Los sistemas de informacin permiten tratar estos datos y la
documentacin administrativa de forma automatizada para su explotacin. La explotacin del sistema
permitir incrementar la productividad de la organizacin y proporcionar informacin adicional de la marcha
de los procesos, de forma que pueda ser usada para su mejora.
2. SISTEMAS DE INFORMACIN
Los sistemas de informacin tienen por objeto coordinar la accin de cada parte de una organizacin para
lograr la eficiencia del sistema conjunto. El sistema de informacin debe asegurar el correcto flujo de la
misma entre los subsistemas de la organizacin.
Imaginar actualmente un sistema de informacin que no se apoye en herramientas informticas es difcil. La
informacin es quizs el principal activo de las organizaciones y su ingente cantidad requiere un tratamiento
automtico, es decir, informtica, lo que ofrecer la potencia de clculo necesario para su anlisis.
El sistema de informacin de una organizacin puede distinguirse dispuesto en tres niveles. El primero sera
el operacional o transaccional, relativo a la operativa diaria o habitual y materializado en manuales y
procedimientos internos de trabajo. El segundo nivel sera el de informacin administrativa (MIS), dispuestos
para ayudar en la toma de decisiones a los responsables de nivel medio y que estn apoyados en sistemas
informticos y SGBD. Por fin, el tercer nivel estara constituido por sistemas de soporte a la decisin, que
pretenden soportar la toma de decisiones de ms alto nivel y menos estructuradas.
La explotacin automtica de la documentacin administrativa, basada en los sistemas de informacin tiene
como meta deseable la implantacin de un sistema de informacin total integrado, de forma que permita la
implantacin de los tres niveles con los mismos recursos y procesos. En la prctica, la explotacin de la
informacin se realiza con distintas aplicaciones, en mayor o menor grado de integracin.
3. TIPOS
Los sistemas de informacin pueden clasificarse segn distintos criterios. stos suelen ser la funcin que
implementan, el rea funcional a que aplican, , el usuario y el tipo de implementacin.
Segn el tipo de funcin se clasifican en transaccionales y de soporte a la decisin (o recuperacin de
informacin).
Segn el rea funcional a que se aplican, los sistemas de informacin se pueden denominar sistemas de
informacin financieros, contables, etc.
Segn el usuario del sistema, se distinguen sistemas de informacin institucionales (los habituales) y
personales, configurados para uso individual.
Segn su implementacin, se distinguen sistemas de informacin manuales, interactivos, que trabajan de
forma ms o menos inmediata y por lotes, en que las operaciones son diferidas en el tiempo.
4. CARACTERSTICAS
Casi todas las organizaciones tienen caractersticas comunes, por lo que existen similitudes en los sistemas
de informacin y en la forma de explotar la documentacin. La estructura de un sistema de informacin en
una organizacin tpica puede incluir subsistemas como el de RRHH, Clientes, Logstica o Almacn.
Cada subsistema podr dividirse a su vez en otros, como por ejemplo, si se diferenciasen en RRHH los
subsistemas de personal y nminas. Por su parte, el mantenimiento de inventarios precisa de registros que
sean gestionados por el sistema de informacin para ser controlados automticamente.
Los clientes tambin pueden diferenciarse en funcin del servicio que se le preste, por ejemplo, si se trata
de una venta simple, o un servicio tcnico. Otro subsistema clsico es el de contabilidad, encargado de
controlar las transacciones financieras y que suele disponer al menos de dos subsistemas tpicos, el ce
cobros y pagos. La inclusin de ms subsistemas puede ser el de control de produccin, logstica o
personal. En stos, la explotacin de la documentacin debe tener en cuenta las normas de seguridad y
proteccin de datos de carcter personal y evitar que usuarios no autorizados accedan a esa informacin.
Por su importancia segn el tipo de funcin que realicen, conveniente enumerar las caractersticas de los
sistemas transaccionales y de soporte a la decisin.

200
Los sistemas transaccionales explotan la informacin de forma procesal, basados en transacciones, que
son registros que definen una accin en la organizacin. Informticamente, las transacciones son entradas
que modifican ficheros o BBDD. El tratamiento habitual en BBDD se muestra en la figura.
El sistema primero comprueba que no hay errores de entrada y
pasa a otras comprobaciones, como la edicin. La edicin asegura
que se dispone de los datos necesarios, con el formato correcto y
que no hay campos sin informacin.
Otras comprobaciones aseguran la consistencia de los datos de
entrada con el resto de la BBDD y una vez realizadas, se ejecuta la
transaccin.
El sistema va proporcionando respuestas parciales al usuario segn avanza la transaccin, informando de
errores y del resultado final. Las transacciones pueden ser entradas en modo interactivo o por lotes. El
primero las atiende segn entran al sistema y el modo por lotes las agrupa y difiere en el tiempo su
ejecucin. Los sistemas de transaccin por lotes no producen respuesta inmediata.
Los sistemas de soporte a la decisin explotan la documentacin apoyando al usuario del sistema en la
toma de decisiones complejas. La mayora basan en un modelo dinmico que se optimiza constantemente.
Por tanto, estos sistemas poseen un carcter un tanto experimental, ya que hay que entrenarlos, es decir,
configurarlos para que respondan como se espera que lo hagan, en funcin de toda la informacin que son
capaces de manejar y relacionar.
5. SISTEMAS DE INFORMACIN EN LA EMPRESA
Para ejemplificar la explotacin automtica de documentacin administrativa se presentarn dos casos
tpicos de flujo de informacin y operativa de un sistema que explota la informacin de una empresa.
El primero se refiere a un subsistema caracterstico de gestin de clientes. El modelado del sistema recibe
como entrada tpica un pedido de cliente, que es verificado para asegurar su aceptacin, valorando
aspectos como la disponibilidad o la forma de pago. Los posibles inconvenientes deben ser solucionados
bien en el sistema o bien negociando con el cliente.
Las comprobaciones podrn hacer uso de la informacin suministrada por otros subsistemas como los de
logstica o contabilidad. Del mismo modo, si el pedido se acepta, se generarn transacciones que actualicen
los registros de cliente, facturacin y logstica, de forma que se elimine o reserven en el almacn las nuevas
cantidades disponibles al aceptar el pedido. La informacin generada adems ser entrada de esos
subsistemas que, por ejemplo, en el caso de ventas o facturacin debern generar la emisin de facturas.
Cuando el servicio se completa, el cliente realizar un pago que supondr otra entrada administrativa en el
sistema modelada en el subsistema de facturacin. Ante los inconvenientes del proceso el sistema generar
informacin de respuesta en aquel paso del proceso que haya generado el problema, como se ha explicado
en la parte terica. As, si el problema es debido a falta de existencias se genera una respuesta para el
sistema de logstica, si el problema se debe al cobro, el aviso saltar en facturacin. El sistema de
informacin debe contemplar todos los eventos posibles.
El tratamiento automtico puede realizarse, como se ha expuesto, de forma interactiva o por lotes. As, el
sistema de inventario es lgico que se compruebe de forma interactiva, pero la expedicin podra ser un
proceso por lotes que agrupe y organice varios pedidos una vez que se llega a cierto umbral.
El tiempo que transcurre entre la recepcin de un pedido hasta que se sirve es ms largo en un sistema por
lotes que en uno interactivo, por lo que la tendencia es a trabajar de forma interactiva, o tiempo real. Los
sistemas de pedidos generalmente se integran con los de inventario y facturacin. Tpicamente, un pedido
generar automticamente una factura.
El segundo caso de estudio que se describe es la explotacin de documentacin administrativa en un
sistema logstico con un modelo simplificado. Su objetivo puede resumirse en el control del inventario y la
coordinacin con el resto de reas de la organizacin como contabilidad o clientes. Un esquema resumido
podra ser el mostrado en la figura.
El subsistema de stock contendra entre otra, la
informacin relativa a las existencias. El de expedicin
controlara las salidas y enlaza la informacin a los
sistemas de contabilidad y clientes. La recepcin sera el
sistema que controla la entrada de mercanca, recibiendo
los pedidos de cliente y actualizando la documentacin de
contabilidad y facturacin.

201
La unidad de control puede estar diferenciada o distribuida en las dems y contara entre sus funciones las
de verificacin de la correccin de los pedidos, posibilidad de entrega en plazos, necesidades de reposicin
y funciones similares.
Los avisos de reposicin de inventario y mercanca se configuran con umbrales mnimos de existencias,
segn las necesidades y demanda de cada artculo. En ese aspecto, el sistema acta apoyando decisiones
de nivel bajo de complejidad, pero su informacin es muy importante para configurar los inventarios
correctamente, ahorrar costes de almacenamiento y optimizar la gestin. El anlisis de esa informacin ser
realizada por analistas, planificadores u otros sistemas informticos.
El sistema tambin mantiene la informacin sobre tiempos de entrega (tiempo de entrada) que garantizan la
reposicin y el abastecimiento. En general se basa en el establecimiento de umbrales mnimos que al ser
superados generan un aviso o peticin de material. La recepcin de mercanca actualiza los registros de
existencias y emite la informacin necesaria a contabilidad para el pago de proveedores, tras comprobar
que el material recepcionado es correcto en estado y cantidad.
En general los sistemas de logstica mezclan procesos por lotes y en tiempo real. De forma que los pedidos
es habitual tratarlos en procesos por lotes y las consultas tipo disponibilidad suelen responder en tiempo
real con informacin actualizada.
Algunos sistemas ms avanzados pueden realizar la gestin de pedidos automticamente, utilizando la
documentacin de los sistemas de cobros, pagos y contabilidad general. Del sistema de cobros se utilizar
informacin sobre facturacin, saldos, pagos o informes y suele estructurarse con cuentas de cliente.
Adems puede registrar las ventas, emitir facturas y controlar los pagos. De esta manera, si existe una
discrepancia entre pagos y facturas o plazos de vencimiento, su localizacin se simplifica y se pueden
automatizar las acciones a tomar.
El sistema de pagos gestiona el seguimiento de compras y pedidos, liberando los crditos necesarios para
afrontar las facturas tras la comprobacin de la recepcin. Por su parte, el sistema de contabilidad general
genera la informacin agregada de los recursos econmicos de la empresa y el desglose de su utilizacin.
Permite asimismo emitir los informes de cierre anuales y orientar en la presupuestacin y planificacin de
los periodos futuros.

202
TEMA 46. APLICACIONES INFORMTICAS DE PROPSITO GENERAL Y PARA LA GESTIN
EMPRESARIAL. TIPOS. FUNCIONES. CARACTERSTICAS.

1. INTRODUCCIN
2. APLICACIONES INFORMTICAS DE PROPSITO GENERAL Y PARA LA GESTIN EMPRESARIAL
3. TIPOS
3.1. Procesadores de texto
3.2. Hojas de clculo
3.3. Bases de datos
3.4. Presentaciones
4. FUNCIONES
4.1. Procesadores de texto
4.2. Hojas de clculo
4.3. Bases de datos
4.4. Presentaciones
5. CARACTERSTICAS
5.1. Procesadores de texto
5.2. Hojas de clculo
5.3. Bases de datos
5.4. Presentaciones

203
1. INTRODUCCIN
Las aplicaciones informticas diseadas para un propsito general y con un fuerte carcter de aplicacin en
la gestin comercial dan solucin a problemas tpicos o generales, por lo que se denominan de propsito
general. A la vez, estos propsitos generales representan la operativa habitual de la gestin comercial.
Esta operativa incluye tareas como el procesamiento de texto, tratamiento de hojas de clculo, BBDD y
presentaciones comerciales como ncleo central de actividad. Las aplicaciones para la gestin comercial
que adems cumplen un propsito general surgen como necesidad de abaratar los costes derivados del
desarrollo de programas especficos (verticales) para una determinada organizacin.
Otras aplicaciones para la gestin comercial, pero que no pueden denominarse de propsito general, seran
los ERP y similares, que realizaran otras funciones como la gestin de stocks, tratamiento de series,
seguimientos y trazabilidad y tareas del estilo, que quedan fuera de este tema.
2. APLICACIONES INFORMTICAS DE PROPSITO GENERAL Y PARA LA GESTIN EMPRESARIAL
De las aplicaciones informticas de gestin comercial y propsito general pueden sealarse como centrales
o imprescindibles, los procesadores de texto, hojas de clculo, programas de BBDD y programas para
presentaciones y diseo grfico. Estas aplicaciones y alguna ms, suelen integrarse en suites o paquetes
ofimticos de entre los que destacan comercialmente MS Office y como solucin libre OpenOffice.
3. TIPOS
Los tipos de aplicaciones informticas de propsito general y para gestin comercial pueden agruparse en
procesadores de texto, hojas de clculo, bases de datos y programas para realizar presentaciones, donde
se han incluido en esta presentacin los de diseo grfico.
3.1. Procesadores de texto
Los procesadores de texto son programas que trabajan con texto, diseados para la elaboracin y
tratamiento de documentos. Bsicamente es trasladar la idea de un bolgrafo y un papel y su evolucin, la
mquina de escribir, a su procesamiento con un equipo informtico. Lgicamente, la potencia de un
ordenador ofrece una gran productividad y grandes posibilidades para el tratamiento de escritos,
pudindose elegir formatos, apariencias, fuentes, dibujos, etc.
Este tipo de aplicaciones permiten crear documentos bien presentados con efectos y opciones, as como
permitir automatizaciones como generar mltiples archivos con los datos de tablas, BBDD u otros, ejemplo
tpico de generacin de cartas con el mismo contenido dirigidas a distintos clientes.
Los documentos generados se almacenan como archivos, de forma que se puede trabajar sobre un mismo
documento en distintas sesiones sin ms que abrirlo con el programa adecuado. Ejemplos de estas
aplicaciones son MS Word, OpenOffice Writer o WordPerfect.
3.2. Hojas de clculo
Una hoja de clculo es una aplicacin informtica para el tratamiento de informacin organizada en forma
de tabla. Del mismo modo, toda informacin que pueda organizarse en forma de tabla es candidata a ser
tratada con hoja de clculo, como pueda ser informacin contable, financiera o estadstica. La mayor parte
de operaciones de una hoja de clculo se orientan al tratamiento de nmeros y fechas.
Las operaciones y funciones de las hojas de clculo suelen agruparse funcionalmente, como por ejemplo
las operaciones bsicas, funciones estadsticas, trigonomtricas, etc. La eleccin de un programa de hojas
de clculo tendr en cuenta este aspecto para ofrecer al usuario las mejores herramientas de trabajo.
Los datos que trata una hoja de clculo se almacenarn en forma de tabla en una estructura de rejilla, que
representa una tabla bsica. Una rejilla se compone cuadrados o celdas organizados en lneas horizontales
y verticales, dando lugar a filas y columnas. Permiten generar grficos a partir de los datos. Ejemplos de
estos programas son MS Excel, OpenOffice Calc o Lotus 123.
3.3. Bases de datos
Una BBDD es un conjunto de datos organizados y relativos a un contexto comn. Las aplicaciones para la
creacin de BBDD representan la solucin habitual para almacenar, representar y tratar correctamente
grandes cantidades de informacin.
Los sistemas gestores de BBDD, SGBD, presentados en el tema 36 permiten un acceso a los datos
estructurado y gil. Sus aplicaciones son numerosas en la gestin comercial, pero se extienden a
prcticamente la totalidad de los campos laborales.

204
Las posibilidades de consulta y organizacin estudiadas en los temas precedentes suponen una gran
facilidad, sobre todo a la hora de realizar informes comerciales, en que los datos deben presentarse de
forma clara y resumida. Ejemplos de aplicaciones son MS Access, OpenOffice Base y DBase..
3.4. Presentaciones
Las aplicaciones para presentaciones permiten realizar exposiciones grficas con texto en forma de
esquema o resumen, con la posibilidad de ser combinado con imgenes, sonido o vdeos. Es decir,
permiten crear presentaciones multimedia, de uso habitual en la gestin comercial.
En general permiten generar fcilmente trabajos relacionados con la presentacin, como
pueden ser notas, documentos, transparencias o diapositivas. Ejemplos de este tipo de
aplicaciones son MS Power Point y OppenOffice Impress.
En relacin con los programas de presentaciones estn los de diseo grfico, pero que
por su especificidad no podran considerarse de propsito general. Sin embargo es
bueno, al menos conocer algunos, como pueden ser CorelDraw, PhotoShop o FreeHand.
4. FUNCIONES
4.1. Procesadores de texto
Entre las funciones con las que cuentan los principales procesadores de texto se incluyen la escritura,
correccin, tabulaciones y configuracin de pgina, opciones de prrafo y saltos de pgina, etc. Toda esta
funcionalidad permite al usuario realizar documentos de todo tipo, documentos, cartas, apuntes, de manera
simple e intuitiva. Por enumerar algunos ejemplos, se detallan las siguientes funciones.
Escritura y correccin. Son funciones bsicas de escritura y se aade la funcin de correccin ortogrfica.
Los procesadores permiten borrar texto en bloque, caracteres, insertarlo o sobreescribirlo. Al escribir se
genera automticamente el salto de lnea y retorno de carro en un prrafo y SE justifica segn la opcin
seleccionada. Funciones bsicas de escritura y correccin son la insercin y sobreescritura de texto,
borrado y movimiento dentro del texto.
Bsqueda y sustitucin. Ofrece la posibilidad de buscar un texto en un documento. Tambin se permite la
bsqueda y reemplazo para sustituir automticamente palabras.
Estilo. Las funciones de estilo incluyen algunas como el tipo de letra, tamao, nfasis del texto con negrita,
cursiva o subrayado y otras similares.
Tabulaciones. Son funciones de sangrado y configuracin de mrgenes, permitindose el sangrado de
prrafos completos en ambos mrgenes.
Encabezados y pies de pgina. Son funciones que permiten incluir datos como la paginacin, autores,
fechas, organizacin, etc. en el encabezado y pie de pgina de un documento.
Conversin mayscula y minscula. La utilidad para convertir caractres de minsculas a maysculas de
forma automtica tras la pertinente seleccin ahorra mucho tiempo y es muy til para definir en maysculas
los ttulos y encabezados. La conversin de mayscula a minscula permite configurar en mayscula la
primera letra tras el punto.
4.2. Hojas de clculo
Las funciones de una hoja de clculo se resumen en realizar operaciones con los datos mediante frmulas.
Una frmula es una expresin que combina operadores y datos y genera un producto o resultado que es
almacenado en una celda. Sobre esa celda se ha debido definir la frmula del resultado que almacena.
Las frmulas pueden ser numricas, de texto y lgicas. Las frmulas numricas usan datos numricos para
realizar operaciones aritmticas. Las de texto operan con datos alfanumricos generando otro dato
alfanumrico y las frmulas lgicas trabajan con expresiones de valor 1 si se verifican y 0 si son falsas.
Una frmula se define con los datos y operaciones que requiera. Los datos pueden ser valores directos o
referencias a otras celdas, caso habitual, que aprovecha la esencia de la hoja de clculo, ya que la
operacin se define de forma simblica, es dinmica y pesenta siempre datos actualizados si las celdas
sobre las que se opera estn actualizadas.
Existen frmulas predefinidas llamadas funciones que permiten realizar operaciones que implicaran cierto
tiempo en definirse. Las funciones se dividen en funciones bsicas (matemticas, lgicas, de texto, etc.) y
funciones avanzadas (funciones financieras, trigonomtricas, estadsticas, de sistema, etc.). El formato de
una funcin es tpico y utiliza un nombre y parmetros de entrada.
El nombre de la funcin indica el tipo de operacin a realizar y los datos sobre los que opera se pasan como
parmetros, que como en el caso de frmulas, pueden ser constantes o referencias a celdas. Para definir

205
una funcin en una celda, puede usarse el men contextual, las opciones del men de la barra de
herramientas o definirla directamente con un signo = o similar que utilice el programa. El resultado de una
funcin es un nuevo dato que se almacena en la celda en que se define la funcin. Las funciones pueden
ser operandos de una frmula.
4.3. Bases de datos
Las funciones tpicas que ofrecen los SGBD son la adicin, edicin, borrado y recuperacin de registros. Es
comn que las BBDD incorporen utilidades de modificacin de ficheros y tablas, indexacin, generacin de
informes o creacin de vistas. Algunos ejemplos de funciones son los siguientes.
Adicin de registros. En general se realiza con un formulario o plantilla con los campos de la tabla, donde el
usuario introducir los datos. Es lgico comprobar la compatibilidad del tipo de datos y la duplicidad de
claves. Al aadir un registro se crean sus nuevos ndices. Los registros pueden aadirse en blanco, para ser
actualizados posteriormente. Se aadirn al final del fichero o insertarse en una posicin relativa
Edicin de registros. La funcin de edicin suele presentar el mismo aspecto que la de aadir, con la
informacin actual del registro, para que el usuario la cambie segn los permisos correspondientes. Los
valores modificados pasan a almacenarse directamente. Tambin se permite la edicin de bloques de
registros mediante utilidades de hojeo (browse).
Borrado de registros. El borrado o eliminacin de un registro en general implica su marcado y la eliminacin
fsica del fichero. El marcado no lo elimina inmediatamente, de forma que los datos pueden recuperarse.
Pero al eliminarse fsicamente, la informacin se pierde.
Recuperacin de registros. La recuperacin de un registro puede realizarse por posicin, por valor de un
campo clave o ndice o por una condicion particular. Cada forma utilizar un algoritmo funcin diferente.
Cuando se recupera el registro, pasa a ser el activo y si no se localiza, se suele devolver fin de fichero.
Existen funciones para recuperar grupos de registros o la totalidad de ellos.
4.4. Presentaciones
Las funciones tpicas de las aplicaciones para creacin de presentaciones son las que permiten crear el
contenido del trabajo y se pueden agrupar en funciones de edicin, diseo, enriquecimiento y configuracin.
Edicin. Son las funciones bsicas de trabajo con objetos (texto, imgenes), como por ejemplo la copia,
pegado, subrayado, justificacin, etc.
Diseo. En las funciones de diseo se incluran las relativas a los objetos que se pueden crear, como
figuras, organigramas, formas y dems, as como las funciones de diseo de la apariencia de la
presentacin, como por ejemplo el aspecto de las diapositivas o su orientacin.
Enriquecimiento. Se refiere al contenido multimedia, como la insercin de animaciones, videos, transiciones
y efectos del estilo.
Configuracin. Son las funciones que agrupan caractersticas de la presentacin en s, como por ejemplo el
tipo de avance de las diapositivas, narraciones, opciones de presentacin, intervalos y aspectos similares.
5. CARACTERSTICAS
5.1. Procesadores de texto
Las caractersticas de los procesadores de texto se pueden agrupar en fsicas, funcionales y avanzadas.
Las caractersticas fsicas incluyen las que permiten trabajar con la aplicacin, el entorno de trabajo, las
funcionales son las funciones que ofrece el programa y que ya han sido expuestas y las caractersticas
avanzadas estaran compuestas por las utilidades no funcionales, orientadas a mejorar las prestaciones de
la aplicacin como puedan ser diccionarios, integracin con correo electrnico o utilidades de grficos.
De las caractersticas fsicas el entorno de trabajo incluye el sistema de visualizacin, que definira la forma
de trabajo del programa en su aspecto grfico, tradicionalmente en modo texto, prcticamente desechado, y
en modo grfico, que puede encontrar alguna referencia como WYSIWYG (What You See Is What You Get)
que se refiere a que lo que se visualiza en pantalla es el resultado final que se obtendr. Es decir, la tpica
representacin de un folio con sus mrgenes y dems caractersticas.
La pantalla de visualizacin suele contar con una zona de edicin de texto en que se trabaja con el
documento, una barra de herramientas que contiene diversas funciones accesibles mediante clics de ratn,
opciones de men, que presentan las mismas opciones que la barra de herramientas en modo men y una
barra de estado con informacin del documento como el idioma, pgina actual, etc.
Un procesador de textos actual permite habitualmente seleccionar distintas opciones de impresin y
presentacin, como la calidad, tamao de papel o nmero de copias. La impresin puede realizarse en

206
impresora o a un archivo. Una utilidad importante es la configuracin para la impresin de sobres y
etiquetas.
5.2. Hojas de clculo
La estructura de una hoja de clculo es la de una
retcula organizada en filas y columnas. Una columna es
un grupo de cuadrados situados uno encima de otro en
vertical. Una fila es el conjunto de cuadrados situados
en horizontal consecutivamente. La interseccin de filas
y columnas se llama celda o casilla. Cada columna de
una retcula se suele identificar con letras siguiendo las
normas de numeracin, es decir a partir de la columna
nombrada como Z, comenzara la AA, AB, etc. Las filas
se identifican mediante nmeros hasta el 65.536 como
valor tpico.
De este modo, una celda puede localizarse con la coordenada de su fila y columna, coordenada que toma el
nombre de direccin. Al seleccionar una celda, se dice que esa es la celda activa. La seleccin puede
hacerse con el cursor, el tabulador o el ratn. Cada celda slo contiene un dato, que se referencia con la
direccin de la celda.
Los datos podrn ser numricos y alfanumricos. Los primeros son nmeros y cifras con los que realizar
operaciones aritmticas. Los datos alfanumricos se componen de nmeros y letras y no permiten
operaciones aritmticas. Los datos en una hoja de clculo pueden representarse con distintos formatos,
especificando por ejemplo como codificar fechas, nmero de posiciones decimales o notacin monetaria.
Una hoja de clculo permite automatizar tareas sobre varias celdas simultneamente. Un grupo de celdas
contiguas se llama bloque, que ser identificado con las direcciones de la celda del extremo superior
izquierdo y la inferior derecha del bloque, expresado como coordenadas, con un separador (: o ;).
Las operaciones sobre celdas individuales o bloques poseen las mismas caractersticas, se seleccionan y
se aplica la operacin, ya sea borrado, copia, modificacin, etc. La copia de un bloque impone la condicin
que el bloque destino y el origen posean las mismas dimensiones.
5.3. Bases de datos
Las caractersticas de las BBDD vienen marcadas por su estructura, en general, implementada con ficheros
o tablas. Las caractersticas generales de los programas de creacin de BBDD pueden resumirse en:
Asistente. Los SGBD suelen incluir un asistente que permite operar con la BBDD sin conocer o escribir el
comando necesario. Las opciones del asistente se muestran mediante mens o algn mtodo similar.
Indexacin. La prctica totalidad de BBDD usan algn proceso de indexacin, que utiliza meta informacin
para localizar los registros directamente, independizando la estructura lgica de la fsica. El SGBD consulta
los ndices, que le permiten recuperar los registros sin importar su orden de almacenamiento. La exploracin
secuencial de la BBDD requiere entonces un recorrido secuencial de los ndices, no de las posiciones
fsicas de memoria.
Los ndices podrn ser monocampo o multicampo y mantenidos o no. Los ndices mantenidos son los que
son actualizados automticamente, de forma que al cambiar su informacin la BBDD se reindexa. Algunos
proveedores usan ndices compactos para reducir al mnimo su tamao e incrementar la velocidad de
bsqueda, en combinacin con tcnicas como IQ de Borland o Rushmore de MS.
Vistas. En BBDD relacionales el acceso del usuario puede limitarse con el uso de vistas, interfaces que
presentan la informacin necesaria ocultando la que no se utiliza. Una vista puede incluir campos de
diferentes tablas, de forma que el usuario lo vea como una unidad, sin ms detalles de la estructura real.
Informes. De forma similar al concepto de las vistas, los usuarios sulen requerir la informacin de la BBDD
estructurada segn sus necesidades o campo de trabajo. Por ello, los programas de BBDD suelen facilitar la
realizacin de informes, listados formateados para obtener la presentacin de los datos de forma sencilla.
Un informe podr ser un modelo de factura, una carta, etc. La impresin del informe ejecutar la orden
correspondiente en el SGBD y ser impresa por pantalla, a un fichero, a papel, etc.
5.4. Presentaciones
La caracterstica ms destacable de los programas de creacin de presentaciones, probablemente sea la
sencillez de su uso. Editar el contenido de una presentacin es intuitivo y suele ofrecer opciones
automticas de tamao de texto y de opciones de diseo, por ejemplo. Del mismo modo, los mens que
agrupan las opciones de trabajo suelen ser muy explicativos.

207
Las aplicaciones permiten crear y editar organigramas, importar figuras de diseo, insertar contenido
multimedia, comprobar los resultados parciales con presentaciones preliminares y cambiar entre varios tipos
de vistas (diapositivas, documentos) y su posicin.
Otra caracterstica de las aplicaciones, no slo las de generacin de presentaciones, es la opcin de firma
del documento y de proteccin con contrasea, de forma que un usuario que no la conozca, aunque pueda
examinar el contenido del archivo, no pueda modificarlo o imprimirlo.
Utilidades interesantes son las de ayuda a la presentacin, de forma que se facilita la preparacin de la
presentacin con las pausas, intervalos, transiciones, narraciones, etc. a que da opcin el programa.
Asimismo, es tpica la posibilidad de mostrar la presentacin en varios monitores, de forma que tanto el
pblico (en la pantalla destinada a l) como el presentador (en su pantalla) puedan visualizar el contenido
que se presenta, de forma que el presentador pueda estar visualizando sus propias notas, no visibles a su
pblico. Las opciones de presentacin tambin incluyen una vista de todas las diapositivas en miniatura.
Las vistas normales enmendadas incluyen el texto de cada diapositiva y una vista en miniatura de sus
grficos. Tambin son caractersticas las opciones de herramientas de revisin y correctores ortogrficos.

208
TEMA 47. INSTALACIN Y EXPLOTACIN DE APLICACIONES INFORMTICAS. COMPARTICIN DE
DATOS.

1. INTRODUCCIN
2. INSTALACIN Y EXPLOTACIN DE APLICACIONES INFORMTICAS
2.1. Instalacin
2.2. Explotacin
2.2.1. Procesador de textos
2.2.2. Hojas de clculo
2.2.3. Bases de datos
3. COMPARTICIN DE DATOS

209
1. INTRODUCCIN
La instalacin y explotacin de una aplicacin informtica es una tarea compleja en la que hay que tener
muy en cuenta las indicaciones del desarrollador. En general stas vendrn especificadas en manuales de
instalacin, de usuario, de referencia y guas rpidas, que cubren los aspectos de instalacin y explotacin.
Al adquirir una aplicacin informtica, en funcin de su complejidad, puede ser necesario un proceso de
parametrizacin, para adaptarla a las particularidades de la organizacin que la instale. En este caso puede
ser necesario la intervencin de consultores, bien del fabricante del software, bien externos que una vez
instalada la aplicacin, la configuren correctamente para poder pasar a la fase de explotacin.
2. INSTALACIN Y EXPLOTACIN DE APLICACIONES INFORMTICAS
La instalacin de aplicaciones comienza con el manual de instalacin, la gua que provee el fabricante y
donde se detalla cmo realizar el proceso. Para garantizar el correcto funcionamiento del programa es
recomendable seguir sus indicaciones y atender a los requisitos mnimos exigidos al sistema. La instalacin
suele ser guiada gracias a la inclusin de un programa instalador, que tambin permite la configuracin de
caractersticas de la aplicacin, como su actualizacin.
Una vez que se instala, configura y parametriza una aplicacin comienza la fase de uso o explotacin, en
que los usuarios deben sacarla el mayor rendimiento posible.
2.1. Instalacin
La instalacin de aplicaciones informticas debe tener en cuenta algunos factores para poder llevarse a
cabo de forma correcta, evitar errores y conseguir el mayor rendimiento. Entre estos factores se encuentran
las necesidades de equipamiento informtico, la configuracin correcta del SO y los programas de
aplicacin relacionados que garantizan compatibilidad y la correcta ejecucin del programa de instalacin.
Los proveedores de aplicaciones suelen enfocar sus desarrollos a plataformas concretas, que requieren
unos requisitos mnimos de hardware y software para su funcionamiento. En un caso genrico, se
establecen tres niveles de requisitos para la instalacin: el equipamiento bsico, el opcional y el de red.
El equipamiento bsico necesario detallar los elementos mnimos de hardware, microprocesador, memoria
RAM, exigencias de disco duro y versin del SO recomendada. El equipamiento opcional especifica
configuraciones adicionales para obtener un rendimiento mayor, mientras el equipamiento de red se refiere
a requisitos para un funcionamiento correcto de la aplicacin para su trabajo en red, tales como la
configuracin recomendada para los servidores y estaciones de trabajo, para el SO de red o la carga
mxima de clientes a los que dar servicio.
Una vez preparados los requisitos de equipamiento comienza el proceso de instalacin, en general iniciado
con un programa instalador (install, setup, etc), que de forma automtica descomprime y organiza la
estructura de la aplicacin facilitando sobremanera la tarea del administrador. An as, para obtener un
adecuado rendimiento habr que parametrizar el programa, para lo que suelen ofrecerse dos tipos de
instalacin, la bsica y la avanzada o personalizada.
La instalacin bsica configura valores por defecto y se orienta a instaladores con menor conocimiento,
mientras que la instalacin avanzada o personalizada se orienta a instaladores ms expertos, de forma que
ofrece la posibilidad de configurar los elementos de la aplicacin a fin de optimizar su funcionamiento.
El proceso de instalacin cubre algunos pasos comunes a todos, como son la especificacin de la ubicacin
de destino de la aplicacin, directorios, registro de licencias o nmeros de serie, si los hay, actualizacin,
parmetros de servidor si la instalacin se realiza en un servidor, permisos y otros aspectos similares.
Una vez realizada la instalacin, si ocurre que la configuracin ha sido automtica o no ha quedado como
era de esperar, se podr redefinir el entorno de trabajo y, en principio, la aplicacin se considerara
instalada y dispuesta para su explotacin. Los usuarios deben entonces comprobar que responde al
funcionamiento esperado.
2.2. Explotacin
La explotacin de un programa informtico es su utilizacin adecuada para obtener el mayor rendimiento
de las funciones y utilidades que ofrece para la solucin de las necesidades de usuario. La explotacin
implica una planificacin previa que independientemente del tipo de aplicacin de que se trate, debe tener
en cuenta la programacin de copias de seguridad y el intercambio de datos entre aplicaciones.
La prdida de informacin en las aplicaciones puede comprometer la propia supervivencia de la empresa,
por lo que las copias de seguridad son un asunto vital. stas se realizan de los datos, ya que si se produce
una corrupcin del programa, bastara con volver a instalarlo. La realizacin de copias de seguridad no es
trivial y debe responder a ciertos parmetros de configuracin, como puedan ser el intervalo a realizar la
copia, si ser incremental o total, la periodicidad, localizacin de las copias, etc.

210
La planificacin del intercambio de informacin entre aplicaciones debe tener en cuenta si la generada por
una aplicacin ser requerida por otra. Estos intercambios pueden ser directos, indirectos o dinmicos.
El intercambio directo se realiza cuando la aplicacin receptora de informacin reconoce el formato de los
datos y no se requieren acciones adicionales. Por el contrario un intercambio indirecto requiere un proceso
de conversin de formatos de datos para llevarse a cabo, operacin tambin conocida como exportacin e
importacin de datos. Si los programas trabajan en un mismo entorno, pueden utilizar herramientas de
intercambio dinmico de datos (DDE en WS), utilizando modelos cliente servidor, en el que la aplicacin
servidora ofrece sus datos a otras durante la ejecucin y la aplicacin cliente los recibe.
En general, la explotacin difiere en funcin del tipo de aplicacin, ya que sus funciones varan. Como
ejemplos de explotacin de aplicaciones informticas se tratar el caso de los procesadores de texto, hojas
de clculo y bases de datos, como continuacin al tema anterior.
2.2.1. Procesador de textos
La explotacin de un procesador de texto requiere el conocimiento de su potencial a travs de sus
funciones, bsicas y avanzadas. La creacin de documentos funcionales pasa por la planificacin previa de
los mismos, en la que habr que definir los formatos de los documentos habituales, incluyendo el formato de
pgina y prrafo, el estilo del texto, documentos base de correo o la definicin de macros.
La estructura de un documento suele mantener un estilo uniforme que puede establecerse en las funciones
del procesador y que suelen definirse a tres niveles, funciones bsicas, correo personalizado y macros. Las
funciones bsicas incluyen las de estilo y tamao de fuente, subrayado, cursiva, etc. El correo
personalizado (mail-merge) permite combinar documentos genricos con el contenido de una tabla o BBDD
para crear documentos personalizados. El ejemplo tpico es la generacin de cartas personalizadas con los
datos de los clientes almacenados en una hoja de clculo o BBDD.
El proceso consiste en usar un modelo de escrito en el que se definen unos campos que sern leidos de la
tabla y el procesador de texto los insertar creando un documento por cada registro de la tabla. Los
procesadores ms avanzados incluyen un lenguaje de programacin para seleccin de campos segn los
criterios que se definan. Otra opcin es la importacin de datos directamente de un programa de BBDD.
Las macros (macroinstrucciones) son una secuencia de instrucciones que pueden grabarse y obtener as
una nueva funcionalidad de carcter particular. Su utilidad radica en automatizar tareas habituales que
realice el usuario y que al agruparlas se ahorra tiempo. Ejemplos pueden ser la insercin de nombres o
fechas o macros para configuracin de mrgenes o tabulaciones.
2.2.2. Hojas de clculo
La explotacin de una hoja de clculo, tambin implica conseguir el mximo rendimiento de sus funciones,
para lo que su planificacin debe contar con una correcta definicin de formatos, macros y dems aspectos.
Todas las funciones y operaciones matemticas que
suelen ofrecer las hojas de clculo son herramientas
muy potentes para tratar la informacin y optimizar
su explotacin, ya que ahorran mucho tiempo y
facilitan los clculos, de forma intuitiva. Las macros
se pueden definir del mismo modo que en el caso
de los procesadores de texto y otras aplicaciones,
que en este caso, suponen un plus adicional al
combinar su potencia con las funciones
predefinidas.
Otras herramientas muy utilizadas en hojas de clculo son las de generacin de grficos para presentacin
de resultados que resumen y organizan visualmente los datos. Grficos tpicos son los de barras y los
sectoriales, que permiten obtener una primera valoracin de los datos sin estudiarlos en detalle. Sus
ventajas son la proyeccin visual de los datos, simplicidad de informacin y facilidad de interpretacin.
2.2.3. Bases de datos
La explotacin de un SGBD actualmente es cada vez ms habitual, y a veces, el usuario no posee
conocimientos de programacin, no necesarios, pero que obliga a generar un buen diseo para tener un
correcto rendimiento.
Algunas recomendaciones de diseo son la definicin cuidadosa de los datos a usar. Es mejor dedicar ms
tiempo al diseo que tener que modificar algo una vez que la aplicacin se empieza a explotar. Asimismo, la
longitud y el tipo de datos de los registros son aspectos importantes, e incluso buenas prcticas, como
introducir la informacin de manera uniforme (por ejemplo todo en minsculas) o no introducir datos
suprfluos, no simplificar demasiado los ndices y utilizar macros para consultas habituales.

211
Existen problemas tpicos de diseo de BBDD, que pueden mermar el rendimiento. Ejemplos de estos
problemas son las tablas con muchos campos no relacionados en el mismo contexto, numerosos registros
en blanco por no ser aplicables, o disear un nmero elevado de tablas con registros redundantes.
El primer paso en el diseo de una BBDD puede ser entonces determinar su propsito y cmo se explotar.
A veces, el uso al que se destina orienta muy bien en el diseo y estructuracin de la BBDD, las tablas
necesarias y la organizacin de los campos y registros.
Del mismo modo, el diseo debe contar con dos aspectos aparentemente contradictorios, por una parte no
utilizar informacin redundante o repetida, de forma que si se puede plantear el agrupar esa informacin en
una tabla a parte o independiente, y por otro lado, la conveniencia de almacenar informacin que aunque
repetida, o en principio descartable, puede ser til en el futuro o para obtener datos que puedan usarse para
posteriores ofertas comerciales. En ambos casos, la informacin a tratar ser candidata a incluirse en tablas
diferentes, y su diseo depender de los compromisos de tamao y rendimiento que se exijan.
3. COMPARTICIN DE DATOS
En una organizacin, la posibilidad de compartir informacin entre aplicaciones es una necesidad de su
sistema de informacin para lograr una explotacin eficiente de sus recursos. En el pasado esta exigencia
era costosa debido a la falta de estndares y mtodos de solucin del problema, debindose desarrollar o
contar con mtodos intermedios para el intercambio de informacin, que en general eran caros. Con la
aparicin de los entornos grficos y la constante integracin de aplicaciones, unido a la adopcin de
estndares por parte de los fabricantes de software, el problema se ha simplificado sobremanera.
Uno de los conceptos que da solucin a estas situaciones es el de paquete integrado, un conjunto de
programas que agrupan las funciones bsicas de aplicaciones comunes como procesadores de texto, hojas
de clculo o BBDD. La comparticin de datos entre ellos es total pudindo cada programa reconocer los
datos generados por los dems. Un ejemplo tpico sera el de un procesador de textos que genera cartas
personalizadas con la informacin de una BBDD.
La popularizacin de SO como WS supuso la adopcin de facto de protocolos de comunicacin entre
aplicaciones como las tecnologas OLE (incrustacin y enlace de objetos) o DDE (intercambio dinmico de
datos) y el desarrollo de paquetes integrados que permiten una integracin total de la informacin. Los
problemas se derivan de necesidades puntuales en que se obliga a contar con programas especficos.
Los fabricantes de sw plantean soluciones como las Suites, productos sw que integran varias aplicaciones,
que en general persiguen un beneficio comercial para el cliente a cambio de la utilizacin de sus soluciones
en detrimento de las de la competencia. En general integran programas de amplia difusin comercial, con
otros menos vendidos. En cualquier caso, el intercambio de datos entre programas es una tarea de obligada
solucin por los desarrolladores sw si desean tener xito comercial. La integracin entre aplicaciones debe
permitir la inclusin en un archivo la informacin generada por otros programas.
En entornos monousuario o monotarea, las aplicaciones suelen actuar de forma independiente ejecutando
un programa cada vez y requiriendo programas auxiliares para intercambiar informacin. Los SO multitarea
actuales permiten el intercambio de informacin entre varios programas a la vez. De esta forma, el SO es el
intermediario entre programas, sin necesidad de programas conversores.
Las herramientas bsicas que proveen los SO para el intercambio de datos son la copia, el cortado y el
pegado. Estas herramientas no suponen protocolos de intercambio de datos propios, sino que se apoyan en
memorias intermedias para almacenar temporalmente los datos y recuperarla cuando se introduzca en las
aplicaciones destino. Suelen incluirse en los mens de Edicin de la barra de mens.
El proceso de intercambio de informacin sera tan simple como seleccionar los datos en el archivo de la
aplicacin origen, seleccionar la opcin copiar o cortar del men Edicin (o tpicamente Ctrl+C, Ctrl+X),
cambiar al archivo de la aplicacin destino, seleccionar el lugar donde ir la informacin copiada y elegir la
opcin pegar (o Ctrl+V) del men edicin del programa receptor. Tras esta operacin, la informacin de
origen estara dispuesta en la aplicacin destino.
Por su parte, la tecnologa DDE permite el intercambio dinmico de datos de manera que se establece una
comunicacin cliente servidor entre el programa receptor de la informacin (cliente) y el origen (servidor). El
protocolo requiere que los programas implicados lo implementen, de forma que los cambios que realice el
servidor se registren en el archivo cliente cuando ambos se ejecuten a la vez. El intercambio se realiza de
forma automtica y con todas las garantas.
La tecnologa OLE (Object Linked and Embedded) establece una comunicacin entre la aplicacin servidor
y la cliente para efectuar el intercambio de datos apoyndose en mtodos, la incrustacin y la vinculacin.
La incrustacin dispone una copia de la informacin para el programa cliente, que para modificar la
informacin recepcionada solicita al servidor que realice los cambios. Si la modificacin se realiza
directamente desde el servidor sin haber activado el cliente, las modificaciones no se efectan en el cliente.

212
La vinculacin establece un nexo entre cliente y servidor, de forma que las modificaciones en el servidor si
se refleja en el cliente aunque en ese momento no est activo. En el archivo cliente no se instala ninguna
copia de la informacin, se activa un enlace a la informacin vinculada que permanece en la aplicacin
servidora. La vinculacin permite utilizar una misma informacin en varios archivos de programas distintos.
Las modificaciones en la informacin vinculada estarn disponibles en los archivos que la vinculan.
La comparticin de recursos e informacin entre aplicaciones informticas sigue una metodologa similar en
muchos casos. Un caso de estudio representativo es el intercambio de datos entre aplicaciones ofimticas
como procesadores de texto, hojas de clculo o BBDD y otras aplicaciones. El comportamiento de los tres
tipos de aplicacin es parecido, pudindose establecer procesos de importacin y exportacin.
La importacin y exportacin de documentos, hojas de clculo o entre BBDD puede realizarse de forma
directa o indirecta, en funcin del tipo de programa y si los datos manejados son reconocidos por ambos. La
forma directa realiza la conversin al formato de datos de la aplicacin receptora y la indirecta realiza la
conversin a un formato intermedio estndar, reconocible por la aplicacin destino.
Al importar datos de un procesador de texto con conversin directa,
la aplicacin receptora debe reconocer el formato de las fuentes
origen, de forma automtica o manual, en que el usuario conoce el
tipo de datos origen y elige un procesador de texto compatible. Para
la conversin se debe conocer el programa origen y su versin.
Realizar la importacin es similar a abrir un documento, de forma que
el procesador detecta si el formato es adecuado o no. Si no lo es,
informa de la necesidad de realizar la conversin y se suele ofrecer
una lista de formatos reconocibles para usar.
Para exportar datos de forma directa a un procesador de texto el procedimiento puede ser tan sencillo como
guardar un archivo en otro formato, siempre que se permita en el origen. Si no existe esta posibilidad o el
procesador de texto es antiguo, se precisar algn programa de utilidad que realice la conversin. Si se
trabaja con hojas de clculo o BBDD, los procedimientos son similares. En el caso de BBDD existen
formatos que sin ser estndares, son reconocidos por la mayora de SGBD como el formato DBF de DBase.
Si la comparticin de informacin entre aplicaciones del mismo tipo o de tipo diferente no reconoce el
formato de los datos, la conversin se ha de realizar a un formato reconocible por la aplicacin receptora, en
general, formato de texto ASCII y se habla entonces de conversin indirecta. Los formatos tpicos de
grabacin de informacin en ASCII son los delimitados y los no delimitados.
Los formatos no delimitados son lneas de texto no dividisibles en elementos de datos individuales. Este
formato se utilizar cuando el proceso de importacin exportacin se realiza con otro procesador de texto.
Los formatos delimitados por , y , separan campos con comas y los valores de texto se marcan entre
comillas y se organizan en lneas de texto. Este formato se usa al importar datos a un documento desde una
hoja de clculo o una BBDD y para el proceso contrario de exportacin.
Los formatos delimitados por comas se organizan en lneas de texto con campos separados por comas. Al
exportar datos en formato ASCII hay que generar un fichero en ese formato a partir de los datos de un texto,
lo que suele solucionarse con la opcin "Exportar" que incorpora el programa y que da a elegir el tipo de
formato ASCII que desea ser grabado. La eleccin depender de la aplicacin destino. Importar datos de un
fichero ASCII requiere abrir un documento nuevo o posicionarse en una zona vaca del documento activo,
debido a que los datos que se importan se superponen a los existentes.
Las hojas de clculo suelen disponer de un pequeo SGBD para reconocer formatos de otras BBDD, de
forma que la importacin es directa. Para importar o exportar datos con una BBDD no reconocida por la hoja
de clculo tendr que usar el mtodo de conversin a ASCII en algn modo delimitado.
En BBDD si la importacin o exportacin de datos se realiza entre SGBD distintos, no suele poder realizarse
con los ficheros de ndices. Para solucionarlo, el SGBD receptor debe realizar una generacin de ndices
(reindexacin) una vez definida su composicin.
Para importar grficos en un procesador de texto u hojas de clculo deben tenerse en cuenta los formatos
que pueden reconocer, en general mapas de bits, siendo difcil la compatibilidad con grficos vectoriales.
Los mtodos para importar y exportar grficos de modo directo son similares a los descritos, considerando
que la conversin indirecta es diferente, ya que los grficos no se convierten a formatos ASCII. Los formatos
de grficos tpicos suelen estar soportados por la mayora de aplicaciones, facilitando los procesos de
importacin y exportacin. Si el intercambio de datos se realiza entre aplicaciones grficas la importacin y
la exportacin es posible con mtodos similares a los descritos, permitindose trabajar con grficos
vectoriales. Uno de los formatos ms usado para importar y exportar grficos sectoriales es CGM.

213
TEMA 48. INGENIERA DEL SOFTWARE. CICLO DE DESARROLLO DEL SOFTWARE. TIPOS DE
CICLOS DE DESARROLLO. METODOLOGAS DE DESARROLLO. CARACTERSTICAS DE LAS
PRINCIPALES METODOLOGAS DE DESARROLLO.

1. INTRODUCCIN
2. INGENIERA DEL SOFTWARE
3. CICLO DE DESARROLLO SOFTWARE
4. TIPOS DE CICLOS DE DESARROLLO
4.1. Ciclo en cascada
4.2. Ciclo en V
4.3. Ciclo basado en prototipos y por etapas
4.4. Ciclo en Espiral
5. METODOLOGAS DE DESARROLLO
5.1. Metodologas Tradicionales
5.1.1. Anlisis Estructurado
5.1.2. Proceso Unificado de Desarrollo
5.2. Metodologas giles
5.2.1. SCRUM
5.2.2. Programacin Extrema
6. CARACTERSTICAS DE LAS PRINCIPALES METODOLOGAS DE DESARROLLO
6.1. Merise
6.2. SSADM
6.3. Mtrica v3
6.4. SIX SIGMA
6.5. CMMI

214
1. INTRODUCCIN
El desarrollo de aplicaciones y sistemas software en general no es trivial. Cuando la complejidad del
sistema a desarrollar sea considerable, se requiere un proyecto, con todo lo que ello implica, en cuanto a
coste, presupuesto y alcance.
La particular naturaleza del software implica tener en consideracin aspectos que en un proyecto de otro
tipo no aplican. Por tanto, surge una rama de la ingeniera, que es la del software, que se encarga del
3
anlisis sistemtico, disciplinado y cuantificable del desarrollo software. Es la definicin del IE .
2. INGENIERA DEL SOFTWARE
La definicin de Ingeniera del Software introducida, dice que es un anlisis sistemtico, es decir que es
cientfico; disciplinado, o sea, que es metdico, como el mtodo cientfico; y cuantificable, que se refiere a
los aspectos variables, el aspecto caracterstico de un proyecto y que est en estrechsima relacin con la
calidad y las aristas del negocio.
No existe un mtodo absoluto o definitivo para desarrollar software. Muchas veces es algo cercano al arte.
Pero igual que ste, deja diferenciar etapas e integrar mtodos en cada una de ellas, usar herramientas de
automatizacin y mtricas de calidad.
La ingeniera del software puede entenderse como un sistema de tres coordenadas: la metdica, la
procedimental y la automtica.
La coordenada del mtodo marca la forma de desarrollo del software. Abarca la planificacin, captura de
requisitos, diseo de estructuras de datos, codificacin, pruebas y mantenimiento. Suelen incluir criterios de
calidad software. La coordenada procedimental especifica la secuencia de aplicacin del mtodo,
documentacin que ha de generarse en cada etapa, sus controles y medidas de calidad y la forma de
evaluar el progreso del proyecto. La coordenada automtica se refiere a las herramientas en que se soporta
el desarrollo. En general sern varias y tendrn una cierta integracin entre ellas, constituyendo lo que se
conoce como entorno de desarrollo. Cada herramienta particular se caracteriza como herramientas CASE
(Computer Assisted Software Engineering).
3. CICLO DE DESARROLLO SOFTWARE
El desarrollo software distingue etapas o fases. Esto es as debido a lo complejo de su actividad. Adems, la
identificacin de las etapas, ayuda a marcar hitos (controles de calidad, temporizacin), dividir el problema
en partes ms sencillas y planificar con mayor detalle. El conjunto de las fases identificadas y su relacin en
el desarrollo software se le denomina ciclo de desarrollo o ciclo de vida.
El ciclo de desarrollo software, es un modelo general que comienza con la concepcin del sistema y termina
con la retirada del servicio. Cada etapa implica tareas asociadas y su documentacin correspondiente,
donde se incluye el cdigo generado, en caso que sea resultado de una de ellas. Cada etapa del ciclo suele
descomponerse en tareas planificables.
Cada etapa puede estar relacionada con otras. En particular con la siguiente y la antecedente, aunque
puede estarlo con otras e incluso de forma recursiva, definiendo as una realimentacin del proceso.
La realimentacin es importante porque implica el replanteo de partes del proyecto, en general errneas. La
deteccin precoz de errores evita incurrir en costes ms altos e incluso el fracaso del proyecto. El control de
la progresin del proyecto debe especificar los objetivos, hitos. Los elementos de un ciclo de vida son:
Fase. Es un proceso que agrupa actividades relacionadas con un objetivo del proyecto. Las tareas se ponen
en contexto temporal, en intervalos dentro del proyecto. A cada fase deben asignarse recursos. Cuanto ms
complejo es un proyecto, mayor detalle deben tener sus fases para hacerlas manejables.
Cada fase se define con una informacin de entrada (en general de fases anteriores), unas actividades y
una informacin como resultado del proceso (en general a utilizar en fases posteriores).
Entregables. Son los resultados de cada fase. En un proyecto software, pueden estar compuestos por
hardware o software, incluyendo la documentacin. Los entregables permiten evaluar la marcha del
proyecto y marcar el desarrollo de un contrato. De esta forma, el cliente o peticionario puede comprobar si el
entregable responde a los requisitos establecidos en el proyecto y en el contrato.
4. TIPOS DE CICLOS DE DESARROLLO
Se pueden identificar distintos tipos de ciclo de vida del desarrollo software; interpretar el proceso de
desarrollo de formas diferentes. Cada tipo de ciclo de vida est marcado, en mayor o menor medida, por
algn paradigma de la ingeniera del software. La eleccin de un paradigma u otro depende de la naturaleza
del proyecto y su aplicacin, los mtodos a usar y los controles y entregas definidos.

215
Los tipos de ciclos de desarrollo se diferencian, bsicamente en los siguientes criterios:
La estructura de las fases. Que se suele identificar con una figura, en cascada, en V, etc.
El alcance del ciclo. Es decir, el objetivo del proyecto. El proyecto puede limitarse a un estudio de viabilidad,
su desarrollo completo, su desarrollo y mantenimiento, o cualquier otro propsito.
Las caractersticas de cada fase. Relativas a su organizacin y la divisin del trabajo que marcan.
Se exponen a continuacin los ciclos de desarrollo ms comunes:
4.1. Ciclo en cascada
Es el ciclo tradicional, basado en las etapas de la gestin de
proyectos comunes a toda ingeniera. La Ingeniera del
Software surge como un tipo especial de ingeniera, y por
tanto, hereda la base de su naturaleza. El ciclo en cascada se
caracteriza por su amplitud, al cubrir toda la vida del producto.
Propone un enfoque sistemtico y descendente desde el
anlisis que va concretando el proyecto. La descripcin de sus
fases es la siguiente:
Anlisis. Es la etapa donde se estudian los aspectos que rodean el proyecto. Incluira un estudio de
viabilidad con el alcance, requisitos y funcionalidad del sistema, as como una estimacin de los recursos y
el tiempo que podra llevar implementarlo. Hay que destacar el anlisis de requisitos. Cuanto ms concretos
sean, mejor, para evitar malentendidos y problemas futuros. Es obligatorio que sean acordados,
documentados y revisados con el cliente o peticionario.
Diseo. Es la etapa en que se empiezan a concretar los requisitos del anlisis, identificando la estructura
de datos y programas, arquitectura de aplicaciones e interfaces. El diseo permite definir la arquitectura,
funcionalidad y calidad del software antes de la codificacin.
Codificacin. Es la implementacin del diseo con un lenguaje de programacin. Representa un descenso
en el nivel de abstraccin al realizar la construccin del producto a partir de sus esquemas, para obtener un
programa ejecutable.
Pruebas. Una vez codificada la versin del programa candidata a ser entregada, debe probarse. El objetivo
es asegurar que cumple sin errores con la funcionalidad para la que fue concebido.
Debido a que la idea de error est en relacin directa con la idea de prueba, conviene notar que en el ciclo
en cascada, se representa una flecha indicando el paso de abstraccin a concrecin de una etapa superior
a una inferior y otra flecha en sentido contrario. Esta indicacin se refiere, en su esencia a la correccin de
errores, es una realimentacin del ciclo.
Cobra aqu sentido la importancia del buen anlisis y diseo. Cuando los errores implican el retroceso en las
fases de desarrollo, se incurre en costes, que son ms elevados cuanto ms tarde se detecte en una etapa.
Instalacin. Es la etapa en que se hace entrega del producto software al cliente o peticionario, dando
comienzo a la vida til del mismo. Esta etapa est en relacin directa con la siguiente, la de mantenimiento,
ya que la operacin implica que ante posibles eventualidades deben proporcionarse soluciones.
Mantenimiento. Es la etapa que soluciona los problemas que se den durante la operacin del software. Los
problemas pueden deberse a la deteccin de errores en el software, en algn componente del sistema
(servidores, por ejemplo) o que el programa funcione bien, pero se desee ampliar su funcionalidad o hacer
cambios por otras razones. Estos casos implican una vuelta a etapas anteriores del ciclo de vida, en funcin
del tipo de cambio.
4.2. Ciclo en V
Es un ciclo de desarrollo software que representa las etapas y
su relacin en la vida del proyecto. Posee forma de V e indica
en su parte izquierda los aspectos de anlisis y diseo y a la
derecha los relacionados con la calidad software. Se suele
identificar la V que da nombre al modelo con verificacin y
validacin. Conceptualmente es muy similar al ciclo en
cascada. Podra interpretarse como un modelo en cascada
doble, o dividido por la etapa de codificacin.
La novedad es que las actividades de ambos lados de la V se realizan en paralelo. Esto permite prevenir
errores al ir verificando cada etapa, evitando su propagacin. Como contrapartidas, el ciclo en V requiere
ms recursos que el ciclo en cascada y no se adapta bien a potenciales cambios de requisitos.

216
4.3. Ciclo basado en prototipos y por etapas
El ciclo en cascada dificulta la especificacin de requisitos al inicio del proyecto y no dispone una versin del
sistema hasta las fases finales, lo que dificulta la deteccin de errores. Para evitar estos problemas se
propuso el ciclo de vida basado en construccin de prototipos.
Es un modelo orientado a desarrollos con gran interaccin con el usuario, o que usen algoritmos evolutivos.
Implica tener muy en cuenta la complejidad. Si el prototipo requiere demasiado esfuerzo, ha de plantearse
la ineficiencia del modelo para el proyecto en cuestin. Por el contrario, el cliente puede disponer de una
maqueta inicial que ayude al anlisis y diseo al poder introducir cambios en los requisitos.
Un prototipo puede darse en distintas formas: esquema en
papel, una maqueta que implemente una parte del sistema
total y en un caso general, un primer programa, no completo,
que realice lo que se espera, a modo de esquema operativo.
El modelo comienza con la captura de requisitos, que no es
necesario que sea completa.
Con esta primera aproximacin se disea un prototipo rpido, centrado en la arquitectura del sistema e
interfaces. El diseo da paso a la codificacin, que cuenta con herramientas muy adaptadas a esta forma de
trabajo, que en general, plantean el desarrollo de forma incremental para dar velocidad a la codificacin.
Con el prototipo, se realiza una revisin con el cliente para que lo valide. Si no es satisfactorio, se prev que
las modificaciones sean menos traumticas que con otros modelos. Si se da el visto bueno, se realiza la
evaluacin y codificacin del producto final a entregar.
Suele hablarse tambin del ciclo de desarrollo por etapas. Es similar al prototipado ya que bsicamente
consiste en ir evaluando el desarrollo con el cliente. La diferencia se da en cuanto que los requisitos no se
conocen en detalle al inicio, sino que se van concretando segn avanza el proyecto. Las etapas que
identifica son similares al prototipado: especificacin conceptual, anlisis de requisitos, diseo inicial, diseo
detallado, codificacin, depuracin y liberacin, que van repitindose a lo largo de la vida del proyecto.
4.4. Ciclo en Espiral
El ciclo en espiral pretende combinar las ventajas del ciclo en
cascada y del prototipado. Proporciona un modelo evolutivo
orientado a sistemas complejos. Como novedad, incluye el
anlisis de riesgos. Los prototipos se usan para reducir el
riesgo de forma que se pueda decidir si acometer el proyecto
antes de comenzar la codificacin. Las etapas que identifica el
ciclo en espiral se muestran en la figura. Estn alineadas con
el anlisis de riesgos.
El anlisis de riesgos consiste bsicamente en cuatro actividades: su identificacin, estimacin, evaluacin y
su gestin. Es lo que se pretende diferenciar en cada etapa del ciclo.
Planificacin. La etapa inicial determina el objetivo del proyecto, alternativas y restricciones. Es equivalente
al anlisis y toma de requisitos de otros modelos. Se identifica el riesgo, lo que consiste en clasificarlo
(presupuestario, organizativo, tcnico).
Evaluacin. Es el anlisis de riesgos. El riesgo se refiere a las tres dimensiones del proyecto: el alcance, el
coste y el tiempo. Su combinacin puede indicar directamente su fracaso antes incluso de comenzarlo. La
estimacin es la aproximacin de la probabilidad de que se materialice y el impacto que supondra.
Alternativa. Esta etapa consiste en establecer los umbrales crticos para tomar decisiones y plantear
direcciones distintas a las originales para continuar con el proyecto.
Decisin. Por fin la gestin de los riesgos es la actividad de supervisin y la definicin de las acciones a
tomar en caso de concretarse los riesgos previstos. Esta actividad da como resultado la toma de una
decisin al respecto que condicionar el proyecto.
5. METODOLOGAS DE DESARROLLO
La RAE define mtodo como el modo de decir o hacer con orden. Y metodologa como ciencia del mtodo o
conjunto de mtodos que sigue una investigacin cientfica o exposicin doctrinal. Por tanto, una
metodologa de desarrollo software es un conjunto de modos, formas o estilos de codificacin ordenados.
Las metodologas se impregnan de la filosofa de los ciclos de vida del desarrollo, identificando etapas
segn lo marcado en el ciclo de vida de referencia. Aunque cada institucin, empresa o pas puede
recomendar o usar una u otra metodologa, existen aspectos comunes a todas. Y para comenzar su estudio,
se realiza una clasificacin general, distinguiendo dos tipos, las tradicionales y las giles.

217
5.1. Metodologas Tradicionales
5.1.1. Anlisis Estructurado
El anlisis estructurado (DeMarco, 1979) surge como abstraccin de las tcnicas de programacin
estructurada. Se basa en la divisin del problema en partes ms pequeas. Procura evitar especificaciones
textuales, dando valor al aspecto grfico.
Sus caractersticas se resumen en la descomposicin funcional del sistema (anlisis descendente),
identificacin del flujo de informacin, transformacin de diagramas de flujo de datos en estructura modular
de programa y construccin de modelos de datos. Las tcnicas ms importantes de que hace uso son los
diagramas de flujo, diccionario de datos (lgica de almacenamiento) y diagrama de estructuras (relacin
entre mdulos). La metodologa ha evolucionado e incorporado algunos cambios. Actualmente se usa con
adaptaciones.
5.1.2. Proceso Unificado de Desarrollo
Como necesidad de adaptacin del desarrollo a la POO, surge el proceso unificado de desarrollo, ms
adecuado que el anlisis estructurado. Es un marco general y adaptable del que la implementacin ms
completa y extendida es Rational Unified Process, propiedad de IBM.
Sus caractersticas se resumen en ser un proceso dirigido por los Casos de Uso, ser un proceso iterativo e
incremental que se centra en la arquitectura. Tambin hace uso de prototipos y como lenguaje de anlisis y
diseo usa UML.
Los elementos que define son entregables, workers, y actividades distribuidas en dos dimensiones: fases y
disciplinas (principales y de apoyo). Las actividades se encadenan en una mini-cascada con un alcance
limitado por los objetivos de la iteracin. En cada fase, se dedica un esfuerzo diferente a cada disciplina.

5.2. Metodologas giles


Las metodologas giles se refieren a la filosofa de de desarrollo software basada en procesos rpidos de
codificacin. Se persigue evitar la burocracia de las metodologas tradicionales potenciando el equipo de
trabajo y los resultados. Para ello, se incentiva la iteraccin y reuniones en todo el ciclo de vida y la
minimizacin de riesgos acortando los plazos temporales del desarrollo.
El cdigo generado en un plazo se denomina iteracin y suele ser corta. Cada iteracin del ciclo de vida
incluye su planificacin, anlisis de requisitos, diseo, codificacin, revisin y documentacin. Una iteracin
debe ser lo ms sencilla posible en funcionalidad con el objetivo de un cdigo libre de errores. Al final de
cada iteracin se reevaluan las prioridades del proyecto.
Las metodologas giles priorizan las reuniones de equipo sobre la documentacin. Los equipos giles
suelen concentrarse en oficinas llamadas Plataformas de Lanzamiento o Bullpen. La crtica al mtodo suele
referirse a la indisciplina que supone la relajacin en la documentacin. Las metodologas tradicionales son
ms indicadas para grandes proyectos, mientras las giles se pueden adecuar mejor a desarrollos de menor
alcance, al reducir la sobrecarga y ser ms flexibles.
Como caractersticas destacables que resuman la idea de metodologa gil se encuentran la inclusin en el
mismo equipo de desarrollo del usuario y desarrolladores, la entrega de trabajo frecuente e incremental,
orientacin a software operativo sobre la documentacin y simplicidad, buen diseo y calidad del cdigo. A
continuacin se exponen las metodologas giles ms representativas.
5.2.1. SCRUM
SCRUM (Ken Schwaber, 1995) es un tipo de metodologa gil, que se adapta a proyectos con requisitos
inestables que precisan rapidez y flexibilidad, como suele ocurrir en el desarrollo software. Enfatiza el
desarrollo incremental sobre la planificacin y basa la calidad del resultado en el conocimiento tcito del

218
equipo ms que en los procesos. Por tanto, las fases tradicionales tan ligadas a procesos, se funden como
en una mel de rugby (de ah el nombre SCRUM) ms que dibujar un ciclo en cascada, en V, etc.
Las prcticas y roles en SCRUM definen el desarrollo de un proyecto. Los roles identifican un ScrumMaster,
que mantiene los procesos (similar a un director de proyecto), el ProductOwner (cliente o peticionario) y
el equipo de desarrolladores. Las prcticas, se marcan con lo que se conoce como sprint, un periodo de una
a cuatro semanas, en que se desarrolla un objetivo de software entregable. El objetivo del sprint lo marca el
Product Backlog, requisitos de alto nivel priorizados y establecidos en reuniones de Sprint Planning.
Durante el sprint, no se pueden cambiar requisitos, por eso no suele durar ms de un mes. Condicin que
no resta flexibilidad a lo que pueda solicitar el cliente, que contar con entregas de cdigo rpidas y
respuestas a sus cambios.
Las ventajas de SCRUM reposan en la adaptacin a los requisitos del cliente, anticipacin de resultados,
flexibilidad, integracin con el cliente, mitigacin de riesgos, productividad y calidad.
5.2.2. Programacin Extrema
La ms representativa de las metodologas giles de desarrollo, es la programacin extrema (eXtreme
Programming o XP, Kent Beck). Parte del hecho que los cambios de requisitos durante el desarrollo son
algo natural y por tanto hay que adaptar el mtodo a esta realidad, basarlo en la adaptabilidad, frente a la
planificacin, facilitando los cambios de requisitos en cualquier punto del proyecto.
Asimismo, XP intenta combinar lo mejor de cada metodologa en funcin del proyecto particular que se trate
sin intentar definir todos los requisitos al comienzo para luego controlar algo que puede descartarse en el
desarrollo, con todo el ahorro que eso supone.
La programacin extrema aconseja un desarrollo iterativo e incremental, basado en la inclusin progresiva
de pequeas mejoras. Para ello, se realizan pruebas unitarias continuas, incluyendo pruebas de regresin e
incluso se aconseja definir las pruebas antes de la codificacin, como por ejemplo las herramientas de
prueba JUnit orientadas a Java.
La simplicidad en el cdigo redunda en mejor mantenibilidad y adaptabilidad ante nuevas funcionalidades,
que exigen la correccin de todos los errores antes de ser aadidas. Esta filosofa obliga a hacer entregas
frecuentes y aconseja la revisin continua del cdigo, para conseguir ms legibilidad sin modificar su
funcin. La reescritura de cdigo no debe introducir errores.
Por fin, XP hace nfasis en el equipo de desarrollo. El desarrollo no se divide entre distintos grupos sino que
cada grupo puede participar en cada parte del cdigo. Se proponen grupos giles de dos personas para una
misma labor, porque se espera que durante el desarrollo la pareja discuta y a la vez corrija el cdigo, lo que
genera mayor calidad ante una posible prdida de productividad.
Tambin se potencia la integracin con el cliente, lo que redundar en una comunicacin efectiva, con
menos detalle en las reuniones, debido a que muchos aspectos ya se conocern.
6. CARACTERSTICAS DE LAS PRINCIPALES METODOLOGAS DE DESARROLLO
6.1. Merise
Merise es una metodologa de anlisis y desarrollo integrado propuesto por la administracin francesa a
finales de la dcada de los setenta. Se basa en la organizacin y gestin de proyectos proporcionando un
conjunto de mtodos y normas rigurosas para el desarrollo software.
Se caracteriza por la identificacin de etapas del proyecto, a saber, estudio preliminar, detallado, produccin
y puesta en marcha. Se identifican y distinguen datos y procesamiento de los mismos. Se establece el uso
de esquemas entidad-relacin y diagramas de secuencias de procedimientos.
6.2. SSADM
SSADM (Sructured System Analysis and Design Method) es una metodologa de anlisis y diseo de
sistemas de informacin que data de los aos 80, desarrollada para el gobierno de Gran Bretaa y basado
en el ciclo de vida en cascada. Se divide en fases, etapas y tareas.
Distingue 3 fases (viabilidad, anlisis y diseo) y 6 etapas (situacin, opciones, especificacin de requisitos,
tcnicas, diseo lgico y diseo fsico). Como principales tcnicas, utiliza diagramas de flujo, esquemas
entidad-relacin y modelado de eventos. La metodologa ha evolucionado y an est vigente.
La filosofa de SSADM al desarrollar un proyecto por etapas, adolece de una cierta lentitud, si se presentan
problemas o modificaciones, que suelen retrasar las entregas. La curva de aprendizaje puede ser larga y la
documentacin excesiva en algunos casos. Por fin, como tnica general, para todas las metodologas de
desarrollo, debe evaluarse su adaptacin idnea para su eleccin de cara al proyecto al que se aplicar.

219
6.3. Mtrica v3
Mtrica Versin 3 es una metodologa del Consejo Superior de Informtica de Espaa. Se concibe para
abarcar el desarrollo completo de Sistemas de Informacin independientemente de su complejidad, lo que
inplica la adaptacin y dimensionamiento de los recursos al proyecto en cuestin.
Los elementos de mtrica 3 son procesos, interfaces,
productos, tcnicas y participantes.
La metodologa se alinea con los estndares de la industria
y bebe de un enfoque orientado al proceso. Tres son
principales: Planificacin, Desarrollo y Mantenimiento. Se
dividen en subprocesos, y stos en actividades y tareas.
Las interfaces son actividades de tipo organizativo que
sirven de soporte (gestin de proyectos, calidad). Se
dividen tambin en actividades y tareas
Los productos son E/S de las tareas. Por ejemplo, el anlisis se realiza tras el estudio de viabilidad y como
resultado se elabora el documento de diseo del sistema. Las tcnicas son el conjunto de procedimientos
especficos de las tareas (DFD, diagramas UML). Los participantes son las personas que involucra el
proyecto. Se clasifican en perfiles.
Mtrica v3 sistematiza las actividades que dan soporte al ciclo de vida software, para lograr los objetivos en
trminos de calidad, coste y plazos. Para cada tarea se detallan los participantes, productos de E/S y
tcnicas. Con las interfaces se facilitan los procesos organizativos (gestin del proyecto, de la configuracin,
etc.) y su automatizacin est soportada en numerosas herramientas CASE. El orden asignado a las tareas
no es su secuencia, ya que pueden realizare en paralelo. Pero, no se termina un proceso hasta que no se
terminan todas las actividades definidas para el mismo.
6.4. SIX SIGMA
Six Sigma es una metodologa de mejora de procesos productivos. Su potencia deriva del uso de
herramientas estadsticas orientadas a encontrar errores o defectos, de forma que la mejora se consigue
ms que por innovacin, por eliminacin de errores o malas prcticas.
El enfoque de la metodologa se centra en el cliente. Las mejoras se derivan del incremento en los niveles
de satisfaccin y creacin de valor para el cliente, en funcin de sus requisitos y expectativas. El mtodo
comienza identificando las mtricas de calidad software, recogida de datos y anlisis de los mismos con el
objetivo de localizar irregularidades y eliminarlas.
6.5. CMMI
CMMI, ms que una metodologa es un modelo de calidad software, que por su inters se presenta, y que
clasifica las empresas de software con criterios de madurez. El nivel que se asigna da idea de la madurez
de los procesos involucrados en la produccin de software. Se crean 5 niveles: inicial, repetible, definido,
cuantitativo y optimizado, numerados de menor a mayor madurez.
Nivel 1 o Inicial. Son empresas sin procesos definidos. El control es escaso y es probable el fracaso.
Nivel 2 o Repetible. El xito de los resultados es repetible. En este nivel se gestionan y controlan los
proyectos. El desarrollo es transparente y se puede conocer el estado del proyecto en todo momento. Los
procesos implantados incluyen la gestin de requisitos, planificacin de proyectos, seguimiento y control de
proyectos, gestin de proveedores, aseguramiento de la calidad y gestin de la configuracin.
Nivel 3 o Definido. Se establece una forma de desarrollo de proyectos software (gestin e ingeniera)
definida y se utilizan mtricas para su medicin. Se deben implantar los procesos de desarrollo de
requisitos, solucin tcnica, integracin, verificacin y validacin, mejora, gestin del sistema, formacin,
gestin de riesgos y toma de decisiones.
Nivel 4 o Cuantitativo. Se establecen mtricas para los procesos que ayuden a alcanzar los objetivos y la
gestin de la organizacin. Los procesos a implantar son los de medida y mejora.
Nivel 5 u Optimizado. Los procesos se orientan a la mejora continua. Esto se consigue con diversas
herramientas como las mtricas, evaluaciones, auditorias y mejoras incrementales e innovadoras. Los
procesos que hay que implantar son innovacin organizacional y anlisis.

220
TEMA 49. ANLISIS DE SISTEMAS: MODELIZACIN DE TRATAMIENTOS. MODELO DE FLUJO DE
DATOS Y CONTROL. TCNICAS DESCRIPTIVAS. DOCUMENTACIN.

1. INTRODUCCIN
2. ANLISIS DE SISTEMAS: MODELIZACIN DE TRATAMIENTOS
3. MODELO DE FLUJO DE DATOS Y CONTROL
3.1. Elementos
3.2. Control
4. TCNICAS DESCRIPTIVAS
5. DOCUMENTACIN

221
1. INTRODUCCIN
La evolucin del software, lo ha convertido en una actividad productiva de alta complejidad. La aplicacin de
los principios de la ingeniera a su desarrollo establece una serie de mtodos y procedimientos que se
orientan a la planificacin del proyecto.
Para acometer un proyecto debe tenerse en cuenta sus tres dimensiones, alcance, coste y duracin. La
evaluacin inicial de estos tres aspectos puede englobarse en lo que se da en llamar estudio de viabilidad,
en que se decide si se acometer el proyecto. Si la respuesta es positiva, se comenzar con el anlisis del
futuro sistema, que se aborda desde tres perspectivas: esttica, integrada y dinmica.
La perspectiva esttica estudia los objetos identificados en el modelo, sus atributos y restricciones. Se
denomina modelado de datos. La perspectiva integrada analiza datos y transformaciones de forma conjunta
y se denomina modelado de comportamiento. La perspectiva dinmica estudia las modificaciones de los
datos. Se denomina modelado de tratamientos y es el objeto de este tema.
2. ANLISIS DE SISTEMAS: MODELIZACIN DE TRATAMIENTOS
Un modelo es un esquema terico de un sistema o una realidad compleja, que facilita su comprensin y el
estudio de su comportamiento. El desarrollo de una aplicacin software debe relacionar dos universos
conceptuales, el del problema (discurso) y el de la solucin (informtica). El anlisis de sistemas representa
es un primer nexo entre el problema y la solucin que debe ir refinndose en cada fase del ciclo de vida. El
universo del usuario, o del discurso, distingue propiedades estticas y dinmicas. Las estticas, poseen un
carcter estable y se denominan estructuras. Las dinmicas son datos con un rango de variacin amplio en
su valor y temporalmente.
Una metodologa extendida es el anlisis estructurado, propuesto por DeMarco a finales de los 70 con las
mejoras propuestas por autores como Yourdon. Propone el uso de mtodos grficos y la divisin del
problema de desarrollo software en niveles de abstraccin, conceptual, lgico y fsico.
Para el tratamiento conceptual del problema se proponen herramientas como el Diagrama de Flujo de
Datos, o DFD. El tratamiento lgico comienza a implementar el sistema a partir de los resultados del
tratamiento conceptual. El anlisis estructurado propone dos tcnicas fundamentales a este nivel, el
diagrama de estructuras y el de transicin de estados. Se usan otras tcnicas, no exclusivas del anlisis
estructurado, como los ordinogramas, rboles y tablas de decisin, los lenguajes de definicin de programas
(LDP) o los diagramas de Nasshi / Schneiderman, por citar los ejemplos ms representativos.
Por fin, el tratamiento fsico consiste en generar el cdigo. Existen herramientas de desarrollo que
automatizan el proceso totalmente o en parte.
3. MODELO DE FLUJO DE DATOS Y CONTROL
Los DFD son una herramienta que representa grficamente un sistema como red de procesos funcionales
conectados por flujos de datos o informacin. Sus caracteristicas son la inteligibilidad por parte del usuario,
la descripcin de la funcin del sistema y la especificacin de los distintos niveles de detalle. Existen
diferentes notaciones para los DFDs, en las que cambian los smbolos.
3.1. Elementos
Los elementos de un DFD son:
Entidad externa. Representa una realidad a quien se enva
o de quien se recibe informacin. Marca los lmites del
sistema. No se modelan. Las relaciones entre entidades
externas no aparecen en el DFD.
Flujo de datos. Representa el movimiento de informacin
con una flecha indicando el sentido del flujo. Se puede dar
en doble sentido (dilogo). Se nombran los flujos y se
especifican los datos del mismo. Todo flujo debe entrar o
salir de un proceso.
Proceso. Representa una parte del sistema que transforma datos de entrada en datos de salida. Se
nombran con un identificador.
Almacenamiento. Representa el archivo de datos compartidos entre procesos. Puede coincidir o no con
almacenamiento fsico (fichero / BBDD). Se recupera uno o varios bloques en un flujo. Tambin se pueden
modificar, insertar, eliminar uno o varios bloques.
Algunas normas son que no se representan las relaciones entre entidades porque no pertenecen al sistema
que se modela. Las entidades externas no pueden acceder directamente a datos almacenados sin pasar

222
por un proceso del sistema y los datos no se mueven entre almacenes espontneamente, siempre se har
por mecio de un proceso del sistema
3.3. Control
El DFD no se adecua al modelaco de sistemas en los que el tiempo es crtico como los sistemas de tiempo
real. El proceso de construccin de un DFD omite la informacin de control. Para estos sistemas se han
propuesto ampliaciones como la de Ward y Mellor. La ampliacin consiste en permitir la posibilidad de
captar flujos de informacin continuos en el tiempo, simbolizar informacin de control que se pasa, procesa
o almacena en el sistema y la posibilidad de representar multiples instancias del mismo suceso.
4. TCNICAS DESCRIPTIVAS
Las tcnicas descriptivas para la construccin de un DFD consisten en un proceso de refinamiento en
etapas, como el propuesto.
1. Identificar entradas y salidas
2. Construcin del diagrama de contexto (nivel 0). Slo interesa qu entra y qu sale, no como se
procesa. Es un resumen del sistema en que aparecen todas las entidades externas.
3. Obtencin de subsistemas principales (nivel 1). Se descompone el diagrama de nivel 0 y se
obtienen las funciones principales del sistema.
4. Explosin de procesos hasta conseguir procedimientos primitivos.
5. Especificar los procesos primitivos
6. Descripcin del diccionario de datos. Se describen los datos de los flujos y almacenes
5. DOCUMENTACIN
Las tcnicas descriptivas del anlisis sirven como documentacin del sistema. A nivel conceptual, se usa el
DFD. A nivel lgico deben documentarse datos y procesos. Las tcnicas de descripcin vistas documentan
los procesos. Para la documentacin de los datos se construye un diccionario de datos.
El diccionario de datos documenta tres elementos: datos, flujos y almacenes de datos. Usa la notacin
BNF: +, {}, [], *comentario*, | , =, @.
Para los datos se especifica nombre y valores (mediante comentario). Para el flujo se especifica al menos,
el nombre, significado y composicin. Para el almacn de datos, al menos el nombre, significado y
composicion. Se realiza a nivel conceptual, no hace falta normalizar.
La gestin de la documentacin en proyectos ms o menos complejos implica una automatizacin. Es la
razn para usar herramientas CASE, que suelen soportan el anlisis estructurado como por ejemplo, Oracle
Designer o Sybase PowerDesigner. Para entornos Linuxexisten herramientas de grficos como DIA o TMC.

223
TEMA 50. ANLISIS DE SISTEMAS: MODELIZACIN CONCEPTUAL DE DATOS. TCNICAS
DESCRIPTIVAS. DOCUMENTACIN.

1. INTRODUCCIN
2. ANLISIS DE SISTEMAS: MODELIZACIN CONCEPTUAL DE DATOS
3. TCNICAS DESCRIPTIVAS
3.1. Componentes
3.2. Construccin
4. DOCUMENTACIN

224
1. INTRODUCCIN
Una vez que se realiza el anlisis de un sistema modelizando el tratamiento de la informacin, su flujo y
control (perspectiva dinmica), comienza la modelizacin conceptual de los datos, desde lo que se da en
llamar la perspectiva esttica del anlisis, es decir, la definicin de las entidades del modelo, sus atributos y
restricciones. Es el objeto de este tema.
2. ANLISIS DE SISTEMAS: MODELIZACIN CONCEPTUAL DE DATOS
La modelizacin conceptual de datos abarca varias entidades mnimas, presentes en todo sistema: objetos
o entidades, especializaciones, relaciones, restricciones y agregaciones.
Los objetos o entidades son los elementos identificados, dotados de existencia independiente de los usados
para almacenar la informacin.
Las especializaciones o generalizaciones, son relaciones conceptuales jerrquicas entre entidades. Las
relaciones entre entidades son conexiones lgicas entre entidades. La diferencia estriba en que la primera
es una relacin jerrquica, en la que pueden darse relaciones tipo herencia. La relacin es una definicin de
cmo interactan entre s entidades, entindase as, sin relacin de parentesco.
Las restricciones son los lmites del sistema en cuanto a elementos que se pueden, o no, existir en l y las
agregaciones son uniones de dos o ms entidades para formar otra entidad independiente.
3. TCNICAS DESCRIPTIVAS
Si el DFD era la tcnica descriptiva de referencia para el anlisis del tratamiento de los datos, para la
modelizacin de datos, la tcnica a estudiar es el diagrama entidad-relacin (DER).
El modelo entidad-relacin fue propuesto por Chen a mediados de los aos 70. Se basa en el uso de dos
elementos, entidades y relaciones entre ellas. Su naturalidad facilita la modelizacin. El objeto del modelo
entidad-relacin es representar grficamente el problema (universo del discurso). Aunque existen
variaciones, difieren poco de la propuesta original de Chen.
3.1. Componentes
Entidad. Es la representacin de un elemento del universo del discurso. Identifica un componente bsico de
un sistema, el tipo de objeto. Cada objeto concreto, perteneciente a una entidad, se le denomina ocurrencia.
Las entidades se caracterizan con atributos, que representan sus propiedades. Pueden ser simples (un
nico valor), compuesto (se divide en valores ms simples) o multivaluado (pueden tomar varios valores).
Especializacin. Es la descomposicin del tipo de una entidad en subtipos. Un subtipo compartir atributos
(propiedades) con la entidad (clase) que lo genera. Al proceso inverso (crear una entidad como conjunto de
propiedades comunes a otras) se denomina generalizacin.
En funcin de su herencia, las especializaciones se clasifican en disjuntas y solapadas. Las disjuntas son
aquellas en que una ocurrencia slo pertenece a una subclase y las solapadas en las que una ocurrencia
puede pertenecer a varias subclases.
Segn su cobertura, las especializaciones pueden ser totales o parciales. En las totales todas las
ocurrencias deben participar en alguna subclase. En las parciales, algunas ocurrencias pueden no
pertenecer a alguna subclase (perteneceran a la clase padre)
Relacin. Representa la asociacin entre entidades. Una relacin asocia una ocurrencia de cada entidad
implicada. Slo se modelan las relaciones relevantes. Se definen con nombre, grado (nmero de tipos de
entidades relacionadas) y cardinalidad (nmero de veces en los que cada entidad puede participar en la
relacin). Se pueden dar relaciones entre entidades del mismo tipo, denominadas relaciones reflexivas.
Agregacin. Se da cuando la relacin que vincula dos entidades tiene caractersticas de identidad, y se
relaciona con otras entidades.
Restriccin. Es el lmite de lo que puede representar el modelo. En el caso E/R, los tipos de restricciones se
definen sobre atributos, relaciones u otras.
Las restricciones sobre atributos se pueden referir al dominio (lmite de sus valores), a valores no nulos
(imposibilidad de no tener valor), a unicidad (cada ocurrencia de una entidad debe tomar un valor distinto de
atributo) o a la identificacin (unicidad y valor no nulo: as, con el valor del atributo se puede localizar una
ocurrencia de la entidad en el sistema).
Las restricciones sobre relaciones pueden ser de cardinalidad o identificacin. Las de cardinalidad limitan el
nmero de relaciones en las que puede participar una ocurrencia de una entidad. Se marca en las lneas
que unen entidad y relacin.

225
Las restricciones de identificacin son las que se dan cuando una entidad no posee atributos que la
identifiquen, se distingue por medio de las entidades con las que se relaciona (ejemplo: sucursal y cuenta).
A este tipo de entidades se les denomina entidades dbiles.
Existen adems otras restricciones complejas que no se representan grficamente. El modelo E/R admite la
descripcin textual, lenguaje de algebra relacional, etc. Por ejemplo: Ningn alumno menor de 18 aos
podr cursar ciclo de grado superior
3.2. Construccin
Para construir un DER a partir del anlisis se suele seguir el siguiente mtodo.
Identificar tipos de entidad y atributos. A cada objeto del modelo se identifica con una entidad, a que se
asocian atributos y se define el dominio de los mismos.
Identificar generalizaciones y especializaciones. En el primer caso, de forma ascendente, de concreto a
abstracto, y en el segundo, de abstracto a concreto. Se definirn las relaciones de especializacin /
generalizacin entre entidades.
Identificar relaciones entre entidades. Definidas las entidades, se har el de sus vnculos, modelados como
relaciones, indicando su cardinalidad.
Identificar entidades dbiles. En caso de darse, se estudian a partir de las relaciones en que se identifican.
Identificar agregaciones. Si se da la necesidad de una relacin a partir de otra, la segunda se definir como
agregacin.
Restricciones. Las propiedades que no hayan quedado reflejadas deben expresarse mediante algn
lenguaje formal o lenguaje natural.
Existen diferentes notaciones para representar un DER. A parte de la de Chen, la notacin Martin es muy
extendida. Introduce algunas variaciones con respecto a la primera, que se concretan en no representar los
atributos (y si se hace, en el cuadro de la entidad), que las relaciones 1:N y 1:1 se representan como arcos,
las relaciones N:M se representan con un rombo inscrito en un rectngulo, las entidades dbiles se
representan como un rectngulo de lnea doble y para representar la cardinalidad se usa la notacin
crowfoot.
4. DOCUMENTACIN
El grueso de la documentacin del anlisis conceptual de datos de un sistema es el modelo obtenido. En
general, para el anlisis estructurado, ser el DER, que representar fielmente el modelo.
Otra documentacin del anlisis puede ser la de gestin, reuniones, documentacin para la trazabilidad de
requisitos, gestin de calidad, riesgos, etc. Aunque, es documentacin no directamente involucarada en el
proceso creador. Es documentacin de apoyo, tambin importante.

226
TEMA 51. ANLISIS DE SISTEMAS: ESPECIFICACIN FUNCIONAL DEL SISTEMA. BSQUEDA Y
DESCRIPCIN DE REQUISITOS FUNCIONALES. ESPECIFICACIN DE SOLUCIONES TCNICAS.
ANLISIS DE VIABILIDAD TCNICA Y ECONMICA.

1. INTRODUCCIN
2. ANLISIS DE SISTEMAS: ESPECIFICACIN FUNCIONAL DEL SISTEMA
3. BSQUEDA Y DESCRIPCIN DE REQUISITOS FUNCIONALES
4. ESPECIFICACIN DE SOLUCIONES TCNICAS
5. ANLISIS DE VIABILIDAD TCNICA Y ECONMICA
5.1. Viabilidad tcnica
5.2. Viabilidad econmica

227
1. INTRODUCCIN
La ingeniera del software incluye los metodos, herramientas y procesos orientados a la gestin del
desarrollo software. Su esencia, puede entenderse como la de gestin de proyectos. Y por tanto, hay que
definir el alcance y funcionalidad del sistema a proyectar, elegir entre las posibles alternativas y una vez
tomada la decisin de acomenter el proyecto, definir la arquitectura del sistema. Estas tareas no son
triviales, por lo que existen numerosas metodologas como Mtrica v3, que aqu se toma como referencia.
2. ANLISIS DE SISTEMAS: ESPECIFICACIN FUNCIONAL DEL SISTEMA
El anlisis del sistema engloba las primeras etapas del desarrollo software, que presentan los objetivos de
identificar las necesidades de la organizacin, proponer alternativas de solucin, realizacin de un anlisis
tcnico y el EVS (estudio de viabilidad del sistema).
Esta etapa concluir con el conjunto de requisitos que el sistema debiera cumplir y la especificacin de la
arquitectura de la solucin a implementar. Mtrica v3 identifica esas etapas en el subproceso EVS en el
proceso de Desarrollo de Sistemas de Informacin.
3. BSQUEDA Y DESCRIPCIN DE REQUISITOS FUNCIONALES
Identificar las necesidades de un cliente o peticionario no es fcil. La descripcin de los requisitos
funcionaleses un arte, la ingeniera del requisitos, que destila tcnicas de captura, catalogacin,
refinamiento y trazabilidad de requisitos de usuario. Se basa en procesos a realizar a lo largo del desarrollo
software para asegurar que el producto solucione las necesidades reales del usuario.
Se distinguen procesos de captura (para obtener los requisitos del usuario), de calidad (verificacin de la
validez de los requisitos) y de gestin (solucin de posibles conflictos con el usuario y control de cambios).
En las primeras fases no es necesario un detalle exhaustivo de requisitos, ya que se trata de intuir el
alcance del proyecto y proponer alternativas de solucin. En Mtrica 3, el trabajo con requisitos se engloba
en el subproceso de anlisis. En la fase del EVS, los requisitos se tratan en dos subprocesos:
EVS1. Alcance del sistema. A partir de la solicitud del usuario, se obtiene el contexto del sistema, la
estructura organizativa a la que afecta, requisitos a muy alto nivel y descripcin de los usuarios implicados
en el desarrollo del sistema.
EVS2. Situacin actual. Se describe el sistema actual y se evala si se considera apropiado el nuevo. Se
identifican los usuarios del sistema.
EVS3. Definicin de requisitos del sistema. Identificados los usuarios, se identifican las restricciones que la
organizacin impone en el desarrollo del sistema, definiendo el cdigo de normas que cumplir el futuro
sistema y el catalogo de requisitos refinado y priorizado.
Con el resultado de estas fases se propondrn las posibles alternativas tcnicas.
4. ESPECIFICACIN DE SOLUCIONES TCNICAS
Las alternativas de solucin tcnica deben concretarse en una decisin. Entre las alternativas comunes
suelen estar los nuevos desarrollos, los mantenimientos (cambios menores), los desarrollos evolutivos o la
implantacin de soluciones comerciales.
Cada alternativa generar documentos que permitan evaluarla con posterioridad, como la descomposicin
en susbsistemas (diagramas de arquitectura), los DFD de primer nivel, DER y casos de uso. En Mtrica 3 la
especificacin de soluciones tcnicas se identifica con la fase EVS4.
EVS4. Alternativas de solucin. A partir de la priorizacin de requisitos se realiza una preseleccin de
alternativas y su consiguiente descripcin.
Las alternativas cubrirn los requisitos de usuario y se recogern en un informe de alternativas de solucin
o similar. Cada alternativa se describir con mayor detalle. Para ello se suelen usar matrices de requisitos,
descripcin de procesos, entorno tecnolgico, estrategia de implantacin, modelo abstracto de datos y
coste. Con el informe de alternativas y su descripcin, se optar por una. La especificacin de la solucin en
su aspecto tcnico, estar sustentada en esquemas. Ejemplos representativos son los diagramas de
arquitectura o los diagramas SADT.
Un diagrama de arquitectura se representa con un rectngulo dividido en cinco espacios: interface de
usuario, proceso de entrada, de salida, operacin y mantenimiento y autocomprobacin. Los diagramas de
arquitectura se descomponen en niveles, al estilo de los DFD. Los diagramas SADT son una propuesta de
Mtrica 3, adecuado para modelar procesos organizativos. Se estructuran en componentes organizados en
varios niveles.

228
5. ANLISIS DE VIABILIDAD TCNICA Y ECONMICA
Antes de comenzar un proyecto, debe estimarse si tendr xito, si ser posible. Esto se suele denominar
Estudio de Viabilidad del Sistema (EVS), como se ha presentado y aborda dos planos, la viabilidad tcnica y
la econmica.
La viabilidad tcnica evala si el alcance del proyecto ser posible con la tecnologa disponible. Tiene en
cuenta los recursos humanos, software y hardware. La viabilidad econmica evala el coste del desarrollo y
lo compara con el beneficio estimado del desarrollo. Puede incluir aspectos estratgicos, como el
conocimiento que proporcionara, o los costes de explotacin, lo que har considerar una parte de la
viabilidad como inversin. Otro aspecto del EVS es el cumplimiento de las especificaciones normativas y
legales, en que se considera la adecuacin del proyecto a la ley vigente (por ejemplo, la Ley de Proteccin
de Datos).
5.1. Viabilidad tcnica
Es el estudio de las caractersticas tcnicas de la solucin propuesta. Incluye el esfuerzo de desarrollo,
rendimiento esperado y mantenimiento. Se pretende estimar si ser posible desarrollar el sistema con
garanta de xito.
El EVS se apoya en el anlisis de riesgos, que consiste en su identificacin (probabilidad de materializarse
una amenaza) como puedan ser retrasos, impacto en el negocio, tecnologa, etc. Y en la proyeccin de
riesgos consistente en estimar el impacto, la afeccin sobre la organizacin de la concrecin de la amenaza.
Por su naturaleza, se usan modelos matemticos de estimacin
En esta fase no se realiza la gestin del riesgo, slo su anlisis, orientado a soportar la decisin sobre la
viabilidad del proyecto. En Mtrica 3, estas tareas se engloban en la EVS5.
EVS5.Valoracin de alternativas. En esta tarea se analiza el coste-beneficio, el anlisis de riesgos, con un
estudio del impacto en la organizacin y el plan de trabajo de la alternativa.
5.2. Viabilidad econmica
La viabilidad econmica es el estudio de la valoracin de costes y beneficios esperados. Se usan tcnicas y
conceptos econmicos entre los que cabe destacar el punto de amortizacin, periodo de recuperacin y
retorno de la inversin.
El punto de amortizacin es el cruce de la curva de beneficio del nuevo sistema y la curva de costes que ha
generado. A partir de ese punto umbral, se obtienen beneficios. El periodo de recuperacin, es el tiempo
que transcurre hasta que se recupera la inversin con flujo de caja neto. Cuanto menor es el periodo de
recuperacin ms atractiva ser la inversin. El retorno de la inversin (ROI) es el rendimiento en tanto por
ciento de la inversin para un periodo dado.
En Mtrica 3 se resume todo el trabajo expuesto, con la tarea EVS6, que resulta en la seleccin de la
alternativa ms ventajosa, soportada en los estudios de viabilidad.
EVS6. Seleccin de la solucin. Con los criterios que se establezcan se optar por una de las alternativas
presentadas. La eleccin, se presentar al responsable, comit de direccin u rgano que proceda, para su
visto bueno y aprobacin del proyecto.

229
TEMA 52. DISEO LGICO DE FUNCIONES. DEFINICIN DE FUNCIONES. DESCOMPOSICIN
MODULAR. TCNICAS DESCRIPTIVAS. DOCUMENTACIN.

1. INTRODUCCIN
2. DISEO LGICO DE FUNCIONES
3. DEFINICIN DE FUNCIONES
4. DESCOMPOSICIN MODULAR
4.1. Descripcin del sistema
4.2. Transfomacin del modelo conceptual al lgico
4.3. Independencia funcional
4.3.1. Acoplamiento
4.3.2. Cohesin
5. TCNICAS DESCRIPTIVAS
6. DOCUMENTACIN

230
1. INTRODUCCIN
Tras el anlisis de un SI, se desarrolla la etapa de diseo. Las tcnicas son diversas, pero destacan las de
diseo estructurado por ser ms didcticas. A partir de los diagramas de flujo del anlisis se procede al
diseo lgico de las funciones del sistema y su descomposicin modular.
2. DISEO LGICO DE FUNCIONES
El diseo lgico de funciones suele partir de un diagrama de flujo de datos y desciende a un detalle mayor
del modelo del sistema, que facilite la codificacin del software. Supone el paso del modelo conceptual al
lgico de tratamiento.
Esta tarea organiza los mdulos identificados en el anlisis definiendo su estructura, relaciones entre ellos y
detallando las acciones a realizar por parte de cada uno de ellos usando tcnicas de descripcin de
mdulos. La representacin de la descomposicin modular del sistema se suele realizar con un diagrama de
estructura. Como principios del diseo lgico de funciones se pueden identificar los siguientes:
Descomposicin. Dividir un problema en problemas ms sencillos.
Combinacin. Se refiere a un diseo que ofrezca facilidad para reutilizar los mdulos y su combinacin.
Comprensibilidad. Debe buscarse la facilidad de entendimiento de la funcin que realiza cada mdulo, en
relacin a su contexto.
Adaptabilidad. Es deseable que los mdulos puedan ser modificados fcilmente. Un buen diseo minimizar
el trauma del cambio si los mdulos son adaptables.
Proteccion. Ha de intentarse que los errores no se propaguen, de forma que queden en el mbito de un
mdulo, en la medida de lo posible.
3. DEFINICIN DE FUNCIONES
La definicin de funciones identifica bsicamente tres criterios: abstraccin, refinamiento y ocultacin.
Abstraccion. Es la identificacin de un ente en funcin de sus caractersticas diferenciales y que, por tanto,
lo definen. Esa identificacin puede tener poco detalle, que ir concretndose en la fase de desarrollo.
Refinamiento y modularidad. El refinamiento sucesivo (propuesto por Wirth), es una estrategia de diseo
consistente en describir un procedimiento con un alto nivel de abstraccin y poco a poco ir concretando las
acciones a realizar de forma ms detallada.
Ocultacin. Se refiere al diseo de las funciones de forma que la informacin y su proceso dentro de la
misma, permanezca transparente al resto del sistema. Lo nico que se da es un interface de comunicacin.
La ocultacin facilita la descomposicin del problema, la propagacin de errores y la mantenibilidad.
Estos criterios de diseo estructurado derivan en una descomposicin modular de las funciones partiendo
del DFD. La estrategia de diseo (anlisis de transformaciones y transacciones), generar un diagrama de
estructura, que describa mdulos y sus relaciones, y representar el modelo lgico del sistema.
4. DESCOMPOSICIN MODULAR
La descomposicin modular en el diseo de una funcin es la actividad que consiste en identificar los
posibles mdulos que la compongan. Un mdulo es un elemento de la funcin que posee una funcionalidad
propia de forma que en combinacin con otros mdulos o procesos constituyen una unidad mayor.
Para resumir sus caractersticas se puede decir que un mdulo es una caja negra con interfaz. Sera una
caja negra en cuanto que se sabe qu hace, pero no cmo lo hace. Y est dotado de un interfaz porque su
relacin o combinacin con otros mdulos precisa que a partir de unas entradas, se obtenga un resultado.
El formato de estas E/S debe conocerse, es decir, el interfaz.
Meyer propuso tres principios de diseo para obtener una descomposicin modular correcta; la descripcin
del sistema, la transformacin del modelo conceptual al lgico y la independencia funcional de los mdulos.
4.1. Descripcin del sistema
La descripcin del sistema utiliza tcnicas descriptivas habituales como el uso del diagrama de estructura
(DE), esquema que representa la composicin interna del sistema. Suele hacerse indicando la relacin
entre los mdulos del programa en forma de rbol. Los componentes de un diagrama de estructura son
mdulos, relaciones y trnsito de informacin.
Mdulo. Se representan con rectngulos con el nombre del mdulo. Los mdulos disponibles o ya definidos,
se representan con dos lneas paralelas en su interior.
Relaciones. Se representan con lneas que unen mdulos. Indican llamadas entre mdulos. En general

231
suele representante el mdulo llamante en un plano superior para dar idea de subordinacin y se pueden
especificar llamadas alternativas o iterativas.
Trnsito de informacin. Se representa con crculo y flecha entre mdulos con sus parmetros. La flecha
indica el sentido del trnsito. La informacin puede ser datos o de control (flags, banderas). En algunas
notaciones, como mtrica 3, tambin se representan los almacenes de datos y dispositivos fsicos.
Se distinguen dos ideas en los diagramas de estructura, al estilo de la electrnica digital, el fan-in y el fan-
out. El fan-in de un mdulo dado, es el nmero de mdulos que lo controlan o llaman. El fan-out es el
nmero de mdulos controlados o llamados por l.
4.2. Transformacin del modelo conceptual al lgico
La transformacin de un DFD (MC, Modelo Conceptual) al DE (ML, Modelo Lgico) se basa en identificar
transacciones y transformaciones. Una transformacin identifica tres tipos de procesos, los que obtenienen
la informacin a procesar, los que la transforman o procesan y los que presentan o almacenan los
resultados. Al conjunto se le denomina centro de transformacin.
Una transaccin ejecuta una operacin de entre las posibles de un proceso, en funcin del valor de un flujo
de datos. El proceso encargado de la seleccin se denomina centro de transaccin. El proceso para
transformar un DFD en un DE identifica los siguientes pasos:
Anlisis de transaccin. Si en el DFD existen transacciones se aislan y se procesa cada una por separado
Anlisis de transformacin. Se identifican los centros de transformacin y se definen las operaciones de
entrada, proceso y salida.
Segundo nivel de factorizacin. Se detalla la estructura de mdulos necesaria para cada rama del centro de
transformacin.
Refinamiento. Estudio de mejora de la estructura de mdulos obtenida.
Reconstruccin del sistema. Se reunen las transacciones que parten de un centro de transformacin, para
generar un nico diagrama.
4.3. Independencia funcional
La descomposicin funcional inicial debe refinarse para mejorar el diseo. El objetivo son mdulos con
funciones bien distinguidas e independientes lo que facilita la codificacin y el mantenimiento. Para ello, hay
que tener en cuenta dos propiedades de los mculos, el acoplamiento y la cohesin.
4.3.1. Acoplamiento
El acoplamiento es una medida del grado de dependencia entre mdulos. Se tender a que sea bajo, ya
que as, cada mdulo no depender de las particularidades de los dems. Se identifican varios tipos de
acoplamiento: normal, global y por contenido.
El acoplamiento normal, a su vez identifica otros tres: por datos, por estampado y por control. En el primero,
todos los datos que se pasan entre mdulos son elementales. Es el menor acoplamiento posible, y el ms
recomendable. En el acoplamiento por estampado los mdulos se pasan estructuras complejas de datos y
el acoplamiento por control es en el que un mdulo pasa datos a otro para controlar su lgica interna.
El acoplamiento global o comn es el que usa variables globales. Como se comparten datos, se dificulta el
control del proceso sobre esas variables. Se propagan errores.
El acoplamiento por contenido es en el que un mdulo se refiere a datos internos de otro o se realizan
saltos incondicionales.No es recomendable.
4.3.2. Cohesin
La cohesin mide el grado de relacin funcional entre elementos de un mdulo, es decir de la claridad y
concrecin de la funcin del mdulo. Se tiende a que sea alta. Se identifican varios tipos de cohesin.
La cohesin funcional de un mdulo es en la que todos los elementos contribuyen a realizar una nica
funcin. La cohesin secuencial implica varias tareas, siendo la salida de una, la entrada de otra. La
cohesin comunicacional se da cuando el mdulo comparte interface.
La cohesin procedimental se refiere a actividades que se realizan secuencialmente, sin datos relacionados
y la temporal a las actividades simultneas y sin relacin. En la cohesin lgica, un mdulo realiza
actividades de la misma categora llamadas desde fuera del mdulo y en la casual se realizan actividades,
sin relacin significativa entre ellas.
5. TCNICAS DESCRIPTIVAS

232
Realizada la descomposicin modular y
refinado el diseo, se detalla cada
mdulo con ms profundidad con
tcnicas descriptivas como son las
siguientes.
Diagrama interfaz-funcin. Permite
describir un mdulo de forma textual,
indicando nombre, E/S y funcin, como
se muestra en la figura derecha.
Pseudocdigo. A veces referido como LDP (lenguaje de diseo de programas), es un lengaje informal,
similar al natural, con cuatro elementos: sintaxis fija, que permita representar construcciones estructuradas,
una sintaxis libre, para describir las caractersticas de proceso, facilidad de declaracin de datos y sintaxis
de llamada a subprogramas
Ordinogramas. Son los DFD. Representan procesos con rectngulos, bifurcaciones con rombos, etc.
Diagramas de Nassi-Schneiderman.
Representan el contenido de un mdulo
respetando la programacin
estructurada. Se caracterizan por la
buena definicin de seleccin y
repeticin y permitir determinar con
facilidad el mbito de las variables.
Tablas de decisin. Pretenden traducir
acciones y condiciones en una tabla.
Permite para una serie de condiciones
concretas, saber con facilidad qu
acciones deben realizarse, como en el
ejemplo del cuadro.
Actualmente, el paradigma ms usado puede ser la POO (programacin orientada a objetos), en la que el
diseo consiste en refinar las clases obtenidas en el anlisis, no como proceso diferenciado, como ocurre
en el anlisis estructurado. En el fondo, la esencia de las tcnicas es similar.
6. DOCUMENTACIN
Al igual que en el resto de procesos, la documentacin requerida a la etapa de la descomposicin modular
se resume en el diagrama de estructuras, donde verdaderamente se describe la estructuracin del sistema.
Asimismo, hara falta documentar cada uno de los mdulos identificados. Del mismo modo, esta etapa
generar o dara motivo de modificacin a otra documentacin colindante, como la de gestin, riesgos,
requisitos, u otras. Como ya se indic, aunque no sea documentacin propiamente del proceso, es
documentacin de apoyo, importante.

233
TEMA 53. DISEO LGICO DE DATOS. TRANSFORMACIN DEL MODELO CONCEPTUAL A
MODELOS LGICOS. ANLISIS RELACIONAL DE DATOS. DOCUMENTACIN.

1. INTRODUCCIN
2. DISEO LGICO DE DATOS
3. TRANSFORMACIN DEL MODELO CONCEPTUAL A MODELOS LGICOS
4. ANLISIS RELACIONAL DE DATOS
5. DOCUMENTACIN

234
1. INTRODUCCIN
La ingeniera del software identifica varias etapas en su desarrollo. Tanto anlisis como diseo pretenden
modelar un sistema para implementar la solucin, como se ha indicado, desde tres perspectivas, la esttica,
la dinmica y la integrada. El objetivo de la perspectiva esttica es el diseo lgico de datos. ste
representa el paso del modelo conceptual generado en el anlisis al modelo lgico, que debe ser refinado y
documentado.
2. DISEO LGICO DE DATOS
El diseo lgico de datos, ms concreto y cercano a la solucin final, se realiza en dos pasos, la
transformacin del modelo ER a un esquema lgico (teniendo en cuenta restricciones) y el refinamiento de
la estructura para evitar redundancias (normalizacin). Esto obliga a la elaboracin de un primer diseo
lgico estandar, adecuando el tipo de modelo lgico formal a su adaptacin al modelo lgico especfico del
SGBD que se utilice. Estos dos pasos se identifican como diseo lgico estndar y especfico.
El diseo lgico estndar se puede basar en tres modelos: jerrquico, en red y relacional. En la prctica, el
que se usa es el relacional.
El diseo lgico especfico supone la base de la adaptacin del estndar a la funcionalidad ms detallada
que se exija al sistema final. Para ello, se usarn extensiones o modificaciones del diseo estndar.
3. TRANSFORMACIN DEL MODELO CONCEPTUAL A MODELOS LGICOS
El caso general parte de un modelo conceptual basado en el diseo entidad-relacin. Siguiendo las reglas
de diseo de Chen, se tendr que toda entidad se convertir en una relacin, las relaciones de cardinalidad
N:M se transforman en una relacin y las relaciones 1:N o propagan clave o se transforman en relacin.
Adems, en la transformacin se tendr en cuenta las siguientes consideraciones.
Dominios. Se representan directamente, ya que el modelo relacional admite dominios.
Entidades. Se tendr en cuenta si son entidades fuerte no especializadas o dbiles.
Restricciones. Se trata de identificar las restricciones del sistema, en cuanto a relaciones, agregacin y
especializacin / generalizacin.
Las relaciones tendrn en cuenta su cardinalidad, 1:1 (simple, con una o con dos restricciones de
existencia), 1:N (simple, con una o dos restricciones de existencia), N:N, reflexiva o ternaria. Las
especializaciones se evaluarn para encajarlas como totales y parciales o solapadas y disjuntas.
El modelo lgico tendr en cuenta otras restricciones que imponga el modelo conceptual. El modelo
relacional admite restricciones adicionales que podrn ser especificadas en algn lenguaje formal, como
SQL. Adems permite especificar comportamientos en el borrado de tuplas, como la transmisin en
cascada, puesta a nulos, inicializacin y valores por defecto, etc.
4. ANLISIS RELACIONAL DE DATOS
Es la parte del anlisis orientado a eliminar redundancias y obtener estructuras de datos que favorezcan la
integridad (anomalas de actualizacin, por ejemplo). Para ello, se trabaja sobre las relaciones entre los
datos identificndose diferentes niveles de normalizacin llamados Formas Normales. Se habla de 6
formas normales, en funcin de la relacin que se establece y las restricciones que impuestas, y cada uno
enfrenta situaciones problemticas del diseo.
Se dice que una relacin est en una forma normal si satisface un conjunto de restricciones impuestas por
la regla de normalizacin correspondiente. La aplicacin de una regla es una operacin que toma como
entrada una relacin y resulta en dos o ms relaciones
1FN. 1 Forma Normal. Una relacin est en 1FN si y slo si los valores que componen cada atributo de una
tupla son atmicos, es decir, cada atributo de la relacin toma un nico valor del dominio correspondiente, o
lo que es lo mismo no existen grupos repetitivos.
Una tabla estar en 1FN si tiene un solo valor en cada interseccin de fila y columna. Un conjunto de
relaciones est en 1FN si ninguna tiene grupos repetitivos. Si una relacin no tiene 1FN, deben eliminarse
grupos repetitivos, aquellos atributos o grupos de ellos con mltiples valores para cada tupla.
Para eliminar los grupos repetitivos, para cada valor del grupo, se repiten los atributos con un solo valor.
Esto introduce redundancias ya que duplica valores, pero stas se eliminarn con el resto de formas
normales. La segunda forma de eliminar los grupos repetitivos consiste en poner cada uno de ellos en una
relacin aparte, heredando la clave primaria de la relacin en la que se encontraban. Por ejemplo:

235
R= @NumFactura + Fecha + IdCliente + NombreCliente + Tfno + {CodProducto + DescProducto + PVP +
Cantidad} + ImporteFactura
No estara en 1FN porque posee grupos repetidos. Se repite la informacin previa en cada tupla. Podra
dividirse en dos relaciones:
R1 = @NumFactura + Fecha + IdCliente + NombreCliente + Tfno + ImporteFactura
R2 = @NumFactura + @CodProducto + DescProducto + PVP + Cantidad
2FN. 2 Forma Normal. Una relacin est en 2FN si y slo si satisface la 1FN y cada atributo de la relacin
que no est en la clave, depende funcional y completamente de la clave primaria. La 2FN se aplica a las
relaciones que tienen claves primarias compuestas por dos o ms atributos. Si una relacin est en 1FN y
su clave primaria es simple (un atributo), entonces tambin est en 2FN. Las relaciones que no estn en
2FN pueden sufrir anomalas al actualizar.
Transformar una relacin en 1FN a 2FN es eliminar las dependencias parciales de la clave primaria. Para
ello, se eliminan los atributos funcionalmente dependientes y se ponen en una nueva relacin con una copia
de su determinante (atributos de la clave primaria de los que dependen).
Se crearn dos tablas para eliminar dependencias funcionales; una tendr los atributos que dependen
funcionalmente de la clave, y la otra los atributos que forman parte de la clave de la que dependen. Ejemplo:
R1: NumFactura Fecha, IdCliente, NombreCliente, TfnoCliente, ImporteFactura
IdCliente NombreCliente, TfnoCliente
R2: CodProducto DescProducto, ImporteProducto, Cantidad
R2, DescProducto e ImporteProducto no son plenamente dependientes de la clave. Dependen slo de parte
de la clave. Se puede dividir la relacin en la forma:
R1 = @NumFactura + Fecha + IdCliente + NombreCliente + TfnoCliente + ImporteFactura
R2.1 = @NumFactura + @CodProducto + Cantidad
R2.2 = @CodProducto + DescProducto + ImporteProducto
3FN. 3 Forma Normal. Una entidad est en 3FN si est en 2FN y todos sus atributos no principales
dependen directamente de la clave primaria..
Para pasar una relacin de 2FN a 3FN hay que eliminar las dependencias transitivas. Para ello, se eliminan
los atributos que dependen transitivamente y se ponen en una nueva relacin con una copia de su
determinante (el atributo o atributos no clave de los que dependen). En el ejemplo, en R1, NumFactura
determina IdCliente y ste NombreCliente y TfnoCliente. Puede dividirse la relacin en la forma:
R1.1 = @NumFactura + Fecha + IdCliente + ImporteFactura
R1.2 = @IdCliente + NombreCliente + TfnoCliente
R2.1 = @NumFactura + @CodProducto + Cantidad
R2.2 = @CodProducto + DescProducto + ImporteProducto
Estas tres formas normales se resumen como el requisito de que todos los atributos no-clave sean
dependientes en "la clave, la clave completa, y nada excepto la clave".
La Forma Normal de Boyce-Codd (FNBC) es una versin ms restrictiva que la 3FN y consiste en no
permitir dependencias funcionales no triviales de atributos que no sean un conjunto de la clave candidata.
Se dice que una tabla est en FNBC si y solo si est en 3FN y cada dependencia funcional no trivial tiene
una clave candidata como determinante.
4FN. 4 Forma Normal. Una relacin est en 4FN si y solo si, est en 3FN o FNBC y no posee
dependencias multivaluadas no triviales. Una dependencia multivaluada es una relacin en la que dos o
ms relaciones independientes varios a varios causa redundancia, la que pretende eliminar la 4FN.
5FN. 5 Forma Normal. Una relacin est en 5FN si y solo si, est en 4FN y cada dependencia de unin es
implicada por claves candidatas. Se conoce como FNPJ, forma normal de proyeccin-unin y se basa en
eliminar la redundancia en tuplas multivaluadas, aislando semnticamente relaciones mltiples.
La 4FN y la 5FN se aplican a relaciones entre atributos de cardinalidad 1:N y N:N.
6FN. 6 Forma Normal. Tambin conocida como forma normal de dominio-clave (DKNF). Pretende
descomponer las claves candidatas de una tabla, lo que es importante cuando se trabaja con variables
temporales o datos de intervalo. No se suele usar en BBDD pequeas porque atomiza las tablas.

236
Se basa en aplicar restricciones de dominio (valores permitidos a cada atributo) y claves (atributos que
definen una fila en una tabla). La situacin ideal es que cada restriccin en la relacin sea consecuencia de
la definicin de claves y dominios de forma que se cumplan automticamente, evitando anomalas no
temporales. Es difcil la definicin de una BBDD en esta forma.
5. DOCUMENTACIN
La documentacin generada en el diseo lgico de datos se orienta a servir de base para el diseo fsico.
Por tanto, adems del esquema relacional debe incluir una estimacin del tamao y volumen de informacin
que se espera manejar y una primera aproximacin al control de acceso, esbozando quin podr acceder a
qu informacin.
Los criterios utilizados para elaborar el diseo lgico de los datos, deben quedar documentados por si en el
futuro hay que usar dicha informacin en desarrollos adaptativos o evolutivos. Adems, la documentacin
reflejar los requisitos de acceso a las relaciones (qu procesos, cunto y con qu criterios acceden a las
relaciones) para poder definir claves e ndices al desarrollar el diseo fsico.

237
TEMA 54. DISEO DE INTERFACES DE USUARIO. CRITERIOS DE DISEO. DESCRIPCIN DE
INTERFACES. DOCUMENTACIN. HERRAMIENTAS PARA LA CONSTRUCCIN DE INTERFACES.

1. INTRODUCCIN
2. DISEO DE INTERFACES DE USUARIO
3. CRITERIOS DE DISEO
4. DESCRIPCIN DE INTERFACES
5. DOCUMENTACIN
6. HERRAMIENTAS PARA LA CONSTRUCCIN DE INTERFACES

238
1. INTRODUCCIN
El diseo de interfaces grficas de usuario posee gran importancia debido a la popularizacin del uso del
ordenador. Efectivamente, interfaces mal diseados llevan a situaciones de confusin, dificultad de
aprendizaje y frustracin que derivan en una merma de productividad. Por el contrario si un interface se
disea correctamente, al usuario le resultar intuitivo el uso del programa, acelerando el proceso de
aprendizaje y por tanto su rendimiento.
El diseo de un interface se relaciona con el software, de forma que oculta al usuario la implementacin de
los detalles, de por ejemplo, el SO. Un buen diseo debe tener en cuenta aspectos no slo tecnolgicos,
sino tambin psicolgicos, de interaccin con el usuario, que contribuirn a la calidad global del software.
2. DISEO DE INTERFACES DE USUARIO
El diseo de interfaces grficas de usuario debe tener en cuenta al menos tres factores: el tipo de usuario
que se enfrentar a la aplicacin, el contexto de trabajo y los factores humanos.
Antes de comenzar el diseo hay que caracterizar al usuario. Es un proceso continuo, porque pueden
cambiar frecuentemente. La solucin debe ser genrica, con independencia del nivel del usuario, ya que
algunos preferirn ms potencia y otros una interaccin ms guiada.
La caracterizacin de usuarios podra distinguir entre avanzados y principiantes. Los primeros incluiran
aquellos que estn acostumbrados a trabajar con aplicaciones informticas; dominan semntica y sintaxis y
en general desean un rpido aprendizaje, evitando detalles. En este caso, el interface sera deseable que
contase con tiempos de respuesta cortos, que realizase muchas operaciones en pocos pasos y la
posibilidad de macros para tareas habituales.
Los usuarios principiantes no poseen conocimiento, o es limitado, ni hbito de trabajo con aplicaciones
informticas. Al enfrentarse al programa, pueden tener una cierta ansiedad e intentar aplicar ideas errneas.
Los conceptos de la aplicacin (semntica) y su sintaxis en general les resultarn difciles o engorrosos.
En este caso, el interfaz grfico es deseable que limite el vocabulario, en particular tcnico, que presente
pocas opciones y el proceso sea ms guiado. Asimismo, se deberan evitar respuestas rpidas y disponer
de una buena documentacin, consistencia (facilitar el reconocimiento) y protecciones frente a usos en los
que el usuario sin experiencia hace pruebas con la aplicacin.
El contexto de trabajo puede ser clasificado segn distintos criterios, por ejemplo, el de aplicacin, que
distinguira contextos de trabajo crtico, empresarial y domstico.
Un contexto crtico puede ser el control de trfico areo o la monitorizacin mdica, donde las aplicaciones
deben responder en tiempo real. En estos casos, el coste es alto, a cambio de una respuesta fiable en
tiempo y forma. El diseo podra ser ms grosero al permitirse perodos largos de formacin y adquirirse un
dominio del sistema con el uso frecuente, en general complementado con entornos de simulacin. La
satisfaccin subjetiva del usuario no es tan importante como en otros contextos.
En entornos empresariales, las decisiones de diseo suelen limitarse por criterios econmicos, de forma
que la fiabilidad o prestaciones no son tan importantes como en contextos crticos. La formacin se
descuida algo ms y se deja una parte importante a la operativa diaria, por lo que el diseo debe hacer que
el uso sea fcil o intuitivo. La satisfaccin subjetiva del usuario no es demasiado importante al prevalecer el
criterio del coste. Un caso particular es aquel en que el usuario es experto en su trabajo, pero no tanto en el
manejo de la informtica, situacin en que el diseo debe combinar facilidad de aprendizaje y satisfaccin.
Por su parte, el entorno domstico englobara el diseo de aplicaciones en que predomina el criterio de la
facilidad de aprendizaje, importante guiado y amplia satisfaccin subjetiva.
Los factores humanos incluiran aspectos como la psicologa, razonamiento y comportamiento del usuario,
en particular lo que ste espera en su interaccin con el ordenador. El diseo del interface debe tener en
cuenta estos factores, evitando que el sistema sea visto como poco amigable. En un interface grfico el
sistema visual del usuario adquiere especial importancia, porque es su puerta de entrada de la informacin,
que almacenar en su cerebro y procesar siguiendo un razonamiento inductivo o deductivo. La
especificacin correcta de la informacin visual es clave en el diseo de un interface amigable.
La lectura es muy importante en los interfaces. El tamao del texto, tipo de letra, longitud de lnea, o el color
son algunos factores que influyen en la facilidad del usuario de familiarizarse con el interface y relacionarse
con la mquina. El interface del programa puede requerir que el usuario recuerde mens o pasos complejos
que el usuario debe recordar. Si el diseo abusa de la exigencia de memoria del usuario, el rendimiento
humano ser menor. Por tanto, un interface debe especificarse de forma que permita al usuario desarrollar
heursticas (experiencias y estrategias basadas en la comprensin de problemas similares), que sean
coherentes en diferentes mbitos de interaccin.

239
Otros aspectos humanos son la habilidad, personalidad o comportamiento del usuario. En general, la
personalidad de un individuo est muy ligada a su estilo cognitivo. El interface grfico debe disearse
teniendo en cuenta, al menos, la personalidad tpica del usuario al que se dirige la aplicacin. Shneiderman
en su libro "Diseo de Interfaces de Usuario" propone escalas psicolgicas del estilo acepta/evita riesgos,
reflexivo/impulsivo, ansiedad alta/baja, motivacin, compulsividad, orientacin del cerebro, etc. Aunque
existen pocos datos empricos para disear interfaces adaptados a personalidades, se acepta que ciertos
interfaces son mejor aceptados por usuarios con cierto tipo de personalidad.
En general, un programa no permite al usuario hacer algo nuevo, sino que el sistema automatiza y mejora
tareas rutinarias, que variarn segn la aplicacin, pero que pueden distinguirse algunas genricas como
las de comunicacin, dilogo con el sistema o tareas de control. Para desarrollar instancias especficas de
las tareas generales, se usa la tcnica de diseo llamada anlisis y modelizacin de tareas. Podra
resumirse diciendo que el diseo del interface se orienta a dotar al usuario de un entorno fcil y natural para
realizar su trabajo.
3. CRITERIOS DE DISEO
Los criterios de diseo de interfaces grficas de usuario orientan el desarrollo a interfaces eficientes y
amigables, cobrando especial importancia la experiencia del diseador. Se pueden distinguir tres categoras
de directrices de diseo: interaccin general, visualizacin de informacin y entrada de datos.
Interaccin General. El diseo de la interaccin general debe ser consistente, usar un formato homogneo
de seleccin de mens, entrada de rdenes, etc. Debe proporcionarse realimentacin visual y auditiva para
asegurar la comunicacin, preguntando, por ejemplo, la verificacin de cualquier accin destructiva no
trivial, con ventanas tipo Desea continuar. Los mensajes de error deben ser significativos.
Debe permitirse la vuelta a una situacin anterior en la ejecucin de la mayora de acciones. El sistema
debe protegerse de errores de usuario que pudiesen afectar al sistema y a la misma aplicacin. A esto
ayuda minimizar en lo posible la cantidad de informacin a memorizar entre acciones, usando verbos o
frases simples para nombrar acciones. Una orden larga es difcil reconocer y recordar.
El interface debe buscar la eficiencia en el dilogo, movimiento y pensamiento. El nmero de pulsaciones o
la distancia que el puntero recorre entre dos acciones debe minimizarse. Tambin se tendr en cuenta el
tiempo de respuesta, tanto en retardo como la variabilidad. Las acciones deben categorizarse por funcin y
organizar la pantalla, la esencia del men desplegable. El diseo debe hacer hincapi en la ubicacin
coherente de rdenes y acciones y por fin, ofrecer facilidades de ayuda al usuario sensibles al contexto y
que no le obliguen a abandonar el interface.
Visualizacin de la Informacin. Para generar un interface eficiente, la informacin a visualizar debe ser
completa, clara e inteligible. Algunas directrices de presentacin son mostrar slo informacin relevante en
el contexto actual. El usuario no debe buscar a travs de mens u otros la informacin relevante en una
operacin dada, ni saturarse con demasiados datos en pantalla. El formato de presentacin debe facilitar la
asimilacin rpida de informacin, intentando usar grficos o esquemas antes que tablas.
El significado de una pantalla debe ser obvio, evitando referencias a fuentes externas de informacin. Al
usuario debe permitrsele mantener el contexto visual, de forma que no se pierda la posicin relativa de la
imagen en tratamiento. Debe cuidarse la presentacin y formato del texto ya que es importante en la
facilidad de asimilacin de informacin del usuario y usar ventanas si es posible, para modularizarla.
El tamao de pantalla se elegir segn el tipo de aplicacin, considerando la geografa disponible. Si se
usan muchas ventanas, debe haber espacio para mostrar al menos una porcin de cada una. Puede
resultar conveniente usar representaciones analgicas para mostrar informacin ms fcil de asimilar con
este tipo de representacin. Por ejemplo, un nivel, en vez de mostrar un dgito, mostrar un depsito.
Entrada de datos. Una gran parte del tiempo de trabajo se emplea en introducir datos, en general con
teclado y ratn. Directrices de diseo recomiendan minimizar el nmero de entradas de teclado, es decir,
favorecer el uso del ratn, desplegables predictivos, etc., as como mantener la consistencia entre la
informacin visualizada y los datos de entrada. Las caractersticas visuales de la pantalla (tamao del texto,
color, situacin) deben ser mantenidas a lo largo de todo el campo de adquisicin.
Se debe permitir al usuario personalizar la entrada de datos. La interaccin debe ser flexible ajustarse al
modo de entrada preferido por el usuario y no ofrecer acciones incoherentes en el contexto actual para
evitar acciones errneas del usuario. Asimismo se proporcionar ayuda en la entrada de datos, eliminando
entradas innecesarias o redundantes como unidades de medida o decimales por defecto.
Tambin debe permitirse al usuario controlar el flujo interactivo, para que pueda salir de situaciones de error
sin abandonar el programa, evitar acciones innecesarias o cambiar el orden de las acciones requeridas si es
posible en el contexto de una aplicacin y por fin, permitir almacenar secuencias de rdenes de uso
frecuente (macros).

240
4. DESCRIPCIN DE INTERFACES
La descripcin de interfaces de usuario, descansa en la estandarizacin de interfaces grficas, lo que
beneficia a empresas de desarrollo y usuarios. La mayora de interfaces hacen uso de ventanas y
dispositivos de sealizacin y seleccin, cuyo desarrollo no siempre es sencillo, por lo que se genera la
necesidad y al fin, la adopcin de los estndares de interfaces de usuario.
Los estndares permiten a los diseadores reutilizar mdulos y objetos de otros interfaces ya creados, de
forma que el proceso de desarrollo de un nuevo interface es ms rpido y ofrece mayor calidad. Se pueden
usar herramientas para crear prototipos, ahorrando tiempo de desarrollo. Desde el punto de vista del
usuario la presentacin y el ritmo del interface es ms familiar, de forma que el aprendizaje requiere menos
tiempo y resulta ms intuitivo y productivo.
De los estndares de interface grfico destaca el sistema X Window, que define una semntica y sintaxis de
diseo y proporciona herramientas para creacin de pantallas, ventanas y grficos, as como un protocolo
para manejar recursos, interacciones con dispositivos y manejo de excepciones. Existen extensiones y
variaciones del estndar que se pueden utilizar sobre PC, estaciones de trabajo, Unix y otros SO.
Otro estndar de interface importante es el de los programas basados en Microsoft WS, que ofrecen un
aspecto similar independientemente del tipo de aplicacin utilizada. Adems se pueden configurar diversos
aspectos del interface como el color, tamao de ventana y otros.
A pesar de la evolucin de los estndares de interfaces de usuario, el diseo y desarrollo de interfaces es
un reto para los ingenieros de software. Algunos estudios muestran que entre el 50 y el 80 % del cdigo
generado para aplicaciones interactivas se dedica a gestin y mantenimiento del interface hombre mquina.
5. DOCUMENTACIN
La documentacin del proceso de diseo de interfaces de usuario no sigue un criterio estndar. Se suelen
utilizar distintas notaciones para documentar el diseo, segn el modelo seguido. Por tanto, lo relevante es
que se refleje en algn documento el criterio de diseo.
Por ejemplo, para el diseo de un interfaz de
navegacin con ventanas, se podra seguir un
proceso de desarrollo como el indicado.

Cada fase del proceso debe dejar su huella documental. As, el modelo de tareas y dominio dejar claras las
tareas abstractas del dominio de la aplicacin, la especificacin de interfaz de usuario abstracta, quedar
patente en algn documento en que se relacionen tareas abstractas con subtareas y acciones elementales
de interaccin bsica. Para la especificacin de interfaz de usuario concreta, se concretaran los elementos
del sistema y por fin, se obtendra un documento de interface de usuario final, que podr compartir mucho
contenido con el manual de usuario de la aplicacin.
6. HERRAMIENTAS PARA LA CONSTRUCCIN DE INTERFACES
El proceso de diseo del interface de usuario es interactivo, ya que se debe crear un modelo de diseo, e
implementarlo como prototipo, bien hardware, bien simulado, y los usuarios deben evaluarlo de forma que
se introducirn las modificaciones que respondan a sus sugerencias. Para facilitar este proceso interactivo
de diseo, se han desarrollado herramientas de diseo y prototipo denominadas sistemas de desarrollo de
interfaces de usuario (SDIU) y proporcionan mdulos u objetos que facilitan la creacin de ventanas,
mens, interaccin con dispositivos, mensajes de error, rdenes y otros elementos de un entorno grfico.
Al usar paquetes de software que pueden ser aprovechados por el diseador, por el programador y por el
interface de usuario, un SDIU proporciona mecanismos para el control de dispositivos de entrada, la
validacin de entrada de datos del usuario, manejo de errores y visualizacin de mensajes de error,
realimentacin, como los ecos de entrada, ayudas e indicaciones, manejo de ventanas y campos, etc.
Adems las herramientas de diseo permiten establecer conexiones entre el software de aplicacin y el
interface, aislando la aplicacin de las funciones de manejo de interface. Estas funciones pueden ser
implementadas utilizando un sistema grfico o un sistema basado en un lenguaje de interaccin.
Las herramientas de diseo y desarrollo de interfaces son un conjunto de componentes de software, como
mens, botones, estructuras de ventanas, iconos, controladores de dispositivos y otros. Estos conjuntos de
herramientas estn evolucionando a herramientas de desarrollo de prototipos que permiten la creacin
rpida en pantalla de interfaces sofisticadas ajustadas al estndar elegido para el software.

241
TEMA 55. DISEO FSICO DE DATOS Y FUNCIONES. CRITERIOS DE DISEO. DOCUMENTACIN.

1. INTRODUCCIN
2. DISEO FSICO DE DATOS Y FUNCIONES
2.1. Diseo de datos
2.2. Diseo de funciones
3. CRITERIOS DE DISEO
3.1. De datos
3.2. De funciones
4. DOCUMENTACIN

242
1. INTRODUCCIN
El desarrollo de un sistema de informacin concluye su diseo con el diseo fsico, es decir, la concrecin o
materializacin del sistema. El diseo fsico resulta en un cdigo ejecutable o una descripcin concreta de
datos interpretable directamente por una mquina.
De esta forma, mientras el diseo fsico de los datos establece las estructuras de almacenamiento y
representacin de datos eficientes, el diseo fsico de funciones obtiene el cdigo que cumple las
especificaciones dictadas en anteriores fases del desarrollo del sistema.
2. DISEO FSICO DE DATOS Y FUNCIONES
El diseo fsico representa la implementacin de los modelos conceptuales del sistema, es decir, la
codificacin en lenguajes de alto nivel y la creacin de BBDD. El diseo fsico de datos es un aspecto
fundamental en el rea de BBDD mientras que el de funciones encaja mejor en reas de programacin. En
el contexto de la POO la transicin del diseo a la implementacin es ms progresiva, gracias a las
herramientas de generacin automtica de cdigo en base a prototipos como los que permite definir UML.
2.1. Diseo de datos
El diseo fsico de datos parte del esquema lgico elegido y obtiene como resultado una especificacin para
el sistema de almacenamiento concreto elegido al definir la arquitectura del sistema. Entre los objetivos del
diseo fsico se encuentran la minimizacin del espacio de almacenamiento, la disminucin de los tiempos
de respuesta en el acceso a los datos, evitar o minimizar reorganizaciones, optimizar la utilizacin de
recursos y ofrecer la mxima seguridad.
Desde el punto de vista de un SGBD relacional, el diseo fsico de datos depende del sistema de
persistencia elegido. An as, las tcnicas de optimizacin son especficas. Para guiar el estudio se seguir
el modelo de tareas de Mtrica v3 para el diseo de datos.
Mtrica v3 distingue un proceso de Diseo del Sistema
de Informacin, que genere el documento DSI (Diseo
del Sistema de Informacin) que incluya el diseo
lgico y fsico. La actividad DSI6 (diseo fsico de
datos) con 4 tareas: captura de requisitos, objetivos,
caractersticas del SGDB y SO y hardware.
A partir del SGBD y las estimaciones dee volumen y uso de los datos, se determina cmo convertir las
entidades en tablas, cmo se implementarn las relaciones, clusters, los mtodos de acceso, etc.
2.2. Diseo de funciones
Partiendo del diseo lgico, se realiza el diseo fsico de funciones, teniendo en cuenta la descomposicin
modular del sistema, en la que se especifica cada funcin y sus datos de entrada y salida (interface). Las
funciones se han de codificar, en general con un lenguaje de alto nivel. Los criterios habituales sern la
programacin estructurada, guas de cdigo y estilo y documentacin del cdigo y se tendrn en cuenta
mtricas de calidad software.
La programacin estructurada se basa en la idea de que cualquier programa puede escribirse con tres tipos
de instrucciones, secuenciales, condicionales y bucles con condicin inicial. Encierra el concepto de
simplificacin del flujo del programa a partir de bloques. Para ello, adems de usar slo esas estructuras de
control los programas deben cumplir dos caractersticas, que un programa o funcin slo presente una
entrada y una salida, y que el flujo de entrada a salida no contenga caminos que no puedan darse y no se
den bucles infinitos.
Un diseo fsico con estos criterios facilita la legibilidad de los programas al eliminar saltos incondicionales,
aclara la estructura del programa, la identificacin de errores, la optimizacin de la ejecucin y la facilidad
de documentar debido a la agrupacin de cdigo. Estos criterios son aplicables al diseo de mtodos de las
clases de la POO.
3. CRITERIOS DE DISEO
3.1. De datos
Para optimizar el diseo de datos hay que tener en cuenta su acceso. El acceso a datos, en un 80%-90%
de las ocasiones las realiza entre el 10% y 20% de las aplicaciones. Para ello se consideran los mdulos o
clases del diseo fsico que sean crticos, concurrentes o realicen accesos complejos a datos
Para cada mdulo, se identifican las tablas o ficheros accedidos, el orden, prioridad y una estimacin del
nmero de accesos. Este anlisis identifica accesos costosos e ineficiencias, de forma que sugiera la
creacin de nuevos accesos, normalizacin o particiones de datos.

243
El conocimiento de los datos y su acceso, deriva en el uso de herramientas (especficas de cada SGBD)
para optimizar el rendimiento, como la seleccin de ndices secundarios y optimizacin de registros fsicos,
porcentaje de reserva en bloques y uso, numero de bloques de una tabla, bloqueo y compresin de datos,
budders o la asignacin de conjuntos de datos a particiones y a dispositivos fsicos.
De esta forma se establece dnde ubicar el SGBD y los datos en los diferentes nodos, teniendo en cuenta
la arquitectura propuesta del sistema. El resultado es la especificacin del modelo fsico de cada nodo, su
distribucin y la asignacin de datos a los nodos.
3.2. De funciones
Los criterios de la programacin estructurada mejoran el diseo de funciones, pero todava existen
diferencias. Para encontrarlas se establecen mtricas de calidad software con objeto de medirlo y mejorarlo.
Un ejemplo son las mtricas de complejidad ciclomtica y esencial de McCabe, basadas en representar el
flujo de control estructurado como un grafo, donde los nodos son instrucciones y se conectan cuando se
ejecutan secuencialmente. Las mtricas se obtienen definiendo la complejidad esencial y ciclomtica.
Complejidad esencial. Indica el grado de
estructuracin del cdigo. Cuenta el nmero de
veces que un camino del grafo de control realiza =

un salto y no regresa al punto de partida.
En un programa perfectamente estructurado, todo salto se realiza llamando a funciones o dentro del mismo
mdulo, por lo que el valor ptimo de la complejidad esencial es uno.
Complejidad ciclomtica. Indica el nmero de caminos independientes en el grafo de
control. Se calcula como indica la frmula, siendo e es el nmero de arcos y n el () = +
nmero de nodos
Esta mtrica es muy usada porque permite calcular la complejidad ciclomtica de forma automtica a partir
del cdigo, sin necesidad de construir el grafo.
4. DOCUMENTACIN
Uno de los objetivos de un buen diseo fsico es que el cdigo sea legible. Por ello, el cdigo debe ser
comentado y seguir buenas prcticas de programacin, como la eleccin del nombre de variables y
funciones, la forma de tabulacin, etc. El conjunto de normas de programacin se resume en lo que se
llama estilo de codificacin, que viene a facilitar esa legibilidad exigida.
Las normas se suelen resumir en lo que se conoce como guas de estilo de codificacin, que son aplicables
a lo largo de cada proyecto y no conviene modificar muy a menudo, para evitar problemas a los
desarrolladores.
Existen sistemas que permiten con determinada sintaxis en los comentarios, la generacin automtica de
documentacin a partir del cdigo fuente, lo que facilita el proceso de documentacin. Como ejemplo de
sistema popular est Javadoc para programacin en java.

244
TEMA 56. ANLISIS Y DISEO ORIENTADO A OBJETOS.

1. INTRODUCCIN
2. ANLISIS Y DISEO ORIENTADO A OBJETOS
2.1. Conceptos
2.1.1. Objetos
2.1.2. Clases
2.1.3. Herencia
2.1.4. Polimorfismo
2.2. Anlisis
2.3. Diseo

245
1. INTRODUCCIN
El paradigma de la programacin orientada a objetos (POO) surge como otra forma de organizar el
desarrollo software intentando reutilizar al mximo el cdigo e implementar de forma nativa los conceptos de
ocultacin y abstraccin de la programacin estructurada. Se populariz en los aos 90 y su uso est muy
extendido. Como ejemplos de lenguajes con los que se puede programar con objetos se pueden citar Visual
Basic, C++, Object Pascal y Java como destacado. La prctica totalidad de lenguajes lo permite.
La visin de la orientacin a objetos encierra una perspectiva completa de la ingeniera de software. La
aplicacin de la programacin estructurada a la orientada a objetos no ser ptima, porque no encaja
perfectamente. Hay que tener en cuenta otra forma de realizar el anlisis, el anlisis orientado a objetos
(AOO), cambia el diseo (DOO, diseo orientado a objetos) y el desarrollo es POO. En el contexto de las
BBDD se habla de los SGBD orientados a objetos (SGBDOO).
2. ANLISIS Y DISEO ORIENTADO A OBJETOS
La metodologa orientada a objetos se puede entender como una espiral evolutiva que comienza con la
definicin del dominio del problema y se identifican las clases bsicas, se planifican y analizan los riesgos
del proyecto y el desarrollo sigue una evolucin iterativa.
Las iteraciones identificarn las clases candidatas a ser definidas como entidades, se buscarn clases que
se adapten al problema, si existieran en repositorios, desarrollar las nuevas clases identificadas, aadirlas a
los repositorios y repetir el proceso mientras sea necesario.
2.1. Conceptos
El anlisis y diseo orientado a objetos integra los conceptos de dato y proceso, que en programacin
estructurada se tratan de forma distinta. Un sistema se concibe como un conjunto de objetos que se
comunican entre s. As, la POO representa un paradigma de programacin que como unidad bsica usa
objetos para el desarrollo de programas, consiguiendo un alto nivel de abstraccin.
Un objeto puede actuar como agente que presta un servicio, sin ofrecer detalles de su implementacin, con
lo que su relacin con el resto del software es a travs de un interface muy definido. La POO utiliza los
conceptos de encapsulamiento, abstraccin, polimorfismo y herencia.
2.1.1. Objetos
Definir un objeto sin ms es complicado sin una analoga previa. Por tanto, debe pensarse primero en el
caso de la programacin estructurada. En la programacin estructurada existan unos tipos de datos, por
ejemplo enteros y al codificar un programa, se poda hacer uso de esos tipos de datos, definiendo variables.
Por ejemplo, podra definirse una variable llamada contador de esta forma: contador: integer;
Como primera aproximacin podra decirse que un tipo de datos, en POO, se llamar clase, y una variable
de ese tipo de datos, de esa clase, ser un objeto. Siguiendo con la analoga, la variable contador sera un
objeto de la clase integer.
Por tanto, en el contexto de la POO, puede definirse un objeto como una instancia dinmica de una clase.
De esta forma, y teniendo como referencia el ejemplo propuesto ser ms fcil entenderlo. Una clase puede
instanciarse, creando un objeto, al que se asigna un espacio en memoria.
Un objeto se comporta como una entidad independiente con datos propios, capaz de relacionarse con otros
objetos a travs de un interfaz. El concepto de objeto es ms amplio que el de la variable del ejemplo. De
hecho, la variable contador, de tipo entero, termina ah su esencia. Es un entero. Un objeto es ms
complejo, puede incluir funciones, procedimientos (mtodos), variables, etc. Es una especie de contenedor
amplio, cuyas propiedades estarn marcadas por la clase a la que pertenezca.
As, un objeto es una entidad identificada en el sistema. Se describe por sus atributos y operaciones
(mtodos) que proporciona. El estado de un objeto lo marca el valor de sus atributos. El estado del objeto
tiene tres caractersticas: identidad, comportamiento y estado. Su identidad es el conjunto de propiedades
que posee por el hecho de definirse. El comportamiento de un objeto se refiere a las acciones que puede
llevar a cabo, que vendrn dadas por sus mtodos, lo que equivaldra a los procedimientos y funciones de la
programacin estructurada. Los mtodos definen el comportamiento de los objetos y permiten modificar su
estado, es decir la situacin en la que se encuentra (valores de sus variables, relaciones, etc.).
2.1.2. Clases
Una clase es la definicin abstracta de un objeto. Por tanto, define las propiedades, funciones y forma de
uso de los objetos de su clase. En POO, el diseo de programas se realiza pensando en las entidades
lgicas que lo componen, ms que en la funcin y subrutinas, como en los casos de programacin
estructurada y modular. Se piensa en objetos, que modelan entes reales.

246
De forma similar a la inicializacin de variables, un objeto, al instanciarse, debe drsele una identidad, lo
que se realiza con un mtodo llamado constructor. Una clase puede tener varios constructores en funcin
de cmo se instancie. En este caso, se denomina sobrecarga y consiste en que varios mtodos de una
clase puedan tener el mismo nombre pero cambien su funcin segn los argumentos.
Para realizar operaciones con un objeto es necesario llamar a sus mtodos y pasarle los parmetros
necesarios. No se aconseja tratar los atributos internos de un objeto directamente. En POO, las operaciones
sobre los datos de un objeto se realizan con mtodos. Pinsese por ejemplo, en una clase automvil, y un
objeto de esa clase llamado micoche. Si se desea conocer la potencia de micoche, se dispondr de un
mtodo llamado potencia() que devolver el valor correspondiente. Para cambiar de color micoche habr
otro mtodo, que aceptar un parmetro que indique el nuevo color y actualice el atributo color de micoche.
Por tanto, es de observar, cmo una clase encapsula, oculta, los datos y los procesos que manipulan esos
datos. Esto recuce el impacto de efectos colaterales asociados a cambios y errores. As, el encapsulamiento
se refiere a la definicin de objetos como entidades aisladas, lo que les otorga independencia del programa
que los use, pudiendo adems exportarse a otros programas.
Los objetos pueden tener atributos o mtodos pblicos y privados.
Las clases atributos estticos que tendrn el mismo valor para todos
los objetos durante la ejecucin. Los atributos estticos sern
accedidos invocando directamente a la clase, no a travs de objetos.
En POO se utilizan dos conceptos: ocultacin y encapsulamiento. La
ocultacin es la propiedad de los objetos por la que la
implementacin de su cdigo no puede manipularse directamente
(es privada), sino que debe hacerse uso de los mtodos que define
el objeto a modo de interfaz.
La ocultacin se logra mediante palabras reservadas que asigan a los atributos y mtodos los permisos
correspondientes. La palabra reservada public permite el acceso a todos los objetos y protected permite
el acceso slo a clases hijas. Antes de destruir o dejar de usar un objeto, debe liberarse la memoria que
utiliza. Para ello los objetos suelen disponer de un mtodo destructor.
2.1.3. Herencia
Una clase puede crearse a partir de otra clase, lo que implica que la nueva clase tenga las caractersticas
de la clase padre o superclase y adems pueda aadir nuevas funciones o atributos. Este es el concepto de
herencia. Su caracterstica principal es el ahorro de cdigo al permitir crear clases complejas a partir de
otras ya definidas.
Para definir una clase hija, hay que indicar en su cdigo que extiende una superclase. Una clase abstracta
slo sirve para ser heredada, no para tener instancias propias. Si a un objeto se le llama con un mtodo que
no tiene, se consulta ese mtodo en la clase padre. Los mtodos pueden redefinirse en las clases hijas o
aadirles funciones y llamar al de la superclase.
Los lenguajes de programacin incorporan clases primitivas que pueden ser extendidas o usadas por los
programadores gracias a la herencia. La herencia trata las clases de forma jerrquica, ya que todas
descienden de una superclase comn. Estas clases se definen en el API. Leguajes como C ++ permiten
herencia mltiple, esto es, que una clase sea hija de varias superclases. Java slo permite herencia simple.
Si no se desea que un mtodo o atributo se pueda heredar, a la hora de declarar una variable o un mtodo
se usa la palabra reservada private, que impide el acceso a clases hijas y objetos.
2.1.4. Polimorfismo
Un objeto que puede tener atributos de varias clases se dice polimrfico. Esta propiedad puede darse
gracias a la herencia, al instanciar el objeto como de la superclase.
Para ejemplificarlo, sea una superclase polgono, definida con un mtodo dibuja(), que presenta en pantalla
el polgono que se le pasa. Si se definen clases hijas de polgono, como crculo o cuadrado, con sus
respectivos mtodos dibuja() al ser llamados se presentar en pantalla el polgono correcto, ya sea un
crculo, un cuadrado u otro, sin ambigedad, ya que se entender que el mtodo a usar es el definido en el
polgono correspondiente. El mtodo dibuja podr declararse e implementarse o no en la superclase. Si no
se implementa, el mtodo ser virtual y se habla entonces de polimorfismo puro.
El polimorfismo puede ser de enlace dinmico o esttico. El dinmico define el tipo de clase que tendr el
objeto en tiempo de ejecucin y el esttico en tiempo de compilacin. Cuando se definen mtodos con el
mismo nombre, distinguidos por el tipo de argumentos que reciben, se habla de sobrecarga. En el ejemplo
anterior, habra sobrecarga si en la clase polgono se definieran dos constructores, uno que recibiera el
dimetro y la posicin para construir un crculo y otro la posicin de dos vrtices y el lado para el cuadrado.

247
El mtodo dibujar tendra que implementar las dos posibilidades y ejecutar la que correspondiera segn el
caso. En este caso, si se aadiera un nuevo tipo de polgono no habra que recompilar la superclase como
s ocurrira en caso de sobrecarga.
En C++, el polimorfismo se define en la superclase mediante mtodos virtuales. En otro caso se considera
que hay sobrecarga de la clase hija sobre la clase padre. En caso de usar mtodos virtuales se produce un
enlace dinmico, si no, ser esttico. Java, adems, incorpora el concepto de interfaz, una clase abstracta
sin mtodos, que acta como plantilla para que el programador escriba el cdigo necesario en cada mtodo
definido en la interfaz. Esto permite implementar herencia mltiple y aplicar polimorfismo.
2.1. Anlisis
El anlisis orientado a objetos consiste en identificar las caractersticas y posibles soluciones al problema
que plantea el sistema a desarrollar con el paradigma de la orientacin a objetos. Groseramente, puede
identificarse con la conceptualizacin del sistema a partir de la captura de requisitos, es decir intenta
describir el comportamiento del sistema como una caja negra. Esa conceptualizacin puede entenderse
desde tres perspectivas, la estructural, la dinmica y la funcional.
La perspectiva estructural consiste en definir a alto nivel la arquitectura del sistema. Consiste entonces en
identificar las clases y los objetos, sus asociaciones y agregaciones, atributos y criterios de herencia, entre
otras tareas. Adems, deben distinguirse las rutas de acceso de las consultas habituales con el objetivo de
iterar el diseo y refinar el modelo.
La perspectiva dinmica consiste en identificar la interaccin entre usuario y sistema, eventos entre objetos
y trazar las situaciones de cada escenario. Se apoya en la realizacin de diagramas de estados y la
verificacin de la consistencia de los eventos.
La perspectiva funcional, quizs la ms patente, trata de identificar las entradas y salidas, definir la funcin
del sistema. Se apoya en la confeccin de DFD que representen las dependencias entre operaciones y se
especifiquen criterios de optimizacin.
Las metodologas usadas para el anlisis orientado a objetos, pueden agruparse en dos grupos destacados,
las orientadas a datos y las orientadas a funcin. Las primeras se basan en la parte estructural del objeto.
Suponen una extensin del modelado conceptual ER. Las metodologas orientadas a funcin se basan en
las acciones que desarrollan los objetos. Consisten bsicamente en identificar las clases, sus servicios y
atributos, establecer sus interaccione y analizar su generalizacin y particularizacin.
2.2. Diseo
El diseo orientado a objetos tiene el propsito de especificar la arquitectura del sistema a alto nivel. Es un
proceso por etapas, que organiza el sistema en subsitemas, identificar qu objetos actuarn, cul ser el
enfoque del almacenamiento de datos y su control, las condiciones del entorno y las prioridades. Consta de
distintos aspectos como los siguientes.
Diseo de objetos. Es la fase en que se concreta la estrategia del diseo de sistema. Se describen los
detalles como las operaciones para las clases a partir de los otros modelos, el diseo de algoritmos para
implementar esas operaciones, optimizar el acceso a datos y su gestin o el ajuste de la estructura de
clases para incrementar la herencia.
Diseo de relaciones. Tiene por objeto el empaquetado de clases y relaciones en mdulos y determinar la
representacin exacta de los objetos.
Diseo de procedimientos de usuario. Define las tareas a realizar por parte de los mismos. Reflejar cmo
se obtienen los datos y constar de dos partes, una descripcin general en que se anote la finalidad y
descripcion del procedimiento y la concrecin de cmo llevar a cabo cada tarea. Se suelen emplear DFD.
Diseo de interfaces de usuario. Define la interaccin del usuario con el sistema como el diseo de
pantallas. Las interfaces presentan varios niveles. Los superiores representan mens y los inferiores
pantallas de dilogo o funciones concretas. El propsito del interfaz es obtener datos de usuario (entrada) y
ponerla a disposicin de otros ususarios (salida).
El diseo de la E/S definir el formato de las pantallas usadas, su secuencia, mens, dilogos concretos,
etc. Los criterios de diseo de interfaces de entrada tendrn en cuenta caractersticas como la sencillez,
inteligibilidad, amigabilidad, proteccin frente a errores, etc. Y aspectos similares se tendrn en cuenta para
las presentaciones o interfaces de salida.

248
TEMA 57. CALIDAD DEL SOFTWARE. FACTORES Y MTRICAS. ESTRATEGIAS DE PRUEBA.

1. INTRODUCCIN
2. CALIDAD DEL SOFTWARE
3. FACTORES Y MTRICAS
3.1. Factores de calidad
3.2. Mtricas de calidad
4. ESTRATEGIAS DE PRUEBA

249
1. INTRODUCCIN
La calidad en un proceso productivo, como el desarrollo software, se refiere a la bsqueda constante de la
mejora del trabajo. La concienciacin en polticas de calidad, la reconocen como una herramienta de gestin
fundamental en toda organizacin.
La definicin de calidad ms aceptada es la que la identifica como el conjunto de procesos continuos
orientados a satisfacer las necesidades y expectativas que se esperan de una organizacin.
Las expectativas no slo son las del cliente; incluyen a empleados, proveedores, la sociedad y, en general,
cualquier colectivo relacionado con la organizacin. En el caso del software, la calidad diferencia entre la
calidad del producto y la de su proceso de desarrollo, ya que sin un desarrollo de calidad es difcil obtener
un producto de calidad.
Hablar de calidad es hablar de aspectos tcitos, ya que es una filosofa de trabajo que debe estar impresa
en cada componente de la organizacin. Realizar el trabajo con calidad requiere la documentacin de
procesos, establecimiento de procedimientos y una metodologa de trabajo bien definida y estructurada.
Para ello, en el desarrollo software, la documentacin del mismo es un indicador de calidad al facilitar
sobremanera el mantenimiento y la proteccin frente a cambios en el equipo de desarrollo.
2. CALIDAD DEL SOFTWARE
La calidad del software es un tanto diferente a lo que puede entenderse por calidad de otro tipo de producto,
ya que el software nunca est libre de errores (por definicin), es un intangible que no sigue un proceso de
fabricacin tpico, sino un proceso, a veces, artstico. El coste del software se concentra bsicamente en el
anlisis, diseo y mantenimiento, no en la produccin (groseramente, copiar CDs), por tanto, el proceso de
produccin en si mismo, puede estar libre de errores, no as las fases de diseo.
Del mismo modo, puede decirse que el software no se deteriora con el tiempo, los problemas derivados del
mantenimiento se heredan del diseo y codificacin, afectando a las copias del producto. El software con
errores no se rechaza, algunos se asumen y otros se corrigen. Estas razones muestran como la calidad del
producto software depende de las fases de su ciclo de vida.
La calidad del software suele estudiarse a nivel de empresa y de proyecto. A nivel de empresa, las
organizaciones se estructuran orientadas a conseguir la calidad de su personal y departamentos as como
fomentar la cultura de la calidad en la misma. A nivel de proyecto, la calidad consiste en poner en prctica
los procedimientos establecidos por el sistema de calidad durante todo el proceso de desarrollo.
La calidad del software a nivel de empresa diferencia los procesos de gestin de la calidad y aseguramiento
de la misma en el software. La gestin de la calidad son los aspectos relacionados con la implantacin de la
poltica de calidad mientras que el aseguramiento de la calidad se refiere al conjunto de tareas planificadas
y sistemticas que generan la confianza de satisfaccin de requisitos exigidos al resultado final.
Segn Pressman, la calidad del software es la concordancia de los requisitos funcionales con los
estndares de desarrollo y caractersticas implcitas esperadas del software desarrollado profesionalmente.
Los estndares de calidad de software son normas emitidas por organismos competentes que proveen un
marco con el que comparar si un proceso de desarrollo es o no de calidad.
Los estndares intentan coducir el desarrollo de software de calidad y consisten en documentacin para
definir y mejorar las actividades de cada fase del ciclo de vida de un producto software. La experiencia
demuestra que incrementan la productividad mejorando y garantizando la calidad del producto.
La creacin e implantacin de estndares pretenden transferir mtodos y procedimientos de desarrollo a la
industria del software con documentos generales y recomendaciones de las actividades a realizar durante el
proceso de produccin de software. La dispersin de normativa ha hecho que muchas empresas generen
normas propias, por lo que la tendencia es el establecimiento de normas que homogenicen la planificacin
de la calidad, gestin de la configuracin del software, la documentacin de pruebas y el resto de aspectos.
El proceso de creacin e implantacin de normas sigue varias etapas. Por ejemplo, en el IEEE se comienza
con una propuesta de cualquiera de sus miembros, que pasa al Comit de Normas de IS, que cursa una
PAP (Peticin de Autorizacin de Proyecto) que define el objetivo, mbito, descripcin y contactos del
proyecto y se transmite a todos los grupos que hacen normas y al ANSI que se encarga de la coordinacin.
El desarrollo de la norma lo realiza un grupo de trabajo y una vez terminada se concreta en un documento
(borrador o draft) que pasa varias revisiones y una votacin de expertos para ser aceptardo. El tiempo de
elaboracin de una norma suele rondar los tres aos.
Una vez aprobada la norma, los usuarios proporcionan comentarios de su experiencia y pueden proponerse
modificaciones remitedas al IEEE que las evala entrando en una nueva fase del ciclo de elaboracin de
normas, decidiendo si se modifica o no o si se elimina por haber sido superada por otra norma. El ciclo
completo dura unos cinco aos.

250
Las normas de calidad existentes ms conocidas son las ISO, agrupadas en la
serie ISO-9000, que representan un estndar de calidad para toda la industria. La
serie especfica relativa al software, es la ISO-9003. Son recomendaciones a
aplicar en el marco de trabajo, ciclo de vida del proyecto y actividades de apoyo.
La acreditacin de una organizacin, debe demostrar la aplicacin de las normas
ISO mediante la evaluacin de un organismo competente.
Las normas ISO son recomendaciones, por tanto adolecen de ser algo estticas, de valor relativo, lentas y
caras. No se orientan completamente al software, pero si dan una cierta seguridad en el mercado. La
vertiente negativa sera la acreditacin exclusiva por motivos comerciales, lo que no mejora la calidad.
Por fin, los marcos de trabajo son documentos que recogen objetivos y procesos comunes a cumplir por una
organizacin, que a diferencia de los estndares, dicen qu hacer a nivel general, no cmo. Ejemplos son
CMMI, desarrollado por el Software Engineering Institute a instancia del DoD para evaluar proveedores y as
poder comprobar la utilidad de los procesos en ciertos proyectos. CMM se comenz a usar para medir la
capacidad de otras reas distintas al desarrollo de software, evolucion a la versin CMMI, ms general,
que clasifica el grado de madurez de las empresas en cinco niveles. Otro ejemplo es SPCE, similar a
CMMI y propuesto por ISO que clasifica las organizaciones en seis niveles de madurez.
3. FACTORES Y MTRICAS
3.1. Factores de calidad
Los factores de calidad son aquellos que permiten establecer criterios de control y medicin de la calidad.
Su definicin, como la idea de calidad posee una parte subjetiva, originando diversas clasificaciones como
la de McCall, que distingue tres grupos, operativos, de mantenimiento y evolutivos.
Factores operativos. Son aquellos que afectan al uso del software. Distingue factores de correccin (se
cumplen las especificaciones), fiabilidad (software libre de errores), eficiencia, seguridad (acceso al software
y datos) y facilidad de uso.
Factores de mantenimiento. Aplicados a la capacidad de modificacin del software. Destacan tres factores,
la flexibilidad (esfuerzo necesario para modificar un programa), la facilidad de prueba y la facilidad de
mantenimiento (esfuerzo de localizacin y reparacin de errores).
Factores evolutivos Pretenden indicar la posibilidad de ejecutar el software en distintas plataformas
hardware o software, en relacin a su eficiencia. Algunos de estos factores pueden ser la portabilidad o
facilidad de migracin del sw entre entornos, la capacidad de reutilizacin, o medida en que el sw puede
utilizarse en otras aplicaciones y la interoperabilibdad o medida de la operacin conjunta con otros sistemas.
3.2. Mtricas de calidad
Las mtricas de calidad software son tcnicas aplicadas en la valoracin cuantitativa de un factor de calidad
software. Por tanto, las mtricas pueden ser variadas, en principio por estar referidas a un concepto como el
de calidad y en segundo trmino por los distintos factores de evaluacin del software.
Sin embargo, toda mtrica debe poseer al menos la propiedad de ser emprica, objetiva, simple, fcil de
calcular, independiente del lenguaje de programacin y tal que proporcione informacin til. Algunos
ejemplos de mtricas representativas en cada fase del ciclo de vida software son las siguientes.
Anlisis. El alto nivel conceptual y la dificultad de cuantificacin limitan la existencia de mtricas. Suelen
medir el tamao del software a desarrollar.
Ejemplos son la mtrica punto-funcin, usada para cuantificar la funcionalidad de un sistema a partir de su
descripcin y basada en la ponderacin de las entradas y salidas de usuario, peticiones, archivos e
interfaces externas. La mtrica bang, propuesta por DeMarco, calcula el tamao del software a desarrollar a
partir del modelo de anlisis y la mtrica de calidad de especificacin, propuesta por Pressman, mide la
calidad del anlisis y de la captura de requisitos. Aunque sean factores cualitativos, se intentan cuantificar,
midiendo por ejemplo el nmero de requisitos donde los revisores han coincidido.
Diseo. En esta fase de desarrollo, las mtricas son morfolgicas, es decir, suelen trabajar con parmetros
de la estructura de los programas o con medidas del grado de cohesin, acoplamiento y complejidad de los
algoritmos. Son de caja negra en el sentido que no evalan el funcionamiento interno de los mdulos.
Algunos ejemplos son la mtrica de complejidad de Card y Glass, basada en la complejidad estructural
(nmero de mdulos que controla uno dado) y de dados (variables de E/S en relacin a la complejidad
estructural de un mdulo), calculados para cada mdulo a partir del diagrama de estructuras. La
complejidad total es la suma de la estructural y la de datos de cada mdulo.
La mtrica de cohesin y acoplamiento pretende cuantificar estos aspectos en mdulos de programacin

251
estructurada a partir de varios factores como los parmetros de E/S o las variables globales utilizadas. Las
mtricas usadas en POO, se basan en clases y miden aspectos como la profundidad del rbol de herencia,
es decir la jerarqua de herencias (cuanto mayor profundidad, menor calidad), el nmero de clases
derivadas (ms calidad cuanto menor) y el acoplamiento entre clases (cuanto mayor, menor calidad).
Codificacin. En la fase de codificacin las mtricas intentan medir la complejidad del software programado.
Ejemplos son la medida de la complejidad ciclomtica y esencial, desarrolladas por McCabe para medir la
complejidad lgica. Se basan en la representacin del flujo de control como un grafo. La complejidad
ciclomtica mide el nmero de ciclos que existen en el grafo de control mientras la esencial, mide el mximo
anidamiento de las estructuras de control. Las mtricas usadas en POO se utilizan para medir parmetros
como el nmero de mtodos de la clase, o los que pueden invocarse desde otras clases o la cohesin entre
los mtodos de la clase.
Por fin, la documentacin es otro parmetro de calidad difcil de medir. Lo que si es evidente y as
demuestra la experiencia es que es crucial para asegurar la calidad y el correcto dessarrollo y
mantenimiento del software. Todas las etapas del ciclo de vida deben estar correctamente documentadas.
4. ESTRATEGIAS DE PRUEBA
Las pruebas software aplican una estrategia centrfuga, desde las partes internas del cdigo al sistema
completo. Se distinguen pruebas unitarias, de integracin, de validacin y de sistema.
Las pruebas unitarias se refieren a partes del cdigo como mdulos. Por tanto se puede trazar con la etapa
de codificacin del modelo de vida del software. Se prueban caminos de control importantes, interfaces,
estructuras y coherencia de datos, condiciones lmite y aspectos del estilo.
Las pruebas de integracin se refieren al correcto funcionamiento del cdigo en conjunto, en su totalidad, de
la arquitectura software. Se traza con la fase de diseo del ciclo de vida. Se buscan errores de interaccin,
interfaces. La tctica es la integracin incremental, de slo algunos mdulos e ir avanzando a la totalidad.
Las pruebas de validacin se refieren al cumplimiento de los requisitos de usuario. Por tanto se trazan con
la fase de anlisis del ciclo de vida. Siguen una tctica general de prueba de caja negra, que oculte la
implementacin pero muestre la conformidad con los requisitos.
Se distinguen pruebas alfa y beta. Las primeras se realizan en un entorno de preproduccin (maqueta) y las
segundas en un entorno de produccin o que no sea controlado por el equipo de desarrollo. En esta fase
pueden realizarse otro tipo de pruebas como puedan ser pruebas de calidad o de vulnerabilidades.
Las pruebas de sistema se refieren a requisitos funcionales y estn ligadas muchas veces a entornos de
operacin. Se podra trazar con la peticin inicial del sistema o el anlisis de la viabilidad del sistema. El
objetivo es la prueba real del sistema. Algunas pruebas pueden ser las de recuperacin, forzando el fallo del
software, las de seguridad, resistencia, rendimiento, etc.

252
TEMA 58. AYUDAS AUTOMATIZADAS PARA EL DESARROLLO DE SOFTWARE (HERRAMIENTAS
CASE). TIPOS. ESTRUCTURA. PRESTACIONES.

1. INTRODUCCIN
2. AYUDAS AUTOMATIZADAS PARA EL DESARROLLO DE SOFTWARE (HERRAMIENTAS CASE)
3. TIPOS
3.1. Integracin
3.2. Metodologa de programacin
3.3. Etapas del ciclo de vida
3.3.1. Gestin de proyecto y requisitos
3.3.2. Anlisis y diseo
3.3.3. Programacin
3.3.4. Integracin y pruebas
3.3.5. Soporte y mantenimiento
4. ESTRUCTURA
5. PRESTACIONES

253
1. INTRODUCCIN
CASE es el acrnimo de Computer Aided Software Engineering, ingeniera del software asistida por
ordenador. En contraste con el pasado, en que el software se desarrollaba manualmente, hoy da la prctica
totalidad del desarrollo se apoya en herramientas de este estilo.
2. AYUDAS AUTOMATIZADAS PARA EL DESARROLLO DE SOFTWARE (HERRAMIENTAS CASE)
Las ayudas automatizadas para el desarrollo de software, englobadas en lo que se conoce como
herramientas CASE, son el resultado de la evolucin de las tcnicas de programacin. Si se observa este
proceso evolutivo, se puede comprobar que sigue una lgica muy marcada que ha desembocado en un
incremento de la productividad y mantenimiento del software.
En los inicios de la industria del desarrollo software, ste se realizaba basado en informacin textual, pero
debido a su laboriosidad, pronto surgieron tcnicas de programacin estructurada, que permitan definir una
metodologa de desarrollo software ms organizada y precisa, basndose en tcnicas grficas.
Los problemas surgan en desarrollos grandes, en que podan darse incoherencias de difcil localizacin y
generarse documentacin abultada difcil de manejar manualmente. La necesidad de desarrollos software
de calidad, que incrementasen su mantenibilidad y el rendimiento del proceso, as como el incremento de la
capacidad del hardware, deriv en la aparicin de herramientas CASE, que automatizan los paradigmas de
la ingeniera del software.
Debe tenerse en cuenta que los errores o problemas del desarollo de software no detectados en etapas
tempranas del ciclo de vida, pueden disparar el coste econmico y resultar en proyectos no rentables. Del
mismo modo, anlisis y diseos robustos favorecen el mantenimiento y evolucin de los programas con la
consiguiente ventaja comercial.
En las primeras etapas de su evolucin, las herramientas CASE se usaban mayoritariamente en la gestin
de documentacin o la generacin de diagramas de flujo y paulatinamente se empezaron a integrar con
herramientas que realizan comprobaciones automticas como consistencia de tipos de datos y generalizan
los repositorios centralizados.
Con la popularizacin de los interfaces grficos y la reutilizacin de cdigo como filosofa incluida en
metodologas como la POO, el desarrollo se basa en la utilizacin de IDEs o entornos integrados de
desarrollo que conjugan diversas utilidades y complementos que vienen a solucionar distintos aspectos del
desarrollo como pueden ser la integracin con repositorios, gestin de proyectos, documentacin o diseo.
3. TIPOS
Se distinguen tres tipos de herramientas CASE segn criterios de integracin, metodologa o desarrollo.
3.1. Integracin
Segn el tipo de integracin que presente la herramienta CASE, pueden dividirse en juegos de herramientas
y bancos de trabajo.
Los juegos de herramientas (toolkits) son un grupo de utilidades independientes en que cada una realiza
una funcin distinta. Como ejemplo, podra pensarse en un toolkit que integrase un compilador especfico
como gcc, un IDE grfico como Eclipse y un sistema de gestin de versiones.
Un banco de trabajo es un conjunto de herramientas integradas que comparten un mismo interfaz y una
BBDD de soporte comn. Los bancos de trabajo estn orientados al desarrollo guiado, de forma que el
resultado de una fase del mismo sirve de entrada para la siguiente. Ejemplo de banco de trabajo es Power
Designer de Sybase
3.2. Metodologa
Distinguiendo las dos grandes metodologas de programacin, la estructurada y la POO, pueden
distinguirse herramientas CASE que dan soporte a una u otra. Siguiendo la propia evolucin de la tcnica
de desarrollo, las primeras herramientas CASE se pensaron para apoyar la programacin estructurada. Son
herramientas que permiten gestionar proyectos, generar DFDs o modelos entidad relacin, por ejemplo.
El soporte de las herramientas CASE a la POO se empieza a obtener en una etapa de madurez mayor de
las mismas, permitindose descripciones en lenguaje UML, casos de uso y similares. Aunque prcticamente
el desarrollo de software actual est copado por la POO, la validez del planteamiento estructurado hace que
sea fcil encontrar herramientas que soporten ambas metodologas.
3.3. Etapas del ciclo de vida
Aunque muchas herramientas CASE integran funcionalidades que se engloban en distintas fases del ciclo
de vida del software, tambin pueden clasificarse atendiendo a la etapa del desarrollo en que se aplican.

254
3.3.1. Gestin de proyecto y requisitos
Son las herramientas orientadas al apoyo de las tareas de anlisis y gestin del proyecto. Englobaran
herramientas para la confeccin de diagramas de Gantt, PERT, gestin de recursos, etc. Este tipo de
herramientas es comn que ofrezcan facilidades para realizar el seguimiento del desarrollo, gestin de la
configuracin y tareas similares. Ejemplos de este tipo de herramientas lo representan MS Project y
OpenProj. Las herramientas de gestin de requisitos facilitan la captura de requisitos, asegurando su
coherencia y realizar el seguimiento de los mismos.
3.3.2. Anlisis y diseo
Las herramientas CASE de apoyo al anlisis y diseo de software estn marcadas por la metodologa de
desarrollo, de forma que las que de aplicacin en programacin estructurada permiten realizar tareas como
la elaboracin de DFDs, descomposicin modular o modelos entidad-relacin. Existe asimismo una
evolucin de las mismas hacia tcnicas ms propias de la POO. Como ejemplo de estas herramientas
podra citarse PowerDesigner, de Sybase
En el mbito de la POO, existe una mayor integracin entre diseo y programacin, debido a su filosofa de
desarrollo. Las herramientas CASE suelen permitir la generacin de cdigo a partir de un modelo de clases
en varios lenguajes de programacin o incluso la actualizacin del modelo en funcin de la modificacin de
cdigo. Un ejemplo de este tipo de estas herramientas sera Smart Development Environment
3.3.3. Programacin
Herramientas CASE englobadas en la fase de programacin suelen integrarse en entornos de desarrollo o
IDE apoyando entre otras tareas la edicin, compilacin y depuracin del cdigo. Se incluyen aqu
herramientas como los editores de cdigo, generadores de interface de usuario o de consultas a BBDD,
entre otros. Ejemplos de herramientas en este apartado son MS Visual Studio o Eclipse.
3.3.4. Integracin y pruebas
En la fase de integracin y prueba del cdigo, las herramientas CASE destacan en el apoyo a la adquisicin
del software, realizando mediciones, simulacin y pruebas del mismo, entre otras funciones. Las ms
extendidas son las de POO, anlisis estadstico y las de codificacin de cuarta generacin.
3.3.5. Soporte y mantenimiento
En este apartado se incluiran las herramientas utilizadas en la fase de soporte del cdigo, realizando tareas
como la documentacin, de software de sistemas, control de calidad, o las orientadas a BBDD y las que
facilitan las labores de mantenimiento, como la reestructuracin y anlisis de cdigo o las de reingeniera e
ingeniera inversa.
Por fin, con el mismo criterio de clasificacin del ciclo de vida del software, pueden encontrarse los trminos
upper, medium y lower CASE, referidos a herramientas CASE que apoyan en las fases iniciales de captura
de requisitos y gestin de proyectos, anlisis y diseo y pruebas, implementacin y mantenimiento del
software, respectivamente.
4. ESTRUCTURA
Aunque puede variar segn las soluciones comerciales, la estructura general de las herramientas CASE
puede distinguirse constituida por seis partes o mdulos, gestin, modelado, prototipado, codificacin,
repositorio y documentacin, que no todas las herramientas del mercado incluirn necesariamente.
La parte de gestin del proyecto es el mdulo de la herramienta CASE que facilita la gestin del proyecto de
desarrollo, desde su programacin temporal hasta la asignacin de recursos y tareas o la descripcin de
informacin administrativa, procesos y departamentos implicados, como ejemplo.
El modelado es la parte del proyecto en que se definen los diagramas y modelos usados en el desarrollo
software y para los que existen mdulos CASE que facilitan su especificacin. Modelos tpicos son los
diagrama de flujo de datos, modelos entidad relacin o las tcnicas matriciales.
Algunas caractersticas propias de este mdulo CASE son el nmero mximo de niveles de los modelos
para dar soporte a diseos complejos, libertad de formatos de dibujo, actualizacin del repositorio al
cambiar un diagrama, comparacin entre grficos de distintas versiones o inclusin de pseudocdigo.
El mdulo de prototipado permite construir una idea global del aspecto que tendr el desarrollo final, de
forma que se facilite la codificacin y la redefinicin del anlisis y diseo, si se detectasen errores. La
herramienta ser ms til, cuanto antes permita disponer del prototipo y aprovecharlo para orientar y
corregir el desarrollo. El prototipado es muy importante, ya que representa una realimentacin inmediata,
que ayuda a identificar los requisitos del sistema y en general, las herramientas CASE incluyen mdulos de
prototipado potentes y eficaces.

255
Codificacin. Los mdulos de apoyo a la generacin del cdigo presentan caractersticas como la capacidad
de generacin de cdigo portable, el tipo de lenguaje a usar, en particular si es estndar o propietario, si
slo apoya en la definicin de la estructura o en la inclusin de ms cdigo, posibilidad de generacin de
ventanas o la de modificacin del cdigo generado, como ejemplos ms representativos.
Repositorio. Es el mdulo CASE que almacena la informacin que se genera a lo largo del desarrollo,
incluyendo la documentacin del anlisis y diseo, estructura del programa, etc. Tambin puede ser
denominado Diccionario de Recursos de Informacin. La mayora de herramientas CASE bien proveen un
mdulo repositorio propio, bien utilizan uno de otro fabricante. El repositorio ayuda en la comprobacin de la
integridad y consistencia del cdigo y del desarrollo.
Las caractersticas destacables de un mdulo repositorio son el tipo de informacin que contiene, el tipo de
controles, si incorpora facilidades de gestin de cambios o mantenimiento de versiones, la forma de
actualizacin del repositorio o la posibilidad de reutilizacin de mdulos y por tanto la exportacin e
importacin de cdigo.
Documentacin. El mdulo de documentacin se apoya a su vez en el de repositorio y dada la importancia
de la documentacin, en especial para el mantenimiento software, es casi obligatorio que la herramienta
CASE disponga de l. Como caractersticas a tener en cuenta han de incluirse la generacin automtica de
documentacin, la combinacin de informacin textual y grfica, generacin de referencias cruzadas o el
interfaz con otras herramientas como procesadores de textos, editores grficos y dems.
5. PRESTACIONES
De las prestaciones ofrecidas por las herramientas CASE, destaca la productividad que son capaces de
generar al facilitar de manera extraordinaria la labor de analistas, diseadores y programadores. Estos
entornos de trabajo permiten adems una mayor eficacia en la comunicacin con el equipo de desarrollo y
en la integracin del trabajo en todo el ciclo de desarrollo.
La medida de la productividad es complicada debido a que suele realizarse a posteriori, depende de la
experiencia y hay que realizar suposiciones de tipo especulativo, como evaluar si la productividad hubiera
sido mayor si el sistema de informacin hubiera resuelto el problema de otra forma a la realmente utilizada.
Si puede medirse la productividad durante el ciclo de vida del desarrollo, en funcin del tiempo empleado
para cada tarea del proyecto y el resultado obtenido. Por tanto, desde este punto de vista, las herramientas
CASE permiten realizar una medida de la calidad y cantidad de las actividades de desarrollo.
La productividad de grupo tambin se ve incrementada al permitirse la cooperacin ante problemas y la
coordinacin de todas las etapas en que se organice el proyecto y en particular la programacin. El tiempo
empleado en distribuir la informacin a lo largo de la organizacin se reduce drsticamente y se puede
disponer de ella en tiempo real. Las herramientas CASE facilitan la interaccin entre los miembros del grupo
al permitir procesos de comunicacin dinmicos que tienden a incrementar el rendimiento.
Las particularidades del soporte en tiempo real hace que los usuarios puedan controlar el flujos de
informacin y otros aspectos del sistema, detectando errores, solicitar correcciones y cambios que de otra
forma seran procesos complejos y lentos. El soporte CASE es muy importante en la mayora de tareas del
ciclo de vida al catalizar la interaccin entre sus usuarios.
La posibilidad de integracin de actividades y la continuidad entre fases del desarrollo capacitan al analista
para concebirlo con una perspectiva muy til para plantear correctamente el problema, entender el impacto
de los posibles cambios y corregir los inconvenientes que vayan surgiendo.
La automatizacin e integracin del desarrollo facilita la realimentacin entre las fases del ciclo de vida y es
especialmente apropiado cuando debe retrocederse y modificar alguna especificacin, para lo que resulta
esencial la implicacin de todo el equipo. Por fin, las herramientas de trabajo CASE mejoran la comprensin
global del proyecto al presentar claramente la relacin entre las partes del ciclo de vida y su dependencia.

256
TEMA 59. GESTIN Y CONTROL DE PROYECTOS INFORMTICOS. ESTIMACIN DE RECURSOS.
PLANIFICACIN TEMPORAL Y ORGANIZATIVA. SEGUIMIENTO.

1. INTRODUCCIN
2. GESTIN Y CONTROL DE PROYECTOS INFORMTICOS
3. ESTIMACIN DE RECURSOS
3.1. COCOMO
3.2. Puntos funcin
3.3. Staffing Size
3.4. Casos de uso
4. PLANIFICACIN TEMPORAL Y ORGANIZATIVA
4.1. Diagramas de GANTT
4.2. Histograma de recursos
4.3. PERT
5. SEGUIMIENTO

257
1. INTRODUCCIN
El desarrollo de software es un proceso con una complejidad directamente proporcional al tamao del
proyecto. La primera derivada de esta complejidad es que se hace necesaria una gestin del mismo, para
organizar, planificar y administrar los recursos materiales y humanos para poder entregar el proyecto en
fecha y forma.
Un proyecto es la planificacin de un producto o servicio, para llevarlo a cabo. Cuando el objetivo de un
proyecto es software, se denomina proyecto informtico y a la disciplina que estudia la organizacin y
control del mismo, gestin de proyectos informticos
2. GESTIN Y CONTROL DE PROYECTOS INFORMTICOS
En general, los proyectos informticos estn sometidos a condiciones que se refieren a su alcance, tiempo y
coste. Es lo que se da en llamar Tringulo de la Gestin de Proyectos, donde cada lado representa una
restriccin. Un lado del tringulo no puede ser modificado sin afectar al resto.
El alcance del proyecto se refiere a lo que debe realizarse para cumplir los objetivos marcados. A veces
interesa definir tambin qu no se incluye, para evitar malinterpretaciones en los contratos. Las restricciones
temporales son las que marcan el tiempo de desarrollo del proyecto y por su parte, el presupuesto limitar el
coste asignado al mismo.
Para ejecutar el proyecto cumpliendo sus condiciones se pone en marcha el proceso de gestin y control
del mismo, que suele identificar una serie de fases, que se enumeran a continuacin.
Estudio de viabilidad: Es el paso inicial del proyecto, donde se establece su alcance y rentabilidad. Es
donde se decide si afrontar o no el proyecto. Se desarrolla en el tema 51
Lanzamiento: Establece el equipo inicial que va a desarrollar el proyecto, formaliza la comunicacin con el
usuario y se comienzan los trabajos.
Estimacin inicial: Determina el esfuerzo, plazo y riesgos del proyecto.
Organizacin: Define los equipos de trabajo, responsabilidades y dependencias.
Planificacin: Define el marco temporal de desarrollo de tareas, indicando quin y cundo deben realizarse,
as como el resultado esperado al final de cada una.
Ejecucin: Es la fase en que se desarrolla el proyecto segn lo planificado.
Seguimiento: Es una fase transversal, definida a lo largo del desarrollo del proyecto y orientada a controlar
que cada fase se desarrolla conforme a la planificacin. Para conseguir un adecuado seguimiento deben
realizarse medidas y tomar las acciones correctoras necesarias, si existen desviaciones.
3. ESTIMACIN DE RECURSOS
La estimacin de recursos es la accin consistente en realizar un primer clculo, lo ms aproximado posible,
de las necesidades materiales, humanas y econmicas qu sern necesarias para realizar el proyecto. Del
resultado de la estimacin se podr obtener una primera impresin de la viabilidad del proyecto.
La estimacin cobra ms valor cuanto ms temprana sea, dado que de otra forma, se puede perder mucho
tiempo y dinero si en fases avanzadas del desarrollo se llegase a la conclusin que la cantidad de recursos
necesarios sobrepasan la rentabilidad esperada.
Como es lgico, ese aspecto predictivo de la estimacin, est sujeto a errores, que sern menos si se
apoyan en una experiencia slida. Los errores en la estimacin pueden originar graves problemas en el
desarrollo del proyecto. Por tanto, el error debe acotarse y gestionarse, para lo que se existen tcnicas que
se orientan a mejorar la estimacin y dar soporte a estas tareas. Algunas de ellas son las siguientes.
3.1. COCOMO
La tcnica de COCOMO es un mtodo emprico basado en el tamao del proyecto (expresado en lneas de
cdigo) que tiene por objetivo estimar coste y tiempo de desarrollo. En funcin de la complejidad del
proyecto distingue tres tipos: orgnico, medio y complejo y presenta tres modelos, bsico, intermedio y
detallado, cada cual ms preciso y por tanto ms difcil de estimar.
A partir del tamao, tipo de proyecto y factores de ajuste (experiencia de los programadores, empleo de
herramientas o estabilidad de requisitos, por citar algunos), se estima el coste y tiempo necesarios para
realizar el proyecto. La debilidad del modelo reside en que las lneas de cdigo sobre las que se basan los
clculos deben ser estimadas, en general en funcin de la experiencia de un analista o un grupo de ellos.
COCOMO posee una mejora, el mtodo COCOMO II, que sigue la misma forma de trabajo, aadiendo ms
factores de estimacin.

258
3.2. Puntos funcin
La tcnica de los puntos funcin se basa en dividir el proyecto en reas funcionales, para estimar la
complejidad de cada una. Con la complejidad estimada, se obtiene una medida estandar de la
funcionalidad, los puntos funcin. A su vez, los puntos de funcin se estiman en una serie de factores que
se derivan del anlisis original.
Algunos de estos factores incluyen las entradas externas (los datos de entrada a la aplicacin y que
modifican la informacin interna), las salidas externas (datos que devuelve la aplicacin), grupos de datos
internos, datos de interfaz o consultas externas como datos obtenidos de bsquedas, que no cambian la
informacin.
Con los factores elegidos son clasificados segn su complejidad y se les asigna un valor, obteniendo una
primera serie de puntos funcin no ajustada. El siguiente paso consistira en examinar atributos de la
aplicacin a realizar y obtiener un factor de ajuste, con el que recalcular los puntos funcin, ahora ajustados.
El coste total se estimara multiplicando los puntos funcin ajustados por el esfuerzo de desarrollo de cada
uno, en base a histricos o estndares. Un mtodo avanzado de clculo de puntos funcin lo ofrece el
mtodo Mark2, que usa elementos elementos diferentes para el clculo, aadiendo ms factores.
3.3. Staffing Size
En el contexto de la POO, el desarrollo del cdigo se realiza estructurado en las clases a implementar. Por
tanto, si al principio del proyecto se posee una definicin fiable de las clases necesarias, stas servirn de
base para realizar la estimacin.
Para el tratamiento de clases, se distingue entre clases clave, las que aparecen al principio del anlisis y
clases secundarias, que se manifiestan a lo largo del proyecto, por lo que no se conoce su nmero en el
momento de la estimacin, pero se da un nmero de clases secundarias en funcin del tipo de interfaces.
El coste de desarrollo se estima a partir del nmero de clases totales, clave y secundarias, multiplicndolo
por el esfuerzo necesario para desarrollar una clase.
3.4. Casos de uso
Si los requisitos de un proyecto utilizan casos de uso, puede usarse como tcnica de estimacin tanto en el
contexto de POO como en el de programacin estructurada.
Los factores del mtodo son los denominados actores y casos de uso. Ambos se clasifican en simples,
medios y complejos y se le asigna un valor o peso.
Los casos de uso de los actores se suman y se aplica un factor de ajuste de complejidad tcnica y otro de
ajuste de contexto (referido al grupo de personas de desarrollo), obteniendo puntos de casos de uso
ajustados. El valor ajustado es el esfuerzo de desarrollo y debe ser ampliado a las restantes fases usando
una tabla de porcentaje de esfuerzos.
4. PLANIFICACIN TEMPORAL Y ORGANIZATIVA
La planificacin organizativa depende de cada proyecto. Debe tener en consideracin sus particularidades y
las de la organizacin para la que se va a desarrollar. Para realizar esta planificacin, se suelen identificar
una serie de figuras que desempean ciertas funciones.
Director. Es la persona que provee los recursos necesarios para la ejecucin del proyecto y toma las
decisiones relevantes que afecten a la organizacin.
Jefe de proyecto. Es la persona con la responsabilidad de la ejecucin del proyecto. Realiza la estimacin
del esfuerzo, selecciona la estrategia de desarrollo y gestiona las incidencias de ejecucin.
Analista/programador.: Figuras humanas que disean y construyen el sistema.
Usuario: Es el conjunto de personas que definen los requisitos del sistema adecuados y completos para su
implementacin. Adems validan el resultado conforme a lo proyectado.
Cada recurso est definido en cuanto a qu departamento pertenece, sus funciones, equipo de trabajo y
dems aspectos en relacin con el proyecto. Esta organizacin del proyecto se suele representar con un
diagrama de rbol que describe los participantes, sus roles y relaciones.
La planificacin temporal de un proyecto posee por objetivo detallar la programacin de sus actividades,
desde el punto de vista temporal y de recursos necesarios. La planificacin temporal divide el proyecto en
fases y tareas, define los recursos necesarios para su realizacin (con tcnicas de estimacin) y establece
las dependencias entre tareas. Adems, establece hitos o puntos de control para realizar el seguimiento del
proyecto. Las tcnicas y herramientas de planificacin temporal ms extendidas son que se presentan.

259
4.1. Diagramas de GANTT
Son grficos que permiten
representar la ejecucin
temporal de tareas. En el eje
vertical se representan tareas
que podrn dividirse en
subtareas y en el eje
horizontal, el tiempo de
desarrollo de la tarea, como
se muestra en la figura.
4.2. Histograma de recursos
Muestra los recursos que intervienen en cada actividad en un momento dado. Entre otras cosas, sirve par
estimar si un recurso est sobreutilizado. Un ejemplo se muestra en la figura izquierda.
4.3. PERT
Es una tcnica que tiene como objetivo establecer las dependencias entre tareas para definir cmo se
encadenan en la planificacin. Representa las actividades del proyecto en un grafo donde los nodos son
actividades y las flechas las dependencias entre ellas. Un ejemplo se muestra en la figura de la derecha.

A partir del PERT pueden estimarse medidas para cada tarea, como por ejemplo el comienzo ms
temprano, o momento ms temprano en que una actividad puede comenzar (sin contar retrasos anteriores),
fecha de finalizacin ms temprana o la holgura, es decir, el tiempo que puede retrasarse una actividad sin
retrasar la finalizacin del proyecto
Una caracterstica muy importante del uso de PERT es que permite estimar los caminos crticos del
proyecto, es decir la cadena de actividades que no deben retrasarse ya que un retraso en alguna implicara
un retraso en la fecha de fin del proyecto entero.
5. SEGUIMIENTO
Una vez planificado el proyecto se establece una tarea transversal que se desarrolla en paralelo a lo largo
del mismo, el seguimiento.
El seguimiento de un proyecto tiene por objeto controlar la correcta ejecucin y desarrollo. Del mismo modo
las alarmas que se generen en el seguimiento se utilizarn para corregir las desviaciones sobre la
planificacin. Fundamentalmente se distinguen tres tipos de seguimiento: esttico, dinmico y predictivo.
El seguimiento esttico se basa en el esfuerzo dedicado a cada tarea. El dinmico se apoya en el avance
de los productos obtenidos en cada fase y el predictivo anticipa problemas futuros en base a variables
actuales del proyecto, como por ejemplo, la productividad.
Estos tipos de seguimiento identificados no son excluyentes. De hecho suelen complementarse en un
proceso de realimentacin informativo. Es decir, en funcin de la informacin obtenida, se procede a
replanificar el proyecto o tomar las acciones correctoras necesarias para su cauce correcto.
Por ltimo, una vez finalizado el proyecto se debe realizar el cierre del mismo. El cierre consiste en la
liberacin de los recursos asignados, almacenar la informacin obtenida en el repositorio de proyectos (con
vistas a planificaciones futuras) y se realiza un proceso de revisin para identificar las reas de mejora y
actualizar los estndares de la organizacin para futuros desarrollos. Del mismo modo, se establecer
formalmente la conformidad del cliente y se proceder a la facturacin.

260
TEMA 60. SISTEMAS BASADOS EN EL CONOCIMIENTO. REPRESENTACIN DEL CONOCIMIENTO.
COMPONENTES Y ARQUITECTURA.

1. INTRODUCCIN
2. SISTEMAS BASADOS EN EL CONOCIMIENTO
3. REPRESENTACIN DEL CONOCIMIENTO
3.1. Modelos de representacin
3.2. Lenguajes de representacin del conocimiento
4. COMPONENTES Y ARQUITECTURA

261
1. INTRODUCCIN
Los sistemas basados en conocimiento (SBC) surgen como una evolucin de los paradigmas de
programacin. Al principio, la concepcin de los sistemas era la del proceso de informacin, es decir, un
usuario realiza una peticin de entrada y el sistema generaba una salida en funcin de datos de entrada, o
almacenados en otro lugar, tpicamente ficheros.
La evolucin de ese modelo es la BBDD, que viene a abstraer la capa de almacenamiento o persistencia de
datos, sustituyendo el almacen de datos en ficheros, facilitando la gestin de la informacin.
Una nueva etapa en la evolucin sw la representan los SBC. Se basan en pasar a un primer plano la
informacin, los datos o base de conocimiento. El cdigo que lo trata, el motor de inferencias pasa a un
papel secundario. La base de conocimientos es generada por un usuario experto en el dominio (ingenieros
de conocimiento, cientfico de datos), que poseen un rol diferente a los desarrolladores.
2. SISTEMAS BASADOS EN EL CONOCIMIENTO
En contraste con los sistemas tradicionales, en que el usuario representa y define la interaccin del
conocimiento, los sistemas basados en conocimiento (SBC), un usuario (experto), define el conocimiento y
el sistema lo integra en la aplicacin.
As, surge la ingeniera del conocimiento como variante de la ingeniera del software orientada al al diseo e
implementacin de SBC. Un SBC se puede entonces definir como un sistema informtico capaz de resolver
problemas de su dominio especfico.
Esto supone un enfoque cognoscitivo, estructural, basado en un conocimiento especfico, ms que en una
capacidad intelectual. Ese sera un segundo enfoque conductista, en que se busca imitar los procesos
humanos de resolucin de problemas y la adquisicin de experiencia (o know-how). Esta es la diferencia
entre un SBC y lo que se da en llamar sistemas expertos.
Por tanto, un sistema experto sera un SBC particular que imita al experto humano. Por ejemplo, una
enciclopedia electrnica sera un SBC, pero no un sistema experto. Del mismo modo hay que distinguir un
SBC de un sistema inteligente. Un SBC es un tipo de sistema inteligente particular que est en relacin con
el conocimiento y las capacidades humanas.
3. REPRESENTACIN DEL CONOCIMIENTO
La representacin es el uso de un conjunto de convenciones para describir algo. Una representacin
adecuada debe cumplir que los objetos y sus relaciones sean explcitos y en conjunto, las restricciones se
muestren sin un detalle excesivo, que sea clara, completa y concisa.
Una representacin se puede dividir en cuatro aspectos, una parte lxica, que establece el conjunto de
smbolos (a veces alfabeto), una parte estructural que define la forma en que pueden combinarse los
smbolos, una parte semntica, que indica la forma de asociar el significado con las estructuras y una parte
operativa que especifica los procedimientos que permiten crear descripciones, modificarlas y responder a
preguntas utilizndolas.
De esta forma, partiendo del problema de la representacin del conocimiento que usa un experto a la hora
de resolver un problema, se deriva el de representar el conocimiento para almacenarlo en un sistema
informtico. Esto genera distintos modelos de representacin del conocimiento.
3.1. Modelos de representacin
Los modelos de representacin del conocimiento se basan en los modelos de la psicologa. El inters en el
estudio del conocimiento surge con los primeros conductistas como Paulov o Skinner, que tratan el
problema desde la perspectiva estmulo-respuesta. Por tanto, se trata al ser humano como una caja negra,
modelando su interfaz, de forma que ante un estmulo se producen respuestas predecibles, observables y
modificables de formas distintas.
A partir del conductismo, se desarrolla el cognitivismo, que plantea el estudio del razonamiento desde la
perspectiva de caja blanda, intentando desgranar los procesos internos de razonamiento, aprendizaje, etc.
El constructivismo defiende que el conocimiento no se adquiere de fuentes externas, sino que el individuo lo
crea en su mente. Es decir, es una creacin, o una construccin del polo del sujeto, no proviene del polo del
objeto. Se asume que existen estructuras cognitivas en continuo desarrollo que activan los procesos de
construccin del conocimiento.
Otras propuestas a destacar son las de Tennyson, que expone que las estrategias de pensamiento son de
complejidad creciente, distinguiendo tres actividades de alto nivel: recordar, resolver problemas y crear. Por
su parte, Benjamin Bloom propone los objetivos del proceso de aprendizaje, indicando lo que se espera que

262
aprenda un sujeto tras un proceso de aprendizaje. Sus planteamientos se han utilizado para la definicin del
modelo del conocimiento del Espacio Europeo de Educacin Superior (EEES).
En los modelos de representacin del conocimiento tiene gran importancia la memoria. De hecho
diferencias observadas entre el aprendizaje de monos y humanos indican esta direccin. Un primate, tras
descubrir una tcnica, vuelve al cabo de un tiempo a un estado de conocimiento anterior, lo que no ocurre
en el humano, debido a su capacidad de recuerdo, o memoria.
As, se suelen diferenciar dos tipos de memoria, la episdica y la semntica. La primera se refiere a los
recuerdos de vivencias (episodios). Se da con la experiencia. La memoria semntica se refiere a
conocimientos generales, informacin diversa sin referencia explcita. Surge tras un proceso de abstraccin.
Por fin, Quillian propone dos modelos de representacin del conocimiento, el declarativo y el procedimental.
El declarativo expone los hechos y reglas que rigen un dominio y el procedimental se refiere al mtodo para
obtener el conocimiento.
3.2. Lenguajes de representacin del conocimiento
Un lenguaje de representacin del conocimiento es un sistema de comunicacin integrado por un conjunto
de smbolos estructurado y sus reglas de combinacin para expresar los procesos cognoscitivos de forma
que entre otros, facilite la inferencia de nuevo conocimiento.
Entre los requisitos que debe cumplir un lenguaje de este tipo, estn presentar una sintaxis formal para
soportar el proceso cognitivo (motor de inferencia), poseer una semntica correctamente definida para
implementar razonamientos y, en la medida de lo posible, ser sencillo. Sulen soportarse con herramientas.
Entre los modelos de lenguajes de representacin del conocimiento destacan las triplas objeto-atributo-valor
(OAV), las redes semnticas, los marcos y la lgica de predicados.
Triplas OAV. Representan el modelo bsico. Han evolucionado hacia los atributos de las clases del
paradigma de la POO.
Redes semnticas. Suponen un lenguaje grfico sencillo y til para representar conocimiento taxonmico,
que permite agrupar las entidades en una jerarqua de clases con relacin de herencia. Es fcilmente
traducible a forma simblica y adecuada para representar el conocimiento. Ofrece una representacin
estructurada del conocimiento factual y cierto conocimiento normativo. Asimismo permite expresar
fcilmente las excepciones de propiedades heredadas.
Los elementos de las redes semnticas son nodos (de objetos, clases o atributos) y arcos orientados, que
representan relaciones binarias entre objetos y clases y entre stos y atributos.
Marcos. Son otro lenguaje de representacin del conocimiento que permiten describir redes semnticas
textualmente e incluir representaciones de conocimiento procedimental.
Cada nodo correspondiente a un objeto o clase se convierte en un marco, que consta de una lnea con el
nombre del marco y una sucesin de lneas denominadas ranuras o slots.
Lgica de predicados. Es el lenguaje de representacin del conocimiento dado por razonamientos de tipo
deductivo, absolutos (con valor verdadero, falso) y basados en predicados de primer orden.
Entre sus ventajas se encuentra que es el modelo funcional del razonamiento humano, adems posee un
alto grado de formalizacin y separa el conocimiento (reglas) del razonamiento (inferencia). Otros esquemas
se basan o pueden expresarse con lgica de predicados, ya que es muy expresiva en muchos dominios. Sin
embargo, a veces resulta demasiado expresiva y en casos de conocimiento impreciso o subjetivo puede no
ser adecuada.
4. COMPONENTES Y ARQUITECTURA
La arquitectura general de un SBC identifica dos componentes principales, la base de conocimiento
(conocimiento esttico sobre el dominio, a largo plazo) y el motor de inferencias (encadenamiento adelante
y atrs) y tres componentes de apoyo, la memoria de trabajo, el interfaz de usuario (sistema de E/S) y el
generador de explicaciones.
Base de Conocimiento. Incorpora las reglas y hechos, es decir, el conocimiento de las estructuras de datos,
los procedimientos asociados y el conocimiento de predicados. A veces se conoce como base de hechos o
memoria de trabajo, en contraposicin a la base de control, que representara el conocimiento heurstico
(decisiones), el conocimiento de control, para implementar la estrategia de alto nivel (fases de aplicacin,
bases de conocimiento a usar).
Suele basarse en el razonamiento basado en casos (CBR, case based reasoning), el uso de conocimiento
anterior para elaborar el razonamiento.

263
Motor de inferencias. Es el conjunto de algoritmos que se emplean para resolver problemas. Debe identificar
las reglas de inferencia aplicables, elegir las adecuadas (solucin de conflictos), una vez seleccionadas,
aplicarlas y actualizar la base de conocimientos, iterando el proceso hasta agotar las reglas aplicables.
Las reglas de inferencia distinguen entre las reglas con encadenamiento hacia adelante (se aplican
partiendo de un estado inicial hasta obtener conclusiones) y encadenamiento hacia atrs (se aplican
partiendo del estado final para explicar el estado inicial).
Cuando se ha de tomar la decisin de aplicar una de entre varias reglas de inferencia posibles, se habla de
resolucin de conflictos, lo que implica usar una estrategia de decisin, que puede estar basada en reglas,
en objetos o en estados (heursticos).
La decisin basada en reglas, asigna prioridades explcitas, segn el orden de programacin, su historia, u
otros criterios. La decisin basada en objetos aplica prioridades a objetos (patrones comunes) segn su
aparicin reciente. La decisin basada en estados se basa en analizar los resultados en un banco de
pruebas y seleccionar la mejor regla de inferencia.
Memoria de trabajo. Se suele distinguir la memoria de trabajo como otro componente de los SBC, aunque
en realidad podra considerarse una parte de la base de conocimiento, la base de hechos. Su misin es
almacenar el conocimiento dinmico sobre el razonamiento actual, a corto plazo.
Interfaz con el usuario. Se dispone para facilitar la explotacin del SBC, desde el punto de vista de la
comunicacin adecuada entre el ingeniero de conocimiento y el entorno informtico, en su operacin. Entre
las caractersticas exigibles pueden citarse una expresin clara de instrucciones, preguntas y respuestas, la
facilidad y claridad de expresin y evaluacin del experto y la sencillez de supervisin del funcionamiento.
Generador de explicaciones. Es el componente encargado de ofrecer la explicacin del razonamiento del
sistema para obtener la conclusin, a partir de las preguntas formuladas al usuario.

264
BLOQUE 5. REDES
Tema 61. Redes y servicios de comunicaciones.
Tema 62. Arquitecturas de sistemas de comunicaciones. Arquitecturas basadas en niveles.
Estndares.
Tema 63. Funciones y servicios del nivel fsico. Tipos y medios de transmisin. Adaptacin al medio
de transmisin. Limitaciones a la transmisin. Estndares.
Tema 64. Funciones y servicios del nivel de enlace. Tcnicas. Protocolos.
Tema 65. Funciones y servicios del nivel de red y del nivel de transporte. Tcnicas. Protocolos.
Tema 66. Funciones y servicios en niveles sesin, presentacin y aplicacin. Protocolos.
Estndares.
Tema 67. Redes de rea local. Componentes. Topologas. Estndares. Protocolos.
Tema 68. SW de sistemas en red. Componentes. Funciones. Estructura.
Tema 69. Integracin de sistemas. Medios de interconexin. Estndares. Protocolos de acceso a
WAN
Tema 70. Diseo de sistemas en red local. Parmetros de diseo. Instalacin y configuracin de
sistemas en red local.
Tema 71. Explotacin y administracin de sistemas en LAN. Facilidades de gestin.
Tema 72. La seguridad en sistemas en red. Servicios de seguridad. Tcnicas y sistemas de
proteccin. Estndares.
Tema 73. Evaluacin y mejora de prestaciones en un sistema en red. Tcnicas y procedimientos de
medidas.
Tema 74. Sistemas multimedia.

BIBLIOGRAFIA
Normas y recomendaciones UIT, ETSI, ISO
Redes de Ordenadores, Andrew S. Tanenbaum, Prentice-Hall
Computer Networking: a top-down approach. J. F. Kurose, K. W. Ross. Pearson/Addison-Wesley
Internetworking with TCP/IP: Principles, Protocols and Architecture, D. E. Comer. 4, Prentice.-Hall
Interconnecting Cisco Network Devices, CISCO Press
Jos M. Hernando Rbanos, Transmisin por radio, Ramn Areces

Recursos web:
http://www.etsit.upm.es/
http://informatica.uv.es/iiguia/TSTD/
http://es.wikipedia.org/wiki/Portada
http://www.cisco.com
http://seguridadyredes.nireblog.com
http://www.monografias.com
http://www.microsoft.com/latam/technet/productos/windows/windowsserver2003/usrdata.mspx
http://fferrer.dsic.upv.es/cursos/Windows/Avanzado/index.html
http://observatorio.cnice.mec.es/modules.php?op=modload&name=News&file=article&sid=366
http://www.mitecnologico.com
http://ditec.um.es

265
TEMA 61. REDES Y SERVICIOS DE COMUNICACIONES.

1. INTRODUCCIN
2. REDES Y SERVICIOS DE COMUNICACIONES
2.1. Conceptos bsicos
2.2. Clasificacin de Redes
2.2.1. Topologa
2.2.2. Extensin
2.2.3. Servicio
2.2.4. Propsito
2.2.5. Propiedad
2.3. Componentes
2.3.1. Hardware
2.3.1.1. NIC
2.3.1.2. Cableado
2.3.1.3. Concentrador, puente, switch
2.3.2. Software
2.3.2.1. Servidores
2.3.2.2. Estaciones de Trabajo
2.3.2.3. Routers y Firewalls

266
1. INTRODUCCIN
Las redes de ordenadores son ms cercanas gracias a la popularizacin de Internet y las redes domsticas.
La necesidad de conectar ms de un equipo informtico es la razn de ser de una red. Un ordenador
personal y una impresora conectados ya forman una red bsica. El gran desarrollo de los sistemas en red
ha sido posible gracias a la evolucin de estndares y recomendaciones de organizaciones y fabricantes.
Por tanto, el esquema mental al hablar de redes y servicios de comunicaciones es el de un determinado
nmero de computadoras alejadas, pero conectadas, que realizan un trabajo de computacin.
Conviene distinguir entre red de ordenadores y sistema distribuido. En la red, el usuario determina el
servicio que requiere o con quin comunicarse. El sistema distribuido lo hace automticamente, de forma
transparente al usuario, que percibe el sistema como un monoprocesador virtual. La diferencia por tanto,
estriba en el software que implementa uno u otro sistema.
2. REDES Y SERVICIOS DE COMUNICACIONES
Un sistema en red, es un conjunto de ordenadores y sistemas conectados para incrementar la
productividad. Materializa la simbiosis de las Tecnologas de la Informtica y Comunicaciones (TIC), al
ofrecer una forma universal de acceso a recursos.
Su estudio puede dividirse en dos planos, el fsico y el lgico, el hardware y software de red. En el hardware
de red, se incluiran medios fsicos, cables, conectores, sus especificaciones y la electrnica de red, que
incluye equipos como switches y routers, que realizan funciones de control de la red.
El software de red, incluiye la parte lgica como lo relativo a normas de comunicacin o SO de red (NOS,
Network Operating System), que gestionan usuarios, recursos y permisos y sirven de interfaz entre
usuarios, gestores de red y sus recursos.
2.1. Conceptos bsicos
Todo el hardware de red se define en normas y estndares. La documentacin asociada tambin formara
parte del hardware, sobre el que se monta la estructura lgica, que organiza el trabajo de la red. El NOS es
un programa que gestiona todo lo relacionado con la organizacin y el trabajo en una red. Posee varios
aspectos importantes. El primero es la implementacin de los protocolos necesarios para que la
comunicacin sea posible. Otro aspecto que debe tratar el NOS es la forma de trabajo para lo que se
identifican tres entes: usuarios, recursos y permisos.
Un usuario de la red es un registro de datos que tiene acceso a la
red. Esos datos suelen referirse a una persona que usa ese
identificador para acceder a la red. Esta idea siempre ser vlida,
pero debe pensarse en la idea de usuario como algo ms general,
por ejemplo un equipo al que se da una identidad, un usuario, para
que enve informacin si se da una incidencia o una alarma.
Un usuario que accede a una red, en general lo hace para obtener
un recurso de red, que en principio, podr definirse como cualquier
servicio, dato o elemento que la red ofrezca.
El NOS tambin gestionar los recursos, estableciendo su
localizacin, forma de acceso, estado de su operatividad, etc. Una
vez definidos usuarios y recursos, su enlace se realiza mediante
los permisos de usuario. Un permiso de usuario es una
configuracin de software que define si cierto usuario tiene acceso
a un recurso de la red o no.
El administrador de red es la figura humana que utiliza el NOS para definir los aspectos administrativos y de
gestin del sistema. Otros conceptos habituales en redes son los de cliente y servidor. Un servidor es una
mquina dedicada a ofrecer informacin, un trabajo especfico o recurso, que, en general, se denomina
servicio. Por su parte, un cliente es un elemento de red, en general un usuario o una mquina que hace uso
de un servicio.
2.2. Clasificacin de Redes
Las redes pueden clasificarse atendiendo a su topologa, extensin, servicio, propsito y propiedad.
2.2.1. Topologa
Segn la topologa de la red, es decir, segn la forma fsica que dibuja su forma de conexin un sistema en
red se clasifica en red en estrella, en bus y anillo.

267
En la red en estrella todos los elementos se conectan mediante un concentrador (hub). Es fcil de instalar y
detectar errores. Si un equipo falla slo falla ese, pero la red queda inoperativa si falla el concentrador. Una
red en bus se conecta con un slo cable con terminaciones. Es fcil instalarla y no existen nodos centrales.
Presenta problemas si hay una discontinuidad en el bus. Una red en anillo es una red en bus en la que se
unen los extremos. Se analiza la informacin recibida en cada estacin. Es difcil de instalar y mantener.
Como en el bus, si se rompe el anillo la red cae.

2.2.2. Extensin
En cuanto a la extensin de la red, o el rea cubierto, se pueden distinguir tres tipos:
- LAN (Local Area Network), Circunscrita a una red de oficina o un edificio, tpicamente.
- MAN (Metropolitan Area Network), alcanzara un rea intermedio, del tipo de una ciudad o un campus
- WAN (Wide Area Network), que tendra una cobertura mundial.
Esta clasificacin tpica poco a poco va sufriendo modificaciones y hoy da prcticamente no se tiene en
consideracin las redes MAN, debido al crecimiento de las LAN. Aunque las redes LAN comenzaron
refirindose al entorno domstico o de oficina, una LAN actual puede abarcar varios edificios contiguos de
una misma empresa y poseer una complejidad y extensin considerable.
Del mismo modo, la tecnologa de transmisin tpica de LAN, Ethernet, es tan fiable y ofrece prestaciones
que su utilizacin se est escalando a mbitos cada vez ms extensos, como los de las redes MAN.
En la literatura pueden encontrarse trminos del estilo MetroLan, o MacroLAN, dando a entender redes que
con tecnologas propias de LAN se alcanzan extensiones metropolitanas. Para ir encuadrando algunas
tecnologas de transmisin utilizadas en redes WAN y LAN, ejemplos son:
REDES LAN: Ethernet (IEEE 802.3), Token Ring, FDDI, WIFI
REDES WAN: HDLC, PPP, X.25, Frame Relay, ATM, DSL, RDSI
2.2.3. Servicio
Segn el modo de dar servicio, las redes se clasifican en Cliente-Servidor y redes de Pares o Peer To Peer
(P2P). En el modelo cliente-servidor existen dos roles, un equipo ofrece un servicio, el servidor, y otro
equipo lo pide, el cliente. Los servicios que puede ofrecer un servidor son tan comunes como un sitio web,
correo electrnico, autenticacin, etc. En general, siempre que se navega por Internet, se est haciendo uso
de los distintos servicios que empresas, instituciones, etc. ofrecen a los usuarios.
En el modelo de pares, peer to peer, simplificando, slo existe un rol. Una mquina perteneciente a una red
P2P puede a la vez ser cliente y servidor de otro equipo. Es el caso tpico del intercambio de ficheros en
redes como BitTorrent o Emule. Un equipo al descargar parte de un fichero est asumiendo el rol de cliente.
Pero al compartir y ofrecer otras partes de ese fichero tambin asume la funcin de servidor. Es decir, en el
modelo P2P cualquier equipo puede ser cliente y servidor a la vez y ofrecer o recibir un servicio.
2.2.4. Propsito
Segn su propsito empresarial, las redes se dividen en extranets e intranets, lo que se refiere a entornos
web, a travs de los que la empresa facilita aplicaciones y recursos.
Si esas facilidades en entorno web poseen un carcter interno, privado, para uso de los empleados o
clientes, se habla de intranet. Si se refiere a la parte pblica, accesible a cualquier usuario, se habla de
extranet. Puede haber partes de la intranet a las que se permita acceso externo, mediante identificacin.
Un ejemplo habitual de esta situacin es el acceso a un banco a travs de Internet: Un usuario puede
conectarse a la web, la extranet del banco. Los empleados del banco tendrn acceso a informacin privada
del banco, como los datos de sus clientes, acceden a la intranet del banco, la parte privada. Un cliente
podr consultar una parte de la intranet, cuando se conecte para ver los movimientos de sus cuentas.

268
2.2.5. Propiedad
Segn la propiedad de la red se distinguen tres tipos: Redes pblicas, privadas y virtuales.
Una red pblica es la de un operador de telecomunicaciones. El acceso a una red pblica se formaliza
mediante un contrato entre usuario y operador. La red da acceso a los servicios pblicos de comunicacin,
como por ejemplo telefona, Internet o televisin.
Una red privada es la de uso especfico por parte de un organismo o empresa. En principio, su utilizacin
est restringida al dueo de la red, pero puede alquilar una parte. Un ejemplo de este tipo de red es la de
Renfe. Aprovechando el trazado de las lneas ferroviarias, Renfe instal una red privada de fibra ptica, que
o bien utiliza para s misma o bien alquila. Una red domstica tambin sirve como ejemplo de red privada.
Una red privada virtual, VPN (Virtual Private Network) es una parte de una red pblica o privada que se
asigna en exclusividad a un cliente, en general para conectar las delegaciones de la empresa.
La diferencia entre una red pblica y privada virtual est en que a partir de la central del operador, los
recursos que se han contratado en el primer caso tienen una utilizacin pblica, mientras que en el segundo
son de utilizacin exclusiva. En una VPN, la diferenciacin entre clientes se hace por software.
Prcticamente la totalidad de empresas de tamao mediano cuentan con una VPN. Por ejemplo, cualquier
banco tiene conectadas todas sus delegaciones con centros principales de administracin, clculo o
almacenamiento mediante una red de comunicaciones, que obviamente contratan con un operador.
2.3. Componentes
Los componentes de una red pueden dividirse en componentes hardware y software. Estos varan en
funcin de las caractersticas de la red y su tecnologa.
2.3.1. Hardware
2.3.1.1. NIC
El primer componente hardware con que se cuenta en la red es su interfaz. Habitualmente conocida como la
tarjeta de red, o NIC, Network Interface Card. sta no es ms que un circuito impreso con los componentes
y su programacin necesaria para servir de interface, dar acceso al medio de transmisin de la red.
En la tarjeta de red se instalarn los controladores
(drivers) necesarios para gestionar a bajo nivel la
transmisin de datos. Esto significa que las seales
fsicas, tensiones u ondas de radio, presentes en el
interfaz deben ser interpretadas por los chips de la
tarjeta y organizar esa informacin para su tratamiento
por parte de otro ente superior, en general el PC, el
servidor, o el equipo donde est instalada.
La NIC incluye el interfaz concreto de que se trate. Debe pensarse en el conector fsico. Un ejemplo sera
un conector RJ-45 tpico, o una antena Wifi, como las mostradas en las figuras. Existen otros conectores
estndar, y en general, los que cada fabricante pueda proponer. En general, se tiende al establecimiento de
estndares para facilitar la compatibilidad.
Para instalar una tarjeta de red en un equipo es necesario un interfaz entre ambos. La tarjeta de red as
posee dos interfaces, uno para dar el servicio de conexin a la red, y otro, para su conexin al equipo. El
interfaz con el equipo puede ser cualquiera de los habituales, USB, PCMCIA, PCI, etc. As una tarjeta de
red wifi dispondr una antena para servir de interfaz con la red y un conector para un PC, por ejemplo USB.
2.3.1.2. Cableado
Para la transmisin de informacin, sta se representa de alguna forma, en general, con la variacin de
alguna magnitud fsica como la tensin elctrica o la luz. El tipo de magnitud fsica utilizada para transmitir
informacin determinar el tipo de cableado a usar. El cableado es un medio fsico por el que se propagan
las seales fsicas que representan la informacin.
Si la transmisin se realiza mediante campos electromagnticos radiados, el medio de transmisin sera el
aire, y no existe cableado. Los tres tipos de cableado ms utilizados son: par trenzado, coaxial y fibra ptica.
El cable de par trenzado consiste en varios cables de cobre agrupados de dos en dos y trenzados entre s,
porque esta disposicin evita interferencias. La agrupacin de los cables en pares responde a una razn:
para representar un nivel de tensin, se necesita una referencia, una masa.
De esta forma, en el par, un cable hace de referencia y el otro de nivel. Si con respecto a la referencia
existen 5V en su par, se interpreta un uno, si no un cero. Ejemplos de cable de par trenzado son el par

269
telefnico o el cable de red UTP. Sus ventajas son un coste bajo y fcil manejo e instalacin, pero las
distancias que cubre no son demasiado largas.
El cable coaxial consta de dos conductores metlicos concntricos y separados por un dielctrico o material
aislante. En general, el cable central es slido y el conductor externo suele ser una malla metlica que hace
las veces de corona. El ejemplo es el cable coaxial domstico, tpico de TV. Presenta la ventaja de tener
ms ancho de banda que los pares de cobre, pero son ms caros.
La fibra ptica es un cable de fibra de vidrio o similar diseado para guiar campos electromagnticos en
forma de luz. Se construye como dos cables concntricos no separados, que presentan caractersticas
diferentes a la refraccin de la luz. Bsicamente, el conductor interior o ncleo gua la luz y el exterior o
revestimiento hace las veces de espejo, evitando que la luz salga del ncleo. Esta propiedad se consigue
haciendo que el ndice de refraccin de la luz del ncleo sea mayor que el del revestimiento.
El protector plstico externo se denomina cubierta. Entre las ventajas de la fibra ptica se encuentran la
capacidad de transmisin a muy larga distancia sin necesidad de repetidores o regeneradores de seal,
gran ancho de banda de transmisin, inmunidad a interferencias, ligera y libre de corrosin.
2.3.1.3. Concentrador, puente, switch
Comnmente los dispositivos hardware de red se conocen como electrnica de red. Destacan:
- El concentrador o hub, que presenta varios puertos fsicos para la conexin de los equipos de red. Su
funcionamiento es el de repetir las seales que le llegan por un puerto al resto de puertos para alcanzar su
destino. Puede entenderse como un ladrn de conexiones de red. No introduce ninguna inteligencia en la
red, simplemente retransmite la seal.
Cuando la longitud de los cables es grande, la seal que transportan puede verse atenuada, pierde potencia
y por tanto hay que amplificarla para que llegue a destino. El repetidor es el dispositivo que incrementa el
nivel de la potencia de seal recibida y la retransmite para poder cubrir la distancia hasta el destino.
- Un puente o bridge, es un adaptador entre redes de tecnologa muy similar. Por ejemplo, dadas dos redes
LAN con cableados de par y coaxial, que usan tecnologa Ethernet y Token Ring, pueden conectarse ambas
redes con un bridge como si fueran una nica LAN. Esto es debido a que la estructura lgica de transmisin
en una red Ethernet y Token Ring es prcticamente similar. Si la tecnologa fuera muy diferente habra que
recurrir a otros dispositivos como por ejemplo routers.
- Los switches o conmutadores son dispositivos de red que segmentan de forma lgica la red. Esto significa
que la red es dividida en varios dominios para conseguir objetivos de estabilidad, seguridad de red, etc.
Una primera idea es pensar en un switch como un equipo que puede configurarse como varios hubs
independientes. Los equipos que se conecten a ese hub virtual, configurado, podrn comunicarse entre s,
formando lo que se denomina una VLAN o LAN Virtual. Los equipos que pertenezcan a otra VLAN podrn
comunicarse entre s, pero no con los de otras VLAN.
2.3.2. Software
2.3.2.1. Servidores
Un servidor es un equipo con un software que ofrece un recurso o un servicio en el sistema en red. Suele
pensarse que un servidor debe ser un equipo potente, capaz de gestionar una gran cantidad de informacin.
En principio la idea es correcta para grandes organizaciones, pero debe pensarse en algo ms genrico, en
un software que ofrece un servicio o recurso y no necesariamente en una mquina poderosa. As, en una
red domstica, puede ser instalado un servidor web para acceso de los equipos del hogar.
Generalmente, se asocia la idea de servidor con una mquina. En realidad es el software que provee el
servicio. De hecho en una misma mquina pueden instalarse varios servidores. Si un servicio requiere
muchas operaciones de proceso, entonces es lgico implementar un servidor en una mquina dedicada.
Se habla entonces de servidores dedicados o no dedicados. El dedicado ser una mquina especializada
en un servicio. El no dedicado tiene un carcter ms generalista que puede albergar ms de un servidor. La
configuracin de una mquina como servidor dedicado o no depender de consideraciones a evaluar por el
administrador de red, tales como el nmero potencial de clientes, trfico de datos a soportar, etc. Los
servidores ms comunes que deben conocerse son:
- Servidor Web: Es el software que ofrece la gestin de sitios web. A un servidor web se acceder desde
una intranet o desde Internet, segn se configure. Habitualmente se utiliza un navegador web para acceder
al contenido. Navegar es ir estableciendo conexiones a diferentes servidores web.

270
- Servidor de correo electrnico. Gestiona todo lo relativo al servicio de correo electrnico, como cuentas de
correo, archivos almacenados en los buzones, contactos, etc.
- Servidor Proxy: Es un servidor que ofrece servicios ampliados de conexin a red. Se utiliza servicios
ampliados en la definicin, porque si no, un router ADSL podra considerarse un servidor proxy, y en
principio no lo es. Un servidor proxy, adems de proporcionar el acceso a una red, lo gestiona y controla.
As, puede realizar funciones como ocultacin de direcciones IP para proteger a una red de ataques
externos, almacenar informacin consultada habitualmente para acelerar el acceso, guardar registros de las
comunicaciones establecidas para elaborar auditoras, etc.
- Servidor de archivos. Ofrece archivos a los usuarios de la red. Un ejemplo caracterstico de servidor de
archivos es un servidor FTP, File Transfer Protocol, o protocolo de transferencia de ficheros. Es uno de los
protocolos ms comunes para el intercambio de archivos. Es normal por abuso del lenguaje, suele hablar de
servidores FTP, es decir servidores de archivos, que utilizan el protocolo FTP.
- Servidor de impresin. Gestiona las impresoras compartidas en la red entre los usuarios. Entre sus
funciones tambin se encuentran el acceso a las impresoras y el control de las colas de impresin.
2.3.2.2. Estaciones de Trabajo
Una estacin de trabajo o workstation, es un equipo de red, un terminal, dispuesto para el trabajo y acceso
de un usuario a la red. Generalmente una estacin de trabajo asume el papel de cliente de los servicios de
red. Su potencia de proceso es, en principio, menor que la de los servidores.
2.3.2.3. Routers y Firewalls
Aunque se ha introducido el router como parte de la electrnica de red, y por tanto parte hardware, un router
posee una lgica asociada que introduce inteligencia en la red. Podra hablarse de firmware de red, una
parte intermedia entre hw y sw. Se ha incluido como componente software, por ser ms propio.
Un router es un equipo que conecta redes de distinta naturaleza y cuya funcin es dirigir la informacin que
recibe por la ruta ptima para alcanzar el destino. A diferencia del bridge, conecta redes de tecnologas que
pueden ser muy diferentes. Para ello dispone tantos interfaces de red como redes conecte. Un router puede
ser un dispositivo hw, como un router domstico, o puede implementarse por software.
En un router se configuran mediante sw aspectos del tipo rutas a seguir por los datos, caractersticas de las
redes a las que da acceso, o protocolos de encaminamiento. El router, al conectar varias redes puede
cursar datos por diferentes rutas para alcanzar un destino. La decisin de la ruta a seguir la marca el
protocolo de encaminamiento y depender de factores como el coste de transmitir informacin por un
operador u otro, si una lnea esta congestionada o cada, etc.
Un router como parte del software de red, con mayores o menores prestaciones, puede realizar funciones
de Firewall. Un Firewall o cortafuegos, es un dispositivo hardware (de aspecto similar al router) o software y
cuya funcin es el control del trfico de red. Es un dispositivo orientado a la seguridad y su trabajo consiste
en evaluar puertos de conexin, direcciones IP, descarte de trfico mal construido, o que intenta obtener
informacin de la red (escaneos de puertos) o eliminar correo electrnico basura (spam) para evitar malos
usos y ataques de red. Este ltimo caso se implementa con otro trmino a conocer, las black list o listas
negras, listados de direcciones de internet generadoras de spam. Si a una red llega correo con direccin
origen una direccin incluida en la lista negra del firewall, automticamente se filtra.
Puede entenderse la idea de firewall como una aduana. Es un punto de control del trfico de entrada y
salida a una red. Ese control se realiza estudiando la informacin de control incluida en los datos de usuario.
Ejemplos de firewall implementados por software son los programas habituales de entornos domsticos
para establecer un control de las conexiones y ofrecer medidas de seguridad. Son muy conocidos los
firewalls que se integran con los SO, como el Firewall de Windows de Microsoft.
En general, los firewalls se sitan en la frontera entre una LAN e Internet. Pero existen configuraciones ms
complejas, por ejemplo para establecer controles de conexin a zonas protegidas de una red, en la que por
ejemplo, se alberguen los servidores. Este caso tpico, define una DMZ o zona desmilitarizada. Los firewalls
poseen capacidad de aprendizaje, configurndolos con reglas de decisin para que ante trfico sospechoso
se emita un aviso o deje constancia en un archivo de log o registro.

271
TEMA 62. ARQUITECTURAS DE SISTEMAS DE COMUNICACIONES. ARQUITECTURAS BASADAS EN
NIVELES. ESTNDARES.

1. INTRODUCCIN
2. ARQUITECTURA DE SISTEMAS DE COMUNICACIONES
3. ARQUITECTURAS BASADAS EN NIVELES
4. ESTNDARES
4.1. Modelo TCP/IP
4.2. Modelo OSI

272
1. INTRODUCCIN
La arquitectura de los sistemas de comunicacin surge como una solucin al problema de interconexin de
redes. Se busca conectar equipos de distintos fabricantes e independizar la comunicacin de la tecnologa
de red de transporte. La primera red experimental que implement estos conceptos fue la red del ARPA,
ARPAnet, que una distintas redes y por ello se dice que fue el germen de la actual Internet.
2. ARQUITECTURA DE SISTEMAS DE COMUNICACIONES
Se puede definir la arquitectura de un sistema como su organizacin fundamental en cuanto a sus
componentes, las relaciones entre ellos y el entorno y los principios que guan su diseo y evolucin.
Por tanto, la arquitectura de un sistema de comunicacin sera la estructura organizativa que presenta el
sistema para dar solucin a los problemas planteados en la comunicacin. Para definir la arquitectura de un
sistema de comunicacin, se dividen por niveles las tareas a realizar y se definen los interfaces para el
intercambio de informacin entre cada nivel. Consideraciones a tener en cuenta en el diseo son:
1. Distintos procesos o programas, en ejecucin en un equipo de la red, pueden establecer comunicaciones.
Pinsese en la ejecucin simultnea de Mozilla Firefox y Messenger, por ejemplo. Esta situacin precisa
que cada equipo este identificado y dentro del equipo, el proceso de que se trate.
2. Debe definirse si la transmisin ser simplex, dplex o semidplex.
3. La informacin a transmitir puede ser extensa, por tanto debe definirse cmo segmentarla.
4. Los paquetes de datos podrn seguir distintos caminos en la red, por tanto pueden alcanzar el destino en
tiempos y orden diferentes al original, o bien, sufrir errores de transmisin. Por esta razn es necesario
definir mtodos de control de errores y de ordenamiento de los datos recibidos.
5. Para evitar inestabilidades hay que adaptar la velocidad de un receptor lento que pueda colapsar ante un
emisor rpido. Se establecern mecanismos de negociacin de la tasa de transferencia.
Puede decirse que la primera arquitectura de red fue, de algn modo, el modelo TCP/IP, definido en 1973
en el RFC 675, aunque se nutri de implementaciones de otras redes como CYCLADES o NPL.
En 1984, la Organizacin Internacional de Estandarizacin, la ISO, defini una arquitectura de red, basada
en todos los desarrollos hasta la fecha, incluyendo TCP/IP, SNA y DECnet llamado Modelo OSI, Sistema
Abierto de Interconexin, por sus siglas en ingls. Es un modelo ms bien terico, que estructura la
comunicacin en siete niveles y sirve de referencia a la industria a la hora de definir estndares.
3. ARQUITECTURAS BASADAS EN NIVELES
La comunicacin en las redes, en general, se organiza como una jerarqua de niveles que dan un servicio a
niveles superiores y los ocultan los detalles fsicos de la comunicacin.
Una capa del nivel n se comunica virtualmente con la capa n de otra mquina, siguiendo un protocolo o
conjunto de reglas, para saber que existe una comunicacin entre capas homlogas o pares. Pero, es una
comunicacin virtual: en realidad, la capa n de un host, se comunica con la capa n-1, la inmediatamente
inferior, del mismo equipo, hasta que en algn momento, los datos se envan y alcanzan la capa n del
equipo de destino. De este modo se establece la comunicacin entre dos equipos.
Para comunicarse los niveles n y n-1 de un mismo host, se define un interface entre que especifica los
servicios que ofrece la capa n-1 a su superior. Como se ha explicado, un conjunto de capas y protocolos
constituye una arquitectura de red.
Puede entenderse la arquitectura de red como una memoria en que se explican las funciones y servicios
que ofrece cada nivel. De este modo, se enuncia el problema de la comunicacin y se indica al
implementador cmo o qu hacer, para que se puedan disear los programas, el hardware y dems.
La lista de protocolos de un sistema, con un protocolo por nivel se denomina pila de protocolos. Los
protocolos realizan una comunicacin virtual, de forma horizontal, mientras que la comunicacin en los
interfaces puede entenderse como una comunicacin real y vertical.
La abstraccin de procesos pares es bsica para todo el diseo de red. Consiste en dividir el problema en
partes ms pequeas. En las capas ms bajas, los protocolos pueden ser algoritmos complejos que se
instrumenten en hardware o firmware.
Entre las consideraciones de diseo para cada nivel, deben tenerse en cuenta aspectos como la
identificacin de equipos, reglas de transmisin, naturaleza del medio, canales lgicos, prioridades, etc. Los
elementos activos de cada nivel (elementos sw o hw), se llaman entidades. Las entidades homlogas en
cada host son entidades pares.

273
Como la entidad n da un servicio a la capa n+1, sta es el usuario y la capa n el proveedor. La capa n+1
accede al servicio de la capa n a travs de un punto de acceso al servicio o SAP, por sus siglas en ingls,
que se identifica con una direccin nica. Sea entonces un sistema que implementa un modelo de capas o
niveles. El emisor enviar informacin al receptor, de forma que si los datos son extensos, algn nivel
trocear esa informacin en paquetes.
Cada paquete debe numerarse para que el receptor pueda identificarlos y ordenarlos cuando lleguen todos.
Esa numeracin no es informacin pura, es informacin de control, de la misma forma que al escribir el
cdigo postal en una carta se da una informacin de control, que no tiene relacin con el mensaje.
Luego en cada nivel existen dos tipos de informacin, los datos y la informacin de control, que a partir de
ahora, se puede identificar con la palabra cabecera. Esto da lugar a la identificacin de distintos
elementos, que pueden verse en la figura.
Los datos de un determinado nivel se denominan PDU o Unidad de
datos del protocolo. Si se est hablando del nivel N, la PDU se
denomina N-PDU y se estructura en SDU y PCI, que por tratarse del
nivel N, otra vez, se denominan N-SDU y N-PCI.
La SDU o Unidad de Datos del Servicio son datos para la entidad
homloga del receptor y se usa para dar el servicio requerido por el
nivel superior.
La PCI o Informacin de Control del Protocolo es informacin de control del nivel. Para simplificar el
tratamiento, en general se habla de PDU. La otra entidad es la IDU o Unidad de Datos del Interface. Es la
informacin que el nivel superior entrega al nivel inferior. A nivel N, se denomina N-IDU. El nivel N entrega al
nivel N-1 la N-SDU y la N-ICI. La N-ICI es la Informacin de Control del Interface de nivel N, utilizada para el
control entre ese nivel y el inmediatamente inferior.
Estas son las definiciones de los estndares. La figura resume el proceso: un nivel trata con su IDU,
compuesta por datos, la SDU e informacin de control, ICI. La IDU entera se entrega al nivel inferior,
pasndose a denominar PDU, y el proceso se repite con el siguiente nivel inferior. La diferencia entre IDU y
PDU viene dada por el tratamiento de cada nivel. Puede decirse que la N-IDU es igual a la N-1-PDU.
El proceso de los datos y la adicin de informacin de control en cada nivel se denomina encapsulamiento.
Cuando la informacin llega al destino, cada nivel va eliminando la informacin de control y entregando al
nivel superior los datos. Se realiza el proceso inverso, lo que podra llamarse desencapsulado.
4. ESTNDARES
4.1. Modelo TCP/IP
El modelo TCP/IP pretende solucionar la comunicacin entre redes de distinta naturaleza o tecnologa. Este
problema se divide a su vez en dos. El primero, el enrutamiento, obtener la ruta que debe seguir la
informacin para llegar al destino. El segundo, el control de la comunicacin; garantizar (o no, segn el
criterio) que la informacin llega a destino y ordenarla si se recibe desordenada. Para estos propsitos
TCP/IP propone una arquitectura de red de cuatro niveles.
El primero, el De host a Red, Fsico o Subred, no se define en profundidad. Simplemente el modelo se
abstrae de la implementacin de subred sobre la que circule la informacin. El objetivo es dar conectividad a
redes de diferente tecnologa. En la subred, a nivel fsico, existirn tecnologas como ADSL, RDSI o FR, si
la subred es una WAN o Ethernet, WIFI, etc. si es una LAN.
El segundo nivel, el de Interred, define cmo implementar la comunicacin entre redes diferentes. Para
conectar distintas redes existirn equipos que implementen la tecnologa de su subred y el protocolo de
interred, en general IP. En este punto es donde queda claro por qu Internet, se llama Internet: recibe su
nombre del protocolo de interred IP, (internet en ingls).
El tercer nivel o De Transporte define en detalle los aspectos de control de la comunicacin, por ejemplo,
si el servicio debe confirmarse, solucionar las prdidas de informacin, reordenar los datos recibidos, etc.
En esta capa se definen dos tipos de servicio: orientado a conexin o no. Ejemplo es el servicio postal y sus
dos modos de envo de una carta: correo ordinario y certificado. El primero no garantiza ni confirma que la
carta llegue a destino, pero el servicio certificado lo garantiza y confirma.
De forma anloga, en las comunicaciones electrnicas existen servicios en los que no es rentable exigir
confirmacin, pero en otros s. De forma un tanto grosera, esta es la diferencia entre el protocolo de control
de la transmisin, TCP, que ofrece un servicio orientado a conexin, y el protocolo de datagrama de
usuario, UDP, que ofrece un servicio no orientado a conexin. El cuarto nivel o De Aplicacin, se abstrae
tambin de los aspectos relativos al usuario de la red. No explica cmo debe implementarse, por ejemplo un
programa o protocolo de correo electrnico.

274
4.2. Modelo OSI
El modelo OSI, al igual que TCP/IP, es un modelo abierto para la comunicacin, esto quiere decir que
puede ser utilizado por todo aquel que lo desee sin tener que pagar patentes por su uso. Representa un
esfuerzo de estandarizacin. Esta tambin es una de las razones del xito de Internet.
El modelo OSI, ms que una norma, representa una serie de
recomendaciones que suponen un recurso didctico importante y
pretende guiar los desarrollos que se realicen en el campo de las
redes. Su elegancia radica en la modularidad de la solucin: se
definen claramente las funciones y servicios de cada nivel y cmo
deben ser los interfaces entre ellos. De esta forma un cambio en un
nivel, no afectara a los contiguos si se siguen respetando los
interfaces.
Implementaciones del modelo OSI puro, probablemente no se
encuentren muchas. Su importancia estriba en la didctica de su
arquitectura, por eso se suele hablar de modelo de referencia OSI y
modelo de referencia TCP/IP. OSI define siete niveles en los que
estructura la comunicacin.
El primer nivel o Fsico define interfaces y caractersticas elctricas y mecnicas del medio de transmisin,
como conectores RJ-45, cables de par, etc. En esta capa un mensaje es una seal. El dispositivo de red
codifica y decodifica la seal. A este nivel se trata con bits. Equipos que trabajan a este nivel son los hubs.
El nivel 2, de Enlace de datos, describe el control y acceso a la subred, asegurando la transferencia fiable
de tramas entre equipos. La informacin binaria se transmite en un formato llamado trama que se especifica
en el protocolo de subred con que opera la NIC. Equipos que trabajan a este nivel: switches.
La capa 3, de Red, administra el enrutamiento de datos. Los protocolos de esta capa deben encontrar el
dispositivo destino. Ejemplos son IP, IPX y Apple Talk. La capa 3 aade informacin de control, la cabecera
de nivel 3, a los datos constituyendo un paquete o datagrama. Equipos de nivel 3 son los routers.
La capa 4, de Transporte asegura si los datos alcanzan su destino ntegros y en orden correcto, o si se
oferta un servicio no orientado a conexin, como se ha explicado. Protocolos de esta capa: TCP y UDP.
Dispositivos que trabajan en esta capa: Cortafuegos (firewalls).
La capa 5, o de Sesin establece y termina las conexiones. Ordena las sesiones entre dos equipos.
Ejemplos de protocolos de capa de sesin son la llamada de procedimiento remoto (RPC), el protocolo
ligero de acceso al directorio (LDAP) o NetBIOS.
El sexto nivel o capa de Presentacin formatea los datos para presentarlos en pantalla o imprimirlos.
Ejemplos de la capa de presentacin son el protocolo ligero de presentacin (LPP).
El ltimo nivel, la capa 7, o de Aplicacin, especifica los protocolos que utilizan la red. Algunos ejemplos
de los protocolos de aplicacin de red son el Simple Mail Transfer Protocol (SMTP), de correo electrnico.
La ISO especifica protocolos para cada nivel, pero su uso es arbitrario por parte del usuario. El desarrollo de
un protocolo no siempre se adapta a las capas del estndar, sino que puede cubrir partes de varias capas.
TCP/IP implementa protocolos particulares que se definen de forma general en el modelo OSI. En TCP/IP,
el nivel fsico y el de aplicacin, son ms abstractos, mientras OSI los define con ms detalle.
En la literatura tcnica y abusando de lenguaje, a veces se hace referencia a niveles OSI como TCP/IP. Lo
importante es tener en cuenta el contexto, forma que si se habla de nivel fsico, enlace o subred, se referir
a lo mismo, probablemente. A continuacin se trata en detalle cada nivel y con la finalidad de facilitar su
estudio se presenta por capas TCP/IP diferenciando en los niveles fsico y de aplicacin las capas OSI.

275
TEMA 63. FUNCIONES Y SERVICIOS DEL NIVEL FSICO. TIPOS Y MEDIOS DE TRANSMISIN.
ADAPTACIN AL MEDIO DE TRANSMISIN. LIMITACIONES A LA TRANSMISIN. ESTNDARES.

1. INTRODUCCIN
2. FUNCIONES Y SERVICIOS DEL NIVEL FSICO
3. TIPOS Y MEDIOS DE TRANSMISIN
3.1. Tipos de Transmisin
3.1.1. Transmisin Analgica
3.1.2. Transmisin Digital
3.2. Medios de Transmisin
3.2.1. Medios de Transmisin Guiados
3.2.1.1. Par Trenzado
3.2.1.2. Coaxial
3.2.1.3. Fibra ptica
3.2.2. Medios de Transmisin No Guiados
3.2.2.1. Microondas
3.2.2.2. Satlite
3.2.2.3. Infrarrojos
4. ADAPTACIN AL MEDIO DE TRANSMISIN
4.1 Modulaciones analgicas
4.1.1. AM
4.1.2. FM
4.1.3. PM
4.2 Modulaciones digitales
4.2.1. ASK
4.2.2. PSK
4.2.3. FSK
5. LIMITACIONES A LA TRANSMISIN
5.1 Transmisin analgica
5.2 Transmisin digital
6. ESTNDARES

276
1. INTRODUCCIN
Debe conocerse el proceso de la transmisin de datos dado que es la base sobre la que descansa la
tecnologa, protocolos y la comunicacin en una red.
2. FUNCIONES Y SERVICIOS DEL NIVEL FSICO
El nivel Fsico del modelo de arquitectura de comunicaciones OSI engloba la definicin de aspectos de la
comunicacin como los interfaces y caractersticas elctricas y mecnicas del medio de transmisin. Por
ejemplo, los conectores RJ-45, cables de par, etc. A este nivel, un mensaje es una seal. Es decir, no se
habla de informacin, sino de smbolos. A este nivel se trata con bits. El dispositivo de red a nivel fsico
codifica y decodifica la seal. Equipos que trabajan a este nivel son los hubs.
Las funciones del nivel fsico se resumen en transmitir. Pero esto incluye la definicin de los interfaces de
acceso al medio de transmisin, la codificacin de canal, sincronizar y modular las seales.
En cuanto a los servicios que ofrece son la modulacin, control de flujo, control de la multiplexin, modo de
transmisin o ecualizacin, por citar los ms comunes. Debido a la diversidad de medios y topologas, las
funciones y servicios pueden variar o no aplicarse a todas las formas de comunicacin.
Por tanto, lo primero es diferenciar entre la idea de transmisin y comunicacin. Transmisin es el proceso
de transporte de seales de un lugar a otro. Comunicacin es el transporte de informacin. Las seales son
entidades de naturaleza fsica usadas para representar informacin. Las habituales son electromagnticas
como la luz o seales elctricas (corriente, tensin). Las seales no establecen una comunicacin. En un
sistema puede haber transmisin, pero no comunicacin.
En la transmisin existen varios actores. El esquema fundamental de transmisin est compuesto por tres
elementos: Emisor, Medio de Transmisin y Receptor.
El emisor es el ente que origina la
informacin a transmitir. Como origen de
la transmisin se encarga de entregar y
adaptar la informacin al medio de
transmisin.
Ejemplos de emisores son cualquier terminal que ofrece el interfaz necesario para adaptar la informacin al
medio y transmitirla, como un PC, un telfono, etc. El receptor es el ente que recibe las seales
transmitidas. Es el destino de las seales y de la informacin. Debe interpretar las seales y presentarlas de
forma legible. El medio de transmisin es el medio fsico por el que se propagan las seales transmitidas. La
naturaleza del medio de transmisin debe ser tal que permita el transporte de las seales que se utilizan.
Otros dos conceptos no reflejados en la figura son la codificacin de canal y el mensaje. La primera es el
convenio usado por emisor y receptor para obtener la inteligibilidad en la comunicacin (el alfabeto usado).
El mensaje es la informacin que se transmite. El proceso de transmisin viene limitado por unas normas de
dilogo. Estas normas definen protocolos de comunicacin, que tienen en cuenta y solucionan los aspectos
de la transmisin. Los cdigos de redundancia en la informacin transmitida son informacin adicional que
se aade para corregir o detectar errores producidos en la transmisin para evitar retransmisiones.
Al estudiar los sistemas de transmisin, se procede a clasificarlos. El criterio de clasificacin suele ser su
direccin, el soporte que ofrecen a la direccin y la tcnica utilizada en la transmisin.
Direccin. En funcin de la direccin de la transmisin los sistemas se clasifican en dplex, semidplex y
smplex. Uno dplex es el que permite la transmisin simultnea en ambos sentidos. El ejemplo tpico es el
telfono. Un sistema semidplex permite la transmisin de forma alterna en ambos sentidos (walkie-talkie:
permite comunicacin en ambos sentidos, pero no a la vez). Un sistema smplex permite la transmisin en
un nico sentido. Por ejemplo la radio y la TV.
Soporte. Segn el soporte a la transmisin bidireccional los sistemas se clasifican en a dos hilos, a cuatro
hilos o a cuatro hilos equivalentes. Los sistemas a dos hilos son en los que el mismo medio fsico da soporte
a los dos sentidos de transmisin y ocupan el mismo rango de frecuencias. Los sistemas a cuatro hilos
poseen soportes fsicos diferentes para cada sentido de transmisin, usan pares de hilos diferentes. Los
sistemas a cuatro hilos equivalentes usan el mismo soporte fsico pero distinto rango de frecuencias.
Tcnica. Se diferencian sistemas analgicos y digitales. Los primeros usan seales de informacin
analgica, las que pueden varan de forma continua. Presentan limitaciones de distorsin, ruido, diafona y
variacin de nivel. La transmisin es ms complicada que en los sistemas digitales y ofrecen menor control.
Los sistemas digitales utilizan seales de informacin que slo toman determinados valores discretos, como
por ejemplo 0 o 5 V. Ofrecen las ventajas de ser independientes de la fuente de informacin, no acumular
degradaciones (la seal puede regenerarse), presentar un adecuado tratamiento matemtico y fsico
(electrnica digital) y un ahorro econmico elevado con respecto a sistemas analgicos.

277
3. TIPOS Y MEDIOS DE TRANSMISIN
El medio de transmisin es el ente fsico usado para enviar seales en un sistema de comunicacin. Los
medios de transmisin se pueden dividir en guiados (artificiales fabricados con algn material) y no guiados,
medios libres que permiten la propagacin de las seales a transmitir. En general los medios no guiados
son ms lentos que los guiados, pero presentan la ventaja de requerir una infraestructura menor.
La transmisin de datos diferencia dos tipos, en funcin de la tcnica: la transmisin analgica y la digital.
La primera usa seales continuas y la digital seales que codifican la informacin con valores discretos.
La transmisin digital presenta ventajas frente a la analgica. La ms importante quiz sea el apropiado
tratamiento matemtico de la informacin y su soporte fsico. El lgebra binaria ofrece una gran potencia al
poder ser implementado en circuitos de silicio que incrementan el rendimiento. Los sistemas digitales son
ms robustos frente a ruido, permiten aprovechar mejor el canal entre distintos usuarios (multiplexacin) e
independizan los equipos del tipo de seal que se procese.
3.1. Tipos de Transmisin
3.1.1. Transmisin Analgica
El esquema de comunicacin general visto debe ampliarse para estudiar la transmisin analgica. Una red
analgica estar formada por un nmero, en principio grande de nodos de trnsito.
En telefona estos nodos suelen llamarse
centrales de conmutacin. El modelo es
vlido para distintas tecnologas,
particularizndolo para la que se trate en
cada momento. El esquema podra ser el
presentado en la figura.
Los nodos locales proporcionan el acceso de los usuarios a la red. Los nodos de trnsito amplifican las
seales para compensar las prdidas de potencia en transmisin. Esta funcin puede ser nica
(amplificador) o aadir en el nodo de trnsito funciones propias del control de la comunicacin.
Los sistemas de transmisin analgica estn sometidos a tres tipos de degradaciones de la seal;
atenuacin, retardo y perturbaciones. La atenuacin es la prdida de potencia de la seal en su
propagacin. Depende del medio de transmisin. El retardo es el tiempo que emplea la seal en llegar al
receptor. Las perturbaciones son todos los factores a parte de retardo y atenuacin, que contribuyen a la
degradacin o modificacin de la seal emitida.
3.1.2. Transmisin Digital
En transmisin digital, el esquema de
comunicacin vara algo con respecto al
modelo analgico, debido a la adaptacin a
realizar con las seales. El esquema quedara
como se muestra en la figura.
Es similar al modelo analgico, variando la estructura interna de emisor, receptor y los nodos de trnsito.
Las ventajas de la transmisin digital se pagan en complejidad. Se aaden nuevos componentes:
conversores analgicos digitales (CAD) y digitales analgicos (CDA), los codificadores/decodificadores de
canal y de fuente y los moduladores/demoduladores digitales. Los CAD obtienen una seal digital a partir de
una analgica. Para ello implementan las funciones de muestreo, cuantificacin y codificacin. Los CDA
reconstruyen una seal analgica a partir de una digital usando mdulos de interpolacin, filtrado o
reconstruccin y decodificacin.
Los codificadores y decodificadores de canal obtienen la seal digital y la aaden informacin redundante
para evitar errores de transmisin. Los moduladores digitales adaptan la seal fsicamente al medio para su
transmisin y los demoduladores la recuperan para su posterior interpretacin.
En los nodos de trnsito se incluyen dos funciones: Por una parte, hay una funcin de inteligencia de red,
que puede tratar aspectos como el enrutamiento. Y el aspecto ms fsico, de transmisin pura, referido a la
regeneracin de la seal.
3.2. Medios de Transmisin
3.2.1. Medios de Transmisin Guiados
Los medios de transmisin guiados son aquellos que se disponen para que sirvan de va a las seales a
transmitir. Requieren un proceso de fabricacin e instalacin. Las seales transmitidas viajan confinadas en
el medio, en general un cable. Se distinguen tres grandes tipos: cable de par trenzado, coaxial y fibra ptica.

278
3.2.1.1. Par Trenzado
Es el cable ms usado en redes LAN. Su xito se debe a su relativo bajo precio y altas prestaciones.
Consiste en dos cables de cobre girados sobre s (trenzados) para disminuir el nivel de interferencias.
Los pares de cables de cobre trenzado suelen presentarse
agregados en dos o cuatro pares. Los de dos pares, cuatro
cables, se usan para telefona mientras que los de ocho cables,
cuatro pares se utilizan para transmisin de datos.
El cable tpico de red contiene ocho pares de cobre y existen dos clases: UTP y STP. UTP (Unshielded
Twisted Pair) es un par trenzado no apantallado. STP, Shielded Twisted Pair, es par trenzado apantallado.
La diferencia est en que el cable STP incluye un recubrimiento metlico que se dispone entre la cubierta
plstica externa y abraza los cuatro pares. Esto se hace para evitar perturbaciones externas, logrando un
alcance mayor a costa de un incremento del precio y una cierta complejidad en la instalacin.
La longitud del trenzado se denomina paso, o paso de torsin. Cuanto menos paso, es decir ms trenzado,
ms material se utiliza y el cable se hace ms caro, pero por resiste mejor las perturbaciones. Las
caractersticas de fabricacin de los cables definen su calidad, sus propiedades y su precio. Por ello se
clasifican en distintas categoras, que se listan en la siguiente tabla.
Categora Caractersticas
1 UTP de calidad de voz no adecuado para datos. Velocidad de transmisin inferior a 1 Mbps
2 UTP de velocidad de transmisin hasta 4 Mbps. Fue usado en redes Token Ring
3 Transmisin a 10 Mbps. Es el mnimo para redes Ethernet 10BaseT
4 Transmisin hasta 16 Mbps. Usado en redes Token Ring
5e 5 enchanced. Descrita en la norma TIA/EIA-568-B. Soporta FastEthernet y GigaEthernet
6 Norma TIA/EIA-568-B, para redes GigaEthernet y frecuencias hasta 250 MHz
7 Para redes 10 GigaEthernet y frecuencias de hasta 600 MHz
El cable ms extendido es el de categora 5e, que progresivamente va sustituyndose por el de categora 6.
Para el despliegue de redes GigaEthernet se recomienda el cable de categora 6.
Las redes Ethernet distinguen tres variantes en funcin de la tasa de transmisin: Ethernet, hasta 10 Mbps,
FastEthernet, hasta 100 Mbps y GigaEthernet, hasta 1000 Mbps. Ethernet y FastEthernet usan slo cuatro
de los ocho cables que componen el cable UTP. De esos cuatro, dos se usan para transmisin y dos para
recepcin. GigaEthernet usa los ocho cables. Las caractersticas cuantitativas de los cables de pares
pueden resumirse en un alcance mximo del entorno de los 100 metros; mxima atenuacin permitida para
un cable de categora 5 en torno a 20 dB e impedancia caracterstica 100 .
3.2.1.2. Coaxial
Es un cable compuesto por dos conductores concntricos separados por un dielctrico,
un material aislante. Se suele llamar tubo al conjunto de los dos conductores y el
dielctrico. El conjunto, como en todo cable, se recubre de una cubierta plstica para su
proteccin. El conductor interno suele ser slido y la corona externa una malla metlica.
Posee el aspecto de la figura. Es el cable tpico de antena utilizado en la TV domstica.
La corona o malla metlica exterior sirve como proteccin frente a interferencias y para la propagacin del
campo electromagntico portador de informacin. La distancia que puede cubrir sin amplificadores el cable
coaxial es mayor que la del par pero es ms caro. El coaxial slo se suele usar en distancias cortas debido
a que el cable de pares es ms flexible y la fibra ptica presenta mucha menor atenuacin.
Se puede encontrar instalado en TV, telefona a larga distancia (cada vez menos, por lo comentado),
conexin de perifricos a corta distancia, etc. En cuanto a caractersticas fsicas a tener como referencia se
citan: Dimetro interior entre 0,7 y 2,6 mm. Dimetro exterior entre 2,9 y 9,5 mm. Atenuacin entre 2 y 9 dB
e impedancia caracterstica en torno a 75 .
3.2.1.3. Fibra ptica
Es un cable realizado con slice, fibra de vidrio o
plstico. Su estructura es la de dos dielctricos
concntricos, el interior llamado ncleo y el exterior,
en contacto con el ncleo, llamado revestimiento. La
fibra ptica est diseada para conducir luz.

279
La fabricacin es tal que el ndice de refraccin del ncleo es mayor que la del revestimiento. Esto hace que
el revestimiento acte como espejo con relacin al ncleo, confinando la luz en el ncleo. El cable se
protege con una funda externa de plstico, la cubierta. La luz transmitida no se afecta por interferencias
electromagnticas, lo que ofrece baja atenuacin y gran alcance, haciendo la fibra ideal para grandes
distancias. Otras ventajas son una baja tasa de error de transmisin, bajo peso y pequeas dimensiones.
En general, se montan mazos o mangueras de fibras con un ncleo metlico que sirve de proteccin y
soporte frente a tensiones mecnicas. Entre sus desventajas se puede citar el precio y una mayor dificultad
de soldadura y conexin.
Se distinguen dos tipos de fibras pticas: Monomodo y multimodo. Las monomodo, por fabricacin y las
frecuencias de trabajo, propagan nicamente un modo, es decir un campo electromagntico, en forma de
luz, de frecuencia nica. Esto se consigue haciendo una fibra con un ncleo de radio reducido y una
diferencia entre ndices de refraccin de ncleo y revestimiento pequea. Las fibras monomodo consiguen
una tasa de transmisin muy elevada, del orden de los Gbps.
Las fibras multimodo propagan varios modos, campos de diferentes frecuencias. Los modos, o colores de
luz, recorren la fibra en tiempos diferentes. Esto se traduce en interferencias entre impulsos, que reduce la
tasa de transmisin, pero son ms baratas que las fibras monomodo.
Parmetros pticos de las fibras son el perfil del ndice de refraccin y la apertura numrica. El primero se
refiere a cmo vara el i.r. del ncleo de la fibra. Si no vara, se dice que es de salto de ndice o fibra de
ndice escalonado. Es decir, el i.r. del ncleo y el del revestimiento tienen una diferencia fija. Si el ncleo de
la fibra se fabrica de forma que su i.r. vara del centro hasta el revestimiento la fibra es de ndice gradual,
ms caras y de mayor alcance, ya que el ndice gradual iguala los tiempos de propagacin de los modos.
La apertura numrica de una fibra indica la cantidad de energa capaz de aceptar. Depende del ngulo de
aceptacin, o mximo ngulo con que se puede iluminar la fibra para que exista transmisin. En una fibra de
ndice gradual es menor a la de una fibra de salto de ndice, es decir, que stas ltimas pueden transportar
ms energa (aunque a menor velocidad). Resumiendo, en las fibras de salto de ndice la velocidad de
propagacin es constante. La dispersin modal slo se da en fibra multimodo. Las fibras de ndice gradual
slo tienen sentido si son multimodo y reducen la dispersin modal, aumentando el ancho de banda.
La prdida de potencia ptica en la fibra se conoce como atenuacin y se debe a la naturaleza del material,
impurezas microscpicas y defectos de fabricacin. Puede considerarse una atenuacin constante en el
rango de trabajo, pero la atenuacin vara a lo largo del espectro. Existen ciertas frecuencias de trabajo a
las que la atenuacin es menor. Se habla entonces de ventanas de trabajo.
Por razones histricas se trabaja con longitudes de onda referidas al vaco, en vez de frecuencias. Se
identifican tres ventanas de trabajo para las fibras, de valores de referencia 850, 1300 y 1550 nm, para la
primera, segunda y tercera ventanas respectivamente. En la primera se usan fibras multimodo, en la
segunda multimodo y monomodo y en la tercera slo monomodo.
Las fibras monomodo se usan para larga distancia, las multimodo de ndice gradual en redes LAN y las
multimodo de salto de ndice suelen usarse en distancias cortas y de bajo coste. Los emisores de luz
usados son LED, baratos y de vida media larga y emisores ILD, ms caros y de mayor tasa de transmisin.
3.2.2. Medios de Transmisin No Guiados
Los medios no guiados no proveen un medio artificial para el guiado de las seales. La forma de trabajo es
la radiacin de energa electromagntica con una antena emisora y otra receptora. Se distinguen dos modos
de radiacin, direccional y omnidireccional. La direccional concentra ms energa radiada en una direccin.
Esto implica que emisor y receptor deben alinearse. A mayor frecuencia de trabajo ms fcil es la
transmisin direccional. Si la radiacin es omnidireccional, la energa se emite a todas direcciones por igual.
No existen antenas puramente omnidireccionales, pero la aproximacin es buena.
La transmisin de HF (onda corta), situada en el espectro entre los 3 y los 30 MHz, se usa para servicios
globales (posicionamiento martimo, radiodifusin, etc.), ya que permite comunicaciones a grandes
distancias con relativa poca potencia. Para la comunicacin de datos y sistemas en red tpicos, la
transmisin suele usar bandas de frecuencia relativamente altas. Por ello, en funcin de sus caractersticas
e importancia pueden distinguirse tres tipos de transmisin no guiada: microondas, satlite e infrarrojos.
3.2.2.1. Microondas
3
La transmisin por microondas abarca un rango de frecuencias entre los 3 y los 300 GHz (estndar IE 100
e IEC 60050). Las bandas inferiores, del entorno de los 2.5 GHz se usan para cortas distancias y existen
bandas de uso libre. Las utilizan tecnologas como Bluetooth o WIFI. A frecuencias ms elevadas, tpicas de
12, 18 y 23 GHz, se habla de radioenlaces con alcances de larga distancia (40-50 km) que usan antenas
parablicas. Estos enlaces sustituyen a los cables cuando el tendido de infraestructura es complicado.
Aplicaciones tpicas son la transmisin de TV, datos y voz.

280
La transmisin por microondas se ve afectada por la atenuacin, que depende de varios factores, el primero
la distancia (la seal pierde potencia con el cuadrado de la distancia), la lluvia y las interferencias con otros
sistemas, para lo que cada pas establece su regulacin y licencias de uso. Si se desea limitar el efecto de
la atenuacin en zonas de lluvias abundantes, deben utilizarse frecuencias menores a 10 GHz.
3.2.2.2. Satlite
La transmisin satlite utiliza microondas en el rango de 2 a 50 GHz. Las diferencias entre satlite y
microondas son que el satlite ilumina una zona de la tierra y por tanto da cobertura en un rea extensa y
por otro lado, las limitaciones del satlite, que para evitar interferencias, debe usar dos frecuencias una para
el enlace de subida y otra para el de bajada. El retardo de propagacin de la seal, debido a la distancia,
deja de ser despreciable, obligando a establecer un control del flujo de la seal, correccin de errores, etc.
Los usos tpicos del satlite son difusin de TV, redes privadas y militares, etc.
3.2.2.3. Infrarrojos
El infrarrojo es una radiacin aproximando, de entre 300 GHz y 300 THz. La transmisin se realiza con lser
que puede lograr alcances de 15 km, aunque su uso ms extendido es en aplicaciones de corta distancia
(~3 km) donde la instalacin de cableado sea compleja. (Tasa de transmisin tpica 1.5 Mbps).
Los infrarrojos son reflejados por superficies y no atraviesan cuerpos opacos. Emisor y receptor deben estar
alineados o en lnea tras una trayectoria reflejada. Emisor tpico para tasas de hasta 10 Mbps es el LED y
para tasas superiores diodos lser. Los receptores son fotodetectores que generan una tensin en funcin
de la iluminacin que reciben. La utilizacin de infrarrojo tambin es libre y no son necesarias licencias.
4. ADAPTACIN AL MEDIO DE TRANSMISIN
La adaptacin al medio de transmisin usa distintas tcnicas que varan en funcin del tipo de transmisin,
analgica o digital. Consiste en usar una seal como vehculo para el transporte, la seal portadora, que es
modificada por otra seal, la informacin. La modificacin se denomina modulacin. La seal portadora
ofrece ms facilidad de transmisin que la seal de informacin sola. La seal informacin viaja de manera
implcita en la portadora, variando alguna de sus propiedades.
4.1 Modulaciones analgicas
4.1.1. AM
AM significa Amplitud Modulada. Consiste en multiplicar la seal portadora
por la seal informacin directamente y sumar al resultado otra vez la seal
portadora. El desarrollo matemtico muestra cmo la amplitud de la seal
portadora va cambiando, de forma que su envolvente va dibujando la forma
de la seal informacin, como en el dibujo.
La suma de la seal portadora se hace para facilitar la recepcin, pero merma la eficiencia de potencia, es
decir, de toda la potencia enviada se utiliza poca para la informacin, que ronda el 25%. Variantes de la
modulacin AM son DBL y BLU. DBL o doble banda lateral consiste en eliminar o reducir el envo de
portadora para incrementar la eficiencia de potencia. BLU, o banda lateral nica consiste en enviar slo la
informacin, con lo que tambin mejora la eficiencia. En ambos casos el receptor es ms complejo.
4.1.2. FM
FM significa Frecuencia Modulada. Consiste en modificar la frecuencia de la seal portadora con la seal
informacin, de manera que el receptor, al detectar esos cambios en la frecuencia, identifique la seal de
informacin enviada. FM ofrece mayor eficiencia de potencia y espectral que AM. Se ve menos afectada por
interferencias y perturbaciones externas. Los mtodos ms extendidos para modulacin y demodulacin de
FM son los PLLs, lazos enganchados en fase, circuitos integrados que estabilizan la seal.
4.1.3. PM
PM significa Phase Modulation, por sus siglas inglesas, o modulacin de fase. Es similar a FM, salvo que
ahora el parmetro que se modula es la fase de la seal portadora. PM se utiliza menos que FM por
precisar receptores ms complejos.
4.2 Modulaciones digitales
4.2.1. ASK
ASK o Amplitude Shift Keying (clave en desplazamiento de amplitud), bsicamente es una modulacin AM
en la que la seal de informacin es digital. Por tanto, si se enva un bit 1, se transmitir la seal portadora y
si se transmite un bit 0, no se transmitir seal.

281
La modulacin puede realizarse con una AM sobre NRZ (cdigo binario de no retorno a cero) y la
demodulacin, es la misma que AM o detector de envolvente. Un parmetro caracterstico de ASK es la
relacin ON/OFF, o diferencia en dBs entre la potencia emitida al enviar un 1 y un 0.
4.2.2. PSK
PSK o Phase Shift Keying (clave en desplazamiento de fase), es una modulacin que utiliza una misma
frecuencia y un conjunto de valores discretos de la fase para representar los dgitos binarios. PSK puede
hacerse como una modulacin DBL sobre NRZ y la demodulacin ha de ser coherente. Parmetro
caracterstico es el rechazo de portadora, o relacin entre la potencia de portadora y la de seal, expresada,
generalmente en dB.
La diferencia con PM es que en PM la variacin de la fase es continua y en PSK discreta. El nmero de
posibles valores de la fase, es el nmero de smbolos de la modulacin. Cada smbolo puede transmitir la
informacin de uno o varios bits. QAM o Quadrature Amplitud Modulation puede entenderse como una
modulacin PSK consistente en un conjunto de seales posibles, la constelacin, diferenciadas por la fase y
amplitud empleada.
4.2.3. FSK
FSK o Frecuency Shift Keying (clave en desplazamiento de frecuencia), es una modulacin que utiliza
distintas frecuencias para representar los smbolos del sistema. Si se utilizan cuatro frecuencias, existirn
cuatro smbolos en el sistema, y por tanto cada smbolo podr representar una informacin de dos bits. La
primera frecuencia representar, por ejemplo, los bits 00, la segunda los bits 01, la tercera 10 y la cuarta 11.
La modulacin puede hacerse con conmutadores o con FM atacado con NRZ. La demodulacin puede ser
coherente o no coherente (filtro adaptado o filtro y detector).
5. LIMITACIONES A LA TRANSMISIN
Todo sistema de transmisin se ve sometido a limitaciones. Se distinguen tres tipos de limitaciones
consecuencia de la degradacin de la seal: la atenuacin, el retardo y las perturbaciones. El retardo no se
puede combatir. Se precisa un tiempo en cubrir una distancia. Los receptores lo tienen en cuenta y es
compensado trasladando la referencia temporal. La atenuacin se compensa reproduciendo la seal con
ms energa. Las perturbaciones son complejas de modelar y obligan a caracterizar el medio de transmisin
para compensarlas. Tambin dependen del tipo de transmisin, analgica o digital.
5.1 Transmisin analgica
Las perturbaciones a que hacer frente en una transmisin analgica pueden clasificarse en:
Distorsin. Es producida por el sistema de transmisin. Puede ser lineal o no lineal.
Diafona. Perturbacin producida por sistemas prximos o el mismo sistema.
Interferencia. Perturbacin de sistemas lejanos.
Ruido. Resto de perturbaciones aleatorias. Puede ser interno o externo.
La distorsin lineal, cuando sea caracterizable, no supone un gran problema, dado que la seal
distorsionada y la original seguirn una relacin proporcional y por tanto podr compensarse. La distorsin
no lineal es ms difcil de combatir.
La diafona es la perturbacin producida por el sistema de transmisin o sistemas cercanos. Es
caracterstico de las lneas de transmisin metlicas. Ejemplo tpico en los sistemas de telefona clsicos era
el caso en que al descolgar el telfono se escuchaba la conversacin de un vecino. Las interferencias
perturban el sistema con seales lejanas, en general artificiales. Ejemplo es la escucha de alguna emisora
de AM al descolgar el telfono.
El ruido es cualquier seal aleatoria, que no entre en la clasificacin anterior. Pueden distinguirse dos tipos,
el interno, originado por los componentes del sistema y el externo originado en el exterior. El ruido interno
se puede clasificar en ruido trmico (o Johnson), generado por el movimiento de los tomos de los
materiales al tener una temperatura distinta al cero absoluto y el ruido de granalla, generado por las
corrientes aleatorias de los electrones en el material. El ruido externo puede clasificarse segn su origen en
ruido atmosfrico (tormentas), galctico (energa del sol y planetas) e industrial. La caracterizacin de las
perturbaciones a que se hacen frente puede expresarse con la relacin seal a ruido, S/N o SNR (signal-
noise relation), que es la relacin de potencias existente entre la seal transmitida y el ruido aadido en la
transmisin. Suele expresarse en dB.
5.2 Transmisin digital

282
Si en los sistemas de transmisin analgica el parmetro de calidad es la SNR, en los sistemas digitales el
parmetro utilizado es la probabilidad de error.
Otro parmetro importante en transmisin digital es la IES o Interferencia Entre Smbolos, que se puede
entender como el problema derivado de interpretar errneamente en recepcin un smbolo. Para evitarlo se
recurre a tcnicas como el filtrado discreto o el envo de ms potencia, lo que aumenta la diferencia de
potencia entre smbolos, de forma que el ruido necesario para que se produzca un error es mayor y por
tanto el sistema se ve menos afectado.
Al final, la transmisin digital consigue una mayor robustez frente a perturbaciones, mejor rendimiento y
flexibilidad del canal de transmisin e independiza el canal de la fuente de seal, ya que video, voz o datos,
en lo referente a transmisin se tratan de igual manera. Lgicamente se necesitar ms capacidad para
gran cantidad de informacin como pueda ser el caso del video.
6. ESTNDARES
Los estndares que cubre el nivel fsico son numerosos y a lo largo de los siguientes temas se irn
desgranando. Sin embargo, estos estndares si deben situarse en su contexto. As, estndares fsicos hay
de conectores, de transmisin, de red local o extensa, etc. Por citar algunos, se tendran:
Estndares fsicos de conexin: FDDI, RS-232, V.35 (lneas serie), V.92 (modems).
Estndares fsicos de transmisin: RDSI, xDSL, DSL, T1, IrDA.
Estndares fsicos de acceso WAN: X.25, Frame Relay, ATM, MPLS.
Estndares fsicos de acceso LAN: IEEE 802.3 (Ethernet), IEEE 802.5 (Token Ring), IEEE 802.11 (WIFI).
Hay que tener en cuenta, que por ejemplo, Ethernet no es un estndar slo referido al nivel fsico. Se
nombra el estndar, entendiendo que existe una parte dedicada a la descripcin de los aspectos que cubre
el nivel fsico, como en el resto de estndares de referencia.

283
TEMA 64. FUNCIONES Y SERVICIOS DEL NIVEL DE ENLACE. TCNICAS. PROTOCOLOS.

1. INTRODUCCIN
2. FUNCIONES Y SERVICIOS DEL NIVEL DE ENLACE
3. TCNICAS
4. PROTOCOLOS

284
1. INTRODUCCIN
El segundo nivel del modelo OSI es el nivel de enlace o enlace de datos. Tambin puede usarse el trmino
subred y separar esa idea del tercer nivel de red o interred, como se hace en el modelo TCP/IP. Su funcin
es proveer un servicio de comunicacin fiable y eficiente entre equipos directamente conectados, es decir
que estn unidos por un cable o radioenlace.
En la exposicin del nivel fsico no se ha presentado el concepto de SAP, o acrnimo ingls de punto de
acceso al servicio. Se hace referencia a l en la exposicin de las arquitecturas de comunicacin, en la
figura de la relacin entre niveles. Esto es debido a que representa un interfaz, por tanto, a nivel fsico, el
interfaz es con el nivel de enlace y por eso, se introduce aqu.
El SAP es un punto conceptual, entre dos niveles de un modelo, a travs del cual un nivel accede al servicio
del nivel inferior. Su implementacin se hace con un identificador de SAP, que a nivel de red recibe el
nombre de NSAP, Network SAP, a nivel de transporte TSAP, etc. En funcin del contexto en el que se
hable, el nivel queda asumido y por tanto, en general, se habla slo de SAP.
El SAP es fundamental para estudiar las funciones y servicios de cada nivel. En general se habla de SAP en
formas de direcciones de red, no explcitamente. Por ejemplo, el nmero de acceso al servicio telefnico, es
un nmero de telfono habitual. Pero no se solicita el SAP telefnico, se solicita un nmero de telfono.
2. FUNCIONES Y SERVICIOS DEL NIVEL DE ENLACE
A nivel de enlace, la informacin que se transmite se agrupa en un paquete de datos llamado trama (frame).
En principio, los bits transmitidos por la capa fsica llegan en orden al receptor, pero pueden darse errores
de transmisin. Para evitarlos, la capa de enlace realiza las funciones de control de la transmisin, como la
capa de transporte, pero a nivel ms bajo.
As, entre las funciones del nivel de enlace se distinguen el control de la transmisin (su inicio, identificacin
y fin), la segmentacin y sincronizacin de la informacin y el control de errores. El nivel de enlace adems
debe descartar tramas que aparezcan duplicadas y negociar el control de flujo para compensar diferencias
de tasas de transmisin entre sistemas.
En cuanto a los servicios, la subred puede ofrecer un servicio de tres tipos: Orientado a conexin con acuse
de recibo y no orientado a conexin, con o sin acuse de recibo. Un servicio orientado a conexin establece
un procedimiento para iniciar la transmisin. Un servicio con acuse de recibo certifica que los datos han
llegado correctamente.
Si el servicio es orientado a conexin y con acuse de recibo, se necesita ms proceso de datos, lo que hace
la comunicacin ms lenta, pero ms fiable. Si el medio de transmisin posee calidad, es preferible un
servicio sin acuse de recibo, no orientado a conexin, dejando el control a capas superiores.
3. TCNICAS
Para implementar funciones y servicios, se programan los dispositivos, con su lgica correspondiente. Por
ejemplo, para iniciar, identificar y finalizar una transmisin, se suelen intercambiar tramas de control que al
recibirse, sirven de instruccin al dispositivo.
La segmentacin de la informacin se da cuando el tamao de la informacin a transmitir es mayor que la
mxima unidad de datos permitida por el protocolo utilizado. Las tcnicas son diversas, pero tambin
obligan a llevar un control de la posicin de la trama en el futuro mensaje reconstruido.
La sincronizacin es necesaria en cuanto que el receptor debe conocer a partir de qu bit empezar a
interpretar la informacin. Una tcnica muy usada y fcil de entender es el uso de tramas de sincronismo y
campos de delimitacin de trama. Para evitar la posible coincidencia en el contenido de la informacin con
lo que pudiera interpretarse como un campo o trama de sealizacin, se usan tcnicas como el bit stuffing,
o insercin de bit, que consiste en la insercin de un bit, precisamente para evitar esta situacin.
El control de flujo surge de la necesidad de adaptar la velocidad de transmisin entre emisor y receptor.
Aunque suele negociarse a nivel de transporte, el nivel de enlace tambin suele implementarlo con
mensajes de control, retroalimentacin, y suele asociarse al control de errores.
La deteccin y correccin de errores se suele implementar aadiendo informacin redundante, en general
cdigos CRC o cdigos de redundancia cclica y de paridad. Se basan en matemtica discreta como los
cdigos de Hamming o Reed-Solomon.
La deteccin de errores emplea tcnicas en general denominadas FEC, que es el acrnimo ingls de
correccin de errores anticipada, y se orientan a indicar si se ha dado un error de transmisin en una trama.
Para ello se aade informacin redundante con algn criterio de clculo, por ejemplo, si una trama contiene
un nmero par de unos, se inserta un 0 y si es impar, se inserta un 1. As si se produce un error en un bit
transmitido, este criterio de paridad no se cumplir y se sabr que existe un error. Se habr detectado.

285
Los cdigos de redundancia cclica (CRC), optimizan la paridad, complicando el algoritmo de clculo de la
redundancia, de forma que se permite encontrar el error y la posicin. Tambin se llaman cdigos
polinmicos, porque establecen una relacin uno a uno entre un polinomio y una palabra de cdigo.
La correccin de errores se basa en informacin redundante para eliminar el error. Cuanta ms
redundancia, mayor nmero de errores se podrn corregir, a cambio de ms carga de proceso. En general,
la tendencia es aligerar el proceso, ya que la fiabilidad de la transmisin cada vez es mayor.
La tcnica ms extendida es el uso de cdigos de Hamming, usados para detectar y corregir errores. Se
basan en la distancia de Hamming, la diferencia (de bits) entre palabras de un cdigo. Dos palabras que
disten d bits, se malinterpretarn si se dan d errores. Un cdigo Hamming, detectar d errores si su
distancia es d+1 y podr corregir d errores si posee distancia 2d+1.
4. PROTOCOLOS
Debe distinguirse entre protocolos del nivel de enlace y protocolos que forman parte de los mismos. Seran
una especie de subprotocolos o protocolos de funcin. Por ejemplo, Ethernet define un protocolo para LAN
que, prcticamente se corresponde con la norma IEEE 802.3. Sin embargo, IEEE 802.3 se refiere a una
capa llamada de acceso al medio, MAC, que casi viene a ser la capa fsica del modelo OSI y la norma LLC
(IEEE 802.2), sera la capa de enlace, nivel 2 o subred del modelo.
As la cosa, la subcapa MAC LLC realiza control de enlace lgico (direcciones, protocolos de capa superior,
etc.) y puede usar otros protocolos, como por ejemplo parada y espera.
Las tcnicas de control de flujo, aunque tcnicas, son tambin protocolos, al establecer normas de proceso.
Estos protocolos, que podran llamarse protocolos de funcin, para las funciones de control de flujo y
errores, suelen englobarse en lo que se da en llamar protocolos o tcnicas ARQ, que es el acrnimo ingls
de respuesta-repeticin automtica. Se basan en el reenvo de tramas. Los protocolos ms extendidos son:
Parada y espera simple. Consiste en envar una trama y esperar asentimiento del receptor para enviar la
siguiente o retransmitirla si se produjo error.
Envo continuo y rechazo simple. Consiste en envo continuo de tramas, que el receptor va validando. Si se
produce error, se descartan todas las tramas a partir de la errnea y se solicita retransmisin.
Envo continuo y rechazo selectivo. Es transmisin continua y retransmisin slo de tramas errneas.
Cada nivel de la comunicacin es un programa que implementa un protocolo. Cada instancia de ese
programa se denomina entidad y puede asociarse a la caja que representa ese nivel, para un proceso de
comunicacin concreto. Cada entidad es proveedor de servicios a la capa inmediatamente superior.
Ejemplos de protocolos propiamente dichos del nivel de enlace son:
Protocolos de nivel de enlace de acceso WAN: PPP (Point to Point Protocol), HDLC (High-level Data Link
Control), X.25, Frame Relay, ATM, MPLS.
Protocolos de nivel de enlace de acceso LAN: IEEE 802.3 (Ethernet, en realidad 802.2, LLC, como se ha
explicado), IEEE 802.5 (Token Ring), IEEE 802.11 (WIFI), WEP o WAP.

286
TEMA 65. FUNCIONES Y SERVICIOS DEL NIVEL DE RED Y DEL NIVEL DE TRANSPORTE. TCNICAS.
PROTOCOLOS.

1. INTRODUCCIN
2. FUNCIONES Y SERVICIOS DEL NIVEL DE RED Y TRANSPORTE
2.1. Funciones y servicios del nivel de red
2.2. Funciones y servicios del nivel de transporte
3. TCNICAS
4. PROTOCOLOS

287
1. INTRODUCCIN
La funcin del nivel de red (modelo OSI) o interred (modelo TCP/IP) es la de enrutar la informacin. Sus
objetivos pueden resumirse en dos: independizar los servicios de capas superiores de la tecnologa de
subred y ofrecer un plan de numeracin uniforme.
La funcin del nivel de transporte es ofrecer un servicio de comunicacin fiable y eficiente a sus usuarios,
los niveles superiores, haciendo uso de los servicios que le ofrece el nivel de red. Sus funciones pueden
resumirse en ofrecer un servicio orientado, o no, a conexin y la multiplexin de la comunicacin.
2. FUNCIONES Y SERVICIOS DEL NIVEL DE RED Y TRANSPORTE
2.1. Funciones y servicios del nivel de red
Como se ha indicado, el nivel de red tiene como objetivo enrutar la informacin entre origen y destino. Este
objetivo se resume en la funcin de ocultar los detalles de subred a los protocolos de capas superiores,
proveyendo una numeracin uniforme y en gestionar el servicio de comunicacin.
La funcin del nivel de red, el enrutamiento, utiliza algoritmos que intentan buscar una ruta ptima entre
emisor y receptor. Una ruta es ptima si posee un coste mnimo. El coste, es un parmetro que representa
la dificultad de enviar datos. No se refiere exclusivamente al coste econmico, puede ser un coste en
velocidad de transmisin u otros factores. La ruta ptima se elige teniendo en cuenta el mnimo coste.
Si la ruta que siguen los datos puede variar, se dice que el enrutamiento es dinmico. En algunos casos, la
ruta no cambia, por ejemplo, por no haber alternativa. Este caso se denomina enrutamiento esttico.
El nivel de red est encargado adems de evitar la congestin de la red. La congestin de un enlace o ruta
puede ser un parmetro de coste y en base a ese coste, decidir enviar los datos por una ruta alternativa.
Si la red ofrece servicios con calidad (QoS, Quality of Service) ser el nivel de red el que reserve recursos
para cumplir las necesidades del servicio. De igual modo, si as se exige para su facturacin, el nivel de red
debe contar el trfico cursado.
Los datos tratados a nivel de red se denominan paquetes, aunque a veces, se usa la palabra paquete para
los datos de cualquier nivel. Para hablar propiamente, los datos del nivel de enlace deben denominarse
tramas, los de nivel de red, paquetes y los de nivel de transporte datagramas o segmentos.
El tamao de los paquetes del nivel de red es variable y est en relacin con la capacidad de la subred. Con
la mejora de las redes el tamao del paquete ha ido incrementndose para obtener mayor eficiencia. En IP,
el tamao mximo de paquete, en su versin clsica, la versin 4, es de 64 KB, pero en la versin 6 del
protocolo el tamao se incrementa hasta los 4 GB.
Esta enorme diferencia evidencia la mejora de las nuevas redes, de forma que al incrementar el tamao de
los datos efectivos, la relacin con respecto a la informacin de control, es mayor, es decir, se dedica mayor
porcentaje de la capacidad de transmisin a informacin real, incrementando la eficiencia.
Hablar del nivel de red, es casi hablar del protocolo IP, por su esencia y valor didctico. El protocolo IP,
versin 4, define un SAP denominado direccin IP, que consta de 32 bits agrupados en 4 bytes. Cada byte
se transforma en un nmero decimal. Ejemplo: 00001010.00101000.10101011.0000001 = 10.40.171.1
En principio, todas las direcciones IP de red son diferentes. Por ello se dice que una direccin IP identifica
un host o equipo de red. Todas las interfaces de los equipos que se conectan a la red tienen una direccin
IP distinta. Si un equipo tiene dos interfaces, este tendr dos direcciones IP. Todas las direcciones IP de
una misma red tienen una caracterstica comn poseen el mismo prefijo. As, un equipo se identifica
mediante su direccin IP y otros 32 bits llamados mscara de red, donde los n primeros son uno y los (32
n) restantes son cero. La mscara indica el prefijo de la red. Cada grupo de 8 bits se transforma en un
nmero decimal. Ejemplo: 11111111.11111111.11111110.0000000 = 255.255.254.0
Todas las direcciones IP de una red tienen la misma mscara de subred. La mscara indica en que mbito
varan las direcciones de la red. Puede hacerse una analoga con el sistema telefnico: si se asocia la idea
de nmero de telfono con una direccin IP, todos los telfonos de una regin, por ejemplo Madrid estn en
una misma red, y eso se identifica con el prefijo 91, una mscara de red que sera 11-0000000. Si un
nmero de Madrid llama a otro, la central telefnica evaluar los dgitos que indica la mscara, en el
ejemplo los dos primeros porque la mscara posee dos unos al principio. Si el nmero destino empieza por
91 tambin, la centralita sabr que el destino est en Madrid, en su LAN. Si los dos primeros dgitos no son
91, la llamada se enrutar a otra centralita. De manera similar funciona un router.
La informacin de control del protocolo, la cabecera, por tanto debe incluir varios datos. Los ms
importantes son la direccin IP de origen y la de destino. Protocolos de capa de red son IP, IPX de Novell,
OSI CLNP (ConnectionLess Network Protocol), CCITT X.25 y X.75 o CCITT/ITU-T Q.931.

288
Los servicios del nivel de red se dividen en funcin de las prestaciones de la comunicacin y distinguen dos
tipos: servicio orientado a conexin y servicio no orientado a conexin.
Un servicio orientado a conexin o CONS (Connection Oriented Network Service), requiere que se
establezca una conexin para el intercambio de datos, que al terminar, debe liberarse.
A un circuito establecido, se le denomina circuito virtual. Si es fijo se llama permanente, y si puede variar,
conmutado. Al usar un circuito virtual, todos los paquetes se transmiten por ese circuito, que tendr un
identificador, indicado en las cabeceras. Cada router conoce los circuitos virtuales que pasan por l, y una
vez establecidos, se despreocupa del enrutamiento, con lo que el control del trfico se facilita. El control de
errores y flujo puede ser ms o menos exhaustivo, pero en general se ve favorecido por el hecho de
realizarse una transmisin secuencial de los paquetes.
Un servicio no orientado a conexin o CLNS (Connection Less Network Service) es aquel que no obliga a
establecer una conexin para el intercambio de datos. Los paquetes se lanzan a la red con la esperanza de
alcanzar el destino. Para ello, en la cabecera de control debe indicarse la direccin del receptor, pero no se
reserva ningn circuito especfico, los datos pueden viajar por rutas diferentes. A este servicio tambin se le
conoce con el nombre de servicio de datagrama.
El control del trfico se hace ms difcil que en el servicio orientado a conexin, pero se tiene ms holgura a
la hora de enfrentarse a congestin de red, porque se pueden seguir rutas alternativas. Si se realiza control
de errores y flujo, tambin se puede realizar con relativa facilidad.
2.2. Funciones y servicios del nivel de transporte
El nivel de transporte es el primero que presta un servicio extremo a extremo. Esto significa que es el primer
nivel al que se comunican emisor y receptor. A nivel de subred, un nodo se comunica con otro nodo de la
subred, que puede no ser el receptor final. Del mismo modo, a nivel de red, un router, se comunica con
otros routers, que, en un caso general, no son tampoco el receptor final.
El objetivo del nivel de transporte es el control (o no) de la comunicacin. Por tanto los servicios que ofrece
son los de CONS o CLNS. Y son estos servicios los que obligarn a definir unas u otras funciones, como
por ejemplo el establecimiento de la comunicacin o la retransmisin de segmentos.
La diferencia entre el servicio a nivel de red y a nivel de transporte se da precisamente en las funciones a
implementar. Lgicamente el servicio CONS, a nivel de red exige funciones como la reserva de recursos en
los routers. A nivel de transporte exige otras funciones, como la retransmisin.
En este punto debe verse la analoga con el nivel de subred para identificar tambin las diferencias. As,
parte de las funciones del transporte tambin se realizan a nivel de subred (enlace). La diferencia es el
mbito de las redes, ya que a nivel de subred, las funciones se refieren a una red homognea. A nivel de
transporte son redes distintas, que pueden prestar servicios CONS o CLNS. Por tanto el nivel de red y
transporte definen una red encima de otras. Las funciones se repiten, pero ahora extremo a extremo. La
definicin del servicio que prestar el nivel de transporte, debe ser coherente con las funciones
comprometidas en el nivel de subred.
Si el servicio es CONS, la conexin debe inicializarse, controlarse y liberarse. Estas funciones, entre otros,
las implementa el protocolo TCP (Transport Control Protocol). Si la red funciona bien y no es probable que
se produzcan errores, es lgico aligerar el protocolo confiando la comunicacin a una filosofa de tipo mejor
empeo. Sera un servicio tipo CLNS, donde no se establece la conexin y los segmentos no se confirman.
En este caso de habla de un servicio de datagramas, que no garantiza la entrega de los datos.
En el servicio CLNS se envan datos y se espera contestacin. Si no llega (se pierden datos), simplemente
se retransmite. Como ejemplo, este tipo de comunicacin, se implementa en el protocolo de datagramas de
usuario o UDP, que es otro protocolo de la familia TCP/IP.
La funcin de multiplexin de la comunicacin del nivel de transporte se refiere a la capacidad de un usuario
para ejecutar distintas aplicaciones (correo electrnico, consulta web, etc.) sobre la misma conexin de red.
Esto implica que debe existir un identificador para cada tipo de conexin, un SAP del servicio. A nivel de
transporte, el SAP se denomina puerto, que por tanto es un identificador de una conexin.
Un puerto se representa con 16 bits, lo que define un rango de 0 a 65.535. En cada puerto se puede instalar
el servicio que se desee, por ejemplo un servidor web o de Telnet. Pero, por costumbre, suelen usarse
ciertos puertos para ciertos servicios. Estos puertos se denominan puertos bien conocidos. En el caso de
los servidores web, el puerto bien conocido es el puerto 80.
Los equipos que trabajan a nivel de transporte son los firewalls, que gestionan las conexiones a los puertos.
Abrir un puerto en un router / firewall, significa permitir la conexin a ese identificador, a ese puerto, donde
existir un servicio asociado.

289
3. TCNICAS
Las tcnicas de implementacin de las funciones y servicios a nivel de red y de transporte consisten en usar
informacin de control en la cabecera de los paquetes y segmentos.
Parte de esta informacin ya se ha adelantado. La identificacin de las direcciones de red y puerto para el
origen y destino suponen los primeros datos a tener en cuenta. Pero, existe otra informacin como por
ejemplo el nmero de secuencia, para identificar el orden de un paquete segmentado, o el tamao de la
ventana del protocolo de ventana deslizante.
Lgicamente, el protocolo TCP al ser ms complejo que UDP, define una cabecera ms compleja y por
tanto las tcnicas se complican debido a que el servicio requiere ms parmetros. En TCP los campos de
nmero de secuencia y confirmacin, son utilizados para el control de la comunicacin, para asentir la
correcta recepcin de cada segmento.
4. PROTOCOLOS
En cuanto a protocolos de funcin, para el nivel de red, existen numerosos protocolos de enrutamiento que
implementan las funciones y servicios descritos.
Algunos ejemplos son EIGRP (Enchanced Interior Gateway Routing Protocol), OSPF (Open Shortest Path
First) o BGP (Border Gateway Protocol). En cuanto a la calidad de servicio, existen protocolos de reserva de
recursos como RSVP (Resource reSerVation Protocol), quiz el ms didctico.
A nivel de transporte, se ha dicho que en un servicio CONS, la conexin debe inicializarse, controlarse y
liberarse. Para inicializar la conexin se suele usar el protocolo llamado acuerdo de tres vias o three-way
handshake. Consiste en que antes de comenzar la comunicacin, se da una fase de establecimiento de tres
pasos, en que el emisor pide la conexin, el receptor acepta o no, y por fin el emisor asiente otra vez.
El control de la comunicacin, una vez establecida, consiste en ir confirmando segmentos segn se van
recepcionando correctamente. Si existen errores, prdidas, dplicas o desrdenes en la recepcin, es el
nivel de transporte el responsable de la solucin, pidiendo retransmisin, ordenando o descartando
duplicidades. Suelen emplearse protocolos de ventana deslizante.
Una vez terminada la comunicacin, la conexin se libera y se confirma. Si tarda demasiado la confirmacin
de la liberacin, se libera de igual modo. Es un protocolo de liberacin de dos pasos.
En cuanto a ejemplos concretos de protocolos de nivel de red / transporte, los ms conocidos pueden ser IP
/ TCP (UDP), definido por el DoD (Department of Defense, el Pentgono), IPX / SPX de Novell o ATP,
Appletalk Transaction Protocol, de la familia AppleTalk de Apple.

290
TEMA 66. FUNCIONES Y SERVICIOS EN NIVELES DE SESIN, PRESENTACIN Y APLICACIN.
PROTOCOLOS. ESTNDARES.

1. INTRODUCCIN
2. FUNCIONES Y SERVICIOS EN NIVELES DE SESIN, PRESENTACIN Y APLICACIN
2.1. Funciones y servicios del nivel de sesin
2.2. Funciones y servicios del nivel de presentacin
2.3. Funciones y servicios del nivel de aplicacin
3. PROTOCOLOS
4. ESTNDARES

291
1. INTRODUCCIN
Lo que queda por analizar en la arquitectura de la comunicacin es definir la forma en que se usan los
servicios de la red. Es decir, los aspectos ms orientados al usuario, como la codificacin y formato de la
informacin o el interface entre los programas y el proceso que ofrece el servicio de comunicacin.
Mientras estos problemas, son tratados de forma unitaria y abstracta por el modelo TCP/IP, que no entra en
profundidad, sino que se limita a especificar el interfaz entre capa de transporte y aplicacin,el modelo OSI,
si describe ms en detalle cmo estructurar los niveles superiores al de transporte. Lo desgrana en tres
niveles a los que denomina sesin, presentacin y aplicacin.
2. FUNCIONES Y SERVICIOS EN NIVELES DE SESIN, PRESENTACIN Y APLICACIN
2.1. Funciones y servicios del nivel de sesin
Las funciones del nivel de sesin aaden prestaciones a los servicios de la capa de transporte, al
estructurar y sincronizar los datos de forma que, por ejemplo, una comunicacin cortada se pueda
restablecer a partir del punto donde se cort. Presta servicios como la administracin de interacciones y
sincronizacin de la sesin. Existen casos en que estos servicios pueden ser prescindibles.
El nivel de sesin permite a distintos sistemas establecer sesiones de trabajo. Una sesin permite el
transporte de datos, pero proporciona servicios avanzados como la conexin a un sistema remoto de tiempo
compartido o la transferencia de archivos.
Los servicios ofrecidos pueden resumirse en:
- Control del Dilogo: Simultneo (full-dplex) o por partes (half-duplex).
- Agrupamiento: El flujo de datos se puede marcar para definir grupos de datos.
- Recuperacin: Procedimiento de puntos de comprobacin, de forma que ante fallos entre puntos de
comprobacin, la entidad de sesin retransmite desde el ltimo punto de comprobacin.
2.2. Funciones y servicios del nivel de presentacin
La funcin del nivel de presentacin es la adaptacin entre formatos de representacin de la informacin. Es
por tanto el primer nivel semntico. Sus funciones se refieren ms al aspecto legible de la informacin. Su
desempeo consiste en establecer la correspondencia entre las representaciones de la informacin que
puedan hacer el origen y el destino, por ejemplo, conversiones de caracteres entre cdigo ASCII y EBCDIC.
El nivel de presentacin entrega los datos recibidos al nivel de aplicacin transformndolos en el formato de
imagen, texto u otro, que solicite. Tambin cuenta entre sus funciones, si son requeridas, el cifrado y
compresin de datos.
En principio, en el establecimiento de la comunicacin los dos equipos implicados deberan negociar los
parmetros de comunicacin como el formato de datos a usar. Sin embargo, en Internet, existen una serie
de formatos estndar que evitan esa negociacin, por lo que la implementacin de esta capa cada vez est
ms difuminada.
2.3. Funciones y servicios del nivel de aplicacin
El nivel de aplicacin define el interface entre los protocolos de este nivel y los procesos del sistema
operativo, del usuario, etc. Representa para el usuario el punto de entrada a la red, aunque la relacin entre
el usuario y el nivel de aplicacin no es directa, en general se realiza con un programa interface. Ejemplos
son los navegadores web, programas de mensajera instantnea o correo electrnico.
Cada uno de estos programas implementa una serie de protocolos cuya definicin es abstrada para el
usuario quien se limita a escribir un texto o pulsar un botn.
Esta es la funcin de la capa de aplicacin, abstraer los aspectos de implementacin de la comunicacin al
usuario, definiendo protocolos e interfaces. A los protocolos de nivel de aplicacin a veces se los denomina
servicios, por abuso del lenguaje. As se habla del servicio web o de correo electrnico, para referirse en
realidad al protocolo. Tampoco debe confundirse con la referencia a un servidor.
3. PROTOCOLOS
Ejemplos de protocolos de nivel de sesin son NetBIOS (protocolo de Microsoft para compartir informacin
en red), NFS (Network File System, protocolo libre de intercambio de ficheros en red), SSL (Secure Socket
Layer, capa de conexin segura, para ofrecer seguridad en conexiones de red) o RPC (Remote Procedure
Call, o procedimiento de llamada remota, para ejecutar comandos en red).
A nivel de presentacin, como su nombre indica, ms que de protocolos, habra que hablar de estndares,
formatos o normas. Si se mira en conjunto podra tambin dirigirse a ellos como protocolos, que tambin

292
son normas, aunque la idea de protocolo se refiere a normas con carcter ms dinmico (procesos) y las
normas o estndares a aspectos de carcter ms esttico.
Ejemplos de estas normas, o protocolos, a nivel de presentacin son ASN.1 (Abstract Syntax Notation, que
es un estndar de representacin de datos independiente de la mquina), GPX (GPS eXchange Format,
norma de intercambio de datos entre aplicaciones GPS) o las Firmas XML o XMLDsig, que es una norma de
firma digital bajo formato XML.
Por fin, ejemplos de protocolos de nivel de aplicacin son HTTP (web), SMTP, POP, IMAP (correo
electrnico) o FTP y TFTP (transferencia de ficheros).
4. ESTNDARES
Para lograr una comunicacin universal, como la que ofrece Internet, el uso de estndares y protocolos se
hace imprescindible. Por eso, como se ha explicado, es el nivel de presentacin en el que los protocolos
son ms bien estndares implementados.
A nivel de sesin y aplicacin, los propios protocolos representan estndares, bien porque se propongan
desde instituciones con autoridad de recomendacin, lo que suponen estndares de iure (de ley), bien
porque el mercado, o el pblico los popularicen, estndares de facto (estndares de hecho, que se imponen
o destacan por su uso extendido). Por su inters, destacan los estndares de codificacin, de cifrado y
compresin de datos.
El cifrado de datos se refiere a la codificacin de la informacin a transmitir de forma ininteligible por parte
de destinatarios ilegtimos o no autorizados. Protocolos de cifrado populares son los de clave pblica, como
PGP, SSH o SSL.
La compresin de datos pretende utilizar al mximo la capacidad del medio de transmisin. Se basa en el
uso de algoritmos para reducir informacin redundante, como por ejemplo en la transmisin de un encuentro
de ftbol. Las imgenes que se transmiten prcticamente son la misma, salvo cada cierto tiempo en que se
mueve el baln o unos jugadores. Entonces, se puede transmitir un marco de referencia y enviar mucha
menos informacin, enviando slo los cambios de una imagen a otra. Algunos estndares como ejemplo
son mp3, mp4, gif, mnp-5, mnp-7, V.42, etc.
Por fin, la codificacin de datos se refiere a la traduccin entre formatos o estndares distintos. Es un
servicio que se ofrece para hacer compatibles dos sistemas que usen distintos sistemas de codificacin.
Sea, por ejemplo, una pgina web China, escrita con caracteres chinos. Si se hace una visita a ese sitio, la
informacin podr verse con caracteres occidentales gracias al servicio de formateo de informacin.
Los estndares citados para la capa de presentacin son ejemplos claros. Por su importancia, se ha dejado
para este apartado, un estndar extendido, XML, que ya se ha estudiado y que se orienta a la definicin del
intercambio estructurado de informacin entre equipos. Sus propiedades le permiten ser utilizado en BBDD
y aplicaciones de cualquier tipo.

293
TEMA 67. REDES DE REA LOCAL. COMPONENTES. TOPOLOGAS. ESTNDARES. PROTOCOLOS.

1. INTRODUCCIN
2. REDES DE REA LOCAL
3. COMPONENTES
4. TOPOLOGIAS
4.1. Fsica
4.1.1. Estrella
4.1.2. Bus
4.1.3. Anillo
4.1.4. Mallada
4.2. Lgica
5. ESTNDARES
5.1. IEEE 802.3. Ethernet
5.2. IEEE 802.5. Token Ring
5.3. IEEE 802.11. WIFI
6. PROTOCOLOS
6.1. NetBIOS
6.2. SMB SAMBA
6.3. NFS

294
1. INTRODUCCIN
Una LAN tiene un mbito en principio reducido, que tradicionalmente se asimila a un edificio o distancias
cortas, con tecnologas de transmisin de alta tasa de transferencia y bajo coste. Esta idea cada vez es
menos precisa, ya que existen redes LAN extensas. Del mismo modo en redes que tradicionalmente se
consideraran MAN, se usan tecnologas de transmisin hbridas, muy similares a las tecnologas de
transmisin tpicas de LAN. Al hablar de redes LAN, debe tenerse en cuenta la tecnologa inalmbrica.
2. REDES DE REA LOCAL
El desarrollo de las redes LAN y en general de las redes, ha sido paralelo al de la informtica. Al principio,
los ordenadores eran caros y las redes intentaban aprovechar al mximo los recursos. Las primeras LAN se
montaban usando clientes ligeros o terminales tontos, simplificando, equipos sin disco que servan de
terminales remotos conectados a los servidores de la empresa para operar.
El desarrollo de nuevas tecnologas balance el proceso hacia el usuario. Los equipos y estaciones de
trabajo ya no eran tan ligeros y ofrecan inteligencia a la red. Este nuevo escenario contribuy al desarrollo
de las redes LAN, ya que cada vez se exiga ms velocidad de transmisin y prestaciones software.
La necesidad de compartir recursos requiere soluciones que ofrece perfectamente una LAN, al eliminar
redundancias, incrementar la productividad y ahorrar costes. En una red LAN deben tenerse en cuenta otros
factores como la escalabilidad (posibilidad de ampliacin sin traumas). Este aspecto est muy logrado, y
cualquier ampliacin de la red, suele ser transparente al resto de usuarios.
La flexibilidad, posibilidad de cambiar la configuracin de red, permisos del usuario, tanto a nivel ms fsico
(VLANs) como a nivel lgico (dominios, por ejemplo) tambin se puede realizar en una LAN de forma gil,
aunque depende del software con que se trabaje.
Los aspectos de seguridad pueden enfocarse desde un punto de vista fsico o lgico. Fsicamente se deben
establecer controles de acceso, proteccin fsica de los equipos, etc. En general, los administradores de la
LAN tienen en cuenta estos aspectos en la medida que obligan las leyes. Los aspectos lgicos, ms
relacionados con el software estn ms difundidos y suelen estructurarse bien. Entre las caractersticas de
las LAN hay que identificar al menos, su topologa, tecnologa de transmisin, velocidad de transmisin,
escalabilidad y hardware y software.
La topologa de LAN ya se ha estudiado: estrella, bus, anillo, rbol y mallada. Tambin se ha presentado la
tecnologa de transmisin LAN, bien red de difusin o broadcast, bien red de turno o token. La velocidad de
transmisin, vara en funcin de la tecnologa. Los valores a recordar son 100 Mbps para FastEthernet,
Gbps (800Mbps) para GigaEthernet, 54 Mbps de Wifi, que en tasa efectiva se quedan en torno a la mitad y
16 Mbps de velocidad tpica para Token Ring.
Los medios de transmisin tpicos son el cable de par trenzado, coaxial, fibra ptica y transmisin radio. Las
LAN tienen la posibilidad de conectar una gran variedad de dispositivos diferentes y conectarse varias redes
LAN distantes a travs de una WAN o Internet.
3. COMPONENTES
La parte hardware de las redes LAN ya ha sido presentada en cableado, interfaces y electrnica de red.
Slo quedara por describir, la conexin de los cables a los conectores en el caso del cable de par trenzado.
Para identificar cada cable en los extremos de un cable de par trenzado se usan colores. Los colores
usados son naranja, blanco-naranja, verde, blanco-verde, azul, blanco-azul, marrn y blanco-marrn. De los
ocho cables slo se usan cuatro, en Ethernet y Fast Ethernet. En Gigabit Ethernet se usan los ocho. Los
cables se utilizan de dos en dos para transmisin y recepcin porque se necesita un cable de referencia y
otro de tensin o nivel, para representar los bits.
Los cables van engastados en un conector RJ-45 macho. En los dispositivos de conmutacin de red, tales
como hubs, switches o routers, existen conectores RJ-45 hembra para terminar de establecer el circuito.
Para montar un cable de par trenzado con conectores RJ-45 hace falta una crimpadora y un cter o tijeras.
El proceso consiste en retirar parte de la cubierta externa de los pares, igualarlos e introducirlos en orden en
el conector. Una vez asegurado el orden correcto se usa la crimpadora para presionar los conectores
metlicos y sujetar la cubierta al conector. Este proceso se realiza en ambos extremos del cable.
El orden de los cables en los conectores depende de los dispositivos a conectar. Esta situacin genera dos
tipos de configuracin del cable: cable plano o recto y cruzado. En el cable plano los cables se disponen en
paralelo, de forma que ocupan la misma posicin en ambos conectores extremos. El cdigo de color a usar
es indiferente, lo importante es que se mantenga el orden.

295
En la configuracin cruzada los cables 1 y 2 se usan para transmisin y los cables 3 y 6 para recepcin
como se indica en la figura. Cualquier disposicin que respete el par 1-2 para transmisin y 3-6 para
recepcin sera vlida. Para los cables cruzados existen normas y recomendaciones.
Una de las normas ms aceptadas es la norma EIA/TIA 568B RJ45, que fija el estndar de cableado
(requerimientos mecnicos y elctricos, y componentes). Son normas desarrolladas por la Electronics
Industry Association (EIA) y la Telecomunications Industry Association (TIA). El estndar 568B se conoce
tambin como AT&T y describe un orden para conexionado de los cables mostrado en la figura.

La razn de estas configuraciones es debido al funcionamiento de los equipos. Sea la conexin de varios
equipos a un hub. Un equipo transmite y el hub repite la informacin por el resto de sus bocas, pero
intercambia las seales de la transmisin y las pasa a recepcin del resto de bocas. De esta manera lo que
el equipo emisor envi por los cables 1 y 2 se cruza a los cables 3 y 6 para que llegue a los receptores.
Equipos como los switches y hubs cruzan transmisin y recepcin, por tanto usan cables rectos para
conectarse con PCs. Los PCs, routers, impresoras, cifradores, etc. no cruzan transmisin y recepcin por lo
que para conectarse directamente entre si se usan cables cruzados. Muchos de los equipos comerciales
actuales detectan automticamente la configuracin de los cables de forma que cruzan o no transmisin y
recepcin segn corresponda para una correcta comunicacin.
4. TOPOLOGAS
La topologa de una red es la forma de disponer los equipos en la red. La topologa a implementar en una
red concreta depende de factores como el coste, nmero de equipos en la red, tipo de acceso al medio, etc.
Se pueden diferenciar otra vez dos tipos de topologas, la fsica y la lgica.
La topologa fsica se refiere a la forma que dibuja la red. La topologa lgica lo hace a la forma de
organizarse la transmisin en la red. Se distinguen dos: difusin (broadcast) y token.
La difusin consiste en lanzar la informacin al medio de transmisin de forma que est disponible a todos
los equipos. El acceso al medio se realiza cuando se necesita. Esto puede provocar conflictos o colisiones
que habr que resolver si dos equipos intentan transmitir a la vez. Es el caso de Ethernet o Wifi. Token o
turno consiste en la transmisin cuando llega un turno que se enva por la red. Cuando un equipo tiene el
turno, puede transmitir. Transmita o no, al terminar, cede el token a la siguiente estacin. No se producen
colisiones. Es el caso de Token Ring y Token Bus.
Las topologas fsica y lgica estn estrechamente unidas y en la mayora de casos las referencias a la
topologa son referencias a la topologa fsica, donde prcticamente se supone que una topologa en estrella
va a usar una topologa lgica de difusin. Se distinguen las siguientes topologas:
4.1. Fsica
Segn la topologa de la red, es decir, segn la forma fsica que dibuja su forma de conexin un sistema en
red se clasifica en red en estrella, en bus y anillo.
4.1.1. Estrella
Todas las estaciones se conectan a un nodo central o concentrador. Si la red es cableada, los equipos se
conectan con cables dedicados. Es una red fcil de instalar y permite detectar errores de forma simple. Si
un equipo falla slo falla ese, pero la red queda inoperativa si falla el concentrador.
Al disear una red en estrella hay que contar con su complejidad y nmero de equipos que la formarn.
Ventajas que ofrece son aceptar terminales con tasas de transmisin diferentes, facilidad de deteccin de
averas y posibilidad de uso de distintos medios de transmisin.
Como inconvenientes destacan lo caro del cableado, vulnerabilidad ante cadas del concentrador y
ralentizacin de la red ante picos de actividad elevada. Puede encontrarse el trmino topologa en rbol,
referido a una topologa en estrella que se repite en alguna de sus ramas. No tendra ms inters si no
fuese por algunas consideraciones:
Si se combinan varios hubs en una red tipo estrella o rbol, no pueden generarse bucles. En este caso, la
red dejara de funcionar. Para evitar estos problemas existen algoritmos que los detectan y evitan. Un
ejemplo es el protocolo de expansin de rbol, o STP, spaning-tree protocol, que implementan los switches.

296
4.1.2. Bus
Una red en bus se conecta con un slo cable con terminaciones. Es fcil de instalar y no existen nodos
centrales. Presenta problemas si hay una discontinuidad en el bus y pueden ser difciles de localizar. Todos
los equipos comparten el bus y se conectan a l, en general usando conectores en T.
Al disear una red en bus hay que tener en cuenta su complejidad, en general da solucin a pequeas
redes con poco trfico. Entre sus ventajas se encuentran la facilidad de crecimiento e instalacin de nuevos
equipos. Desventajas son la mxima longitud de cable a usar, no permitir la conexin de redes tan grandes
como Ethernet y el sistema no reparte los recursos por igual. Suele usar tecnologa Token Bus y cable
coaxial. Prcticamente han sido sustituidas por redes tipo Ethernet por ser ms barata y escalable.
4.1.3. Anillo
Una red en anillo es una red en bus en la que se unen los extremos. Es difcil de instalar y mantener. Si se
rompe el anillo la red cae. Cada estacin realiza funciones de repetidor, enviando la informacin a la
siguiente estacin del anillo. Para implementar una red en anillo hay que tener en cuenta el hardware de red
y los tiempos de espera medios, que suelen ser altos.
Presentan respuestas buenas frente a picos de transmisin y es fcil ampliarla. Ventajas son la
independencia de nodos centrales, redundancia y no existir colisiones. Inconvenientes son la complicacin
de la instalacin y posibles problemas con los repetidores. En LAN se usan cable coaxial y tecnologa Token
Ring. Prcticamente han sido desplazadas por Ethernet.
Esta topologa es comn en redes MAN y WAN con fibra ptica. La disposicin suele ser la de un doble
anillo de fibra ptica para ofrecer redundancia y disponibilidad. Las tecnologas de transmisin con fibra
ptica en redes MAN y WAN, estn pensadas para la gestin y transporte de grandes volmenes de
informacin. Una de las ms utilizadas es JDS, Jerarqua Digital Sncrona, o SDH por sus siglas en ingls.
4.1.4. Mallada
Una topologa mallada es aquella que conecta cada equipo de la red con el resto, lo que no ofrece una
solucin ptima, aunque si una alta redundancia. En un caso general no se usa un mallado total, sino que
se establecen varias conexiones de un nodo con los adyacentes. Esta disposicin se suele dar en redes
WAN, en ncleos de red de operadores para proveer alta disponibilidad frente a fallos.
Pueden existir casos en que se aplique un cierto mallado en redes locales por las mismas razones. Al
permitir que la informacin viaje de origen a destino por distintas rutas cada paquete de datos, se trata de
forma independiente en la red. La condicin de diseo de una red mallada es el compromiso entre coste y
funcionalidad, ya que para una red de pocos nodos, el nmero de enlaces puede no ser muy elevado, pero
una malla total implica un nmero de enlaces que crece con el cuadrado del nmero de nodos en la red.
4.2. Lgica
Segn la topologa lgica de las redes LAN se diferencian redes de difusin y de turno o token. Esta
diferencia intrnsecamente se refiere a la forma en que se accede al medio, es decir, al cable o al aire. En
las redes con topologa de difusin, los equipos envan la informacin depositndola en el medio cuando
tienen que transmitir. En principio, no esperan una seal de inicio, simplemente, ante la necesidad de
transmisin arrojan los datos al medio y es el protocolo el que se encarga de conseguir que la informacin
llegue al destino.
La topologa lgica de turno, se basa en transmitir la informacin, en los instantes de tiempo que se asignen
al efecto. Por tanto, si se ha de transmitir, ha de esperarse el turno. El turno se suele implementar con una
seal llamada testigo, como en las carreras de relevos, que en ingls recibe el nombre de token.
La primera derivada de esta clasificacin es que en las redes de difusin puede darse la situacin
denominada colisin, consistente en que dos equipos (o ms) intenten transmitir al mismo tiempo. Para ello,
se establecen mecanismos para evitar y solucionar este inconveniente. Por ello, se ha dicho que, en
principio, los equipos no esperan. Sin embargo, si hay colisiones, si habr un cierto tiempo de espera, para
que al retransmitir no se vuelva a colisionar. Estos aspectos se definen en los estndares y protocolos de
LAN que se explican a continuacin.
5. ESTNDARES
Simplificando, en una LAN para conectar dos elementos basta con disponer de dos hilos de Tx y dos de Rx
y tarjetas de red que empleen la misma norma. Tambin podra decirse, que seran necesarias nicamente
dos antenas que empleen la misma norma.
A continuacin se presentan las tecnologas ms utilizadas en redes LAN lo que ofrece una visin completa
de su funcionamiento.

297
5.1. IEEE 802.3. Ethernet
Entre las normas y recomendaciones del IEEE se encuentra la IEEE 802.3 y sus variantes, tambin
conocida como Ethernet. Es el estndar de redes LAN ms extendido. IEEE 802.3 y Ethernet no son
especificaciones exactas, pero a efectos prcticos se tratan y se refieren como si fueran la misma norma.
Ethernet define una red de difusin con una topologa tpica en estrella. Los equipos acceden a la red
mediante contienda. Su especificacin se llama CSMA/CD, o Acceso al Medio por Sensibilidad de Portadora
/ Deteccin de Colisiones. Si un equipo quiere transmitir, comienza por comprobar si hay alguna seal
presente en el cable, es decir, si hay otra estacin transmitiendo (CSMA). Si hay datos, el equipo espera
para transmitir. Si el canal est libre, el equipo transmite.
Si dos equipos escuchan y no detectan actividad, pueden intentar transmitir justo a la vez. Esto produce una
colisin. Si se produce colisin, hay que retransmitir. En las primeras implementaciones del protocolo, no se
detectaba la colisin hasta el final de la transmisin. La mejora CD, Colission Detection, implementa la
deteccin temprana de colisiones, de forma que al detectarse la colisin, los equipos dejan de transmitir. El
protocolo est programado para que las retransmisiones no se efecten a la vez.
De esta caracterstica se deriva el concepto de dominio de colisin, el conjunto de todos los equipos de la
red, que al transmitir pueden generar una colisin. Esta idea se enfrenta a la de dominio de difusin, o
conjunto de equipos que pueden recibir mensajes de difusin en la red. Esto no implica que sus datos
colisionen. Una red Ethernet representa un nico dominio de difusin, aunque segn su estructura puede
haber varios dominios de colisin.
Para la transmisin, Ethernet utiliza
una codificacin Manchester
diferencial. En la informacin que
se transmite va incluida la direccin
MAC origen y destino.
Los datos que se envan con el protocolo Ethernet se estructuran en paquetes, que por estar a nivel dos se
denominan tramas. El formato de trama Ethernet es:
Lo que debe
conocerse es la
estructura de tramas y
el funcionamiento de
la red.
La funcin de los campos de la trama Ethernet es la siguiente:
- Prembulo: Secuencia de 7 Bytes usada para sincronizar y estabilizar el medio fsico antes de iniciar la
transmisin de datos. El patrn del prembulo es: 10101010 (En total 7 Bytes) 10101010. Estos bits se
transmiten en orden, de izquierda a derecha y en cdigo Manchester.
- SOF (Inicio de Trama - Start Of Frame): Campo de 1 Byte con un patrn de 1s y 0s alternados que termina
con dos 1s consecutivos. El patrn SOF es: 10101011. Indica que el siguiente bit ser el ms significativo
del campo de direccin MAC destino.
Aunque se detecte una colisin durante la emisin del prembulo o del SOF, el emisor debe continuar
enviando todos los bits de ambos hasta el fin del SOF.
- Direccin destino: 6 Bytes que especifican la direccin MAC de tipo EUI-48 a la que se enva la trama.
Esta direccin de destino puede ser de una estacin, de un grupo multicast o la direccin broadcast.
- Direccin origen: 6 Bytes con la direccin MAC de la mquina que genera la trama.
- Tipo: Campo de 2 Bytes que identifica el protocolo de red de alto nivel asociado a la trama o la longitud del
campo de datos. La capa de enlace de datos interpreta este campo. (En la IEEE 802.3 es el campo longitud
y debe ser menor o igual a 1526 bytes).
- Datos: Campo variable de 0 a 1500 Bytes. Es la informacin que se transmite. Contiene informacin y
cabeceras de los niveles superiores.
- Relleno: Campo de 0 a 46 bytes utilizado cuando la trama Ethernet no posee los 64 Bytes mnimos para
no presentar problemas de deteccin de colisiones cuando la trama es muy corta.
- FCS (Frame Check Sequence - Secuencia de Verificacin de Trama): Son 4 Bytes con un CRC (Cdigo de
Redundancia Cclica). El emisor calcula el CRC de toda la trama, desde el campo destino al campo CRC
suponiendo que vale 0. El receptor lo recalcula, si el valor calculado es 0 la trama es vlida.

298
En la Ethernet tpica, cada host se conecta al concentrador con dos pares de alcance tpico hasta 100 m.
Fast Ethernet tiene una tasa de 100 Mbps, destacando el 100baseT4 con cable UTP y CSMA/CD como el
10baseT. 100baseTX posee transmisin dplex total y UTP cat. 5. GigaEthernet, logra transmisiones de
hasta 1000Mbps. El 1000baseT usa los 4 pares de UTP cat. 5 y el 1000baseCX usa 2 pares del cable STP
blindado. Si la conexin se hace con fibra ptica, FastEthernet cuenta con la norma 100baseFX y
GigaEthernet con 1000baseSX y 1000baseLX. La siguiente tabla resume el hardware y sus propiedades:
Tipo/Caracterstica Cable Conector Tasa de Tx. Distancia Mxima
10base5 Coaxial Grueso BNC 10Mbps 500m
10base2 Coaxial BNC 10Mbps 200m
10baseT Par Trenzado RJ45 10Mbps 100m
100baseTX UTP cat5 RJ45 100Mbps 100m
100BaseT4 Par Trenzado RJ45 1Gbps 100m
1000BaseTx Par Trenzado RJ45 1Gbps 100m
100baseFX FO multimodo ST 100Mbps 400m
1000BaseFX FO multimodo ST 1Gbps 100m
5.2. IEEE 802.5. Token Ring
La norma IEEE 802.5, bsicamente define las especificaciones Token Ring y muestra una topologa en
anillo. Token Ring fue desarrollado por IBM en la dcada de los 70 y se basa en una red por turno.
Actualmente Token Ring est prcticamente obsoleto por el mayor rendimiento que ofrece Ethernet. Sin
embargo, ilustra bien la naturaleza de este tipo de tecnologa.
Su funcionamiento se resume en que cada elemento habla slo con el contiguo. Con este sistema se evitan
colisiones. Existe una trama que va circulando por toda la red constantemente an cuando no hay
transmisin, el token o testigo. Existe el problema de que un corte en la red provoca el corte de la red
entera. El token slo puede retenerse cierto tiempo en cada estacin, tpicamente no ms de 10 ms.
Token Ring suele utilizarse con cable coaxial, pero puede implementarse con par trenzado. Las distancias
mximas de la red se especifican en torno a 350 m y la velocidad mxima de transmisin entre 4 y 16 Mbps,
aunque hay normas como HSTR (Token Ring de Alta Velocidad), que especifican velocidades de hasta 100
Mbps, pero no suelen estar soportadas, razn por la que Ethernet es una opcin ms interesante.
El formato de trama de
datos Token Ring es:
Siendo su significado:
SD: Delimitador de comienzo de trama AC: Control de Acceso
FC: Campo de Control Destino: Direccin MAC de destino
Origen: Direccin MAC origen FCS: Secuencia de verificacin de trama - checksum
ED: Delimitador de fin de trama FS: Estado de trama
No se profundiza en las funciones que realiza la informacin de cada campo, simplemente se enumeran.
Hay que notar su gran parecido con la trama Ethernet. Esto es importante para comprender la diferencia
entre el switch y el bridge. En principio, un switch no podra conectar una red Ethernet y otra Token Ring.
Sin embargo un bridge si se disea para esas labores de puente para la conexin de redes similares. Hoy
da, no tienen mucho sentido su utilizacin porque Token Ring prcticamente ha desaparecido. Lo
importante es tener una idea de su definicin.
5.3. IEEE 802.11. WIFI
La norma IEEE 802.11 o Wifi define, para una red LAN, la capa de subred con una tecnologa de
transmisin inalmbrica.
En la banda de 5 GHz se usan hasta 52 portadoras multiplexadas por divisin ortogonal de frecuencia
(OFDM) con tasa mxima de 54 Mbps y real de unos 20 Mbps. La norma 802.11g (utilizada en Wifi
domstico) define 11 canales configurables. El acceso al medio es CSMA/CA y el despliegue puede ser en
modo infraestructura (ESS) o modo ad-hoc (BSS), ya presentados.
La asignacin de canales usualmente se hace en el Access Point. En las redes ad-hoc los clientes
detectan automticamente el canal. Todas las versiones de 802.11x son compatibles entre s.

299
Para ofrecer seguridad, Wifi utiliza tpicamente dos mtodos de cifrado en la transmisin: WEP y WPA. WEP
(Wired Equivalent Privacy, privacidad equivalente cableada) es un mtodo de seguridad para redes
inalmbricas que emplea el algoritmo de cifrado RC4 de RSA Data Security. No es seguro.
Para proteger la integridad de los datos (que no sean modificados por un intruso), se aplica un algoritmo
(CRC-32) al texto en claro, que genera un valor de comprobacin de integridad (ICV). El ICV se aade al
texto cifrado formando una especie de firma digital y se enva. El receptor descifra el mensaje con la clave y
vuelve a recalcula la firma. Si coincide con el vector ICV recibido, se supone integridad de los datos.
WPA se define en la versin 802.11i, ofrece ms seguridad que WEP y utiliza un servidor de autentificacin
que distribuye claves diferentes a cada usuario. Puede utilizarse en modo de clave pre-compartida (PSK-
Pre-Shared Key). Tambin utiliza RC4 con clave de 128 bits y un vector de inicializacin de 48 bits.
La mejora con respecto a WEP es la implementacin del Protocolo de Integridad de Clave Temporal o TKIP
por sus siglas en ingls, que cambia claves dinmicamente. Cuando se combina con un vector de
inicializacin (IV) ms grande, evita los ataques estadsticos a los que es susceptible WEP.
La autenticacin y cifrado WPA mejora la integridad de la informacin. La comprobacin de redundancia
cclica CRC-32 usado en WEP es inseguro, ya que es posible alterar la informacin sin conocer la clave.
WPA implementa un MIC (Cdigo de Integridad del Mensaje Michael) y proteccin contra ataques de
repeticin. La versin WPA con PSK se denomina WPA-Personal y WPA2-Personal.
La versin con autenticacin 802.1x/EAP, se la conoce como WPA-Enterprise y WPA2-Enterprise. WPA2
utiliza el algoritmo de cifrado AES (Advanced Encryption Standard) y se considera seguro de acuerdo a lo
establecido en el estndar 802.11i.
Puede realizarse una comparacin entre los tipos de LAN presentados. Token Ring est prcticamente
desechado debido al mayor coste y menor velocidad que Ethernet.
La decisin de la tecnologa a emplear requerir un compromiso entre coste y prestaciones, que en general
decantarn la balanza a favor de Ethernet, a cambio de un mayor coste que Wifi. Wifi, ofrece menor coste,
pero en funcin del nmero de equipos puede perder prestaciones ms rpido.
Es ms cmodo, al permitir movilidad y ms inseguro, lo que implica un esfuerzo adicional, pero representa
una solucin adecuada para muchas aplicaciones. La siguiente tabla resume las caractersticas de las
tecnologas LAN:
Tecnologa LAN Protocolo Soporte TX Modo Velocidad Topologa
Ethernet CSMA/CD Cable Pares HD-HUB DC- Switch 10 Mbps Bus

Fast Ethernet CSMA/CD Par / Fibra HD / DC 100 Mbps Bus / Estrella


Giga Ethernet CSMA/CD Par / Fibra HD / DC 1 Gbps Bus / Estrella
Token Ring Token Capture Fibra HD / DC 4-16 Mbps Anillo
FDDI Token Capture Fibra HD / DC 100 Mbps Doble anillo
WIFI CSMA/CA Radio HD HUB 54 Mbps Estrella
6. PROTOCOLOS
Los protocolos usados en LAN y el software de red que los implenta estn altamente estructurados. Puede
distinguirse entre software de sistemas o aplicaciones y software de red. Estos dos niveles diferencian la
programacin de las funciones ms cercanas al usuario de la programacin destinada a la comunicacin.
Cada vez estn ms difuminados porque los lenguajes de programacin ofrecen muchas funcionalidades de
soporte para la red.
En general, los sistemas operativos de red que trabajan en redes LAN implementan los niveles inferiores de
los modelos TCP/IP y OSI, hasta la capa de aplicacin. El NOS sirve de interface entre usuario y los
programas y servicios de red. Tres aspectos deben quedar claros: los tipos de servicio, primitivas de
servicios y relacin entre servicios y protocolos.
Los servicios pueden ser orientados a conexin y no orientados a conexin. En los servicios orientados a
conexin se establece la conexin, se usa y se libera. En los no orientados a conexin los paquetes pueden
seguir distintas trayectorias y recibirse en desorden.
En cuanto a su calidad, los servicios pueden ser fiables y no fiables. Los servicios fiables no pierden datos y
hacen que el receptor acuse recibo de mensaje. Esto introduce carga de proceso y retardos. Un servicio no
fiable no acusa los recibos de mensajes, no garantizan la recepcin y se suelen denominar servicio de
datagrama.

300
Si no se necesita conexin explcita pero se desea fiabilidad, puede usarse un servicio de datagrama con
acuse.
Las primitivas de un servicio son el conjunto de operaciones que permiten utilizar un servicio y que por tanto
lo definen. Cada primitiva o instruccin suele dividirse en clases, que especifican qu realiza. Ejemplo: Sea
una primitiva llamada CONNECT, que indica una conexin.
La conexin posee varios aspectos y por tanto se distinguen varias operaciones de la primitiva como
CONNECT.indication, la instruccin de indicacin, CONNECT.request, instruccin de respuesta, etc.
Por ltimo, la relacin entre servicio y protocolo es la siguiente: el servicio es un conjunto de primitivas que
ofrece un nivel de red a otro nivel superior. Dicho de otra forma, el conjunto de operaciones que la capa
superior puede realizar gracias al nivel inmediatamente inferior, es el servicio que se le presta. Por tanto, un
servicio se refiere a la interface entre capas, no a su implementacin. Un protocolo es un conjunto de
normas que gobiernan el modo de comunicacin entre entidades pares de una arquitectura. Se refiere a la
comunicacin, al mismo nivel, de equipos diferentes.
En general, los protocolos definen unos servicios, que en las LAN, en general se orientan a compartir
recursos y por tanto, deben ser gestionados. Definir correctamente los usuarios, ser consciente de los
recursos que se administran y en consecuencia asignar los permisos justos a cada usuario, es una labor
delicada, responsabilidad del administrador de la red.
Para ofrecer una visin de cmo se pueden compartir recursos en una LAN, se estudian los protocolos
NetBIOS, SAMBA y NFS.
6.1. NetBIOS
NetBIOS es el acrnimo de NETwork Basic Input Output System. Fue diseado por IBM en 1984.
Constituye un interfaz que provee los servicios de sesin descritos en la capa 5 del modelo OSI.
Hace uso de otros protocolos para su transporte, en general TCP/UDP, ya que no define una estructura
para la transmisin. Por esto en 1985 IBM dise un protocolo de transporte para NETBIOS, NetBEUI
(NETBIOS Extended User Interface), diseado para LANs de hasta 255 equipos. Existen equivalentes para
SPX de Novell y el RFC 1001 y 1002 del IETF, que sirven de base para WS y SAMBA.
En cuanto al tipo de servicio, NetBIOS puede ofrecer una comunicacin orientada a conexin o no. A
diferencia de, por ejemplo IP, que usa direcciones IP, o TCP, que usa puertos, NetBIOS usa nombres en
vez de nmeros como puntos de acceso al servicio.
Los nombres NetBIOS en una red, son nicos. Cuando un programa necesita un servicio NetBIOS, se
ejecuta una interrupcin de software que es atendida por el controlador del adaptador de red.
El interfaz NetBIOS define cmo manejar las interrupciones y sus servicios, que se identifican con el campo
NCB_COMMAND de Network Control Block, de un comando NetBIOS. Estos servicios se pueden dividir en
cuatro grupos bsicos: General Services, Naming Services, Session Services y Datagram Services.
NETBIOS es un protocolo un tanto rudimentario, pero popular al ser implementado por WS. Usa los puertos
137 (Name Service), 138 (Datagram Service) y 139 (Session Service). Bsicamente asigna un nombre nico
a cada equipo para ser identificado en la red. Esto obliga a tener un servicio de resolucin de nombres que
traduzca nombres NETBIOS a, por ejemplo, direcciones IP, de modo similar a DNS. Los mecanismos ms
utilizados de resolucin de nombres NetBIOS en direcciones IP son:
- Memoria cach de nombres NetBIOS: En WS se mantiene una tabla de nombres NetBIOS asociados a
sus direcciones IP. Se usa para la resolucin de nombres antes de cualquier otro mecanismo. Se puede
comprobar el contenido de la cach NetBIOS con el comando nbtstat.
- WINS (WS Internet Naming Service): Es un servidor de nombres NetBIOS (NBNS). Al arrancar un equipo,
WINS registra su nombre NetBIOS y su direccin IP y lo guarda en la tabla de resolucin de nombres WINS.
El cliente WINS de cada equipo WS debe conocer la direccin IP del servidor. Si un equipo NetBIOS se
comunica con WS, debe consultar al servidor WINS, que devuelve la relacin nombre NetBIOS-direccin IP.
- Resolucin de difusin: Es un mecanismo similar a ARP. Si no hay servidor WINS, o ste no puede
resolver el nombre NetBIOS, se enva un mensaje de difusin preguntando por ese nombre. El equipo con
el nombre NetBIOS por el que se pregunta responde con su direccin IP.
- LMHOST: Si fallan los anteriores mecanismos, se usa LMHOST, un archivo de texto, similar al archivo
HOSTS usado en la resolucin de nombres en redes TCP/IP. Cada equipo tiene un archivo LMHOSTS, que
puede resolver nombres NetBIOS de servidores de otras LAN. Se gestiona de forma manual. Esto implica
su actualizacin al cambiar la red. En redes grandes con elevado trfico se recomienda la utilizacin de
servidores WINS para aumentar la eficiencia de la red.

301
6.2. SMB SAMBA
SMB es el acrnimo de Servidor de Mensajes en Bloque. Es un protocolo de capa de aplicacin diseado
para compartir recursos, archivos e impresoras. Es importante por ser utilizado en los sistemas operativos
de Microsoft, que implementan una variante ampliada denominada CIFS (Common Internet File System).
El entorno Linux utiliza SMB con una implementacin libre llamada SAMBA, que incluye varios servicios y
protocolos de Microsoft precisamente para poder establecer compatibilidad entre sistemas tipo UNIX y WS.
En general, y por abuso del lenguaje, se suele decir que SAMBA establece compatibilidad entre el protocolo
NetBIOS y el mundo Linux, englobndose en esta referencia a NetBIOS, otros servicios como SMB o RPC.
Para recordarlo, como idea de referencia puede ser vlida, teniendo en cuenta que es algo ms amplio.
Al usar Samba, los recursos que se comparten en un sistema tipo Linux pueden utilizarse por mquinas WS
que los vern como carpetas de red o similar. Del mismo modo, un recurso compartido por un equipo de red
con sistema WS puede ser visible a uno Linux que tenga Samba. Cada recurso puede aadir permisos de
acceso a las protecciones del sistema de archivos usado en Linux. La configuracin de Samba se logra
editando el archivo smb.conf, disponible en /etc o /etc/samba.
Samba permite administrar colas de impresin y autentificar con su propio archivo de usuarios o validarlos
haciendo las veces de Controlador Principal de Dominio, o simulando un dominio Active Directory.
6.3. NFS
NFS es el acrnimo de Network File System. Fue diseado por Sun en 1984 y constituye un protocolo de
aplicacin utilizado en redes LAN para la implementacin de sistemas de archivos distribuidos.
NFS es una propuesta de estndar cuya definicin se realiza en el RFC 1094 del IETF (NFSv2). Se dise
para trabajar independientemente de la plataforma en que se montase.
El sistema, permite a los usuarios autorizados acceder a archivos remotos de la LAN, como si estuvieran en
local. Se transporta sobre UDP y un puerto tpico de utilizacin es el 2049, aunque habitualmente vara. No
ofrece demasiada seguridad, por lo que a veces, en broma, se denomina No File Security.
El aspecto de la seguridad con NFS no es trivial, ya que slo utiliza una lista de control de acceso basada
en direcciones IP o nombres. Por tanto, al implementar el servicio, el administrador de la LAN debe tener en
cuenta la recomendacin de situarlo tras un firewall. NFS no implementa un sistema de contraseas para el
acceso y se recomienda la instalacin de nfs-utils y portmap.
Las operaciones de NFS sobre archivos se hacen de forma sncrona, es decir, la operacin de que se trate,
slo se da por ejecutada si se han realizado todas las tareas implicadas. Esta es la forma de garantizar la
integridad de los datos. La arquitectura de NFS es tpica cliente-servidor. La comparticin de recursos que
ofrece NFS permite que por ejemplo, los clientes o estaciones de trabajo de la LAN utilicen menos disco
duro, y por tanto, la informacin a compartir est centralizada.
Las carpetas o archivos comunes pueden ser montados en el servidor para liberar espacio en los clientes y
permitirles acceder desde cualquier terminal de la LAN. Tambin pueden compartirse dispositivos fsicos
como unidades de CD, DVD, etc.
NFS posee tres versiones ampliamente difundidas. La ms antigua es la conocida como versin 2,
soportada por la prctica totalidad de SO. La versin 3, incluye mejoras como tratamiento de errores y
archivos de tamao variable. No es totalmente compatible con la versin 2. La versin 4 aade funciones de
seguridad como Kerberos y la utilizacin de cortafuegos y listas de control de acceso.

302
TEMA 68. SOFTWARE DE SISTEMAS EN RED. COMPONENTES. FUNCIONES. ESTRUCTURA.

1. INTRODUCCIN
2. SOFTWARE DE SISTEMAS EN RED
2.1. Software Cliente
2.2. Software Servidor
2.2.1. WINDOWS
2.2.2. UNIX
3. COMPONENTES
3.1. Servidor web
3.2. Servidor de correo electrnico
3.3. Servidores DHCP y DNS
3.4. Servidor Proxy y Cortafuegos
3.5. Otros servidores
4. FUNCIONES Y ESTRUCTURA
4.1. Funciones y estructura de la comunicacin
4.2. Funciones y estructura de servidores

303
1. INTRODUCCIN
El software que controla las funciones de red se denomina sistema operativo de red, o NOS, Network
Operating System. En general se integra en el sistema operativo de la mquina.
El software de los sistemas de red puede clasificarse en software de usuario y software de red o servidor. El
primero se refiere a aplicaciones que facilitan al usuario el acceso a servicios y el software servidor es el
diseado para prestar un servicio concreto.
2. SOFTWARE DE SISTEMAS EN RED
2.1. Software Cliente
El software de sistemas en red de la parte cliente est orientado a proporcionar un interfaz al usuario de un
servicio. En general su funcionamiento es popular, son programas es que establecen comunicaciones a un
servidor que especifica el usuario, con las normas definidas en el protocolo del que se trate.
Las particularidades del protocolo permanecen ocultas al usuario. Puede pensarse en un navegador web.
No es necesario conocer la cabecera del protocolo HTTP para navegar, pero si se debe escribir www y el
nombre del servidor web al que conectarse en la barra de direcciones. El resto del proceso prcticamente
permanece oculto. El software cliente, suele ser bien conocido. Cabe destacar el siguiente.
- Navegador web. Es el software cliente que sirve al usuario para conectarse a un servidor web y visualizar
contenidos web. La conexin a un servidor web se puede realizar con otros programas, pero para las tareas
ms habituales de consulta se utiliza el navegador.
Los navegadores son herramientas muy potentes. Pueden realizar conexiones de distintos tipos, como ftp,
hiperenlaces a documentos, etc. y ser la entrada de distintos tipos de virus, insercin de cdigo y otros.
Un navegador puede necesitar complementos de compaas de software para visualizar ciertas web, como
ejemplo de estos complementos o plugins cabe citar los de java o flash. Ejemplos de navegadores web
son MS Internet Explorer, Mozilla Firefox o Safari de Apple.
- Cliente de correo electrnico. Es software que sirve para gestionar el correo electrnico desde la parte
cliente o de usuario. Funcionan conectndose a un servidor de correo, que previamente ha debido ser
configurado en el programa. El interface permite al usuario realizar las operaciones habituales de gestin de
correo: envo y recepcin, archivo y clasificacin, etc.
Los protocolos de correo que deben conocerse son SMTP, para envo y recepcin, POP3 e IMAP, para
recepcin. MIME son las Extensiones de Correo de Internet Multipropsito y representan un conjunto de
normas definidas para el intercambio a travs de Internet de ficheros de cualquier tipo. Se defini porque en
un primer momento no era posible adjuntar ficheros en el correo. Ejemplos de clientes de correo electrnico
son MS Outlook y Mozilla Firebird.
- Cliente de mensajera instantnea. La mensajera instantnea es un tipo de mensajera en tiempo real,
basado en texto. La diferencia fundamental con respecto al correo electrnico es la inmediatez de la
comunicacin. Lgicamente requiere que ambos interlocutores estn conectados a la vez.
El programa cliente de mensajera instantnea gestiona la comunicacin, en general conectndose a un
servidor que controla la comunicacin. El cliente por su parte sirve de interfaz al usuario y le informa de
aspectos como los contactos presentes en el momento actual, la posibilidad de dejar un mensaje diferido, o
la conexin con distintas cuentas de usuario simultneamente. Ejemplos de programa cliente de mensajera
instantnea son WS LiveMessenger y Pidgin.
- Cliente FTP. FTP es un protocolo de transferencia de ficheros muy extendido. Un cliente ftp es un
programa que utilizando este protocolo, permite la conexin a un servidor ftp. Suelen integrarse tambin con
los navegadores web. Ejemplo de cliente ftp es Filezilla client o CuteFTP.
- Otros programas cliente. Para las tareas de comunicacin de la parte cliente, el software realiza tareas que
se resumen en facilitar al usuario su trabajo con interfaces que explotan las funcionalidades de los
protocolos de forma intuitiva. Otros ejemplos de programas cliente, pueden ser los de comunicacin vocal
(Skype, TeamSpeak), los de conexin remota (VNC), o los de redes P2P para compartir ficheros (Emule,
BitTorrent). En este caso, los programas implementan alguna funcin de servidor, por su naturaleza P2P.
2.2. Software Servidor
El software servidor es el encargado de gestionar las peticiones que se reciben de la parte cliente y devolver
el servicio requerido. Un servidor puede ser dedicado o no. El dedicado es un equipo que se configura
explcitamente para realizar las funciones de un determinado tipo de servicio. Un servidor no dedicado, es
aquel que integra varios servidores en una misma mquina.

304
Dependiendo del servicio y de consideraciones de seguridad, coste, tamao de la empresa, etc. se tomar
la decisin ms ajustada a las necesidades. Existen varias soluciones para implementar las funciones de
servidor en red. Suele ser un sistema operativo que ofrece la posibilidad de instalar distintos servidores en
la misma mquina. Las ms extendidas son las soluciones Linux, con todo su abanico de distribuciones y
Windows, con su sistema operativo WS 2003 Server.
2.2.1. WINDOWS
La solucin comercial de Microsoft ms extendida para el software de sistemas en red es Windows Server
2003. Su nueva versin es Windows Server 2008. Destaca su interface grfico, aunque puede usarse la
lnea de comandos. Es un sistema multitarea y multiusuario que soporta usuarios locales y globales,
gestionados mediante un servicio de directorio.
En cuanto a seguridad, sus opciones se implementan con el sistema de ficheros NTFS. La mayora de
opciones de seguridad no estn disponibles con FAT. La seguridad se basa en niveles de permisos y
privilegios de usuario y grupo. Se permite la administracin remota.
La organizacin interna del SO suele ser una estructura de archivos en rbol. Esto es as en WS y UNIX.
WS usa tres directorios principales en la unidad de instalacin: Windows, Archivos de Programa y
Documents ans Settings. En Windows se guardan los archivos del sistema y la configuracin para su
correcto funcionamiento, en Archivos de Programa, se almacenan los programas instalados, con sus
ejecutables y configuraciones y en Documents and Settings se tienen los detalles de los usuarios.
Para la gestin de usuarios, recursos y permisos, WS 2003 Server utiliza un servicio de directorio. En el
entorno Microsoft, se llama Active Directory. Un servicio de directorio puede definirse como una base de
datos donde se almacena toda la informacin relativa a la gestin de la red. Esa informacin se organizada
en objetos, que pueden representar cualquier cosa: una impresora, un usuario, etc.
WS 2003 Server dispone opciones de instalacin de servidores que engloba bajo el men Administre su
Servidor. Desde esa pantalla, el administrador de red podr instalar los servicios que se ofrecen. Por citar
algunos, un servidor web, DNS, Terminal Server, etc.
La organizacin de la red en cuanto a su utilizacin se estratifica en una escala en la que a nivel ms bajo
se sitan los usuarios, que se agrupan en grupos, para poder gestionar ms racionalmente caractersticas
comunes a todos ellos, y los dominios, que engloban varias grupos y unidades organizativas, entre otros.
Una unidad organizativa es un conjunto de elementos con alguna
caracterstica comn, a criterio del administrador, como pueda ser la
pertenencia a un mismo departamento de una empresa. WS 2003 Server
puede convertirse en un controlador de dominio, para realizar estas funciones
de gestin de usuarios y grupos globales del dominio.
Para gestionar usuarios, se precisa informacin relativa a ese usuario.
Esa informacin se estructura en lo que se conoce como cuenta de usuario, que puede definirse como el
objeto que contiene la informacin que define a ese usuario, al que en particular, se identifica con un
nombre de usuario (username o login) y contrasea (password).
En la cuenta de usuario se almacena adems, los permisos de acceso a cada recurso que posee el usuario
y los grupos a los que pertenece. En WS 2003 Server, existen dos tipos de usuario: local o de dominio y
global. Los usuarios locales se almacenan en una mquina concreta del dominio y sus permisos son vlidos
slo en ese equipo. A un usuario local no se le asignan permisos sobre otro sistema del dominio. Un usuario
global es aquel cuyo mbito de definicin es el dominio. Sus datos se almacenan en el directorio y estn
disponibles en cualquier equipo del dominio. Puede tener permisos sobre cualquier recurso de su dominio.
Si un usuario accede desde una mquina cualquiera al dominio, usando una cuenta de usuario global, el
equipo realizar una consulta de validacin en Active Directory para permitir o no el acceso del usuario. Se
da la posibilidad de crear perfiles mviles de usuario, que permiten tener la misma configuracin en
cualquier mquina de la red. Esto se consigue copiando el perfil del usuario en el servidor. Cuando el
usuario con perfil mvil se conecta desde otra mquina al dominio, se recupera su perfil del servidor y as
tiene disponible su configuracin.
El concepto de grupo es el de un conjunto de cuentas de usuario con caractersticas comunes. En la
literatura a veces se refieren como grupos de seguridad. Un grupo es una unidad para facilitar la
administracin de usuarios que puede ser efectiva en entornos reducidos, sin tener que mantener una
infraestructura mayor de servidores. Un usuario puede pertenecer a ms de un grupo.
Los grupos en WS 2003 Server diferencian entre locales, globales y universales. Uno local slo tiene
entidad en el dominio en que es creado y se suelen usar para administrar permisos en mquinas de ese
dominio. Los grupos globales se guardan en el directorio y pueden contener usuarios globales del dominio.

305
Son publicados a todos los dominios de la red (bosque de dominios) y se usan para clasificar a los usuarios
en funcin de sus tareas. Los grupos universales se definen a nivel de bosque, el conjunto de dominios que
posea la organizacin. Pueden contener cuentas y grupos globales o universales de cualquier dominio.
La clasificacin que ofrece MS genera mbitos de definicin para gestionar usuarios y permisos. Se
recomienda asignar usuarios globales a grupos globales, segn sus tareas, incluir los usuarios y grupos
globales en grupos locales, segn el nivel de acceso y asignar permisos slo a grupos locales. Algunos
grupos que se crean por defecto en el sistema son Administradores, Invitados, Duplicadores, etc. cada uno
con permisos particulares. Otra entidad representada son los equipos. Un equipo tambin se gestiona con
una cuenta de equipo, que es un fichero con la informacin relativa a esa mquina.
La informacin del equipo incluye su nombre, identificador, etc. El identificador, ya sea de equipo, usuario o
grupo, es un nmero que asigna el SO y permanece oculto, ya que se usa para gestionar permisos. Este
parmetro est dentro de lo que se conoce como principales de seguridad o security principals.
Por fin, las unidades organizativas son objetos de Active Directory, que funcionan como una caja comodn.
En una unidad organizativa pueden incluirse objetos como equipos, usuarios o grupos, que compartirn
ciertas caractersticas comunes de organizacin. Su utilizacin est pensada para delegar la administracin
a usuarios distintos del administrador del dominio y a la vez agrupar la aplicacin de directivas.
WS 2003 Server dispone de herramientas para administrar la seguridad del sistema. Las instrucciones de
seguridad que aplica el sistema se denominan directivas de seguridad. Los archivos contienen atributos de
seguridad, controlados por el identificador del usuario. Estos atributos determinan si un archivo puede ser
ledo o modificado por determinado usuario y se controlan con las denominadas listas de control de acceso.
Otros aspectos a mencionar del SO son las copias de seguridad, la auditora del sistema y la instalacin de
hardware. WS ofrece su propia herramienta integrada para realizar copias de seguridad. En general se
distinguen dos tipos de copias de seguridad: las totales y las incrementales. Las primeras realizan copia de
todos los datos, o los que se indiquen. Las copias incrementales intentan ahorrar recursos, de forma que
slo se copian aquellos datos que hayan variado desde la ltima copia de seguridad.
La auditora del sistema, comprende aspectos de anlisis de los sucesos relacionados con la seguridad. Se
gestiona mediante ficheros de registro, o logs, que dejan constancia de acciones llevadas a cabo por
usuarios, programas o eventos del sistema. Se utilizan para monitorizar funcionamientos anmalos del
sistema, intrusiones o fallos de seguridad.
La instalacin de hardware en WS es intuitiva. En general, los dispositivos suelen ser reconocidos por el
sistema, que si cuenta con los controladores apropiados lo instala automticamente. Si no los tuviera,
solicita al usuario el controlador o le ofrece la posibilidad de buscarlo en cierta ubicacin o en Internet.
2.2.2. UNIX
Simplificando, se ha englobado bajo el epgrafe UNIX, ste SO, las distribuciones Linux y las GNU, debido a
que el funcionamiento y organizacin, es muy similar. El software tipo UNIX tiene gran importancia, porque
la mayora de servidores en Internet estn implementados con este tipo de servidores. Algunas soluciones
son HP-UX, SUSE, Red Hat, Fedora, Ubuntu o Debian. En general, los sistemas Linux aprovechan mejor el
hardware, a cambio quizs, de mayor complejidad.
Linux es un SO multitarea y multiusuario. Soporta varios sistemas de ficheros, de los ms utilizados son
Ext3 y Ext4; tambin soporta FAT y NTFS. Se estructura como un conjunto de archivos organizados en
forma de rbol. La configuracin del SO se realiza con ficheros en general de tipo texto, que pueden ser
editados permitiendo parametrizar los valores de configuracin.
Linux posee una estructura en la que todo el sistema cuelga del directorio raz o root, nominado con /. El
resto se organizan por funcionalidad. Algunos ejemplos de directorios son /bin (binaries) que almacena los
ejecutables de los programas del sistema, /dev, contiene ficheros de configuracin de dispositivos (devices),
/etc contiene los ficheros de configuracin del sistema o /home para la configuracin de cada usuario.
Estos directorios contienen la informacin y ficheros de configuracin del sistema. Al ser un sistema libre,
puede cambiarse su organizacin y por ejemplo guardar la configuracin de usuario en lugar distinto a
/home, pero eso puede generar inestabilidades. Lo recomendable es seguir la estructura estndar.
La seguridad en Unix est muy implantada. Siempre se distinguen al menos dos usuarios, el usuario root, o
superusuario, con todos los privilegios sobre el sistema, y el usuario genrico, con permisos limitados. El
usuario root posee privilegios totales sobre el sistema, lo que puede generar problemas de seguridad, ya
que si un intruso consigue esa cuenta, comprometera el sistema. Por esta razn, siempre se recomienda
no utilizar la cuenta root, a no ser para realizar tareas estrictamente necesarias con ella. En Linux, toda la
informacin de servicios se organiza en una estructura de directorio, que no recibe un nombre especfico

306
como Active Directory. Para la consulta eficiente a los datos del directorio se utiliza el protocolo LDAP o
protocolo ligero de acceso a directorio.
La seguridad en los permisos de archivos en Linux se divide en cuatro grupos, representados con 12 bits, 3
para cada grupo. Estos 3 bits indican los permisos de lectura (r), escritura (w) y ejecucin (x). El primer
grupo de 3 bits se refiere a los permisos para el propietario del archivo, el segundo a los del grupo del
propietario y el tercero a los del resto de usuarios. Los tres ltimos bits son los bits Sticky, Setgid y Setuid.
Estos bits indican que un ejecutable, un programa se trate como si lo ejecutase el usuario o el grupo (uid y
gid, respectivamente), cuando lo ejecuta cierto usuario. Los permisos de los archivos pueden modificarse.
La gestin de usuarios en Linux tambin define roles de usuario y grupo. Los conceptos son los mismos que
los ya explicados. Los usuarios se registran en el fichero /etc/passwd y /etc/shadow, que almacenan
informacin que incluye su username, contrasea cifrada, identificador, grupos a los que pertenece, etc. Por
defecto, a cada usuario se le asigna un grupo cuando es creado. Ms adelante se podr asignar a otros
grupos. La informacin de grupos se guarda en etc/group.
El concepto de dominio en Linux difiere del de WS. Lo que se generaliza en Linux es la utilizacin de los
servicios NIS, Network Information Service y NFS o Network File System. El primero centraliza los datos de
gestin comunes en la red, mientras NFS ofrece un acceso eficaz a ficheros compartidos en red.
Los recursos en Linux, en particular el hardware se almacena en el directorio /dev y su configuracin est
disponible en /etc. Tambin son tratados como archivos. Para acceder a un dispositivo, debe montarse, es
decir debe hacerse accesible como un directorio, en principio con la instruccin mount, aunque, este
proceso se ha automatizado en la mayora de casos.
La administracin de seguridad de Linux est muy lograda, es parte de la concepcin del sistema y dispone
de sus herramientas particulares. Por ejemplo, para realizar copias de seguridad o en aspectos de auditora
del sistema. La prctica totalidad de los eventos del sistema se registran en lo que se conoce como archivos
de log, configurables para especificar qu informacin se recoger, en general como texto plano.
La definicin de los ficheros de log debe hacerse de forma que no se recoja demasiada informacin ni dejar
aspectos importantes sin registro. Suelen guardarse en secuencia histrica o bien sobrescribirse cuando se
alcanza cierto tamao. Por defecto suelen estar bien diseados, pero el administrador debe definir la
informacin a registrar, cmo se guardarn y dnde, etc.
3. COMPONENTES
Tanto WS como UNIX en sus versiones servidor, incorporan una serie de componentes que ofrecen la
opcin de instalar distintos servidores. Los componentes a conocer son, al menos, los siguientes.
3.1. Servidor web
Un servidor web es el software que gestiona peticiones web. El servidor est constantemente escuchando
en un puerto peticiones de contenidos web. La escucha del servidor es una espera activa. Es decir, se est
constantemente esperando a que lleguen peticiones a un determinado puerto lgico. Cuando llega una
peticin, las capas inferiores entregan la informacin al software servidor que gestiona la peticin.
En principio, el servidor puede escuchar, montarse, o configurarse en cualquier puerto. Ahora bien, para
un servidor web, en general se configura en el puerto 80. Es una regla de facto. Se hace por convenio no
escrito. Del mismo modo, por defecto, los navegadores web realizan sus peticiones al puerto 80.
Cuando un usuario utiliza su navegador y se conecta a un servidor web, ste recibe su peticin, la procesa y
empieza a enviar al solicitante los datos que tenga configurados que debe enviar, en general, el contenido
de una pgina web, un fichero de hipertexto (texto que contiene otro texto o enlaces a otro contenido). Los
ficheros, estn contenidos en el servidor web y se sirven al cliente que los solicita. La World Wide Web
(www) sera el conjunto o el sistema de pginas web enlazadas, a las que puede accederse en Internet.
Como idea de referencia puede decirse que es el conjunto de servidores web de Internet.
Una url o Localizador de Recursos Uniforme (estndar), es la informacin que debe proporcionarse para
localizar un recurso, una pgina web u otro. La url debe contener entre sus datos, el protocolo a utilizar, (en
el caso web sera http), la direccin IP de la mquina a la que conectarse, el puerto de conexin y la ruta del
contenido solicitado dentro de la mquina consultada. Servidores web son Internet Information Service, de
Microsoft, Apache o Cherokee.
3.2. Servidor de correo electrnico
Es el software que gestiona la transferencia de correo electrnico. Puede transferir correo electrnico entre
sistemas, a otro servidor de correo, o entre s mismo y un cliente. El cliente de correo electrnico slo lo
transfiere entre s mismo y su servidor. Esta es la diferencia entre el software cliente y el servidor.

307
El cliente gestiona correo electrnico, pero slo a nivel usuario. Los servidores de correo utilizan dos tipos
de protocolos, uno para el envo, que suele ser SMTP y otro para recepcin, los ms genricos POP e
IMAP. Ejemplos de servidores de correo son Microsoft Exchange, incluido tambin en WS 2003 Server y en
entorno Linux Sendmail junto con otros paquetes software.
3.3. Servidores DHCP y DNS
Se han incluido en el mismo punto los servidores DHCP y DNS porque ambos se refieren a configuraciones
relacionadas con direccionamiento IP. Un servidor DHCP es software que implementa el protocolo DHCP, o
protocolo dinmico de configuracin de host, que permite configurar las direcciones IP de los equipos de la
red de forma dinmica: cuando un equipo se enciende, realiza una solicitud DHCP para que el servidor le
asigne su direccin IP. Esto agiliza la gestin de la red, en particular si es grande.
El servidor tendr configuradas una serie de direcciones para ser asignadas. A stas se le suele llamar
pool de direcciones. De forma que a cada peticin se va asignando una direccin del pool y ya no estar
disponible para otro equipo. Cuando la mquina se apaga, esa direccin se libera y podr reasignarse.
En el usuario el SO incluye un cliente DHCP, dentro de la configuracin de la red, de forma que se presenta
alguna opcin del tipo obtener una direccin IP automticamente. En una red domstica tpica, se hace
uso de servidores DHCP, implementados en los routers de conexin a Internet.
Un servidor DNS, Servidor de Nombres de Dominio, es el software que establece la identidad entre un
nombre de dominio y una direccin IP. Bsicamente es una gua telefnica IP. El servidor es el encargado
de tratar las peticiones que le llegan, consultar su tabla y devolver la respuesta. Si sta no existe en la tabla,
realizar una consulta a otro servidor DNS, y as sucesivamente hasta obtener la respuesta.
3.4. Servidor Proxy y Cortafuegos
Un servidor proxy es el software que acta de controlador de las comunicaciones en una red. Es un equipo
intermediario. Sus aplicaciones pueden ser amplias, como el caso tpico de un servidor de NAT.
NAT consiste en una traduccin de direcciones IP privadas, destinadas al uso en un mbito local y que no
pueden navegar por Internet, a direcciones IP pblicas para acceder a Internet. Con un servidor proxy que
use NAT, todos los equipos de una LAN acceden a Internet con la misma direccin IP. El servidor se
encargar de identificar cada conexin de la LAN y gestionar que la correcta comunicacin.
El equipo destino considera que la comunicacin la ha establecido el proxy, en realidad, el intermediario,
que devuelve la informacin al equipo origen. Las ventajas que ofrece el proxy destacan en seguridad, ya
que puede generar registros de las conexiones para realizar, por ejemplo, auditoras de seguridad. Como
contrapartida, debe dimensionarse correctamente en funcin de la carga de trabajo a soportar.
La funcin de los puede entenderse como la de un tipo especfico de proxy, ya que realiza un control
intermedio de las comunicaciones entre la red interna y la externa, filtrando las comunicaciones y ofreciendo
un nivel mayor de seguridad frente a intrusiones. Los cortafuegos evalan el trfico, los puertos y
direcciones IP de la comunicacin, de forma que permiten el acceso o no a los recursos internos o externos
segn las polticas de seguridad que se establezcan.
3.5. Otros servidores
Otros servidores comunes que se deben conocer son los servidores de archivos, que son los programados
para realizar intercambio de ficheros de forma eficiente, como los servidores FTP. En el entorno Linux son
comunes los servidores NFS que entre otras cosas permiten acceder a ficheros remotos como en local.
En WS se suelen usar servidores de nombres WINS, que identifican las mquinas de un dominio con un
nombre asignado por el administrador de red y que utilizan el protocolo NetBios de MS, utilizado para
compartir recursos en red. En WS Server, se utiliza un servidor DNS para identificar los nombres de red,
pero tambin permite implementar el servidor WINS. Para integrar sistemas Linux y WS en red, los Linux
recurren a servidores SAMBA, que implementan funcionalidades NetBIOS. Un sistema Linux con SAMBA
aparece en la red como si fuera otro equipo WS.
Los servidores de impresin, gestionan el acceso y uso de las impresoras en red y en particular las colas de
impresin controlando los permisos y prioridades para cada usuario.
Los servidores de bases de datos administran el servicio de acceso a BBDD. Las dos soluciones ms
utilizadas a conocer son Oracle, SQL Server de Microsoft y MySQL como alternativa libre.
En sistemas WS existe un servidor muy usado para administrar equipos remotos, el Terminal Server, que
es un servidor que permite emular un terminal con interfaz. Los servicios de Terminal Server se ofrecen en
dos modos: servidor de aplicaciones y administracin remota. El primero permite a clientes remotos acceder
simultneamente a aplicaciones que se ejecutan en el servidor. El modo de administracin remota
proporciona acceso remoto al servidor y sus herramientas grficas para su administracin.

308
4. FUNCIONES Y ESTRUCTURA
A veces se diferencia entre software de sistemas o aplicaciones y software de red. El primero se refiere a
programas de usuario que implementan distintas funciones. Aqu se englobara el software cliente y el
servidor expuesto en los apartados anteriores, as como software P2P. El software de red se referira a la
parte de la programacin que ejecuta las acciones necesarias para el establecimiento de la comunicacin.
En general, el software de aplicacin integra al software de red. Pinsese, por ejemplo, en un programa de
mensajera instantnea, o un navegador web. En su programacin, ya estn incluidos los procedimientos,
funciones u objetos que realizan el control de la comunicacin, segn marcan los protocolos. Adems, esta
programacin tiene por misin precisamente, ocultar al usuario esos detalles. En este punto se explica
ambos aspectos del software de red, el funcionamiento de los protocolos y su estructura a nivel de sistema.
4.1. Funciones y estructura de la comunicacin
La comunicacin puede ser orientada a conexin o no. TCP implementa un protocolo de control de la
comunicacin orientado a conexin, mientras UDP lo hace no orientado a conexin.
El protocolo TCP especifica un desarrollo de la comunicacin dividido en tres partes: establecimiento,
transferencia de datos y finalizacin.
El establecimiento de la conexin se realiza con un acuerdo de tres vas, o three way handshake, en el que
el emisor enva una peticin (SYN) con un nmero de secuencia, S, el receptor contesta con un
asentimiento (SYN ACK) y S ms 1 y otro nmero de secuencia S2 que debe confirmar el emisor. En el
tercer paso, el emisor confirma el nmero de secuencia del receptor con S2 + 1 y S + 2. Si el proceso es
correcto, la comunicacin se considera establecida y comienza la transferencia de datos.
Con los nmeros de secuencia y una memoria temporal implementada con un protocolo denominado de
ventana deslizante, en la fase de transferencia de datos, se va recibiendo la informacin en el solicitante.
La ventana deslizante, puede resumirse, en una memoria que va almacenando los datos recibidos, que si
estn bien, se espera la confirmacin del receptor. Cuando lo confirma, se libera ese dato, y se considera
entregado. Si pasa mucho tiempo sin confirmacin, la memoria se llena y no se sigue transmitiendo nueva
informacin, sino que se comienza a retransmitir los datos de la memoria.
Para finalizar la comunicacin se utiliza un acuerdo de cuatro vas. Si uno de los extremos desea finalizar la
conexin, lo refleja con un paquete de terminacin (FIN), que debe ser asentido por la otra parte (FIN ACK).
La finalizacin del lado que no inici la terminacin seran otros dos paquetes iguales.
El software suele implementar mecanismos de seguridad para evitar el colapso de los servidores. Por
ejemplo, si la comunicacin queda medio abierta o medio cerrada, es decir, si no se cierra el acuerdo
totalmente, transcurrido un tiempo se descarta el intento de comunicacin.
UDP no establece la conexin, ni realiza control de flujo y no confirma la entrega de los datos como TCP
con los paquetes ACK. Esto aligera el protocolo y ofrece ms velocidad a cambio de menor fiabilidad.
Algunos protocolos y aplicaciones que utilizan este tipo de comunicacin son DHCP, DNS y NFS. Otros
ejemplos son Bootp para el arranque de equipos en red y RCP para la copia en remoto.
4.2. Funciones y estructura de servidores
La estructura del software de los sistemas en red posee aspectos
comunes. En la figura se muestra un cliente y un servidor con su
software soportado por sus SO, que gestionan los aspectos de
comunicacin. A travs de la red, ser una LAN, WAN o Internet, el
cliente realiza peticiones al servidor, que las interpreta y ejecuta,
accediendo al servicio o recurso que se ha solicitado y devolviendo
la respuesta correspondiente.

En el caso de una estructura P2P, el esquema sigue siendo vlido, teniendo en cuenta que cada equipo
podr realizar las funciones de cliente o servidor. Para ilustrar el funcionamiento y estructura del software,
se describe una consulta web de forma ms detallada. El proceso sera el siguiente: un usuario abre su
navegador web, y escribe en la barra de navegacin una url, del estilo: www.google.es.
En realidad, se deba escribir http://www.google.es/, donde http:// es el protocolo usado. En general, no se
escribe porque el navegador ya lo supone por defecto. www.google.es representa el nombre del dominio al
cual se pretende acceder. Es decir, el nombre del servidor. Ahora bien, antes de devolver el recurso web, el
software del navegador debe resolver el nombre solicitado y traducirlo a una direccin IP. Esto lo realiza
usando un cliente DNS, que realizar la peticin. El cdigo del navegador, incluir una funcin, mtodo o
similar que indique al SO que debe utilizar un cliente DNS para realizar la consulta, o puede estar incluido
en el navegador si el lenguaje de programacin en que se realiz lo permite.

309
El cliente DNS tendr otra estructura de funcionamiento, que es transparente al usuario del navegador. Una
vez realizada la consulta, y obtenida la direccin IP del nombre de dominio, el navegador la incluir para
realizar la consulta. Tendra que incluirse en la peticin, el nmero de puerto, que no se incluye tampoco,
porque al ser un navegador web, por defecto utiliza el puerto 80. De este modo, la consulta del cliente
www.google.es, se transforma en http://66.249.92.104:80.
Este sera un caso mnimo. Si se accediese a un documento de texto, por ejemplo, tras el nombre de
dominio habra que incluir la ruta, en la forma /ruta/archivo.ext. Si fuera una conexin segura, el esquema
sera https://, etc. El software servidor, recibira la peticin e ira a buscar el recurso solicitado. Si no lo
encuentra devolver un error, que puede ser configurado, y que en un caso general ser del estilo tpico:
Cdigo 404: File Not Found.
La peticin del cliente se realiza utilizando las primitivas del SO y por tanto, si es una conexin TCP, se
debe establecer la conexin con el acuerdo de tres vas estudiado. Todo el proceso permanece oculto al
usuario. Si el servidor encuentra el contenido lo devolver, operacin que puede involucrar a otras. Si el
contenido es esttico, una fotografa, por ejemplo, la enva al cliente y se acaba la sesin. Si el contenido es
dinmico, es decir, debe actualizarse, porque se trata, por ejemplo, de una consulta a una BBDD, el servidor
debe utilizar en su programacin las rutinas necesarias para atender la peticin.
La estructura de un servidor web a nivel de software podra resumirse en una capa servidor y una capa de
soporte. En la capa servidora, se pueden distinguir cinco funciones: recepcin, anlisis de la peticin,
control del acceso, gestin de recursos y registro de transacciones, que realizan las operaciones descritas.
La capa de soporte por su parte sera el interface entre el servidor y el SO e incluira las funciones de
gestin de utilidades (funciones) y abstraccin del SO, lo que permite la interaccin del software servidor en
distintas tecnologas (WS - Linux).

310
TEMA 69. INTEGRACIN DE SISTEMAS. MEDIOS DE INTERCONEXIN. ESTNDARES.
PROTOCOLOS DE ACCESO A WAN.

1. INTRODUCCIN
2. INTEGRACIN DE SISTEMAS
2.1. Redes de Nueva Generacin
2.2. Arquitectura de Red
3. MEDIOS DE INTERCONEXIN
4. ESTNDARES
4.1. Estndares de Fibra ptica
4.2. RS-232
4.3. V.35
5. PROTOCOLOS DE ACCESO A WAN
5.1. X.25
5.2. Frame Relay
5.3. RDSI
5.4. ATM
5.5. MPLS
5.6. ADSL

311
1. INTRODUCCIN
La integracin de sistemas, en el contexto de las redes de telecomunicaciones, es un concepto que puede
usarse como sinnimo del de convergencia, ms frecuente, que debe entenderse bsicamente como la
adaptacin de las tecnologas de transmisin al mundo IP.
La integracin ha evolucionado en el marco de las redes de conmutacin de paquetes, ms eficientes que
las redes de conmutacin de circuitos. Los factores que motivan la integracin son el ahorro de costes,
homogeneizacin de la tecnologa, facilidad en el soporte de aplicaciones, etc. La homogeneizacin del
equipamiento hace aparecer medios de interconexin estndares, que deben conocerse.
2. INTEGRACIN DE SISTEMAS
Tradicionalmente, y debido sobre todo a las redes telefnicas, la tecnologa que implementaban las redes
de comunicacin era la conmutacin de circuitos. Esta idea implica encontrar un circuito libre para
comunicar los dos extremos. Si no lo hay, no habr conversacin. Si el establecimiento de la comunicacin
tiene lugar, comienza la transferencia de informacin ocupando el circuito en exclusiva, aunque no se use,
hasta que alguno de los dos extremos se desconecta. Es una forma de trabajo muy ineficiente.
En contraposicin, una comunicacin tpica en que un ordenador domstico tiene varias comunicaciones
simultneas (por ejemplo, consulta web, mensajera instantnea y otras) utiliza el mismo recurso fsico. La
tecnologa que permite ofrecer esta simultaneidad de comunicaciones es la conmutacin de paquetes. La
diferencia fundamental estriba en dividir la capacidad del canal para poder utilizarse por distintos tipos de
trfico y usuario simultneamente, generando un rendimiento mayor que la conmutacin de circuitos.
Este es el punto de partida de la integracin de sistemas. En el fondo no es otra cosa que la integracin de
la tecnologa, intentando realizar una transmisin de datos homognea, tratando cualquier tipo de trfico, ya
sea voz, datos o video de la misma manera, conmutando paquetes. La integracin se orienta a la
adaptacin de los datos a los protocolos de comunicacin, lo que redunda en una integracin de los
sistemas de red. Estos equipos ya no distinguirn, en principio, si la informacin transmitida son imgenes,
video, audio o datos. Simplemente despacharn trfico, paquetes.
De este modo, la antigua centralita de voz, simplifica su gestin y administracin y el mismo equipo podr
realizar la conmutacin de voz, ahora tratada como en forma de paquetes de datos. El operador tambin
simplifica su trabajo. Podra hablarse de una integracin de gestores de red.
As, si antes exista un operador de mantenimiento y supervisin de centralitas y otro operador de datos,
ahora, estas dos personas pueden ser la misma. No necesitara una formacin tan diferente como la que
supone la programacin de una centralita y por otro lado la gestin de routers, sino que esas labores de
gestin, control, supervisin, etc. son ms homogneas.
Cuando el operador trate alguna anomala en la red, o en una comunicacin de trfico sensible, como la
voz, manejar ese tipo de ajustes (prioridades), de forma similar al tratamiento de datos.
La idea que subyace en la integracin de sistemas
podra resumirse en igualar el tratamiento de las
fuentes de informacin, homogeneizando la
estructura de la red y luego particularizar la
gestin en funcin de las caractersticas de cada
tipo de trfico o usuario. Este proceso incrementa
enormemente la productividad y el ahorro de
costes y en equipamiento.
Entre las ventajas para los gestores de red se
pueden citar el disponer de una infraestructura
comn de acceso y transporte, una simplificacin
de tecnologas y un sistema de gestin nico.
En funcin de la red que se trate, habr que tener en cuenta cmo se realizar la integracin del trfico y su
naturaleza. La voz requiere retardos ms o menos constantes no debiendo superar el entorno de los 200
ms, para que sea percibido con calidad pero admite cierta distorsin.
Los datos pueden transmitirse a tasas no constantes, ya que ser el destino el que los ordene y presente. El
vdeo, presenta caractersticas ms parecidas a la voz, pero requiere ms ancho de banda.
Para solventar estas condiciones, se utilizan sistemas de codificacin y multiplexin. La idea de codificacin
en este caso, y referido a la voz, incluira su digitalizacin, probablemente su compresin, para que ocupe
menos ancho de banda (robustez frente a retardos) y por fin la codificacin propia del canal.

312
La digitalizacin de la voz, al organizarla en numerosos paquetes, que, en principio, sern transmitidos de
forma independiente, permite utilizar el canal cuando no se conversa. Estas tcnicas, que remiten, como
idea central al concepto de voz sobre IP, permiten obtener un mayor rendimiento y aprovechar todo el
potencial que ofrecen las redes de conmutacin de paquetes.
Las tecnologas de red que permiten realizarlo son numerosas, algunas de ellas ya se han presentado. Lo
que resulta de inters en la integracin son los nuevos desarrollos, que pueden englobarse bajo el epgrafe
de redes de nueva generacin o NGN, por sus siglas en ingls. La recomendacin Y.2001 de la UIT-T,
presenta una visin general de estas redes.
2.1. Redes de Nueva Generacin
Existe una idea, a nivel internacional, que se da en llamar infraestructura mundial de la informacin, o GII,
trmino acuado por Al Gore, y que se refiere al conjunto de capacidades que ofrecen las redes de
comunicacin, y el aprovechamiento de sus capacidades para conseguir un mundo mejor.
Simplemente es un trmino que se ha de conocer. Algunos trminos como ste son vagos en su definicin.
Otro trmino que acu Bill Clinton y Al Gore fue autopistas de la informacin. Hoy da puede ser un
trmino antiguo, pero en 1992 contribuy, entre otros factores, a lanzar la economa estadounidense y
generar una estupenda burbuja tecnolgica.
La GII, sera el conjunto de redes y tecnologas que permiten comunicaciones multimedia a nivel mundial.
Su concepto, puede variar segn los pases y por ello es arduo el trabajo de normalizacin. La autopista de
la informacin mundial, ser el agregado de nuevas tecnologas, servicios y aplicaciones integrados en red.
Las redes de nueva generacin seran subconjuntos de esa GII que, trabajando de forma transparente
permitiran la interoperabilidad entre sistemas y el soporte de aplicaciones a nivel mundial. Uno de los
objetivos del desarrollo de las NGN es servir de punto inicial para la convergencia de redes y servicios.
La ITU define una NGN como una red de paquetes que permite prestar servicios de telecomunicacin, que
puede utilizar mltiples tecnologas de transporte transparentes para los servicios que prestan. Deben ser
capaces de permitir a los usuarios el acceso a redes y proveedores libremente y soportar movilidad.
El concepto de movilidad se refiere a la capacidad del usuario para acceder al servicio, independientemente
de su ubicacin y del entorno tcnico, salvando por ejemplo acuerdos entre operadores de red. Se incluira
la capacidad de comunicarse con o sin continuidad de servicio.
La Comisin Europea define las redes de acceso de nueva generacin como "redes de acceso cableadas
que consisten total o parcialmente en elementos pticos y son capaces de prestar servicios de acceso de
banda ancha con caractersticas mejoradas en comparacin con las redes de cobre existentes". Esta
definicin est centrada en redes fsicas, lo que en principio, puede dejar fuera de juego las redes radio.
Una NGN, como integradora de sistemas, debe proporcionar la capacidad de ofrecer cualquier servicio de
comunicaciones, presente o futuro, de forma independiente del medio que se utilice, con cualquier esquema
de codificacin e integrando infraestructura, protocolos, etc. El desempeo de las nuevas redes y sistemas
ha de ser capaz de soportar las distintas demandas de ancho de banda de cada tipo de trfico. As, se hace
nfasis en la personalizacin de los servicios por parte de los proveedores, que darn la posibilidad de
personalizarlos para casa usuario.
Caracterstica fundamental de una NGN es la diferenciacin entre servicios y transporte. De esta forma, el
desarrollo de cada aspecto particular no afectar a otros. Por tanto, en las arquitecturas NGN existir una
diferenciacin entre funciones del plano de servicios y el plano de transporte.
Como hasta ahora se realiza en las redes clsicas, las funciones de control, servicios, seguridad o medios,
pueden ser distribuidas a lo largo de la infraestructura de red, de forma que existan canales de sealizacin
o control con interfaces abiertas. Esto obliga a normalizar protocolos de comunicacin y los que permitan la
interoperabilidad entre operadores y las redes existentes.
Aspectos especficos, de ciertos servicios, como el vocal, deben tenerse en cuenta al integrarse en una
infraestructura de nueva generacin. Deben proporcionarse los mecanismos de proteccin para la
comunicacin segura de informacin sensible a travs de la red, protecciones contra usos fraudulentos y
proteccin de la propia infraestructura. Actualmente, se ofrecen servicios similares al usuario en los accesos
fijos y en redes mviles, aunque se siguen considerando clientes diferentes, con configuraciones de servicio
distintas y sin conexin entre los diferentes servicios.
La movilidad debe ser una propiedad natural de las nuevas redes, de forma que se permita la prestacin
coherente de servicios a cualquier usuario. Es decir, el usuario es considerado una entidad,
independientemente de la tecnologa de acceso a la red que utilice.

313
Como objetivos de las NGN, se citan promover la justa competencia, definir la arquitectura y capacidades
que permitan cumplir la normativa, ofrecer acceso abierto a las redes asegurando la prestacin y acceso
universales a los servicios, favoreciendo la igualdad de oportunidades de los ciudadanos o reconocer la
necesidad de cooperacin con los pases menos desarrollados.
Como caractersticas destacables de las redes de nueva generacin se encuentran la transferencia basada
en conmutacin de paquetes, separacin de las funciones de control en capacidades de portador,
llamada/sesin, y aplicacin/servicio, separacin entre la prestacin del servicio y transporte, definicin de
interfaces abiertas, capacidades de banda ancha con QoS extremo a extremo o la convergencia de
servicios fijos y mviles.
Adems, las NGN deben proporcionar capacidad de comunicaciones en caso de desastre, priorizando el
trfico de las autoridades y dando trato preferente al trfico de emergencia. Puede ser necesario adoptar
medidas para asegurar que se incluyan requisitos y capacidades de socorro en caso de desastre.
2.2. Arquitectura de Red
Un modelo funcional de una NGN, describira el sistema atendiendo a su funcionamiento, identificando las
entidades que ofrecen una nica funcin como el control, la seguridad o la gestin. Las relaciones entre las
entidades se identificaran en forma de puntos de referencia o interfaces. Por tanto, la arquitectura funcional
de una NGN debe tener en cuenta, al menos los aspectos de:
- Identificacin de normas para soportar servicios en el dominio de uno o distintos operadores
- Definicin de modos de interoperabilidad con terminales tradicionales
- Soporte a servicios extremo a extremo, control de llamada y movilidad en redes heterogneas
- Definicin de funcionalidades de terminales, su evolucin y relacin con la red.
La arquitectura de red es diferente a lo estudiado en el modelo OSI. Las nuevas redes como integradoras
de servicios y sistemas deben ser compatibles con redes antiguas, lo que implica arquitecturas diferentes.
As, una red puede no estar estructurada en los siete niveles OSI, o las funciones de su modelo estructural
no corresponderse unvocamente con el modelo, como ocurre con Ethernet.
La arquitectura de una NGN se resume
horizontalmente en dos planos: el de servicios y el de
transporte. Este modelo trata de independizar el plano
de servicios para que su evolucin y desarrollo no se
vea influido por aspectos del transporte u otros.
Adems, se establece una divisin vertical que afecta
a ambos planos referida a los aspectos de control de
la red, gestin, seguridad, etc. Es lo que se pretende
representar en la figura.
En la divisin horizontal, en el plano de transporte hay que tener en cuenta que existe un conjunto de
funciones relacionadas encargadas slo del transporte de informacin entre dos puntos de la red. Este nivel
de transporte puede ser cualquier tecnologa de red. Puede estar formado por una tecnologa que incluya
los dos o tres primeros niveles OSI u otra estructura. Debe proveer es interoperabilidad y conectividad con
las especificaciones NGN.
Entre las funciones que debe ofrecer deben encontrarse la conectividad entre usuarios, entre el usuario y el
nivel de servicios y entre plataformas de servicio.
El nivel de transporte puede implementar cualquier filosofa de red, como puedan ser la conmutacin de
circuitos orientado a conexin (CO-CS, por sus siglas inglesas), conmutacin de paquetes orientado a
conexin (CO-PS) o conmutacin de paquetes no orientado a conexin (CL-PS). En las NGN se puede
considerar que el protocolo IP es de los ms indicados para nuevos servicios y soportar los tradicionales.
En el estrato de servicios, se sitan los servicios de usuario, como puedan ser el de telefona, datos,
videoconferencia, etc. En este nivel pueden encontrarse las plataformas que los ofrecen y que fsicamente
estarn distribuidas a lo largo de la geografa de la red.
Cada uno de los planos horizontales referidos a distintos servicios, implementar el modo concreto de su
prestacin. As, si un servicio se refiere a un servicio web, su definicin constar de lo necesario para que
sea efectivo. De esta manera en esa parte del estrato de servicios podrn definirse otros planos internos
como la parte de usuario, de control, de seguridad, etc.
Cada estrato tiene sus funciones y dominios administrativos, independientes entre s, en particular desde el
punto de vista tcnico. La distincin entre servicio y transporte origina los siguientes conceptos:

314
- Estrato de Servicio: Parte de la NGN que proporciona funciones de usuario y de control y gestin de
los recursos de servicio y red. Se compone de la aplicacin y servicios definidos entre entidades
pares. Cada capa en este estrato tiene sus propios planos de usuario, control y gestin.
- Estrato de Transporte: Parte de la NGN que proporciona la transferencia de datos y sus funciones
de control y gestin de los recursos de transporte. De igual modo, en el estrato de transporte se dan
sus propios planos de usuario, control y gestin.
La gestin y control de la NGN se entienden como aspectos verticales a la organizacin del sistema, de
forma que el plano de gestin de la NGN consta de la unin del plano de gestin del estrato de servicio y el
de transporte. Y lo mismo para el plano de control, que consiste en la unin del plano de control del estrato
de servicio y del estrato de transporte. Puede darse el caso de funciones de gestin y/o control comunes.
El anlisis de los servicios y las funciones debe ser tratado de forma diferencial, para lo que sirve de gua la
recomendacin UIT-T Y.110, que ayuda a distinguir entre aspectos de aplicacin, medios o infraestructura.
Los servicios y funciones se relacionan, ya que las funciones exigidas marcan la definicin de los servicios.
La relacin funcin-servicio no es de uno a uno, puesto que una funcin puede ser utilizada por dos
servicios distintos, de ah la necesidad de diferenciacin.
Como orientacin de diseo general, al menos se deben distinguir dos tipos o grupos de funciones, las de
control y las de gestin, que en la figura se representan como planos verticales. Esto facilita la definicin de
interfaces en un mismo plano y con los estratos horizontales que ser usada para especificar el modelo
funcional general del sistema.
Los recursos, pueden referirse a elementos hardware o software utilizados en la red o en los servicios.
Pueden distinguirse recursos de transporte, de procesamiento (BBDD) u otros considerados en el anlisis.
La negociacin de la calidad de servicio (QoS) entre sistemas extremos debe estar definida. Al menos habr
que tener en cuenta la QoS extremo a extremo para telefona en redes de conmutacin de paquetes, los
mecanismos de capa inferior para obtener la QoS de capa superior para multimedia y el control de QoS de
capa inferior entre dominios y percepcin del usuario extremo.
Un aspecto importante en la integracin de sistemas es la separacin del control y la prestacin del servicio
en la subred y la extensin del control del servicio para telefona y multimedia. El uso de interfaces por parte
de proveedores a terceros, aconseja la especificacin de interfaces abiertas en las plataformas de servicio.
Las plataformas de servicio deben tener en cuenta la definicin de arquitecturas de control que incluyan los
interfaces e intermediarios, soporte de servicios a travs de distintas redes (itinerancia e interoperabilidad) o
el soporte a la presencia y control del usuario en servicios personalizados y la gestin de red debe
considerar la mejora de la arquitectura de gestin y definicin de servicios e interfaces de red como la
gestin de incidentes, tarificacin o calidad as como la posibilidad de evolucin.
Los aspectos de seguridad son cruciales. Se apoyan en un gran trabajo de normalizacin de interfaces y
aplicaciones, para que se pueda implementar la seguridad mediante componentes especficos. La
seguridad debe referirse a las vulnerabilidades en el control, gestin, servicios o infraestructura de red.
En general, se trata de realizar el trabajo por reas especficas, dividiendo las tareas necesarias para
implementarla. El producto final debe ser una percepcin de sistema seguro extremo a extremo, que sea
aplicable a elementos de la red, aplicaciones o servicios. Los aspectos de seguridad deben orientarse hacia
la implantacin de una poltica de seguridad operacional, definicin de directrices de seguridad, protocolos e
interfaces adecuados y dotar de una arquitectura slida y escalable de seguridad a la red.
La arquitectura de control de red debe considerar los recursos y QoS en el acceso a la red y en su ncleo,
los medios de transporte de informacin, controles de llamada o sesin y el control de servicio. Define
tambin los sectores funcionales en los puntos de referencia como pasarelas de la frontera de red y tiene en
cuenta los requisitos funcionales del acceso, en interfaces usuario-red, red-red o red-proveedor de servicio.
Las arquitecturas de red actuales tambin requieren una evolucin para tratar adecuadamente la movilidad.
La integracin de los sistemas requiere permitir comunicaciones de banda ancha transparentes de red fija a
inalmbrica y movilidad entre diversas tecnologas de acceso.
El usuario debe poder usar tecnologas de acceso que permitan cambiar entre puntos de acceso cableados
o inalmbricos de forma transparente y sin cortes. Los requisitos de movilidad incluiran la posibilidad de
acceder desde cualquier punto de acceso de red y el conocimiento por parte de la red de la disponibilidad
del usuario y el alcance. Otras capacidades deben ser el soporte de movilidad personal y de terminal.
Como resumen, la integracin de sistemas debe ofrecer un acceso a red sin restricciones a los usuarios, de
forma independiente del proveedor de servicios, soportar movilidad y prestar el servicio de forma coherente.
La integracin de estos sistemas puede entenderse compuesto de tres desarrollos relacionados:

315
- Ncleo de red: Evoluciona a la conmutacin de paquetes, ms eficiente al permitir el transporte de
distintos trficos de forma integrada. Esto implica a los operadores a la hora de intercambiar trfico.
- Acceso a la red (NGA): En la red fija, la ltima milla, tramo entre la central del operador y el
usuario se adapta para ofrecer acceso de banda ancha. El medio suele seguir siendo par de cobre.
La evolucin es sustituirlo por fibra ptica, ms indicado para soportar servicios de video.
Inconvenientes son la inversin a realizar, pero se ahorran costes de mantenimiento y operacin.
- Equipamiento de usuario final: Evoluciona hacia equipos IP con mayor inteligencia. No slo routers
domsticos o PC que desde hace tiempo superan las prestaciones de televisores y telfonos,
tambin los terminales mviles son equipos muy potentes.
3. MEDIOS DE INTERCONEXIN
Los medios de interconexin para la integracin de sistemas incluyen el cable de cobre y la fibra ptica. Ya
se han expuesto las caractersticas de los medios de interconexin estndares, incluyendo los medios no
guiados. Por tanto, lo particular de la interconexin se refiere a la forma de organizar cables, conectores e
informacin para lograr la comunicacin. Es decir, los estndares de los medios de conexin.
4. ESTNDARES
Las normas y estndares existentes para la interconexin de sistemas, surgen de la necesidad de
compatibilidad entre fabricantes. Los estndares definen aspectos de la transmisin, como niveles de las
seales electromagnticas, las dimensiones de los conectores o la lgica de comunicacin.
4.1. Estndares de Fibra ptica
La fibra ptica posee gran importancia, ya que en la integracin de sistemas, la tendencia es sustituir los
medios de cobre por fibra. El despliegue es centrfugo y teniendo su origen en el ncleo de red se extiende
hasta acercarse cada vez ms al usuario final. Sus ventajas con respecto al cobre son un mayor ancho de
banda, mayores secciones de regeneracin o menor coste de operacin y mantenimiento.
El despliegue de la infraestructura es caro y su amortizacin y evolucin algo lento. Adems existen
cuestiones legales que afectan a la regulacin, normativa de autoridades, etc. Se distinguen distintos
despliegues, en funcin de la cercana de la fibra al abonado. Se conocen en general como FTTx, ya que
todos comienzan por sus siglas en ingls, FTT y es la ltima letra la que cambia. Son:
FTTC. Fibre To The Cabinet, To The Curb, o To The Node (FTTN). Se podra traducir como fibra hasta el
bordillo, hasta la manzana o hasta el armario. Se cablea la red con fibra hasta el nodo local que aglutina a
los abonados de varios edificios. A partir del nodo, la red es de cable de cobre.
FTTB. Fibre To The Building. Fibra hasta el edificio. La red despliega fibra ptica hasta el exterior del
edificio. La distribucin final sigue siendo de cobre hasta el abonado. El ancho de banda que puede
alcanzarse con este despliegue es considerable..
FTTH. Fibre To The Home. Fibra hasta el hogar. La fibra llega hasta la vivienda del usuario, lo que permite
alcanzar anchos de banda superiores. Se distingue entre FTTH-PPP (punto a punto) y FTTH-PON (red
ptica pasiva).
La diferencia estriba en que FTTH-PPP dedica una fibra a cada usuario mientras FTTH-PON usa fibra
multimodo y cada frecuencia de luz (color) transporta una seal diferente para cada usuario. Al no existir
componentes activos entre operador y usuario, la red se denomina pasiva (PON). Las diferencias se reflejan
en la capacidad, costos de despliegue y operacin. La filosofa PPP o PON tambin es aplicable al
despliegue FTTB. En general, cuanto ms cercana est la fibra al usuario el ancho de banda ser mayor.
Otro despliegue con medios estndares es el de redes HFC (Hybrid Fiber Coaxial), que combina fibra ptica
hasta el vecindario y cable coaxial hasta el usuario. Es conocido por los equipos de red y abonado,
llamados cablemodem. El desarrollo del estndar DOCSIS ha permitido a estas redes alcanzar anchos de
banda similares a los de despliegues FTTx, lo que ahorra costes. En general, la opcin FTTC/VDSL es ms
econmica que FTTH, aunque se pierda capacidad al no tener fibra hasta el usuario.
4.2. RS-232
El estndar RS-232 (Recommended Standard 232) es uno
de los ms usados en interconexin de sistemas. Define el
interfaz de comunicaciones tpico entre un DTE y un DCE
por medio de un canal de transmisin de datos serie. El
estndar define las caractersticas y modos de operacin del
interfaz serie, en general en comunicaciones punto a punto.
En la figura se muestran respectivamente los conectores tpicos RS-232, DE-9 hembra y DB-25 macho. La

316
versin internacional de la norma se describe en las recomendaciones V.24 y V.28 del ITU-T. Se han
publicado cuatro versiones de la norma, la ltima la RS-232D. Las versiones A, B y C no describen las
caractersticas mecnicas, especificando que el conector en el ETD debe ser macho y en el ECD hembra.
La versin RS-232D especifica que el conector a usar debe ser el DB-25.El conector DB-25 permite
disponer de mayor flexibilidad gracias a su mayor nmero de pines, pero existen versiones de 15 y 9
patillas, siendo el de 9 pines uno de los ms utilizados. De los 25 pines se utilizan 22, dispuestos de forma
recta (DB-25) lo que no da lugar a errores de cableado y permite trabajar en modo sncrono o asncrono. Si
se utilizan slo los 9 pines del conector DB-9, slo se dar el modo asncrono. Existen conexiones DTE-
DTE o DCE-DCE con diferentes cableado.
Las seales en un DTE y un DCE deben tener el mismo nombre. Por ejemplo, aunque el pin 2 del DTE
transmita y el pin 2 del DCE reciba, ambas seales se denominan Transmit Data. Existe un juego de
seales secundario que incluye las seales de control, para enviar informacin de configuracin, solicitar
retransmisiones y otras funciones.
Para asegurar la fiabilidad del medio tpicamente trabajan a velocidades bajas y distancias cortas. Segn la
norma, el interfaz RS-232 se define para distancias de unos 15 metros y tasas de transmisin de hasta 20
Kbps. El modo de trabajo puede ser sncrono o asncrono y en canales smplex, dplex o semidplex.
Asimismo la norma especfica lneas de negociacin para la adaptacin de velocidades entre dispositivos
que trabajen a distintas tasas de transmisin.
Si se conectan las lneas RTS y CTS, se obtiene un bucle de prueba del circuito. La representacin del 1 y
el 0 lgico se hace con niveles de tensin negativos y positivos respectivamente. En una comunicacin
asncrona se necesitan bits de arranque y parada. Los bits de Paridad se utilizan para verificar la integridad
de la informacin.
Las lneas RTS y CTS son de negociacin y realizan ese control de flujo. En un principio no fueron
pensadas para estas funciones, pero su amplia utilizacin en esta forma, lo ha hecho casi estndar. El
dispositivo UART (Universal Asynchronous Receiver-Transmitter) implementa las normas del interfaz y entre
sus funciones se encuentran la negociacin de tensiones de transmisin, control de seales o conversin
entre transmisin paralelo a serie o serie paralelo.
Para superar algunas limitaciones de RS-232, se public la norma RS-422 como nuevo estndar, que viene
a mejorar aspectos como la tasa de transmisin, la distancia, tensiones ms acordes a las utilizadas en
transmisin o no ser una lnea equilibrada, para presentar ms robustez frente a interferencias.
4.3. V.35
V.35 es una norma desarrollada por el ITU, que puede considerarse incluida en la norma V.11. Define una
transmisin sncrona de datos que especifica tipo de conector, pineado (o funcionamiento y disposicin de
los cables en el conector) y niveles de tensin y corriente a usar. Las seales usadas son combinacin de
las especificaciones V.11 para sincronismo y datos y V.28 para seales de control. Utiliza seales
balanceadas (niveles de tensin diferencial) para transportar datos y sincronismo (alta velocidad).
Para la sealizacin y control (baja velocidad) se utilizan seales
desbalanceadas (niveles de tensin referidos a masa). Los relojes de
transmisin y recepcin son independientes y la velocidad vara entre 56 Kbps
y 2 Mbps (puede llegar a 10 Mbps), dependiendo del equipamiento y cables
usados. Los valores tpicos son Nx64 Kbps: 64 Kbps, 128 Kbps, 256 Kbps, 2
Mbps, etc. En la figura se muestra un conector V.35.
Tpicamente se utiliza para transportar protocolos de nivel 2 como HDLC, X.25, SNA, PPP, etc. El conector
tradicional es el MRAC-34, estandarizado en la norma ISO 2593 tambin conocido como Winchester de 34
pines. Pueden usarse conectores DB-15 o de alta densidad (estndar o propietario, por ejemplo de Cisco).
Servicios tpicos ofrecidos a travs del interfaz V.35 son el acceso a Internet, a Frame Relay o circuitos
punto a punto para transporte multiprotocolo, por poner algunos ejemplos.
5. PROTOCOLOS DE ACCESO A WAN
Como caso general, para interconectar redes locales se precisa una red WAN. Para explicar ms en detalle,
las particularidades de su implementacin se presentan los protocolos ms utilizados.
5.1. X.25
Es un estndar de conmutacin de paquetes usado en redes WAN, definido en 1970 por el CCITT (ITU-T),
prcticamente obsoleto, pero con importancia acadmica. Se concibe en la red pblica de conmutacin de
paquetes (tasa de transmisin mxima 64 Kbps). Ofrece un servicio orientado a conexin, fiable (basado en
CV), pensado para grupos cerrados (VPN), con retardo de trnsito y paquetes de interrupcin.

317
Sus protocolos permiten una comunicacin muy fiable a cambio del empleo de mucho tiempo de proceso.
Se da la posibilidad de establecer una llamada rpida. Entre dos nodos de la red X.25 se establece un CV
permanente, pero si la lnea que une el host a la red es de menor velocidad, la lnea podr ser usada por
ms usuarios. En X.25 existe una conexin extremo a extremo lgica, no permanente; se establece con
cada paquete. Hay establecimiento y liberacin de conexiones. Los CV pueden ser conmutados
(establecimiento, uso y liberacin) o permanentes, si as se contrata con el operador.
El servicio asegura que todos los paquetes llegan en el mismo orden en se enviaron y confirma entrega y
control de flujo. X.25 supone una norma pesada en cuanto al proceso de los nodos, por eso se ha sustituido
por tecnologas ms giles como Frame Relay o MPLS.
5.2. Frame Relay
Frame Relay se define en 1984 como una propuesta de la ITU para normalizar y disear un servicio basado
en circuitos permanentes de alta velocidad y capacidad. Es un servicio de red pensado para el flujo de datos
y la interconexin de LAN. Se define el servicio extremo a extremo y especifica el dilogo. Surge como una
mejora de X.25, capaz de ofrecer ms velocidad y un tamao de paquete mayor.
La conmutacin en FR se refiere al encaminamiento en los nodos. El multicast cada vez iba adquiriendo
ms importancia y FR se adapt para ofrecer ese servicio. La utilizacin de CVP, es la tnica general, pero
existen implementaciones de FR en que no se utilizan.
FR puede describirse como un servicio para datos, no pensado en principio para transmisin multimedia,
aunque es soportado. Es un servicio multiplexado asncrono, es decir no sujeto a un reloj de red y en
comparacin con X.25 utiliza sealizacin fuera de banda, con escasos controles ni de flujo ni de errores.
Bsicamente se ocupa de evitar la congestin global de la red.
Se usan las normas V.24 y V.35. A nivel de enlace se cuida el entramado, proteccin frente a errores y
multiplexin de varias conexiones. Existen directivas para el control de congestin que puede ser en ambos
sentidos de la comunicacin, por lo que en la cabecera de los paquetes existen dos bits para indicarlo.
Los servicios FR se resumen en conmutacin de paquetes, no fiable y con tasa media de transmisin segn
contrato, que se especifica con el CIR (Conmitted Information Rate) de los CV contratados. Si el usuario no
se ajusta al CIR, puede perder informacin. La velocidad aumenta sobremanera con respecto a X.25.
La red tambin debe cumplir el CIR, para lo que se usa un bit, DE, de descarte. Si se cumple la tasa
contratada, el bit DE se le asigna el valor cero. Si el paquete es desechable, se le asigna el valor uno. A
nivel de enlace, donde se sita el protocolo LAP-F, se realizan funciones de nivel 2 y algn aspecto de nivel
3. A veces se le denomina nivel 2-3.
En la estructura de la trama LAP-F se reserva otro bit, el DLCI, para indicar la contratacin de un servicio de
enlace fiable. Si es el caso se asignar al bit DLCI el valor cero.
5.3. RDSI
La Red Digital de Servicios Integrados, RDSI (ISDN), es una tecnologa de red surgida hacia 1984, en la
que se pretenda soportar servicios de distinto tipo, como el telefnico, datos, imagen, etc.
El acceso a RDSI se realiza por medio de un bucle ms elaborado que el de abonado
conectado a un PTR (Punto de Terminacin de Red). El PTR en RDSI se denomina NT1
(Network Terminal) o TR1 (Terminal de Red) y consta de cuatro pares (transmisin,
recepcin, alimentacin y auxiliar).
Si se desea conectar perifricos no compatibles en principio con RDSI o una pequea red
de dispositivos que compartan la conexin RDSI, se pueden usar adaptadores especficos
para cada necesidad. El interface utilizado en estos casos es el interface S.
Los tipos de canales multiplexados son los canales tipo B de 64 Kbps para datos y voz, el canal D de 16 o
64 Kbps, tpicamente 16, de sealizacin y los canales H, que permiten tasas de transmisin superiores a
64 Kbps. Los dos tipos ms extendidos son el H0 a 384 Kbps y el H10 a 1920 Kbps.
Tpicamente se contratan n accesos tipo B y uno tipo D. El acceso bsico se denomina BRI (Basic Rate
Interface), compuesto de dos canales B y uno D. El servicio primario suministra 30 canales B y uno D, tpico
en Europa. En USA y Japn se configura con 23 canales B y uno D.
En RDSI es que se pueden producir colisiones en el acceso si dos hosts quieren acceder a la vez. La
resolucin se realiza escuchando el canal E (eco del canal D), antes de transmitir, y slo se transmite si se
escucha una seal indicativa de canal libre.

318
Para el acceso a Internet por medio de RDSI, se necesita un protocolo de entramado llamado PPP (Point to
Point Protocol) a nivel de enlace. A nivel de red podra montarse IP. Estos dos protocolos seran parte del
plano de usuario desde perspectiva RDSI, es decir, RDSI ofrece el recurso fsico estructurado.
Si por ejemplo se desea establecer una comunicacin con un equipo de red que trabaje con X.25, bastara
con configurar en el nivel de enlace el protocolo LAP-B y un protocolo X.25 de nivel de red, consiguiendo la
comunicacin con X.25 sobre RDSI. LAP-B es muy similar a LAP-D. En este sentido, un caso de estudio es
el sistema euro-ISDN, el servicio ISDN europeo. Suele distinguirse la siguiente clasificacin de servicios:
Tipo de acceso BRI o PRI; servicios portadores de voz (3.1 KHz), transporte de datos (64 Kbps) y
conmutacin de paquetes; Servicios suplementarios CLIP, CLIR, MSN, TP y Sub-adressing, siendo:
CLIP, la identificacin de llamada entrante, CLIR la restriccin de identificacin de la lnea llamante, MSN la
posibilidad de mltiples abonados a una misma lnea, TP, la portabilidad del terminal y Sub-adressing, la
adicin al terminal de un dgito para su identificacin en la red.
5.4. ATM
ATM es el acrnimo de Modo de Transferencia Asncrono. Es una tecnologa de conmutacin definida por el
CCITT para redes WAN. Surge como respuesta a la necesidad de mayor velocidad y ancho de banda para
transmisin de datos y en especial aplicaciones como el audio y el vdeo.
Las grandes redes de conmutacin, en sus ncleos y enlaces troncales suelen emplear a nivel de
transmisin tecnologa SDH, Jerarqua Digital Sncrona, tambin conocida como SONET, por ser muy
similar. ATM supone una concepcin diferente a las tecnologas anteriores siendo empleada, entre otras, en
redes SDH y SONET para multiplexado y conmutacin.
La idea principal de ATM no es conmutar circuitos o asignarlos permanentemente, sino realizar conmutacin
de paquetes de datos pequeos, celdas ATM, enrutadas por trayectos y caminos virtuales, aprovechando al
mximo la capacidad del canal de transmisin. ATM est muy relacionado en su concepcin con SDH, para
que su integracin combine las ventajas del ancho de banda de la fibra ptica, con las tcnicas de
multiplexado y conmutacin, que generan retrasos pequeos en las comunicaciones extremo a extremo.
La forma de trabajo de ATM consiste en enviar sus celdas en funcin del flujo que genere la fuente de
informacin, si no hay datos, no se enva nada. Cuando se transmite, los datos se componen en la celda
ATM y se aade su cabecera correspondiente. Con la informacin de cabecera, los nodos de la red eligen la
ruta a seguir, que no tiene por qu ser la misma para todas las celdas de una conexin dada.
Para dar servicio a diferentes trficos, como voz, vdeo o datos, surgi la disyuntiva de utilizar un tamao de
celda reducido o algo mayor. Esta decisin de diseo no es trivial, ya que con un tamao de celda pequeo
se pierde ancho de banda, el destinado a las cabeceras, y con un tamao grande, se puede generar mucha
fragmentacin, es decir capacidad desaprovechada al enviar datos pequeos. La decisin final dej definido
el tamao de celda en 53 bytes, de los que 5 se destinan a la cabecera, la informacin de control.
En ATM se diferencia entre canales y caminos virtuales, que se identifican con dos nmeros, VCI o
Identificador de Canal Virtual y VPI o Identificador de Camino (Path) Virtual. Un camino virtual es una ruta
entre nodos ATM y pueden contener varios canales virtuales.
Cuando se transmite con un requisito de calidad de servicio, se selecciona un canal virtual de origen a
destino, por el que circularn todos los datos. Los nodos irn cambiando la cabecera de la celda para seguir
el camino virtual entre los nodos que componen ese canal. El enrutamiento puede ser esttico o dinmico.
El problema de ATM es que el formato de celda es pequeo y se pierda eficacia, sobre todo en redes que
requieran altas velocidades. Sin embargo es muy usado para transporte en redes WAN de velocidades
medias como ADSL.
5.5. MPLS
La tecnologa de conmutacin de etiquetas de multiprotocolo o MPLS, consiste en un intento de unificacin
del servicio de transporte para redes de circuitos y datagramas. Se define en el RFC 3031 del IETF y ofrece
un servicio orientado a conexin estableciendo CV en redes IP.
MPLS intenta superar los problemas de ATM heredando sus ventajas. Se basa en el etiquetado de los
paquetes de datos para agilizar su trnsito, ya que los routers que atraviesa el trfico slo evalan esas
etiquetas, no las direcciones de destino. El etiquetado facilita la conmutacin de paquetes e indica un CV.
MPLS permite implementar de forma natural redes privadas virtuales (VPN), realizar ingeniera de trfico,
ofrecer calidad de servicio y proteccin frente a fallos y mantener CV. Adems, puede montarse sobre la
mayora de tecnologas WAN: Frame Relay, ATM, lneas punto a punto, etc.

319
La idea fundamental reside en que los paquetes a niveles inferiores no se examina, son enrutados con la
informacin de etiqueta, lo que independiza del protocolo de transporte. MPLS puede entenderse como un
protocolo entre los niveles 2 y 3 de OSI. Los objetivos marcados en el estndar definen que MPLS debe
soportar el envo unicast y multicast, poseer compatibilidad con la gestin de redes IP y con el modelo de
servicios integrados del IETF como RSVP y funcionar sobre cualquier tecnologa de transmisin.
El funcionamiento de una red MPLS se puede resumir as: cuando un paquete de datos entra en la red, un
equipo con un interface MPLS lo etiqueta en base a los parmetros de la comunicacin y segn la red o el
servicio contratado, el paquete puede seguir un CVP o un CVC. As puede trabajarse en forma ms
parecida a ATM con sus identificadores de circuito virtual o camino virtual (VPI/VCI) o a FR con sus DLCI,
independientemente del nivel 2 que sirva de subred.
La ruta seguida se fija desde el origen pero en cada salto, la etiqueta del paquete puede cambiar y pueden
apilarse para conseguir un enrutamiento jerrquico. El etiquetado consigue mantener menos informacin de
estado, que en casos como ATM. Cuando el paquete ha llegado al extremo de la red MPLS, la etiqueta es
retirada por el equipo frontera de la red y se entrega a otra red, la que sea.
De esta forma, MPLS ofrece ms rendimiento al aprovechar mejor el ancho de banda y los requisitos de
proceso en los routers, lo que deriva en menos costes. Soporta de forma nativa calidad de servicio,
introduciendo prioridades de trfico, lo que permite integracin de voz, video y datos.
MPLS es escalable y mejora la recuperacin frente a incidencias estableciendo enlaces redundantes y
conexiones de respaldo que se configuran ms gilmente que en ATM o FR, que obligan a establecer CV
de backup permanentes o conmutados.
5.6. ADSL
ADSL es el acrnimo ingls de Lnea de Abonado Digital Asimtrica. En realidad no se puede considerar
como una tecnologa de transmisin de WAN. Es una tecnologa de acceso a Internet, utilizada para la
transmisin de datos en la lnea de abonado de telefona, que se expone por su popularidad.
ADSL define una transmisin analgica de datos digitales sobre par de cobre telefnico, utilizando distintas
frecuencias para ofrecer voz y datos simultneamente. Las frecuencias bajas se usan para la transmisin de
voz analgica. Los datos se modulan y transponen en dos intervalos con anchos de banda diferentes, el
primero usado para en enlace de subida (upstream - de 25 a 138 KHz) y el enlace de bajada (downstream
entre 138 y 1104 KHz).
Esta diferencia en los anchos de banda de los canales de subida y bajada se debe a que, en general los
datos que se envan del usuario a Internet, sern pocos, por ejemplo pulsar un enlace de descarga de un
archivo, sin embargo, el enlace de bajada si suele necesitar alta capacidad. Esta es la razn de que se
denomine lnea de abonado asimtrica.
ADSL es una variedad de la tecnologa DSL, basada en estos principios. Cuanto ms se explota el ancho
de banda del par telefnico, ms se reduce la mxima distancia alcanzable entre cliente y central. Los
valores tpicos para ADSL se enmarcan entre 2 y 5 km.

320
TEMA 70. DISEO DE SISTEMAS EN RED LOCAL. PARMETROS DE DISEO. INSTALACIN Y
CONFIGURACIN DE SISTEMAS EN RED LOCAL.

1. INTRODUCCIN
2. DISEO DE SISTEMAS EN RED LOCAL
3. PARMETROS DE DISEO
4. INSTALACIN Y CONFIGURACIN DE SISTEMAS EN RED LOCAL
4.1. Instalacin
4.1.1. Cableado
4.1.2. NIC
4.1.3. Electrnica de red
4.2 Configuracin
4.2.1. Equipos
4.2.2. Electrnica de red
4.2.3. Servidores
4.3. Gestin

321
1. INTRODUCCIN
El anlisis e implantacin de un sistema en red consiste en un conjunto de actividades cuyo objetivo es
definir las instalaciones y los servicios de comunicaciones con que se va a dotar a la organizacin. Estn
orientadas a obtener el mximo rendimiento de la inversin en tecnologa. Si el anlisis es viable tcnica y
econmicamente, se proceder al diseo del sistema. Esto representa una etapa de mayor concrecin de
las soluciones a adoptar en la implantacin.
2. DISEO DE SISTEMAS EN RED LOCAL
El anlisis de un sistema en red, es el estudio estructurado de un sistema, existente o futuro, en que se
definen aspectos relacionados con su funcionalidad, estructura, impacto, etc. La implantacin del sistema en
red es el conjunto de actividades que logran poner en servicio el sistema. Est sometida a un proyecto en
que se especificarn tiempos, costes y procedimientos.
La gestin de un sistema en red consiste en la monitorizacin constante del sistema. Por tanto es la fuente
principal de informacin y sirve de base para el mantenimiento de la red y futuros anlisis.
La relacin entre el anlisis y la implantacin de un sistema en red tambin se refiere a la fase inicial de un
proyecto de despliegue o mejora de la infraestructura. Por tanto, el primer paso en la planificacin de un
sistema en red es el anlisis. El anlisis comienza con la definicin de la funcionalidad. Las necesidades de
la organizacin sern las que marquen el tipo de red a implementar y los servicios que soportar.
Las necesidades se plasman en requisitos de usuario, especificaciones que exige a su red el cliente o
peticionario. La enumeracin de los requisitos es un aspecto tan importante del proyecto de implantacin,
que debe reflejarse muy en detalle en el proyecto; es una fase del proyecto con entidad propia.
El anlisis debe tener en cuenta aspectos como la definicin del problema, las funciones de los elementos
de configuracin, disponibilidad, caractersticas, comportamiento del software a instalar, del sistema y la
informacin. La fase de anlisis debe aclarar estos aspectos, porque errores o malas interpretaciones no
atajadas en fases tempranas se proyectan en costes elevados en fases ms maduras.
La viabilidad posee dos vertientes, la tcnica y la econmica. La primera es la posibilidad real de
implementar la solucin con la tecnologa disponible y la viabilidad econmica se refiere a la posibilidad de
sufragar la solucin con los recursos econmicos disponibles.
El anlisis debe generar documentos que especifiquen el equipamiento con que se dotar el proyecto, el
software, recursos humanos y todos los elementos que afecten al sistema. Es necesario establecer
restricciones temporales para delimitar el impacto que tendr sobre la organizacin y sobre el presupuesto.
Podra decirse que, en general, si el proyecto excede la planificacin temporal, se incurre en gastos extra.
El equipo de anlisis deber definir y evaluar el rendimiento a exigir, la
calidad del servicio, el equipamiento y el personal implicado con sus roles
respectivos. Si se trata de una migracin o actualizacin hay que tener en
cuenta los periodos en que el nuevo sistema convivir con el existente y su
integracin.La viabilidad econmica especificar no slo los costes
derivados de la ejecucin del proyecto, sino los costes futuros de
mantenimiento y gestin. En general se optar por tecnologas con un
amplio soporte comercial que permitan y faciliten la evolucin del sistema y
ventajas econmicas como la recompra de equipos obsoletos o la
compatibilidad entre tecnologas de distintos proveedores.
Dependiendo del alcance del proyecto y el criterio del analista, pueden
considerarse en la fase de anlisis requisitos de seguridad del sistema, en
cuanto a equipamiento o como parte de la operativa de red. Este punto debe
ser tenido en consideracin al implantar el sistema dado que de la seguridad
puede depender la continuidad de la organizacin.
Realizar un documento de anlisis de un sistema en red, es una tarea que puede ser compleja en funcin
de la dimensin y requisitos. La forma de realizar un anlisis no es estndar. Como gua orientativa puede
servir el diagrama de flujo de la figura, que pretende mostrar un cierto procedimiento simple y fcil de
recordar con etapas genricas.
Como etapa inicial, el anlisis surgira de la deteccin de una necesidad, que puede ser de distinto tipo,
afectar de forma parcial al sistema en red, o a su totalidad. Identificada la necesidad habra que recopilar la
informacin del sistema, incluyendo los requisitos de usuario. Tras esta etapa se realizaran una serie de
hiptesis o propuestas de trabajo, como el nmero de usuarios estimados, la carga de trabajo, etc. que
deben ser validadas con la ayuda de simulaciones, maquetas o estudios previos.

322
El cliente final ser el ms interesado en disponer de una maqueta o prototipo del futuro sistema. Como
resultado del proceso de validacin, se procedera a la presentacin de los resultados del anlisis.Si no se
cumplieran las expectativas, habra que volver a redefinir la planificacin del proyecto. Una vez obtenido el
anlisis, sus resultados darn comienzo a la siguiente fase del proyecto de implantacin del sistema, el
diseo, donde se detallarn con ms profundidad los aspectos tratados en el anlisis.
Los resultados se expondrn en algn tipo de documento base para el cliente y el equipo de diseo para
definir las soluciones concretas que se aplicarn en cada punto tratado. La forma de estructurar los
resultados del anlisis son abiertas y cada analista las podr presentar segn su experiencia o inters en
determinado rea con mayor relevancia comercial u otra razn, sin embargo en todos los anlisis debe
haber puntos comunes presentados bajo los epgrafes que se consideren oportunos.
A continuacin se presenta un posible modelo de anlisis de la implantacin de una red LAN, que puede ser
un caso tpico. Hacer notar que el anlisis de un sistema en red puede estar referido a la implantacin de
otro tipo de red, como una WAN empresarial.
El anlisis en este caso, dependiendo de la magnitud del proyecto podra contener la misma estructura
general, aunque incluyendo los aspectos particulares de la naturaleza de una red WAN. Por tanto, como
mnimo, el anlisis, podra constar de dos partes: una definicin, si es un proyecto de implantacin o una
descripcin del sistema, si ya existe, y una enumeracin de requisitos.
En la definicin o descripcin del sistema habra que considerar su alcance y los usuarios implicados en la
operativa habitual del sistema. En la enumeracin de requisitos, se describen las necesidades y parmetros
de funcionamiento del sistema. En la parte de definicin del sistema se describe de forma inicial el proyecto,
el alcance del sistema y su descripcin con modelos abstractos de alto nivel. Puede incluirse tambin la
planificacin del proyecto.
El alcance del sistema describir los objetivos para los que es concebido, tales como disponibilidad de la
informacin o comparticin de recursos. Debe definirse el equipamiento de red necesario y los aspectos de
conexin a nivel fsico y lgico garantizando la fiabilidad requerida. En los modelos de alto nivel se
especificarn las interfaces con el resto de sistemas implicados. En la identificacin de los usuarios pueden
establecerse sus perfiles iniciales y responsabilidades.
La enumeracin de los requisitos del sistema definir en detalle las exigencias impuestas para establecer
criterios que demuestren que se cumplen las especificaciones de cliente y describan con mayor precisin el
sistema. Ejemplos de requisitos que pudieran establecerse en un anlisis de red, seran el tipo de cableado
de la red, su topologa, tasa de transferencia mnima y en general, requisitos tpicos de funcionamiento de
una LAN y especficos marcados por el cliente. Mencin aparte merecen las tcnicas de recoleccin de
informacin.
Estas tcnicas son variadas y pueden darse en distintas
formas. Las ms comunes son reuniones con los
responsables de los departamentos implicados, dilogo
con los usuarios del sistema, observacin directa o
consulta de la documentacin del sistema, si existe.
La documentacin juega un papel muy importante en cualquier sistema, ya que protege, frente a variaciones
en los puestos de responsabilidad o encargados del mantenimiento. A la vez facilita futuros anlisis y sirve
de base eventualidades. Por estas razones cada vez ms las empresas son sensibles a este aspecto.
El proceso de captura de informacin debe contribuir a la identificacin de la funcionalidad del sistema, las
restricciones que ha de cumplir en cuanto a accesos, seguridad, desempeo o disponibilidad, que en el
fondo constituirn buena parte de los requisitos.
En sistemas ya implantados, para los que se realiza un anlisis, la colaboracin de los usuarios y
responsables es fundamental para el analista, que a partir de la informacin que obtenga, muchas veces
tcita, debe plasmarla en la definicin del sistema.
Por fin, una vez realizado el anlisis, se pasar a disear la solucin, lo que equivale a conseguir un grado
ms de detalle para el proceso de implantacin de la solucin.
3. PARMETROS DE DISEO
La fase de implantacin de un sistema en red comienza con el diseo de la solucin propuesta en el
anlisis. En general, habr que convivir con una complejidad importante, ya que suele ser comn que
existan distintos medios de transmisin en entornos LAN, con un gran nmero de equipos y adems se
requerir la conexin con redes externas, en particular Internet. El diseo correcto de la red no slo
garantizar su desempeo, sino que ante cambios o crecimientos futuros ahorrar tiempo y dinero.

323
El diseo de una red puede estructurarse en el diseo topolgico y el diseo jerrquico. El primero explicar
que topologa de red, fsica y lgica, ser por la que se decante la solucin y en el diseo jerrquico se
especificar qu tecnologas y equipamiento se utilizar en cada nivel de la arquitectura.
En el diseo topolgico, en general, tanto para una WAN empresarial como para una LAN, se dar como
caso tpico la topologa en estrella. En una red LAN resulta casi inmediato, al utilizar tecnologa Ethernet. En
una WAN pueden darse otras topologas, pero cuando al hablar de redes privadas virtuales, es comn
estructurar la red con CVP con topologa en estrella, donde el nodo central suele corresponder a la sede
central de la empresa y que se conectara con cada delegacin distribuida por la geografa.
En este tipo de organizacin de una WAN empresarial, el acceso a Internet de las delegaciones no suele
ser directo, sino que se centraliza en la sede. De esta forma si un usuario de una delegacin accede a
Internet, estar estableciendo una conexin con sus servicios centrales, que lo gestionarn.
Esta centralizacin evita duplicar la infraestructura de acceso y seguridad en cada delegacin. En un
sistema en red LAN, habr que definir dentro de la topologa la divisin horizontal (relativa a una misma
planta de un edificio) y vertical (relativa a la comunicacin entre distintas plantas o zonas), el cableado a
utilizar, la ubicacin de servidores, electrnica de red y la DMZ.
En un caso tpico, el cableado vertical requerir ms capacidad por transportar ms informacin, ya que
todo el trfico de una planta o zona se distribuye por estos enlaces. Ser conveniente por tanto la utilizacin
de medios tales como la fibra ptica. En el cableado horizontal se suele optar por el par trenzado. Si la LAN
fuese muy extensa, podra hablarse de una topologa en rbol, uniendo varias redes en estrella con
cableado vertical de alta capacidad. La unin de las distintas LAN en estrella se podra realizar con routers.
Para la conexin a la WAN empresarial o a Internet, si slo se requiere este acceso, en general se
contratar con un operador. La gestin de la seguridad sera responsabilidad de la empresa cliente, a no ser
que se establezcan acuerdos de mantenimiento y gestin.
En la siguiente figura se presenta un ejemplo tpico de topologa LAN ms o menos amplia, en que existan
equipos en distintas plantas de un edificio. Se puede disponer de un cableado horizontal tpicamente par de
cobre, que ir conectado a un switch. Los switches se conectan mediante cables de alta capacidad y a un
router que dar acceso a la DMZ, realizar la conmutacin entre VLAN y permitir la navegacin por
Internet. El esquema se puede complicar si existen ms routers o una topologa ms compleja.
La topologa lgica, ser en general, de difusin, debido a la tecnologa dominante Ethernet. No tendra
mayor importancia si no fuera por la prdida de rendimiento que se genera cuando el trfico es intenso. Por
tanto, habra que especificar es la segmentacin de la red.
En este punto se define la topologa de las VLAN que se
proponen y su organizacin, especificando los protocolos
a utilizar como VTP (VLAN Trunk Protocol, protocolo de
enlace de VLAN) o STP (Spaning Tree Protocol,
protocolo de expansin de rbol, orientado a evitar
bucles que generen inestabilidades, entre otros).
Debe recordarse que stas se definen en los switches y
la comunicacin entre ellas requiere de un equipo de
nivel tres, un router.

El diseo jerrquico puede dividirse siguiendo la estructura marcada por la arquitectura de comunicaciones,
en que se identificaran tres niveles, de subred, de red y aplicacin.
A nivel de subred, Ethernet supone el estndar de facto en redes LAN, debido a sus ventajas en cuanto a
costes y mantenimiento. La tecnologa elegida debe describirse en la fase de diseo junto con las opciones
que se implementarn: tipo de cableado (100 base TX, 1000 base T, etc.), normas a seguir, tipo de
cableado vertical, tarjetas de red y en general, lo relacionado con el hardware de red.
La decisin final de la tecnologa a implementar soportar las exigencias del sistema. Para ello podrn
utilizarse herramientas de simulacin. Si el cableado de red va a estar canalizado junto a cableado
destinado a otras funciones como el de telefona o video, suele integrarse en esta parte del diseo. Suele
ser habitual contar con algn tipo de acceso inalmbrico a la red. Si fuera el caso, los documentos de
diseo incluirn la tecnologa a emplear, su estructura y los aspectos de seguridad.
A nivel de red se deben abordar aspectos como el
direccionamiento. Lo habitual es asignar distintos rangos a
cada VLAN y dejar holgura para posibles ampliaciones. La
asignacin de direcciones a cada equipo de la red puede
hacerse de forma esttica o dinmica.

324
Hacerlo de forma esttica complica el mantenimiento. Los mtodos dinmicos ofrecen un automatismo que
incrementa el rendimiento, porque ante un cambio, la asignacin de una nueva direccin no supone ninguna
configuracin nueva y ante una baja, no habra que actualizar el listado de control de direcciones libres. Del
mismo modo, para el acceso a Internet se debe definir el rango de direcciones IP pblicas a usar y cmo se
realizar el acceso.
A nivel de transporte, debe definirse lo relativo a firewalls, configuracin, estructura y organizacin, accesos
VPN, filtrado de puertos, utilizacin de protocolos seguros y el equipamiento. Si se utiliza un router para las
funciones de red y de firewall, este punto estara ya incluido, pero si se instalan routers y firewalls
especficos habr de desgranarse en el documento de diseo e implantacin.
La configuracin de la DMZ, listas de control de acceso, mtodos de filtrado y gestin, aperturas temporales
de puertos, etc. deben ser especificadas. A su vez dibujarn otras necesidades, como servidores de
seguridad de acceso (como los RAS Servidores de Acceso Remoto) o servidores proxy.
A nivel de aplicacin debe definirse, lo relativo al software de red: sistemas operativos que se implantarn,
servicios a montar, estructura, organizacin y recursos. La eleccin de uno u otro SO de red, es importante
a la hora de evaluar costes, rendimiento, disponibilidad y prestaciones.
Una vez terminado el diseo, ntimamente relacionado con la implantacin, se entrara en la fase ms
operativa y propia de implantacin del sistema. En un plan de implantacin se deben definir sus etapas y las
pruebas de aceptacin del sistema. El sistema debe cumplir con las especificaciones del anlisis y los
requerimientos legales que se hayan establecido en el contrato.
La implantacin comienza con la instalacin fsica de cableado y dispositivos. La documentacin del
sistema: arquetas, armarios, canalizaciones, conexiones, etc. es un aspecto al que no se suele prestar
demasiada atencin, pero si se realiza, ahorra mucho tiempo y dinero.
Otras tareas de la implementacin fsica es la etiquetacin de cables y equipos. No slo los equipos de
usuario y servidores, tambin conmutadores, armarios y repartidores.
Una vez instalada la infraestructura, y segn el plan de implantacin podra realizarse en paralelo, habra
que implantar los aspectos lgicos, en su parte de red y de aplicacin. En esta fase se configuraran los
equipos de red y los sistemas operativos y servidores.
Una vez que se considere el sistema instalado, deben realizarse las pruebas de aceptacin, en las que el
cliente debe comprobar que el sistema funciona conforme a especificaciones. Las pruebas estarn referidas
a programas, sistemas, incidencias, carga y respuesta de la red, etc.
Es importante tener en cuenta la fase de operacin una vez implantado el sistema, lo que se denomina a
veces, la puesta en produccin. En esta fase, ya fuera del proyecto se especificara todo lo relativo al
mantenimiento de la red, al funcionamiento habitual y a los aspectos de recuperacin ante incidentes. Estos
campos son muy amplios y podran incluir acciones como la formacin a usuarios.
4. INSTALACIN Y CONFIGURACIN DE SISTEMAS EN RED LOCAL
Una vez elegida realizado el anlisis y diseo del sistema en red, en este caso una LAN, y una vez decidida
la tecnologa a implementar el siguiente paso sera su instalacin y configuracin, englobndose en la
instalacin los aspectos fsicos y en la configuracin los lgicos.
4.1. Instalacin
Para presentar la instalacin de la parte fsica de la red, se ha dividido el estudio en tres partes,
correspondientes al cableado, las tarjetas de red (NIC) y la electrnica de red.
4.1.1. Cableado
El cableado de una LAN, puede decirse que la inmensa mayora de ellas utiliza dos tipos de cable, el par
trenzado y, en menor medida, pero cada vez con mayor difusin, la fibra ptica.
El cableado de planta centralizado en el armario de comunicaciones suele ser par trenzado de categora 5 o
6 para Fast o Gigabit Ethernet. El cableado vertical, para unir plantas de un mismo edificio o edificios
adyacentes, suele montar cable de par que soporte Gigabit Ethernet o fibra ptica.
Para la instalacin del par trenzado slo sera necesario el cable, conectores, crimpadora y alicate. La
creacin del cable de par trenzado consiste en retirar la cubierta del cable (pelarlo), disponer los ocho
cables en orden y cortarlos para igualarlos en longitud, introducirlos en el conector RJ-45 y usar la
crimpadora para ajustarlo al conector. Una vez realizado, se comprueba su funcionamiento.

325
Se suele contar, y es bueno disponer de un comprobador de cable, como
el de la figura, que en ocasiones viene integrado en polmetros. Esta
herramienta pasa un test al cable, una vez montado, y comprueba si las
conexiones son correctas indicando con LEDs si hay continuidad en el
cable y si la conexin cable conector es correcta.
Una vez listo el cable, se dispondr entre el equipo y el concentrador de red, o el armario correspondiente.
El cable se canaliza con canaletas o rejiband y se agrupan con bridas o similar. Es normal numerarlos e
identificarlos con algn cdigo escrito en el propio cable con rotuladores indelebles o etiquetado al efecto.
Estos detalles pueden parecer exquisitos, pero ahorran tiempo y errores.
El cable coaxial se instala de forma parecida. Para la conexin del conector BNC y el cable no hace falta
crimpadora. Basta encajar el conductor central en su posicin del conector y el conductor externo, la malla
haciendo contacto con la parte externa del conector. Es una configuracin similar a la de cable de TV.
La fibra ptica cada vez adquiere ms importancia. Todas las redes LAN permiten el uso de fibra multimodo
y en general se utiliza fibra de 62,5 m, en la ventana de trabajo de 850 nm. La fibra de 50 m ofrece 500
MHz/km (OM-2) frente a 200 MHz/km (OM-1) de la de 62,5 m, por lo que es ms favorable para
transmisin a velocidad de 1 Gigabit y 10 Gigabit. Ambos tipos de fibra no deben combinarse en la misma
instalacin, por lo que se recomienda usar fibra de 50 m en nuevas instalaciones, aunque sea ms caro y
fibra de 62,5 m en las instalaciones existentes que ya cuenten con ese tipo de fibra.
Si se usan lser emisores tipo VCSEL, su baja anchura espectral permite emplearlos indistintamente en
fibra de 50 o de 62,5 m. La instalacin de la fibra es similar a la del cable de par trenzado, pero es ms
delicada en su manejo, por su menor flexibilidad y si el cable se dobla en exceso puede romperse la fibra.
Los conectores de las fibras ya han sido presentados en sus distintas formas y tipos. Para montar un cable
de fibra a un conector, se realiza lo que se da en llamar una conexin temporal (desconectable), por
oposicin a una conexin permanente o empalme que se realiza entre fibras. En las conexiones, temporales
y permanentes, la alineacin del ncleo de la fibra con las zonas activas de emisor y receptor, es un factor
crtico para maximizar la potencia acoplada y por tanto minimizar las prdidas.
Las prdidas en los empalmes y conexiones suelen deberse a desplazamientos laterales de los ejes de las
fibras, desalineamientos, malas terminaciones de los extremos, etc. Para realizar un empalme de una fibra,
se utilizan mquinas empalmadoras manuales o automticas. Los empalmes por fusin son permanentes y
suelen ofrecer unas prdidas tpicas de 0.1 dB.
El proceso de empalmado consiste en pelar un trozo de la fibra (en torno a 5 cm), que debe ser limpiado
con alcohol isoproplico. Una vez limpias, las fibras se cortan con un cutter de hoja de diamante de 8 a 16
mm y se apoyan en el canal de la mquina empalmadora.
Cuando las fibras estn ya colocadas, en la pantalla de la empalmadora se mostrara una imagen
semejante a la presentada en la figura. En ella aparecen los extremos de las fibras donde se podr
comprobar si estn alineadas. Si no lo estuvieran, la empalmadora no permite realizar el empalme. Si las
fibras estn correctamente alineadas, se pulsa el botn de empalme, para lo que la empalmadora ha de
ajustarse en modo automtico y as alinee los ejes X e Y acercando las puntas a la distancia ms adecuada.
Una vez los extremos de las fibras estn a la distancia
adecuada, la empalmadora aplica una corriente de prefusin
durante un tiempo denominado de prefusin y una corriente de
fusin durante otro intervalo de tiempo llamado tiempo de
fusin. Esto se realiza con un arco elctrico entre dos
electrodos. Cuando las dos fibras estn empalmadas, el equipo
realiza una estimacin fiable del valor de la atenuacin.
Por fin, la instalacin del cableado en redes inalmbricas es la ms fcil de todas, ya que no existen cables.
Un aspecto importante a tener en cuenta es la instalacin elctrica. No es un aspecto puro de
comunicaciones pero si importante, puesto que debe dimensionarse correctamente para la carga elctrica
prevista que soporte la instalacin.
4.1.2. NIC
La instalacin de la NIC depender del interface concreto que posea. Si la tarjeta de red posee un interface
PCI o PCI-X, hay que abrir el PC e introducir la tarjeta en el slot elegido de forma que el puerto quede
accesible en la baha (hueco en el chasis del equipo) correspondiente.
Si se dispone de una tarjeta de red con interface PCMCIA, por ejemplo, para porttiles, el misterio de su
instalacin termina en el momento en que se introduce en la baha PCMCIA que se elija. Si el interfaz es

326
USB, el misterio es todava menor, debido a lo popular del USB. En la parte de equipos, la instalacin no
suele ser necesaria, porque es habitual que las placas base integren interfaces Ethernet.
Los interfaces de fibra ptica se suelen instalar en los equipos que componen la electrnica de red, y su
proceso es similar: una tarjeta con un puerto para fibra ptica se instala en una baha libre. Los interfaces
suelen ser ms pequeos a los de PC, dado que un equipo, por ejemplo un router posee un tamao ms
reducido que un PC. Una vez instalada y reconocida una tarjeta de red, habra que configurarla, asignando
una direccin lgica, parmetros de transmisin o de seguridad. En los PCs, la configuracin suele ser
automtica y el direccionamiento asignarse mediante DHCP.
4.1.3. Electrnica de red
Con electrnica de red se suele denominar al conjunto de equipos que realizan funciones puramente de red,
como la conmutacin, segmentacin o enrutamiento. La instalacin de la electrnica de red no tiene mayor
misterio, ya que en general, una vez elegido el lugar, un rack o armario, el equipo se fijara al chasis y se
realizaran las conexiones de los cables a los puertos fsicos.
Debe tenerse en cuenta la conexin de los cables si hubiera filtrado MAC. Es decir, un cable, que
transportase los datos de un equipo al que slo se le da acceso a determinado puerto fsico, debe
conectarse a ese puerto, puesto que de otro modo, el equipo no va a poder comunicarse. Habitualmente se
realizan las conexiones fsicas y a posteriori se aplica la configuracin oportuna.
4.2. Configuracin
Una vez instalado el hardware de red ha de configurarse: dar de alta los servicios, instalar aplicaciones,
configurar protocolos, crear cuentas y permisos de usuario, etc. Si la instalacin y configuracin de la red es
debida a una actualizacin o ampliacin debe hacerse de forma que los datos que se estn utilizando sean
compatibles o puedan seguir utilizndose. Todo el proceso de adecuacin de la informacin a la nueva
infraestructura se conoce con el nombre de migracin y uno de sus aspectos ms importantes es hacer
compatibles los datos en la nueva configuracin.
4.2.1. Equipos
Para garantizar la comunicacin entre sistemas, stos han de configurarse. El estudio de la configuracin se
ha dividido en tres apartados, equipos, electrnica de red y los servidores.
La configuracin de los equipos de usuario puede dividirse en tres aspectos: conectividad, direccionamiento
y seguridad. La conectividad se acaba de presentar. En cuanto a la seguridad, lo lgico es centralizarla, y
por tanto sera una tarea a resolver desde el plano de los sistemas y servidores. De este modo, en los
servidores de dominio se configuraran los perfiles de usuario, permisos, polticas de grupo, etc.
Por tanto, la tarea central de la configuracin de usuario podra ser la configuracin del direccionamiento. Si
se utiliza el protocolo IP, existen dos tipos de direcciones, pblicas y privadas. En una LAN se utilizan
direcciones privadas, aquellas que no pueden utilizarse para navegar por Internet. En general, la asignacin
de direcciones se realiza mediante un servidor DHCP, Dinamic Host Configuration Protocol.
La comprobacin de la conectividad a nivel de red entre equipos puede realizarse ejecutando un comando
ping entre equipos. El comando ping no es un eco, de forma que se lanza hacia la direccin IP del equipo al
que se pretende alcanzar. Si ste responde, habr comunicacin a nivel de red.
4.2.2. Electrnica de red
La configuracin de la electrnica de red consiste en la parametrizacin de los equipos de red. Se ha
distinguido este apartado debido a su importancia y que es un tanto diferente a la de los equipos de usuario
y a la de los servidores. La electrnica de red, podra denominarse tambin firmware de red, por representar
una parte intermedia entre el hardware puro y el software de red.
Tanto en routers como en switches, el modo de
configuracin suele ser con un interfaz de lnea de
comandos, aunque existen entornos grficos con
interfaz ms amigable. Algunos de los fabricantes ms
conocidos de electrnica de red son CISCO, Enterasys,
Nokia o la espaola Teldat.
Los switches permiten configurar parmetros de red
como la definicin de VLAN, filtrado MAC, protocolos de
enrutamiento o protocolos que establecen estabilidad
en la red local, por poner algunos ejemplos tpicos.

327
En la captura se muestra cmo pueden visualizarse las VLANs definidas en un switch CISCO. Como se
observa, todava no hay nada configurado, se presenta la configuracin inicial, de modo que todas las
entradas al equipo, los puertos FastEthernet (Fa0/1, Fa0/2,...) pertenecen a la VLAN default, que es la que
presenta el dispositivo por defecto.
Una posible secuencia de configuracin, podra ser la declaracin de una VLAN y posteriormente la
asignacin de los puertos que dan acceso a esa VLAN.Cada puerto fsico, el conector RJ-45 que presenta
el switch debe ser configurado asocindolo a una VLAN, que previamente ha debido ser definida. La
segmentacin se realiza a nivel de subred, la LAN, que aunque fsicamente sea la misma, a nivel lgico, son
redes distintas. Es como si los equipos estuvieran conectados a hubs diferentes. Puede entenderse un
switch entonces como un equipo que permite la definicin virtual de distintos hubs, lo que consigue un
mayor rendimiento e incrementa la seguridad.
Los equipos pertenecientes a distintas VLAN no se pueden comunicar entre s a nivel de LAN. Para poder
establecer comunicacin necesitan hacerlo a nivel de red, con un router. Su configuracin necesitara un
subinterface por cada VLAN y definir un tipo de encapsulamiento.
El encapsulamiento es una etiqueta que se utiliza a nivel lgico para identificar una VLAN. La configuracin
de seguridad, tambin posee muchas opciones, como el filtrado MAC, que consiste en especificar en un
puerto fsico la limitacin de acceso slo al equipo que posea determinada direccin MAC.
La configuracin de los routers posee dos grandes aspectos, la configuracin de LAN y la de WAN. El
problema se puede complicar tanto como se desee y habr que tener en cuenta parmetros de seguridad,
autentificacin, si es un router interior o de frontera de la red, etc.
De esta manera, en la configuracin de LAN, en el interface que corresponda, se tendr que configurar, al
menos, el direccionamiento. La forma de realizar esta configuracin vara entre fabricantes, aunque suele
ser similar, ya que al final consiste en asignar una serie de parmetros al equipo.
La configuracin de la WAN en el router ser la que permita la salida de la LAN a destinos externos, en
general a otras redes de la propia compaa, como pueda ser una delegacin central o a Internet. La
configuracin de WAN comprende los parmetros necesarios para la comunicacin. Algunos ejemplos, son
los que los operadores de ADSL facilitan a sus clientes para configurar en los routers de acceso, como el
encapsulado, el identificador de circuito virtual o camino virtual (VCI/VPI) u otros.
Al interface de WAN tambin debe asignarse un direccionamiento. El resto de parmetros dependern de la
tecnologa WAN que se utilice. Tambin se configurarn los criterios de seguridad, organizacin de CV, tasa
de transmisin, etc.
4.2.3. Servidores
Los SO orientados a dar servicios de red, suelen integrar distintos servidores como los de dominio, DNS,
servidores de aplicaciones, etc. Debe existir un criterio a la hora de decidir si se destina una mquina de
forma individualizada a servidor o se implementan varios servidores en la misma mquina, aunque
depender de las circunstancias de cada organizacin.
Sin embargo, existen compromisos que recomiendan dedicar una
mquina a ciertos servicios. Por ejemplo los servidores en la
frontera de la red, como proxies, firewalls, servidores web y otros,
que adems de su importancia, en general tramitan gran volumen
de trfico. Los servidores de red suelen basarse en servicios de
directorio, es decir, una base de datos organizada jerrquicamente
y que ordena los recursos y parametrizacin de la red. En el
mundo WS existen dos conceptos fundamentales, el grupo de
trabajo y el dominio, aparte de presentar estructuras hbridas como
por ejemplo las unidades organizacionales (OUs).
Mientras en el mundo Linux, tambin existe el concepto de grupo y el de dominio se suele implementar de
forma diferente con servicios como NIS y NFS. La configuracin de los servidores es diversa y dependiendo
del servidor de que se trate. Por desgranar algunas caractersticas comunes se puede decir que la
configuracin en WS suele hacerse en entornos grficos, ms amigables y en Unix y Linux, la configuracin
est ms orientada a lnea de comandos.
Esto no quiere decir que ambos mtodos sean incompatibles. En muchas distribuciones Linux se ofrecen
entornos grficos y en WS puede utilizarse la consola (smbolo de sistema). En general, los administradores
suelen preferir la lnea de comandos por su potencia. Esto se debe a que el interface grfico usa ms
recursos y puede mermar el rendimiento de la mquina. La configuracin sera la misma, se haga de una u
otra forma. A continuacin se enumeran algunos de los parmetros de configuracin tpicos de
servidores.La configuracin de un servidor web debe incluir su direccionamiento, rutas de acceso a los

328
documentos servidos, el tratamiento a peticiones de documentos o pginas web dinmicas, etc. Es habitual
que las consultas web precisen la consulta de BBDD y en esos casos debe especificarse la relacin entre el
servidor web y la BBDD o el servidor que la contiene y cmo se realizar la consulta. En la figura se muestra
un ejemplo del interface grfico de WS para la configuracin de su servidor web IIS7.
Los parmetros necesarios para la configuracin de los servidores de correo incluiran su direccionamiento,
tipo de protocolo usado para envo y recepcin, las opciones que se utilizarn en los correos, filtrado de
correo, tamao mximo de archivos adjuntos que se permitirn, configuracin de seguridad, etc.
Un servidor DHCP adems de asignar una direccin IP a un equipo, puede facilitarle otros parmetros como
la mscara de red, direccin de la puerta de enlace, etc. En los sistemas tipo Linux su configuracin puede
realizarse en el fichero /etc/dhcpd.conf. Posee una sintaxis de configuracin tpica, en la que una lnea de
configuracin se expresa con un parmetro, unas opciones y un valor.
Los servidores DNS incluirn en su configuracin las zonas de bsqueda, si existen servidores DNS donde
se reenvan las consultas, sus direcciones IP, el tiempo de espera mximo para obtener respuesta de una
consulta, actuaciones ante consultas de reenvo errneas o peticiones de transferencia de zona.
De la configuracin de un servidor proxy destaca el direccionamiento pblico, el servicio NAT, si es que lo
implementa y los valores que disponga el operador en relacin con la tecnologa de transmisin, como
pueden ser el encapsulado, circuitos virtuales, etc.
La configuracin de un firewall es laboriosa. Una parte importante de su definicin corresponde a las listas
de control de acceso. Las listas de control de acceso o ACLs son comandos que configuran las reglas de
filtrado de trfico. En los firewalls de frontera se configura la denegacin de trfico de las conocidas como
Black List, o listas negras, que son listados de direcciones pblicas de Internet que distribuyen software
malintencionado o correo basura, por ejemplo.
En la configuracin de cada servidor, debe realizarse una configuracin de seguridad especfica, que proteja
contra debilidades propias de la funcin que cumplen. Por ejemplo, en un servidor web que utilice un
servidor de BBDD debe protegerse contra ataques de inyeccin SQL y en un servidor de correo electrnico
ser habitual filtrar el correo basura o spam.
4.3. Gestin
La gestin de un sistema en red puede definirse como el conjunto de equipamiento fsico, lgico y recursos
humanos organizados para monitorizar y analizar los recursos de la red de forma que se garantice su
correcto funcionamiento o se anticipen y eviten problemas.
El mantenimiento de cualquier sistema puede dividirse en mantenimiento correctivo, el que se da cuando
surge un problema y est encaminado a su solucin, y mantenimiento preventivo, realizado antes de que se
manifiesten los problemas, y por tanto, evitar que puedan manifestarse.
La gestin de la red es una herramienta fundamental para el mantenimiento preventivo. Aunque su objetivo
es ms ambicioso, ya que dispone toda una organizacin para intentar garantizar que el sistema siempre
est disponible. La indisponibilidad del sistema puede suponer mucho dinero.
La gestin de red sirve como realimentacin, de forma que es la base de futuros anlisis, que pudieran dar
lugar a la deteccin de nuevas necesidades y por tanto la ampliacin o implantacin de nuevos sistemas.
Para mantener el ptimo rendimiento de la red debe incluirse la elaboracin de informes peridicos y la
definicin de los criterios y umbrales de alarma. La ISO propone cuatro vertientes de gestin:
- Gestin de configuraciones y cambios
- Gestin del desempeo
- Gestin de fallos
- Gestin de seguridad
La gestin de la configuracin y los cambios pretende mantener toda la informacin relativa al diseo de la
red y su estado actual. Incluye la gestin del inventario, mantenimiento de los directorios con la informacin
del sistema y la coordinacin del esquema de nombres de nodos y aplicaciones. El control de la operacin
de red debe permitir el inicio o parada remoto de los componentes, lo que incluye la posibilidad de cambiar
su configuracin, actualizar el firmware o software y definir los mtodos de acceso a los dispositivos.
La gestin del desempeo, es la parte encargada de medir si el rendimiento de la red es el adecuado. Sus
tareas se estructuran en la recoleccin de los datos operacionales del sistema, realizar estadsticas de
interfaces y trfico, tasa de errores, disponibilidad, establecimiento de umbrales y anlisis de datos para
anticipar futuros escenarios, estables o no. Se miden parmetros como retardos, tiempo de respuesta o

329
trfico, buscando cuellos de botella y debilidades. Las pruebas de rendimiento (benchmarks) intentan hacer
estimaciones de la capacidad mxima de la red.
La importancia de las estadsticas del sistema en red se materializa en la contabilidad, resolucin de
problemas, estimaciones de comportamiento a largo plazo y la planificacin de la capacidad. La mejora del
rendimiento puede conseguirse aumentando la capacidad de equipos y el cableado, reduciendo la carga o
segmentando la red. Algunos de los trminos utilizados en el estudio del rendimiento y que al menos deben
conocerse son throughput, carga y latencia de la red.
El throughput, que puede traducirse como flujo, es el volumen de informacin que atraviesa un sistema en la
unidad de tiempo. Suele expresarse en unidades de informacin como bits, bytes o paquetes por segundo.
La carga es el nmero de tareas que realiza un sistema. Se refiere al nmero de instrucciones de un
procesador, medidas en millones de instrucciones por segundo (MIPS) o unidades semejantes. Suele
expresarse como un porcentaje de la capacidad total del sistema. La latencia es la suma de retardos en la
red, y se mide en unidades de tiempo.
La gestin de fallos es el conjunto de procedimientos orientado a detectar, diagnosticar y reparar las averas
que se presenten en el sistema en red. Comienza con la recepcin de la informacin, en general como
mensajes de error. Una vez identificado el fallo, conseguido con el sondeo peridico de la red, debe aislarse
y diagnosticar el funcionamiento de los elementos de la red.
Comienza entonces el periodo de reaccin ante el fallo, en el que se asignarn los recursos necesarios para
su solucin, estableciendo las prioridades oportunas y el escalado tcnico si fuera necesario para solucionar
el error. La incidencia, una vez solucionada, debe ser notificada para su posterior anlisis.
En sistemas en los que la indisponibilidad no es aceptable, deben establecerse los recursos y medios de
prevencin adecuados para que la incidencia no afecte al sistema. Ejemplos pueden ser lneas de respaldo,
servidores redundantes o copias de seguridad.
La gestin de seguridad engloba todo lo relacionado con la proteccin de la informacin y los recursos de
red: la seguridad lgica y fsica. Por citar algunos de los puntos que debe tratar, nombrar el control de
acceso fsico y lgico a los recursos, distribucin de certificados, autenticacin de usuarios y la utilizacin de
herramientas de seguridad que monitoricen y registren constantemente el acceso y control de la red.
Para implementar la gestin de red, existen diversas herramientas software que suelen disponer de
funcionalidades estadsticas, definicin de umbrales, posibilidad de realizar mapas topolgicos, etc. En
general estas herramientas implementan el protocolo SNMP (Simple Network Management Protocol)
protocolo ligero de gestin de red, que se estructura en torno a dos entidades bsicas: el gestor y el agente.
Un gestor es un programa instalado en un equipo o estacin de gestin que procesa la informacin que
recibe de la red y sirve de interface al usuario con perfil de gestor. Se denomina NMS o Network
Management Station, estacin de gestin de red.
Un agente es un sistema gestionado. Es otro programa que recoge la informacin del dispositivo en que se
instala y la enva al gestor. Los agentes cuentan con una MIB o base de datos de informacin de gestin
(Management Information Base). Un objeto es un parmetro de informacin que maneja un agente, como
por ejemplo el nmero de paquetes tramitados.
En contra de lo que pudiera parecer, el sistema gestor, funcionalmente es un programa cliente, ya que pide
informacin a los agentes. Desde la perspectiva de la comunicacin, un agente sera un servidor, ya que
responde a las peticiones del gestor.
En el funcionamiento de los agentes se dan dos casos: El agente presenta la informacin al gestor cuando
ste sondea la red, o bien, si se produce un error o alarma, segn su configuracin, enva los datos para dar
cuenta del nuevo estado de alarma.

330
TEMA 71. EXPLOTACIN Y ADMINISTRACIN DE SISTEMAS EN LAN. FACILIDADES DE GESTIN.

1. INTRODUCCIN
2. EXPLOTACIN Y ADMINISTRACIN DE SISTEMAS EN LAN
2.1. Explotacin
2.2. Administracin
3. FACILIDADES DE GESTIN

331
1. INTRODUCCIN
La explotacin y administracin de sistemas en red comprende tareas como la gestin de usuarios, el
acceso a recursos, el mantenimiento y configuracin de hardware y software, etc.
2. EXPLOTACIN Y ADMINISTRACIN DE SISTEMAS EN LAN
2.1. Explotacin
La explotacin de un sistema en red corresponde a la fase de funcionamiento estable del sistema,
totalmente implantado y configurado y con una carga igual a la real, es decir, cumpliendo los requerimientos
funcionales y las ventanas de servicio para las que se ha diseado.
Debe diferenciarse entre explotacin y produccin. Suelen tratarse ambos trminos como sinnimos, no
siendo as, a menos que el sistema sea nico. La diferencia est en que el entorno de produccin se refiere
al sistema en funcionamiento, y por tanto, su operativa es delicada. Sin embargo, puede asimilarse el
entorno de explotacin a una maqueta, o un sistema paralelo, donde puedan realizarse pruebas de mejora,
integracin, desarrollo, etc. que si generasen problemas no afectaran a la produccin.
El entorno de explotacin puede ser tan similar al de produccin que sea prcticamente una copia, pero el
servicio real, no se ver afectado por su modificacin. Del mismo modo, puede utilizarse el sistema en
explotacin como respaldo en caso de que el sistema en produccin sufra una eventualidad.
Clave en la explotacin de una red es su gestin, que incluye todo aquello que garantiza la operacin del
sistema, recursos y servicios segn los objetivos marcados. Se incluirn, por tanto, los procedimientos y
recursos involucrados en produccin. La gestin puede identificar los siguientes aspectos:
Gestin de red. En relacin con los servicios de comunicacin, recursos, infraestructuras, etc.
Gestin de sistemas. Referido a elementos de proceso y finales de usuario soportados sobre la red. Se
incluye la gestin de servidores, software de base, perifricos, usuarios y dems.
Gestin de servicios. Referido a los requisitos de mantenimiento de la operativa, como el almacenamiento
de datos, distribucin de software, control de incidencias o estado del sistema, entre otros.
Gestin de aplicaciones. Orientado a las aplicaciones de produccin de la organizacin y a asegurar el
cumplimiento de las condiciones marcadas en los objetivos.
Gestin de informacin. Las tareas de diseo y mantenimiento de la informacin corporativa que marcan las
pautas de distribucin, disponibilidad y accesibilidad adecuadas.
2.2. Administracin
La administracin de un sistema en red consiste en el conjunto de tareas que garantizan su correcto
funcionamiento y documentacin. Entre estas tareas, puede citarse, por ejemplo, la asignacin del
direccionamiento, segmentacin de la red y definicin de VLAN, uso de servidores, administracin de
usuarios y recursos o el control de los mecanismos de monitorizacin y gestin de la red. Los objetivos de la
administracin de red persiguen la continuidad de la operatividad, resolucin de incidencias, su uso
eficiente, reduccin de costes, seguridad, control de cambios y gestin de la configuracin entre otros.
Administrar una red precisa la informacin referente a su estado y subsistemas, en forma de registros,
eventos, etc. de forma que se presente a los administradores de forma legible y manejable. La informacin,
debe almacenarse y estar disponible para su anlisis o tomar las acciones correctivas necesarias. Se
recomienda que el sistema de administracin sea abierto, capaz de soportar distintos protocolos y
arquitecturas de red.
La administracin de usuarios debe incluir la informacin de los procedimientos de uso del sistema y
documentarlo con guas de uso. La asignacin de permisos para el acceso a los recursos y la definicin de
grupos, dominios o unidades organizativas es responsabilidad del administrador.
En general sern necesarios servidores de consulta tipo DNS o WINS para localizar los recursos. La
administracin se facilita con una definicin correcta de grupos, dominios, UO, etc. Los grupos podrn tener
un perfil de seguridad, distribucin, de dominio u otro. En cuanto a la administracin de impresoras, suele
ser normal implementar un servidor para esas tareas. Los SO incluyen facilidades como la comparticin o la
definicin de prioridades y permisos. Los servidores de archivos, por su parte, agilizan la administracin de
ficheros en red, en lo relativo a permisos de acceso y recuperacin remota de informacin.
Otro de los pilares de la administracin es la monitorizacin de red, que facilita en tiempo real el
mantenimiento del nivel de operatividad del sistema y su correcto rendimiento. La monitorizacin debe
incluir la redaccin de informes peridicos sobre los aspectos de gestin de la red, tales como la
configuracin, respuesta frente a errores o su seguridad.

332
3. FACILIDADES DE GESTIN
Como resumen, un esquema primario de las tareas de administracin de red, podra estructurarse en los
aspectos de direccionamiento, gestin de usuarios, gestin de recursos, administracin de servicios y
gestin de la red. Es decir, las facilidades de gestin de un sistema en red local.
Direccionamiento. El administrador de red debe proveer el plan de direccionamiento de la capa de red.
Como se ha visto, lo funcional es utilizar un servidor DHCP, que lgicamente debe ser configurado y
administrado, con especial atencin a los aspectos de seguridad.
El direccionamiento debe tener en cuenta la segmentacin
de la red, si se utilizan VLANs y la correcta aplicacin del
subnetting. Para ello, la configuracin de routers y switches
debe ser cuidadosa. Del mismo modo, si se utiliza, como
es habitual, direccionamiento privado en la LAN, deben
proveerse las direcciones pblicas de acceso a Internet, en
general con los servicios NAT.
Otros aspectos del direccionamiento son la publicacin de las direcciones de puertas de enlace, pasarelas y
servidores DNS, como casos tpicos, que tambin suele proveer el servidor DHCP.
Gestin de usuarios. La asignacin de usuarios, su agrupacin en unidades superiores como grupos o
dominios y sobre todo la administracin de sus permisos es una de las labores ms importantes de la
administracin de red. Los usuarios, entendidos como personas, no como cuentas, deben ser informados de
las normas y cambios en la operativa de trabajo y utilizacin del sistema, en general confeccionando guas y
recomendaciones de utilizacin de los sistemas y recursos.
Los SO ofrecen muchas y variadas herramientas para la administracin de usuarios, destacando la gestin
de grupos, que agiliza la asignacin de permisos, directivas de seguridad, aspectos de distribucin, acceso
a dominios, visibilidad y caractersticas similares. Algunas de estas herramientas son las directivas de
seguridad que ofrece WS o las listas de control de acceso caractersticas en entornos tipo Unix. Adems,
estas utilidades suelen presentarse en un entorno grfico para una administracin ms intuitiva.
De especial importancia es la gestin de la cuenta de usuario administrador, superusuario o root. Esto es
debido a que al poseer todos los permisos sobre el sistema y sus recursos, su utilizacin debe ser
cuidadosa en extremo, recomendndose su utilizacin nicamente en labores de administracin, evitando
realizar con ella tareas que pueden realizarse con cuentas de menos privilegios.
Gestin de recursos. En la gestin de recursos en red, destacan la administracin de impresoras y archivos.
Las herramientas para esta labor suelen ser fciles de utilizar, pero un tanto laboriosas. El aspecto ms
importante es saber qu se est realizando con la herramienta, ya que una mala configuracin puede
generar situaciones no deseadas.
Tanto los sistemas WS como los de tipo Unix permiten compartir impresoras que sern accesibles a un
grupo de trabajo o determinados usuarios, ofreciendo funcionalidades para gestionar sus propiedades, colas
de impresin, direccionamiento y administracin remota entre otras.
La administracin de archivos en red es un trabajo tpico y delicado. Los servicios que suelen facilitar esta
gestin son los estudiados y tpicos como FTP, NFS con el protocolo RPC o SSL. WS utiliza otros
protocolos y servicios como WINS y NetBIOS, ya presentados tambin. Por fin, la compatibilidad entre
ambos tipos de sistemas suele implementarse con herramientas como SAMBA. La gestin de archivos debe
incluir medidas de recuperacin ante incidencias como la redundancia de discos y sistemas RAID.
Gestin de servicios. La administracin de los servidores de red es otro de los aspectos crticos de la
administracin de sistemas en red, debido a las implicaciones de seguridad y rendimiento que comportan
para las organizaciones.
Destacan adems de los servicios mencionados como DHCP, DNS, los de administracin de impresin y
recursos, los servicios web, cortafuegos, correo electrnico o los de BBDD, como ms representativos.
Pueden utilizarse los servidores que integran los SO de red o decidir instalar otras soluciones comerciales o
libres. La recomendacin general es utilizar mquinas dedicadas para cada servicio, decisin que deber
responder a compromisos de eficiencia, carga de trabajo, etc.
El aspecto ms delicado de la administracin de los servidores y los servicios que implementan es su
configuracin. A parte de la complejidad intrnseca que representan, las implicaciones de seguridad son
muy graves. Por tanto la configuracin y sobre todo la administracin y constante monitorizacin son
cruciales. Sin embargo las herramientas para realizar tales labores suelen ser cmodas e intuitivas.

333
Gestin de red. Por ltimo, la administracin de red, entendida como aspecto global se referira a tareas
propias de supervisin y mantenimiento del sistema. Incluira el conjunto de procedimientos, actividades,
informes y herramientas que permiten la monitorizacin y supervisin constante de los equipos y sistemas.
El objetivo de la administracin del sistema en red es mantener su disponibilidad, garantizar su correcto
funcionando y establecer un principio de proactividad que adelante acciones ante comportamientos
anmalos. De esta forma, cuando existe un problema es recomendable haber establecido umbrales para
indicadores que muestren que se est en situaciones que pueden derivar en situaciones crticas.
Las herramientas que facilitan estas labores utilizan protocolos de gestin de red como el ya presentado
SNMP que permite una correcta gestin remota de los sistemas dispersos a lo largo de la red. Tambin se
ha comentado que las mquinas dedicadas con aplicaciones de gestin de red suelen conocerse como
NMS (Network Management Station).
Las herramientas de gestin de red suelen ofrecer facilidades de gestin de configuracin, guardando un
inventario del hardware y software instalado y operativo en el sistema, recogiendo peridicamente la
informacin del estado de los dispositivos o gestionando su actualizacin.
Tambin facilitan la gestin de incidencias, siendo fundamentales en la proactividad comentada. Mediante
configuracin de umbrales como operacin tpica se puede anticipar la deteccin, diagnstico y reparacin
de averas en la red. A partir de la recepcin de mensajes de error o la falta de respuesta de un equipo
pueden localizarse los puntos de fallo.
Otra de las utilidades ms importantes de estas herramientas es la evaluacin del rendimiento de la red.
Mediante el anlisis estadstico de los factores que se consideren crticos en el desempeo, como los
tiempos de respuesta o el trfico cursado, puede estimarse el grado de eficiencia del sistema, su capacidad
mxima, proponer mejoras, ampliaciones o procedimientos de optimizacin.
La administracin de la seguridad de la red es uno de los aspectos ms amplios y comprometidos. La
proteccin del sistema y sobre todo de la informacin puede es vital para la continuidad de la organizacin
ante situaciones de crisis o emergencia. Herramienas para gestin de seguridad existen muchas y algunas
ya se han expuesto en el tema anterior. Incidir en la necesidad de configurar correctamente los ficheros de
registro o log, duplicidad geogrfica de servidores o redundancia de discos y copias de seguridad.
Dependiendo de la entidad de la informacin y la organizacin de que se trate, la legislacin obliga a
establecer algunas de estas medidas de seguridad que deben incluirse en los sistemas de red. Lgicamente
la implantacin de la seguridad es algo caro y generar un compromiso entre el tipo de empresa, su
facturacin y las obligaciones y responsabilidad que pueda asumir. En cualquier caso, si el compromiso se
supera, debe ser claro que la no implantacin de la seguridad siempre ser ms caro, en el largo plazo, que
la correcta implantacin de la misma.

334
TEMA 72. LA SEGURIDAD EN SISTEMAS EN RED. SERVICIOS DE SEGURIDAD. TCNICAS Y
SISTEMAS DE PROTECCIN. ESTNDARES.

1. INTRODUCCIN
2. LA SEGURIDAD EN SISTEMAS EN RED
2.1. Seguridad Fsica
2.1.1. Amenazas segn su origen
2.1.2. Amenazas segn el objetivo
2.2. Seguridad Lgica
2.2.1. Nivel Fsico
2.2.2. Nivel Enlace
2.2.3. Nivel Interred
2.2.4. Nivel Transporte
2.2.5. Nivel Aplicacin
2.2.6. Nivel Meta Aplicacin
3. SERVICIOS DE SEGURIDAD
4. TCNICAS Y SISTEMAS DE PROTECCIN
5. ESTNDARES

335
1. INTRODUCCIN
La seguridad de los sistemas en red ha crecido de forma paralela al crecimiento de redes y organizaciones.
Una organizacin que no implemente seguridad de la informacin de su negocio puede desaparecer, como
ocurri en los ataques a las torres gemelas.
La seguridad puede entenderse como un proceso orientado a reducir, el riesgo de sufrir un dao. La
seguridad total es imposible. Cualquier sistema debe ser considerado vulnerable. Por esto es necesario
gestionar la seguridad. Adems, para evitar abusos y proteger los derechos de los ciudadanos existe una
legislacin que describe los derechos y deberes de las partes.
2. SEGURIDAD DE SISTEMAS EN RED
La seguridad de los sistemas en red podra definirse como la capacidad de una red de resistir, con un nivel
de confianza, las acciones que comprometan la confidencialidad, integridad, disponibilidad y autenticidad de
la informacin almacenada o transmitida y de los servicios que se ofrecen.
La confidencialidad se refiere a la situacin en que slo aquellos entes autorizados tengan acceso a la
informacin que necesiten. Su fundamento es claro, por ejemplo en el caso de un secreto industrial.
La integridad es el aspecto de seguridad que intenta garantizar que determinada informacin no sea
modificada. Si un intruso, an sin conocer la informacin transmitida, es capaz de modificarla puede generar
un problema grave. La disponibilidad garantiza que la informacin estar presente cuando se requiera.
La autenticidad, tambin conocida como No-Repudio, es la caracterstica que asegura la identidad del
emisor. Ofrece la garanta para que alguien que genera una informacin no se retracte. El ejemplo tpico es
el de una transaccin en que se compran acciones en bolsa. Si las acciones bajan, debe garantizarse que el
emisor de la informacin no pueda negar la compra.
Existen tres componentes a proteger: el hardware, el software y
la informacin. El acceso a la informacin se realiza con
hardware, lo que implica el mundo fsico y objeto de estudio de la
seguridad fsica y con software, eje de la seguridad lgica. Con la
proteccin del hardware y el software se persigue la proteccin
de la informacin y los datos manejados con esos medios.
Por realizar una clasificacin de las amenazas, pueden distinguirse cuatro tipos de ataques: interrupcin,
interceptacin, modificacin y fabricacin.
Un ataque de interrupcin es el que se materializa en la prdida de una parte del sistema. Un ataque de
interceptacin en el que un intruso consigue acceso a un elemento del sistema, al que no estaba autorizado.
Un ataque de modificacin es el que consigue modificar un elemento del sistema y un ataque de fabricacin
sera una modificacin no destructiva en que se persigue que el sistema trabaje de forma similar o sin
levantar sospechas, pero habindose cambiado alguna parte del objeto final del mismo.
Teniendo en cuenta los activos a proteger y tipos de amenazas, se concluye que la seguridad no es un
producto que pueda comprarse e instalarse a modo de antivirus. Es un proceso continuo que requiere una
monitorizacin y actualizacin permanente. Esta filosofa desemboca en la definicin de polticas de
seguridad, basadas en normas y prcticas que los responsables de seguridad deben implementar y cuidar
de su operacin diaria, estableciendo los procedimientos y rutinas necesarios.
Trminos implcitos en el concepto de seguridad son amenaza, vulnerabilidad y riesgo. Una amenaza es
aquello que puede causar un mal. Vulnerable es algo a lo que se puede amenazar (la informacin), que
puede recibir el dao de la amenaza. Un riesgo es la contingencia o proximidad de un dao.
Cuando algo es vulnerable, puede recibir un dao. Si ese dao puede producir un impacto, se habla de
riesgo. A la inversa, un activo vulnerable a una amenaza, que no cause impacto, no constituye un riesgo.
La seguridad puede entenderse como las acciones orientadas a eliminar riesgos o sus consecuencias.
Pueden establecerse tres planos de actuacin: la defensa, orientada a disminuir la probabilidad de
incidentes, el aseguramiento, que pretende disminuir las consecuencias al producirse un incidente y la
denuncia o identificacin de causas o causantes de los daos. La seguridad implica simplicidad, disciplina y
limitacin. Se divide su estudio en seguridad fsica y lgica.
2.1. Seguridad Fsica
La seguridad fsica puede definirse como el conjunto de recursos orientados a la aplicacin de medidas
preventivas contra amenazas de carcter fsico o natural. Se refiere a los controles y sistemas de seguridad
de una organizacin para proteger el hardware. Los riesgos fsicos pueden ser segn su origen relativos a

336
entes naturales o personales, y segn su objetivo pueden referirse a recursos, utilizacin, informacin
almacenada o en trnsito y reputacin.
En cuanto a riesgos fsicos, segn su origen pueden
identificarse el suministro elctrico, inundaciones, incendios
y personal malintencionado. Segn su objetivo pueden ser
daos fsicos a los equipos hardware, tales como robo o
destruccin, reduccin de la disponibilidad, impacto
econmico, acceso a la informacin, modificacin, borrado
malintencionado de datos, etc.
2.1.1. Amenazas segn su origen
Dentro de los riesgos fsicos segn su origen, los debidos a desastres, naturales o artificiales, destacan:
1. Incendio. La prevencin de los riesgos de incendio debe estar documentada en el plan de prevencin de
riesgos laborales, as tener establecidos los planes de evacuacin con sus respectivos responsables.
La extincin de incendios suele ser enemiga de los equipos informticos. Tanto los sistemas extintores de
agua o polvo, suelen causar un gran dao a los sistemas, que en muchos casos quedan inutilizables. Por
tanto, debe tenerse en cuenta la situacin de los equipos en locales que no posean materiales combustibles
o cerca de almacenes de material inflamable o explosivo. Es habitual por instalar suelo tcnico, que sirva
como aislante y puertas o paredes cortafuegos.
Como medida transversal a todos los riesgos, es imprescindible tener copias de seguridad de la informacin
(backups) y servidores y sistemas duplicados en localizaciones diferentes para asegurar la disponibilidad.
2. Inundacin. Puede tener su causa de forma natural o artificial, como al accionarse el sistema de extincin
de incendios. Si la zona posee riesgo de inundacin puede pensarse en no instalar los sistemas en stanos
o plantas bajas, utilizar techos impermeables para prevenir inundaciones de pisos superiores, etc.
3. Desastres Naturales. Como terremotos o condiciones climticas severas propias de ciertas zonas del
mundo. En general, suelen existir planes de contingencia y un servicio de alerta climtica. La construccin
de los edificios previene estos tipos de desastres siguiendo la normativa local, como en el caso de Japn.
4. Electromagnetismo: En contingencias electromagnticas hay que destacar tres, la alimentacin elctrica,
la proteccin TEMPEST y las interferencias. De las tres, la que propiamente encaja en este apartado es la
primera. La proteccin TEMPEST y las interferencias responderan a amenazas fsicas segn el objetivo,
pero se incluyen aqu por su relacin.
Para prevenir problemas de alimentacin elctrica, la solucin habitual es disponer de unidades de
alimentacin suplementaria o ininterrumpida (UPS en ingls, SAI en castellano), que son bateras que
suministran energa durante un tiempo despus de un corte para dar tiempo a solucionar la emergencia o
realizar cierres ordenados que eviten prdidas de informacin o la corrupcin de los sistemas.
Segn la instalacin a proteger, pueden existir otras fuentes de energa como grupos electrgenos, es decir,
motores que alimentados con gasleo u otros. Habitualmente, los sistemas de proteccin elctrica incluyen
etapas de filtrado para evitar picos de tensin, aunque hoy da el suministro comercial suele ser limpio.
Las protecciones TEMPEST se refieren a medidas de proteccin frente a fugas de informacin debidas a las
emisiones electromagnticas que generan los sistemas. Estas emisiones, procedentes de, por ejemplo, un
monitor de un equipo, podran recogerse y visualizar su actividad. Las protecciones TEMPEST no seran
necesarias en un caso general. Son protecciones a tener en cuenta en organizaciones con grandes
requisitos de seguridad, como bancos, instituciones militares o gubernamentales, etc.
Si las amenazas TEMPEST son pasivas, pues monitorizan, sin intervenir en el sistema, las interferencias
electromagnticas provocadas se orientan a la denegacin de servicio. La proteccin electromagntica
intenta defender el sistema frente a interferencias provocadas. Suelen ser tpicas de comunicaciones radio.
Medidas de proteccin puede ser la emisin con salto de frecuencia y similares.
Como resumen, el entorno fsico de los sistemas debe estar libre de interferencias electromagnticas,
disponer de controles para temperatura y humedad y alimentacin con UPS. Deben ubicarse en un espacio
controlado, bajo llave y accesible slo por personal autorizado.
Los factores humanos, se refieren a amenazas causadas por personas sin un objetivo concreto. Las causas
deben buscarse en razones, como empleados descontentos o despedidos. Para evitar estas amenazas, las
medidas a implementar son las mismas que en el caso de amenazas con objetivos y se pueden resumir en
controles de acceso, establecimiento de zonas de seguridad, etc. Se estudian en el siguiente apartado.

337
Adems, como tambin se recoge en las recomendaciones de la serie ISO 27000, puede ser conveniente
exigir a los trabajadores garantas personales de seguridad, adems de informarles de las consecuencias
legales que pueden tener un sabotaje o la divulgacin de informacin clasificada de la empresa.
2.1.2. Amenazas segn el objetivo
Segn el objetivo perseguido, la seguridad desde el plano fsico debe proteger los recursos, su utilizacin, la
informacin y la imagen de la organizacin.
1. Recursos. La principal amenaza a los recursos fsicos es el robo. El equipamiento de comunicacin suele
ser caros y por tanto objeto de deseo. El software, por su parte es fcilmente sustrable ya que muchas
veces, la copia de informacin es fcil y no deja rastro.
Contramedidas seran el establecimiento de zonas de seguridad que agrupen elementos a proteger o la
proteccin de los puntos de acceso fsico entre zonas, con medidas de seguridad activa, como controles de
acceso de personal o seguridad pasiva como sistemas de alarma o CCTV.
Los controles de acceso requieren la capacidad de identificacin, asociada a sus permisos. En los controles
podr disponerse personal de seguridad, detectores de metales, sistemas biomtricos, etc.
2. Utilizacin. Cuando una amenaza afecta a la utilizacin de los recursos de la empresa, puede pensarse
en el uso fraudulento y el sabotaje. La utilizacin fraudulenta de recursos, de forma que impida a la empresa
desarrollar su operativa, no suele darse, ya que los recursos suelen estar sobredimensionados, pero es
usual que los empleados usen equipos para realizar tareas no propias de la empresa (descargas, etc.). Otro
caso es el referido a redes inalmbricas, cuyo uso fraudulento por parte de un intruso podra ser perjudicial.
El sabotaje se estudia a continuacin.
3. Informacin. La proteccin a la informacin desde el plano fsico distingue entre informacin almacenada
y en trnsito, que suele protegerse mediante procedimientos lgicos, en general criptografa. De las
amenazas a la informacin almacenada destacan el borrado accidental o intencionado y el sabotaje. El
sabotaje es una de las amenazas ms difciles de proteger. Un simple ataque con imanes potentes en
dispositivos de almacenamiento fsico es fcil de realizar y difcil de detectar.
Como ejemplo tpico se citar el ataque de la asistenta (Maid Attack). Consiste en que alguien que desea
robar informacin, ofrece dinero a personal de limpieza o similar para realizar copias o robo de informacin.
Las medidas de prevencin son las expuestas: control de acceso, garantas personales de seguridad,
CCTV, copias de seguridad, duplicidad de los sistemas, etc.
4. Imagen. Los fallos de seguridad, aunque sean bromas, como la modificacin de una pgina web, tienen
efectos negativos en la imagen de la empresa. Una poltica de seguridad con planes de contingencia que
recuperen la actividad de la empresa en poco tiempo, transmite imagen de solidez y garanta. Hay casos en
que los incidentes no se conocen por no interesar ni a vctima, ni a intruso. Es el caso de la seguridad de
bancos. La prdida de reputacin podra ser ms costosa que hacerse cargo del incidente.
Como caracterstica comn, en la poltica de seguridad y los procedimientos que la desarrollen, se debe
identificar a los responsables de instalar y trasladar los equipos, responsables de mantenimiento hardware y
de las instalaciones e intentar garantizar el acceso slo a personal autorizado. En la ley, por ejemplo la
LOPD, puede establecerse la necesidad de designar responsables de los ficheros con datos sensibles.
2.2. Seguridad Lgica
La seguridad lgica se refiere a la proteccin relacionada con aspectos software. Los tipos de amenazas
son del tipo ataques de intrusos, virus, denegacin de servicios, falsificacin o ingeniera social.
Se conoce como hacker a la persona que realiza ataques informticos. El nombre apropiado sera cracker.
Hacker se debe referir a personas que estudian aspectos de la tecnologa con un nimo no daino, que slo
persiguen el conocimiento y a veces la popularidad. Aqu se usarn los trminos intruso o atacante.
Para una perspectiva ms didctica de la seguridad lgica, se realizar un estudio de las amenazas
siguiendo los niveles OSI. En la siguiente exposicin, ligera por necesidad, se hablar habitualmente de
ataques, ms que amenazas, de forma que, segn el contexto, podrn considerarse sinnimos.
2.2.1. Nivel Fsico
A este nivel, se encuadrara lo estudiado en el apartado de seguridad fsica. Sin embargo, hay un tipo de
ataque referido al nivel fsico del modelo OSI, que se realiza con software. Es el ataque de la monitorizacin
del trfico de la red. Para ello, se usan programas de anlisis de trfico de red, rastreadores o sniffers.

338
Estos programas trabajan aprovechando los protocolos
que usan un acceso al medio por difusin, como
Ethernet o Wifi. La informacin est en el cable o en el
aire disponible para cualquiera. En el caso habitual, un
destinatario no legtimo de la informacin la ignora,
pero un intruso podra analizarla configurando su
interface en modo promiscuo.
Medidas de proteccin contra este tipo de ataques seran la instalacin de programas antisniffers y la
segmentacin de LAN (creacin de VLAN). Existen analizadores de red fsicos, instrumentos con apariencia
similar a un polmetro, que requieren un acceso fsico al cable, o al equipo de red (switch, router), por lo que
las medidas de seguridad contra estos equipos se englobaran en las de la seguridad fsica.
En cuanto a redes inalmbricas, poco se puede hacer a nivel fsico para evitar que un intruso recoja la
radiacin. Por tanto la proteccin debe hacerse a nivel lgico: restriccin de direcciones de red, filtrado
MAC, emisin de menor potencia, etc. Sera el ejemplo tpico de intercepcin.
2.2.2. Nivel Enlace
La subred posee debilidades que dependen de la tecnologa que implemente. El caso de estudio tpico es
Ethernet. Este nivel es el primero en usar direccionamiento.
Para ilustrar el tipo de ataque a este nivel, se recurre al protocolo ARP, Address Resolution Protocol, que
consiste en las normas que rigen la forma de relacionar direcciones MAC con direcciones IP. Cuando un
equipo necesita conocer la direccin IP de destino en su subred, preguntar quin posee la direccin MAC
correspondiente a esa IP, para poder enviarle la informacin.
El ataque tpico es el conocido como Man In The Middle (MITM), consistente en usar el protocolo ARP para
hacer corresponder direcciones IP con direcciones MAC que no son correctas, de forma que el emisor enve
la informacin al intruso, que a su vez la retransmitir al receptor legtimo. Con esto, el intruso consigue
tener acceso a la informacin transmitida. Sera un ejemplo tpico de ataque de modificacin.
La defensa en este nivel consiste en la utilizacin de switches, segmentacin de la red, creacin de tablas
ARP estticas (solucin de difcil mantenimiento), DHCP snooping o programas que detectan estos ataques.
Existen otros ataques referidos a los equipos, en particular switches, como los desbordamientos de tablas
ARP, o vulnerabilidades del protocolo STP. STP es un protocolo de rbol de expansin, encaminado a
evitar los problemas de bucles en el cableado de una red local. En general estas vulnerabilidades se evitan
configurando los equipos siguiendo indicaciones del fabricante.
2.2.3. Nivel Interred
Los ataques del nivel de Interred poseen un denominador comn, que consiste en explotar las debilidades
de los protocolos, en particular IP. Una primera idea clasifica los ataques en: sniffing o monitorizacin,
spoofing o falsificacin y denial of service, o denegacin de servicio. A stos ltimos pertenecen un tipo
particular de ataques llamados de inundacin o flooding. Por ello, para recordar mejor los ataques, puede
pensarse en tres categoras: sniffing, spoofing y flooding.
El sniffing ya ha sido explicado. Consiste en analizar el trfico de una red. Puede parecer simple, pero son
muchas las ocasiones en que se interceptan contraseas que comprometen la seguridad. El spoofing
consiste en la falsificacin de algn parmetro. En el ataque MITM se hace uso de tcnicas de spoofing, al
falsificar una direccin MAC. A nivel IP se habla de IP spoofing o falsificacin de direcciones IP.
Si un intruso se hace pasar por otra mquina, utilizando la falsificacin IP, puede obtener informacin
sensible o realizar acciones perjudiciales. Una forma de conseguir una falsificacin es mediante el robo o
secuestro de una sesin (hijacking). Este ataque consiste en analizar la conversacin entre dos mquinas, y
fabricar paquetes con su direccin IP falsificada y otros parmetros del protocolo que se han adivinado para
quedarse con la conversacin como si se fuera el equipo legtimo.
Los ataques de denegacin de servicio (DoS) pretenden evitar que una mquina ofrezca el servicio para el
que trabaja. No es necesaria inteligencia especial para tirar el servidor, salvo en los ataques de
denegacin distribuida. Sin embargo, son efectivos, en cuanto que consiguen notoriedad, expulsar a una
organizacin de la red durante un tiempo y afectar a la reputacin de la vctima. Un ejemplo notorio ha sido
el ataque distribuido dirigido hacia la SGAE.
Los ataques DoS son numerosos. Se distinguen los de fragmentacin, inundacin y denegacin de servicio
distribuida (DDoS). Los primeros aprovechan debilidades en la programacin de protocolos para que ante
paquetes mal construidos, la mquina vctima caiga. Ejemplos son el ping de la muerte y teardrop.

339
Los ataques de inundacin consisten en enviar mucho trfico intil (espreo o ruido), de forma que cuando
una mquina intente responder a ese trfico se vea saturada, y por tanto un cliente legtimo no podra
obtener servicio. Ejemplos de este tipo de ataque son smurf, fraggle, echo-chargen, etc. Los dos primeros
son muy instructivos: consisten en enviar peticiones con direccin origen la vctima a una direccin
broadcast. De esta forma, todas las mquinas contestaran a la direccin vctima, saturndola.
Por su parte, los ataques DDoS se basan en el mismo concepto. Un equipo dominara numerosos equipos,
gracias a la infeccin con troyanos, o por coordinacin, de forma que se sincronizan y lanzan el ataque a la
vez, generando ruido contra la vctima y evitando que preste su servicio. La solucin a estos ataques est
muy documentada. En general, los SO vienen programados para evitarlos. Sin embargo, los dispositivos de
red deben configurarse, por ejemplo deshabilitando el broadcast, etc.
2.2.4. Nivel Transporte
Los puertos suponen uno de los puntos de entrada ms comunes de los ataques a sistemas en red. Uno
tpico es el escaneo de puertos, consistente en ir realizando peticiones de conexin a los puertos de una
mquina. Si el puerto contesta, se sabe que all existir un servicio. Si no contesta, puede ser que o no haya
servicio o est filtrado. Si el puerto contesta de forma diferente, podr identificarse esa contestacin como
perteneciente a cierto SO. Esta tcnica es OS fingerprint, o huella del puerto.
Tambin se aprovechan debilidades de los protocolos, como la negociacin de sesin o el intercambio de
nmeros de secuencia. Dada una conversacin entre mquinas, puede escucharse e intentar adivinar los
nmeros de secuencia que se intercambian emisor y receptor. Hay ciertos sistemas, que se sabe que
generan nmeros de secuencia no del todo aleatorios y por tanto, puede intentarse adivinar esos nmeros y
hacerse pasar por la vctima. Son los robos de sesin.
Otro ataque que aunque no de capa cuatro, puede incluirse aqu, por ser didctico, son los ataques de
repeticin, en los que un atacante que no tiene idea de romper una conversacin o hacerse con su control,
observando el trfico de la red podra repetir la informacin y generar un grave perjuicio a la vctima. El
ejemplo tpico es una transferencia bancaria. Si sta se repite cien veces, la vctima habra realizado una
transferencia de cien veces la original. Para evitar estas situaciones, el software se mejora desarrollando
parches (actualizaciones), que van tapando agujeros de programacin.
A nivel cuatro, el equipo o software caracterstico es el firewall, que realizan la funcin de filtro o control de
la comunicacin. Implementan seguridad. La herramienta bsica que usan, son las listas de control de
acceso o ACL. Una ACL es un conjunto de comandos que definen reglas de filtrado de trfico en un interfaz
y en un sentido (entrada o salida). Un ejemplo de aplicacin sera una situacin de falsificacin de IP, en la
que un intruso intente acceder a una red, con una direccin de la propia red. Esa accin es sospechosa,
puesto que un acceso externo debera tener direccionamiento externo. Si la configuracin de una ACL slo
permite acceso externo de direcciones externas, se evita ese tipo de trfico.
La inclusin de firewalls en la red, da origen a la definicin de una estructura
de seguridad. Habitualmente, al hablar de firewalls en la red, se suele
pensar en lo que se da en llamar la zona desmilitarizada, o DMZ, en ingls.
Una DMZ es una zona de la red de una empresa, que se define como de
seguridad. Por tanto, en esa zona, se colocan los activos ms importantes:
Los servidores, es decir, la informacin. All ser tpico encontrar los
servidores web, de correo, de aplicaciones, etc.
La zona, se limita con al menos un firewall, de manera que el trfico de acceso a los servidores y a la red
interna de la organizacin est controlado. El firewall permite comunicar la zona interna con la DMZ y esta
con el exterior, pero no directamente.
Otra medida de seguridad no puramente de capa 4, es el establecimiento de honeypots y honeynets. Estas
estructuras se definen como anzuelos o seuelos. Consisten en exponer un equipo (honeypot, tarro de miel)
a ataques malintencionados, de forma que el anlisis posterior de los ataques recibidos sirva para descubrir
patrones de ataque, mtodos usados por los intrusos, etc. Se recoge informacin que ayude a proteger el
sistema. Una honeynet, es el mismo concepto, una red dulce, real o virtual.
2.2.5. Nivel Aplicacin
El nivel de aplicacin genera ms problemas por la cantidad de software que incluye. Enumerar los ataques
a este nivel es difcil. Por ello se establecen tres mbitos de seguridad: el SO, las aplicaciones e Internet.
En cuanto a los SO, en particular los servidores, deben configurarse de forma que proporcionen, al menos
una seguridad bsica. Un solo equipo mal securizado puede ser el punto de entrada de graves ataques. La
definicin de usuarios, recursos y permisos, debe ser correcta, limitando al mximo los permisos necesarios
para desarrollar el trabajo habitual. Esto es vlido para el resto de entidades como grupos, dominios, etc.

340
En general, las polticas de filtrado deben ser restrictivas. As, se deben filtrar todos los puertos, excepto los
estrictamente necesarios o instalar slo los servicios necesarios, lo que debe revisarse ya que, por defecto,
puede haber SO que los implementen.
Es conveniente configurar registros (logs), archivos en que se anotan las acciones que se dan en el
sistema. Su utilidad es avisar cuando existe una accin sospechosa y ofrecer informacin de anlisis
cuando el incidente se ha producido. Cuando se da un incidente de seguridad, su anlisis, a partir de las
huellas que pueda haber dejado el intruso, se denomina anlisis forense.
El SO y el software debe ser actualizado con parches y actualizaciones de los fabricantes, puesto que
cada actualizacin, adems de ofrecer casi siempre una mejora de rendimiento, suele solucionar problemas
de seguridad. Como ya se dijo, medidas transversales de seguridad son las copias de seguridad o las
contraseas fuertes en los controles de acceso.
En las aplicaciones se dan vulnerabilidades provenientes de la ejecucin de programas que o bien
presentan agujeros de seguridad o bien son la va de transmisin de programas tipo virus. stos son
programas usados para causar un dao. Distintos tipos de virus son bombas lgicas, troyanos y gusanos.
Las bombas lgicas son virus que se activan al darse una condicin, como una fecha o una combinacin de
teclas. De este tipo era el famoso barrotes que impeda el uso del equipo si se encenda en Nochebuena.
Los troyanos, son virus que instalan un servidor remoto en la vctima. El intruso realizar peticiones a ese
servidor que conoce, puesto que lo ha propagado l, y podr obtener el control de esa mquina infectada.
Los gusanos son virus que se duplican utilizando procesos del SO infectado.
La propagacin de virus se realiza por muchas vas. Una de las ms comunes es embebidos en archivos
comunes, como archivos de texto u hojas de clculo, de forma que al abrir el archivo infectado se instala el
virus. Otra va, cada vez ms comn son los dispositivos de almacenamiento extrables tipo usb. Para evitar
la accin de los virus, se usan antivirus, programas que intentan detectar y eliminarlos. Su funcionamiento
consiste en comparar el posible virus con un patrn o firma que posea en su BBDD de virus. Si coincide,
muy probablemente, el candidato a virus lo es. Debido a la rapidez con la que evolucionan los virus
(genricamente malware), es importante actualizar el antivirus a menudo.
El software que utiliza Internet o la conexin a redes no seguras, es potencial va de infeccin o inseguridad.
Los servicios pueden ofrecerse con aplicaciones vulnerables, explotadas por programas o personas para
realizar una accin daina. Los programas que aprovechan vulnerabilidades se denominan exploits.
Ejemplos de exploits son los que aprovechan debilidades NetBios para ofrecer una consola remota.
Ejemplos de debilidades del software es la inyeccin SQL, consistente en introducir sentencias SQL en
formularios o consultas web.
A travs de los clientes de correo electrnico es comn la propagacin de virus, muchas veces camuflados
en archivos de bromas o juegos. Asegurar con una configuracin correcta los clientes y servidores de correo
electrnico es fundamental, para evitar que intrusos usen los recursos para realizar mail-bombing (envo
masivo de correo) o generar spam.
Los programas P2P para compartir archivos, suelen ser vas de descarga de software daino. Otros
programas son los keyloggers, programas que una vez instalados en una mquina capturan las pulsaciones
del teclado, lo guardan en un archivo y lo envan al atacante. Si se teclea un nombre de usuario y su
contrasea, habrn sido registrados y por tanto podrn ser usados por el intruso. Tambin poseen versin
hardware, cuya incidencia quedara limitada con las medidas de seguridad fsica.
Como resumen de medidas de proteccin a nivel aplicacin estn la configuracin segura de los servidores
y SO, uso de antivirus, actualizacin y parcheado de aplicaciones y precaucin en el uso de programas que
accedan a Internet. Adems, en general, la seguridad va enfrentada a la velocidad, es decir, a mayor
seguridad, mayores chequeos y por tanto habr que pagar un precio en el rendimiento de los sistemas.
2.2.6. Nivel Meta Aplicacin
No es normal en la literatura hablar del nivel de meta aplicacin. Se ha querido acuar este trmino para
incluir y estructurar de algn modo aspectos algo ms all del software, del nivel de aplicacin. Estas ideas
se refieren a aspectos ms humanos que tcnicos. Dos conceptos: ingeniera social y criptografa.
La ingeniera social puede definirse como el conjunto de tcnicas basadas en relaciones humanas, que usa
un intruso para generar una situacin de inseguridad. Ejemplo tpico es una llamada de una persona que se
hace pasar por una autoridad y solicita a una vctima su usuario y contrasea para solucionar un problema.
La buena voluntad de la vctima hace que el intruso supere toda la seguridad con una llamada de telfono.
Los ataques de ingeniera social se apoyan en la misma base: la interaccin humana. Variante tpica es el
phising, consistente en enviar un correo electrnico hacindose pasar por una entidad bancaria e invitar a la
vctima a pulsar un enlace para confirmar unos datos, por ejemplo nmero de cuenta y clave de acceso. El

341
enlace que se pulsa lleva a una pgina web fraudulenta. La vctima introduce los datos, se indica un error y
se redirige a la pgina legtima. Los datos introducidos quedan grabados en la mquina delincuente.
La criptografa podra traducirse por escribir en una tumba o cripta, y probablemente sea ms apropiado
hablar de cifrado. Se presenta la seguridad que ofrecen las tcnicas que reescriben la informacin de forma
que no sea capaz de leerse fcilmente. La informacin se interpreta con convenios habituales en texto
plano, no cifrado. Si se usan mtodos para dificultar su lectura se habla de informacin o texto cifrado. Estos
conceptos son verticales, afectan a toda la comunicacin y pueden implementarse en una o en cada capa
de la pila OSI. Se suele hablar de dos tipos de cifrado: simtrico y asimtrico. El simtrico consiste en una
clave secreta que comparten emisor y receptor. Cuando intercambian informacin, el emisor cifra el
mensaje con esa clave, lo enva, y el receptor lo descifra con esa misma clave.
El cifrado asimtrico se basa en dos claves, una secreta y otra pblica. Pueden visualizarse como un
candado y una llave. Cuando el emisor enva un mensaje, lo cifra con el candado del receptor, su clave
pblica. Cuando el mensaje llega al receptor ste lo descifra con su clave privada, la llave del candado.
Puede parecer que si todo el mundo conoce la clave
pblica, se conoce el cifrado del mensaje y no hay
seguridad. No es as, porque la clave pblica, cifra, no
descifra, y conociendo la clave pblica no se conoce
la privada. Esto significa que un mensaje cifrado con
clave pblica, slo se descifra con la privada. Y
obtenerla a partir de la pblica es muy difcil.
Los aspectos humanos se refieren a la confianza. Para usar cifrado asimtrico se intercambian certificados
digitales de confianza, que son una clave pblica, emitida por una autoridad en la que se confa, como la
FNMT. Las autoridades de certificacin garantizan que alguien es quien dice ser.
El cifrado simtrico, para el mismo nmero de bits de la clave, es ms robusto que el asimtrico y ms
rpido. En general, el cifrado asimtrico se utiliza al comienzo de la comunicacin para establecer una clave
secreta vlida para una sesin. Estos conceptos tienen aplicacin en dos mbitos: el cifrado de las
comunicaciones y creacin de redes privadas virtuales y la firma digital. Para cifrar comunicaciones a nivel
dos se utiliza cifrado simtrico preconfigurado con protocolos como PPTP, L2F o L2TP y cifrado PAP o
CHAP. A nivel 3 se utiliza IPSEC y a niveles superiores SSL o TLS.
Una VPN es una red privada virtual. Es implementada creando y cifrando una conexin virtual entre dos
equipos. Se puede crear en dos modos de trabajo, modo tnel, que crea un tnel entre dos equipos
intermedios de la red o modo extremo a extremo, que crea una conexin cifrada de emisor a receptor.
La firma digital persigue garantizar la autenticidad (no repudio) y la integridad. Un resumen es el producto
de una funcin que actuando sobre una entrada genera una combinacin de longitud fija. Al resumir un
texto, se obtendr una serie de varios bits y ser muy difcil encontrar otro texto con el mismo resumen.
Bsicamente el proceso es ste: Un emisor genera un mensaje, que es resumido. El resumen se cifra con la
clave privada del emisor. De esta manera se podr descifrar con la clave pblica del emisor. Pero qu
informacin se obtiene: ninguna, slo un resumen, 256 bits. Lo que si aporta es conocer al firmante, ya que
si el resumen es correcto, el origen es correcto, porque slo se puede descifrar con su clave pblica.
Por otro lado, se enva el mensaje original, junto con la firma, cifrados con la clave pblica del receptor. El
receptor descifra dos cosas: el mensaje original y la firma (el resumen cifrado). Con el mensaje descifrado,
se calcula un resumen candidato. Con la clave pblica del emisor, se descifra el resumen de la firma. Si
coinciden, la comunicacin es correcta, el mensaje original es ntegro y el autor, es el firmante.
3. SERVICIOS DE SEGURIDAD
Los servicios de seguridad son disposiciones orientadas a cumplir con los requisitos de seguridad,
confidencialidad, autenticidad, integridad y disponibilidad. El problema que presentan, como se ha indicado,
es el riesgo: la materializacin de la amenaza y su consecuente impacto.
Por tanto, existe un componente temporal que condiciona el servicio de seguridad. Si la amenaza no se
materializa, se podra decir, muy groseramente, que tener o no tener servicio de seguridad es equivalente.
Pero, un servicio de seguridad, an no materializndose la amenaza realiza una accin preventiva. Por
tanto, este criterio temporal puede servir para identificar a los servicios como preventivos y reactivos. Es
decir, los orientados a cubrir riesgos antes de que se produzcan y los que intentan solucionar su impacto.
Se han presentado servicios de seguridad por niveles del modelo OSI. En realidad en todos los niveles se
repiten los conceptos, adaptados a la naturaleza de la funcin de cada capa. Para completar la visin, ahora
se categorizan los servicios por funcin de seguridad que desempean.

342
El servicio de confidencialidad utiliza tcnicas criptogrficas. A cada nivel tendrn un significado. Por
ejemplo, a nivel de aplicacin, se encriptar la informacin, y a nivel de red, se podr cifrar un enlace. La
tcnica es la misma, pero aplicada en el contexto de cada capa del modelo.
El servicio de autenticidad / no-repudio tambin usa tcnicas criptogrficas adaptadas, como el uso de clave
pblica y privada, resmenes o firmas digitales. El servicio de no-repudio se estandariza en la norma ISO-
7498-2. Asimismo para ofrecer integridad se usan tcnicas de resumen, redundancia, etc. Por fin, la
disponibilidad hace uso de criterios relativos a protocolos, con tcnicas como el establecimiento de
umbrales, copias de seguridad, etc.
Es fcil encontrar referencias a servicios de seguridad en la forma de servicio antivirus, servicio de respaldo
u otros. Estos servicios ofrecen las mismas funciones, pero agrupados con otros criterios. Por ejemplo, el
servicio antivirus, es un servicio preventivo contra ataques a la confidencialidad, integridad o autenticidad. Y
tambin hace uso de tcnicas, como resmenes o firmas de virus para identificarlos, que al final no es ms
que una prueba de integridad. El servicio de respaldo (backup), sera un servicio reactivo, ms que
preventivo, orientado a garantizar la disponibilidad (continuidad) de las operaciones y entre otras cosas
debe tener en cuenta las copias de seguridad de la informacin.
Por tanto, como referencia pueden clasificarse los servicios de seguridad en funcin de los criterios que se
tiende a garantizar: autenticidad, integridad, etc. Y tenerlos en cuenta cuando se haga referencia a servicios
que se clasifiquen con otros criterios.
4. TCNICAS Y SISTEMAS DE PROTECCIN
En los apartados anteriores se han ido esbozando algunas tcnicas y sistemas de proteccin de red. Otra
vez, clasificando la defensa en funcin de su objeto, se pueden agrupar de la siguiente forma:
Confidencialidad. Antivirus, conexiones seguras (SSL, IPSec, SSH), tcnicas de resumen y cifrado, redes
privadas virtuales (VPN)
Disponibilidad. Sistemas de cortafuegos, antivirus, acceso remoto, redes privadas virtuales (VPN), servicios
de respaldo y recuperacin, tcnicas de monitorizacin, etc.
Autenticidad. Sistemas de gestin de dominios y usuarios, sistemas de IDS IPS, antivirus, tcnicas
biomtricas, tcnicas de resumen y cifrado, firma digital
Integridad. Tcnicas de resumen y cifrado, firma digital
5. ESTNDARES
Presentar una descripcin de la legislacin existente en cuanto a seguridad de sistemas en red, podra ser
muy extenso, por lo que slo se enumera la ms relevante para conocer el marco legal dnde remitirse.
Proteccin de datos: LOPD: Ley orgnica 15/1999
Firma Electrnica: En Europa, Directiva 1999/93/CE, en Espaa Ley 59/2003.
Recomendaciones ISO sobre seguridad informtica: Familia 27000 de entre las que deben conocerse:
ISO 27001: Requisitos del sistema de gestin de seguridad de la informacin.
ISO 27002: Gua de buenas prcticas en cuanto a seguridad de la informacin.
ISO 27005: Directrices para la gestin del riesgo en la seguridad de la informacin.

343
TEMA 73. EVALUACIN Y MEJORA DE PRESTACIONES EN UN SISTEMA EN RED. TCNICAS Y
PROCEDIMIENTOS DE MEDIDA.

1. INTRODUCCIN
2. EVALUACIN Y MEJORA DE PRESTACIONES EN UN SISTEMA EN RED
2.1. Evaluacin
2.2. Mejora
3. TCNICAS Y PROCEDIMIENTOS DE MEDIDAS
3.1. Teora de Trfico
3.2. Teora de Colas
3.2.1. Sistema M/M/1
3.2.2. Sistema M/M/1/N
3.2.3. Sistema M/M/2
3.2.4. Sistema M/G/1
3.2.5. Redes de Colas

344
1. INTRODUCCIN
La evaluacin y mejora del rendimiento de un sistema en red, es una tarea que comienza con su
concepcin. El objetivo es disponer de una red en explotacin con un rendimiento ptimo. La evaluacin
debe ser objetiva para comparar el comportamiento del sistema en distintos momentos o en relacin con
otros sistemas. Las mediciones indicarn los problemas y aspectos de mejora.
Para la evaluacin y mejora del rendimiento, es necesaria una base terica que explique el comportamiento
del sistema y permita establecer los compromisos entre coste, utilidad y satisfaccin de los usuarios, entre
otros. Estos aspectos los estudia la teora de trfico, que es aplicada en la teora de colas.
2. EVALUACIN Y MEJORA DEL RENDIMIENTO EN UN SISTEMAS EN RED
La evaluacin del rendimiento de un sistema en red tiene como propsito obtener la informacin necesaria
para discernir si el sistema cumple con sus exigencias. Es un proceso orientado a la mejora, de forma que
la informacin obtenida ser el punto de comienzo para analizar las posibles mejoras. La evaluacin plantea
interrogantes bien definidos. El primero es el rendimiento. Para algn sistema puede orientarse a la
reduccin de tiempos y para otro puede referirse a transacciones realizadas con seguridad, o con un coste
mnimo, por ejemplo. Existen otras variables a estudiar y medir, como la carga de la red, la fiabilidad o el
retardo. Para todas deben establecerse los criterios de medida adecuados.
Del mismo modo, debe decidirse qu tcnicas de evaluacin se utilizarn, tales como la monitorizacin, la
comparacin o la simulacin y poner estas tcnicas en valor, comparando prestaciones y coste, estudiando
cmo se puede incrementar el rendimiento o reducirse costes. La mejora del rendimiento, debe comenzar
por establecer sus lmites, ya que, en principio no es ilimitada, por lo que hay que identificar hacia dnde
dirigir los esfuerzos porque generalmente, mejorar un sistema complejo implica la optimizacin de los
elementos que se utilicen durante la mayor parte del tiempo.
Estos aspectos forman parte de una idea ms amplia, la gestin del sistema en red, que adems de generar
la informacin necesaria para la evaluacin y mejora afronta otros aspectos como la renovacin del sistema,
la reaccin frente a incidencias o la seguridad de la informacin.
2.1. Evaluacin
La evaluacin de un sistema en red no es trivial. Est ligada a su propia naturaleza. Para ello, se requiere
un estudio previo, presentado en la teora de trfico y de colas. Puede pensarse en una red de conmutacin
de paquetes, en la que todos los usuarios comparten el ancho de banda y una red conmutada en la que un
usuario acapara recursos, aunque no los utilice, durante el tiempo que se le asignan. La evaluacin del
sistema diferir y las posibles mejoras estarn adaptadas a la filosofa de trabajo.
Por tanto, las tareas que deben realizarse a la hora de evaluar una red han de consistir en definir qu se va
a evaluar (caractersticas) y cmo (parmetros a medir). A modo de orientacin, un esquema de propsito
general que marque las fases de la evaluacin podra ser el siguiente:
1. Objetivos. Definir los objetivos del sistema, para poder medir prestaciones de factores crticos.
2. Servicios. Definir el servicio que ofrece el sistema y sus resultados. Un sistema puede devolver un
resultado vlido, invlido o no devolver resultado.
3. Parmetros a evaluar y sus mtricas. Identificar los parmetros que definen las prestaciones y las
mtricas y criterios de comparacin. Importancia especial poseen los umbrales que se establezcan.
4. Tcnicas de evaluacin. Segn los objetivos, podr escogerse la tcnica de evaluacin ms indicada a
cada caso, como por ejemplo, simulacin, medidas reales o modelizado.
5. Diseo de pruebas: Creacin de situaciones, reales o simuladas a las que podra enfrentarse el sistema
para comprobar su respuesta.
6. Anlisis y presentacin de resultados. Es el estudio e interpretacin de los datos de las pruebas.
Los parmetros que definen las prestaciones de la red, indicarn valores que muestren la actividad y el
rendimiento del sistema. Cada organizacin definir los parmetros a evaluar, pero como parmetros tpicos
de evaluacin, pueden distinguirse el ancho de banda usado, caudal, latencia o carga.
El ancho de banda se refiere a la tasa de transmisin disponible en el canal. Se mide en unidades de
informacin sobre tiempo, como por ejemplo, Mbps. Es un parmetro importante porque da idea del
dimensionado del canal. El objetivo es obtener un compromiso entre un servicio de calidad y el coste que
representan las lneas de comunicacin (ancho de banda). Se tender a no sobredimensionar y dar un
margen al sistema para afrontar picos de trfico.

345
El caudal, throughput en ingls, es el volumen de datos entregado por un nodo de red en la unidad de
tiempo. Se mide en bits por segundo, paquetes por segundo o similar. En principio, este ser un dato terico
del que habr que evaluar su comportamiento real, que podr verse afectado por variables como el medio
de transmisin, la carga del nodo, el protocolo utilizado, etc.
En relacin con el caudal, se encuentra la latencia, que es el retardo que introduce la red. El retardo es una
suma de tiempos de proceso en los nodos, los tiempos de propagacin en los medios de transmisin o
tiempos de espera por congestin o retransmisiones. Es un parmetro, que cobra importancia segn la
aplicacin a evaluar, de modo que aquellas en las que prime la seguridad sobre el tiempo no tendr tanta
importancia como en aplicaciones de video o audio.
La carga de proceso en los nodos de la red es la cantidad de operaciones que se exigen a los elementos
que procesan los datos. Si se considera el caso de un router con un nmero moderado de paquetes a
procesar, podr funcionar sin problemas, pero un trfico abultado puede afectar al rendimiento. Evaluar la
carga que ha de soportar la red, es fundamental para garantizar la continuidad y disponibilidad de los
servicios que ofrece el sistema.
Las mtricas a seleccionar sera el conjunto de criterios a usar en la evaluacin del sistema. Pueden
hacerse depender de las prestaciones que se intentan conseguir. Una primera aproximacin podra ser la
respuesta del sistema (si el sistema ha respondido correctamente, si no, o si no ha habido respuesta).
En estos tres casos, las mtricas interesantes pueden variar. Si el servicio se ha completado con xito, la
mtrica a utilizar podra referirse al tiempo empleado, ancho de banda consumido o medidas del estilo. Las
medidas pueden presentarse como un agregado del sistema o particularizarse para un equipo.
Los casos de respuesta errnea y ausencia de respuesta (negacin de servicio) son ms delicados en su
anlisis, ya que se refieren a la fiabilidad y disponibilidad. En el caso de una respuesta errnea puede
utilizarse el tiempo medio entre fallos (MTBF, Mean Time Between Failures) y en el caso de una ausencia
de respuesta el tiempo de disponibilidad, en un periodo de tiempo amplio, como por ejemplo en un ao.
Esto es debido, a que se supone que el sistema va a estar operativo la prctica totalidad del tiempo, por lo
que un dato representativo ser del estilo disponibilidad del 99.95% anual, que significara que el sistema ha
estado fuera de servicio unas horas en un ao. A veces esto se refiere como disponibilidad de cinco nueves
o similar. Otras veces, para los equipos se suelen usar los valores proporcionados por los fabricantes.
En general las medidas deben cumplir tres propiedades: no redundancia, completitud y sondeo. La no
redundancia implica que no haya solape o dependencia entre medidas a realizar. La completitud, est
referida a que cubran la mayor parte de las prestaciones a evaluar y el sondeo se orienta a realizar medidas
con una dispersin tal que no obligue a tomar medidas constantemente.
Las tcnicas de evaluacin a usar dependern de la red. La evaluacin podr realizarse en base a medidas
directas sobre el sistema en funcionamiento o mediante simulacin o modelizacin. sta se apoya en
estudios matemticos y teora de trfico. La simulacin consiste en usar software que describa la red y en
funcin de las condiciones impuestas, obtener el comportamiento estimado, en general con grficas e
informes. Las tcnicas se pueden combinar. Las tcnicas de simulacin representan una forma ms o
menos rpida y econmica de obtener informacin.
Las diferencias tambin resultan evidentes. Mientras una medicin real, es un dato, en principio objetivo y
fiable, los resultados de un modelo o una simulacin siempre sern estimaciones del comportamiento
esperado y que estarn sujetas a errores de diseo del sistema simulado o las condiciones impuestas.
Las mediciones que se realicen sobre la red, podrn realizarse con herramientas genricas o propietarias.
Es comn que los dispositivos de red dispongan en su firmware de utilidades o comandos de monitorizacin
y medida, as como la implementacin de protocolos para la gestin de red, que proporcionan informacin y
estadsticas de comportamiento.
La informacin del estado de la red y mediciones de los parmetros definidos puede remitirse de dos formas
principales, mediante eventos o alarmas, que se producen cuando un parmetro supera un umbral, por
ejemplo, o mediante muestreo, en que peridicamente un equipo central interroga o recibe la informacin.
La condicin de diseo para la toma de muestras, es que generen el menor trfico posible, dado que
supone un consumo de recursos tanto en equipos como en el ancho de banda de la red. Del mismo modo,
el envo de la informacin puede realizarse en tiempo real o diferido (batch).
Para la evaluacin de se puede usar la referencia del RFC 2544, "Benchmarking Methodology for Network
Interconnect Devices", publicado por el IETF y en donde se definen una serie de pruebas para comprobar el
funcionamiento de dispositivos de red. Algunas de las secuencias automticas de pruebas definidas en ese
documento para la evaluacin de la red, incluyen parmetros ya presentados. Destacan los siguientes:

346
- Throughput: Es una prueba para determinar la mxima velocidad a la que un equipo recibe y enva tramas
sin prdidas. La prueba se puede realizar con diferentes tamaos de trama segn el RFC 2544.
- Frame Loss Rate: Determina el nmero de tramas que el equipo pierde a diferentes velocidades. Los
resultados muestran el porcentaje de tramas perdidas para cada tamao de trama.
- Back-to-back frames: Determina la capacidad Ethernet para soportar trfico a rfagas con varios tamaos
de trama. El resultado es el nmero de tramas en la rfaga ms larga capaz de manejar sin prdidas.
- Latencia (Round Trip Delay): Proporciona la medida del retardo de la red con varios tamaos de trama. Se
obtiene calculando la diferencia entre las marcas de tiempo de las tramas transmitidas y recibidas.
2.2. Mejora
Una vez definida la evaluacin de un sistema en red, se deben aplicar sus resultados a la mejora, que
puede entenderse como un proceso continuo en el que se analiza la informacin proveniente de evaluar,
monitorizar y gestionar un sistema en red para optimizar su funcionamiento.
En la monitorizacin o supervisin de red, se adquiere informacin en tiempo real del trfico y por tanto de
la actividad que soporta. Est orientada a descubrir problemas y actividad sospechosa, como ataques a la
seguridad y disponibilidad. Esta proactividad permite diagnosticar instantneamente el problema y
localizarlo para darle solucin. Problemas tpicos pueden ser la congestin (cuellos de botella de trfico en
algn nodo), cada de elementos de red, ataques de denegacin de servicio, uso indebido de los recursos
(descargas masivas) y similares.
Herramientas de supervisin comunes pueden ser los sistemas de deteccin de intrusos (IDS), rastreadores
de red (sniffers o analizadores de trfico) y programas propietarios que ofrecen los fabricantes y que
adems permiten realizar la gestin de la red, como configuracin de enlaces o caminos alternativos ante
incidentes, o la gestin remota de elementos de red, como radios, multiplexores o routers. Aunque el
abanico de herramientas es amplio, y cada empresa suele vender sus soluciones para redondear el negocio
y cautivar al cliente, tambin existen estndares de gestin de red como SNMP.
3. TCNICAS Y PROCEDIMIENTOS DE MEDIDAS
3.1. Teora de Trfico
La teora de trfico trata el problema de la optimizacin de la gestin de un sistema de entrada salida al que
van llegando clientes o usuarios en instantes de tiempos arbitrarios. En una red de ordenadores se tratar
de dimensionar una red a un precio razonable. Se distinguen sistemas de prdidas y de espera.
En un sistema de prdidas, un cliente que llega al sistema con todos los servidores ocupados no puede
entrar al sistema, como por ejemplo, el caso de un aparcamiento. En un sistema de espera, aunque todos
los servidores estn ocupados, el cliente espera a que haya alguno libre. P. ej., una ventanilla de un banco.
En los sistemas de espera caben dos posibilidades:
- La cola puede crecer indefinidamente (capacidad de la cola indefinida)
- La cola posee un tamao mximo. Si se llena, el cliente no entra al sistema (capacidad de cola finita).
Las principales cuestiones a que se intenta responder pueden condensarse en:
1. Dimensin de la red para dar servicio con una calidad dada, economizando la infraestructura.
2. Probabilidad de que un cliente encuentre todos los servidores ocupados.
3. En sistemas de espera, probabilidad de esperar ms de cierto tiempo.
4. Una vez dimensionada la red cmo ampliarla si llegan ms clientes de los previstos (sobrecarga).
Los factores a estudiar para responder a esas cuestiones pueden resumirse en:
1. Uso econmico de la red: No se debe sobredimensionar la red (10.000 canales para 10.000 usuarios).
2. Proporcionar un servicio adecuado: Viene dado por la probabilidad de que un usuario llegue al sistema y
encuentre un servidor (o linea) libre. En el caso de sistemas de espera debe considerarse el tiempo medio
de espera. El servicio ser mejor cuanto menor sea esa probabilidad, por ejemplo, en torno al 1%. Para
calcular esta probabilidad, en telefona se realizan las medidas durante una hora cargada tpica.
3. Demanda de servicio de los clientes: Se tienen en cuenta dos parmetros, el tiempo de servicio que se
presta al cliente (modelado como una variable aleatoria) y el promedio de llegadas al sistema, para lo que
usa el concepto de tasa de llegadas, , medido en llegadas/segundo.
La demanda total que se pide al sistema ser proporcional al tiempo de servicio y a la tasa de llegadas. A
este concepto se le denomina trfico y se nota con la letra A.

347
Por tanto ser el producto de la tasa de llegadas por la media de tiempo de servicio. A = s = 1/s
Denominando a la tasa de servicio (inverso del tiempo medio de servicio) se obtienen
A = /
las expresiones de la derecha. El trfico A se mide en unidades denominadas Erlangs.
Para representar los sistemas de colas, en general se tendrn colas de tipo FIFO (first in, first out), tambin
denominadas FCFS (first come, first served), consistentes en que primero se atiende al usuario que llega
antes. Pueden existir otros criterios, como colas LIFO, en las que el ltimo en entrar es el primero en salir, o
utilizar criterios de prioridad, urgencia o cantidad de datos a procesar.
La representacin grfica es la mostrada en la figura. Las
consideraciones a tener en cuenta son que cada evento es
independiente de los dems y equiprobables. Esa probabilidad de
que ocurra un evento (una llegada al sistema) se considera
dependiente de un cierto tiempo en el que no ha habido eventos.
Se nota con pK(T) a la probabilidad de que haya habido K eventos en el intervalo de tiempo T.P (1 evento
en T) = T P (0 eventos en T) = 1 T donde es la tasa de llegadas.
KT K
Omitiendo el desarrollo se llega a las expresiones mostradas. Representa el pK(T) = -e- (T) / K!
comportamiento del sistema como una distribucin de Poisson. El valor medio de
E(K)=T
la variable K es el nmero medio de eventos en un intervalo T.
Ejemplo tpico es la modelizacin de llegada de llamadas telefnicas de forma caracterstica como la de la
figura. Si se escogen intervalos de tiempo pequeos se puede suponer en cada intervalo una tasa de
llegadas constante, para poder introducir el modelo de Poisson. Existen llamadas que no son
independientes entre s, pero se puede suponer que lo son, si representan un porcentaje despreciable con
respecto al total.
Con estas hiptesis, el modelo de Poisson es aplicable en telefona. Para
redes de conmutacin de paquetes, los eventos pueden asimilarse a la
llegada de paquetes, pero la situacin no es tan buena, las medidas
reales difieren algo, (descritas mejor por procesos autosimilares o
fractales) ,no obstante se usa el modelo de Poisson por simplicidad.
Si se consideran N fuentes de eventos independientes, cada uno de ellos modelable como proceso de
Poisson, la combinacin de todas las fuentes se comportar tambin como un proceso de Poisson cuya
tasa de llegadas agregada ser la suma de las tasas de llegada de los procesos individuales. Para modelar
la distribucin de eventos en cada intervalo de tiempo se utiliza una distribucin exponencial. Se podra
interpretar como una distribucin de Poisson con K=0. Dos son sus propiedades: cada intervalo termina con
igual probabilidad en cualquier instante y la vida residual (tiempo de observacin), sin memoria, ya que la
distribucin exponencial, asigna probabilidades iguales a intervalos de observacin iguales.
Existen redes de conmutacin de paquetes que usan un modelo exponencial para servidores. La media de
T representa el nmero de clientes que pueden procesarse en la unidad de tiempo. En un servicio modelado
con Poisson, las salidas vendrn descritas por una distribucin tipo Poisson.
3.2. Teora de Colas
La teora de colas trata el estudio de sistemas de espera en funcin de las caractersticas del trfico y la
gestin de colas. Para normalizar distintos modelos se utiliza la notacin de Kendall, que asigna a cada
concepto de la teora de trfico un carcter. La notacin queda del tipo A/B/C/D/E/Disciplina:
- A: Patrn de llegadas. Se utiliza una D si el proceso es determinista, una M si es un proceso de Markov,
que utilice un modelo de Poisson, y una G si es un proceso general, a definir.
- B: Tiempo de servicio, el que se tarda en atender a un usuario. Se usan las letras D, M y G como en el
caso del parmetro A.
- C: Nmero de servidores del sistema.
En general se usan slo estos tres parmetros para los casos tpicos de estudio, la notacin de Kendall se
ampla con otros tres parmetros, para especificar ms caractersticas del sistema:
- D: Tamao del sistema (para sistemas de espera). Si no aparece, se supone infinito. Si D = N, se supone
una cola de N-1 elementos.
- E: Poblacin del sistema, o clientes que podran llegar. Si no aparece se supone poblacin infinita.
- Disciplina: Indica cmo se atiende a los clientes de la cola, si la cola es de tipo LIFO, FIFO, urgente, etc.

348
3.2.1. Sistema M/M/1
Es un sistema con tasa de llegadas tipo Poisson,
tiempo de servicio exponencial y un nico servidor.
Se caracteriza mediante la variable de estado n
(nmero de clientes en el sistema) y pn(t) ser la
probabilidad de que haya n clientes en el sistema.
Un t pequeo para que la probabilidad de varios eventos sea despreciable, genera las ecuaciones
llamadas de Erlang. Al alcanzar el rgimen estacionario, las ecuaciones de Erlang se igualan a cero.
n
De la solucin resulta la distribucin de probabilidades del sistema. Si / no fuese menor pn = (/) p0
que 1 se podran obtener probabilidades nulas o menores a 1. Imponer la condicin /<1,
(<) significa que al servidor llegan menos clientes de los que el sistema est procesando. p0 = 1-/

Si fuese > , llegaran muchos ms clientes de los que el servidor podra atender y la cola crecera
indefinidamente con lo que nunca se alcanzara el rgimen permanente.
Aunque se usa la notacin A, para el trfico, tambin suele
usarse = / para la intensidad de trfico. Se define el
factor de utilizacin de un servidor como la probabilidad de
que al menos exista un cliente. La caracterizacin del
sistema M/M/1 puede resumirse en la tabla.
3.2.2. Sistema M/M/1/N
Cuando el sistema posee capacidad limitada, una cola de N
elementos, para el rgimen permanente, las ecuaciones de
Erlang ofrecen las expresiones de la tabla. En estos
sistemas, se define el rendimiento (throughput), , como los
clientes por unidad de tiempo, que entran al sistema.
Cuando un cliente llega y no puede entrar al sistema porque la cola est llena, se da un bloqueo. Un buen
sistema posee una probabilidad de bloqueo baja. La probabilidad de bloqueo es la probabilidad de tener N
clientes, es decir, de ocupar toda la cola. En este caso el factor de utilizacin es FU = /.
Para un sistema con tasa de llegadas y tasa de salidas, la que sea, se define la tasa de paso (throughput),
como el nmero medio de clientes atendidos en la unidad de tiempo. Matemticamente se expresa con la
frmula de Little: E(n) = E(T). En un sistema M/M/1, E(n)=/(1-). Si es mucho menor que uno (<<1), el
sistema estar descargado y no habr que esperar en la cola. E(T) tender a 1/. Si se acerca a uno, el
sistema se satura y el tiempo de espera crece. Esta es la aplicacin de la frmula de Little al sistema M/M/1,
pero podra aplicarse slo a la cola, considerndola un sistema.
3.2.3. Sistema M/M/2
Sistema con tasas de llegadas , poissoniana, tiempo de servicio exponencial y dos servidores. Al ser las
llegadas poissonianas, la tasa es la misma para cualquier instante de tiempo. Si no hubiera clientes en el
sistema, nadie saldra de l. Cuando slo existe un cliente en un servidor, la tasa de servicio ser la del
servidor. Si existen dos clientes, los dos estarn en los servidores y la probabilidad de que salga uno sera
2. Las caractersticas del sistema se resumen en la tabla.
La frmula de Little permite calcular el tiempo medio que
pasan los clientes en el sistema M/M/2: E(T) = 1 / (1-).
Interesa ahora realizar una evaluacin, comparando, de
forma cualitativa, las diferencias que surgen en un sistema
cuando se varan sus parmetros.
Si se compara el sistema M/M/1 con el M/M/2, al tener aqul un servidor, en vez de dos, se satura a mitad
de carga. Se puede comprobar en las ecuaciones de Little aplicadas a cada sistema. Podra pensarse en
otras variaciones. Por ejemplo, un sistema M/M/1 con una tasa de servicio , doble que la de otro sistema
M/M/2. Este podra ser el caso de tomar una decisin respecto a equipar la red con un nico servidor el
doble de potente, o por el contrario, usar dos servidores de potencia mitad.
Si la carga es baja, este sistema dara mejores prestaciones porque los clientes estaran en el servidor una
media de tiempo 1/2. Por contra, ante cadas del sistema, el servicio se interrumpe, mientras en el sistema
M/M/2 existira otro servidor para seguir funcionando.
Otra variacin podra ser dos sistemas M/M/1, en vez de uno M/M/2. En este caso, el comportamiento es
similar, ya que el sistema no se satura hasta valores de cercanos a la uno, puesto que existen dos colas.

349
3.2.4. Sistema M/G/1
Es un sistema con tasa de llegadas poissonianas, tiempo de servicio genrico y un nico servidor. Para
caracterizarlo es preciso conocer el tiempo medio de servicio E[s]=1/.
Es de inters en el modelado de sistemas en los que no se puede aplicar
la distribucin exponencial como en redes de paquetes. No tiene por qu
existir estacionariedad, por eso se modela mediante sus prestaciones, E(n)
y E(T). Las expresiones se conocen como frmulas de Pollaczec-Kinchine.
El factor 1/(1-) corresponde al sistema M/M/1. En este sistema la varianza es = 1/ , lo que
sustituido en las frmulas puede comprobarse que son los valores presentados anteriormente. Si fuese =
0, se estara tratando un sistema determinista, como el M/D/1. Cuando tiende a valores cercanos a la
unidad, el sistema tiende a congestionarse. Si por el contrario es mayor que la unidad, no se llegara a
una situacin estable. El sistema M/G/1 se resumira en la tabla. Para estudiar la salida de los usuarios,
puede suponerse que si las llegadas son poissonianas, las salidas tambin lo sern. En general no es as,
pero hay casos en los que el modelo es vlido.
El teorema de Burke enuncia que en un sistema sin prdidas
(infinitos servidores), si las llegadas son poissonianas, las
salidas tambin lo sern. El teorema no tiene validez en
sistemas de prdidas. En un sistema de poblacin infinita,
puede usarse el modelo de llegadas poissoniano.
Si la poblacin es finita, como los abonados a una centralita telefnica, el modelo ya no sera de aplicacin.
Un proceso de Poisson depende del intervalo de tiempo, t, en que no se llama. En el caso de poblacin
finita, la suposicin de llegadas como t no se cumple cuando el usuario est hablando, porque en ese
instante no va a volver a llamar. Esto es debido a que los usuarios son tratados de forma individualizada.
Entonces, se toma la probabilidad de que un usuario realice una llamada cuando el servidor est inactivo.
La probabilidad de un usuario inactivo, es la de recibir una llamada en el intervalo t, t. Si el usuario est
activo, la probabilidad de llegada en t es nula. Estas premisas derivan en una distribucin de probabilidad
que se conoce como distribucin de Engset.
Esta distribucin ayuda a interpretar mejor el modelo de Erlang-B, como caso lmite, cuando se supone que
el nmero de usuarios M es mucho mayor que N, el nmero de servidores. Para los clculos se supone
buena la aproximacin cuando M es mayor o igual a diez veces N. Los modelos de Erlang, como lo es el
Erlang-B sirven de base terica para dimensionar y evaluar las redes y sistemas de comunicaciones.
3.2.5. Redes de Colas
Son sistemas interconectados en los que existen colas para atender a los usuarios. Se distinguen dos tipos,
redes abiertas, en las que existe comunicacin con el exterior, es decir hay entrada/salida y redes cerradas,
en las que los clientes dan vueltas en la red sin existencia de entrada/salida. La presentacin se centra en
redes abiertas, modeladas por varios sistemas de colas individuales. Si se supone que no hay prdidas, los
usuarios que llegan deben salir. Es la situacin de equilibrio. La red puede analizarse entonces como un
sistema de nodos en la que cada nodo se caracteriza por un vector de estado.
Sea un modelo de red analizada como si fuera un nodo. La red posee M nodos y en cada uno n usuarios.
La red se describe mediante la probabilidad p(n), donde n sera un vector con los clientes a la entrada de
cada servidor n=(n1, n2,...). El modelo Jackson modela una red sin prdidas, todos los clientes se atienden,
con llegadas poissonianas y servicio exponencial independiente entre ellas. Pero en una red, si un nodo se
modela como un sistema M/M/1, el siguiente nodo, ya no podr ser del mismo tipo, ya que sus llegadas,
estaran muy correladas, dependen mucho del servicio del primer nodo. En general no puede suponerse la
condicin Jackson de servicio exponencial independiente. Sin embargo, en redes complejas podra
aplicarse al darse varios flujos de entrada a un mismo servidor, suponiendo que se genera un efecto de
independencia. Esta se denomina suposicin de independencia de Kleinrock. Tambin se supone la tercera
condicin de Jackson, que la eleccin del camino de salida de los paquetes es aleatoria. Omitiendo el
desarrollo, puede estimarse, generalizando para N saltos, el retardo de un camino concreto en una red, con
la expresin del cuadro.
El retardo medio E(T), entre dos puntos que se comunican por varios
caminos se podra estimar con la expresin E(T)=E(n)/, donde E(n) sera
el nmero medio de paquetes en la red y el trfico cursado. La
expresin puede reescribirse como se muestra. Y se referira a la media
del retardo para toda la red.

350
TEMA 74. SISTEMAS MULTIMEDIA.

1. INTRODUCCIN
2. SISTEMAS MULTIMEDIA
2.1. Hardware
2.2. Informacin
2.3. Aplicacin

351
1. INTRODUCCIN
Un sistema multimedia es un sistema que trabaja con diversos medios. En el entorno de la informtica y las
comunicaciones, lo que tambin se refiere como entorno digital, el concepto se ampla a la integracin de
sistemas de video, sonido, imgenes y en general cualquier informacin digital.
2. SISTEMAS MULTIMEDIA
Adems de la definicin de sistema multimedia presentada, deben identificarse otros dos conceptos, el de
sistema multimedia interactivo, que sera el sistema multimedia que permite al usuario interactuar sobre el
contenido y por su amplitud, la idea de hipermedia, que seran medios que combinan mulmedia e hipertexto.
Los sistemas multimedia, en el contexto digital poseen caractersticas como el ser gestionados por
ordenador, aunque tambin se utilice en otras labores como la produccin o almacenamiento; son sistemas
integrados, es decir, un mismo equipo ser capaz de tratar distintos tipos de contenido y adems posee la
propiedad de ser digital, lo que ofrece grandes posibilidades de proceso.
Otra propiedad que suele suponerse a los sistemas multimedia, aunque estrictamente no sera necesaria,
es la interactividad con el usuario, es decir, la participacin de ste en el desarrollo, presentacin o
personalizacin del contenido.
2.1. Hardware
Para el estudio de los dispositivos hw usados en los sistemas multimedia conviene dividirlos en dispositivos
de entrada y salida. Para ambos se distinguen dispositivos de video, audio, imagen y texto.
Como dispositivos de entrada, para vdeo pueden citarse los digitalizadores de vdeo y videocmaras. Las
tarjetas de video ofrecen el soporte para E/S de video. Para audio son de destacar micrfonos e
instrumentos MIDI o de otro tipo, y cuyo soporte de E/S realizan las tarjetas de sonido. Los conectores hw
para audio, se resumen en entradas digitales, la entrada analgica auxiliar (line in), que permite introducir la
seal de una fuente externa y los conectores MIDI (y joystick), para la conexin de este tipo de dispositivo.
El hardware de entrada de imagen est representado por el escner, pero en general, cualquier entrada de
video sirve para procesar la entrada de imagen, ya que el video es una sucesin de imgenes. Otros
dispositivos de entrada de imagen son las tabletas grficas, tablas planas tctiles que reconocen la posicin
de un apuntador a modo de bolgrafo en su superficie. Si el apuntador puede ser la mano o los dedos,
tambin se llaman touchpad. Por fin, para el texto, el dispositivo de entrada representativo es el teclado. El
ratn es un dispositivo de entrada para control y con un carcter genrico.
Como dispositivos de salida de video el elemento representativo es el monitor y en general cualquier
pantalla o proyector. Para el audio se dispone de altavoces y sintetizadores de sonido. En los equipos
suelen disponerse dos salidas de sonido analgicas, una amplificada para los altavoces y una sin amplificar
(line out). El hardware de salida de imagen es el mismo que el de video y adems hay que citar la
impresora, que tambin se utiliza para documentos de texto e informacin esttica.
2.2. Informacin
La informacin tratada por un sistema multimedia, puede poseer distinta naturaleza, bien sea texto, imagen,
audio o vdeo, codificados en determinado formato, que seguir un estndar. Los estndares pueden ser de
facto, impuestos por su amplia difusin sin que exista una norma o recomendacin de uso y los estndares
de iure (por ley), definidos por organismos oficiales y cuyo uso es recomendado. Esto obliga, al menos a
conocer los formatos ms comunes utilizados en multimedia.
En cuanto a los estndares de texto destacan ASCII y unicode, ya descritos en temas anteriores. Otros
estndares comunes son rtf (rich text format), desarrollado por MS, pdf (portable document format), un
formato de archivo universal que preserva fuentes, colores, hipervnculos, etc. de los documentos fuentes.
Fue desarrollado por Adobe y representa un estndar de facto en la distribucin de documentos
electrnicos. Adobe PostScript es un lenguaje de definicin tambin desarrollado por Adobe Systems para
describir la apariencia de una pgina a un dispositivo de salida.
Estndares orientados a contenidos web pueden destacarse SGML, HTML, XML y HyTime. SGML
(Standard Generalized Markup Language) fue desarrollado por ISO (ISO 8879) como estndar de lenguaje
de marcado para el intercambio y procesado de documentos en soporte electrnico. No especifica un
formato particular, sino la estructura de un documento y reglas de marcado de sus elementos, que podrn
ser interpretados de diferentes formas. HTML es un formato no propietario basado en SGML.
XML (eXtensible Markup Language) XML es otro estndar para web publicado por el W3C (www
consortium) diseado para crear documentos electrnicos en Internet. Toda aplicacin multimedia con cierto
grado de gestin de informacin usa documentos XML bien para la codificacin, bien para el intercambio
con otro sistema multimedia.

352
HyTime (Hypermedia Time-based Structuring Language) es un estndar ISO para representar documentos
hipermedia abiertos. Es una aplicacin de SGML. SMDL (Standard Music Description Language) es una
aplicacin de HyTime. Un objeto de HyTime puede ser vdeo, audio o texto. HyTime proporciona asociacin
de objetos dentro de documentos con hiperenlaces y su interrelacin en el tiempo y el espacio.
Las imgenes y grficos pueden codificarse siguiendo dos mtodos: como mapa de bits y vectorialmente.
Las imgenes en formato vectorial se componen de objetos construidos a partir de primitivas (componentes
bsicos como una lnea o un cuadrado). Un mapa de bits (bitmap) define imgenes compuestas de puntos o
pxels que pueden tomar un valor de un rango. A mayor nmero de pixels por unidad de rea, mayor
resolucin. La profundidad de color la determinada la cantidad de memoria reservada a cada pixel.
Las caractersticas de los grficos vectoriales son la independencia de los objetos que los componen, de
forma que permiten un escalado natural sin prdida de resolucin. El color se define a la hora de visualizar
el grfico, con lo que la calidad siempre es mxima. El caso de los grficos en tres dimensiones es un caso
particular de los grficos vectoriales, en que el modelo se almacena de manera vectorial y el resultado una
vez realizada la generacin (render) es almacenado como mapa de bits.
Formatos grficos bitmap comunes son bmp, formato sencillo propio de plataformas WS, caracterizado por
ocupar mucha memoria, tiff (tagged image file format) para diferentes plataformas, con cualquier
profundidad de pixel y diversas opciones de compresin o gif (graphic interchange format), formato
propietario de CompuServe desarrollado para transmisin en tiempo real de grficos y que define un
protocolo de intercambio de datos independiente del hardware de creacin y visualizacin. Otros ejemplos
de formatos son png, ppm, ps o dxf.
Otro formato famoso es jpg (Joint Photografic Expert Group), que no es propiamente un formato, sino un
algoritmo de compresin de imgenes de color de 24 bits. Usa un formato de compresin con prdidas y
define una familia de tcnicas de compresin con prdidas basado en una transformacin sobre smbolos.
La animacin puede considerarse una extensin de los grficos. Una secuencia de imgenes se caracteriza
por su resolucin, colores y nmero de imgenes en la unidad de tiempo (frame rate), que debe ser mayor o
igual a 25 imgenes por segundo para dar sensacin de continuidad. La animacin en sistemas multimedia
suele aplicarse a imgenes realizadas con grficos. Si es en tiempo real los fotogramas se generan segn
se van necesitando. Si la animacin es fotograma a fotograma, se generan los fotogramas uno a uno y
posterioremente se muestran.
El audio multimedia puede diferenciar sonido vocal y no vocal. En
realidad, todo puede tratarse como sonido, pero la distincin se realiza
debido a la importancia de la voz y su tratamiento en aplicaciones como
la telefona digital o la sntesis de voz. Formatos tpicos de audio son el
popular mp3, wav, wma o MIDI.
En cuanto al video, formatos conocidos son mov (QuickTime Movie), creado por Apple y multiplataforma, avi
(Audio Video Interleaved), tambin multiplataforma o mpeg (Moving Pictures Experts Group), que posee
diversas especificaciones, de las cuales mpeg-4 es base de formatos como divx, xvid o H264. Otros
formatos orientados a la transmisin por Internet, que permiten visualizar vdeo sin contar con el archivo
completo son RealVideo de RealNetworks o wmv de WS.
2.3. Aplicacin
La aplicacin de los sistemas multimedia est presente en la prctica totalidad de medios de informacin y
comunicaciones, destacando en el diseo web, BBDD y documentacin.
Los aspectos multimedia del diseo web deben tener en cuenta la legibilidad de las pginas, siendo
recomendable usar pginas pequeas, para acelerar su descarga y garantizar la coherencia, para lo que se
usan plantillas y normas de estilo, iconos descriptivos y mens jerarquizados con recomendaciones del tipo
distancia de tres clics para llegar a puntos importantes.
Se debe intentar conseguir compatibilidad entre interfaces de los distintos navegadores y los de las pginas,
agrupar botones de accin homogneamente y aunque el usuario anule la parte grfica, debe permitrsele la
navegacin. Los enlaces multimedia, deben indicar dnde encontrar las aplicaciones o plug-ins para el caso
en que el usuario no los tenga instalados. Un documento multimedia busca comunicar efectivamente su
contenido y la semntica, los conceptos subyacentes y su relacin. En resumen, deben respetarse las
caractersticas de un buen interface multimedia.
Los documentos multimedia pueden ser de gran tamao y presentar gran variedad de formatos. Por tanto,
al disear una BBDD multimedia el concepto de registro se ve algo modificado. El usuario trata con un
archivo que procesa informacin de distinta por lo que la implantacin y explotacin de BBDD multimedia
impone dos caracterticas, la disponibilidad de BBDD avanzadas capaces de almacenar contenido
multimedia, en un entorno de fcil uso para el usuario y comunicacin de alta velocidad.

353
En una BBDD multimedia se trabaja con datos que pueden variar espacial y temporalmente, por tanto un
documento introducido en una BBDD multimedia es una composicin temporal, en la que se introducen
diferentes tipos de datos y las relaciones de configuracin y temporales entre ellos. Los datos deben estar
sincronizados, controlando su estado y comportamiento.
Las aplicaciones de SGBD tradicionales ofrecan limitaciones en aspectos como el acceso complejo a
datos, la transferencia con otros sistemas o el interfaz de usuario. Las soluciones tienden a disear e
implementar nuevos SGBD capaces de usar los datos disponibles e integrar las aplicaciones tradicionales
de forma sencilla. Una base de informacin hipermedial tiene varios componentes, una base de
presentacin (parmetros para mostrar la informacin), una base de estructura (lgica del hiperdocumento),
base de contenido (documentos integrados en el hiperdocumento) y la base de utilizacin (informacin de
comportamiento del usuario).
El modelo conceptual de una BBDD multimedia definido por ANSI/X3/SPARC), debe cumplir dos fases, la
representacin del mundo real, sus entidades y relaciones y la modelizacin, centrado en la representacin
de los objetos definidos, de forma que sean manipulables informticamente.
Las aplicaciones que, sin cumplir los requisitos clsicos de un SGBD, generan documentos multimedia,
toman como base la informacin y datos contenidos en otros tipos de fichero. Los lmites entre la BBDD real
y el documento multimedia generado son difciles de establecer. Puede decirse que es posible establecer un
algoritmo que define el proceso de formateo y composicin del documento, en dos niveles, la jerarqua
lgica del contenido del documento y la jerarqua fsica del documento formateado.
Este esquema se define en la norma ODA (Open Document Architecture) de ISO. Otros estndares como
la norma ISO que define el EDI (Electronic Document Interchange y su versin EDIFACT) y el protocolo
ANSI X.12 se orientan ms a la estructura del documento que a los aspectos multimedia.
Este tipo de BBDD hace necesaria la utilizacin de dos niveles de organizacin, uno de conocimiento, de
metadatos, conceptual y otro nivel de datos, concreto y analtico. El paradigma se orienta a la aplicacin de
representaciones semnticas de la informacin, es decir datos y acciones sobre los datos (POO).
El SGBD multimedia debe ofrecer lenguajes de descripcin de documentos avanzados, permitir el diseo de
estructuras de datos flexibles y ofrecer mecanismos de bsqueda efectivos. Conectar documentos segn su
contenido informativo, relacionando informacin de varios documentos, facilitar el acceso instantneo a
ficheros y crear relaciones entre grupos de elementos informativos.
En los sistemas multimedia se distinguen medios continuos (animacin, vdeo y audio) cuyo proceso est
limitado en el tiempo, por lo que los sistemas multimedia distribuidos deben garantizar en la comunicacin
esos requisitos temporales. Esta necesidad ha generado la definicin de de protocolos de comunicacin
como RTP y RTCP (Real Time Protocol y Real Time Control Protocol) que montados sobre TCP/IP se
emplea en comunicaciones en tiempo real como la transmisin de audio y vdeo en Internet.
Los medios discretos (texto y grficos) no tienen esa limitacin temporal y plantean problemas como la
sincronizacin de texto e imagen. Normalmente se considera que una aplicacin es multimedia si combina
al menos un medio continuo con al menos uno discreto.

354
-Bien est vuesa merced en la cuenta! respondi Don Quijote-. Bien
parece que no sabe las entradas y salidas [contabilidad falsa] de los
impresores y las correspondencias que hay de unos y otros. Yo le prometo
que cuando se vea cargado de dos mil cuerpos de libros vea tan molido su
cuerpo, que se espante, y ms si el libro es un poco avieso y nonada
picante.
-Pues qu? dijo el autor-. Quiere vuesa merced que se lo d a un librero
que me d por el privilegio tres maraveds, y aun piensa que me hace
merced en drmelos? Yo no imprimo mis libros para alcanzar fama en el
mundo, que ya en l soy conocido por mis obras: provecho quiero, que sin
l no vale un cuatrn la buena fama.
Don Quijote de La Mancha
Miguel de Cervantes Saavedra

355

Anda mungkin juga menyukai