Escaneando La Informática
Escaneando La Informática
Escaneando La Informática
Escaneando la
Informática
© Joan Arnedo Moreno, Jordi Cabot Sagrera, Isabel Guitart Hormigo, Francisco Javier Noguera Otero,
Rafael Macau Nadal, Maria Jesús Marco Galindo, Josep Maria Marco Simó, Joan Antoni Pastor Collado,
Josep Prieto Blázquez, Daniel Riera Terrén, Jordi Tubella Murgadas, José Ramón Rodríguez Bermúdez,
M.Elena Rodríguez González, Ramon Segret Sala, del texto
ISBN: 978-84-9788-925-4
Depósito legal:
Impresión:
Ninguna parte de esta publicación, incluyendo el diseño general y de portada, no puede ser copiada, reproducida, alma-
cenada o transmitida de ninguna forma ni por ningún medio, tanto si es eléctrico, como químico, mecánico, óptico,
de grabación, de fotocopia, o por otros medios, sin la autorización previa por escrito de los titulares del copyright.
Autores
Índice
Prólogo ...................................................................................................... 15
Presentación ................................................................................................ 19
1. Introducción ........................................................................................ 23
2. La actividad profesional relacionada con la informática ...................... 28
3. La ciencia informática............................................................................ 30
4. La tecnología informática ...................................................................... 32
4.1. Tecnología del hardware .............................................................. 32
4.2. Tecnología del software ................................................................ 35
5. Reparación, formación, consultoría, auditoría y peritaje .................... 40
6. Dirección de empresas, departamentos y equipos informáticos .......... 43
7. Comercialización de productos y servicios informáticos ........................ 44
Resumen ................................................................................................ 45
1. Introducción ........................................................................................ 47
2. Software de los sistemas informáticos .................................................. 49
2.1. Aplicaciones web .......................................................................... 49
2.2. Sistemas distribuidos .................................................................... 52
2.3. Sistema operativo ........................................................................ 54
3. Hardware de los sistemas informáticos ................................................ 56
3.1. Unidad central de proceso .......................................................... 57
3.2. Subsistema de memoria .............................................................. 59
3.3. Subsistema de entrada/salida ...................................................... 60
© Editorial UOC 10 Escaneando la Informática
1. Introducción ........................................................................................ 71
2. Una visión general de las redes de comunicaciones ................................ 72
3. Las redes y nuestro entorno ................................................................ 73
4. La red de redes: Internet ...................................................................... 75
4.1. World Wide Web .......................................................................... 76
5. Las redes de área local .......................................................................... 80
5.1. Principios de la red Ethernet ...................................................... 80
5.2. Dispositivos en la red Ethernet .................................................... 82
6. Las redes de área extensa ...................................................................... 83
6.1. Tipos de enlace en una WAN ...................................................... 84
7. Las redes de comunicaciones sin hilos ................................................ 85
8. Las redes de comunicaciones y la seguridad ........................................ 87
8.1. ¿Hacker o cracker? ........................................................................ 88
8.2. Principales problemas .................................................................. 89
8.3. Servicios y mecanismos de seguridad .......................................... 90
8.4. Un ejemplo sencillo y actual: Wardriving .................................. 91
9. La carrera del experto en redes de comunicaciones.............................. 93
9.1. El estudio de las redes de comunicaciones .................................. 94
9.2. Perspectivas profesionales ............................................................ 94
9.3. El reciclaje profesional ................................................................ 99
Prólogo
Presentación
un primer curso de cualquier nivel de estudios (un ciclo formativo, una carrera
universitaria oficial, un programa de reciclaje...) no conocen las diferentes caras
que presenta la informática, o lo que es peor, no tienen claro cuál les resultará
más estimulante o cuál encajará más con sus competencias/habilidades. Para
ellos, y también para sus profesores, que tienen que poder ayudarlos explican-
do los diferentes aspectos de la disciplina, creemos que este texto puede resul-
tar útil.
Así pues, en las páginas que siguen hemos intentado dibujar un mapa de la
informática, desde la perspectiva del profesorado de los Estudios de Informática,
Multimedia y Telecomunicación de la UOC, ahora que tenemos a las espaldas
más de diez años de experiencia formativa en esta materia y que hemos ido per-
filando nuestra idea de qué significa hacer de informático en este rincón de
Europa.
Para dibujar este mapa, empezaremos el primer capítulo con una perspecti-
va aérea, con un viaje que desgrana los nombres y los mundos de este ámbito
dejando claro que es ciencia y técnica, pero también servicios de instalación,
comerciales o de dirección. Por eso consideramos que este primer capítulo es
imprescindible para todo el mundo que se acerque a este libro, ya que conden-
sa su motivación.
Lo siguen un conjunto de capítulos que, organizados según un mismo esque-
ma, desarrollan los diferentes aspectos presentados en el primero. Son capítulos
introductorios, divulgativos, algunos con más conceptos teóricos y otros con
más explicaciones técnicas y prácticas. En todos se incluye también una pince-
lada de la evolución histórica (que explica el momento actual) y de las profesio-
nes relacionadas con ésta. Creemos que todos los capítulos son interesantes
para un neófito, pero es cierto que existe la posibilidad de que el lector escoja
sólo aquel que prefiere leer. Para los que opten por esto, hay que advertir que
los capítulos siguen un cierto orden y que, en los últimos, se puede dar por sen-
tado que se han leído los anteriores y que algunos aspectos ya son conocidos y
se han comprendido.
También queremos aclarar que, aunque demos una visión amplia, no es
completa: hay aspectos que no mencionamos conscientemente (y que coinci-
den con los que tradicionalmente no hemos incluido en nuestros planes de
estudio). Entre éstos se encuentran tanto los que son tan nuevos que no consi-
deramos todavía definidos de manera estable, como los que pertenecen a profe-
siones informáticas que difícilmente tienen demanda en nuestro entorno.
© Editorial UOC 21 Presentación
Capítulo I
1. Introducción
1. Sistema técnico es un concepto que el historiador francés de la ciencia y sobre todo de la técni-
ca, Bertrand Gille (1920-1980), introdujo en su obra Histoire des techniques. Para Gille un sistema téc-
nico es el conjunto de coherencias que entrelazan las diferentes tecnologías de cada época y que
constituyen un estadio más o menos durable de la evolución de las técnicas. Este autor concibe la
historia como la sucesión de los diferentes sistemas técnicos que han existido.
Como ejemplo pensemos en la navegación transoceánica. Durante la Edad Moderna el sistema téc-
nico que la permitió se fundamentaba, entre otras tecnologías, en el barco de madera y la energía
del viento aprovechada por el conjunto de las velas. A lo largo del siglo XIX este sistema técnico es
sustituido por otro basado en la sinergia de unas nuevas tecnologías: el trabajo y el uso del hierro
a gran escala que permitió construir fuselajes metálicos, la energía del vapor a partir de la experien-
cia de las primeras máquinas de vapor y evidentemente la explotación masiva de los yacimientos
de carbón para poder disponer de esta fuente de energía de origen fósil.
En la actualidad podemos ver cómo la sinergia entre la electrónica, la informática y las comunica-
© Editorial UOC 24 Escaneando la Informática
2. Incluso, años atrás, se conocía a los ordenadores con el nombre de cerebros electrónicos.
© Editorial UOC 26 Escaneando la Informática
este concepto de forma muy amplia.3,4 Sólo tenemos que pensar en lo inde-
fenso que es un bebé y cuánto tiempo tarda en asimilar los componentes cul-
turales mínimos de su sociedad para poder moverse con autonomía. De
hecho la cultura no sería un programa, sino más bien un conjunto de pro-
gramas, de los más comunes a los más especializados. Todos los humanos,
cada uno dentro de su sociedad, recibe y aprende un primer programa de las
funciones más básicas: comportamientos, lengua, relaciones con los demás,
etc., y después a lo largo de la vida irá recibiendo y aprendiendo programas
más especializados que le permitirán desarrollar actividades específicas:
habrá quien sea cirujano, quien sea albañil y quien sea periodista, por ejem-
plo.
Con todas estas similitudes: manipulación de signos, almacenaje, comu-
nicación con el exterior, diseño generalista, multiplicidad de programas para
poder actuar, nos puede surgir una especie de pesar, como humanos, al ver
que una simple máquina, el ordenador, se nos parece demasiado. De hecho,
ha habido quien ha sostenido que el ordenador podrá llegar a hacer todas las
funciones de una mente humana, y eso, evidentemente, nos inquieta. Pero
por otra parte hay también muchos pensadores que dicen claramente que
muchas de las funciones que consideramos superiores del ser humano nunca
3. Rita Levi Montalcini, nacida en Turín en 1909, investigadora del sistema nervioso y premio Nobel
de Medicina en 1986, desarrolla estas ideas en el libro La galaxia mente, publicado por Crítica en el
2000. En la página 172 nos dice:
“Los hijos del hombre difieren de los demás mamíferos en la lentitud de su desarrollo somático e
intelectual, lo que les hace depender de sus padres o sustitutos durante el periodo comprendido
entre el nacimiento y la pubertad.”
Y en la página 116 nos copia una cita de E. Boncinelli (A caccia di geni, 1997), que quizás todavía es
más gráfica:
“Con la especie humana, la evolución biológica se ha superado a sí misma y se ha caído en una
especie de paradoja. En efecto, en nuestro caso la dotación genética, ama casi absoluta de la vida y
el comportamiento de los animales inferiores, ha abdicado voluntariamente, por decirlo de alguna
manera, dejando un margen muy amplio a la acción del medio circundante, al aprendizaje y a la
educación.”
4. Con respecto a qué es la cultura lo podemos ilustrar con dos definiciones de dos antropólogos.
La primera, más conceptual, se debe a Alfred L. Kroeber (1876-1960), creador del Museo de
Antropología de San Francisco (EE.UU.). La segunda, más enumerativa, es de Edward B. Tylor (1832-
1917), primer profesor de antropología de la Universidad de Oxford (Reino Unido).
“La cultura consiste en formas de comportamiento, explícitas o implícitas, adquiridas y transmiti-
das mediante símbolos y constituye el patrimonio singularizador de los grupos humanos...”
“La cultura [...] incluye el conocimiento, las creencias, el arte, la moral, el derecho, las costumbres
y cualesquiera otros hábitos y capacidades adquiridos por el hombre como miembro de la socie-
dad.”
© Editorial UOC 27 Visión general de la informática
podrán ser producidas por un ordenador. Nos estamos refiriendo a las emo-
ciones, al proceso creativo y a los juicios éticos y estéticos.5
Y es que hay que tener presente que el ordenador no crea, no inventa, no
improvisa. En realidad sigue las instrucciones de un programa que ha sido en
último término concebido por un humano. Colocándonos ahora en el otro
extremo de donde nos poníamos en el párrafo anterior podemos preguntarnos:
¿Qué nos proporciona el ordenador que no podamos hacer nosotros? Bien,
todos lo sabemos pero repitámoslo aquí. El ordenador es inmejorable a la hora
de realizar tareas repetitivas. Una vez alguien ha diseñado un proceso y lo ha
explicado al ordenador éste lo repetirá hasta la saciedad sin desfallecer, sin equi-
vocarse, ya que no se cansa, y a una velocidad vertiginosa. Todo eso, acompa-
ñado de su gran capacidad de almacenaje y de recuperación veloz de la infor-
mación, hace que esta máquina sea uno de nuestros mejores auxiliares en la
actualidad.
Para acabar esta introducción nos fijaremos en un último punto. Hasta ahora
hemos hablado de un ordenador, como si fuera una unidad independiente que
sólo se comunica con nosotros. De hecho eso no es así hoy día, aunque sí que
lo fue en los orígenes de esta máquina. En la actualidad lo que hay no es un con-
junto de ordenadores independientes sino redes inmensas que comunican un
gran número de ordenadores entre sí. Desde nuestro ordenador personal, que
cuando queremos lo conectamos a Internet y accedemos a datos y programas
almacenados en otros ordenadores, a los conjuntos de superordenadores que
suman sus capacidades para llevar a cabo cálculos ingentes (meteorología, con-
trol de viajes espaciales), nos encontramos con que el paradigma actual de la
informática no es el ordenador aislado sino la red de ordenadores. Siguiendo
con la comparación que hacíamos con el cerebro humano es como si hoy en día
no tuviéramos un conjunto de mentes humanas aisladas, cada una con sus
maravillosas funciones, sino toda una sociedad humana compuesta de personas
que constantemente se están intercambiando información.
5. Volviendo a citar La galaxia mente, de Rita Levi, encontramos que en la página 184 nos dice:
“El ordenador se inventó para ayudar a los seres humanos en operaciones para las que estamos bas-
tante limitados (velocidad de elaboración, estabilidad de memoria, exactitud de ejecución), y poco
a poco ha ido adquiriendo propiedades que lo han hecho comparable al cerebro de los seres vivos.
[...]
Pero el cerebro no es un ordenador convencional, ni funciona igual. Como señala acertadamente
Oliver Sacks: ‘Los procesos mentales, que constituyen nuestro ser y nuestra vida, no son abstractos
y mecánicos, también son personales, y como tales implican no sólo la clasificación y la ordena-
ción en categorías, sino también una actividad continua de juicio y sentimiento’.”
© Editorial UOC 28 Escaneando la Informática
miento suficiente para aprobarla. Ahora bien, cuando tenemos que consultar
a un médico no vamos a ver a cualquiera sino a aquel que consideramos ade-
cuado para el tipo de consulta que queremos realizar. Si nos tienen que gra-
duar la vista vamos al oftalmólogo, si llevamos a un niño pequeño vamos al
pediatra y en caso de ansiedad vamos a un psiquiatra. También hay médicos
que sólo hacen análisis clínicos e incluso hay otros que gestionan una mutua
de salud privada o que dirigen un hospital de la Seguridad Social. Así vemos
que una misma titulación, en este caso académica, da pie a ejercer profesio-
nes diferentes. Y decimos diferentes porque a nosotros no se nos ocurriría ir
al otorrino por un dolor de estómago o bien al dentista por un dolor muscu-
lar. Y es que cada uno de estos médicos ha desarrollado a través de los estu-
dios y de la práctica profesional una serie específica de conocimientos y expe-
riencias que hacen que le confiemos nuestro problema concreto de salud.
Ahora bien, aunque como decíamos en el párrafo anterior ésta no sea una
situación sólo de la informática, la verdad es que en esta profesión la diversifi-
cación de actividades posibles parece todavía mayor. Las razones las podríamos
encontrar en que es una profesión joven, poco reglamentada y por eso precisa-
mente la etiqueta o el título de informático en nuestra sociedad no la da sólo el
hecho de haber superado unos estudios universitarios sino que de una forma
mucho más laxa, para el mercado, se es informático si se han hecho unos cur-
sillos o bien si hace un cierto tiempo que se trabaja en este campo y se tiene una
cierta experiencia, o por otras razones similares.
Dejando de lado la discusión sobre la idoneidad de esta situación para la
profesión de la informática, sí que pensamos que para los propósitos de esta
introducción la relación de las diferentes actividades que los informáticos lle-
van a cabo en nuestro mercado nos puede ser útil como punto de partida para
describir las diversas áreas de conocimiento necesarias para cada una de estas
actividades. Dicho de otra manera: pensamos que viendo qué hacen los infor-
máticos llegaremos a entender, de una forma más global, qué es la informáti-
ca. Por eso a continuación encontraréis un conjunto de informaciones que
siguen el mismo esquema: primero la explicación de una cierta área de cono-
cimientos dentro de la informática, después los rasgos principales de los pro-
fesionales que se dedican a esta área y finalmente la relación de asignaturas
de las titulaciones informáticas de la UOC en las que se estudian estos cono-
cimientos. Después de todo este conjunto de puntos introductorios de las
diferentes áreas de conocimiento encontraréis en módulos posteriores la des-
cripción mucho más profundizada de algunas áreas, concretamente de aque-
© Editorial UOC 30 Escaneando la Informática
3. La ciencia informática
4. La tecnología informática
Como ya hemos dicho en el párrafo anterior, la tecnología nos tiene que per-
mitir diseñar y construir. Veremos, pues, las áreas de conocimiento asociadas al
diseño del hardware, concepto que muchas veces es designado con el nombre
de arquitectura, y su construcción. Además la arquitectura, para más claridad,
la dividiremos en dos: la del ordenador y la del sistema informático o red de
ordenadores.
Los ordenadores y los diferentes elementos de la red, una vez diseñados tal
como hemos visto en el apartado anterior, se fabrican. El proceso de fabricación
lo podemos visualizar, al menos conceptualmente, compuesto de una primera
etapa de construcción de componentes y de una segunda de ensamblaje. La base
de los componentes es la electrónica de estado sólido, uno de los otros grandes
avances tecnocientíficos de la segunda mitad del siglo XX, que junto con una
avanzada tecnología de fabricación permite disponer de diferentes circuitos
miniaturizados para realizar funciones logicomatemáticas distintas: los chips.
Combinando chips se obtienen componentes que realizan las más variadas y
complejas funciones. Por último estos componentes son parecidos a lo que los
anglosajones llaman boxes, las cajas, que constituirán los diferentes aparatos
informáticos o telemáticos del mercado: direccionadores, concentradores, servi-
dores, ordenadores personales, etc.
Este proceso de fabricación lo controlan las empresas constructoras de hardwa-
re, normalmente grandes multinacionales, que son las que acaban estampando su
marca en las cajas. Para hacerlo, y visto el estadio de globalización alcanzado hoy
día, no es necesario que todos los componentes hayan sido fabricados por estas
empresas (¡a veces no hay ninguno!), pero sí que normalmente se parecerán a
ellos y sobre todo los someterán a un riguroso control de calidad que es lo que
garantiza el nivel de calidad que el mercado asocia con estas marcas.
Los profesionales que se dedican a estos trabajos trabajan en las plantas de
fabricación de las empresas constructoras y su actividad se relaciona más con las
diferentes áreas de conocimiento de un ingeniero de fabricación que de un
informático tal como normalmente lo entendemos.
Como ya hemos ido viendo, la ingeniería del software, como cualquier otra
ingeniería, es un conjunto de conocimientos y procedimientos que ayudan a
diseñar, construir y poner en marcha o en funcionamiento un sistema, que es
el objeto de la ingeniería mencionada. En el caso que nos ocupa, este sistema es
© Editorial UOC 37 Visión general de la informática
un conjunto de programas que tienen que realizar las funciones para las que
han sido pensados y lo tienen que hacer de forma segura y eficiente.
Todo el proceso de construir un conjunto de programas se emprende nor-
malmente como un proyecto y como tal está estructurado o dividido en varias
etapas. Las etapas o fases clásicas de un proyecto de ingeniería del software son
las de diseño, construcción de los programas o programación, pruebas de los
programas, ensamblaje de los programas para constituir el sistema total, prue-
bas de este sistema, puesta a punto, documentación de todo el proceso y del
producto resultante, formación de los usuarios para que exploten el sistema con
el máximo de utilidad; y todo ello acompañado del control de la calidad de cada
una de estas etapas y de sus productos intermedios.
Otra característica de este proceso es que es intensivo en trabajo humano. En
efecto, tareas como el diseño, la programación o el control de calidad, por men-
cionar sólo tres, implican el trabajo personal de profesionales con los conoci-
mientos específicos para llevarlas a cabo con éxito. De todas maneras esta disci-
plina de la ingeniería del software dispone también de varias ayudas para encau-
zar el trabajo en la línea de una ingeniería cualquiera. Nos estamos refiriendo a
ayudas informáticas (programas o sistemas de programas pensados para ayudar
en la construcción de los sistemas informáticos), recapitulaciones de los cono-
cimientos y maneras de hacer que se han probado con éxito en otros proyectos
(es lo que en inglés se llaman las best practices), estándares, etc.
Los profesionales informáticos que se dedican a este amplio, variado y com-
plejo campo de la ingeniería del software ya os podéis imaginar que tienen tam-
bién diversas cualificaciones y pertenecen a campos de especialización diferen-
tes. Por una parte es lógico pensar que hay una especialización por fases del des-
arrollo del proyecto informático. Así, desde este punto de vista, el mercado ha
distinguido tradicionalmente entre analistas y programadores. Los primeros son
los profesionales más volcados en hablar con los usuarios del futuro sistema
informático, en entender y sistematizar las especificaciones y a partir de éstas
diseñarlo. Los segundos son los constructores de los programas del sistema
informático utilizando las técnicas de programación.
La realidad, sin embargo, es bastante más compleja. Por una parte se ha com-
probado que la frontera entre el diseño y la programación no es nítida. Hay
tareas que se encuentran entre estas dos actividades y tanto los conocimientos
necesarios como muchas de las ayudas informáticas del proceso de la ingenie-
ría del software hacen que la diferenciación clara entre analistas y programado-
res no sea actualmente tan aceptada. Y por otra parte se ha visto que una apli-
© Editorial UOC 38 Escaneando la Informática
Después de lo que hemos ido viendo hasta aquí podemos dar por sentado
que los usuarios, desde un individuo en su casa hasta la gran empresa u organi-
zación, utilizan los diferentes sistemas informáticos para sus actividades diarias.
En este uso de la informática no sólo quieren que el sistema funcione, no se
estropee, sino que también quieren sacarle el máximo rendimiento posible.
© Editorial UOC 41 Visión general de la informática
mientos que les permiten planificar y gestionar el día a día de los proyectos.
Como ya hemos visto antes, estos informáticos tienen que poder dirigir equi-
pos humanos y controlar gastos con la ayuda de presupuestos, entre otras
cosas, pero además tienen que ser especialistas en herramientas de planifica-
ción y seguimiento de los proyectos y en caso de que éstos sean de desarrollo
de software tienen que conocer muy bien las técnicas y metodologías que nos
enseña la ingeniería del software.
Por último debemos decir que también hay una parte de los informáticos
que se dedica a la venta de los productos y servicios informáticos de los que
hemos ido hablando en los apartados anteriores. Hemos visto que hay todo un
tejido de empresas, de las más grandes a las más pequeñas, que se dedican a pro-
ducir hardware, software y servicios asociados a la instalación y el uso de los pri-
meros. Es evidente que en el mundo en que vivimos, dominado por la oferta, la
publicidad y el marketing, los productos y servicios informáticos se tienen que
dar a conocer en el mercado y tiene que haber informáticos especializados en
su venta. Podemos encontrar profesionales que sólo se dedican a la comerciali-
zación y la venta y otros que combinan esta tarea comercial con la más técnica
del servicio posventa del producto, o bien la combinan con la dirección del pro-
yecto subsiguiente para la puesta en marcha del producto o servicio que el clien-
te ha adquirido. Todo dependerá de la dimensión de la empresa y de la comple-
jidad técnica del producto. Cuanto más grande sea una empresa probablemen-
te más definidas y separadas estén las responsabilidades de los empleados entre
vendedores y técnicos, y al revés, cuanto más pequeña sea la empresa más fácil
será que los mismos informáticos hagan todas las tareas de un contrato con el
cliente: venta, dirección y ejecución de la puesta en marcha de lo que se ha ven-
dido. Por otra parte cuanto más complejo y avanzado sea el producto que una
empresa quiere vender más necesitará que un técnico que entienda intervenga
también en las tareas relacionadas con la venta.
Los profesionales que se dedican a comercializar productos y servicios infor-
máticos combinan los conocimientos de las técnicas comerciales (publicidad,
© Editorial UOC 45 Visión general de la informática
Resumen
En este punto damos por acabada esta exposición de las diferentes activida-
des profesionales de los informáticos y de los conjuntos de conocimientos aso-
ciados con cada una de ellas. A continuación, en módulos posteriores, encon-
traréis una descripción bastante más detallada y profundizada de algunos de
estos conjuntos o áreas de conocimiento.
© Editorial UOC 47 Arquitectura de los sistemas informáticos
Capítulo II
1. Introducción
Hoy en día los computadores, sean personal o portátiles, tienen unas capa-
cidades de proceso muy elevadas y están cada vez más introducidos en la vida
cotidiana de las personas. La generación actual de computadores nace, por una
parte, con el desarrollo del microprocesador (procesador integrado en un único
chip), que permitió reducir el tamaño y el coste de los computadores, aumentó
sus prestaciones y permitió el acceso a un mayor número de personas, y por otra
parte, con el desarrollo de las redes de área local y de comunicaciones, que per-
mitieron conectar computadores con posibilidad de transferir datos a gran velo-
cidad.
En este contexto ha aparecido el concepto de sistemas distribuidos, que tiene
como ámbito de estudio todos aquellos sistemas informáticos constituidos en
red, tanto Internet como las redes de telefonía móvil, las redes corporativas u
otras.
Hay infinidad de ejemplos de aplicaciones que podemos considerar sistemas
distribuidos.1 Entre otros, podemos citar:
• Acceso a páginas web, al correo electrónico y a bases de datos para buscar
información, que están habitualmente presentes en todos los sistemas
informáticos.
• Capacidad de compartir todo tipo de archivos.
• Juegos en red.
• Videoconferencias, mensajería instantánea.
• Sistemas de reserva de billetes de líneas aéreas, aplicaciones bancarias, etc.
En general, compras comerciales a través de Internet (e-commerce).
• Enseñanza asistida por ordenador.
En esta sección, primero haremos un repaso de las aplicaciones web más uti-
lizadas y, posteriormente, pasaremos a describir las características principales de
la arquitectura en el ámbito del software de los sistemas distribuidos.
Las páginas web ofrecen un contenido multimedia que puede incluir texto,
imagen y sonido, así como referencias a otros elementos de información
siguiendo el modelo de los sistemas hipertexto. La navegación siguiendo los
hipertextos consiste en presentar en un documento un enlace a un recurso dife-
rente y ofrecer mecanismos para acceder de manera inmediata.
Otra modalidad de correo es la que ofrecen los gestores de correo vía web. En
este caso, se accede al correo como si se accediera a una página web. Tanto si es
en el caso del emisor como en el del receptor, el usuario utiliza el navegador que
tiene instalado en el ordenador para enviar o recibir correo utilizando el proto-
colo HTTP. Ejemplos de correo vía web son el correo del campus virtual de la
UOC o los correos que proporcionan sitios web como Yahoo o Hotmail.
En cuanto al correo electrónico hay otros aspectos importantes: los virus y los
filtros para el correo no deseado (spam). Los virus ya se han asociado al correo
electrónico. Por una parte, porque se reciben ficheros que pueden estar infecta-
dos (programas ejecutables o ficheros que tienen la capacidad de ejecutarse, p. ej.
los macros de los programas de ofimática de MS-Office) y, sobre todo últimamen-
te, por problemas de seguridad de los clientes de correo, que permiten ejecutar
el código que llega en un mensaje. El correo no solicitado, también llamado
spam, es un problema que cada vez se va haciendo más patente. A diferencia del
© Editorial UOC 52 Escaneando la Informática
Los sistemas distribuidos son sistemas informáticos en los que los componentes
de hardware y software están conectados en red y comunican y coordinan sus
acciones mediante el paso de mensajes. La comunicación se establece a través de
un protocolo prefijado, como el esquema cliente-servidor, de igual a igual, o
puede ser definido de forma particular por la aplicación, como en la ejecución
paralela de aplicaciones.
Este tipo de redes son muy utilizadas para compartir ficheros entre los usua-
rios. Las redes P2P son objeto de mucho interés en los medios de comunicación
por cuestiones legales cuando los ficheros que se intercambian los usuarios
están sometidos a derechos de autor. En cualquier caso, el número de ficheros
de audio y vídeo que se intercambian con estas redes no deja de aumentar día
a día. La forma de poder saber dónde se encuentra la información es a través de
nodos que contienen una especie de índices hacia el lugar donde está esta infor-
mación. Actualmente, se utilizan programas basados en algoritmos totalmente
descentralizados para identificar la información.
Otro ejemplo de las aplicaciones de igual a igual que se están popularizando
muy rápidamente entre los usuarios de Internet es la mensajería instantánea. Ya
empieza a ser habitual que muchos internautas tengan activa durante todo el
día la aplicación de mensajería instantánea y se comuniquen con sus amigos,
conocidos o compañeros de trabajo.
En el modelo cliente/servidor y en el modelo de igual a igual hay una peti-
ción que hace un nodo que es servida por un servidor u otros nodos del siste-
ma. Hay un modelo intermedio llamado publicación/suscripción, en que el
productor de la información anuncia la disponibilidad de esta información y el
consumidor de la información se suscribe a los canales que difunden la infor-
mación y entonces puede decidir dónde ir a buscarla.
A la hora de diseñar estos sistemas distribuidos hay que tener en cuenta los
siguientes aspectos:
• Heterogeneidad. El sistema distribuido está formado por una variedad de
redes, sistemas operativos, lenguajes de programación o hardwares del
ordenador. Es necesario que todos estos diferentes elementos puedan inter-
actuar entre sí.
• Apertura. Es deseable que el sistema se pueda extender fácilmente, es decir,
que se puedan añadir nuevos recursos y servicios compartidos y que éstos
estén a disposición de todos los componentes del sistema.
• Seguridad. Es un aspecto crítico poder saber la identidad de los usuarios o
agentes que intervienen en el sistema.
• Escalabilidad. Un sistema es escalable si mantiene la eficiencia cuando se
aumentan los recursos y el número de usuarios.
© Editorial UOC 54 Escaneando la Informática
La última capa de software está formada por el sistema operativo. El sistema ope-
rativo se encarga de coordinar el hardware del computador y la entrada y la sali-
da, el almacenaje y el procesamiento.
res y ha hecho de Microsoft una de las empresas más importantes del mundo.
EL MS-DOS ha ido evolucionando hacia múltiples versiones hasta llegar a la
que actualmente está disponible en el mercado, llamada MS Windows Vista.
Por otra parte, un estudiante finlandés, llamado Linus Torvalds, tuvo en
cuenta la filosofía UNIX para desarrollar un sistema operativo que estuviera
disponible para todo el mundo que estuviera interesado en él, lo cual abrió la
puerta a lo que actualmente se llama software libre. Este sistema operativo se
llama GNU/Linux y actualmente está bastante extendido dado que su licen-
cia (GNU Public License, GPL) garantiza la libertad de distribución (entre otras
libertades) a todos sus usuarios.3
Entrando en un poco más de detalle, las tareas de un sistema operativo
son:
• Asignar y controlar los recursos del sistema, definiendo qué aplicación y
en qué orden se tienen que ejecutar.
• Gestionar la memoria del sistema, que es compartida por todas las apli-
caciones.
• Gestionar los sistemas de entrada/salida, incluyendo los discos duros, las
impresoras y todo tipo de puertos.
• Enviar mensajes de estado a las aplicaciones, al administrador del siste-
ma o al usuario sobre cualquier error o información necesaria para que el
sistema trabaje de una forma estable.
3. Si queréis saber más cosas sobre el software libre y la GPL... Podéis consultar el sitio web de la Free
software Foundation (FSF): http://www.fsf.org/
© Editorial UOC 56 Escaneando la Informática
La memoria contiene tanto los datos como las instrucciones de los progra-
mas. El procesador, formado por una unidad de proceso (UP) y una unidad de
control (UC), tiene la tarea de extraer las instrucciones de la memoria, desco-
dificarlas (es decir, entender qué operación desean hacer) y ejecutarlas. Las ins-
trucciones son ejecutadas en secuencia (es decir, una detrás de la otra y en el
orden en que están almacenadas) y sólo las instrucciones de salto pueden rom-
per esta secuencia. El subsistema de entrada/salida (E/S) permite la comunica-
ción con el exterior, sea con otros computadores o con los usuarios que inter-
accionan. Con este subsistema y la infraestructura de red adecuada, los com-
putadores se comunican entre sí.
El estilo de programación que se adapta mejor a este modelo es el procedimen-
tal. Cualquier programa tiene que ser descrito a la máquina como una secuen-
cia de instrucciones. La máquina espera un programa que le dice qué tiene que
hacer en cada instante de tiempo.
Podríamos hacer una analogía del funcionamiento de un computador con
el sistema nervioso del cuerpo humano. La memoria y el procesador estarían
localizados en el cerebro, y el sistema de E/S serían los diferentes sentidos
–oído, vista, gusto, tacto y olfato– más el sistema del habla como salida.
© Editorial UOC 57 Arquitectura de los sistemas informáticos
4. Los procesadores superescalares, como el Intel Pentium, siguen este modelo del ciclo de ejecu-
ción de las instrucciones, pero disponen de optimizaciones arquitectónicas que aumentan sus pres-
taciones: son capaces de encabalgar la ejecución de una instrucción con las siguientes y permiten
iniciar la ejecución de más de una instrucción en cada ciclo.
© Editorial UOC 59 Arquitectura de los sistemas informáticos
La memoria almacena las instrucciones y los datos, incluyendo los resultados fina-
les e intermedios, de los programas. Está formada por un espacio de un solo nivel de
direcciones con una organización lineal de las palabras. Sobre la memoria, el proce-
sador puede efectuar operaciones de lectura y de escritura.
ratón y el escáner, entre otros. Por otra parte, la pantalla y la impresora son los
dos periféricos de salida más representativos. Los dispositivos que actúan como
entrada y salida al mismo tiempo corresponden a puertos de comunicación con
otros sistemas computadores. También se engloban dentro de esta posibilidad
los dispositivos que almacenan la información como los discos duros.
3.4. Buses
Los diferentes elementos del computador se tienen que comunicar entre sí para
pasarse información. Los buses son los caminos de comunicación entre estos ele-
mentos. Cada bus está constituido por varias líneas, cada una de éstas permite
transmitir una señal binaria.
5. PCI ha sido y sigue siendo un estándar de bus en los computadores personales. Es un bus paralelo
(hasta 32 bits de datos) de conexión de dispositivos de E/S en la placa base del computador, con velo-
cidades de hasta 133 MB/s.
Más recientes, USB y Firewire son dos buses serie (los datos se transmiten bit a bit) que conectan dispo-
sitivos al computador y que comparten prestaciones similares, con velocidades pico de 480 Mbit/s y
800 Mbit/s, respectivamente, en las versiones actuales.
© Editorial UOC 63 Arquitectura de los sistemas informáticos
4. El sistema binario
La información que gestiona el computador son por una parte las instruccio-
nes, que indican la operación que se tiene que llevar a cabo, y por otra parte los
datos, con los que se tienen que hacer estas operaciones. Para que el computa-
dor pueda reconocer esta información se tiene que representar en un sistema
capaz de ser interpretado electrónicamente.
Sin embargo, para las personas es muy dificultoso trabajar con este sistema.
Hay que tener en cuenta que, actualmente, la medida habitual de los datos es de
32 bits y la tendencia es ir hacia arquitecturas de 64 bits cada vez más extendi-
das. Si tenemos que definir o interpretar los datos en binario, nos podemos equi-
vocar fácilmente si tenemos que escribir 32 (o 64) bits. Por eso, en nuestra arit-
mética cotidiana utilizamos el sistema decimal, que es el que solemos utilizar
para escribir los números. En informática también es usual escribir los números
en el sistema hexadecimal, en el que cada 4 bits se corresponden a 1 dígito hexa-
decimal, lo cual permite reducir el número de dígitos con que representamos los
datos y, de esta manera, podemos minimizar los errores de transcripción.
Hay diferentes tipos de datos en los programas: números naturales, números
enteros, números reales, vectores, matrices, etc. Hay que tener en cuenta que en
la memoria únicamente almacenaremos el valor del dato en el formato de repre-
sentación que se defina por convenio para cada tipo de dato. Eso implica que la
simple inspección del contenido de la memoria no nos da ninguna información
sobre el tipo de dato que hay almacenado.
Al igual que para los datos, un programa contiene instrucciones en lengua-
je máquina que el procesador es capaz de interpretar, escritas utilizando los bits
0 y 1. Las instrucciones contienen una serie de campos, como el código de ope-
ración y la especificación de dónde se encuentran los operandos. La descodifi-
cación de la instrucción determina qué tipo de datos se corresponden con los
© Editorial UOC 64 Escaneando la Informática
FFFE (hexadecimal)
ADD R3, R1, R2 0101001100010010 Instrucción que suma el contenido de los registros R1 y R2
(binario) y deja el resultado en R3. El formato de la instrucción
determina que los primeros 4 bits son el código de opera-
5312 (hexadecimal) ción, que los operandos son registros y que cada registro se
especifica en 4 bits.
ADDI R1, R1, #1 0111000100010001 Instrucción que incrementa el contenido del registro R1. El
(binario) formato de esta instrucción determina que hay un registro
fuente especificado en 4 bits, un registro destino<A[desti-
7111 (hexadecimal) nación|destino]>, también de 4 bits, y un dato constante
también de 4 bits que se guarda en la misma instrucción
en los bits de más a la derecha.
LOADI R1, #0
bucle: INC R1
SUBI R2, R1, #10
BG final
MUL R2, R1, R1
OUT R2
BR bucle
final: .end
5. Historia
Los computadores, tal como los hemos descrito aquí, son el resultado de una
evolución tecnológica de la que, llegados a este punto, querríamos hacer una
pequeña aproximación histórica.
Desde hace mucho tiempo se ha querido acelerar la capacidad y la corrección
del procesamiento. Tenemos que tener en cuenta que las matemáticas constitu-
© Editorial UOC 66 Escaneando la Informática
Aunque hay otros intentos que seguramente también merecerían ser desta-
cados, para simplificar podemos señalar el paso del computador mecánico al
computador electrónico como el siguiente hito notable en esta historia. La cre-
ación de las válvulas de vacío marca el inicio de la primera generación de los
computadores actuales.
© Editorial UOC 67 Arquitectura de los sistemas informáticos
6. Si tenéis interés en conocer un poco más a fondo estos aspectos de la historia de los computado-
res, podéis consultar la página web http://www.thocp.net. Encontraréis un montón de anécdotas
que complementarán vuestros conocimientos.
© Editorial UOC 69 Arquitectura de los sistemas informáticos
6. Salidas profesionales
Capítulo III
Redes de comunicaciones
Joan Arnedo Moreno
1. Introducció
Este capítulo resume los aspectos más básicos de las redes de comunicacio-
nes, de manera que el lector pueda disponer de un mínimo de contexto en la
materia. Para empezar, una definición de red de comunicaciones podría ser la
siguiente:
“Conjunto de enlaces de comunicaciones dispuestos de manera que es posi-
ble el envío de mensajes mediante su paso a través de muchos de aquéllos, con
el fin de comunicar a un emisor y un receptor”.
Hay que observar que dentro de la definición de red de comunicaciones no
se especifica qué hay en el extremo de los enlaces. Eso dependerá del tipo de red:
ordenadores, teléfonos fijos o móviles, etc. Lo cual se debe al hecho de que el
concepto de red de comunicaciones en realidad se remonta al siglo XIX, con
inventos como el telégrafo o el teléfono. En contraposición, la aparición de los
primeros ordenadores programables es bastante posterior, un siglo más tarde.
Aun así, es precisamente la aparición de los ordenadores lo que conforma el
punto de partida de la explosión de las redes de comunicaciones. Aparece el
fenómeno de la convergencia digital: la fusión gradual entre las tecnologías de
comunicaciones y los ordenadores de manera que se genera un nuevo entorno
en el que es posible intercambiar información entre diferentes tipos de disposi-
tivos. Una vez cualquier dispositivo basado en procesador adquiere la capacidad
de comunicarse con otros, las posibilidades se multiplican.
Llegado al punto en que dos partes, como pueden ser dos ordenadores, se tie-
nen que comunicar entre sí de manera autónoma, se hace imprescindible un
protocolo de comunicaciones.
Un protocolo de comunicaciones es el conjunto de normas que definen el
formato y el orden de los mensajes intercambiados entre dos o más entidades
© Editorial UOC 73 Redes de comunicaciones
que se comunican entre sí, así como el conjunto de acciones que se toman
durante la transmisión y la recepción de estos mensajes.
En realidad, siempre que dos entidades se quieren comunicar entre sí tienen
que establecer un protocolo. Una analogía muy sencilla de esta definición es la
comunicación que podrían tener dos personas con walkie-talkies. A fin de que
la comunicación sea fluida hay que seguir dos normas: cuando se quiere ceder
el turno de palabra se dice la palabra “cambio” y cuando se quiere cerrar la con-
versación se dice “cambio y cierro”. Eso en sí es un protocolo de comunicacio-
nes, aunque muy sencillo.
Con el fin de categorizar las redes de comunicaciones, hay diferentes siste-
mas: por el área de alcance, por el tipo de conexión, por la manera como se
interconectan los diferentes dispositivos, por el tipo de servicios provistos, etc.
Como hilo inicial conductor, se utilizará la división por área de alcance:
• Red de área personal (PAN, Personal Area Network).
• Red de área local (LAN, Local Area Network).
• Red de área metropolitana (MAN, Metropolitan Area Network).
• Red de área extensa (WAN, Wide Area Network).
En concreto, este capítulo dará especial importancia a las LAN y las WAN.
En primer lugar, se hará hincapié en qué aspectos han cambiado en el
mundo en que vivimos debido al impacto de las redes de comunicaciones y se
dará una visión general sobre cómo funciona Internet. A continuación, se verá
con más detalle cuáles son las piezas fundamentales para que funcione, concre-
tamente mediante las LAN y las WAN cableadas. Finalmente, se mostrará lo que,
hasta ahora, ha sido el último paso dentro de la revolución de las redes de
comunicación: las redes sin hilos.
Las redes han modificado profundamente el día a día de todas las personas,
hasta el punto de que han ido más allá de los aspectos puramente técnicos y
han provocado cambios sociales. Hemos llegado a la generación que siempre
© Editorial UOC 74 Escaneando la Informática
Hay que hacer hincapié en que Internet y la World Wide Web no son lo
mismo. Internet se refiere a un conjunto de dispositivos interconectados, mien-
tras que la segunda es el conjunto de documentos enlazados entre sí mediante
hipervínculos. Vía Internet se accede a la World Wide Web. La participación
activa de la universidad desde el planteamiento inicial del proyecto y la poste-
rior aparición de la World Wide Web en 1990 hizo que evolucionara y fuera
ganando aceptación hasta convertirse en lo que hoy conocemos como Internet:
una red pública accesible a escala mundial que posibilita la comunicación entre
dispositivos y ofrece todo tipo de servicios.
Para poder concebir esta red de comunicaciones, sus creadores tuvieron que
tener en cuenta una serie de aspectos. Estos son generales a la hora de crear cual-
quier red:
• Aspectos físicos. Cómo se conectan físicamente los dispositivos entre sí y
cómo se envían los datos en forma de señales.
• Aspectos de protocolo. Qué formato tiene que seguir la información que se
quiere transmitir y qué hay que hacer ante errores o situaciones anómalas
durante la transmisión.
• Identificadores. Cómo identificar los dispositivos dentro de la red, con el fin
de poder distinguir el origen y el destino de un mensaje durante su trayec-
to dentro de la red. Este aspecto es idéntico a establecer una numeración
telefónica o un sistema de direcciones y códigos postales.
© Editorial UOC 77 Redes de comunicaciones
Las redes de área local (LAN) surgen ante la necesidad de conectar ordenado-
res en un área limitada, normalmente dentro de un mismo edificio. En este
apartado nos centraremos en aquellos aspectos relativos a las redes de comuni-
caciones cableadas y más adelante veremos las particularidades de las redes sin
hilos. El funcionamiento del nivel de red del modelo TCP/IP será diferente
según el tipo de LAN.
CP/M y DOSCP/M (Control Program / (for) Microcomputers) fue un sistema
operativo para ordenadores basados en procesadores Intel 8080/85 y Zilog que
apareció en 1974. Su imitador más logrado fue DOS, indudablemente catapul-
tado por su elección como sistema operativo en la plataforma IBM PC. Dado
que en los inicios de la informática los sistemas se basaban en un único orde-
nador principal al que se conectaban varias terminales, no había necesidad de
LAN. No fue hasta finales de los años setenta cuando empezaron a aparecer,
impulsadas por la popularización del ordenador personal gracias a los sistemas
operativos CP/M y DOS. El objetivo principal era poder compartir recursos
caros en aquella época, como impresoras o espacio de disco.
Desgraciadamente, la popularización de las LAN también implicó la aparición
de muchos tipos de redes locales diferentes, incompatibles entre sí.
A mediados de los años setenta, la compañía Xerox, con la ayuda de DEC e
Intel, lanzó su propuesta: la red Ethernet. Dado que era un tipo de red con com-
ponentes baratos y fáciles de instalar (en comparación con lo demás que había
en aquel momento), poco a poco fue ganando adeptos.
Para poder enviar información directamente entre dos dispositivos físicos,
hace falta un medio de transmisión.
Un “medio de transmisión” es cualquier soporte físico por el cual se puede
propagar una señal, en forma de ondas o energía.
de este medio lo hacen fácil de conectar y evitan buena parte de las posibles
interferencias.
En contraposición a las LAN, las redes de área extensa (o WAN, Wide Area
Network) son redes de comunicaciones que cubren grandes zonas geográficas.
Bajo el modelo descrito de Internet, las WAN sirven para interconectar las dife-
rentes LAN, de manera que los dispositivos de una LAN pueden comunicarse
con los de otra red a pesar de no compartir el mismo medio de transmisión.
Cuando dos dispositivos dentro de una LAN se quieren comunicar, al com-
partir un mismo medio de transmisión pueden enviarse directamente los men-
sajes en forma de señal. En el momento en que emisor y receptor no compar-
ten este medio, como están en diferentes LAN, hará falta un intermediario que
haga llegar la señal a la red donde se encuentra el receptor, de manera que lo
pueda captar. El dispositivo que se encarga de retransmitir el mensaje a otras
redes se llama direccionador (o router).
Los direccionadores de las diferentes LAN que conforman una WAN se
encuentran interconectados de manera que siempre es posible establecer algún
camino entre la red de origen y la de destino. El mensaje se va reenviando desde
un router a otro hasta llegar al que está conectado a la red de destino. Entonces,
el direccionador final ya puede transmitirlo al destinatario directamente
mediante la LAN. De esta manera es posible permitir la comunicación entre dis-
positivos físicamente separados a grandes distancias.
ADSL). A través de este dispositivo podemos tener conexión desde la red domés-
tica con el resto de Internet. La gestión de los mecanismos utilizados para que
los diferentes direccionadores estén interconectados entre sí es una tarea de los
operadores.
Hay diferentes mecanismos que pueden utilizar los operadores para estable-
cer la comunicación entre direccionadores en un enlace WAN.
Enlace punto a punto: En este sistema se dispone de una línea exclusiva de
comunicaciones que está disponible el cien por cien del tiempo y su comporta-
miento es equivalente a un cable que conectara directamente los direccionado-
res. Los operadores cobran según el ancho de banda que permite el enlace. Un
ejemplo de este mecanismo es PPP (Point-to-Point Protocol), que permite
conectar máquinas directamente, como por ejemplo mediante el puerto en
serie.
Las velocidades de transmisión se indican mediante las iniciales del número de
bits por segundo transmitidos. Así pues, tenemos kbps (kilobits per second) o Mbps
(megabits per second). Para este tipo de medida en concreto, se considera que un
kilobit son 1.000 bits (no 1.024) y un megabit son 1.000.000 bits.
Circuito conmutado: Se trata de una conexión de extremo a extremo que
tiene que ser establecida antes de su uso y que hay que cerrar correctamente de
alguna manera al acabar la transmisión. Eso implica unos ciertos retrasos. Su com-
portamiento sería equivalente al de una línea telefónica normal, en la que prime-
ro hay que marcar el número (establecimiento de conexión) y al acabar se tiene
que colgar (cierre de la conexión). Otro ejemplo de este mecanismo es la RDSI
(Red Digital de Servicios Integrados), una tecnología que permite usar la línea tele-
fónica para transmisión de datos de hasta 128 kbps. Actualmente esta tecnología
ya está desfasada en favor del ADSL, si bien se suele usar como mecanismo de
emergencia.
Conmutación de paquetes: En este tipo de conexión, las diferentes LAN
comparten los recursos del operador y pueden enviar datos sin tener que espe-
rar a establecer una conexión previa. En este sentido, la red del operador se
comporta como si fuera una LAN: un medio compartido al que están conecta-
dos directamente todos los elementos que lo usan. Este sistema permite tanto la
comunicación 1-1 como la 1-N. Un ejemplo de este sistema es la tecnología
© Editorial UOC 85 Redes de comunicaciones
Frame Relay, la precursora del ADSL para enviar grandes volúmenes de datos a
través de un operador.
Envío de celdas: En realidad se trata de un caso concreto de conmutación
de paquetes, optimizado para soportar transmisiones a gran velocidad (lo nor-
mal es 155 Mbps, pero puede llegar a más de 600 Mbps). Vale la pena la diferen-
ciación, ya que un ejemplo de este sistema es la tecnología ATM, que es la que
actualmente usan las líneas ADSL.
Así pues, es la unión de las LAN más los enlaces WAN entre éstas lo que posibi-
lita que dispositivos situados en ubicaciones geográficas separadas se puedan llegar
a comunicar en Internet.
permite que las redes sin hilos no sean necesariamente una tecnología sustitu-
toria de las redes cableadas, sino que se puedan utilizar para dar un valor aña-
dido a una red existente y ya en explotación.
Si bien los problemas de seguridad siempre han existido dentro del mundo
de los ordenadores, en general debido a errores en la programación de los siste-
mas, la aparición de las redes hace todavía más patente esta problemática.
Desde el momento en que se puede acceder a un conjunto de información y
manipularla desde cualquier lugar, nos tenemos que asegurar de que sólo las
personas autorizadas lo puedan hacer.
La expansión de las redes y la creación de un mundo en que todos los siste-
mas están interconectados y dependen los unos de los otros para acceder a la
información ha multiplicado la problemática de la seguridad hasta el punto de
© Editorial UOC 88 Escaneando la Informática
Cada una de las capas del modelo TCP/IP se encuentra sujeta a la posibilidad
de una serie de ataques de los que hay que ser consciente. Los enumeramos a
continuación.
Nivel físico: Nada impide “pinchar” el cable para poder hacer una escucha
(igual que una escucha telefónica). Además, dado que la red Ethernet se basa en
un mecanismo de difusión para transmitir la señal, todos los equipos conectados
reciben los mensajes que se envían por la red. Todo el mundo lo ignora, menos el
destinatario real. Pero si un equipo decide recopilar todos los mensajes en vez de
descartarlos, es posible leer la información que envían todos los equipos de la red.
Nivel de Internet y transporte: La comunicación entre equipos se basa en
el envío de mensajes entre éstos. Inicialmente, nada impide que un equipo fal-
sifique mensajes y se haga pasar por otro, o que responda mensajes de los que
no era el destinatario. Únicamente hay que saber el identificador (la dirección
IP) de las partes que se están comunicando. Comoquiera que Internet se basa en
el hecho de que un mensaje irá dando múltiples saltos por diferentes dispositi-
vos de red antes de llegar al destinatario final, nada impide tampoco que un dis-
positivo intermedio intercepte o modifique el contenido del mensaje.
Nivel de aplicación: Cada tipo de aplicación tiene diferente vulnerabilidad
según la implementación del protocolo de capa de la aplicación que usa.
Normalmente, este hecho puede dar lugar al acceso a datos que se suponían
seguros o a la ejecución de programas no autorizados en el equipo del
cliente/servidor.
Por lo tanto, cualquier persona que esté familiarizada con el funcionamien-
to de cada nivel del modelo arquitectónico y conozca la vulnerabilidad, podrá
intentar realizar un ataque en la red. Aparte de la vulnerabilidad propia de los
protocolos y de los dispositivos que conforman una red de comunicaciones,
otro problema inevitable es la utilización de la propia red para maximizar la
difusión de programas con metas malévolas: virus (programas con la capacidad
de autopropagarse) y troyanos (programas que aparentan hacer algo diferente
de lo que realmente hacen).
Otras problemáticas ya entran en el ámbito social, pero utilizan las redes
para alcanzar su meta, como por ejemplo el correo basura (spam).
El hecho más importante es que estas problemáticas no se deben a errores en
el diseño o a una mala implementación de los protocolos de comunicaciones,
sino que son inherentes al hecho de poder disponer de la capacidad de enviar
© Editorial UOC 90 Escaneando la Informática
car con éxito la red. Sin embargo, otro aspecto importante es el hecho de que
nada impide que los mismos habitantes de nuestra red, en la que en principio
confiamos, sean los que hagan los ataques.
Hemos dejado para el final uno de los temas clave para lograr la seguridad de
una red. Dado que la resistencia de una cadena es igual a la del eslabón más
débil, en una red hay que tener siempre en cuenta el eslabón más débil: el usua-
rio final. Todo eso no sirve de nada si es el propio usuario quien da libre acceso
a los atacantes sin saberlo. Por ello cualquier intento de crear seguridad en una
red de comunicaciones pasará por formar y concienciar correctamente a todos
los que la usarán. Nunca puede hacerse bastante énfasis en este punto.
El quid de la cuestión es que no hay una bala de plata que permita arreglar
todos los problemas. Sólo la combinación correcta de todos los mecanismos de
seguridad existentes puede minimizar el riesgo.
Walkchalking
En este apartado veremos cuál es el camino que sigue la persona que quie-
re dedicar su carrera académica y profesional a la disciplina de las redes de
comunicaciones. Así, obtendremos una visión general de los aspectos que ten-
drá que afrontar como estudiante y, según la especialización deseada, qué
otras disciplinas pueden complementar su formación.
© Editorial UOC 94 Escaneando la Informática
Una vez acabados los estudios, ¿qué puede esperar el especialista en redes de
comunicaciones? Según lo que se ha podido ver, las perspectivas profesionales
a medio plazo son buenas, pero hay que diferenciar cuáles son los diferentes
papeles que puede adoptar el experto en redes de comunicaciones.
Hay que tener en cuenta que las explicaciones se centrarán en los aspectos
específicos de los conocimientos de redes de comunicaciones. Se da por senta-
do que existe todo un conjunto de otras competencias que debe tener un inge-
niero: capacidad analítica y de trabajo en equipo, saber gestionar recursos, etc.
Hay que decir, sin embargo, que una parte importante de la formación está
orientada, comprensiblemente, a la configuración de equipos de este fabricante
en concreto.
© Editorial UOC 101 Programación
Capítulo IV
Programación
Francisco Javier Noguera Otero y Daniel Riera Terrén
1. Introducción
Aunque quizás no tengamos una idea clara de a qué nos referimos cuando
hablamos de programar, sin ser conscientes de ello, a lo largo de nuestras vidas
lo hacemos bastante a menudo y de maneras diversas. Así, programamos el
vídeo para que se active a una hora determinada y grabe, programamos la hora
a la que tiene que sonar el despertador, e incluso, hacemos viajes programados.
¿Pero, realmente, tiene todo eso alguna relación con los programas de ordena-
dor?
Al contratar un viaje programado nos ofrecen la lista de los lugares adonde
iremos, qué día iremos, qué visitaremos y qué actividades realizaremos. Así, el
programa, en este caso, es una especificación detallada previa del acontecimien-
to. Aunque eso ya nos va dando ciertas pistas de lo que se considera un progra-
ma en el mundo de la informática, más cercanos aún son los otros dos ejem-
plos. Cuando programamos el despertador o el vídeo, le damos una orden –o un
conjunto de órdenes– que en un cierto momento del futuro ejecutará automá-
ticamente.
Reuniendo estas ideas, podemos acercarnos a la idea de programa, ahora ya
desde el punto de vista informático. Diremos, hoy por hoy, que un programa es
un conjunto de órdenes ordenadas que la máquina ejecutará para llevar a cabo
una tarea determinada.
Si buscamos la definición en el diccionario, vemos que es bastante parecida
a lo que acabamos de decir: “Conjunto unitario de instrucciones que permite a
un ordenador realizar diversas funciones, como el tratamiento de textos, el dise-
ño de gráficos, la resolución de problemas matemáticos, el tratamiento de ban-
cos de datos, etc.”. Así, las órdenes que damos al ordenador se llaman instruc-
ciones y la ejecución de éstas hace que el ordenador cumpla ciertos objetivos.
© Editorial UOC 103 Programación
3. Historia
A finales de 1976, los tripulantes de un flamante caza F16 de las fuerzas aére-
as de los Estados Unidos vieron sorprendidos que, en determinados momentos,
el avión giraba 180 grados y quedaba cabeza abajo. Después de analizar cuál
podía ser el problema, detectaron que provenía de un signo menos mal coloca-
do dentro del programa de navegación del aparato. Este error hacía que el apa-
rato girara cada vez que cruzaba el ecuador. Menos mal que estas primeras prue-
bas las hicieron sobre simulador, ya que si no el susto, sin duda, hubiera sido
mucho mayor.
Es curioso que un programa de algunos miles de líneas (y por lo tanto, de
varios millones de caracteres) pueda depender de un solo signo, pero la progra-
mación no es un ejercicio simple y cualquier programa, por sencillo que sea, es
susceptible de tener errores. Precisamente para evitar los errores y facilitar la
programación, los lenguajes y los paradigmas de programación han ido evolu-
cionando continuamente. Veamos, pues, cómo ha sido esta evolución.
Las diferencias entre los primeros programas y lenguajes, llamados de prime-
ra generación, y los que se utilizan actualmente es muy grande, no sólo por el
cambio de tipos de problemas que hay que resolver sino por las estrategias
seguidas para la simplificación, el diseño, la división en subproblemas, etc.
© Editorial UOC 104 Escaneando la Informática
Hasta aquel momento, para ejecutar un programa entero, lo que se hacía era
ir cargando una tarjeta por instrucción. Así, hasta que no se había acabado la
ejecución de la actual, no se retiraba y se introducía la siguiente.
Las siglas ENIAC significan Electronic Numerical Integrator And Computer. Los
primero programas que se utilizaron en el ENIAC estaban relacionados con el
diseño de la bomba de hidrógeno. Los aclamados como primeros ordenadores,
como por ejemplo el ENIAC, no tenían algunas de las características que hoy
día se consideran indispensables en un ordenador. Eran máquinas bastante rígi-
das. En cambio, en la Universidad de Manchester, se crearon una serie de
máquinas que incluían tanto la posibilidad de almacenar programas en la
memoria como de introducir el programa mediante un teclado en vez de recon-
figurar circuitos (tarea que podía durar días).
© Editorial UOC 107 Programación
1. Un acumulador es un sitio de la memoria del ordenador que se utiliza de manera auxiliar para
hacer operaciones intermedias aparte de la memoria principal (un tubo Williams de 32x32).
© Editorial UOC 108 Escaneando la Informática
El primer programa fue escrito por el propio Tom Kilburn y fue ejecutado el
día 21 de junio de 1948. Este programa calculaba el factor máximo de un núme-
ro. En la imagen siguiente podemos ver el “diseño” a mano del primer progra-
ma.
3.4. Generaciones
10110000 01100001 Esta línea contiene una instrucción que mueve un valor (61 en hexadecimal)
en el registro2 del procesador al. Como se puede ver, no es muy comprensi-
ble desde el punto de vista humano (de hecho, es realmente misteriosa).
Para evitar tener que utilizar el alfabeto de la máquina (ceros “0” y unos “1”),
que está muy lejos de lo que entendemos nosotros, se crearon los llamados len-
© Editorial UOC 111 Programación
mov al, 061h Esta línea contiene la instrucción mov, que mueve un byte (61 en hexadecimal) en el
registro al. Esta manera de escribir código es más comprensible que la que hemos
visto anteriormente.
MOV DS, AX
MOV DX, OFFSET MSG
MOV AH, 09H ; DOS: output ASCII$ string
INT 21H
MOV AX, 4C00H
INT 21H
END Start
if (x>0) factorial(x) Esta línea comprueba si x es mayor que cero (0). En caso de que así sea
llama a una parte del programa que calcula el factorial de x.
Así, a partir del código escrito en un lenguaje de este grupo, se utiliza una
herramienta (de hecho hay diferentes maneras de hacerlo) que “traduce” el
código a código máquina. Normalmente se hace mediante un compilador, aun-
que puede utilizarse un intérprete o incluso una máquina virtual (conceptos
que veremos más adelante).
La mayor parte de los lenguajes que se utilizan hoy día para la programación
de aplicaciones son de tercera generación (por ej. C, C++ y Java).
© Editorial UOC 113 Programación
Esta línea busca en una base de datos todos los registros que tienen
SELECT * FROM USUARIS
como campo de nombre BOB. Se puede ver que es casi como el len-
WHERE NAME=”BOB”
guaje natural (en este caso, el inglés).
hermano(X,Y):- madreOpadre(X,Z), Esta línea dice que X e Y son hermanos si comparten padre o
madreOpadre(Y,Z). madre.
4. Algorítmica
Hasta ahora hemos revisado un poco la evolución de los lenguajes hasta lle-
gar a los que utilizamos hoy día. Pero exactamente, ¿cómo son estos lenguajes?
¿Qué tipo de problemas nos permiten resolver y de qué manera? Pronto vere-
mos algunas de las características comunes a todos ellos.
© Editorial UOC 115 Programación
Acabamos de definir los pasos que hay que seguir para, a partir de unos
ingredientes y unas herramientas que tenemos en casa, llegar a hacer una torti-
lla de patatas para dos personas. Estos pasos definirán el algoritmo. Cuando
queremos resolver un problema con el ordenador, la mecánica es parecida: tene-
mos un estado inicial y queremos hacer alguna tarea. Tenemos que preparar un
algoritmo, traducirlo a un lenguaje de programación (programar) y ejecutarlo
sobre el ordenador. Así, si es correcto, el ordenador cumplirá la tarea definida
inicialmente.
Para escribir un algoritmo, sin darnos cuenta, utilizamos tres estructuras con
las que se puede resolver cualquier problema. Así, un buen programador, ante
un problema, tiene que ser capaz, inmediatamente, de ver cuáles de estas estruc-
turas combinará para resolverlo. Veamos cuáles son.
© Editorial UOC 117 Programación
4.1.1. Estructuras
En este caso, la orden “corregir examen” se repetirá tantas veces como exá-
menes tenga el profesor. Si tiene treinta estudiantes, estas dos líneas equivalen
a escribir treinta veces la orden “corregir examen”.
En el algoritmo de la tortilla de patatas, vemos una estructura iterativa en el
paso 2, ya que se van repitiendo dos acciones, mientras quedan patatas.
© Editorial UOC 118 Escaneando la Informática
4.1.2. Datos
Hasta ahora hemos visto que para resolver un problema se tiene que pensar
un algoritmo y –en el caso de que se tenga que ejecutar en un ordenador–, pos-
teriormente, traducirlo a un lenguaje de programación. Ahora bien, recordando
lo que nos decía Wirth, los programas no son simplemente algoritmos, sino una
combinación de éstos con estructuras de datos. Pero ¿qué son los datos?
Consideramos que el estado está definido por la situación de los elementos
con los que trabaja el algoritmo en un instante concreto. Ya hemos dicho que
un algoritmo (o un programa) nos lleva de un estado inicial a un estado final.
Así, antes de aplicar el algoritmo de la tortilla de patatas, el estado es: estamos
en la cocina de casa, tenemos huevos, aceite, patatas, etc. En cambio, una vez
hemos aplicado el algoritmo, tenemos una tortilla, y algunas cosas que tirar a la
basura. Es fácil ver que cada paso del algoritmo que vamos ejecutando produce
un cambio de estado.
Cuando programamos, estos estados se tienen que guardar de alguna mane-
ra, ya que cada paso del algoritmo tiene sentido si se aplica sobre un/os cierto/s
elemento/s, y en un cierto estado. Un ejemplo claro es, por ejemplo, el segun-
do paso del algoritmo de la tortilla de patatas: pelar las patatas. Esto sólo tiene
sentido si las patatas todavía no están peladas. En este caso, consideramos que
tenemos un dato (patata) que está en un estado (pelada). Otros posibles estados
para el dato “patata” serían “sin pelar”, “cortada”, etc.
Estos datos, cuando hablamos de programas, quedan guardados en la memo-
ria del ordenador y determinan el estado de ejecución del programa en cada ins-
tante.
Recordemos así lo que decía Wirth: “Algoritmos + Estructuras de datos =
Programas”. Efectivamente, cualquier programa contendrá un conjunto de ins-
trucciones ordenadas (un algoritmo) y un conjunto de datos sobre los cuales se
aplican las instrucciones.
© Editorial UOC 119 Programación
cambia_neumático:
quita neumático_gastado
pon neumático_nuevo
comprueba neumático
fin cambia_neumático
ahora puedo utilizar el bloque a lo largo del algoritmo sin volver a escribir
cada orden:
De esta manera, vemos que será más legible el código, ya que queda claro
qué hace sin tener que leer todas las líneas. Si ya sé que uno de estos bloques
funciona correctamente, no hace falta que lo revise si después mi programa
tiene errores. Eso facilita también la fase de búsqueda de errores, dado que es
más fácil ir aislando los errores que se produzcan.
© Editorial UOC 120 Escaneando la Informática
Cada línea de la tabla anterior presenta los resultados para un algoritmo dife-
rente. Si nos fijamos, por ejemplo, en la última línea, vemos que dado este algo-
ritmo, si se tienen que ordenar 10 tarjetas (n=10), hay que hacer 1.000 movi-
mientos para conseguirlo.
De esta manera, los tres primeros (con complejidades lg n, n y 50·n) se con-
sideran algoritmos aceptables para solucionar el problema. Los otros no son lo
bastante eficientes.
El Clay Mathematics Institute ofrece un millón de dólares a las personas que
resuelvan una serie de problemas matemáticos altamente complejos. Uno de
ellos es ¿P=NP?. El último que se solucionó fue la demostración del último
Teorema de Fermat.
Yendo un poco más allá, también se clasifican los problemas según la exis-
tencia o no (hasta ahora) de algoritmos que los resuelvan en tiempo polinomial
(problemas P) o no (problemas NP). Así, un problema P es el que tiene un algo-
ritmo conocido con complejidad polinómica que lo resuelve. Una de las gran-
des incógnitas a que actualmente se enfrenta la comunidad científica es, como
hemos comentado, si todos los problemas son P. Eso se resume normalmente
con la pregunta ¿P=NP?.
4.2.2. Recursividad
la recursividad, pero se tiene que tener en cuenta que ésta tiene que acabar (si
no el algoritmo no sería finito). Para hacerlo se añade una condición final (en
este caso, cuando N es 0).
5.1. La compilación
5.2. La interpretación
6. Paradigmas de programación
gramación, utilizada con los primeros lenguajes, hace que el programa sea difí-
cil de entender, corregir o modificar para añadir una nueva funcionalidad. Otro
problema es la dificultad que tiene el programador en reaprovechar el código.
Algunos ejemplos de este tipo de lenguajes son: BASIC, FORTRAN y algunos
lenguajes de scripting.
Los paradigmas que veremos a partir de ahora se consideran estructurados, ya
que la programación desestructurada plantea algunos problemas.
7. Lenguajes de programación
7.1.1. BASIC
En los primeros años en que se utilizó, las líneas del programa tenían que
estar numeradas. Esta numeración normalmente se hacía de diez en diez (10,
© Editorial UOC 129 Programación
20, 30, etc.) dejando así un espacio entre instrucción e instrucción por si se tení-
an que añadir líneas posteriormente. El lenguaje de programación BASIC
(Beginner’s All-purpose Symbolic Instruction Code) fue diseñado e implementado
en el Dartmouth College (EE.UU.) para facilitar a los estudiantes de letras el
acceso al ordenador. Por extensión, cualquier persona sin conocimientos cien-
tíficos podía utilizar un sencillo juego de instrucciones para escribir un progra-
ma.
El BASIC se hizo popular a partir de la aparición de los ordenadores domés-
ticos que, a diferencia de los grandes computadores que había en las universi-
dades y en las industrias, disponían de muy poca memoria y espacio de disco.
Requería menos recursos para ejecutarse que el resto de los lenguajes de la
época, lo que lo hacía ideal para este tipo de ordenadores. Esta necesidad míni-
ma de recursos y el hecho de que fuera sencillo de aprender hizo que la mayo-
ría de los ordenadores domésticos llevaran incorporado un intérprete de BASIC.
Precisamente fue en esta época y gracias a BASIC, cuando se fundó la com-
pañía Microsoft. Bill Gates y sus socios desarrollaron un intérprete de BASIC
para el primer ordenador doméstico, el Altaif 8800. En 1975 pusieron en venta
Altair BASIC y posteriormente desarrollaron nuevas versiones de Microsoft
Basic para otras plataformas (Apple, IBM, etc.). Treinta años después es la mayor
compañía de software del mundo.
El código del “Hello World” en BASIC es el siguiente:
7.1.2. C
El nuevo lenguaje era bastante flexible para permitir combinar las programacio-
nes en bajo y alto nivel. Mediante un compilador específico para cada arquitec-
tura (que traducía de C al ensamblador de la máquina) podían obtener progra-
mas ejecutables para diferentes ordenadores sin tener que cambiar el código
fuente. En el año 1973 el código de UNIX se rescribió utilizando C. De esta
manera, fue el primer sistema operativo no escrito en ensamblador. Eso aceleró
y simplificó la programación para este sistema, lo cual se tradujo en un impor-
tante avance en el desarrollo.
El hecho de que, a pesar de ser propiamente un lenguaje de alto nivel, ofrez-
ca la posibilidad de codificar también en bajo nivel para poder acceder a todos
los recursos del ordenador, hace que C sea un lenguaje peligroso para princi-
piantes. Aun así, su potencia lo ha convertido en uno de los más utilizados.
La sintaxis de C se muy permisiva. Tanto es así que incluso hay concursos de
“programación ofuscada”, es decir, concursos en que se valora que el código
fuente no pueda leerse o incluso que forme bonitos dibujos de caracteres (véase
un ejemplo en el anexo 2 de este capítulo).
El código del “Hello World” en C es el siguiente:
#include <stdio.h>
int main (void)
{
printf ("Hello world!\n");
return 0;
}
7.1.3. C++
#include <iostream>
using namespace std;
class HelloWorld
{
public: HelloWorld () {}
~HelloWorld () {}
void sayHello { cout << "Hello World!" << endl;}
};
int main (void)
{
HelloWorld hw;
hw.sayHello();
return 0;
}
7.1.4. Java
JAVA fue desarrollado por Sun Microsystems en los años noventa. En argot
norteamericano JAVA quiere decir “café” y la historia cuenta que el equipo que
desarrollaba este lenguaje escogió este nombre en torno a una taza de café. Por
eso, su logotipo es una taza de café y los objetos que utiliza para encapsular
información (agrupar en bloques) se llaman “Java Beans” (granos de café). Aún
podemos encontrar otra referencia al café en su código, ya que si abrimos cual-
quier clase compilada de JAVA con un editor hexadecimal, veremos que todas
las clases empiezan con los cuatro primeros bytes hexadecimales CA FE BA BE.
© Editorial UOC 132 Escaneando la Informática
JAVA es un lenguaje orientado a objetos que ofrece, en la misma base del len-
guaje, apoyo para la utilización de redes y la ejecución remota de código (fue
creado durante el boom de Internet). Sintácticamente, JAVA es muy parecido a
C y C++, pero mucho más simple, ya que tiene reglas menos permisivas. Eso
implica limitar las diferentes maneras de hacer lo mismo (cosa que da lugar a
ambigüedades), no permitir ciertas estructuras que puedan generar errores, etc.
Un programa escrito con JAVA puede ejecutarse en cualquier ordenador y sis-
tema operativo sin tener que modificar ninguna línea de código y sin volver a
compilar. La idea “codifica una vez, ejecuta en cualquier lugar” junto con el
hecho de proporcionar un entorno seguro a la hora de ejecutar código han
hecho que sea uno de los lenguajes más utilizados actualmente.
La Máquina Virtual Java (Java Virtual Machine, JVM) es una capa que se
podrá poner por encima de cualquier máquina para que así pueda ejecutarse el
mismo código, independientemente de ésta. Por eso, al compilar, se genera
código intermedio, interpretable por la JVM. Las mayores críticas a JAVA provie-
nen de su velocidad de ejecución y la cantidad de memoria que utiliza para la
ejecución. Es un lenguaje que se compila y genera un código intermedio que
después tiene que ser interpretado por la Máquina Virtual Java. Por eso, la eje-
cución de los programas de las primeras versiones de JAVA era mucho más lenta
que la de otros similares hechos en C o C++. Actualmente la diferencia ya no es
tan grande.
El código del “Hello World” en JAVA es el siguiente:
7.1.5. PHP
8. Software libre
La idea del software libre surgió a partir de un problema que tuvo Richard
Stallman con una impresora. El software que la controlaba no se podía modifi-
car y él quería mejorarlo para evitar unos problemas que se le planteaban. Así
el concepto “software libre” nace en 1984 cuando Stallman inicia el proyecto
GNU y crea la Free software Foundation (FSF). Este proyecto tiene por objetivo
crear un sistema operativo totalmente libre. Antes de esta fecha también había
muchas aplicaciones que se distribuían con el código fuente o de forma gratui-
ta, pero no es hasta ese momento cuando se crean unas normas y emerge la
conciencia identitaria y de pertenencia. GNU es una palabra que se define recur-
sivamente. Quiere decir: “GNU’s Not UNIX”.
Un software se considera libre si garantiza las cuatro libertades siguientes:
• La libertad de ejecutar el programa para cualquier propósito.
• La libertad de estudiar cómo trabaja el programa y de adaptarlo a las nece-
sidades propias. El acceso al código fuente es una condición previa.
© Editorial UOC 134 Escaneando la Informática
Así pues, el software libre se puede redistribuir y modificar, bien de forma gra-
tuita o cobrando por esta distribución.
Uno de los proyectos de software libre más conocidos es, sin duda, el núcleo
(kernel) Linux, programado por Linus Torvals en el año 1991. GNU/Linux es la
implementación abierta del sistema operativo Unix para computadores perso-
nales, con Linux de núcleo. El proyecto GNU/Linux lo inició Richard M.
Stallman en el año 1984 con el objetivo de crear un clon del sistema operativo
Unix, pero garantizando las cuatro libertades mencionadas más arriba.
Los proyectos de código abierto y la creación de software libre se caracterizan
por que en su elaboración participan decenas a miles de personas de todo el
mundo. Un grupo reducido de personas toma las decisiones de diseño y de pro-
gramación mientras que un gran número de programadores detectan y corrigen
errores y añaden nueva funcionalidad.
9. El mundo laboral
10. Apéndice
Capítulo V
1. Introducción
Este texto pretende que los lectores se puedan introducir en los mecanis-
mos que permiten gestionar los datos que se encuentran guardados en dispo-
sitivos de almacenamiento permanente (como los discos magnéticos) y que
son requeridos por el conjunto de programas de aplicación que las empresas
y organizaciones utilizan en su actividad cotidiana.
Aunque hay diferentes mecanismos para guardar los datos de manera per-
manente, el más potente en cuanto a prestaciones son las bases de datos, que
son gestionadas por un software específico que recibe el nombre de sistema
de gestión de bases de datos. Precisamente por eso, estos elementos serán el
núcleo central de interés de este texto.
Ejemplo de BD y de SGBD
En el contexto de una universidad, como es el caso de la UOC, una BD podría conte-
ner datos en torno a diferentes entidades del mundo real y de interrelaciones entre
estas entidades como:
• Diferentes entidades, como estudiantes, profesores, titulaciones y asignaturas, así
como materiales didácticos.
• Interrelaciones entre estas entidades, como las asignaturas en que se matriculan los
estudiantes en diferentes semestres, así como las calificaciones obtenidas, las asig-
naturas que conforman cada titulación, las asignaturas que imparte cada profesor,
los materiales didácticos asociados a cada asignatura, etc.
Por ejemplo, podemos representar gráficamente las entidades estudiantes y asigna-
turas, así como una posible interrelación entre las dos entidades de la manera
siguiente:
Las dos cajas anteriores representan entidades del mundo real, como por ejemplo
estudiantes y asignaturas. Por ejemplo, la caja de arriba representa la entidad estu-
diante, que contiene estudiantes concretos como Pedro Río, Diana Pérez, Elena
Campos y Víctor Gabete; la caja de abajo representa la entidad asignatura, que con-
tiene asignaturas concretas, por ejemplo, la asignatura de Álgebra, Uso de Bases de
Datos, Estadística y Estructura de Computadores.
Entre estas dos entidades del mundo real podemos establecer diferentes interrelaciones;
en nuestro ejemplo concreto, la interrelación establecida representa las asignaturas en
que se matricula cada estudiante en el semestre en curso. Así pues, podemos ver, siguien-
do las líneas, que Pedro Río está matriculado de la asignatura de Álgebra, que Diana Pérez
está matriculada en Uso de Bases Datos y Estadística, que Elena Campos está matricula-
da en Estadística y Estructura de Computadores, y que Víctor Gabete está matriculado
en Uso de Bases de Datos y Estructura de Computadores.
Diferentes usuarios pueden estar interesados en acceder, con diferentes propósitos, a
la BD que almacena todos estos datos. El encargado de posibilitar este acceso a la BD
será el SGBD. Algunos ejemplos de posibles funcionalidades que tiene que resolver el
SGBD podrían ser las siguientes:
• Los estudiantes pueden estar interesados en consultar su expediente académico.
• Los profesores necesitan poder consultar qué estudiantes se han matriculado en las
asignaturas que imparten cada semestre, y también tienen que poder introducir sus
calificaciones.
• El personal de gestión académica necesita consultar las asignaturas en que se han
matriculado cada semestre los estudiantes a los efectos de pago de matrícula y envío
de materiales didácticos.
• El personal de recursos humanos necesita saber las asignaturas que imparte cada
profesor y el tipo de vinculación profesional con la institución, con el fin de poder
llevar a cabo el pago de nóminas.
© Editorial UOC 142 Escaneando la Informática
Pero a medida que se requerían ficheros más complejos como, por ejemplo,
ficheros que tenían que almacenar datos de más de una entidad, esta misma
complejidad llevó a la decisión de ocultar el tratamiento de los ficheros en pro-
gramas especializados, separados del resto de aplicaciones informáticas. De esta
manera apareció el software de gestión de ficheros, que sería el núcleo y el ori-
gen de los SGBD actuales.
El que se considera el primer SGBD es el Integrated Data Store (IDS), diseñado por
Charles Bachman3 en la General Electric en 1964. Este producto fue el núcleo sobre
el que se basó el modelo de datos en red, convertido posteriormente en estándar
gracias al trabajo de CODASYL (Conference on Data Systems and Languages).
Aunque el IDS fue el primer SGBD, el primer SGBD comercial con inciden-
cia real en el mercado fue el IMS de IBM, del que se entregó la primera versión
en 1969. El IMS se configuró como SGBD de uso general, desde las primeras
aplicaciones en el mundo de la aviación, para las que nació, hasta el uso masi-
vo en los grandes bancos de todo el mundo. El modelo de datos subyacente a
este SGBD es el llamado modelo de datos jerárquico.
Tanto en el modelo de datos jerárquico como en el modelo de datos en red,
las estructuras que se proporcionan para representar los datos constan de dos
elementos básicos, los registros de datos y las interrelaciones entre los registros
de datos. Mientras que el modelo de datos jerárquico estructura registros inte-
rrelacionados mediante jerarquías (árboles) de registros, de tal manera que cada
registro “hijo” sólo puede tener un registro “padre”, el modelo de datos en red
estructura registros interrelacionados en forma de grafo, lo cual permite interre-
lacionar un mismo registro “hijo” con diferentes registros “padre”, tal como
muestra la siguiente figura:
3. C. Bachman obtuvo el premio A. M. Turing otorgado por el ACM en el año 1973 por sus contri-
buciones a la tecnología de BD. Este galardón es el premio más prestigioso que se concede dentro
de la ciencia informática.
© Editorial UOC 144 Escaneando la Informática
Ejemplo de relación
A continuación mostramos un ejemplo de relación que representa los datos de la
entidad asignaturas, con su esquema y un posible conjunto de tuplas:
5. El SQL:2008 es la última versión estándar de SQL en el momento de escribir este texto, pero segu-
ro que en el futuro saldrán nuevas versiones.
© Editorial UOC 147 Gestión de datos
Por último, como SGBD relacionales de código fuente abierto podemos citar
a Ingres, Firebird, MySQL y PostgreSQL. En el caso de PostgreSQL, es importan-
te destacar que surge de las evoluciones sucesivas del proyecto Ingres y que,
posiblemente, de todos los productos de código fuente abierto citados, es el más
potente en cuanto a prestaciones.
Para acabar esta evolución, es importante mencionar otras áreas en las que
las BD y los SGBD tienen una participación importante:
1) La rápida adopción de la web en los SI requiere que los SGBD incorporen
recursos para ser servidores de páginas web, de manera que los datos almacena-
dos en las BD puedan ser mostrados en documentos XML,7 y a la inversa, es
decir, que dentro de las BD se puedan almacenar documentos XML.
2) A lo largo de los años las empresas han trabajado con BD de varias aplica-
ciones, de manera que han ido acumulando gran cantidad de datos de todo
tipo. Si estos datos se analizan adecuadamente, pueden proporcionar informa-
ción valiosa. Se trata, pues, de mantener una gran BD con información proce-
dente de toda clase de aplicaciones de la empresa (e incluso de fuera). Los datos
de este gran almacén de datos (data warehouse) se obtienen como reproducción
(más o menos sofisticada) de los datos que hay en las BD que se utilizan en la
6. El OMG se estableció en 1989, y entre sus estándares más conocidos están CORBA y UML.
7. El XML (eXtensible Markup Language) es un lenguaje de marcaje de propósito general, propues-
to por el W3C, y que sirve para describir diferentes tipos de datos, especialmente los datos semies-
tructurados que se encuentran en las páginas web.
© Editorial UOC 149 Gestión de datos
Los usuarios tienen que poder realizar operaciones sobre la BD de cualquier tipo
y complejidad directamente en el SGBD. Éste tendrá que responder inmediata-
mente sin que las operaciones estén preestablecidas, es decir, sin que se tenga que
escribir, compilar y ejecutar un programa específico para cada operación.
• Se quiere saber el número de estudiantes de más de veinticinco años que han aprobado
la asignatura de Uso de Bases de Datos y se han matriculado en la asignatura de Estructura
de Computadores.
• De cada estudiante matriculado en menos de tres asignaturas, se quiere obtener el
nombre del estudiante, el nombre de las asignaturas matriculadas y el nombre de
los profesores que imparten las asignaturas.
• Se quiere subir el sueldo de los profesores en un 5%.
Adicionalmente, los usuarios tienen que poder formular las operaciones con
un lenguaje sencillo y el SGBD lo tiene que interpretar directamente. Eso no
quiere decir, sin embargo, que no se puedan escribir programas específicos que
incorporen sentencias de acceso a la BD como, por ejemplo, para procesos repe-
titivos.
Como hemos dicho, en el caso de los SGBD relacionales, el lenguaje están-
dar que permite definir y manipular (ya sea para su consulta o modificación)
tanto la estructura como el contenido de la BD es el SQL.
Los usuarios, mediante el uso del SQL, pueden consultar directamente la BD
con algún tipo de herramienta que tenga una interfaz de usuario adecuada (por
ejemplo, basada en ventanas), facilitada por el mismo fabricante de SGBD rela-
cional. También es posible acceder a las BD desde programas desarrollados con
lenguajes de programación como C o Java.
Por último es importante destacar que también se pueden almacenar procedi-
mientos junto con los datos que se almacenan dentro de la BD y bajo el control
del SGBD. Estos procedimientos, conocidos como procedimientos almacena-
dos,8 son especialmente útiles para ejecutar procesos repetitivos. Los procedi-
mientos almacenados se pueden escribir con lenguajes específicos de cada fabri-
cante de SGBD (normalmente estos lenguajes extienden las funcionalidades de
SQL incorporando, por ejemplo, sentencias condicionales e iterativas) e incluso se
pueden almacenar dentro de la BD procedimientos escritos con un lenguaje de
programación específico.
8. Los procedimientos almacenados, que en el SQL estándar se llaman Persistent Stored Modules
(PSM), forman parte del estándar desde el SQL:1999.
© Editorial UOC 151 Gestión de datos
Interesa obtener la máxima independencia posible entre los datos y los programas
de aplicación que usan estos datos para que se puedan hacer todo tipo de cambios
tecnológicos y variaciones en la descripción de la BD, sin que se tengan que modi-
ficar los programas de aplicación ya escritos ni cambiar la manera de escribir las
operaciones que acceden a la BD.
También se quiere que los usuarios de la BD puedan tener visiones diferentes de
una misma BD, ajustadas a sus necesidades, y que estas visiones se puedan man-
tener independientes de la propia BD y entre ellas.
2) A los profesores probablemente no les interesa conocer los datos personales de los
estudiantes matriculados en sus asignaturas, como, por ejemplo, el domicilio o el
teléfono. En cambio, para el personal de secretaría estos datos son relevantes a efec-
tos de envío de los materiales didácticos. En otras palabras, la visión del estudiante
que necesitan tener los profesores y el personal de secretaría son bastante diferentes.
La BD tiene que dar apoyo a las dos visiones.
Al diseñar una BD para un SI concreto y escribir el esquema, no sólo hay que defi-
nir las estructuras de datos, sino también las reglas de integridad que queremos
que el SGBD haga cumplir.
Hay dos tipos de reglas de integridad. Por una parte, las reglas de integridad de
usuario, es decir, aquellas reglas que son propias de la realidad que intenta repre-
sentar la BD que se quiere crear; y por otra las reglas de integridad inherentes al
modelo de datos que utilice el SGBD.
Cuando el SGBD detecte que un programa o usuario quiere hacer una operación
que va en contra de las reglas de integridad establecidas al definir la BD, no debe-
rá permitírselo.
Ejemplo de disparador
En la BD de ejemplo de la UOC, una regla de integridad candidata a ser definida
mediante un disparador sería la de garantizar que las existencias de cada material
didáctico estén siempre por encima de un cierto valor. Supongamos que este valor de
existencias mínimo para cualquier material didáctico es de 50 unidades, y que en
caso de que las existencias bajen por debajo de este valor, se piden 100 nuevas uni-
dades. Sin entrar en aspectos formales, hay que destacar:
1) La operación sobre la BD que hace que el disparador se ejecute es que un usuario o
programa haga una modificación del valor del atributo existencias en la relación de
materiales didácticos.
2) Una vez se ha producido la operación, el SGBD deberá comprobar si el valor del atri-
buto existencias ha sido disminuido, y si lo ha sido, si se encuentra por debajo de las
50 unidades.
3) En el caso de que las existencias estén por debajo de las 50 unidades, el SGBD tendrá
que lanzar un aviso a fin de que se haga el pedido de 100 nuevas unidades del material
didáctico en cuestión.
9. J. Gray ha sido unos de los investigadores e implementadores de referencia en el área del proce-
samiento de transacciones en SGBD. Por su trabajo, recibió el premio A. M. Turing en 1998.
© Editorial UOC 154 Escaneando la Informática
Ejemplos de transacciones
En la BD de ejemplo de la UOC, algunos ejemplos de transacciones serían los
siguientes:
1) Imaginemos que se quiere subir el sueldo de todos los profesores de la UOC en
un determinado porcentaje. Conceptualmente esta subida tiene que ser una
unidad de ejecución atómica, es decir, o se suben los sueldos de todos los pro-
fesores o no se sube ningún sueldo. Es un proceso sobre la BD que no puede
quedar a medias.
2) La preparación de los materiales didácticos que hay que enviar a los estudian-
tes, en función de las asignaturas en que se han matriculado, también tiene que
ser una transacción, es decir, hay que hacer un único envío que incluya todos
los materiales, en vez de un envío individual para cada asignatura matriculada.
Para conseguir que las transacciones estén correctamente aisladas entre sí, ade-
más de las transacciones, los SGBD utilizan varias técnicas, la más conocida de
ellas es la basada en el bloqueo (en inglés, lock) de los datos. El bloqueo de unos
datos en beneficio de una transacción consiste en poner limitaciones en el acce-
so que otras transacciones podrán hacer sobre estos mismos datos. Cuando se pro-
vocan bloqueos se producen esperas en las transacciones y, en consecuencia, el
rendimiento global de los sistema es menor. Uno de los objetivos de los SGBD es
intentar minimizar estos efectos negativos.
Intuitivamente, los bloqueos entre las transacciones actúan de manera simi-
lar a los semáforos de tráfico que regulan, por ejemplo, el acceso de peatones y
vehículos a un recurso compartido, como sería el uso de las calzadas por donde
circulan los vehículos, y que los peatones necesitan cruzar, con el fin de evitar
que se produzcan accidentes.
Por último, para acabar este apartado, hay que apuntar el concepto de recu-
peración: el SGBD también tiene que dar herramientas para poder reconstruir o
restaurar los datos estropeados por cualquier tipo de incidente, como sería el
caso, por ejemplo, de que se produzcan casos de errores o desastres. Ejemplos de
© Editorial UOC 156 Escaneando la Informática
errores o desastres podrían ser que el disco que almacena la BD esté parcialmen-
te inutilizado debido a una avería de hardware, que se produzca un corte de luz
en plena actividad sobre la BD, o incluso que en nuestra empresa se produzca
un incendio que provoque la destrucción total de la BD.
libro, se indican las páginas del libro que hablan sobre cada concepto clave que
se decide indexar).
4.6. Seguridad
Ejemplos de autorizaciones
Tenemos que pensar que no hay ninguna razón para que todos los usuarios vean toda
la BD y que incluso, dependiendo del tipo de usuario, estarán permitidas sólo un cier-
to tipo de operaciones. En el ejemplo de la BD de la UOC, por ejemplo podría ser así:
1) Sólo los empleados del Departamento de Recursos Humanos tienen derecho a
modificar el atributo sueldo de los diferentes empleados de la UOC, como conse-
cuencia de un proceso de negociación.
2) Cada empleado de la UOC sólo puede ver su sueldo, y sólo lo tiene que poder con-
sultar.
En los apartados anteriores hemos visto breves pinceladas del sistema rela-
cional. Pero vista su importancia actual, en esta sección se quiere profundizar
un poco en las BD relacionales. Por eso, veremos de manera sucinta los funda-
mentos del modelo de datos relacional y presentaremos algunos ejemplos de
uso del lenguaje SQL.
Para consultar los datos, el SQL nos proporciona la sentencia SELECT. A par-
tir de las tablas creadas en el apartado anterior y las filas que se insertan, se pro-
ponen los ejemplos (en orden de dificultad creciente) de las siguientes consul-
tas SQL:
1) Consulta de todos los datos de la tabla de asignaturas:
6. Salidas profesionales
Hay una gran variedad de personas asociadas con la creación y el uso de BD.
En un extremo están los implementadores de SGBD,11 que son los que partici-
pan en la construcción del software especializado que incorpora los SGBD, y en
el otro extremo están los usuarios finales, que son los que usan los datos alma-
cenados en las BD mediante las interfaces de usuario adecuadas. Estos usuarios
finales pueden tener una procedencia formativa muy diversa, pero vista la
importancia de los datos como activo dentro de las empresas, tener unos cier-
tos conocimientos en BD se considera cada vez más importante.
Entre estos dos extremos de tipos de usuarios, se hallan los usuarios especia-
lizados, como serían los diseñadores de BD, los programadores de aplicaciones
que acceden a BD y los administradores de BD.
11. Hoy día, los implementadores de SGBD trabajan para grandes fabricantes como Oracle, IBM,
Microsoft, etc.
© Editorial UOC 166 Escaneando la Informática
12. La primera versión del modelo entidad-interrelación (modelo ER, del acrónimo en inglés,
Entity-Relationship) es obra de Peter Chen y data de 1976.
13. El Unified Modeling Language es un modelo para la construcción de software orientado al obje-
to que ha sido propuesto como estándar ISO por el OMG. La especificación actual (UML 2.0) data
del año 2003.
© Editorial UOC 167 Gestión de datos
Capítulo VI
1. Introducción
Para contestar a esta pregunta nada mejor que exponer en primer lugar algu-
nas de las definiciones existentes más populares y ver qué tienen en común.
rías). Hoy día, gracias a las técnicas actuales y a la madurez del área, se ha
conseguido minimizar mucho estos problemas y se puede considerar que la
crisis, a pesar de que no solucionada completamente, como mínimo está ya
en fase de superación, gracias, entre otros, a las aportaciones de la ingeniería
del software.
• Interrupción de los servicios de larga distancia de AT&T durante nueve horas debi-
do a una instrucción break errónea dentro de un programa escrito en C (1990).
• Retraso de dieciséis meses en la inauguración del aeropuerto de Denver por proble-
mas con el sistema automatizado de gestión del equipaje (1995).
• Un banco alemán pierde 2.300 millones de pesetas cuando un ejecutivo en prácti-
cas pulsó la tecla equivocada y el software transformó el dinero ficticio del ejercicio
en dinero real que se envió al mercado de valores.
Fijaos en que saber cuáles son las etapas del desarrollo no nos da informa-
ción sobre cómo tenemos que actuar con el fin de lograr con éxito el desarro-
llo de un nuevo software (¿en qué orden tenemos que hacer las etapas?, ¿las
podemos solapar o hay que hacerlas una a una?, ¿cuáles son las técnicas útiles
en cada una de las etapas?). La respuesta a estas preguntas depende del méto-
do de desarrollo de software (software development process en inglés) que esco-
jamos. Un método de desarrollo nos indica cuáles son las actividades (y su
resultado) que deben aplicarse en cada fase del ciclo de vida y cómo se tienen
que estructurar y organizar estas fases y sus actividades con el fin de producir
con éxito el software deseado.
Inicialmente, se propuso un método secuencial o en cascada (waterfall model
en inglés), en el que cada fase se completaba en su totalidad antes de iniciar la
fase siguiente. Si se encontraba algún error existía la posibilidad de volver a la
fase anterior para corregirlo y seguir a continuación con el proceso secuencial.
Pero enseguida se vio que era casi imposible aplicar este modelo a los proyectos
reales ya que raramente el cliente era capaz de comunicar todos los requisitos al
principio del proyecto. Además, el cliente tampoco veía ningún resultado hasta
el final del proceso, por lo que no había ningún tipo de feedback por su parte.
En el peor de los casos, el software generado no satisfacía las expectativas del
cliente y se tenía que empezar de nuevo todo el proceso. Como alternativa sur-
gieron posteriormente métodos basados en el prototipado (se muestra primero
un prototipo al cliente con el fin de obtener su visto bueno antes de desarrollar
el software completo) y los métodos iterativos e incrementales (en los que el soft-
ware se desarrolla de forma incremental; en cada iteración se produce una parte
del software final, lo cual da al cliente la oportunidad de ir evaluando las partes
del proyecto que se van completando).
3. Evolución histórica
de un mismo concepto (la clase) la parte funcional y de datos, por lo tanto tener
una especificación separada de ambos conceptos (como pasa con los métodos
de análisis y diseño estructurados) dificultaba mucho el desarrollo del software
orientado a objetos.
A raíz de eso, a finales de los ochenta y principios de los noventa, surgieron
los métodos de análisis y diseño orientados a objetos. Estos métodos intentan
aplicar los conceptos (y las ventajas) de la orientación a objetos ya en las fases
de análisis y diseño de la aplicación, por lo que se consigue una transición
mucho más suave entre las diferentes etapas del desarrollo. Algunos de los
métodos orientados a objetos más conocidos son el OOD (Object-Oriented
Design; G. Booch), el OMT (Object Modeling Technique, J. Rumbaugh) y el OOSE
(Object-Oriented Software Engineering; I. Jacobson). Posteriormente, todos estos
métodos (y muchos otros) se han diluido dentro del UML (Unified Modeling
Language), al cual dedicaremos toda una sección en este mismo capítulo. La pri-
mera versión del UML apareció en 1997. Desde entonces se han ido generado
diferentes versiones hasta llegar a la versión 2.0 (finales de 2004), que es la ver-
sión que se utiliza actualmente. El UML es una especificación estándar del
OMG.4
Es importante destacar que, de hecho, realmente lo que se ha unificado no
son los métodos en sí sino las notaciones de los diferentes métodos. Es decir, el
UML nos permite modelar aspectos del software de forma que todos los ingenie-
ros de software puedan captar la misma semántica del modelo. No obstante, el
UML no nos dice cuáles son los aspectos del software que es importante mode-
lar, ni con qué nivel de detalle, ni en qué fase hay que definirlos... por lo tanto
no se puede considerar un método de desarrollo de software, un error común,
por abuso del lenguaje, entre muchos miembros de la comunidad. Actualmente,
no hay un método de desarrollo orientado a objetos único, aunque el UP
(Unified Process), propuesto por los mismos autores del UML, es uno de los más
comunes.
un método unificado. Poco después, sin embargo, vieron más factible proponer un
lenguaje (notación) unificado como respuesta a la petición del OMG de encontrar un
lenguaje de modelización orientado a objetos estándar. A continuación Rational sacó
la herramienta Rational Rose, que durante muchos años ha sido una de las herramien-
tas de modelización en UML más utilizadas.
4. Presente de la IS
5. Las herramientas CASE (Computer Aided software Engineering) son todas las que nos ayudan
durante el desarrollo de software. En www.objectsbydesign.com se puede encontrar una lista de
herramientas CASE útiles para métodos de desarrollo que utilicen la notación UML (visitado en
octubre de 2006).
© Editorial UOC 177 Ingeniería del software
La tienda VamosAComprar
Nos piden que desarrollemos un software que permita gestionar los clientes habitua-
les de la tienda VamosAComprar. En concreto se quiere recoger los datos de los clien-
tes habituales y de las compras (ventas desde el punto de vista de la tienda) que
hacen. Un cliente es habitual cuando hace como mínimo una compra al mes. De
cada venta que se hace a un cliente se necesita el importe total y los productos que
forman parte de ella (sólo hay que saber los productos, no cuántas unidades de cada
producto se han vendido). Algunos clientes se clasifican temporalmente como moro-
sos si tienen alguna compra pendiente de pagar. Aparte de poder gestionar toda esta
información, el software tiene que generar un listado semanal con el resumen de ven-
tas agrupado según el cliente.
6. También conocido como RUP (Rational Unified Process) debido a que sus tres creadores trabaja-
ban en Rational en el momento de definir el método.
© Editorial UOC 178 Escaneando la Informática
inglés) general que se pueda especializar según las necesidades de cada empresa
(los métodos adhoc que comentábamos antes).
Sus principales características son:
– Es un método dirigido por los requisitos del sistema, expresados en la
forma de casos de uso (se dice que el proceso es use-case driven). Cada caso
de uso representa una de las funcionalidades del sistema que el usuario
necesita (y que, por lo tanto, el software final tendrá que implementar).
Partiendo de esta especificación inicial de los casos de uso, se lleva a cabo
todas las demás actividades de desarrollo.
– Es iterativo e incremental. El proyecto no se desarrolla todo de golpe sino
que el desarrollo se divide en una serie de iteraciones, en la que cada itera-
ción genera (o amplía) una parte del software final (que, por lo tanto, va
creciendo de forma incremental, primero se crea una primera versión del
software con una sola funcionalidad, después se añade una segunda y así
sucesivamente). En cada iteración, los desarrolladores tienen que escoger
cuáles son los requisitos (casos de uso) que quieren tratar dentro de la ite-
ración. Al final de ésta, se habrá generado la parte del sistema que imple-
menta los casos de uso incluidos dentro de la iteración.
– Reconoce la importancia de definir la arquitectura de software.7 En la sección
1 ya hemos comentado que la fase de diseño es necesaria con el fin de
adaptar la especificación del software a la plataforma tecnológica con la que
se quiere implementar y ejecutar el sistema. El UP defiende que los arqui-
tectos estén plenamente involucrados en todas las fases de desarrollo del
proyecto.
– Uso de un lenguaje de modelización visual, necesario para facilitar la
comunicación entre los miembros del proyecto. Abogan por el uso del
UML.
– Calidad del software generado. La calidad se contempla como una parte del
mismo método y no como una etapa al final del desarrollo.
– Integración de la gestión, la configuración y los cambios en el proyecto
dentro de las iteraciones. Proponen tener en cuenta estos aspectos en cada
una de las iteraciones.
siones tomadas hasta aquel momento son correctas. En nuestro caso, podríamos
escoger como ejemplo crítico el caso de uso de gestionar clientes (de hecho, la
elección debería tener en cuenta la opinión del cliente, es decir, el tendero en
nuestro caso) y desarrollarlo completamente. El resultado se le muestra al ten-
dero para que nos dé su opinión. Así podemos ver si “vamos por el buen cami-
no” antes de seguir desarrollando el resto de los casos de uso.
En la fase de construcción se desarrolla el resto de los casos de uso y se prueba
todo el sistema a fondo. En esta fase se implementarían el resto de los casos de
uso no desarrollados ya en la etapa anterior (teniendo en cuenta el feedback que
hemos recibido).
Por último, en la fase de transición se facilita a la comunidad de usuarios el
cambio del viejo sistema al nuevo.8 Eso incluye pruebas de versiones beta del
software por parte de un subconjunto de usuarios, ejecución en paralelo de los
dos sistemas para detectar errores, migración de los datos del sistema viejo al
nuevo (si hace falta), formación a los usuarios, completar la documentación,
etc. En nuestro ejemplo, dentro de esta fase, se le enseñaría al tendero el fun-
cionamiento del nuevo programa y se dejaría todo a punto para empezar a uti-
lizarlo (eso incluye, si es necesario, migrar los datos existentes del formato anti-
guo utilizado por el anterior programa al formato utilizado por el nuevo).
Dentro de cada fase se pueden hacer n iteraciones. En cada iteración se hacen
todas (o algunas) de las posibles actividades definidas por el método (core work-
flows, según la terminología de UP). Las principales actividades según este méto-
do (figura 2) son la recogida de requisitos,9 el análisis, el diseño, la implementa-
ción y las pruebas. Aparte de éstas, UP también define las tareas de apoyo
siguientes (core supporting workflows): configuración y gestión de los cambios,
gestión del proyecto y gestión del entorno, que pretenden ayudar a asegurar la
calidad del software y minimizar los riesgos durante su construcción, dos de los
objetivos más importantes dentro de la ingeniería del software.
Según la iteración, cada actividad tendrá más o menos importancia. Por
ejemplo, en las iteraciones más iniciales, la recogida de requisitos y el análisis
tendrán más importancia que la construcción del sistema, tendencia que se
invierte a medida que vamos avanzando en el tiempo. Sin embargo, es impor-
8. Actualmente la gran mayoría de las empresas ya están informatizadas, por lo tanto la mayoría de
los proyectos tienen como objetivo reemplazar un sistema obsoleto por uno nuevo.
9. Fijaos en que este método separa la recogida de requisitos de su especificación “formal” en la fase
de análisis.
© Editorial UOC 181 Ingeniería del software
tante recalcar que incluso las iteraciones finales también incluyen, aunque sea
mínimamente, la parte de análisis y diseño ya que podemos necesitar perfeccio-
narlo a raíz de problemas o cambios descubiertos durante la iteración.
Siguiendo un razonamiento similar, se puede ver que la gestión de los cambios
es más importante en las últimas iteraciones (en las que ya tenemos un softwa-
re desarrollado y en las que, por tanto, el usuario puede ver más fácilmente si el
producto se ajusta o no a sus necesidades) que al principio, aunque también al
inicio se debe tener en cuenta (hablando con el cliente en la fase de análisis no
es raro descubrir que algunos de los requisitos que nos dio se entendieron de
forma errónea y que por lo tanto se tiene que rehacer la parte del análisis corres-
pondiente).
Según sus propios impulsores, el UML es “un lenguaje gráfico para visualizar,
especificar, construir y documentar los artefactos (componentes) de sistemas
que involucran una gran cantidad de software”. El UML es un lenguaje muy
expresivo y que permite definir todas las vistas (perspectivas)10 necesarias para
desarrollar software (la vista de los datos que hay que gestionar, la vista del com-
portamiento del software, la vista de la arquitectura...), por tanto cubre la espe-
cificación de todas las decisiones de análisis, diseño e implementación necesa-
rios. Además, el mismo lenguaje también define un mecanismo de extensión
que permite adaptar el UML a entornos con necesidades muy específicas.
La importancia del UML radica en que detrás de cada elemento gráfico que
forma parte del lenguaje hay una semántica bien definida que permite que una
especificación UML escrita por un desarrollador pueda ser perfectamente enten-
dida por otro, sin ambigüedades. Por lo tanto, hay que ser muy preciso en el uso
de los diferentes elementos gráficos disponibles y escoger en cada momento el
que mejor representa la semántica que se quiere expresar.
El UML no es un lenguaje formal pero sí que define una serie de reglas que
tienen que cumplir todas las especificaciones definidas en UML a fin de que
éstas puedan ser consideradas sintácticamente correctas.
10. Una vista es una abstracción que permite concentrarnos en algún aspecto concreto del softwa-
re e ignorar el resto.
© Editorial UOC 182 Escaneando la Informática
Hay que observar que cada caso de uso se define como un óvalo con el nom-
bre del caso de uso y que el actor se define usando un stick man. Esta represen-
tación no nos la inventamos nosotros sino que la define el mismo UML (y por
lo tanto cualquier desarrollador que conozca el UML entenderá correctamente
el diagrama, aunque no lo haya hecho él). Es posible definir relaciones entre los
diferentes casos de uso cuando, por ejemplo, uno puede reutilizar la funciona-
lidad definida por el otro. Este es el caso de la relación entre los casos de uso
crear nueva venta y cobrar venta. La funcionalidad de cobrar venta puede ser eje-
cutada directamente por el tendero para cobrar una venta retrasada, pero tam-
bién se puede reutilizar esta funcionalidad para gestionar el cobro de una nueva
venta. Por ello se define una relación de inclusión entre los dos. De esta mane-
ra nos ahorramos duplicar la definición del proceso de cobro como parte del
caso de uso crear una nueva venta.
A cada caso de uso no trivial se asocia también una descripción textual en la
que se explica con más detalle la funcionalidad representada por el caso de uso.
© Editorial UOC 184 Escaneando la Informática
El tendero también tiene que saber cuáles son las ventas que se han hecho a
cada cliente en particular. Como venta y cliente ya son clases existentes dentro
del diagrama, para guardar esta información hay que relacionar la clase Cliente
con la clase Venta a través de la asociación HaComprado. Como propiedades de
esta asociación podemos definir que cualquier cliente ha hecho como mínimo
una compra (venta desde el punto de vista del tendero) pero que no hay un
máximo definido (el cliente puede hacer todas las compras que quiera). Eso se
indica añadiendo la multiplicidad “1..*” al lado de la clase Venta (la notación
UML define que el asterisco indica que no hay límite superior en la relación).
De la misma manera, definimos que toda venta pertenece a un único cliente
añadiendo un “1” al lado de la clase Cliente. En cambio la relación entre Venta
y Producto es “1..*” en el lado de producto (una venta puede contener muchos
productos pero como mínimo tiene que contener uno) y es “0..*” en el lado de
venta (puede ser que nos llegue un producto nuevo; por lo tanto, este produc-
to no estaría todavía relacionado con ninguna venta).
El diagrama también incluye una relación de herencia (también llamada
relación de generalización) entre las clases Cliente y Cliente moroso. Con esta
relación indicamos que los clientes morosos son un tipo especial de clientes
(todos los clientes morosos son de hecho clientes pero, afortunadamente, no
todos los clientes son clientes morosos). Por lo tanto de un cliente moroso guar-
daremos toda la información definida en la clase Cliente (por eso no repetimos
los atributos de cliente cuando dibujamos la clase Cliente moroso) más la infor-
mación del atributo pendiente, que es un atributo específico de los clientes
morosos.
La barra inclinada delante de pendiente indica que el valor de este atributo
es derivado. Eso quiere decir que su valor se puede calcular a partir de otras pie-
zas de información ya existentes dentro del diagrama. En este caso, el valor de
pendiente de un cliente se define como la suma del importe de las ventas del
cliente aún no pagadas. Esta definición se puede hacer simplemente en lengua-
je natural o se puede formalizar utilizando un lenguaje formal como el OCL
(Object Constraint Language).11
De forma parecida, también tenemos que añadir al diagrama todas las res-
tricciones de integridad que corresponda. Las restricciones de integridad nos sir-
11. El OCL es un lenguaje textual que permite complementar los diagramas UML con toda la infor-
mación que no se puede expresar gráficamente.
© Editorial UOC 186 Escaneando la Informática
ven para definir estados incorrectos de los datos del software. Podemos ver las
restricciones como una condición booleana que tiene que ser cierta siempre.
Cuando una de estas condiciones se convierte en falsa quiere decir que hay un
error en los datos del sistema. Un ejemplo de restricción sería “todos los produc-
tos tendrán un precio >5”. En este caso, cada vez que damos de alta (o actuali-
zamos) un producto de forma que su nuevo precio sea inferior a cinco el soft-
ware tiene que detectarlo y avisar al usuario del error. Fijaos en que la multipli-
cidad de las asociaciones es también un tipo de restricción (por ej. definen el
número máximo y mínimo de relaciones entre clientes y ventas). En general,
sin embargo, las restricciones no se pueden definir gráficamente sino que hay
que hacerlo textualmente, ya sea en lenguaje natural o en OCL.
5. Tendencias
5.3. Reutilización
Como toda persona tiene como mínimo un padre/madre, nos vemos obligados
a entrar también a Julia que es la madre de la Georgina. Pero, claro, al entrar a
Julia nos vemos obligados a entrar también a la madre de Julia... Para evitar este
elemento recursivo infinito tenemos que cambiar el diagrama de clases con el
fin de permitir que dentro de nuestro sistema haya personas sin padre (es decir,
personas de quienes, por el motivo que sea, no nos interesa saber quiénes son
sus padres). Hay que tener en cuenta también estos posibles errores a la hora de
verificar un modelo, de lo contrario cuando lo hayamos implementado y empe-
cemos a ejecutar el software resultante nos podemos encontrar con sorpresas
desagradables (y entonces ya será más costoso arreglar los errores).
14. Ejemplos de métodos ágiles, aparte de XP, son: SCRUM, Dyanmic Systems Development
Method, Crystal Methodologies, Feature- Driven Development y Adaptive software Development.
15. El Agile Manifesto es un conjunto de principios y valores que tienen que cumplir todos los
métodos “ágiles” y que surgieron a raíz de una reunión que tuvieron los principales representantes
de cada método en el año 2001.
© Editorial UOC 195 Ingeniería del software
Otro aspecto importante del XP es que defiende que de las cuatro variables
que pueden definir un proyecto (coste en inversión y recursos, tiempo, calidad
y conjunto de funcionalidades) sólo tres las puede escoger el cliente y/o el jefe
de proyectos. La cuarta es responsabilidad del equipo de desarrollo (si se mar-
can los recursos, la calidad y las funcionalidades, el equipo de desarrollo indica-
rá el tiempo que tardará en desarrollar aquellas funcionalidades con los recur-
sos y los plazos previstos).
El UML es un lenguaje generalista, es decir, está pensado para ser útil inde-
pendientemente de cuál sea el dominio del sistema de software que tenemos que
construir (comercios, bancos, asseguradores,…). Precisamente por éstos motivo,
como ya hemos comentado anteriormente, el UML es el lenguaje de modeliza-
ción más usado, con diferencia, hoy en día. De todos modos, esta misma voca-
ción generalista hace del UML un lenguaje muy amplio y complejo de dominar
en la su totalidad. Eso ha hecho que ciertas comunidades que desarrollan soft-
ware para dominios muy concretos, como por ejemplo el sector de la automo-
ción, prefieran desarrollar y utilizar lenguajes de modelización más pequeños y
mejor adaptados a los conceptos y semántica de aquel dominio.16 Este tipo de
lenguajes son los que denominamos lenguajes específicos de dominio (domain-
specific languages en inglés).
La ventaja de este tipo de lenguajes es que permiten modelar utilizando direc-
tamente la terminología y los conceptos utilizados en aquel dominio concreto
cosa que facilita el trabajo de los analistas y diseñadores y también la compren-
sión de los modelos por parte del cliente. El inconveniente es, obviamente, el
coste de crear estos nuevos lenguajes (y las herramientas por manipularlos) ya
que en la gran mayoría de los casos estos lenguajes no están estandarizados sino
que se tienen que diseñar partiendo de cero. Por suerte, tecnologías actuales
como EMF (Eclipse Modeling Framework) y GMF (Graphical Modeling Framework)
facilitan la definición de lenguajes específicos de dominio y la creación automá-
tica de entornos de modelización para los mismos.
16. El propio UML también ofrece la posibilidad de adaptar su semántica a dominios específicos
mediante el uso de profilas pero sólo de una forma limitada.
© Editorial UOC 196 Escaneando la Informática
No hay ninguna regla de oro que permita decidir cuándo es mejor utilizar un
lenguaje reconocido pero generalista como el UML y cuándo es mejor crearse un
mismo un lenguaje más adaptado a nuestras propias necesidades. Aconsejaría
utilizar el UML siempre que sea posible y sólo cuando realmente el UML no se
adapte bien al dominio para el cual tenemos que desarrollar el software en cues-
tión tomar la decisión de adoptar un lenguaje específico de dominio.
6. Salidas profesionales
Las perspectivas laborales de los expertos en IS son mucho buenas.17 Los dife-
rentes perfiles profesionales coinciden básicamente con las diferentes fases del
ciclo de vida del desarrollo del software (programador, analista, jefe de proyec-
tos...). La evolución laboral de un/a ingeniero/a de software dentro de la empre-
sa se acostumbra a producir en el sentido inverso al orden de las correspondien-
tes etapas dentro del ciclo de vida del desarrollo del software.
Así pues, se acostumbra a empezar trabajando como programador. Dada una
especificación parcial del sistema que tiene que desarrollarse, el programador es
el encargado de implementar aquella parte del sistema utilizando el lenguaje de
programación y el tipo de plataforma escogido.
El responsable de definir esta especificación se llama analista. A partir de un
conjunto de requisitos dados por el cliente, el analista define qué tiene que
hacer el sistema (qué funcionalidad tiene que ofrecer, qué información tiene
que gestionar...) con el fin de dar respuesta a estos requisitos. Esta especifica-
ción se define usando el método y la notación escogidos (por ejemplo, UP
como método y UML como notación).
Es importante subrayar que la figura del diseñador no acostumbra a existir
como tal. Las tareas propias de la fase de diseño (adaptar el análisis a las capa-
cidades del lenguaje y la plataforma tecnológica con la que se quiere implemen-
tar el sistema) se asignan o bien al programador o bien al analista (o bien al
administrador de la base de datos para la parte que tiene que ver con la gestión
17. El ingeniero de software es la profesión más valorada en los Estados Unidos, según la revista
Money. http://money.cnn.com/magazines/moneymag/bestjobs/. Visitada en noviembre de 2006.
© Editorial UOC 197 Ingeniería del software
de los datos del sistema). En muchos casos, se opta también por buscar directa-
mente a un profesional con el perfil de analista/programador. En estos casos
se espera que la misma persona sea capaz de realizar las tareas de analista y de
programador. Normalmente, en estos casos se indica ya explícitamente cuál es
el lenguaje con el que se implementará el sistema, por ej: “Analista/programa-
dor en Java EE”, ya que conocer el lenguaje de implementación elegido es un
requisito indispensable para poder ocupar este perfil.
Para concluir, la última opción es ser jefe de proyectos. El trabajo principal
de un jefe de proyectos es planificar el proyecto de desarrollo y gestionar el
grupo humano que tiene a sus órdenes con el fin de asegurar que el desarrollo
cumple los plazos establecidos con la máxima calidad posible. Es el responsable
de calcular y fijar estos plazos18 en función de la complejidad de los requisitos
expresados por el cliente y de los recursos de que disponga.
Cada paso en la evolución laboral nos aleja más de las tareas puramente tec-
nológicas. Una alternativa es evolucionar hacia la especialización máxima en
una tecnología determinada. Por ejemplo, se podría ser un experto en tecnolo-
gías Java EE, de forma que cualquier proyecto de desarrollo que tuviera que uti-
lizar Java EE pudiera requerir nuestro conocimiento a la hora de decidir qué
arquitectura sería la mejor para el proyecto, qué tecnologías Java EE
18. Desgraciadamente, es frecuente que esta decisión se vea parcialmente condicionada por otras
áreas de la misma empresa, que quieren asegurar que el cliente acabe aceptando la propuesta, a ries-
go de tener dificultades posteriores para poder cumplir los plazos.
© Editorial UOC 199 Sistemas de información (en las organizaciones)
Capítulo VII
1. Introducción
Ahora ya es casi trivial atreverse a elaborar una definición (ya hemos avisa-
do: es sólo nuestra definición) de Sistema de Información (de ahora en ade-
lante SI) en la que se mencionan las cuatro palabras que acabamos de definir:
Esta definición de TI, como veis, agrupa todo el hardware y el software, las
infraestructuras de base en forma de redes e incluso los documentos para hacer-
lo funcionar todo. Considera, pues, las TI como un todo, porque lo importante
es que estén disponibles para el SI, y, transitivamente, para la organización.
Puesto que posiblemente una imagen valga más que mil palabras, en la figu-
ra 1 adoptamos y adaptamos el esquema de Simon, que resume todo lo dicho
hasta ahora.
Pero ya dijimos en la introducción que no sería todo tan fácil. Muchos auto-
res se encuentran más cómodos dibujando los SI y las TI como una especie de
dualidad interdependiente (salvando las distancias, como el yin y el yang orien-
tales, eso sí, omitiendo la idea de oposición inherente a este concepto). Es decir,
no es tanto que los SI incluyan y usen las TI, sino que ambos forman parte de
lo mismo. De hecho, en entornos anglosajones, todavía se va más lejos y se
habla casi indistintamente de information technology y de information systems...
Por todo ello, fijaos que, en un ejercicio de permeabilidad, hemos pintado los
© Editorial UOC 204 Escaneando la Informática
límites de los diferentes conjuntos (procedimientos, TI, SI) con líneas disconti-
nuas (y algunos incluso en forma de nube). Son y los consideramos conjuntos
conceptualmente claros, pero no son espacios estrictamente delimitados, sino
más bien áreas porosas donde unas pueden filtrarse en las otras...
Para no complicarlo, en el resto del capítulo intentaremos seguir los concep-
tos tal como aparecen en la figura 1. Sin embargo, más adelante tendremos que
volver a hablar de otra acepción de Sistema de Información.
parado con la situación en otros países). Este cuarto cuadrante es el que requie-
re una gran amplitud de miras, una receptividad a las posibilidades tecnológicas,
una observación creativa e innovadora de lo que sucede en nuestro entorno. Y
aquí la estrategia de la organización, a diferencia del cuadrante 3, se puede ver
modificada, alimentada y mejorada por las posibilidades que se derivan de los SI.
Llegados a este punto, es decir, una vez contrastado el papel fundamental
que tienen en la actualidad los SI en las organizaciones, tanto en los proce-
sos de todo tipo (todos dependen de los SI) como en la estrategia (la conoci-
da y la que está por descubrir), la implicación es clara: el management (la
dirección y gestión) de los SI en las organizaciones no puede quedarse al mar-
gen de la organización, como si fuera sólo un anexo a ésta, algo que se puede
olvidar o dejar en manos de (cualquier) tercero, sin una vigilancia estrecha...
Es decir, se trata de alinear la estrategia de negocio (“a qué clientes servi-
mos, con qué productos, a dónde se dirige nuestro negocio”) con la estrate-
gia de SI (“qué SI necesitamos para soportar nuestros procesos de negocio y
nuestra estrategia, qué información necesitamos para tomar decisiones y qué
TI nos permite implementar todo ello”).
La idea de hacer convergir la estrategia de SI con la de la organización es lo
que se ha bautizado como alineación estratégica de los SI y surgió de las observa-
ciones del profesor Morton en el MIT (Massachusetts Institute of Technology):
las empresas que no obtenían beneficios para el negocio de sus inversiones en
TI eran aquellas en las que no existía un “ajuste” entre las estrategias de nego-
cio y las estrategias de SI y TI. Hoy en día, es un análisis que se utiliza amplia-
mente para diagnosticar el estado actual de los SI en una organización y para
realizar planes de futuro.
• En su origen y hasta finales de los años sesenta, el objetivo de los SI era dar
apoyo a los departamentos, especialmente en funciones como la contabili-
dad o la administración de personal. Se automatizaron los procesos, general-
mente como aplicaciones denominadas corporativas, de un solo uso. Redes pro-
pias de cada empresa conectaban los sistemas centrales con terminales de telepro-
ceso (pantallas “simples”). A esta época corresponde el desarrollo de “grandes” sis-
temas de hardware (mainframe), con bases de datos, sistemas operativos y lengua-
jes de desarrollo propios de estos sistemas (sistemas denominados propietarios),
siempre en un entorno centralizado, único y operado mediante especialistas.
• La segunda etapa, el mundo de los microordenadores (años setenta y prin-
cipios de los ochenta), fue en realidad una variante de la anterior. Permitió
extender la filosofía del mainframe a negocios separados o en territorios
alejados geográficamente. Los usuarios empezaron a ganar conocimiento y
poder sobre los SI y la organización de la función informática se volvió más des-
centralizada o, por lo menos, más “federal”.
• Durante los años ochenta y entrados los noventa, los negocios indepen-
dientes y los grandes departamentos empezaron a disponer de sus propios siste-
mas y los usuarios aumentaron su autonomía y su capacidad de proceso.
Aparecieron los primeros sistemas estándar, independientes de proveedor
(Unix) y, sobre todo, el PC. Se desarrollaron arquitecturas cliente/servidor, sobre
redes más pequeñas y con mayor capacidad. Es la época de la informática dis-
tribuida. La informática se pone ya al servicio de los directivos y los usua-
rios. Aparecen herramientas de análisis y de ayuda a la toma de decisiones, y
paquetes de software integrados por la gestión integral de las organizaciones.
© Editorial UOC 211 Sistemas de información (en las organizaciones)
1. De hecho, Nolan es el precursor de este modelo. Su propuesta es mucho más detallada y hoy es
perfectamente vigente, aunque su detalle se escapa de los objetivos de este texto.
© Editorial UOC 212 Escaneando la Informática
6. Un catálogo de los SI
software”...). Pero hemos dicho que intentaríamos ponerlo fácil. Así que no nos
inventaremos ningún nombre y os pediremos que si oís hablar de SI en el con-
texto de soluciones informáticas, tengáis presente que normalmente se están
refiriendo a los productos o soluciones software (es decir, un componente de TI)
que cubren una parte más o menos completa del SI de una organización.
Nosotros nos referiremos a este producto software en cursiva (SI) para
intentar diferenciarlo del concepto general de sistema de información.
¿Cómo son estas soluciones software? Pueden ser soluciones individuales o
soluciones integradas.
Las soluciones individuales todavía existen para temas muy específicos de un
negocio, pero para temas muy comunes ya están cayendo en desuso a favor de las
soluciones integradas. Estas soluciones individuales se conciben tan aisladamen-
te y focalizadamente que cuando hace falta que interactúen entre sí (es decir,
cuando es necesario que la información de salida que genera una de ellas sea tra-
tada como la entrada de otra) entonces es necesario traspasar los datos entre los
SI, a menudo después de haberlos transformado mediante un software específico
a modo de puente entre ambos productos (aunque también es cierto que la apari-
ción de estándares de intercambio de información –como el XML– ayudan cada
vez más a prescindir de tales puentes). Es decir, los sistemas no forman un todo,
ni están directamente integrados entre sí. Tradicionalmente, estos sistemas indi-
viduales suelen denominarse aplicaciones informáticas o aplicativos.
Desde hace más de dos décadas, en un intento por integrar los diferentes apli-
cativos (y las funcionalidades a las que responden) y evitar los puentes entre
ellos, ya disponemos de SI (productos) más complejos y globales con un ámbi-
to de acción muy amplio. Son los que denominaremos SI integrados (y que
también se conocen con nombres del estilo de soluciones integradas o paque-
tes integrados).
Los SI integrados se venden como modulares y adaptables a cada organización
que quiere utilizarlos. Acerca de esta adaptación al cliente (o parametrización o
“customización” como también se conoce) existe un negocio, un conjunto de
prácticas y un conjunto de teorías que encajan en la implantación de sistemas,
puesto que no se trata de desarrollo de software propiamente dicho, sino de la
adaptación de soluciones de software ya existentes, a partir de su ajuste al ámbi-
to de aplicación de la organización y de ponerlas en marcha (implantarlas) en
ese ámbito.
Estos SI, fruto de la evolución tecnológica y con independencia de si son SI
integrados o aplicativos, hoy por hoy pueden presentarse en diferentes formas:
© Editorial UOC 215 Sistemas de información (en las organizaciones)
2. En el capítulo sobre bases de datos se ha hablado ampliamente y con detalle de las transacciones
de datos.
© Editorial UOC 216 Escaneando la Informática
algunos fabricantes que incorporan estas siglas (por ejemplo SAP-SRM), no son
todavía demasiado reconocidos y suelen ser una versión de los SCM orientada
a los proveedores y/o a organizaciones del sector de servicios (no tanto del sec-
tor de producción de bienes y artículos, como es el caso de los SCM).
Como hemos dicho, todas estas categorías son SI integrados. Inicialmente son
más caros que los aplicativos individuales (a pesar de que a medio y a largo plazo,
pueden no resultarlo tanto) y requieren un esfuerzo de inversión de tiempo y
dinero para su implantación, que muchas organizaciones pequeñas o sin grandes
recursos económicos no se pueden permitir. Sin embargo, con el tiempo están
apareciendo soluciones integradas dirigidas a estas organizaciones, bien desde la
propia industria formal –que se da cuenta de que no puede dejar escapar este
mercado–, pero también desde el terreno del software libre (como OpenERP o
OpenBravo).
En cualquier caso, antes de finalizar este apartado, tenemos que volver a
hablar de la laxitud actual de estas etiquetas: muchas de las soluciones exis-
tentes, a pesar de identificarse con una de ellas, la exceden tanto desde el
punto de vista de la actuación (por ejemplo, muchos ERP incluyen funciona-
lidades propias de los CRM o de los SCM) como de la decisión (tienen módu-
los que superan la gestión de transacciones y dan servicios de decisión tácti-
ca o estratégica).
tir de indicadores estadísticos básicos) las que dan una perspectiva de lo que sig-
nifican en conjunto y las que, en consecuencia, facilitan a los responsables la
toma de sus decisiones.
Sin embargo, debemos ser cautelosos porque las transacciones diarias son
muy numerosas y si no se agregan, si no se tratan o si no se presentan adecua-
damente, pueden producir un efecto de sobreinformación o, incluso, generar
información incorrecta que puede resultar perjudicial. Los sistemas decisiona-
les, pues, tienen que aplanar, cocinar, domesticar estos volúmenes de datos y
convertirlos en información útil.
En contraste con las tareas operativas transaccionales típicas, a menudo de
carácter manual, los procesos a partir del que se toman decisiones son tareas
intelectuales humanas mucho más complejas y difíciles de definir en toda su
extensión y detalle, y, consecuentemente, imposibles de automatizar comple-
tamente con un SI. Ante tal imposibilidad, lo que hace falta es potenciar la
actuación humana, apoyando su tarea de decisión. Eso es lo que pretenden
hacer los SI decisionales.
Existe un conjunto de tecnologías de software que está en el centro de todos
estos SI decisionales, como OLAP, datawharehouse, datamining o information
navigation. Junto con los diferentes tipos de SI decisionales, configuran la nube
en la que giran las soluciones llamadas de Business Intelligence (BI).
El BI se define como un conjunto de estrategias y herramientas que permite
gestionar y crear conocimiento mediante el análisis de los datos existentes en
una organización para dar apoyo a la toma de decisiones sobre el negocio. Una
solución BI completa permite: a) observar lo que está pasando; b) entender por
qué está pasando; c) predecir lo que pasará; d) ayudar a elaborar una propuesta
sobre lo que tendría que hacer el equipo; y e) ayudar a decidir qué camino debe
seguirse.
El mercado de BI es bastante maduro y entre las soluciones comerciales líde-
res en BI que incluyen, con más o menos extensión, los niveles táctico y estra-
tégico, tenemos IBM Cognos, Business Objects y las de Oracle y Microsoft. En
menor grado se encuentran Information Builders, MicroStrategy y las de SAP y
SAS.
Estas soluciones responden de una u otra manera a las clasificaciones con-
ceptuales de SI que presentamos a continuación. Decimos que las siguientes son
clasificaciones conceptuales porque no son universalmente utilizadas por la
industria para explicar o etiquetar sus productos:
© Editorial UOC 219 Sistemas de información (en las organizaciones)
Antes de entrar en los roles de management de los SI, planteamos una breve
discusión sobre el significado de “dirigir”. Nosotros nos acogemos a las defini-
ciones que indican que las funciones clásicas atribuidas a la dirección de cual-
quier área son:
© Editorial UOC 224 Escaneando la Informática
Por todo ello, las clasificaciones sobre los roles de management que plantea-
mos a continuación pretenden sólo facilitar la explicación. Las presentamos por
separado, pero en ningún caso queremos decir que los roles tengan que ser ejer-
cidos cartesianamente por personas diferentes, o que un rol no interfiera en el
otro. No pretendemos realizar una división clasista de los roles (un director estra-
tégico frente a un jefe de proyecto o frente a un jefe de área funcional). Con lo que
hemos dicho en el párrafo anterior, queda claro que cualquier director tiene que
bajar a la ejecución en algún momento y que su acción estratégica en temas con-
cretos (y también su ejemplo) son claves en el funcionamiento real de su área.
Hecha esta aclaración, pasamos a explicar los roles de management de SI.
Hemos dicho en la presentación de este capítulo que para conceptualizar, organi-
zar y gestionar los SI y sus TI, hace falta una función clara de dirección y gestión.
Pero ¿cuáles son exactamente estas funciones? ¿Quién las tiene que ejecutar? ¿Y
bajo qué etiqueta identificamos estos roles?
7.1.1. El CIO
El CIO, además de transmitir estas decisiones a los que dependen de él, tam-
bién las tiene que comunicar y compartir con la alta dirección de la organiza-
ción. Y, a menudo, tienen que ser tomadas en el marco de la dirección general
de la organización (el consejo de administración, el comité de dirección o la
forma que adopte la cúpula directiva). De hecho, muchas organizaciones ya han
entendido que tienen que incluir a los CIO en este consejo de administración
(junto con el director general, el jefe de marketing, el jefe de finanzas o el jefe
de personal, entre otros) y no sólo invitarlo puntualmente a presentar sus pro-
puestas. Es posiblemente una de las mejores formas de facilitar la alineación
estratégica.
• Realizar prospectiva, analizar y apostar por las innovaciones tecnológicas emergentes con posibilidades
futuras a medio o largo plazo.
• Determinar el portfolio (o cartera) de proyectos de TI para asegurar su ejecución y su impacto.
• Potenciar nuevos negocios, nuevos modelos de gestión interna y nuevos modelos de relación entre
clientes y proveedores, basados en las TI.
• Descubrir las necesidades reales de información y de SI (SI en cursiva, es decir, de soluciones software
para atender a estas necesidades de información), descartando los apriorismos sobre necesidades de
información y SI que nadie en la organización puede justificar realmente. Ello es vital tanto al afrontar la
construcción de un SI nuevo –por un acontecimiento singular y único, por ejemplo, dónde hay que evi-
tar inversiones inútiles–, como al rediseñar un SI existente –para incrementar su eficiencia global–.
• Estructurar la función informática de la organización y, en especial, las decisiones sobre las funciones
que se mantienen internamente y las que se suministran externamente (mediante políticas de outsour-
cing, subcontratación, externalización...).
• Potenciar los negocios actuales, mejorando e innovando los procesos de gestión y el acceso a los mer-
cados.
• Fijar los criterios y decidir acerca del nivel de servicio, la seguridad, la privacidad y la protección de
la información.
• Priorizar las decisiones de inversión en TI.
• Garantizar que se reconozcan y aprovechen las oportunidades que las TI ofrecen a la organización.
Sin embargo, eso no invalida la necesidad de este plan, sino que reclama que
el plan:
• Disponga de mecanismos previstos de ajuste y autocorrección que asegu-
ren su consistencia, pero también la aplicación de buenas dosis de realis-
mo, sentido común, creatividad, innovación, oportunismo y pensamiento
informal, como apuntan Ward y Peppard;
• Refleje lo mejor posible, lo que son las necesidades más permanentes, los
temas de fondo (que normalmente coinciden con los procesos nucleares
del negocio). Con ello, durante su desarrollo se pueden producir cambios
de velocidad en algunos proyectos o de énfasis en algunas orientaciones,
pero no un gran cambio en su contenido u orientación principal.
Un proyecto es:
• un conjunto de actividades...
• ...desarrolladas durante un tiempo...
• ...por un conjunto de personas...
• ...con un presupuesto económico determinado...
• ...para obtener un producto, un servicio o un resultado único.
Es bien sabido que muchos proyectos fallan.3 Es decir, que no cumplen algu-
nas o todas las magnitudes que mencionábamos más arriba. Pero en muchos
casos ello es debido a una gestión inadecuada más que a un producto que no
funciona. Entre las causas hay algunas clásicas: 1) la falta de participación y de
compromiso entre el cliente y los usuarios, 2) la falta de apoyo desde la direc-
ción, y 3) la falta de una definición clara de los objetivos y del alcance del pro-
yecto. Por ello, la gestión de proyectos y el rol de jefe de proyectos son tan
importantes.
Para finalizar este apartado sobre los roles en el management de los SI y enla-
zando con los temas de la formación necesaria para desarrollarlos, proponemos
ahora una pequeña reflexión sobre el origen de estos profesionales.
¿Tienen que ser informáticos los que estén al frente de las tareas de
management? El profesional ideal debería tener un gran conocimiento de las
tecnologías, pero también claras habilidades para la participación activa en el
mando de la organización o, por lo menos, de una parte fundamental de ésta.
Este perfil híbrido, junto con la habitual inclinación hacia la tecnología de la
mayoría de los profesionales informáticos, explican por qué, a menudo, estas
responsabilidades han recaído en profesionales formados principalmente en
gestión y dirección de empresas, con más o menos conocimientos sobre la tec-
nología y sus posibilidades. El perfil opuesto, el del ingeniero tecnólogo con
más o menos conocimientos sobre gestión y dirección, se ha ido incorporando
posteriormente.
Así pues, habría que apostar por un profesional que haya recibido una for-
mación que integre indisolublemente, como mínimo, ambas disciplinas. Es lo
que, siguiendo los currículos universitarios propuestos por la ACM, ya empie-
za a aparecer en algunas facultades como las especialidades de a) Sistemas de
Información (para la vertiente de dirección) y b) Tecnologías de la Información
(para la vertiente de gestión técnica). Además de estas especialidades, está
emergiendo también la Ingeniería de Servicios y Sistemas de Información (con
esta misma denominación u otras parecidas) que, conceptualmente, ya integra
desde buen principio las perspectivas tecnológicas y de management, entrela-
zándolas para formar un profesional híbrido (y rehuyendo así al profesional
formado básicamente en uno de los dos ámbitos y con conocimientos del
otro).
Aún una breve reflexión final. Como decíamos, muchos profesionales infor-
máticos –una vez fuera de las escuelas donde los han formado muy técnicamen-
te– no se sienten atraídos inicialmente por este tipo de responsabilidades. Pero
a menudo, una trayectoria profesional estable y dilatada en el tiempo dentro de
una organización acaba llevando al profesional informático a estas responsabi-
lidades o a que, como mínimo, se las ofrezcan. ¿Cuántos jefes de proyecto no
han sido antes programadores o instaladores de redes? ¿Y cuántos CIO no han
sido antes jefes de proyecto?
Las tareas del área relacionadas con el mantenimiento de SI ocupan una alta
proporción de la dedicación de esta área. La convivencia en la misma área del
desarrollo y el mantenimiento permite disponer de una visión completa de los
problemas y de las posibilidades de los SI y también tener cerca, para hacerse
cargo del mantenimiento, a los equipos que participaron en el desarrollo del
proyecto.
Las actividades relacionadas con el desarrollo y el mantenimiento de SI
requieren un alto componente de creatividad orientada al negocio o actividad
de la organización, tanto si hablamos de roles de analista como de programador
(en los capítulos dedicados a ingeniería del software, programación y gestión de
datos, ya hemos tratado detalladamente estos perfiles). En cualquier caso,
requieren unos profesionales que sepan sacar el máximo partido de los usuarios
de SI (de todos los ámbitos de la organización y de todos los niveles de respon-
sabilidad), cuya colaboración es fundamental para el buen funcionamiento de
estas actividades. Se trata de un trabajo que normalmente se hace en equipo,
muy estructurado y lleno de detalles, en el que son importantes los aspectos de
administración del trabajo, de comunicación interpersonal y de liderazgo y que
requiere una visión global de las dimensionas técnica, funcional y de negocio.
usuarios de todos los ámbitos sin posibilidad de realizar su trabajo. Así, esta
área depende muy estrechamente de la calidad de los SI en funcionamiento que
se han producido en el área de desarrollo.
Podemos agrupar los elementos que gestiona en:
a) Equipamientos de hardware: desde los grandes ordenadores centralizados
(mainframe) y servidores de aplicaciones hasta los ordenadores personales
de despacho y portátiles, pasando por los miniordenadores y todo tipo de
periféricos (impresoras, pantallas, lectores...). Estos elementos se suelen
encontrar combinados y conectados en red, y el área de producción es res-
ponsable de su buen funcionamiento conjunto.
b) Entornos de producción y de desarrollo: con la finalidad de que convivan sin
interferencias destacables las actividades de explotación de los SI en uso
con las actividades de desarrollo de nuevos SI, normalmente las organiza-
ciones disponen de un entorno de producción (el real, donde se ejecutan
los SI en uso) y de un entorno de desarrollo (donde el personal del área de
desarrollo y mantenimiento realiza sus tareas con el software en desarrollo
hasta que lo da por finalizado y se tiene que incorporar nuevamente a pro-
ducción).
c) Recursos técnicos lógicos: incluyen el control y aseguramiento de la capaci-
dad de procesamiento, de la utilización de la memoria central, de la capa-
cidad de almacenamiento y de las comunicaciones.
d) Procedimientos de explotación: nos referimos aquí a los procesos informáti-
cos preprogramados que el área de producción tiene que ejecutar periódi-
camente, o bajo determinadas circunstancias, para cubrir la operativa de
los SI. Ponemos dos ejemplos: a) en el ámbito de las aplicaciones, las
actualizaciones por lotes o las integraciones masivas de datos; y b) en el
ámbito de soporte: la puesta en marcha y el paro de procesos de seguridad
o de actualización de software de base, la programación temporal de pro-
cesos de migración de datos, o las copias de seguridad.
4. A pesar de no ser el único marco de referencia, ITIL es un conjunto de conceptos y buenas prác-
ticas en torno a los servicios, el desarrollo y las operaciones de SI ampliamente utilizado en la ges-
tión funcional y que refleja estas responsabilidades y tareas técnicas.
© Editorial UOC 236 Escaneando la Informática
Todos los roles que hemos explicado en los anteriores apartados se organizan
habitualmente, como hemos ido apuntando, dentro del departamento de SI. Los
nombres que recibe este departamento son muy variados: de sistemas, de SI/TI, de
TI, de TIC... Nosotros utilizaremos el de “Departamento de SI”, puesto que es el
concepto que da nombre a este capítulo, pero todos los demás son igualmente
corrientes en todo tipo de organizaciones.
Tradicionalmente, los departamentos de SI se encargaban principalmente de
los aspectos de gestión funcional que hemos visto (adquisición, desarrollo,
mantenimiento, integración de TI en la organización, así como de la gestión de
todos los recursos necesarios para conseguirlo, incluidos los recursos humanos).
A medida que las organizaciones han ido incorporando los roles de management
de SI (el CIO y los jefes de proyecto), éstos también han quedado incluidos en
la jerarquía del departamento de SI.
Los departamentos de SI han adoptado a lo largo del tiempo diversas for-
mas y posicionamientos en las estructuras organizativas, como resultado
tanto de la evolución histórica de la propia función de SI en la organización
(recordad la figura 7) como de situaciones circunstanciales y de presión de la
cultura corporativa, entre otras posibles razones. Además, las diversas formas
y posicionamientos pueden ser más o menos apropiados para una organiza-
ción determinada en un momento concreto de su historia y no serlo en otro
momento.
La discusión sobre la forma del organigrama del departamento de SI
(jerárquico, funcional, matricial) no es muy diferente a la que se aplica a
otros departamentos de una organización y necesita considerar las motivacio-
nes, las ventajas y los inconvenientes de cada uno. La discusión que sí conside-
ramos muy relevante y específica trata sobre la distribución del SI (y de las
TI que le dan apoyo) en la organización y su nivel de descentralización (o
centralización). Ésta es antigua, no es obvia y puede condicionar claramente el
organigrama del departamento de SI. No hay un modelo ideal y cada organiza-
ción tiene que encontrar el suyo.
¿Qué aspectos pueden influir en el modelo del departamento de SI? Algunos
pueden ser:
– La propia filosofía estructural de la organización, es decir, el nivel de
dependencia y centralización que tienen los demás departamentos o uni-
© Editorial UOC 237 Sistemas de información (en las organizaciones)
Consultoría de SI
Intenta hacer frente a la velocidad de las transformaciones tecnológicas y al
incremento de la dificultad y la complejidad de los problemas, sirviendo allí
donde el propio departamento de sistemas no puede llegar. El consultor de SI
debería ser un profesional altamente cualificado, que combinara formación y
experiencia, lo que hace difícil su localización e incorporación permanente en
la organización. Las empresas consultoras permiten la contratación temporal de
equipos profesionales (en principio) altamente especializados en aspectos técni-
cos pero también organizativos. Podríamos decir que intentan dar un servicio
de valor añadido que supera el suministro de servicio informático propiamente
dicho y son un resultado claro de la generalización de las políticas de outsour-
cing que hemos explicado. Pero en algún momento, determinadas compañías
de consultoría han llevado al extremo este concepto y han tendido a presentar
como consultores expertos a personal insuficientemente cualificado y con pocas
horas de trabajo real, lo cual ha acondicionado, en algunas organizaciones y
departamentos de SI, la percepción que se tiene de ellas y de la calidad de sus
servicios.
Auditoría de SI
Durante mucho tiempo se ha vivido con una especie de inmunidad total res-
pecto a cómo se hacían las cosas dentro del propio departamento de SI, a la cali-
dad de los procedimientos y a la evaluación de los resultados (en términos de
eficiencia económica o productividad). Pero es evidente que es necesario garan-
tizar y vigilar las inversiones en tecnología. Este es el papel de los auditores (nor-
© Editorial UOC 240 Escaneando la Informática
9. ¿Conclusiones?
Más allá de todo lo que hemos expuesto en este capítulo, hay una idea clara
y que determina que hayamos puesto un signo de interrogación en el título de
este apartado final: la disciplina en torno a los sistemas de información –su defi-
nición y su management en las organizaciones a las que sirve– sigue evolucio-
nando, no está cerrada y, aunque tiene un nivel de madurez destacable, hasta
hace poco no ha contado con la aportación decisiva de las personas formadas
principalmente en el sector de las TI.
Es posible que estas aportaciones ayuden a ordenar funciones, a establecer
procedimientos o, por lo menos, a aclarar denominaciones y a seguir definien-
do las fronteras de todo el ámbito. Para los informáticos no tiene que represen-
tar ningún problema entrar sin complejos en un ámbito en el que casi todas las
definiciones y categorizaciones –y lo hemos repetido hasta la saciedad– no son
todavía definitivas. La informática ha sido y sigue siendo una profesión some-
tida a vertiginosas evoluciones, acostumbrada a atender a clientes y ámbitos de
todo tipo, y que ya se ha ido acercando a otras áreas de conocimiento y fun-
5. A pesar de no ser el único marco de referencia, COBIT es una recopilación de buenas prácticas
para el management de SÍ, especialmente utilizado en auditoría.
© Editorial UOC 241 Sistemas de información (en las organizaciones)
diendo con ellas (la medicina o el diseño, por ejemplo, por decir sólo algunas
que nos son muy cercanas), de modo que, el de las organizaciones, es sólo un
campo más.
Por eso hemos puesto el interrogante en el título: lejos de reflejar incerti-
dumbre sobre todo lo que hemos dicho aquí, querríamos que representara el
estímulo que significa tener un territorio por explorar para unos profesionales
acostumbrados a aterrizar en todo tipo de islas, continentes o, incluso, plane-
tas...
© Editorial UOC 243 Glosario
Glosario
LAN Local Area Network. Red de área local. Red de área extensa. Red que permi-
te interconectar dispositivos que están próximos físicamente (a centenares
de metros).
MAN Metropolitan Area Network. Red de área metropolitana. Permite interconec-
tar dispositivos que no están físicamente próximos, pero dentro del ámbito
de un área relativamente limitada (como una ciudad o distrito).
medio de transmisión Apoyo físico por el que se puede propagar una señal, en
forma de ondas o energía.
modelo cliente/servidor Modelo para representar aplicaciones locales y distribui-
das en que se define una parte servidora (que es la que proporciona los servi-
cios) a la que accede una parte siguiendo las indicaciones de un usuario huma-
no a través de una interfaz de usuario u otra aplicación.
PAN Personal Area Network. Red de área personal. Red ideada para interconectar dis-
positivos a muy corta distancia (normalmente, como máximo unos 10 metros).
PDA Personal Digital Assistant. Dispositivo pequeño y móvil que proporciona
capacidad de procesamiento y almacenamiento de información.
protocolo de comunicaciones Formato y conjunto de reglas que se definen
para el intercambio de información entre dos entidades del mismo nivel
dentro de una arquitectura de comunicaciones.
TCP/IP Transmission Control Protocol / Internet Protocol. Protocolo de comunica-
ción que es la base de funcionamiento de Internet.
WAN Wide Area Network. Red de área extensa. Red que permite interconectar
dispositivos que no están próximos físicamente, en cualquier lugar del
mundo.
WLAN Wireless Local Area Network. Red de área local basada en comunicaciones
sin hilos.
WEP Wired Equivalent Privacy. Algoritmo que pretende proporcionar las propie-
dades de confidencialidad e integridad en el estándar IEEE 802.11, que rige
en las redes de comunicaciones sin hilos.
análisis Etapa del ciclo de vida en que se definen los requerimientos del softwa-
re que se tiene que desarrollar (es decir, “qué” tiene que hacer el software).
ciclo de vida Conjunto de etapas que se siguen durante el desarrollo de un soft-
ware.
diseño Etapa del ciclo de vida en que se define cómo llevará a cabo el software
los requerimientos especificados durante la fase de análisis.
Entidad/relación (ER) Lenguaje de modelización para la parte estática del soft-
ware, muy popular dentro de la comunidad de bases de datos.
Extreme Programming (XP) Método ágil de desarrollo de software, especial-
mente útil en proyectos pequeños o medios.
Object Constraint Language (OCL) Lenguaje textual que permite complemen-
tar los modelos especificados en UML con toda la información que no se
puede expresar gráficamente.
Unified Modeling Language (UML) Lenguaje visual de modelización de siste-
mas de software. Es el lenguaje más utilizado hoy día.
Unified Process (UP) Método de desarrollo de software creado por G. Booch, J.
Rumbaugh e I. Jacobson. También conocido como RUP.
© Editorial UOC 249 Glosario
Ya hemos dicho a lo largo del capítulo que algunos de los conceptos y de las
definiciones que hemos dado no son universales. Este glosario, en estos casos,
dará nuestras definiciones.
Aplicación: Aquel programa uso específico para una tarea de negocio y que ha
sido diseñado y fabricado individualmente sin prever su interconexión con
otros programas.
BI: Business Intelligence. de estrategias y soluciones SI permiten gestionar y crear
conocimiento mediante el análisis de los datos existentes en una organiza-
ción para apoyar a la toma de decisiones sobre el negocio. Se consideran, SI
ales.
BSC: Ballanced Score Card. que permite definir y monitoritzar los objetivos con-
cretos de una organización, ayudando a transformar su estrategia en resulta-
dos, a partir de disminuir el gapexistente entre el plan estratégico definido y
el trabajo diario de las personas. Existen diferentes SI decisionales que imple-
mentan sus funciones de recogida de datos, su análisis y la generación de
informes.
CIO: Chief Information Officer. Jefe principal de la función informática en la
organización a quien corresponde el liderazgo de la dirección estratégica de
los SI.
CMS: Content Management System. SI en poner a disposición de terceros, normal-
mente a partir de portales web, la información pública generada dentro de la
propia organización.
Conocimiento: Conjunto de información que resulta ser útil porque, además
de ser desconocida hasta aquel momento, ayuda a 1) comprender una situa-
ción real (un objeto o concepto) y/o 2) a tomar una decisión.
CRM: Customer Relationship Management. SI operacional que se encarga de man-
tener toda la información a cerca de los clientes y de su interrelación con la
organización (historial de actividad, incidencias, preferencias...) dando fun-
cionalidades de front-office hacia ellos.
Datos: Valores, hechos, evidencias sobre un aspecto concreto de un objeto o
concepto.
Dirigir: Conceptualizarla estrategia de la organización/departamento/grupo, el
diseño organizativo que le dé soporte y el ejercicio del liderazgo a partir de
acciones estratégicas. En general, la dirección implica también planificar,
© Editorial UOC 250 Escaneando la Informática
MES (SEG): Management Expert System (SI Experto para la gestión). SI decisional
del ámbito táctico que propone soluciones a un problema de gestión concre-
to y limitado.
Operacional: En el entorno de las organizaciones se entiende como el conjun-
to de acciones y métodos utilizados para realizar las tareas u operaciones
habituales o corrientes (compras, órdenes de servicio o fabricación, pagos...).
Queda recogido en el nivel que hemos definido como nivel operativo o trans-
accional.
Organizar: Como tarea directiva, la referida a la realización del diseño de la
organización/departamento/grupo que tiene que dar respuesta a la estrategia
planteada. Este diseño incluye la estructuración, la definición y flujo de los
procesos y la interacción entre las personas implicadas.
Software de base: Aquel que no es de utilización directa por el usuario final del
SI o TI. Hace funcionar la infraestructura de red, de hardware y de software
sobre la que se sustenta el software de aplicación. Incluye los sistemas ope-
rativos, los sistemas gestores de bases de datos, los sistemas de seguridad, los
protocolos de redes, los drivers de hardware...
Software de aplicación: Aquel que es de utilización directa por el usuario final
del SI o TI en cuánto le da apoyo o le permite realizar las funciones o traba-
jos que tiene asignadas a la organización.
Proyecto: Conjunto de actividades previstas de desarrollar durante un periodo
de tiempo por un conjunto de personas con un presupuesto económico
determinado para crear un producto, servicio o resultado único.
SCM: Supply Chain Management. SI que se centra en todos los procesos alrededor
del ciclo productivo (adquisición de las materias primeras a los proveedores,
almacenamiento inicial, transformación en los procesos productivos y alma-
cenamiento como producto final a punto para ser consumido por el cliente).
SI: Sistema de Información. Conjunto de elementos interrelacionados que
garantiza la transformación de datos en información, así como su disponibi-
lidad para las personas (y las organizaciones) que las utilizarán siguiendo sus
procedimientos para incrementar su conocimientoy actuar en consecuencia.
En la actualidad no se entienden sin las TI (Tecnologías de la Información)
que son las herramientas fundamentales para su función.
SI (En cursiva): Sistema de Información. En el contexto de soluciones informáti-
cas, se refiere a los productos software (es decir, un componente de TI) existen-
tes en el mercado que cubren una parte más o menos completa del SI de una
organización. Nosotros nos referiremos a este producto software en cursiva
© Editorial UOC 252 Escaneando la Informática
Bibliografía
Cada uno de los siguientes libros sirve para profundizar en los temas de
arquitectura de computadores, de sistemas distribuidos y de redes, respectiva-
mente. No olvidéis tampoco consultar la información a la propia Internet, por
ejemplo a través de wikipedia.
Wikipedia http://www.wikipedia.org.
© Editorial UOC 254 Escaneando la Informática
Los siguientes libros pueden servir para profundizar dentro del mundo de las
redes. De especial importancia es el primero, al estar precisamente orientado
desde una perspectiva top-down:
Cisco Systems Inc. (2004) Guía del primer año. CCNA 1 y 2 (3a Ed). Cisco Press,
Pearson Educación
Cisco Systems Inc. (2004) Guía del segundo año. CCNA 3 y 4 (3a Ed). Cisco
Press, Pearson Educación
Oppliger, Rolf. (2000) Security technologies for the World Wide Web, Artech
House
Singh, Simon. (1999) The Code book : the science of secrecy from ancient Egypt to
quantum cryptography, Fourth Estate
Wikipedia http://www.wikipedia.org
Aho, A.; Hopcroft, John E.; Ullmann, Jeffrey D. (1988) Data Structures
and Algorithms, Addison-Wesley (Edició espanyola: Estructuras de Datos y
Algoritmos, 1988)
Todos los libros de texto relacionados con las BD y los SGBD incorporan
capítulos introductorios que incluyen contenidos similares a los presentados en
este texto. En cualquier caso, se quieren destacar los siguientes:
Igualmente destacar que este texto no se habría podido elaborar sin la con-
sulta y uso de los materiales siguientes:
Warmer, J.; Kleppe, A. The Object Constraint Language: Getting Your Models
Ready for MDA, Addison-Wesley
Cabot, J.; Guitart, I. (coordinadores); Fernández, J.; Pradel, J.; Raya, J.A.
(autors) (2005). Enginyeria del programari orientat a l'objecte. Fundació per a la
Universitat Oberta de Catalunya.