Está en la página 1de 183

INDICE PGINA 1.

- HARDWARE Y HERRAMIENTAS DE APLICACIN--------------- 2


A).- Informtica aplicada B)- Mantenimiento preventivo... 2 5

2.- PROGRAMACIN------------------------------------------------------------ 8

A).- Lgica de programacin. 8 B).- Programacin de computadoras... 12 C).- Desarrollo de sitios web.. 20 D).- Bases de datos 38

3.- REDES--------------------------------------------------------------------------- 44
A).- Comunicacin de datos. 44 B).- Redes de cmputo. 53

4.- ANALISIS Y DISEO DE SISTEMAS DE INFORMACION ------ 65


A).- Representacin de sistemas con UML, uso y ciclo iterativo e incremental.. 65 B).- Modelado CASE, reingeniera de software e ingeniera de reversa.. 75 C).- Calidad en el desarrollo de software 80

5.-SISTEMAS OPERATIVOS-------------------------------------------------- 86
A).- Generalidades de sistemas operativos multiusuarios.. 86 B).- Lnea de comando. 89

6.- PROGRAMACION----------------------------------------------------------- 97
A).- Programacin orientada a objetos. B).- Programacin avanzada. C).- Programacin para la web. D).- Programacin visual E).- Estructura de datos.

97 99 112 121 132

7.-BASES DE DATOS---------------------------------------------------------- 145


A).- Aplicacin145 B).- Seguridad y optimizacin. 156

8.- ADMINISTRACION DE LA FUNCION INFORMATICA----------- 160


A).- Administracin.. 160 B).- Auditora. 162

9.- INFORMATICA--------------------------------------------------------------- 165


A).- Paquetera bsica 165 B).- Bases de hardware.. 169 C).- Sistemas de informacin. 176

Pgina 1 de 183

Informtica aplicada

I.- HARDWARE Y HERRAMIENTAS DE APLICACION


Sistema informtico:
Hardware: Componentes fsicos de un aparato elctrico o electrnico, de un dispositivo como una computadora. Software: Conjunto de programas, procedimientos y documentacin asociada con un sistema especialmente una computadora. Computadora: Principal herramienta que usa la informtica para su cometido. Se define como mquina que utiliza la electrnica digital, para el tratamiento automtico de la informacin. Almacn de la informacin codificada, datos y programa, antes, durante y despus de la ejecucin.

UNIDADES DE MEMORIA
Definicin de Memoria: Almacn de la informacin codificada, datos y programa, antes, durante y despus de la ejecucin.

El bit (unidad binaria) es el concepto sobre el que se basan las unidades de medida de la memoria. Un bit es algo que solo puede estar en dos estados: encendido o apagado, on u off, abierto o cerrado, 1 o 0, etc.
1. Unidad Cantidad de informacin byte 8 bits word 2 bytes = 16 bits dword 4 bytes = 32 bits Kb = 1024 bytes Mb = 1024 Kb Gb = 1024 Mb Tb = 1024 Gb

Tamao de palabra de un procesador


Define la cantidad mxima de informacin que la UCP puede procesar como un todo. 1 byte Procesadores de 8 bits (Z80) 1 word Procesadores de 16 bits (i8086) dword Procesadores de 32 bits (i80386, Pentiums, AMD Kx). dword Procesadores de 64 bits (Sparc)

Definicin de datos, informacin, instrucciones y programas


Instruccin: Es un conjunto de smbolos que representan una orden de operacin o tratamiento de una computadora. Las operaciones suelen realizarse con o sobre los datos. Algunos tipos de instrucciones son: de transferencia de datos, de entrada de datos, de salida de datos, de transferencia interna, de tratamiento de datos.

Pgina 2 de 183

Informtica aplicada

Programas: Conjunto ordenado de instrucciones que se dan a la computadora indicndole las operaciones o tareas que debe realizar, se ejecutan secuencialmente. Las instrucciones se forman con elementos o smbolos tomados de un determinado repertorio y se construyen siguiendo unas reglas precisas. Datos: Elementos que son objeto de tratamiento. Formalmente se definen como el conjunto de smbolos utilizados para representar o expresar un hecho, una idea, un nmero,...en la forma adecuada para ser objeto de tratamiento. Informacin: Conjunto de datos e instrucciones necesarias para que el ordenador ejecute una tarea. Chasis o gabinete La placa madre, que contiene: CPU, cooler, RAM, BIOS, buses (PCI, USB, HyperTransport, CSI, AGP, etc.) Fuente de alimentacin Controladores de almacenamiento: IDE, SATA, SCSI Controlador de video Controladores del bus de la computadora (paralelo, serial, USB, FireWire), para conectarla a perifricos Almacenamiento: disco duro, CD-ROM, disquetera, ZIP driver y otros Tarjeta de sonido Redes: mdem y tarjeta de red

Hardware tpico de una computadora

El hardware tambin puede incluir componentes externos como:


Teclado Mouse, trackballs Joystick, gamepad, volante Escner, webcam Micrfono, parlante Monitor (LCD, o CRT) Impresora

Distintas clasificaciones del hardware Clasificacin por la funcionalidad del hardware


* Hardware bsico: dispositivos necesarios para iniciar la computadora. Los ms bsicos son la placa madre, la fuente de alimentacin, el
Informtica aplicada

Pgina 3 de 183

microprocesador y la memoria. Se podran incluir componentes como monitor y teclado, aunque no son estrictamente bsicos. * Hardware complementario: aquellos dispositivos que complementan a la computadora, pero que no son fundamentales para su funcionamiento, como ser, impresora, unidades de almacenamiento, etc.

Clasificacin por la ubicacin del hardware


* Perifricos (componentes externos): dispositivos externos a la computadora. Ver perifrico * Componentes internos: dispositivos que son internos al gabinete de la computadora * Puertos: conectan los perifricos con los componentes internos

Clasificacin por el flujo de informacin del hardware


* Perifricos de salida: monitor, impresora, etc. * Perifricos de entrada: teclado, mouse, etc. * Perifricos/dispositivos de almacenamiento: disco duro, memorias, etc. * Perifricos de comunicacin: mdem, puertos, etc. * Dispositivos de procesamiento: CPU, microprocesador, placa madre, etc.

Herramientas de Hardware
Una herramienta de Hardware es una herramienta fsica como un destornillador o martillo, no necesitan mucho entrenamiento o conocimiento tcnico para usarla, su uso se basa principalmente en la experiencia emprica, principalmente se necesita fuerza motriz para usarla y se daa (desgasta) con el uso.

Entre las herramientas de Hardware ms usuales podemos citar:


Un juego de destornilladores. Una llave tubo de 5 mm (el nico formato actualmente necesario). Un pequeo soldador. Una malla antiesttica. Pinzas diversas (planas, cortantes, para pelar cables, etc.). Una herramienta para extraccin de circuitos integrados. Una linterna. Una lupa. Un pequeo calibre. Un tster.

Mantenimiento Preventivo

MANTENIMIENTO PREVENTIVO
El mantenimiento preventivo consiste en crear un ambiente favorable para el sistema y conservar limpias todas las partes que componen una computadora. El mayor nmero de fallas que presentan los equipos es por la acumulacin de

Pgina 4 de 183

polvo en los componentes internos, ya que ste acta como aislante trmico. El calor generado por los componentes no puede dispersarse adecuadamente porque es atrapado en la capa de polvo. Las partculas de grasa y aceite que pueda contener el aire del ambiente se mezclan con el polvo, creando una espesa capa aislante que refleja el calor hacia los dems componentes, con lo cual se reduce la vida til del sistema en general. Por otro lado, el polvo contiene elementos conductores que pueden generar cortocircuitos entre las trayectorias de los circuitos impresos y tarjetas de perifricos. Es hacer los ajustes, modificaciones, cambios, limpieza y reparaciones (generalmente sencillos) necesarios para mantener cualquier herramienta o equipo en condiciones seguras de uso, con el fin de evitar posibles daos al operador o al equipo mismo. Qu es Mantenimiento? Son aquellas acciones necesarias que tienen como objetivo mantener un sistema o restaurarlo a un estado en el cual pueda llevar a cabo alguna funcin requerida. Estas acciones incluyen la combinacin de las acciones tcnicas y administrativas correspondientes. Es el cuidado que se le otorgue a la computadora para prevenir posibles fallas. Su funcin? El objetivo principal de cualquier programa de mantenimiento es proteger a un sistema de futuros problemas. Existen cuatro tipos reconocidos de mantenimiento, los cuales estn en funcin del momento en el tiempo en que se realizan, el objetivo particular para el cual son puestos en marcha, y en funcin a los recursos utilizados: Mantenimiento Correctivo: Tambin denominado mantenimiento reactivo, tiene lugar luego que ocurre una falla o avera, es decir, solo actuar cuando se presenta un error en el sistema. En este caso si no se produce ninguna falla, el mantenimiento ser nulo, por lo que se tendr que esperar hasta que se presente el desperfecto para tomar medidas de correccin de errores. Este mantenimiento trae consigo las siguientes consecuencias: Paradas no previstas en el proceso productivo, disminuyendo las horas operativas. Afecta las cadenas productivas, es decir, los ciclos productivos posteriores se vern parados a la espera de la correccin de la etapa anterior. Presenta costos por reparacin y repuestos no presupuestados, por lo que se dar el caso que por falta de recursos econmicos no se podrn comprar los repuestos en el momento. La planificacin del tiempo que estar el sistema fuera de operacin no es predecible. Mantenimiento Preventivo: Tambin denominados Planificado, tiene lugar antes que ocurra una falla, se efecta bajo condiciones controladas sin la existencia de algn error en el sistema. Se realiza a razn de la experiencia y pericia del personal a cargo, los cuales son los encargados de determinar el momento necesario para llevar a cabo dicho procedimiento; el fabricante tambin puede estipular el momento adecuado a travs de los manuales tcnicos. Presenta las siguientes caractersticas: Se realiza en un momento en que no se est produciendo. Se lleva a cabo siguiendo un programa que detalla el procedimiento y las actividades a realizar, a fin de tener herramientas y repuestos a mano. Cuenta con fecha programada, un inicio y final preestablecido. Destinado a un rea en particular y a ciertos equipos. Permite a la empresa contar con un historial. Se cuenta con un presupuesto aprobado. Mantenimiento Predictivo: Consiste en determinar en todo instante la condicin tcnica real de la mquina examinada, mientras esta se encuentre en pleno funcionamiento, para ello se hace uso de un programa sistemtico de mediciones de los parmetros ms importantes del equipo. El sustento tecnolgico de este mantenimiento consiste en la aplicacin de algoritmos matemticos agregados a las operaciones de diagnstico, que juntos pueden brindar informacin referente a las condiciones del equipo. Tiene

Pgina 5 de 183

como objetivo disminuir las paradas por mantenimientos preventivos y de esta manera minimizar los costos por mantenimiento y por no produccin. La implementacin de ste tipo de mtodos requiere de inversin en equipos, en instrumentos, y en contratacin de personal calificado. Tcnicas utilizadas para le estimacin del mantenimiento predictivo: Analizadores de Fourier (Para anlisis de vibraciones). Endoscopia (Para poder ver lugares ocultos). Ensayos no destructivos (a travs de lquidos penetrantes, ultrasonido, radiografas, partculas magnticas, entre otros). Termovisin (Deteccin de condiciones a travs del calor desplegado). Medicin de parmetros de operacin (Viscosidad, voltaje, corriente, potencia, presin, temperatura, etc.). Herramientas Requeridas Para la limpieza de nuestro PC no necesitamos ninguna herramienta rara ni cara, aunque s es conveniente disponer de un bote de aire comprimido o bien de cualquier aparato que nos permita enviar aire a presin. a) Cepillos de cerdas duras. b) Brochas, de preferencia antiestticas. c) Trapos, de preferencia que no suelten pelusa. d) Isopos de algodn. e) Limpiador de aplicacin en espuma. f) Limpiador de componentes electrnicos dielctrico. g) Aire comprimido. h) Aspiradora. i) Cautn j) Multmetro digital k) Soldadura

Pgina 6 de 183

Mantenimiento Preventivo

l) Pulsera antiesttica m) 1 bote de rollo fotogrfico para guardar los tornillos o algo similar n) Alfileres o clips o) Bolsas antiestticas p) Juego Desarmadores (planos, Phillips y tohr) q) Liquido desengrasante

7 consejos bsicos de mantenimiento preventivo para tu PC.


1.- Limpieza interna del PC: Esta tarea busca retirar el polvo que se adhiere a las piezas y al interior en general de nuestro PC. Ante todo debe desconectarse los cables externos que alimentan de electricidad a nuestra PC y de los dems componentes perifricos. Para esta limpieza puede usarse algn aparato soplador o una pequea aspiradora especial acompaada de un pincel pequeo. Poner especial nfasis en las cercanas al Microprocesador y a la Fuente. 2.- Revisar los conectores internos del PC: Asegurndonos que estn firmes y no flojos. Revisar adems que las tarjetas de expansin y los mdulos de memoria estn bien conectados. 3.- Limpieza del monitor del PC: Se recomienda destapar el monitor del PC solo en caso que se vaya a reparar pues luego de apagado almacena mucha energa que podra ser peligrosa, si no es el caso, solo soplar aire al interior por las rejillas y limpiar la pantalla y el filtro de la pantalla con un pao seco que no deje residuos ni pelusas. 4.- Atender al mouse: Debajo del mouse o ratn hay una tapa que puede abrirse simplemente girndola en el sentido indicado en la misma tapa. Limpiar la bolita que se encuentre dentro con un pao que no deje pelusas as como los ejes y evitar que haya algn tipo de partculas adheridas a ellos. 5.- La disquetera: Existen unos diskettes especiales diseados para limpiar el cabezal de las unidades de diskette. Antes de usarlos, soplar aire por la bandeja de entrada (donde se ingresan los diskettes). 6.- Los CD-ROM, DVD, CD-RW: Al contar todos ellos con un dispositivo lser no se recomienda abrirlos si no se est capacitado para hacerlo. Existen unos discos especialmente diseados para limpiar los lentes de este tipo de unidades. 7.-La superficie exterior del PC y sus perifricos: Es recomendable para esta tarea una tela humedecida en jabn lquido o una sustancia especial que no contengan disolventes o alcohol por su accin abrasiva, luego de ello usar nuevamente un pao seco que no deje pelusas.

Pgina 7 de 183

Lgica de Programacin

3.- PROGRAMACION
Lenguaje de Programacin: Es un conjunto de smbolos, caracteres y reglas que le permiten a las
personas comunicarse con la computadora. Los lenguajes de programacin tienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada / salida, clculo, manipulacin de textos, comparaciones, almacenamiento y recuperacin de informacin.

Definicin de Algoritmo: Un algoritmo es una serie de pasos organizados que describe el proceso que se
debe seguir, para dar solucin a un problema especfico. Existen dos tipos de algoritmos: Grficos: Es la representacin grfica de las operaciones que realiza un algoritmo (diagrama de flujo). No Grficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudo cdigo).

Dato: Un dato puede ser un simple carcter o un valor entero. El tipo de dato determina el conjunto de
valores que puede tomar una variable. Los tipos de datos son los siguientes: Numricos Simples Lgicos Alfanumricos (string) Tipos de datos Arreglos (Vectores, Matrices) Estructurados Registros (Def. por el Archivos usuario) Apuntadores Expresiones: Las expresiones son combinaciones de constantes, variables, smbolos de operacin, parntesis y nombres de funciones especiales. Por ejemplo: a + (b + 3)/c. Una expresin consta de operadores y operandos. Segn sea el tipo de datos u operandos que manipulan, se clasifican en: Aritmticas Relacinales Lgicas
Relacinales > Mayor que < Menor que >= Mayor o igual que <= Menor o igual que <> Diferente = Igual Prioridad de los Operadores Aritmticos Lgicos And Y OR O Not Negacin

Operadores Aritmticos + Suma Resta * Multiplicacin / Divisin Mod Modulo

1. 2. 3.

^ Exponenciacin *, /, mod. Multiplicacin, divisin, modulo. +, - Suma y resta

Pgina 8 de 183

Lgica de Programacin

Tabla de valores lgicos: AND T T F F and and and and T F T F = = = = T F F F OR T T F F or or or or T F T F = = = = T T T F NOT not not T = F F = T

Identificadores: representan los datos de un programa (constantes, variables). Un identificador es una secuencia de caracteres que sirve para identificar una posicin en la memoria de la computadora, que nos permite accesar a su contenido.

Reglas para formar un identificador


Debe comenzar con una letra (A a Z, maysculas o minsculas) y no deben contener espacios en blanco. Letras, dgitos y caracteres como la subraya (_) son permitidos despus del primer carcter.

Constante: Es un dato numrico o alfanumrico que no cambia durante la ejecucin del programa. Variable: Es un espacio en la memoria de la computadora que permite almacenar temporalmente un dato y
ste dato puede cambiar durante la ejecucin del programa.

Estructuras Algortmicas: Son formas de trabajo, que permiten, mediante la manipulacin de variables,
realizar ciertos procesos especficos que nos lleven a la solucin de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:
Secuenciales - Asignacin - Entrada - Salida - Simples - Mltiples - Hacer para - Hacer mientras - Repetir hasta

Estructuras Algortmicas

Condicionales Cclicas

Estructuras Secuenciales: son aquellas en la que una accin (instruccin) sigue a otra en secuencia. Las
tareas se ejecutan de tal modo que la salida de una es la entrada de la siguiente y as sucesivamente hasta el fin del proceso. Una estructura secuencial se representa de la siguiente forma: Inicio

Accion1 Accion2
. Accin N Fin

Pgina 9 de 183

Lgica de Programacin

Asignacin: La asignacin consiste, en el paso de valores o resultados a una zona de la memoria. Dicha
zona ser reconocida con el nombre de la variable que recibe el valor. La asignacin se puede clasificar de la siguiente forma: Simples: Consiste en pasar un valor constate a una variable (a =15) Contador: Consiste en usarla como un verificador del nmero de veces que se realiza un proceso ( a = a +1) Acumulador: Consiste en usarla como un sumador en un proceso (a =a +b) De trabajo: Donde puede recibir el resultado de una operacin matemtica que involucre muchas variables (a = c +b *2/4).

Lectura: La lectura consiste en recibir desde un dispositivo de entrada (p.ej. el teclado) un valor. Esta
operacin se representa en un pseudo cdigo como sigue: Leer a, b (Donde a y b son las variables que recibirn los valores)

Escritura: Consiste en mandar por un dispositivo de salida (p.ej. monitor o impresora) un resultado o
mensaje. Este proceso se representa en un pseudo cdigo como sigue: Escribe El resultado es:, R (Donde El resultado es: es un mensaje que se desea que aparezca y R es una variable que contiene un valor y que queremos que ste valor aparezca.

Estructuras Condicionales: Las estructuras condicionales comparan una variable contra otros valores,
para que en base al resultado de sta comparacin, se siga un curso de accin dentro del programa. Las comparaciones se pueden hacer contra otra variable o contra una constante. Existen dos tipos bsicos, las simples y las dobles. Simples: Las estructuras condicionales simples se les conoce como Tomas de decisin. Estas tomas de decisin tienen la siguiente forma: Si <condicin> entonces Accin(es) Fin-si

Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en funcin del cumplimiento o no de una determinada condicin. Se representa de la siguiente forma: Si <condicin> entonces Accin(es) si no Accin(es) Fin-si

Estructuras Cclicas: Se llaman problemas repetitivos o cclicos a aquellos en cuya solucin es necesario
utilizar un mismo conjunto de acciones que se puedan ejecutar una

Lgica de Programacin

Pgina 10 de 183

cantidad especfica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en funcin de algn dato dentro del programa).Los ciclos se clasifican en:

Ciclos con un Nmero Determinado de Iteraciones (Hacer-Para o FOR) Son aquellos en que el nmero de iteraciones se conoce antes de ejecutarse el ciclo.

Ciclos con un Nmero Indeterminado de Iteraciones (Hacer-Mientras, Repetir-Hasta o WHILE) Son aquellos en que el nmero de iteraciones no se conoce con exactitud, ya que est dado en funcin de un dato dentro del programa. En otras palabras; sta es una estructura que repetir un proceso durante N veces, donde N puede ser fijo o variable. Para esto, la instruccin se vale de una condicin que es la que debe cumplirse para que se siga ejecutando. Cuando la condicin ya no se cumple, entonces ya no se ejecuta el proceso.

Pgina 11 de 183

Programacin de Computadoras

Los conceptos bsicos del paradigma OO son clase y objeto. Los objetos son simplemente entidades que tienen sentido en el contexto de una aplicacin. Todos los objetos son instancias de alguna clase, los trminos instancia y objeto son el mismo concepto. Las clases son abstracciones que generalizan dominios de objetos. El estado de un objeto viene dado por el valor de sus caractersticas y el comportamiento del objeto por las acciones u operaciones que realiza. Es decir las responsabilidades podemos dividirlas en dos grupos, aquellas que determinan el estado (atributos) y las que determinan el comportamiento (mtodos). A los atributos tambin se les llama: campos, propiedades, variables o atributos; mientras que a los mtodos tambin se les llama rutinas o funciones. El esquema general para la representacin de una clase es la siguiente:
Nombre de la clase Atributos Estado Comportamiento Mtodos

Responsabilidades

C#
C# es un lenguaje de programacin orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET. Su sintaxis bsica deriva de C/C++ la cual es similar a la de Java. Tipos de datos ms comunes:

Nota: El tipo de dato cadena se llama string. En C# las cadenas son objetos y no una matriz de caracteres, aun as, se puede obtener un carcter arbitrario de una cadena por medio de su ndice (mas no modificarlo). Las cadenas son inmutables, una vez creadas no se pueden modificar, solo se pueden copiar total o parcialmente. Se pueden concatenar (unir) dos cadenas mediante el operador +. Las cadenas se pueden usar en las instrucciones switch.

Programacin de Computadoras

Pgina 12 de 183

El cdigo en C# es una secuencia de smbolos que determinan el conjunto de instrucciones. Dos aspectos determinan si una secuencia de smbolos es correcta en C#: la sintaxis y la semntica.

La sintaxis: son reglas que permiten determinar de qu manera los smbolos pueden combinarse para
escribir cdigo que por su forma sea correcto.

La semntica: permite determinar el significado de la secuencia de smbolos. Tambin a travs de las reglas
semnticas pueden ser detectados errores de interpretacin que no permiten que las acciones o instrucciones puedan ser ejecutadas.

Variables: Una variable es una abstraccin de una zona de memoria que se utiliza para representar y
conservar valores temporalmente de un determinado tipo.

Sintaxis:
<tipo de dato> <lista de identificadores de variables>; Ejemplo: int unAo; string nombre, apellido;

Operadores:
La siguiente tabla muestra un resumen de los operadores ms importantes.

Pgina 13 de 183

Programacin de Computadoras

El operador == determina si dos referencias hacen referencia al mismo objeto, pero al usar dicho operador con dos operandos tipo string se prueba la igualdad del contenido de las cadenas y no su referencia. Sin embargo, con el resto de los operadores relacionales, como < o >= se comparan las referencias

Comentarios: Un comentario es texto que se incluye en el cdigo fuente con el objetivo de facilitar su
legibilidad a los programadores. Los comentarios no tienen significado alguno para la ejecucin de una aplicacin; esto es equivalente a decir que los comentarios son completamente ignorados por el compilador. Un comentario de una sola lnea se determina por los caracteres //. Un comentario con un conjunto de lneas con /* al inicio, y se cierra el bloque con */.

Clases y objetos
Una clase en C# es una secuencia de smbolos (o caracteres) de un alfabeto bsico Sintaxis para la definicin de clases class <NombreClase> { <miembros> } Los miembros se definen como los atributos y mtodos. Los cuales estarn presentes en cada uno de los objetos o instancias de la clase.

Programacin de Computadoras

Pgina 14 de 183

Atributos: Son datos comunes a todos los objetos de una determinada clase y su sintaxis de definicin es
(como la declaracin de variable): <TipoDato> <nombreCampo>; El <nombreCampo> puede ser cualquier identificador que cumpla con las reglas establecidas y no coincida con el nombre de otro miembro previamente definido en la clase

Mtodos: Son un conjunto de instrucciones o acciones que se agrupan a travs de un determinado nombre
simblico de tal manera que es posible ejecutarlas en cualquier momento sin tenerlas que volver a escribir. A estas instrucciones se les denomina cuerpo del mtodo, y a su ejecucin a travs de su nombre se le denomina llamada al mtodo. Los mtodos pueden devolver algn valor cuando se ejecutan. En las instrucciones es posible acceder con total libertad a los atributos de la clase a la cual pertenece el mtodo. Su sintaxis es la siguiente: <TipoDevuelto> <identificador del mtodo> ([<Parmetros>]) { <instrucciones> } Ejemplo de la declaracin de clase y mtodo: class Persona { // atributos string nombre; int aoNacimiento; // mtodo de consulta o acceso int Edad(int unAo) { // edad aproximada return unAo - aoNacimiento; } }

Sobrecarga de mtodos: Se denomina as a la posibilidad de disponer de varios mtodos con el mismo


nombre, pero con diferente lista de parmetros y es posible que cuando se les invoque el compilador podr determinar a cual llamar a partir de los parmetros pasados en la llamada. Sin embargo, lo que no se permite es definir varios mtodos que solamente se diferencien en su valor de retorno, puesto que la forma de invocar a los mtodos a travs de instancias de la clase es: <objeto>.<nombre del mtodo>([<valores de los parmetros>]) Nota: C# permite la sobrecarga de operadores con la palabra clave operator

Pgina 15 de 183

Programacin de Computadoras

Encapsulamiento: El mecanismo de encapsulamiento o principio de la ocultacin de la informacin, le


permite a los diseadores de clases determinar qu miembros de estas pueden ser utilizados por otros programadores y cules no. A su vez este mecanismo nos permite ocultar todos los detalles relativos a la implementacin interna y slo dejar visibles aquellos que se puedan usar con seguridad y le facilita al creador la posterior modificacin. Este mecanismo le permite a las clases proporcionar una interfaz con las responsabilidades que los clientes pueden acceder directamente. El encapsulamiento se consigue aadiendo modificadores de acceso en las definiciones de los mtodos y atributos. Estos modificadores son palabras reservadas del lenguaje que indican desde qu cdigo puede accederse a ellos. Los modificadores de C# son los siguientes: public: indica que la componente puede ser accedida desde cualquier cdigo. Se representa con +. private: slo puede ser accedido desde el cdigo de la clase a la que pertenece. Es lo considerado. Se representa con -. protected: permite el acceso desde el cdigo de la clase a la que pertenece o de subclases suyas. Se representa con #. En caso de no especificarse algn modificador, se considera por defecto u omisin que los miembros de un tipo de dato son private. La creacin de un objeto o instancia de clase se realiza por medio de un mtodo constructor. Constructores: Los constructores de una clase son mtodos especiales que se definen como componentes de sta, y que contienen cdigo a ejecutar cada vez que se crea un objeto de se tipo. ste cdigo suele utilizarse para la inicializacin de los atributos del objeto a crear. La sintaxis bsica de definicin de constructores consiste en definirlos como cualquier otro mtodo pero dndoles el mismo nombre que la clase a la que pertenecen y no se indicando el tipo de valor de retorno. Sintaxis: <nombreTipo>([<parmetros>]) { <cdigo> } Nota: Un constructor tiene el mismo nombre que su clase y es sintcticamente similar a un mtodo. Un constructor no regresa ningn valor. Los constructores tambin pueden ser sobrecargados. Si no se especifica un constructor en una clase, se usa uno por defecto que consiste en asignar a todas las variables el valor de 0 o null segn corresponda. La palabra clave this es un apuntador al mismo objeto en el cual se usa. La palabra clave static hace que un miembro pertenezca a una clase en vez de pertenecer a objetos de dicha clase. Se puede tener acceso a dicho miembro antes de que se cree cualquier objeto de su clase y sin referencias a un objeto.

NEW: Se utiliza para crear objetos e invocar constructores. Para crear un nuevo objeto se utiliza la siguiente
sintaxis: identificador = new nombre_clase();.El operador new tambin se utiliza para invocar el constructor predeterminado de los tipos de datos. Ejemplo:

Programacin de Computadoras

Class1 o = new Class1(); int i = new int();

Pgina 16 de 183

Propiedades: Las propiedades son miembros que ofrecen un mecanismo flexible para leer, escribir o
calcular los valores de campos privados. Se pueden utilizar las propiedades como si fuesen miembros de datos pblicos, aunque en realidad son mtodos especiales denominados descriptores de acceso. De este modo, se puede tener acceso a los datos con facilidad, a la vez que proporciona la seguridad y flexibilidad de los mtodos Sintaxis: [<modificadores>] <tipoPropiedad> <nombrePropiedad> { get { <cdigoEscritura> } set { <cdigoEscritura> } } Una propiedad definida de esta forma va a ser accedida como si se tratara de un atributo en el cual cada lectura de su valor se ejecutara el <cdigoLectura> y en cada escritura de un valor en ella se ejecutara <cdigoEscritura>.

Estructura de control alternativa simple


La instruccin if: se evala la expresin lgica <condicin>, si el resultado de su evaluacin es verdadero (true) se ejecuta el <bloque de instrucciones >. Tiene la siguiente sintaxis: if (<condicin>) <bloque de instrucciones>; La instruccin if-else: El <bloque de instrucciones 1> se ejecuta en caso de que se cumpla la <condicin>, en otro caso se ejecuta entonces el <bloque de instrucciones 2>. La sintaxis es: if (<condicin>) <bloque de instrucciones 1>; else <bloque de instrucciones 2>;

Estructura de control alternativa mltiple (switch case)


La instruccin switch es muy simple: si al evaluarse <expresin> toma <valor 1> entonces se ejecuta <bloque de instrucciones 1>; si al evaluarse <expresin> toma <valor 2> entonces se ejecuta <bloque de instrucciones 2> y as sucesivamente hasta <valor n>. De no coincidir la evaluacin con alguno de los valores predeterminados y si existe la opcin default (ya que es opcional), entonces se ejecutar <bloque de instrucciones default>. La instruccin break es obligatoria excepto cuando exista una instruccin return

Pgina 17 de 183

Programacin de Computadoras

en el respectivo bloque de instrucciones. break indica que despus de ejecutar el bloque de instrucciones que lo precede se salta a la prxima instruccin despus del switch. La sintaxis es la siguiente: switch (<expresin>) { case <valor 1>: <bloque de instrucciones 1> [break;] case <valor 2>: <bloque de instrucciones 2> [break;] case <valor n>: <bloque de instrucciones n> [break;] [default: <bloque de instrucciones default> [break;]] }

Estructura de control for: Es uno de los ciclos ms conocidos y usados; est controlado por un contador o
variable de control. Tiene la siguiente sintaxis: for (<instrucciones 1>; <expresin>; <instrucciones 2>) <instrucciones> La semntica es la siguiente: <instrucciones 1>; se ejecutar una sola vez al inicio del ciclo, generalmente se realizan inicializaciones y declaraciones de variables puesto que como se dijo con anterioridad, esta solo se ejecuta una vez. En caso de que se quiera realizar o ejecutar ms de una instruccin en este momento, dichas instrucciones se deben separar por comas (,). <expresin>; es evaluada en cada ciclo y en dependencia del valor que devuelva, depender que el bucle contine ejecutndose (true) o no (false). Al no colocarse nada en esta parte, el ciclo tomar como true el valor devuelto por lo que se ejecutar infinitamente. <instrucciones 2>; es ejecutado siempre en cada ciclo al terminar de ejecutar todas las instrucciones que pertenecen al ciclo for en cuestin. Por lo general puede contener alguna actualizacin para las variables de control. En caso de querer ejecutar en este momento ms de una instruccin se deben separar por comas.

Estructura de control while: A veces no es posible saber de antemano el nmero de veces que se va a
repetir la ejecucin de una porcin de cdigo, mientras una condicin sea cierta. Para definir este tipo de ciclos condicionales es posible utilizar la estructura de control while, cuya sintaxis es la siguiente: while <condicin> <instrucciones> Se ejecuta el bloque (<instrucciones>) mientras la <condicin> sea cierta, o dicho de otra manera, el bucle terminar cuando la <condicin> sea falsa. En sta estructura la <condicin> se verifica siempre al principio del ciclo por lo que, si la primera vez que se evala <condicin>, es falsa, el ciclo no llegar nunca a ejecutarse.

Estructura de control do-while: La estructura de control do-while es otra sentencia de iteracin en la que
la condicin se evala por primera vez despus de que las

Pgina 18 de 183

Programacin de Computadoras

<instrucciones> del ciclo se hayan ejecutado. Esto quiere decir que las sentencias del bucle do-while, al contrario que las del ciclo while, al menos se ejecutan una vez. La sintaxis de esta estructura es la siguiente: do <instrucciones> while <condicin>;

Estructura de control foreach: El ciclo foreach repite las instrucciones para cada elemento de un arreglo
o coleccin. La finalidad de esta estructura es recorrer todos los elementos de un arreglo o coleccin, sin necesidad de ndices ni valores mnimos o mximos. Sintcticamente, como se muestra a continuacin, tras la palabra foreach y entre parntesis se debe insertar una variable del mismo tipo de datos del arreglo que va tomando el valor de cada uno de los elementos que existan en el arreglo, ejecutando el ciclo para cada uno de ellos.

foreach ([<tipo de dato>]<variable> in <arreglo o coleccin>)


<instrucciones>

Arreglos
Un arreglo unidimensional es un tipo especial de variable que es capaz de almacenar en su interior y de manera ordenada varios elementos de un mismo tipo de datos. <identificador de tipo> [ ] <identificador de variable>; Ejemplo: int[] temperaturas = {28, -5}; // El tamao del arreglo es 2 y los datos del arreglo son 28 y -5 double[] pesos; // Se declara un arreglo llamado pesos, no se ha definido el tamao del arreglo. pesos=new double[5]; // crea y define que el tamao del arreglo pesos es de 5.

Pgina 19 de 183

Desarrollo de sitios Web

Metodologa de Desarrollo de Proyectos Web


Todo proyecto, para completarse de manera exitosa, debe seguir una metodologa probada y basada en la experiencia que guie el proceso de desarrollo hasta alcanzar los objetivos propuestos. En ADWEBS implementamos una Metodologa de Desarrollo Web para lograr los objetivos propuestos del proyecto a travs de los siguientes pasos

Anlisis: Ya sea de forma presencia, por telfono o va correo electrnico se levanta el requerimiento de las necesidades
de su WebSite; definicin de secciones de contenido, mapa de navegacin, colores e imgenes deseadas y diseos de referencia Diseo: Los diseadores proceden a crear 2 Layouts (Maquetas Visuales) de su sitio Web a tamao real, para seleccionar 1 de su preferencia y hasta 3 rondas de arreglos y modificaciones a la seleccionada Prototipo: Se crean Wireframes (Maquetas funcionales) de su sitio para definir cmo quedarn estructurados sus contenidos y el funcionamiento de los mismos Desarrollo: con el diseo y los Wireframes los programadores crean el cdigo que construye su Sitio Web Testing: una vez terminado el desarrollo se hacen pruebas visuales y de funcionamiento, primero por parte de nuestro equipo y luego por parte del cliente, para verificar que el resultado final cumpla con los requerimientos definidos Dominio y Hosting: Probado el sitio se procede a crear el Hosting final donde se hospedar, se migra todo el sitio web desde el servidor de desarrollo y se enlaza con el dominio real. Nuestra oferta incluye un ao de Hosting y nombre de dominio GRATIS, adems de cuentas de correo electrnico ILIMITADAS. Publicacin y Entrega: Una vez el sitio en su Hosting final, se le entregan al cliente todos los datos de acceso y capacitacin necesaria para el uso del mismo E-Marketing: Se le incluyen palabras claves en los ttulos y etiquetas para garantizar un buen posicionamiento en buscadores y se da de alta el sitio en Google Analytics para darle al cliente un control estadstico de uso del sitio Mantenimiento: Adiciones y modificaciones posteriores a la entrega, apoyo en la publicacin de contenidos. Este paso es opcional y se cotiza aparte de acuerdo a las necesidades del cliente.

En la actualidad la importancia de contar con un sitio web se incrementa da a da para todas aquellas personas que ofrecen algn servicio o tienen un negocio o empresa, ya sea pblica o privada. Para los negocios ya establecidos y prestadores de servicios, un sitio web les permite: Tener presencia a nivel local, estatal, nacional y mundial. Tener una sucursal abierta las 24 horas del da, los 7 das de la semana. Ofrecer sus servicios y productos a un costo realmente bajo. Ventas automticas. Pgina 20 de 183

La facilidad de tener tantos sitios web como se requiera. Las consideraciones que debemos tener en cuenta antes de publicar uno de stos sitios web, sern el objeto de estudio del documento presente.
Hoy en da hay muchas formas de publicar un sitio web, las cuales debemos evaluar. Algunos puntos que no debemos dejar de tomar en cuenta antes de publicar nuestro sitio web son:

1.- Qu publicaremos? Esto es lo primero a resolver. Queremos publicar un sitio personal, profesional, un blog, audio u otros. Esta eleccin inicial definir a nuestra publicacin, razn por la cual hay que estar bien seguros y planificar lo mximo posible. El tipo de sitio que publiquemos cumplir un objetivo principal el cual debemos tener claramente delineado antes de comenzar a hacer nada. 2.- Cmo publicaremos? En este punto juegan los recursos materiales y los conocimientos de los cuales disponemos o podramos disponer. Este presupuesto primario nos definir qu tipo de publicacin podemos gestar. Si no contamos con financiacin suficiente para costear un hosting, un dominio, ni contamos con capacitacin suficiente para editar nuestras pginas la mejor eleccin ser utilizar un asistente de publicacin de algn servicio de hosting gratuito o patrocinado. Si por el contrario disponemos de financiacin para costear dominio y hosting profesional y adems los conocimientos necesarios para editar nuestras pginas e incluso para disearlas y/o programarlas podremos acceder a una publicacin de tipo profesional. 3.- Cul ser la demanda del sitio? Es necesario considerar el nmero de visitas diarias y concurrentes (al mismo tiempo) antes de publicar nuestro sitio. De esto depender la capacidad de memoria que deber tener el servidor, el tipo y nmero de procesadores, el Sistema Gestor de Base de Datos (SGBD)y, en caso de que se publique en Internet, el ancho de banda de conexin a Internet (si se publica en una intranet, esto ltimo no ser necesario). Una vez definido lo anterior, podemos pasar a los requerimientos tcnicos y de publicacin de un sitio web. REQUERIMIENTOS TECNICOS Y DE PUBLICACION DE UN SITIO WEB. I. Una PC con un sistema operativo de red (Intranet e Internet). Un sistema operativo de red es un componente software de una computadora que tiene como objetivo coordinar y manejar las actividades de los recursos del ordenador en una red de equipos. Consiste en un software que posibilita la comunicacin de un sistema informtico con otros equipos en el mbito de una red. Dependiendo del fabricante del sistema operativo de red, tenemos que el software de red para un equipo personal se puede aadir al propio sistema operativo del equipo o integrarse con l. El software del sistema operativo de red se integra en un nmero importante de sistemas operativos conocidos, incluyendo Windows 2000 Server/Professional, Windows NT Server/Workstation, Windows 95/98/ME y Apple Talk. II. Un servidor web (Intranet e Internet).

Pgina 21 de 183

Un servidor web o servidor HTTP es un programa que procesa cualquier aplicacin del lado del servidor realizando conexiones bidireccionales y/o unidireccionales y sncronas o asncronas con el cliente generando o cediendo una respuesta en cualquier lenguaje o Aplicacin del lado del cliente. El cdigo recibido por el cliente suele ser compilado y ejecutado por un navegador web. Para la transmisin de todos estos datos suele utilizarse algn protocolo. Generalmente se utiliza el protocolo HTTP para estas comunicaciones, perteneciente a la capa de aplicacin del modelo OSI. El trmino tambin se emplea para referirse al ordenador que ejecuta el programa. Un servidor web opera mediante el protocolo HTTP, de la capa de aplicacin del Modelo OSI. Al protocolo HTTP se le asigna habitualmente el puerto TCP 80. Las peticiones al servidor suelen realizarse mediante HTTP utilizando el mtodo de peticin GET en el que el recurso se solicita a travs de la url al servidor web.GET /index.html HTTP/1.1 HOST: www.host.com Apache Es el servidor ms utilizado, aunque ha vivido tiempos mejores. Parte de su xito se debe a que es multiplataforma y a su estructura modular, que permite emplear diversos lenguajes en el lado del servidor (PHP, Python y Perl principalmente), as como incorporar caractersticas como la compresin de datos, las conexiones seguras y la utilizacin de URLs amigables. Microsoft IIS A pesar de haber superado los momentos en que era ms conocido por sus vulnerabilidades que por sus caractersticas, IIS ha perdido mercado en los ltimos aos. Es el segundo servidor web ms usado y cuenta con un buen nmero de mdulos, pero tambin con el gran handicap de funcionar nicamente en Windows. Google Web Server El tercero ms utilizado, conocido como GWS, es una gran incgnita. Google no publica apenas informacin sobre l y se rumorea que puede ser una versin adaptada de Apache. Obviamente, la gran cantidad de dominios que emplean este servidor no pertenecen todos a Google, sino que la mayora son de compaas que emplean sus servicios como Blogger o App Engine. Nginx Es un servidor web ligero que funciona en mltiples plataformas (entre las que se encuentran Windows Linux y Mac OS X). Es usado por algunos sitios importantes como WordPress.com o Hulu. Lighttpd Es el otro gran servidor ligero, que permite usar menos cantidad de memoria y CPU. Tambin es empleado por sitios con mucho trfico como Youtube , Wikimedia, The Pirate Bay, etc. III.IP fija (Intranet e Internet). Los sitios de Internet que por su naturaleza necesitan estar permanentemente conectados, generalmente tienen una direccin IP fija (comnmente, IP fija o IP esttica), esta, no cambia con el tiempo. Los servidores de correo, DNS, FTP pblicos y servidores de pginas web necesariamente deben contar con una direccin IP fija o esttica, ya que de esta forma se permite su localizacin en la red. A travs de Internet, los ordenadores se conectan entre s mediante sus respectivas direcciones IP. Sin embargo, a los seres humanos nos es ms cmodo utilizar otra notacin ms fcil de recordar, como los nombres de dominio; la traduccin entre unos y otros se resuelve mediante los servidores de nombres de dominio DNS. En caso de publicar el sitio en una intranet, la conexin a internet no ser necesaria, solamente la IP fija. IV. Dominio de Internet (Internet).

Pgina 22 de 183

Un dominio o nombre de dominio es el nombre que identifica un sitio web. Cada dominio tiene que ser nico en Internet. Por ejemplo, "www.masadelante.com" es el nombre de dominio de la pgina web de Masadelante. Un solo servidor web puede servir mltiples pginas web de mltiples dominios, pero un dominio slo puede apuntar a un servidor. El propsito principal de los nombres de dominio en Internet y del sistema de nombres de dominio (DNS), es traducir las direcciones IP de cada nodo activo en la red, a trminos memorizables y fciles de encontrar. Sin la ayuda del sistema de nombres de dominio, los usuarios de Internet tendran que acceder a cada servicio web utilizando la direccin IP del nodo (por ejemplo, sera necesario utilizar http://192.0.32.10 en vez de http://example.com). V. Servidor de base de datos (SGBD) (Intranet e Internet): Un servidor de base de datos es un programa que provee servicios de base de datos a otros programas u otras computadoras, como es definido por el modelo cliente-servidor. Tambin puede hacer referencia a aquellas computadoras (servidores) dedicadas a ejecutar esos programas, prestando el servicio. Los sistemas de administracin de base de datos (SGBD) generalmente proveen funcionalidades para servidores de base de datos, en cambio otros (como por ejemplo, MySQL) solamente proveen construccin y acceso a la base de datos. Para elegir nuestro SGBD es necesario tomar en cuenta el sistema operativo instalado en el servidor.

La utilizacin de pginas dinmicas est muy frecuentemente asociada con el empleo de bases de datos. Una base de datos es sencillamente un conjunto de tablas en las que almacenamos distintos registros (artculos de una tienda virtual, proveedores o clientes de una empresa, pelculas en cartelera en el cine, etc.). Estos registros son catalogados en funcin de distintos parmetros que los caracterizan y que presentan una utilidad a la hora de clasificarlos.

METODOS DE CONEXIN A BASES DE DATOS


I.- DE FORMA ABIERTA
Open Data Base Conectivity (ODBC)
O lo que es lo mismo, conectividad abierta de bases de datos Pero si hubiera un elemento que por un lado sea siempre igual, y por el otro sea capaz de dialogar con una base de datos concreta, solo tendramos que ir cambiando este elemento, y nuestra aplicacin siempre funcionara sin importar lo que hay al otro lado, algo as como ir cambiando las boquillas de una manguera. A esas piezas intercambiables las llamaremos orgenes de datos de ODBC. Por un lado el ODBC provee de unas caractersticas siempre homogneas, y por el otro permite distintos controladores que aseguran la conectividad de la aplicacin con diferentes bases de datos. ODBC es un estndar de acceso a bases de datos que utilizan los sistemas Microsoft. A travs de ODBC, en un sistema Windows se puede conectar con cualquier base de datos de la que exista un driver ODBC. Los creadores de las distintas bases de datos son los Pgina 23 de 183

responsables de crear un driver ODBC para que su base de datos se pueda conectar desde un sistema Microsoft. Para conectar con ODBC una base de datos, se ha de crear un DSN, que es un nombre que asociamos a una conexin por ODBC para referirnos a ella desde las aplicaciones o programas que deban conectarse con la base de datos.

JDBC
Java Database Connectivity (JDBC) es una interfase de acceso a bases de datos estndar SQL que proporciona un acceso uniforme a una gran variedad de bases de datos relacionales. JDBC tambin proporciona una base comn para la construccin de herramientas y utilidades de alto nivel. Para usar JDBC con un sistema gestor de base de datos en particular, es necesario disponer del driver JDBC apropiado que haga de intermediario entre sta y JDBC. Dependiendo de varios factores, este driver puede estar escrito en Java puro, o ser una mezcla de Java y mtodos nativos JNI (Java Native Interface). JDBC es el API para la ejecucin de sentencias SQL. (Como punto de inters JDBC es una marca registrada y no un acrnimo, no obstante a menudo es conocido como Java Database Connectivity). Consiste en un conjunto de clases e interfases escritas en el lenguaje de programacin Java. JDBC suministra un API estndar para los desarrolladores y hace posible escribir aplicaciones de base de datos usando un API puro Java. JDBC hace posibles tres cosas: Establece una conexin con la base de datos. Enva sentencias SQL Procesa los resultados.

PHP Data Objects (PDO)


PDO es una interface de acceso a datos que nos permite, mediante varios drivers, conectarnos a diferentes bases de datos. Esta librera escrita en C viene activada por defecto desde PHP 5.1 por lo cual podr utilizarse en la mayora de los servidores que actualmente soportan PHP5. PDO es una extensin de acceso a datos para PHP5, la cual nos permite conectar a multitud de sistemas gestores de bases de datos indicando el driver correspondiente. Sus ventajas radican en que: Es una extensin eficiente que fue desarrollada en C. Sus mtodos son independientes del sistema gestor de bases de datos que uses, permitiendo que una aplicacin pueda migrar de un motor de base de datos a otro con slo indicar el driver correspondiente al nuevo motor. Previene que en las consultas se inyecte SQL malicioso (SQL Injection) usando consultas parametrizadas. Est implementada con tecnologa orientada a objetos. La conexin a una base de datos se realiza creando una instancia de la clase base PDO. Algunos mtodos son: prepare, execute, exec, beginTransaction, bindParam, commit. La extensin PHP Data Objects (PDO) define una interfaz ligera y consistente para acceder a bases de datos en PHP. Cada driver de bases de datos que implementa la interfaz PDO puede exponer caractersticas especficas de la base de datos como funciones de extensin regulares.

DRIVERS NATIVOS
Pgina 24 de 183

Slo algunos manejadores de bases de datos los soportan. Una conexin nativa es una conexin casi directa de Power Builder con los datos. Los drivers nativos son desarrollados por el mismo fabricante. Aparte del hecho de que tenemos que atravesar una capa menos para llegar a los datos; Power Builder "conversa" directamente con el API del fabricante. Por eso el rendimiento es mucho mejor frente al driver ODBC. La conexin nativa de acceso a base de datos se realiza utilizando la API propia del gestor de base de datos correspondiente. Ventajas: Eficiencia. Desventajas: No es estndar. Tericamente una conexin nativa se establece hacia tu base de datos utilizando la plataforma en que reside.

II.- USANDO LOS DRIVERS DEL PROVEEDOR


OLEDB
OLEDB es un protocolo que define la interfaz que debe implementar un proveedor de acceso a datos. Un proveedor OLEDB es un conjunto de componentes que implementa la interfaz OLEDB para un sistema especfico de gestin (SQL Server, MySQL, Oracle o Access, por ejemplo). Es una tecnologa desarrollada por Microsoft usada para tener acceso a diferentes fuentes de informacin, o bases de datos, de manera uniforme.

SQLSERVER
SQL Server Native Client (SQLNCLI10) es una tecnologa de acceso a datos nueva en Microsoft SQL Server; es una interfaz de programacin de aplicaciones (API) independiente para el acceso a datos utilizada para OLEDB y para ODBC. Combina el proveedor OLEDB de SQL y el controlador ODBC de SQL en una biblioteca de vnculos dinmicos (DLL) nativa, a la vez que proporciona una funcionalidad nueva independiente de Microsoft Data Access Components (MDAC).

ORACLE
El Easysoft ODBC-Oracle Driver permite a las aplicaciones habilitadas para ODBC acceder a bases de datos Oracle desde las plataformas Linux, Unix y Windows. Es compatible con Oracle 8.1.7+, 9i.x, 10g versin 1+, Oracle Database 10g Express Edition (Oracle Database XE) y 11g versin 1+. Hay dos versiones de Easysoft ODBC-Oracle Driver: una versin Oracle Call Interface (OCI) y una versin Wire Protocol (WP). El Easysoft ODBC-Oracle Driver (versin OCI) utiliza software cliente de Oracle para acceder a la base de datos Oracle. ste es el nico mtodo de acceso a la base de datos Oracle para el que Oracle ofrece soporte.

MySQL
MySQL provee drivers estndar para JDBC, ODBC y .NET dando posibilidad a los desarrolladores de construir aplicaciones de bases de datos en el lenguaje de su eleccin. Adicionalmente, una librera C les permite incrustar MySQL directamente en sus aplicaciones. DRIVERS DESARROLLADOS POR MySQL ADO.NET Driver for MySQL (Connector/NET) Pgina 25 de 183

OBASE DE DATOSC Driver for MySQL (Connector/OBASE DE DATOSC) JBASE DE DATOSC Driver for MySQL (Connector/J) C++ Driver for MySQL (Connector/C++) C Driver for MySQL (Connector/C) C API for MySQL (mysqlclient) MySQL Connector for OpenOffice.org Para elegir el mtodo de conexin a una base de primer lugar el lenguaje de programacin usado segundo el manejador de base de datos que consideraremos el sistema operativo. JDBC solamente puede usarse con el lenguaje aplicaciones sobre plataforma Windows. datos debemos tomar en cuenta en para desarrollar la aplicacin y en emplearemos, por ltimo tambin JAVA y ODBC slo funciona para

Cualquier base de datos que se pretenda utilizar debe tener su propio driver, el cul ser definido tomando en cuenta el mtodo de conexin elegido previamente. Por ejemplo, MySQL dispone de un Driver ODBC que se puede descargar desde su pgina web. Las bases de datos Access y SQL Server de Microsoft tambin tienen su driver ODBC y este ya se encuentra instalado en el Windows de fbrica.

BLOQUES DE CONTENCION Cajas Etiqueta <div></div> Define una seccin en un documento HTML e inserta retorno de carro. Se utiliza a menudo para agrupar elementos y aplicar estilos, y supuso un antes y un despus en el formateo y posicionamiento de elementos en HTML. Ejemplo: en esta seccin del documento el texto ser verde: <div style="color: green"> <h3>Esto es el titulo</h3> <p>Esto es un parrafo.</p> </div>

LAYERS EN HTML Uno de los aspectos ms importantes de la implementacin del HTML dinmico de Netscape Communicator es la creacin de una etiqueta HTML nueva con el objetivo de contener toda la funcionalidad del posicionamiento CSS. Hay que indicar que esta solucin es propietaria y que, adems, desapareci con la aparicin de la versin 6 de Netscape. Solo se usar, por tanto, si deseamos mantener la compatibilidad hacia atrs. Esta etiqueta, LAYER, contradice los principios de los estndares del consorcio W3C, que intentan separar el contenido de la forma de representarlo. Sin embargo, resulta casi imprescindible su estudio si se desean crear soluciones en DHTML compatibles con Netscape 4.x, porque, en ocasiones, esta etiqueta puede ser la nica manera de que el Netscape Communicator haga lo que nosotros queremos que haga. Ejemplo de uso:

Pgina 26 de 183

<LAYER TOP="20" LEFT="20" WIDTH="250" Z-INDEX="3"> <img src="alvarez1.jpg"> </LAYER>


equivaldra a

<DIV STYLE="position: absolute; top:20px; left:20px; width:250px; z-index=1;"> <img src="alvarez1.jpg"> </DIV>
Podemos observar que no hemos hecho ms que trasladar a HTML todos los atributos del estilo. Todos menos uno, position. Posicionamiento absoluto y relativo La etiqueta LAYER no tiene ningn parmetro equivalente a position; asume por defecto un posicionamiento absoluto. Si queremos utilizar capas con posicionamiento relativo deberemos utilizar la etiqueta ILAYER, equivalente en todo a la primera, pero que provoca que la capa en cuestin utilice un posicionamiento relativo. Posicin y tamao Los parmetros para colocar la capa se llaman igual y se utilizan para lo mismo. Son LEFT, TOP, WIDTH y HEIGHT. Slo podemos utilizar como unidades de tamao los pixels, indicando directamente el nmero sin ms aditivos. Aparte de stos, Netscape incluye los parmetros PAGEx y PAGEY. Son equivalentes a LEFT y TOP, excepto en el caso en que anidemos capas. En ese momento, y en el segundo caso, en las capas "hija" se asume que las coordenadas indicadas se refieren al interior de la capa "padre", mientras que con los parmetros page nos aseguramos de que se refieran a los mrgenes del documento. Cambio de aspecto Aunque Netscape no admite OVERFLOW en sus etiquetas (ms que nada porque el Communicator no soporta esta propiedad tampoco en CSS) si admite los recortes por medio del parmetro clip, al que deberemos asignar una lista de nmeros equivalente a la propiedad del mismo nombre, cuando le asignbamos un rectngulo. De ese modo:

<ILAYER CLIP="100,0,2,4">
equivale a:

<DIV STYLE="position: relative; clip:rect(100,0,2,4);">


Admite tambin los parmetros BGCOLOR y BACKGROUND, con los mismos efectos que tienen en la etiqueta BODY, es decir, cambiar el color o incluir una imagen en el fondo de la capa. Capas Aparte de Z-INDEX, que se utiliza de un modo equivalente al usado en CSS, las etiquetas LAYER e ILAYER admiten otro mtodo por medio de los parmetros ABOVE y BELOW. Si tenemos el siguiente cdigo:

<LAYER ID="capa1" Z-INDEX="3"> <LAYER ID="capa2" ABOVE="capa1"> <LAYER ID="capa3" BELOW="capa1">


Veremos que la etiqueta nombrada como capa3 sera la que estuviera debajo de todas las dems, capa1 en medio y capa2 encima. En cuanto a VISIBILITY, se cambia el nombre de los valores, aunque la funcionalidad sea la misma. Esos valores son SHOW y HIDE. Tambin admite el valor INHERIT, que indica a una capa "hija" que herede el valor que tenga en esta propiedad su capa "padre". Otros Aparte de los parmetros ya vistos, las capas de Netscape admiten un par de cosas ms que conviene indicar. El parmetro SRC, por ejemplo, permite introducir en la capa el contenido de la pgina HTML que le pasemos como valor. Por otro lado, las etiquetas LAYER e ILAYER admiten los eventos OnMouseOver, OnMouseOut, OnFocus, OnBlur y OnLoad, siendo sta la causa de que en ocasiones debamos usar estas etiquetas en Netscape 4.x en lugar del posicionamiento CSS. NOLAYER (Texto alternativo para los layers) El contenido que est rodeado por las etiquetas <NOLAYER> y </NOLAYER> se mostrar en navegadores que no soporten las etiquetas LAYER e ILAYER. Este contenido ser ignorado por navegadores que s soporten estas etiquetas Navigator 4.0.

Pgina 27 de 183

Note sin embargo, que los navegadores que no soporten las etiquetas LAYER e ILAYER mostrarn el contenido que haya dentro de estas etiquetas, slo que no tendrn en cuenta toda la informacin sobre el posicionamiento y mostrarn todo el contenido secuencialmente. Para arreglar esto se puede usar el atributo SRC para especificar contenido de posicionado almacenado en un fichero aparte, as no se abrir; y usar la etiqueta NOLAYER para mostrar un mensaje de advertencia a los usuarios diciendo que necesitan un navegador que soporte las etiquetas LAYER e ILAYER para ver la pgina. Sintaxis <NOLAYER> ... </NOLAYER> Ejemplo <LAYER SRC=layerContent.html></LAYER> <NOLAYER> Esta pgina te mostrar cosas interesantes si tienes un navegador que soporte la etiqueta LAYER. </NOLAYER>

Etiqueta <span> La etiqueta <span> permite agrupar varios elementos en lnea seguidos dentro de un mismo bloque (por ejemplo, varias palabras seguidas en un prrafo), para despus darles formato con la hoja de estilo. Ejemplo:

Resultado:

Frames flotantes Es posible situar en nuestras pginas web una especie de frames o marcos "flotantes", queriendo decir con esto que son como frames pero que podemos situarlos en la posicin que queramos dentro de nuestra pgina, situando mediante coordenadas su vrtice superior izquierdo. Estas ventanas son configurables, pudiendo definir adems de su posicin su tamao y otra serie de propiedades. El mayor inconveniente que encontramos con estas ventanas flotantes es que su implementacin es diferente en Internet Explorer y en Nestcape. Cada navegador posee una etiqueta y atributos diferentes para crear este tipo de marcos, no reconociendo uno las marcas del otro. Esta es otra de las consecuencias de la lucha entre ambas compaas, que como siempre hemos de pagar los creadores web. Internet Explorer 3.0 y superiores implementa las etiquetas <IFRAME>...</IFRAME> , que van a definir el principio y fin del marco flotante. Estas etiquetas deben situarse dentro del cuerpo de la pgina que contiene al marco, es decir, entre <BODY> y </BODY>. Los principales atributos de la etiqueta <IFRAME> son: * NAME=" nombre " , anlogo al atributo de <FRAME>, sirve para identificar unvocamente al marco flotante, con vistas a referenciar su contenido mediante un enlace por medio del parmetro TARGET.

Pgina 28 de 183

* WIDTH= " x " , donde x = n pxeles. Con este atributo definimos la anchura que va a tener el marco flotante. * HEIGHT= " x " , donde x = n pxeles. Con este atributo definimos la altura que va a tener el marco flotante. * ALIGN= " left / center / right " , Va a definir si el marco va a estar alineado a la izquieda en la ventana del navegador, centrado o a la derecha. Ejemplo.- (Slo para I.Explorer) <html> <head> </head> <body> <iframe align="left" src="a.html"></iframe> <iframe align="center" src="b.html"></iframe> </html> * FRAMEBORDER= " 0 / 1 " , Este atributo hace que el marco aparezca sin borde o con borde (valor por defecto) respectivamente. Ejemplo.- (Slo para I.Explorer) <html> <head> </head> <body> <iframe src="a.html" frameborder="0" align="center" ></iframe> </html> * VSPACE= " x " , donde x = n pxeles. Nos sirve para posicionar el marco, y define la distancia entre el borde superior del marco y el lmite superior de la ventana del navegador. * HSPACE= " x " , donde x = n pxeles. Nos sirve para posicionar el marco, y define la distancia entre el borde izquierdo del marco y el lmite izquierdo de la ventana del navegador. Ejemplo.- (Slo para I.Explorer) <html> <head> </head> <body> <iframe src="a.html" hspace="100" vspace="20"></iframe> </html> * MARGINHEIGHT= " x " , donde x = n pxeles. Nos define el espacio en pxeles que va a haber entre el borde superior del marco y su contenido. * MARGINWIDTH= " x " , donde x = n pxeles. Nos define el espacio en pxeles que va a haber entre el borde izquierdo del marco y su contenido. Ejemplo.- (Slo para I.Explorer) <html> <head> </head> <body> <iframe src="a.html" frameborder="1" marginwidth="60" marginheight="30"></iframe> </html> * SCROLLING= " yes / no / auto " , que nos va a definir si el marco va a tener barra deslizadora siempre, nunca o slo cuando sea necesario por exceder el contenido al tamao del mismo. Su valor por defecto es auto . * SRC= " ruta pgina html " , que nos va a definir la pgina web que se va a cargar dentro del marco flotante. Podemos especificar bien la ruta completa de la pgina en el directorio de nuestro servidor web o bien una URL completa de Internet. * STYLE= " parmetro-valor / parmetro-valor / " , Este atributo es una aplicacin directa de las Hojas de Estilo en Cascada (CSS), y nos permiten definir la posicin y tamao del marco en la ventana del navegador. Si el frame flotante no contiene

Pgina 29 de 183

una pgina web referenciada mediante SRC y contiene texto, tambin es posible aplicar estilos a este texto, como color, fuente, tamao, etc. Ejemplo.- (Slo para I.Explorer) <html> <head> </head> <body> <iframe src="a.html" style="position:absolute; left:100px;top:140px;width:400px;height:150px;" > </iframe> </html> * CLASS= " clase " . Anlogo al anterior, pero ahora refiriendo el estilo del marco flotante (posicin y tamao) de acuerdo con una clase de estilos definida en la seccin de la pgina que contiene al marco o en un archivo externo de extensin ".css" * ID= " identificador " . En todo semejante al anterior, pero con la diferencia que ahora el nombre de identificador asignado debe ser nico para cada marco en concreto. Tambin posibilita cambiar dinmicamente las propiedades del marco usando un lenguaje de script, como JavaScript. Si queremos, podemos colocar un texto alternativo entre las etiquetas <IFRAME>> e </IFRAME>, con el objeto de que aquellas personas cuyo navegador no soporte los marcos flotantes puedan contemplar un mensaje alternativo.

METODOS DE PETICION HTTP Mtodo GET HEAD POST PUT Significado Devuelve el recurso identificado en la URL pedida. Funciona como el GET, pero sin que el servidor devuelva el cuerpo del mensaje. Es decir, slo se devuelve la informacin de cabecera. Indica al servidor que se prepare para recibir informacin del cliente. Suele usarse para enviar informacin desde formularios. Enva el recurso identificado en la URL desde el cliente hacia el servidor.

OPTIONS Pide informacin sobre las caractersticas de comunicacin proporcionadas por el servidor. Le permite al cliente negociar los parmetros de comunicacin. TRACE DELETE Inicia un ciclo de mensajes de peticin. Se usa para depuracin y permite al cliente ver lo que el servidor recibe en el otro lado. Solicita al servidor que borre el recurso identificado con el URL.

CONNECT Este mtodo se reserva para uso con proxys. Permitir que un proxy pueda dinmicamente convertirse en un tnel. Por ejemplo para comunicaciones con SSL.

INTRANET

Pgina 30 de 183

Intranet es la aplicacin de los estndares Internet dentro de un mbito corporativo para mejorar la productividad, reducir costos y mantener los sistemas de informacin existentes. Es una forma de poner al alcance de los trabajadores todo el potencial de la empresa, para resolver problemas, mejorar los procesos, construir nuevos recursos o mejorar los ya existentes, divulgar informacin de manera rpida y convertir a estos trabajadores en miembros activos de una red corporativa, o sea da al usuario la informacin que este necesita para su trabajo. Pretende que cada cual tenga la informacin necesaria en el momento oportuno sin que tenga que recurrir a terceros para conseguirla. Como puede verse una Intranet es una copia de Internet dentro de la empresa. En una Intranet se pueden plasmar los dos grandes bloques de servicios o aplicaciones de Internet: Las que permiten la comunicacin: correo electrnico con las listas de distribucin, las News,

Usenet o foros de debate, las Talk e IRC o charlas electrnicas, o Mbone o la transmisin de imgenes y sonido en tiempo real, todo ello entre los miembros de una misma empresa u organismo y de estos con el exterior. Los servicios o aplicaciones que permiten investigar y encontrar informacin: FTP (File

Transfer Protocol), o transferencias de ficheros, Telnet o acceso y consulta a ordenadores remotos, bases de datos, etc., todo ello en el mbito interno de la propia empresa u organizacin, con empresas del mismo grupo, con empresas afines, o con cualquier otra que pueda interesarle. Las Intranets por lo tanto, pueden ayudar al intercambio de informacin de datos, ideas, entre trabajadores de una empresa de todos los niveles. Se trata de compartir informacin no de acapararla y adaptarla a las necesidades de los usuarios. Una Intranet bien diseada puede ahorrar tiempo y dinero, ya que reduce drsticamente los costes y el tiempo de los procesos de generacin, duplicacin y uso de los datos. EXTRANET A principios de los noventa Internet supuso una gran revolucin, a continuacin Intranet fue el siguiente paso para aprovechar los recursos y la tecnologa de Internet pero en el mbito de las empresas u organizaciones y actualmente Extranet, aunque la diferencia con la Intranet sea difusa Pgina 31 de 183

puesto que es la interseccin de distintas Intranets, parece que es el futuro, con la integracin de las redes anteriores, que permitir una revolucin en la estructura y operaciones comerciales de las empresas, instituciones y organismos pblicos y privados. Una Extranet es una red externa de colaboracin que utiliza tambin la tecnologa Internet. Para algunos es una parte de las Intranets de la empresa que se hacen accesibles a otras empresas u organizaciones. Es una conexin entre empresas a travs de Internet, una herramienta que permite la colaboracin entre empresas. Son comunicaciones entre empresa y proveedores, de empresa a empresa, de empresas a consumidores. Las Extranets son el puente entre la red pblica Internet y las redes privadas corporativas o Intranets, o sea un canal que conecta mltiples y diversas organizaciones online, donde las que comparten informacin puedan comunicarse con el fin de conseguir los objetivos comerciales sealados. Las aplicaciones de esta red pueden ser entre grupos de empresas que comparten la misma informacin o las mismas ideas, entre empresas que participan o colaboran en el desarrollo de alguna nueva aplicacin, para los catlogos de productos, para la gestin y el control y desarrollo de un mismo proyecto de trabajo, para programas de formacin, para que proveedores y clientes intercambien ofertas, promociones, que asociaciones, universidades o la misma administracin participen en actividades como gestin de bolsas de trabajo, prcticas de investigacin, programas de formacin. Internet, Intranet y Extranet tienen en comn: La tecnologa subyacente. La infraestructura que se basa en estndares que hacen posible compartir recursos comunes. La red fsica debe basarse en el protocolo IP. Internet ofrece acceso a informacin pblica a un grupo ilimitado de personas en todo el mundo. Una intranet permite acceso a la informacin y recursos privados de una organizacin a un nmero limitado de usuarios autorizados. Dentro de la Intranet dichos usuarios suelen tener restricciones, es decir, que no tienen acceso al total de los recursos e informacin disponibles. Pgina 32 de 183

Lo que las hace diferentes es:

Una Extranet es un punto medio entre la Internet y la Intranet, ya que hace posible que usuarios que no pertenecen a la organizacin (previamente autorizados), tengan acceso a su Intranet.

Las aplicaciones web pueden ser ejecutadas en cualquier computadora que cuente con un navegador, independientemente del sistema operativo que tenga instalado o la topologa lgica que se utilice para crear la red.

Software de gestin de datos: Este software se encarga de la manipulacin y gestin de los datos almacenados y requeridos por las diferentes aplicaciones. Normalmente este software se aloja en el servidor. Software de desarrollo: este tipo de software se aloja en los clientes y solo en aquellos que se dedique al desarrollo de aplicaciones. Software de interaccin con los usuarios: Tambin reside en los clientes y es la aplicacin grfica de usuario para la manipulacin de datos, siempre claro a nivel usuario (consultas principalmente). Ventajas y desventajas del modelo cliente-servidor Ventajas: * Centralizacin del control de los recursos, datos y accesos. * Facilidad de mantenimiento y actualizacin del lado del servidor: Esto es porque el lado del servidor se puede mantener o actualizarfcilmente. Por ejemplo, una actualizacin se aplica a un nicoservidor, pero los beneficios los obtienen mltiples clientes generalmente sin necesidad de que stos actualicen nada. * Toda la informacin es almacenada en el lado del servidor, que suele tener mayor seguridad que los clientes. * Hay muchas herramientas cliente-servidor probadas, seguras y amigablespara usar. Desventajas: * Si el nmero de clientes simultneos es elevado, el servidor puede saturarse. Esto sucede con menor frecuencia en las redes P2P. * Frente a fallas del lado del servidor, el servicio queda paralizado para los clientes. Algo que no sucede en una red P2P. Un cliente FTP basado en web no es ms que un cliente FTP al cual podemos acceder a travs de nuestro navegador web sin necesidad de tener otra aplicacin para ello. El protocolo de transferencia es el sistema de reglas mediante el cual se transfiere informacin entre los servidores y los clientes (por ejemplo los navegadores). Pgina 33 de 183

Un dominio se compone normalmente de tres partes: en www.masadelante.com, las tres uves dobles (www), el nombre de la organizacin (masadelante) y el tipo de organizacin (com). Hosting (alojamiento o tambin conocido como hospedaje web, alojamiento web, web sitehosting, web hosting o webhosting) es un negocio que consiste en alojar, servir, y mantener archivos para uno o ms sitios web. Los alojamientos dedicados consisten en el uso exclusivo de todo un servidor por un nico cliente, mientras que en los alojamientos compartidos varios clientes comparten un servidor.

ESTRUCTURAS BASICAS DE SITIOS WEB: ARBOL

En esta estructura existe una pgina principal (la home page en terminologa inglesa) desde la que se puede llegar a otras pginas de la web. Estas otras pginas a su vez son un nodo para llegar a otro grupo de pginas. De esta manera llegaremos a tener las pginas agrupadas en niveles, de manera que para llegar desde el primero al ltimo se deben atravesar los intermedios. Es una estructura muy jerarquizada y algo compleja y difcil para navegar. Puede ser til para estructurar nuestro sitio en canales o grupos de pginas independientes. En cualquier caso no conviene que el nmero de niveles sea excesivo, nunca ms de 3. Piensa que si queremos ir de una pgina a otra en el mismo nivel en otra rama del rbol, debemos retroceder hasta la raz para luego alcanzar la pgina de destino. LISTAS Esta forma de organizar el sitio es totalmente opuesto al anterior. Realmente no existe una pgina raz o principal, lo que tenemos es una especie de lista de pginas donde cada una tiene dos vecinas: una a la izquierda y otra a la derecha, excepto las pginas de los extremos. Una variante presentara las pginas primera y ltima enlazadas. Esta forma de organizar un sitio es muy parecida a un libro donde cada pgina sera un captulo del mismo. Pasamos del primer al ltimo captulo a travs de los intermedios. Es una implementacin muy adecuada para manuales o para procesos donde el usuario deba recorrer forzosamente una serie de pginas. MIXTA

Esta estructura aprovecha las ventajas de las dos anteriores. Las pginas estn jerarquizadas en niveles, pero dentro de cada nivel se organizan como listas, de forma que podemos recorrer todas las pginas de un mismo nivel sin tener que salir de l. En realidad ni el rbol puro ni las listas puras son del todo eficientes, por lo que es habitual mezclar ambas estructuras. RED

Pgina 34 de 183

Las pginas del sitio tambin pueden estar totalmente interconectadas, es decir, desde cada pgina podemos ir a cualquier otra del sitio. Realmente la interconexin de absolutamente todas las pginas sera un caso extremo. Es una estructura de apariencia algo anrquica en la que hay que cuidar mucho de no dejar enlaces abiertos, es decir, apuntando a una pgina inexistente. Adems debemos evitar que el usuario se pierda en una maraa de enlaces. Por todo esto ello es necesario planificarla muy bien. MAPA DEL SITIO WEB Representacin grfica o textual de un sitio web. El mapa de un sitio web puede ser un documento que se utiliza para planificar el diseo de la web, o puede ser una pgina web donde se listan todas -o las ms importantes- pginas web de un sitio (generalmente organizadas de alguna manera). Modelos de seguridad. Son mecanismos abstractos que permiten poner en prctica una determinada poltica de seguridad. En relacin con el control de acceso tenemos los siguientes estndares: MAC (Mandatory Access Control):MAC es un sistema centralizado, en el cual las decisiones de seguridad no recaen en el propietario de un objeto y es el sistema el que fuerza el cumplimiento de las polticas por encima de las decisiones de los sujetos, adems de permitir una granularidad y control mayores. Desde el punto de vista de la seguridad, MAC es ms completo que DAC. DAC (Discretionary Access Control): Es una forma de acceso a recursos basada en los propietarios y grupos a los que pertenece un objeto. Se dice que es discrecional en el sentido de que un sujeto puede transmitir sus permisos a otro sujeto. La mayora de sistemas Linux ahora mismo usan este tipo de acceso, estando los permisos orquestados por grupos y usuarios, pudiendo un usuario normal cambiar los permisos de los archivos que posee con el comando chmod. Control de Acceso Basado en Roles (RBAC):Trata de definir los permisos basndose en los roles establecidos en la organizacin, para luego asociar adecuadamente a los usuarios con los roles que tengan derecho a ejercer. Se dice que RBAC es neutral con respecto a la poltica, ya que permite modelar otros modelos previos, que han demostrado limitaciones, como son DAC y MAC. Formas de diagnstico de seguridad. Software de verificacin. Google Skipfish. Permite detectar vulnerabilidades en las aplicaciones web.Es compatible con Linux, Mac y Windows y puede ser descargada desde el sitio de Google.Su finalidad es detectar agujeros de seguridad en aplicaciones web. Nikto2. Es de cdigo abierto y permite llevar a cabo pruebas exhaustivas de los servidores web para varios artculos.Los plugins se actualizan con frecuencia y se puede actualizar de forma automtica. Pgina 35 de 183

Nessus. Es el lder mundial en escneres activos de vulnerabilidad.Con alta velocidad de descubrimiento, la auditora de configuracin, el perfil activo, el descubrimiento de los datos sensibles y anlisis de la vulnerabilidad de su seguridad.

HOJAS DE ESTILO: Definicin. son conjuntos de instrucciones, a veces en forma de archivo anexo, que se asocian a los archivos de texto y se ocupan de los aspectos de formato y de presentacin de los contenidos: tipo, fuente y tamao de letras, justificacin del texto, colores y fondos, etc.

Pgina 36 de 183

Pgina 37 de 183

Bases de datos

Bases de datos en la Web


Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la informacin de un sitio web. Ventajas Proporcionar informacin actualizada Facilitar la realizacin de bsquedas Disminuir los costes de mantenimiento Implementar sistemas de control de acceso Almacenar preferencias de los usuarios

Esquema bsico de un sitio web soportado por bases de datos:

Instalacin y config. de MySQL Pgina 38 de 183

Pasos: Descargar Descomprimir e instalar Configurar Arrancar Conectar con el servidor Instalar la extensin para MySQL de PHP

Bases de datos

Caractersticas de MySQL Modelo relacional, multiusuario Tipos de datos Numricos tinyint, smallint, mediumint, int, integer, bigint decimal, float, numeric Fecha y hora date, time, datetime, year, timestamp Cadena char, varchar tinytext, text, mediumtext, longtext tinyblob, blob, mediumblob, longblob enum, set Debe elegirse adecuadamente el tipo y el tamao de cada campo Operadores
Aritmticos +, -, *, / Comparacin =, !=, <=, <, >=, >, IS NULL, IS NOT NULL Lgicos not (!), and (&&), or (||), xor

Funciones
Funciones de cadena Funciones de comparacin de cadenas Funciones numricas Funciones de fecha y hora Funciones de agregado

Pgina 39 de 183

phpMyAdmin es una herramienta para la administracin del servidor de bases de datos MySQL
Dispone de una interfaz grfica y es de libre distribucin Permite realizar todo tipo de operaciones sobre bases de datos: crear, borrar y modificar tablas consultar, insertar, modificar y eliminar datos definir usuarios y asignar permisos realizar copias de seguridad etc Est escrita en php y se ejecuta desde el navegador

Bases de datos

Si est instalada en la carpeta phpmyadmin, se ejecuta escribiendo en la barra de direcciones del navegador la url http://localhost/phpmyadmin/ Puede administrar bases de datos locales y remotas

Lenguaje SQL
SQL (Structured Query Language) es el lenguaje que se utiliza para comunicarse con la base de datos Procedimiento de comunicacin con la base de datos:

Pgina 40 de 183

Bases de datos

Las instrucciones ms habituales son SELECT, INSERT, UPDATE, DELETE


Veamos su sintaxis bsica y algunos ejemplos de uso Para ello utilizaremos una tabla noticias con cinco campos: un identificador nico de la noticia, el ttulo de la noticia, el texto de la noticia, la categora de la noticia y la fecha de publicacin de la noticia

noticias id ttulo texto categora fecha


SELECT
Sintaxis: SELECT expresin FROM tabla [WHERE condicin] [ORDER BY {unsigned_integer | col_name | formula} [ASC | DESC] ,...] [LIMIT [offset,] row_count | row_count OFFSET offset] Ejemplo: SELECT * from noticias WHERE fecha=CURDATE() LIMIT 10 ORDER BY fecha DESC Obtiene las noticias del da con un tope mximo de 10, ordenadas de la ms reciente a la ms antigua

Pgina 41 de 183

INSERT
Sintaxis: INSERT [INTO] nombre_tabla [(nombre_columna,...)] VALUES ((expresin | DEFAULT),...), (...),... INSERT [INTO] nombre_tabla SET nombre_columna=(expresin | DEFAULT), ... Ejemplo: INSERT INTO noticias (id, titulo, texto, categoria, fecha) VALUES (37, Nueva promocin en Nervin, 145 viviendas de lujo en urbanizacin ajardinada situadas en un entorno privilegiado, promociones, CURDATE()) Inserta una noticia con los valores indicados

Bases de datos

UPDATE
Sintaxis: UPDATE nombre_tabla SET nombre_columna1=expr1 [, nombre_columna2=expr2 ...] [WHERE condicin] [ORDER BY ...] [LIMIT row_count] Ejemplo: UPDATE noticias SET categoria = ofertas WHERE id=37 Modifica la categora de la noticia con id=37 de la tabla

DELETE
Sintaxis: DELETE FROM nombre_tabla [WHERE condicin] [ORDER BY ...] [LIMIT row_count] Ejemplo: DELETE FROM noticias WHERE fecha < CURDATE()-10 Borra las noticias con ms de 10 das de antigedad

Las funciones concretas de MySQL que realizan estas operaciones son:


Conectar con el servidor de bases de datos: mysql_connect() Seleccionar una base de datos: mysql_select_db() Enviar la instruccin SQL a la base de datos: mysql_query() Obtener y procesar los resultados: mysql_num_rows() y mysql_fetch_array() Cerrar la conexin con el servidor de bases de datos: mysql_close()

Pgina 42 de 183

Acceso a bases de datos MySQL


Conectar con el servidor de bases de datos: mysql_connect() Devuelve un identificador de la conexin en caso de xito y false en caso contrario Sintaxis: $conexion = mysql_connect (servidor, username, password);

Bases de datos

Ejemplo: $conexion = mysql_connect (localhost, cursophp, ) or die (No se puede conectar con el servidor); $conexion = mysql_connect (localhost, cursophp-ad, php.hph) or die (No se puede conectar con el servidor);

Seleccionar una base de datos: mysql_select_db()


Devuelve true en caso de xito y false en caso contrario Sintaxis: mysql_select_db (database); Ejemplo: mysql_select_db (lindavista) or die (No se puede seleccionar la base de datos);

Enviar la instruccin SQL a la base de datos: mysql_query()


Devuelve un identificador o true (dependiendo de la instruccin) si la instruccin se ejecuta correctamente y false en caso contrario Sintaxis: $consulta = mysql_query (instruccin, $conexion); Ejemplo: $consulta = mysql_query (select * from noticias, $conexion) or die (Fallo en la consulta);

Obtener y procesar los resultados: mysql_num_rows(), mysql_fetch_array()


En el caso de que la instruccin enviada produzca unos resultados, mysql_query() devuelve las filas de la tabla afectadas por la instruccin mysql_num_rows() devuelve el nmero de filas afectadas Para obtener las distintas filas del resultado se utiliza la funcin mysql_fetch_array(), que obtiene una fila del resultado en un array asociativo cada vez que se invoca Sintaxis:

Pgina 43 de 183

$nfilas = mysql_num_rows ($consulta); $fila = mysql_fetch_array ($consulta);

Comunicacin de Datos

3.- REDES
Terminologa de networking Redes de datos Las redes de datos se desarrollaron como consecuencia de aplicaciones comerciales diseadas para microcomputadores. A principios de la dcada de 1980 networking se expandi enormemente, aun cuando en sus inicios su desarrollo fue desorganizado.

Redes de rea local (LAN)


Las LAN constan de los siguientes componentes: Computadores Tarjetas de interfaz de red Dispositivos perifricos Medios de networking Dispositivos de networking Algunas de las tecnologas comunes de LAN son: Ethernet Token Ring FDDI

Redes de rea metropolitana (MAN)


La MAN es una red que abarca un rea metropolitana, como, por ejemplo, una ciudad o una zona suburbana. Una MAN generalmente consta de una o ms LAN dentro de un rea geogrfica comn.

Redes de rea amplia (WAN)


Algunas de las tecnologas comunes de WAN son: Mdems Red digital de servicios integrados (RDSI) Lnea de suscripcin digital (DSL - Digital Subscriber Line) Frame Relay Series de portadoras para EE.UU. (T) y Europa (E): T1, E1, T3, E3 Red ptica sncrona (SONET )

Redes de rea de almacenamiento (SAN) Pgina 44 de 183

Una SAN es una red dedicada, de alto rendimiento, que se utiliza para trasladar datos entre servidores y recursos de almacenamiento. Al tratarse de una red separada y dedicada, evita todo conflicto de trfico entre clientes y servidores

Red privada virtual (VPN)


Una VPN es una red privada que se construye dentro de una infraestructura de red pblica, como la Internet global.
Comunicacin de Datos

Ancho de banda
El ancho de banda se define como la cantidad de informacin que puede fluir a travs de una conexin de red en un perodo dado. El ancho de banda analgico se mide en funcin de la cantidad de espectro magntico ocupada por cada seal. La unidad de medida bsica del ancho de banda analgico es el hercio (Hz), o ciclos por segundo. Las unidades de medida ms comnmente usadas son el kilohercio (KHz), el megahercio (MHz), y el gigahercio (GHz). Estas unidades se utilizan para describir las frecuencias de los telfonos inalmbricos, que generalmente operan a 900 MHz o a 2,4 GHz. El ancho de banda digital, toda la informacin se enva como bits, independientemente del tipo de informacin del cual se trate. Voz, video y datos se convierten todos en corrientes de bits al ser preparados para su transmisin a travs de medios digitales. El ancho de banda en redes inalmbricas son las unidades que se usan para describir las frecuencias 802.11a y 802.11b, que operan a 5GHz y 2,4 GHz. Comunicaciones de par a par Para que los datos puedan viajar desde el origen hasta su destino, cada capa del modelo OSI en el origen debe comunicarse con su capa par en el lugar destino. Esta forma de comunicacin se conoce como de par-apar. Durante este proceso, los protocolos de cada capa intercambian informacin, denominada unidades de datos de protocolo (PDU). Cada capa de comunicacin en el computador origen se comunica con un PDU especfico de capa, y con su capa par en el computador destino.

Pruebas de encapsulamiento de los datos


El proceso de los datos son incorporados al ordenador hasta que se trasmiten al medio se llama encapsulacin. Estos datos son formateados, segmentados, identificados con el direccionamiento lgico y fsico para finalmente ser enviados al medio. A cada capa del modelo osi le corresponde una PDU Unidad de datos Posiblemente que la cantidad de los datos sea demasiada, la capa de transporte desde el origen se encarga de segmentarlos para s ser empaquetados debidamente, esta misma capa del destino se encargara de resemblar los datos y colocarlos de forma secuencial, ya que no siempre no llegan a su destino en el orden en que han sido segmentados, as mismo acorde al protocolo que est utilizando habr correccin de errores.

Pgina 45 de 183

Estos segmentos son empaquetados (paquetes o datagramas) e identificados en la capa de red con la direccin lgica o ip correspondiente al origen y destino. Ocurre lo mismo con la direccin MAC en la capa de enlace de datos formndose las tramas o frames para ser transmitidos a travs de una interfaz. Finalmente las tramas son enviadas al medio desde la capa fsica. ENCAPSULAMIENTOS DE DATOS: DATOS DATOS SEGMENTADOS: DATOS, DATOS, DATOS ENCABEZADO IP: ENCABEZADO IP, DATOS, FCS ENCABEZADO MAC: ENCABEZADO MAC, ENCABEZADO IP, DATOS FCS. Dominios de colisin y difusin Ethernet es una tecnologa conflictiva, todos los equipos de trabajo que se conectan al mismo medio fsico reciben las seales enviadas por otros dispositivos. Si dos estaciones transmiten a la vez, se genera una
Comunicacin de Datos

colisin. Si no existieran mecanismos que detectasen y corrigiesen los errores de estas colisiones, Ethernet no podra funcionar. En el diseo de una red se debe tener especial cuidado con los llamados: Dominios de Colisin: Grupo de dispositivos conectados al mismo medio fsico, de tal manera que si dos dispositivos acceden al medio al mismo tiempo, el resultado ser una colisin entre las dos seales. Se produce un consumo inadecuado de recursos y de ancho de banda. Dominio de difusin (Broadcast): Grupo de dispositivos de la red enva y reciben mensajes de difusin entre ellos. Una cantidad excesiva de estos mensajes de difusin entre ellos. Una cantidad excesiva de estos mensajes de difusin provocara un bajo rendimiento en la red, una cantidad exagerada (tormenta) dar como resultado el mal funcionamiento de la red hasta tal punto de poder dejarla completamente congestionada. Los hubs tienen un nico dominio de colisin, eso quiere decir que s que si dos equipos provocan una colisin en un segmento asociado a un puerto del hubs, todos los equipos provocan una colisin en un segmento asociado a un puerto del hubs, todos los dems dispositivos aun estando en diferentes puertos se vern afectados. Si una estacin enva un Broadcast, debido a que un hub tambin tiene un solo dominio de difusin.

CSMA / CD acceso mltiple con deteccin de portadora (carrier) y deteccin e colisiones. Varios puestos
pueden tener acceso al medio y que, para que un puesto pueda acceder a dicho medio, deber detectar la portadora para asegurarse de que ningn otro puesto este utilizndolo. Si el medio se encuentra en uso, el puesto proceder a mantener en suspenso l envi de datos. En caso de que haya dos puestos que no detectan ningn otro trfico, ambos trataran de trasmitir al mismo tiempo, dando como resultado una colisin. A partir esta colisin las estaciones emiten una seal de congestin para asegurase de que existe una colisin y se generas un algoritmo de espera con el que las estaciones retransmitirn aleatoriamente.

Modelo OSI
El modelo de referencia de Interconexin de Sistemas Abiertos (OSI) lanzado en 1984 fue el modelo de red descriptivo creado por ISO. Proporcion a los fabricantes un conjunto de estndares que aseguraron una mayor compatibilidad e interoperabilidad entre los distintos tipos de tecnologa de red producidos por las empresas a nivel mundial. Ventajas del modelo OSI Reduce la complejidad Estandariza las interfaces Facilita el diseo modular Asegura la interoperabilidad de la tecnologa

Pgina 46 de 183

Comunicacin de Datos

Las capas del modelo OSI.

Pgina 47 de 183

Comunicacin de Datos

Dispositivos de networking que se utilizan en las capas del Modelo OSI


Capa Fsica: Corresponden los medios, (cobre, fibra, RF), los conectores, transeivers (adaptadores), repetidores y hubs. Ninguno de ellos manipula los datos transmitidos si no que solo se encargan de transportarlos y propagarlos por la red. Enlace de Datos: Se diferencia perfectamente los dominios de colisin y los dominios de difusin. Los Puentes y los Switches dividen a la red en segmentos, estos a su vez crean dominios de colisin. Una colisin producida en un segmento conectado a un switch no afectar a los dems segmentos conectados al mismo switch. Sin embargo los dispositivos de capa 2 no crean dominios de broadcast o difusin. Un switch de 12 puertos utilizados tendr 12 dominios de colisin y 1 de difusin. Capa de Red: Los routers en la capa de red del modelo OSI separando los segmentos en dominios de colisin y difusin nicos. Estos segmentos estn identificados por una direccin de red que permitir alcanzar las estaciones finales. Los routers cumplen dos funciones bsicas que son la de enrutar y conmutar los paquetes.

Modelo TCP/IP
La capa de aplicacin La capa de aplicacin del modelo TCP/IP maneja protocolos de alto nivel, aspectos de representacin, codificacin y control de dilogo. Transferencia de archivos: TFTP,FTP,NFS, Correo Electrnico: SMT, Conexin remota: Telnet, rlogin, Administracin de red: SNMP*, Gestin de nombres: DNS La capa de transporte La capa de transporte proporciona servicios de transporte desde el host origen hacia el host destino. Esta capa forma una conexin lgica entre los puntos finales de la red, el host transmisor y el host receptor. Los servicios de transporte incluyen Protocolo de control de trasmisin Orientado a conexin (TCP) y Protocolo de Datagrama de Usuario no orientado a conexin (UDP). La capa de Internet El propsito de la capa de Internet es seleccionar la mejor ruta para enviar paquetes por la red. El protocolo principal que funciona en esta capa es el Protocolo de Internet (IP). El IP ejecuta las siguientes operaciones: Define un paquete y un esquema de direccionamiento. Transfiere los datos entre la capa Internet y las capas de acceso de red. Enruta los paquetes hacia los hosts remotos. El Protocolo de mensajes de control en Internet (ICMP) suministra capacidades de control y envo de mensajes. El Protocolo de resolucin de direcciones (ARP) determina la MAC, para las direcciones IP conocidas. El Protocolo de resolucin inversa de direcciones (RARP) determina IP cuando se conoce la direccin MAC.

La capa de acceso de red


Capa de host a red maneja todos los aspectos que un paquete IP requiere para efectuar un enlace fsico real con los medios de la red. Tecnologa LAN y WAN, la capas fsica y de enlace de datos del modelo OSI. Las funciones de la capa de acceso de red incluyen la asignacin de direcciones IP a las direcciones fsicas y el encapsulamiento de los paquetes IP en tramas.

Comunicacin de Datos

Dispositivos de networking Pgina 48 de 183

Los equipos que se conectan de forma directa a un segmento de red; estos dispositivos se clasifican en dos grupos. 1.- Dispositivos de usuario final (Host). Los dispositivos de usuario final incluyen los computadores, impresoras, escneres, y dems dispositivos que brindan servicios directamente al usuario.

2.- Dispositivos de red son todos aquellos que conectan entre s a los dispositivos de usuario final, posibilitando su intercomunicacin.

Topologa de red
La topologa de red define como la estructura fsica y lgica que forma una red. a).- Topologa fsica, que es la disposicin real de los cables o medios. b).- Topologa lgica, que define la forma en que los hosts acceden a los medios para enviar datos. Los dos tipos ms comunes de topologas lgicas son: Broadcast Transmisin de tokens.
Topologas Fsicas Topologas Lgicas

Comunicacin de Datos

Protocolos de red Pgina 49 de 183

Un protocolo es un conjunto de reglas y convenciones que rigen un aspecto particular de cmo los dispositivos de una red se comunican entre s. Los protocolos determinan el formato, la sincronizacin, la secuenciacin y el control de errores en la comunicacin de datos. Los protocolos controlan todos los aspectos de la comunicacin de datos, que incluye Estas normas de red son creadas y administradas por una serie de diferentes organizaciones y comits. Entre ellos se incluyen el Instituto de Ingeniera Elctrica y Electrnica (IEEE), el Instituto Nacional Americano de Normalizacin (ANSI), la Asociacin de la Industria de las Telecomunicaciones (TIA), la Asociacin de Industrias Electrnicas (EIA) y la Unin Internacional de Telecomunicaciones (UIT), antiguamente conocida como el Comit Consultivo Internacional Telegrfico y Telefnico (CCITT).

Medios de Ethernet y requisitos de conector


Antes de seleccionar la implementacin de Ethernet, tenga en cuenta los requisitos de los conectores y medios para cada una de ellas. Tambin tenga en cuenta el nivel de rendimiento que necesita la red.

DIRECCIONAMIENTO IP
Una direccin IP es una secuencia de 1s y 0s de 32 bits, se representa como 4 nmeros decimales separados por puntos. En un DIRECCIONAMIENTO JERRQUICO la direccin IP consta de 2 partes, la primera identifica la direccin de la red donde se conecta el sistema y la segunda identifica el sistema en particular de esa red (el hosts, la mquina particular) y contiene diferentes niveles. Las direcciones ip se dividen en clases:
CLASE A B C D E INICIO DECIMAL 1 - 126 128 - 191 192 - 223 224 - 239 240 - 254 INICIO BIN 0 10 110 1110 MASCARA DE SUBRED 00000000-01111111 R.H.H.H 255.0.0.0 10000000-10111111 R.R.H.H 255.255.0.0 11000000-11011111 R.R.R.H 255.255.255.0 11100000-11101111 USO MULTICAST RESERVADO PARA INVESTIGACIN IETF RANGO BINARIO OCTETOS

Pgina 50 de 183

Comunicacin de Datos

LAS SUBREDES se realizan cuando se dividen en redes ms pequeas, para su mayor aprovechamiento y
seguridad en bajo nivel en la LAN. DADA LA DIRECCIN IP 192.10.8.0 Y SE DESEAN CREAR 6 SUBREDES UTILIZABLES, DETERMINA: A. determinar la clase, los octetos de red y de host, ya que solo se trabajar con los octetos de host. B. determina el nmero de bits prestados que se requieren, con la frmula: 2n-2>subredes requeridas. (de izquierda a derecha en la parte de host). C. determinar: mascara de subred por default y mascara de subred especifica (a los bits prestados asignarle 1 binario y a los que quedan para host asignarle 0 binario; despus convertir a decimal) D. realiza la tabla mostrando: nmero de subred, bits por subred, num de hosts por subred, direcciones de subred, nmeros asignados a los hosts. (determina el rango restando a 256 el resultado del ultimo octeto, decimal del paso c) E. grfica, indicando los nmeros de: la red, subredes y hosts

A. 192.10.8.0 CLASE C
R.R.R.H

B. 2n-2>28

23-2>28 SE PEDIRN PRESTADOS 3 BITS: 23=8 SE PUEDEN CREAR 8 SUBREDES 23-2=6 DE LAS CUALES 6 SERN UTILIZABLES. POR LO TANTO QUEDAN 5 BITS PARA HOST 25=32 SE PUEDEN CONECTAR 32 HOSTS A CADA SUBRED 23-2=30 DE LOS CUALES 30 HOST SERN UTILIZABLES *Se restan dos porque la 1 se usa para Red y la ultima para Broadcast = 255.255.255.0 = 192.10.8.224

C. MASCARA DE SUBRED POR DEFAULT:


MASCARA DE SUBRED ESPECFICA: RED

192.10.8. 111 00000 SUBRED HOST

D. RANGO = 256-224 = 32
NUM. SUBRED 0 1 2 3 4 5 6 7 BITS DE SUBRED 000 001 010 011 100 101 110 111 NUM. HOST DECIMAL 0 - 31 32 - 63 64 - 95 96 - 127 128 - 159 160 - 191 192 - 223 224 - 255 DIRECCIN DE SUBREDES 192.10.8.0 192.10.8.32 192.10.8.64 192.10.8.96 192.10.8.128 192.10.8.160 192.10.8.192 192.10.8.224 NUM. DE HOSTS No se usa .33 .63 192.10.8 .65 - .95 192.10.8 .97 - . 127 192.10.8 .129 - . 159 192.10.8 .161 - . 191 192.10.8 .193 - . 223 No se usa 192.10.8

Pgina 51 de 183

Comunicacin de Datos

Pgina 52 de 183

. 192.10.8.192 192.10.8.160 192.10.8.96 192.10.8.128 192.10.8.64 192.10.8.32

192.10.8.0

Pgina 53 de 183

192.10.8.192 192.10.8.160 192.10.8.96 192.10.8.128 192.10.8.64 192.10.8.32

Pgina 54 de 183

Pgina 55 de 183

Redes de Computo

ENRUTAMIENTO
DETERMINACIN DE RUTAS IP Para que un dispositivo de 3 capas pueda determinar la ruta hacia un destino debe tener conocimiento de cmo hacerlo. El aprendizaje de las rutas puede ser mediante enrutamiento esttico o dinmico. LAS RUTAS DINMICAS son aprendidas automticamente por el router a travs de la informacin enviada por otros routers, una vez que el administrador ha configurado un protocolo de enrutamiento que permite el aprendizaje dinmico de rutas. Para poder enlutar paquetes de informacin un router debe conocer lo siguiente: DIRECCIN DE DESTINO: direccin a donde han de ser enviados los paquetes. FUENTES DE INFORMACIN: otros routers de donde el router aprende las rutas hasta los destinos especificados. DESCUBRIR LAS POSIBLES RUTAS HACIA EL DESTINO: rutas iniciales posibles hasta los destinos deseados. SELECCIONAR LAS MEJORES RUTAS: determinar cul es la mejor ruta hasta el destino especificado. MANTENER LAS TABLAS DE ENRUTAMIENTO ACTUALIZADAS: mantener conocimiento actualizado de las rutas destino. La informacin de enrutamiento que el router aprende desde sus fuentes se coloca en su propia tabla de enrutamiento. El router se vale se est tabla para determinar los puertos de salida que debe utilizar para retransmitir un paquete hasta su destino. La tabla de enrutamiento es la fuente principal de informacin del router acerca de las redes. Si la red de destino est conectada directamente, el router debe aprender y calcular la ruta ms ptima a usar para reenviar paquetes. Si las redes de destino est conectada directamente, el router ya sabr el puerto que debe usar para reenviar paquetes. Si las redes de destino no estn conectadas directamente, el router debe aprender y calcular la ruta ms ptima a usar para reenviar paquetes a dichas redes. La tabla de enrutamiento se construye mediante uno de estos dos mtodos o ambos: Manualmente, por el administrador de la red. A travs de procesos dinmicos que se ejecutan en la red. LAS RUTAS ESTTICAS son aprendidas por el router a travs del administrador, que establece dicha ruta manualmente, quien tambin debe actualizar cuando tenga lugar un cambio de topologa. Las rutas estticas se definen administrativamente y establecen rutas especficas que han de surgir los paquetes para pasar de un puerto destino. Se establece un control preciso del enrutamiento segn los parmetros del administrador. Las rutas estticas por default especifican un gateway (puerta de enlace) de ltimo recurso, a la que el router debe enviar un paquete destinado a una red que no aparece en su tabla de enrutamiento, es decir que desconoce. Las rutas estticas se utilizan habitualmente desde una red hasta una red de conexin nica, ya que existen ms que una ruta de entrada y salida de una red de conexin nica, evitando de este modo la sobrecarga de trfico que genera un protocolo de enrutamiento. La ruta esttica se configura para seguir conectividad con un enlace de datos que no est directamente conectado al router. Para conectividad de extremo a extremo es necesario configurar la ruta en ambas direcciones. El comando ip route configura una ruta esttica, los parmetros del comando definen la ruta esttica. Las entradas creadas en la tabla usando este procedimiento permanecern en dichas tablas mientras la ruta siga activa. Con la opcin permanent, la ruta seguir en la tabla aunque la ruta en cuestin haya dejado de estar activa. La sintaxis de configuracin de una ruta esttica es la siguiente: Router (config) # ip router router {red} {mascara} {direccin ip / interfaz} {distancia} {permanent}
Redes de Computo

Red: es la red o subred de destino. Mascara: es la mscara de subred.

Pgina 56 de 183

Interfaz: es el nombre de la interfaz que debe usarse para llegar a la red de destino. Distancia: es un parmetro opcional, que se define la distancia administrativa. Permanent: un parmetro opcional que especifica que la ruta no debe se eliminada, aunque la interfaz deje de estar activa.

RUTAS ESTTICA POR DEFECTO


Una ruta esttica, predeterminada o de ltimo recurso es un tipo especial de ruta esttica que se utiliza cuando no se conoce una ruta hasta un destino determinado, o cuando no es posible almacenar en la tabla de enrutamiento la informacin relativa a todas las rutas posibles. La sintaxis de configuracin de una ruta esttica por defecto es la siguiente: Router (config) # ip route 0.0.0.0 0.0.0.0 {direccin ip / interfaz} {distancia}

PROTOCOLOS
Los protocolos describen el conjunto de normas y convenciones que rigen la forma en que los dispositivos de una red intercambian informacin. Algunos de los protocolos ms usados, que operan en la capa de Internet, son: *IP: proporciona un enrutamiento de paquetes no orientados a conexin de mximo esfuerzo, no por el contenido de los paquetes, sino, busca una ruta hacia el destino. * ICMP Protocolo de mensajes de control de Internet: suministra capacidades de control y envo de mensajes. Herramientas tales como PING y TRACERT lo utilizan. * ARP Protocolo de resolucin de direcciones: determina la direccin de la capa de enlace de datos, la direccin MAC, para direcciones IP conocidas. * RARP Protocolo de resolucin inversa de direcciones: determina las direcciones IP cuando se conoce la direccin MAC. UN PROTOCOLO ENRUTADO lleva una completa informacin de capa3, por ejemplo: TCP/IP, IPX, APPLE TALK y NetBEUI. UN PROTOCOLO DE ENRUTAMIENTO es utilizado por los routers para mantener tablas de enrutamiento y as poder elegir la mejor ruta hacia el destino, por ejemplo: RIP, IGRP, EIGRP y OSPF. Dentro de los protocolos de enrutamiento encontramos dos grandes ncleos: PROTOCOLOS DE GATEWAY INTERIOR (IGP): Se usan para intercambiar informacin de enrutamiento dentro de un sistema autnomo (RIP, IGRP). PROTOCOLO DE GATEWAY EXTERIOR (EGP): Se usan para intercambiar informacin de enrutamiento entre sistemas autnomos.

UN SISTEMA AUTNOMO (AS) es un conjunto de redes bajo un dominio administrativo comn, se


utilizan si el sistema utiliza algn BGP o red pblica.

LA DISTANCIA ADMINISTRATIVA permite que un protocolo tenga mayor prioridad sobre otro ya que son
multiprotocolos.

CLASES DE PROTOCOLOS DE ENRUTAMIENTO


* Vector distancia: determina la direccin y la distancia a cualquier red (RIP, EIGRP) * Estado de enlace: tiene una idea exacta de la topologa de red y no efecta actualizaciones a menos que ocurra un cambio (OSPF y EIS-EIS) * Hbrido: combina aspectos de los dos anteriores (EIGRP).
Redes de Computo

ENRUTAMIENTO POR VECTOR DISTANCIA


Pasa por copias peridicas de la tabla de enrutamiento de un router a otro acumulando vectores de distancia (donde el vector es una direccin y la distancia es una medida de longitud). Cada protocolo utiliza un algoritmo distinto para determinar la ruta ptima, este genera un nmero llamado mtrica de ruta.

Pgina 57 de 183

Las mtricas ms comunes son: Numero de saltos: numero de router por los que pasaron el paquete. Tic tac: el trazo de un enlace de datos usando pulsos de reloj (IBM). Coste: valor arbitrario basado en el ancho de banda. Ancho de banda: capacidad de datos de un enlace. Retraso: tiempo en mover un paquete de un origen a un destino. Carga: cantidad de actividad existente de un recurso de red. Fiabilidad: valor de errores de bit de cada enlace. MTU: unidad mxima de transmisin. LOS BUCLES DE ENRUTAMIENTO se generan si no existe una convergencia rpida y precisa entre los router. La solucin a los bucles de enrutamiento son: Mtricas mximas: solamente permiten la reparticin de enrutamiento hasta que la mtrica exceda el valor mximo permitido (RIP 16 saltos). Horizonte dividido (slip horizont) el router conoce otra ruta viable al destino y no devolver informacin por la interfaz donde la recibi. Envenenamiento: se asegura que todos los router del segmento hayan recibido informacin acerca de la ruta envenenada, es una operacin complementaria del horizonte dividido. Temporizadores: los router no aplican ningn cambio que pudieran afectar las rutas durante un periodo de tiempo determinado. Los protocolos por vector distancia inundan la red con broadcast de actualizaciones de enrutamiento. LOS PROTOCOLOS DE ENRUTAMIENTO POR ESTADO ENLACE construyen tablas de enrutamiento basndose en una base de datos de la topologa. EL ALGORITMO SPF (primero la ruta libre ms corta) usa la base de datos para construir la tabla de enrutamiento. El enrutamiento por estado enlace, utiliza PAQUETES DE ESTADO ENLACE (LSP), una base de datos topolgica, el algoritmo SPF, el rbol SPF resultantes y una tabla de enrutamiento con las rutas y puertos de cada red. Existe una visin independiente de la red por cada router por lo que se producen muy pocos errores. No tienen lmites de saltos, la mtrica se basa en coste, a partir del algoritmo Dijkstra y se basa en la velocidad del enlace. Los protocolos de enrutamiento estado-enlace son protocolos de enrutamiento de gateway interior, que se utilizan dentro de un mismo sistema autnomo y se puede dividir en sectores ms pequeos que se llaman reas, el rea principal o backbone de un sistema autnomo es el area0. Los protocolos estado-enlace son ms rpidos y escalables que los de vector distancia por: Los protocolos de estado enlace solo envan actualizaciones cuando hay cambios de topologa. Las actualizaciones peridicas son menos frecuentes que los protocolos vector distancia. Puede manejar redes segmentadas en distintas reas jerrquicamente organizadas, limitando el alcance de los cambios de rutas. Las redes de este tipo soportan direccionamiento sin clase. Las redes de este tipo soportan resumen de ruta.

Pgina 58 de 183

Redes de Computo

PROTOCOLO VECTORDISTANCIA ESTADO DE ENLACE RESUMEN AUTOMTICO DE RUTA RESUMEN MANUAL DE RUTA SOPORTE VLSM PROPIETARIO DE CISCO CONVERGENCIA DISTANCIA ADVA. TIEMPO DE ACTUALIZACIN MTRICA

RIP X

IGRP X

EIGRP X

IS-IS X

OSPF X

X X

X X

X X X X MUY RPIDO 90

X X X MUY RPIDO 115 X X MUY RPIDO 110

X LENTO 120 30 SALTOS LENTO 100 90 COMPUESTA

COMPUESTA

COSTE

COSTE

CONFIGURACIN INICIAL DEL ROUTER


Un router es un ordenador construido para desempear funciones especficas de capa 3, proporciona hardware y software necesarios para encaminar paquetes entre redes, permite interconectar subreds LAN y establecer conexiones de rea amplia entre las subredes. Puede trabajar exclusivamente con redes LAN, exclusivamente con reds WAN o estar en la frontera entre una LAN y una WAN al mismo tiempo. Las dos tareas principales de los routers son: CONMUTAR los paquetes desde una interfaz perteneciente a una red hacia otra interfaz de una red diferente y ENRUTAR o encontrar el mejor camino hacia la red destino El IOS es el sistema operativo de internetworking que utlizn los routers CISCO.

LOS COMPONENTES PRINCIPALES DEL HARDWARE DE UN ROUTER son:


CPU: Unidad central de procesamiento, inicializa el sistema, realiza funciones de enrutamiento y control de la interfaz de la red. RAM: Memoria de acceso aleatorio, para la informacin de la tablas de enrutamiento, el cache de conmutacin rpida, configuracin actual y colas de paquetes. MEMORIA FLASH: Almacena una imagen completa del software IOS de cisco. NVRAM: Memoria de acceso aleatorio no voltil, se utiliza para la configuracin de inicio y retiene sus contenidos al ser apagada la unidad. BUSES: Bus de sistema se utiliza para la comunicacin entre la CPU y las interfaces y/o ranuras de expansin, transfiere los paquetes hacia y desde las interfaces. ROM: Memoria de solo lectura que se utiliza para almacenar de forma permanente el cdigo de diagnstico de inicio, diagnostica el hardware y carga el software IOS de cisco desde la memoria flash a la RAM. INTERFACES: Son las conexiones de los routers con el exterior. Los tres tipos son: LAN: De tipo ethernet o token ring, tienen chips controladores para conectar el sistema a los medios.
Redes de Computo

WAN: Incluyen la CSU o unidad de servicio de canal integrada, la RDSI y la serial.

Pgina 59 de 183

ADMINISTRACIN: Los puertos de consola y aux son puertos seriales que se utilizan principalmente para la configuracin inicial del router, no son puertos de networking, realizan sesiones terminales. FUENTE DE ALIMENTACIN: Brinda la energa necesaria para operar los LOS PROTOCOLOS Y ESTNDARES DE LA CAPA DE componentes internos.
ENLACE DE DATOS DE WAN son: HDLC control de enlace de datos de alto nivel LOS PROTOCOLOS Y FRAME RELAY ESTNDARES DE LA CAPA FISICA DE protocolo punto a punto PPP WAN son: EIA / SDLC control de enlace de datos sncrono TIA 232 EIA / SLIP449 TIA protocolo de internet de enlace serial V.24 X.25 V.35 ATM X.21 LAPB G.703 LAPD EIA 530 LAPF RDSI T1,T3, E1 Y E3 xDSL SONET

UN ROUTER O SWITCH PUEDEN SER CONFIGURADOS DESDE DISTINTAS UBICACIONES: En la instalacin inicial, el administrador de red configura desde una terminal de consola, conectado por medio del puerto de consola. Con una conexin local por MODEM con el puerto auxiliar del dispositivo, para dispositivos remotos. Dispositivos con direcciones IP establecidas para conexiones TELNET. Descarga de un archivo de configuracin de un servidor TFTP. Configurar un dispositivo por medio del navegador HTTP (Hypertext Transfer Protocol). Al iniciar por primera vez el router CISCO, no tiene configuracin inicial, por lo que el software pide detalles mediante el SETUP.

LAS RUTINAS y PUESTA EN MARCHA DEL ROUTER son las siguientes:


1. Asegurarse que el router cuenta con hardware de verificado (POST). 2. Localiza y carga el IOS de CISCO como sistema operativo. 3. Localizar y aplicar las instrucciones de configuracin relativas a los atributos especficos del router, funciones de protocolos y direcciones de interfaz.
MODOS DE TRABAJO: MODO EXEC usuario EXEC privilegiado Configuracin global Configuracin de interfaces Configuracin de router SMBOLO Router> Router# Router(config)# Router(config-if)# Router(config-router)# ACCESO Enable Configure terminal Interface [tipo y num] Router [protocolo] Ctl + z Ctl + z Ctl + z Ctl + z SALIDA exit exit exit exit disable

Redes de Computo

EJEMPLO DE CONFIGURACIN

Pgina 60 de 183

Las configuraciones se almacenan en la RAM, que se perder al apagar el router, por lo que es necesario hacer una copia. Se pueden utilizar los siguientes comandos para realizar copias del archivo de configuracin: #copy running-config startup-config #copy startup-config running-config #copy running-config tftp O bien se puede eliminar con el comando #erase startup-config LOS COMANDOS SHOW nos permiten el rpido diagnstico de fallos, algunos se ejecutan en el modo usuario y otros en el modo privilegiado. show interfaces show controllers serial show clock show hosts show users show sesions show history show flash show version show arp
Redes de Computo

show protocols show startup-config show running-conig

Pgina 61 de 183

Existe una convencin para asignar NOMBRES AL IOS DE CISCO, por ejemplo: c4500-js-1_121-5.bin donde: c4500 Plataforma de hardware js Conjunto de funciones especiales Formato de archivo 121-5 Nmero de versin LA CONFIGURACIN DE ENRUTAMIENTO ESTTICO se realiza a travs del comando de configuracin global de OSI ip route, este utiliza varios parmetros , como: direccin de red, mascara de subred asociada e informacin del destino, que puede adoptar una de las siguientes formas: Direccin ip especfica del siguiente router de la ruta. Direccin de red de otra ruta de la tabla de enrutamiento a la que deben reenviarse los paquetes. Interfaz conectada directamente en la que se encuentra la red destino.

EL USO DE RUTAS ESTTICAS SE ACONSEJA en los siguientes casos:


Circuito de datos poco fiable y deja de funcionar constantemente. Red donde existe una sola conexin con un solo ISP. Cuando se puede acceder a la red a travs de una conexin de acceso telefnico. Cuando un cliente o cualquier otra red vinculada no desean intercambiar informacin de enrutamiento dinmico. LA CONFIGURACIN DE RUTAS ESTTICAS POR DEFECTO se utilizan cuando el destino al que se pretende llegar son mltiples redes o no se conocen, la sintaxis es la siguiente: Router(config)# ip route 0.0.0.0 0.0.0.0 [ip del primer salto/interfaz de salida] [distancia administrativa] LOS PROTOCOLOS DE CONFIGURACIN DE ENRUTAMIENTO DINMICO son algoritmos que permiten que los routers publiquen, o anuncien, la existencia de la informacin de ruta de red ip necesaria para crear la tabla de enrutamiento, determinan el criterio de seleccin de ruta que sigue el paquete cuando se le presenta al router, esperando una decisin de conmutar, sus objetivos consisten en proporcionar al usuario la posibilidad de seleccionar la ruta idnea en la red, reaccionar con rapidez a los cambios de la misma y realizar dichas tareas de la manera ms sencilla y con la menor sobrecarga del router posible. Para habilitar un protocolo de enrutamiento dinmico, se realizan las siguientes tareas: Seleccionar un protocolo de enrutamiento. Seleccionar las redes ip a enrutar. El comando ROUTER es el encargado de iniciar el proceso de enrutamiento, posteriormente se asocian las redes con el comando NETWORK. Router(config)# router [protocolo] [id o sistema autnomo] Router(config-router) # network [num. de red directamente conectada] EL PROTOCOLO DE INFORMACIN DE ENRUTAMIENTO (RIP) es uno de los protocolos de enrutamiento ms antiguos utilizado por dispositivos basados en IP. Sus principales caractersticas son: Es un protocolo basado en vector distancia. Utiliza la cuenta de saltos del router como mtrica El mximo es 15 saltos, si excede estos saltos se etiqueta como inalcanzable. Difunde actualizaciones de enrutamiento por medio de la tabla de enrutamiento completa cada 30 segundos, por omisin.
Redes de Computo

Puede realizar equilibrado de carga en un mximo de seis rutas de igual coste (la especificacin por omisin es de 4). RIP v1 requiere que se use una sola mascara de red de longitud fija para cada nmero de red de clase principal que es anunciado y no contempla actualizaciones desencadenadas.

Pgina 62 de 183

RIP v2 permiten mscaras de subred de longitud variable (VLSM) en la interconexin, permite actualizaciones desencadenadas, el nmero mximo de rutas paralelas permitidas la tabla de enrutamiento faculta a RIP para llevar a cabo el equilibrio de carga. En RIP la informacin de enrutamiento se propaga de un router a los vecinos por medio de una difusin de IP usando el protocolo UDP y el puerto 520.

CONFIGURACIN RIP
Router(config) # router rip Router(config-router)# network 192.168.1.0 Router(config-router)# network 200.200.21.0 Router(config-router)# vesion 2 Router(config-router)# maximum-paths 6 LA REDISTRIBUCIN ESTTICA EN RIP se utiliza para que todos los routers contenidos dentro del mismo sistema autnomo tengan conocimiento de la existencia de esas rutas. Esto se hacer con el comando REDISTRIBUTE STATIC.

EL PROTOCOLO DE ENRUTAMIENTO DE GATEWAY INTERIOR (IGRP) es un protocolo vectordistancia, desarrollado por cisco systems a mediados de los 80s, corrige algunos defectos de RIP y proporciona un mejor soporte para grandes redes con enlaces de diferentes anchos de banda. IGRP calcula su mtrica en base a diferentes atributos de ruta de red, como: retraso de red, ancho de banda y retraso basados en velocidad y capacidad, relativas a la interfaz. Los atributos de carga y fiabilidad se calculan segn el rendimiento de la interfaz. Utiliza publicaciones IP para comunicar informacin de enrutamiento con vecinos, pero no depende de UDP o TCP. Funciona en forma similar a UDP. Soporta mltiples rutas entre origen y destino, con conmutacin automtica pueden transportar 2 lneas una misma trama de trfico de forma cooperativa. El equilibrio de carga de coste desigual permite distribuir el trfico hasta entre 6 rutas de distinto coste, para mayor rendimiento y fiabilidad.

LAS MEJORAS SOBRE RIP son: ESCALABILIDAD MEJORADA: Admite una red con un nmero mxima de 255 saltos de router. MTRICA SOFISTICADA: Distingue entre diferentes tipos de medios de conexin y costes asociados. SOPORTE DE MLTIPLES RUTAS: Ofrece una convergencia de funcionalidad, enviando informacin
sobre cambios en la red a medida que est disponible.

LAS MTRICAS IGRP son compuestas, la ms baja se considera la ptima, entre estas encontramos: ANCHO DE BANDA: valor mnimo de ancho de banda en la ruta. RETRASO: retraso de interfaz acumulado a lo largo de la ruta. FIABILIDAD: viabilidad entre el origen y el destino, determinado por el intercambio de mensajes de
actividad. CARGA: carga de un enlace entre el origen y el destino, medido en bps. MTU: valor de la unidad mxima de transmisin de la ruta.

Redes de Computo

La fiabilidad y la carga no tienen unidades propias y pueden tomar valores entre 0 y 255. El ancho de banda puede tomar valores que reflejan velocidades desde 1200 hasta 106 bps. El retaso puede ser cualquier valor entre 1y 2*1023. Por defecto utiliza el ancho de banda y retraso como mtrica preestablecida. CONFIGURACIN IGRP Router(config) # router igrp 100 Router(config-router)# network 192.168.1.0 Router(config-router)# network 200.200.21.0

Pgina 63 de 183

Router(config-router)# variance 2 Router(config-router)# traffic-share? CONVERGENCIA es la capacidad de los routers de poseer la misma informacin de enrutamiento actualizada. IGRP y EIGRP se redistribuyen automticamente si ambos tienen el mismo nmero de sistema autnomo. PROCESO DE RECUPERACIN DE CONTRASEA PARA ROUTERS CISCO SERIES 2000,2500,3000,4000 con CPU motorola 680x0 y 7000 ejecutando IOS versin 10.0 o posterior. PASO 1: Conecte una terminal o PC con software de emulacin de terminal al puerto de consola del router. Acceda fsicamente al router, apague y encienda el router. PASO 2: Pulse la tecla de interrupcin del terminal durante los primeros 60 segundos del encendido del router. En el caso de hyperterminal la combinacin del control control+pausa dar la seal de interrupcin en el router. Aparecer el smbolo rommon> sin nombre del router. Si no aparece el smbolo, la terminal no est enviando la seal de interrupcin correcta. PASO 3: Introduzca el comando orden de registro 0x2142 para arrancar desde flash e ignorar NVRAM. PASO 4: En el smbolo rommon> introduzca el comando i (initialize) para reiniciar el router, ignorando la configuracin grabada en la NVRAM. PASO 5: Siga los pasos de arranque normales. Aparecer el smbolo router>. PASO 6: La memoria RAM estar vaca, copie el contenido de la NVRAM a la RAM, para recuperar la configuracin y contrasea no deseada. El nombre del router volver a ser el original. PASO 7: Cambie la contrasea no deseada por una conocida. PASO 8: Guarde su nueva contrasea en la NVRAM y si fuera necesario levante administrativamente las interfaces con el comando no shutdown. PASO 9: Introduzca desde el modo global el comando config-register 0x2102. PASO 10: Introduzca el comando reload en el smbolo del nivel exec privilegiado, responda yes al guardado de registro de configuracin y confirme el reinicio. El router arrancar con la configuracin y la contrasea conocida. Siga los pasos anteriores, el nico cambio es en el PASO 4, donde se introducir el comando reset, en lugar del comando i. LOS COMANDOS BOOT SYSTEM especifican el nombre y la ubicacin de la imagen IOS que se debe cargar:
COMANDO Router(config)#boot system flash [nombre_archivo] Router(config)#boot system rom Router(config)#boot system tftp [nombre_archivo] [direccin_servidor] PARA ARRANCAR DESDE IOS de memoria flash IOS de memoria rom IOS de memoria tftp PARA ROUTERS CISCO SERIES 1700,2600,4500,7200 y 7500

Si no existen comandos de boot system en la configuracin, por omisin el router carga el primer archivo encontrado en la memoria flash y la ejecuta.
PARA SWITCHES SERIES 2900 / 2950
Redes de Computo

PASO 1: Apague el switch, vuelva a encenderlo mientras presiona el botn MODE en la parte delantera del switch, deje de presionarlo una vez que se apague el led STAT. PASO 2: Para iniciar el sistema de archivos y terminar de cargar el sistema operativo, introduzca los comandos: flash_init load_helper dir flash: PASO 3: Escriba rename flash:config.txt flash:config.old para cambiar el nombre del archive de configuracin. Este archivo contiene la definicin de contrasea PASO 4: Escriba boot para arrancar el sistema, responda NO a la continuacin de dilogos de configuracin. PASO 5:En el indicador de exec privilegiado escriba rename flash config.old flash:config.txt para cambiar el nombre del archivo de configuracin al nombre original. PASO 6: Copie el archivo de configuracin a la memoria , cambie la contrasea anterior (desconocida) con

Pgina 64 de 183

los siguientes comandos: switch # configure Terminal switch(config)# no enable secret switch(config)# enable password [password Nuevo] switch(config)# enable secret [password Nuevo] switch(config)# line console 0 switch(config-line)# password [password Nuevo] switch(config-line)# exit switch(config)# line vty 0 15 switch(config-line)# password [password Nuevo] switch(config-line)# exit switch(config)# exit switch(config)# copy running-config startup-config

LAS LISTAS DE CONTROL DE ACCESO sirven para identificar el trfico, despus se filtra y se consigue
una mejor administracin del trfico global de la red. Una lista de control de acceso IP es un listado secuencial de condiciones de permiso o prohibicin que se aplican a las direcciones IP o a protocolos IP de capa superior. Identifican el trfico que ha de ser filtrado en su trnsito por el router, pero no pueden filtrar el trfico originado por el propio router. Se aplican a los puertos de lneas de Terminal virtual para permitir y denegar trfico TELNET entrante o saliente. Establecen un control ms fino o a la hora de separar el trfico en diferentes colas de prioridades y personalizadas. Identifica el trfico interesante, para activar las llamadas del enrutamiento por llamada telefnica bajo demanda DDR. Para las listas salientes: Un permit significa enviar el buffer de salida. Un deny descarta un paquete. Para las listas entrantes: Un permit significa continuar el procesamiento del paquete tras su recepcin en una interfaz. Un deny significa descartar el paquete. Las instrucciones de una ACL operan en orden lgico secuencial, se evalan los paquetes de principio a fin, en lugar de salir por alguna interfaz, todos los paquetes que no satisfacen las instrucciones de las ACL son descartados y devuelve en paquete especial notificando al remitente que el destino ha sido inalcanzable.

Redes de Computo

TIPOS DE ACL (Access Control List) LAS LISTAS DE ACCESO ESTNDAR comprueban las direcciones de origen de paquetes que
solicitan enrutamiento, el resultado es el permiso o negacin de la salida del paquete por parte del protocolo, basndose en la direccin IP de la red-subred-host de origen. Las listas de acceso IP estndar verifican slo la direccin de origen en la cabecera del paquete (capa 3). LAS LISTA DE ACCESO EXTENDIDAS comprueban tanto la direccin origen como la del destino de cada paquete, verifican los protocolos especificados, nmeros de puerto y otros parmetros. Las listas de acceso IP extendidas pueden verificar muchos elementos, incluyendo opciones de la cabecera del segmento (capa 4), como nmeros de puerto TCP y UDP, direcciones IP de origen y destino; as como protocolos especficos.

LISTA DE ACCESO NUMERADAS


A las ACL se les asigna un nmero dentro de los siguientes rangos de lista de acceso numeradas:

ACL

RANGO

RANGO EXTENDIDO Pgina 65 de 183

IP estndar IP extendida Prot, type code DECnet XNS estndar XNS extendida Apple talk IPX estndar IPX extendida Filtro SAP

1-99 100-199 200-299 300-399 400-499 500-599 600-699 800-899 900-999 10001099

1300-1999 2000-2699

CONFIGURACIN DE ACL ESTNDAR Router# configure terminal Router(config)# access-list [1-99] [permit/deny][direccin origen] [ mascara comodn] Router(config)# interface [ tipo y no. de interfaz] Router(config-if)# ip access-group [no. de ACL] [in/out] CONFIGURACIN DE ACL EXTENDIDA Router# configure terminal Router(config)# access-list [1-99] [permit/deny] [protocolo] [direccin origen] [ mascara comodn] [direccin destino] [mscara comodn] [puerto] [established] [log] Router(config)# interface [ tipo y no. de interfaz] Router(config-if)# ip access-group [no. de ACL] [in/out] APLICACIN DE UNA ACL A LINEA TELNET Router# configure terminal Router(config)# line vty 0 4 Router(config-line)# access-class [no. de ACL] [ in / out ] Para eliminar ACLs, se antepone la palabra no a las instrucciones principales, de esta forma: Router(config)# no access-list [1-99] [permit/deny][direccin origen] [ mascara comodn] Router(config-if)#no ip access-group [no. de ACL] [in/out]
Redes de Computo

De igual forma es posible la CONFIGURACIN DE LISTA DE ACCESO NOMBRADAS, en vez de asignarle un nmero, se le asigna un nombre: Router# configure terminal Router(config)# ip access-list [Standard / extended] [nombre] Router(config [std/ext] nac1)# [permit/deny] [condiciones de prueba] Router(config [std/ext] nac1)# no [permit/deny] [condiciones de prueba] Router(config)# interface de asociacin de ACL Router(config-if)# ip access-group [nombre] [in/out] Para VERIFICACIN DE ACLs se pueden utilizar los siguientes comandos: Show ip interface [tipo de interfaz] [no. de interfaz] Show access-list Show access-lists Una lista de acceso puede ser aplicada a mltiples interfaces Solo puede haber una ALC por protocolo, por direccin y por interfaz.

Pgina 66 de 183

A menos que termine una ACL con una condicin de permiso implcito en toso, se denegar todo el trfico que no cumpla ninguna de las condiciones establecidas en la lista ya que existe un deny (permisos de servidor de Transact-SQL) implcito al final de cada lista. Las ACLs extendidas deben colocarse normalmente lo ms cerca posible del origen del trfico que ser denegado, mientras que las estndar lo ms cerca posible del destino.

Pgina 67 de 183

Representacin de sistemas con UML, uso y ciclo iterativo e incremental

4.- ANALISIS Y DISEO DE SISTEMAS DE INFORMACION


Como sistema se define a un conjunto de elementos interrelacionados con un fin comn. Todo sistema requiere informacin y sta va a servir para ser procesada y evaluada para tomar una o ms decisiones sobre el sistema. El trmino Sistema de Informacin tiene dos definiciones importantes
a) Es una disposicin de componentes integrados entre s cuyo objetivo es satisfacer las necesidades de informacin en una organizacin b) Es una disposicin de personas, actividades, datos, redes y tecnologa integrados entre s con el propsito de apoyar y mejorar las operaciones y la toma de decisiones. Anlisis se le llama al proceso de identificacin e interpretacin de hechos. Es un diagnstico de problemas empleando informacin con el fin de recomendar mejoras. Dentro de las actividades que se realizan en un anlisis se encuentran: examinar, detallar, describir, descomponer, observar, descubrir, comparar, estudiar, explorar, cuestionar, diagnosticar y pronosticar

Para realizar un anlisis se necesita tomar en cuenta los siguientes puntos:


1. Se debe tener una situacin. 2. Se debe conocer la naturaleza del sistema. 3. Comprender al sistema en su totalidad considerando su actual funcionamiento. 4. Considerar si es factible el uso de la computadora para hacer ms eficiente al sistema. 5. Marcar un objetivo a lograr.

Un anlisis no es:
-El estudio de una empresa para buscar procesos ya existentes. -Determinar los cambios que deberan efectuarse. -Determinar que la mejor forma de resolver un problema es modificar a un subsistema Los analistas de sistemas nacieron con la Revolucin Industrial. No trabajaban en un principio con computadoras; en vez de esto eran ingenieros industriales cuyas responsabilidades se centraban en el diseo de sistemas de produccin eficaces. Un analista de sistemas, es una persona que comprende tanto las necesidades de la empresa como la tecnologa informtica. Los analistas de sistemas transforman las necesidades de informacin y de los usuarios en soluciones tecnolgicas basadas en computadoras Las responsabilidades de un analista cambian de una organizacin a otra; a continuacin se mencionan solo algunas de las actividades ms comunes asignadas a los analistas de sistema

1. Anlisis de sistemas: en este caso su responsabilidad es conducir estudios sobre los sistemas
relevantes dentro de la organizacin, para detectar hechos relevantes. Considerar que la parte ms importante es reunir la informacin y determinar los requerimientos. En este punto, slo el analista es responsable del anlisis de la informacin.
Representacin de sistemas con UML, uso y ciclo iterativo e incremental

Pgina 68 de 183

2. Anlisis y diseo de sistemas: el analista tiene la responsabilidad adicional de disear el nuevo


sistema, desarrollando las especificaciones de diseo, tomando como base el anlisis de los hechos previamente recolectados.

3. Anlisis, diseo y programacin: el analista cuando realiza esta actividad conduce la investigacin,
desarrolla el diseo del nuevo sistema y describe el software necesario para implantar el diseo.

LOS ELEMENTOS DE UN SISTEMA DE INFORMACIN SON:


a) Procedimientos y prcticas habituales de trabajo. b) Informacin: el analista de sistemas debe adaptar la informacin para ser entregada, por lo que debe saber a quin se le va a entregar y de qu forma la requiere.

La informacin en las organizaciones tiene dos tipos de flujo:


1. Horizontal: es la informacin que se da al mismo nivel y es directa. 2. Vertical: esta informacin se puede dar de dos formas:

Los usuarios.- Los trabajadores de la informacin son aquellos que se ganan la vida al crear, utilizar,
procesar, administrar o intercambiar informacin, reciben el nombre de trabajadores de cuello blanco para distinguirlos de los llamados trabajadores de cuello azul que prestan sus servicios en la industria y el campo. Los usuarios son aquellos empleados que interactan con el sistema como pueden ser los gerentes y empleados de una organizacin. Los usuarios se clasifican en cuatro categoras: 1. Usuarios primarios: son los que interactan con el sistema. Ellos alimentan al sistema con los datos de entrada o reciben salidas por algn medio de salida. 2. Usuarios indirectos: son aquellos que se benefician de los resultados o reportes generados por los sistemas pero que no interactan de manera directa con el hardware o software. 3. Usuarios gerente: son los usuarios que tienen responsabilidades administrativas dentro de los sistemas de aplicacin 4. Usuarios directivos: estos usuarios toman ciertas responsabilidades en el desarrollo de los sistemas de informacin. Los sistemas de informacin estn formados por subsistemas que incluyen hardware, software y medios de almacenamiento de informacin Los sistemas de informacin se dividen en: 1. Sistemas transaccionales 2. Sistemas para la gestin de informacin 3. Sistemas de informacin ejecutiva 4. Sistemas de apoyo a las decisiones 5. Sistemas expertos

El uso de informacin puede iniciarse por un sin nmero de razones como:


-Peticin de una persona. -Solicitud de empleados y usuarios del sistema. -Necesidades de informacin de los niveles directivos.
Representacin de sistemas con UML, uso y ciclo iterativo e incremental

Antes de implantar el plan de investigacin es necesario conocer:

Pgina 69 de 183

- FUENTES INTERNAS: son todas las personas contactos en la investigacin, aquellas de nivel jerrquico de la unidad afectada, as como los usuarios operativos y administradores. - FUENTES EXTERNAS: considerar a todas las dependencias que tienen relacin al sistema a investigar, sus clientes y personal que se encuentra involucrado, sin olvidar a la informacin que ellos generan. -TCNICAS DE RECOLECIN DE DATOS: hay que considerar que el trabajo del anlisis no es una funcin para un solo analista; este debe crear grupos de trabajo que deben encargarse de recopilar y analizar datos para saber si existe coincidencia de anomalas en el sistema.

REPRESENTACION DE SISTEMAS CON UML


Unified Modeling Languaje lenguaje de modelado unificado UML [UML] es un lenguaje para especificar, construir, visualizar y documentar los artefactos de un sistema de software orientado a objetos (OO). Un artefacto es una informacin que es utilizada o producida mediante un proceso de desarrollo de software. UML se quiere convertir en un lenguaje estndar con el que sea posible modelar todos los componentes del proceso de desarrollo de aplicaciones una aplicacin en tiempo real, que el proceso de desarrollo de una aplicacin orientada a gestin, por poner un ejemplo. Las diferencias son muy marcadas y afectan a todas las fases del proceso. El mtodo del UML recomienda utilizar los procesos que otras metodologas tienen definidos. Los Inicios A partir del ao 1994, Grady Booch [Booch96](precursor de Booch '93) y Jim Rumbaugh (creador de OMT) se unen en una empresa comn, Rational Software Corporation, y comienzan a unificar sus dos mtodos. El mtodo deba ser capaz de modelar no slo sistemas de software sino otro tipo de sistemas reales de la empresa, siempre utilizando los conceptos de la orientacin a objetos (OO). Crear un lenguaje para modelado utilizable a la vez por mquinas y por personas. Establecer un acoplamiento explcito de los conceptos y los artefactos ejecutables. Manejar los problemas tpicos de los sistemas complejos de misin crtica. Lo que se intenta es lograr con esto que los lenguajes que se aplican siguiendo los mtodos ms utilizados sigan evolucionando en conjunto y no por separado. Y adems, unificar las perspectivas entre diferentes tipos de sistemas (no slo software, sino tambin en el mbito de los negocios), al aclarar las fases de desarrollo, los requerimientos de anlisis, el diseo, la implementacin y los conceptos internos de la OO.

2. Modelado de objetos
En la especificacin del UML podemos comprobar que una de las partes que lo componen es un metamodelo formal. Un metamodelo es un modelo que define el lenguaje para expresar otros modelos.. Un sistema puede ser descripto por uno o ms modelos, posiblemente desde distintos puntos de vista. El UML es una tcnica de modelado de objetos y como tal supone una abstraccin de un sistema para llegar a construirlo en trminos concretos. El modelado no es ms que la construccin de un modelo a partir de una especificacin.

Representacin de sistemas con UML, uso y ciclo iterativo e incremental

Un modelo es una abstraccin de algo, que se elabora para comprender ese algo antes de construirlo. Los modelos se utilizan en muchas actividades de la vida humana: antes de construir una casa el arquitecto utiliza un plano, los msicos representan la msica en forma de notas musicales, los artistas pintan sobre el lienzo con carboncillos antes de empezar a utilizar los leos, etc.

Pgina 70 de 183

UML utiliza parte de este planteamiento obteniendo distintos puntos de vista de la realidad que modela mediante los distintos tipos de diagramas que posee. Con la creacin del UML se persigue obtener un lenguaje que sea capaz de abstraer cualquier tipo de sistema, sea informtico o no, mediante los diagramas, es decir, mediante representaciones grficas que contienen toda la informacin relevante del sistema. Un diagrama es una representacin grfica de una coleccin de elementos del modelo, que habitualmente toma forma de grafo donde los arcos que conectan sus vrtices son las relaciones entre los objetos y los vrtices se corresponden con los elementos del modelo. Artefactos para el Desarrollo de Proyectos Un artefacto es una informacin que es utilizada o producida mediante un proceso de desarrollo de software. Pueden ser artefactos un modelo, una descripcin o un software..
Se necesita ms de un punto de vista para llegar a representar un sistema. UML utiliza los diagramas grficos para obtener estos distintos puntos de vista de un sistema:

Diagramas de Implementacin. Diagramas de Comportamiento o Interaccin. Diagramas de Casos de uso. Diagramas de Clases.

Diagramas de Implementacin
Se derivan de los diagramas de proceso y mdulos de la metodologa de Booch, aunque presentan algunas modificaciones. Los diagramas de implementacin muestran los aspectos fsicos del sistema. Incluyen la estructura del cdigo fuente y la implementacin, en tiempo de implementacin. Existen dos tipos: Diagramas de componentes Diagrama de plataformas despliegue

Diagramas de componentes

Pgina 71 de 183

Muestra la dependencia entre los distintos componentes de software, incluyendo componentes de cdigo fuente, binario y ejecutable. Un componente es un fragmento de cdigo software (un fuente, binario o ejecutable) que se utiliza para mostrar dependencias en tiempo de compilacin. Diagrama de plataformas o despliegue

Muestra la configuracin de los componentes hardware, los procesos, los elementos de procesamiento en tiempo de ejecucin y los objetos que existen en tiempo de ejecucin. En este tipo de diagramas intervienen nodos, asociaciones de comunicacin, componentes dentro de los nodos y objetos que se encuentran a su vez dentro de los componentes. Un nodo es un objeto fsico en tiempo de ejecucin, es decir una mquina que se compone habitualmente de, por lo menos, memoria y capacidad de procesamiento, a su vez puede estar formado por otros componentes. Diagramas de Interaccin o Comportamiento Muestran las interacciones entre objetos ocurridas en un escenario (parte) del sistema. Hay varios tipos: Diagrama de secuencia. Diagrama de colaboracin. Diagrama de estado. Diagrama de actividad.

Representacin de sistemas con UML, uso y ciclo iterativo e incremental

Pgina 72 de 183

Diagrama de secuencia
Muestran las interacciones entre un conjunto de objetos, ordenadas segn el tiempo en que tienen lugar. En los diagramas de este tipo intervienen objetos, que tienen un significado parecido al de los objetos representados en los diagramas de colaboracin, es decir son instancias concretas de una clase que participa en la interaccin. El objeto puede existir slo durante la ejecucin de la interaccin, se puede crear o puede ser destruido durante la ejecucin de la interaccin. Un diagrama de secuencia representa una forma de indicar el perodo durante el que un objeto est desarrollando una accin directamente o a travs de un procedimiento

Diagrama de colaboracin
Muestra la interaccin entre varios objetos y los enlaces que existen entre ellos. Representa las interacciones entre objetos organizadas alrededor de los objetos y sus vinculaciones. A diferencia de un diagrama de secuencias, un diagrama de colaboraciones muestra las relaciones entre los objetos, no la secuencia en el tiempo en que se producen los mensajes. Los diagramas de secuencias y los diagramas de colaboraciones expresan informacin similar, pero en una forma diferente.

Pgina 73 de 183

Diagramas de actividad
En realidad se corresponden con un caso especial de los diagramas de estado donde los estados son estados de accin (estados con una accin interna y una o ms transiciones que suceden al finalizar esta accin, o lo que es lo mismo, un paso en la ejecucin de lo que ser un procedimiento) y las transiciones vienen provocadas por la finalizacin de las acciones que tienen lugar en los estados de origen. Los diagramas de actividad se utilizan para mostrar el flujo de operaciones que se desencadenan en un procedimiento interno del sistema.

Diagramas de estado
Representan la secuencia de estados por los que un objeto o una interaccin entre objetos pasa durante su tiempo de vida en respuesta a estmulos (eventos) recibidos. Representa lo que podemos denominar en conjunto una mquina de estados. Un estado en UML es cuando un objeto o una interaccin satisface una condicin, desarrolla alguna accin o se encuentra esperando un evento.

Pgina 74 de 183

Diagramas de Casos de Uso


Unos casos de uso es una secuencia de transacciones que son desarrolladas por un sistema en respuesta a un evento que inicia un actor sobre el propio sistema. Los diagramas de casos de uso sirven para especificar la funcionalidad y el comportamiento de un sistema mediante su interaccin con los usuarios y/o otros sistemas. O lo que es igual, un diagrama que muestra la relacin entre los actores y los casos de uso en un sistema. Una relacin es una conexin entre los elementos del modelo, por ejemplo la relacin y la generalizacin son relaciones. Las relaciones entre casos de uso y actores pueden ser las siguientes: Un actor se comunica con un caso de uso. Un caso de uso extiende otro caso de uso. Un caso de uso usa otro caso de uso

Diagramas de Clases
Los diagramas de clases representan un conjunto de elementos del modelo que son estticos, como las clases y los tipos, sus contenidos y las relaciones que se establecen entre ellos. Algunos de los elementos que se pueden clasificar como estticos son los siguientes:
Representacin de sistemas con UML, uso y ciclo iterativo e incremental

Paquete: Es el mecanismo de que dispone UML para organizar sus elementos en grupos, se representa un grupo de elementos del modelo. Un sistema es un nico paquete que contiene el resto del sistema, por lo tanto, un paquete debe poder anidarse, permitindose que un paquete contenga otro paquete.

Pgina 75 de 183

Clases: Una clase representa un conjunto de objetos que tienen una estructura, un comportamiento y unas relaciones con propiedades parecidas. Describe un conjunto de objetos que comparte los mismos atributos, operaciones, mtodos, relaciones y significado. En UML una clase es una implementacin de un tipo.

Los componentes de una clase son: Atributo. Se corresponde con las propiedades de una clase o un tipo. Se identifica mediante un nombre.
Existen atributos simples y complejos.

Operacin. Tambin conocido como mtodo, es un servicio proporcionado por la clase que puede ser
solicitado por otras clases y que produce un comportamiento en ellas cuando se realiza.

Metaclase: Es una clase cuyas instancias son clases. Sirven como depsito para mantener las variables de
clase y proporcionan operaciones (mtodo de clase) para inicializar estas variables. Se utilizan para construir metamodelos (modelos que se utilizan para definir otros modelos).

Tipos: Es un descriptor de objetos que tiene un estado abstracto y especificaciones de operaciones pero no
su implementacin. Un tipo establece una especificacin de comportamiento para las clases.

Interfaz: Representa el uso de un tipo para describir el comportamiento visible externamente de cualquier
elemento del modelo.

Relacin entre clases: Las clases se relacionan entre s de distintas formas, que marcan los tipos de
relaciones existentes:

Asociacin: Es una relacin que describe un conjunto de vnculos entre clases. Pueden ser binarias o n-arias,
segn se implican a dos clases o ms. Las relaciones de asociacin vienen identificadas por los roles, que son los nombres que indican el comportamiento que tienen los tipos o las clases, en el caso del rol de asociacin (existen otros tipos de roles segn la relacin a la que identifiquen). Indican la informacin ms importante de las asociaciones. Una asociacin se dirige desde una clase a otra (o un objeto a otro), el concepto de navegabilidad se refiere al sentido en el que se recorre la asociacin. Existe una forma especial de asociacin, la agregacin, que especifica una relacin entre las clases donde el llamado "agregado" indica l todo y el "componente" es una parte del mismo.

Composicin: Es un tipo de agregacin donde la relacin de posesin es tan fuerte como para marcar otro
tipo de relacin. Las clases en UML tienen un tiempo de vida determinado, en las relaciones de composicin, el tiempo de vida de la clase que es parte del todo (o agregado) viene determinado por el tiempo de vida de la clase que representa el todo, por tanto es equivalente a un atributo, aunque no lo es porque es una clase y puede funcionar como tal en otros casos.

Generalizacin: Cuando se establece una relacin de este tipo entre dos clases, una es una Superclase y la
otra es una Subclase. La subclase comparte la estructura y el comportamiento de la superclase. Puede haber ms de una clase que se comporte como subclase.
Representacin de sistemas con UML, uso y ciclo iterativo e incremental

Dependencia: Una relacin de dependencia se establece entre clases (u objetos) cuando un cambio en el
elemento independiente del modelo puede requerir un cambio en el elemento dependiente.

El Proceso de Desarrollo
UML no define un proceso concreto que determine las fases de desarrollo de un sistema, las empresas pueden utilizar UML como el lenguaje para definir sus propios procesos y lo nico que tendrn en comn con otras organizaciones que utilicen UML sern los tipos de diagramas.

Pgina 76 de 183

UML es un mtodo independiente del proceso. Los procesos de desarrollo deben ser definidos dentro del contexto donde se van a implementar los sistemas.

CICLO ITERATIVO E INCREMENTAL


El ciclo de vida iterativo se basa en la evolucin de prototipos ejecutables que se muestran a los usuarios y clientes En el ciclo de vida iterativo a cada iteracin se reproduce el ciclo de vida en cascada a menor escala Los objetivos de una iteracin se establecen en funcin de la evaluacin de las iteraciones precedentes Proceso Iterativo e Incremental Las actividades se encadenan en una mini-cascada con un alcance limitado por los objetivos de la iteracin Cada iteracin comprende: Planificar la iteracin (estudio de riesgos) Anlisis de los Casos de Uso y escenarios Diseo de opciones arquitectnicas Codificacin y pruebas. La integracin del nuevo cdigo con el existente de iteraciones anteriores se hace gradualmente durante la construccin Evaluacin de la entrega ejecutable (evaluacin del prototipo en funcin de las pruebas y de los criterios definidos) Preparacin de la entrega (documentacin e instalacin del prototipo)

Desarrollo Iterativo
Rational Rose utiliza un proceso de desarrollo iterativo controlado (controlled iterative process development), donde el desarrollo se lleva a cabo en una secuencia de iteraciones. Cada iteracin comienza con una primera aproximacin del anlisis, diseo e implementacin para identificar los riesgos del diseo, los cuales se utilizan para conducir la iteracin, primero se identifican los riesgos y despus se prueba la aplicacin para que stos se hagan mnimos. Cuando la implementacin pasa todas las pruebas que se determinan en el proceso, sta se revisa y se aaden los elementos modificados al modelo de anlisis y diseo. Una vez que la actualizacin del modelo se ha modificado, se realiza la siguiente iteracin.

Pgina 77 de 183

Modelado CASE, reingeniera de software e ingeniera de reversa

MODELADO CASE
Concepto de CASE CASE: Ingeniera del Software asistida por ordenador (Computer Aided Software Engineering). Definicin: Toda herramienta o paquete informtico que proporcione una ayuda, ms o menos automtica, en cualquiera de las etapas del ciclo de vida de desarrollo de un sistema informtico. Objetivo bsico del CASE: Resolver la crisis del software a travs de la automatizacin

Tipos de Herramientas CASE.


Integracin de Herramientas CASE. Repositorio. Metodologas y Herramientas CASE. Implantacin del CASE. El futuro del CASE. Beneficios del CASE. Ejemplos de Herramientas CASE Herramientas de planificacin y gestin de proyectos (seguimiento, anlisis de riesgos, etc.) Herramientas de anlisis y diseo. Herramientas de prototipado, maquetado. Herramientas de programacin. Herramientas de integracin y pruebas. Herramientas de documentacin . Herramientas de ayuda al mantenimiento. Herramientas de gestin de configuraciones. Herramientas de planificacin estratgica de sistemas, de modelado de procesos, etc.

Integracin de Herramientas CASE


Un conjunto de herramientas CASE slo es til si: Comparten informacin. Propagan o comunican los cambios. Tienen una interfaz consistente y flexible. Integracin de herramientas CASE: Combinacin de distintas herramientas. Herramienta nica (I-CASE, Integrated-CASE).

Entorno CASE
Conjunto de herramientas CASE que se basan en una concepcin integrada de la interaccin entre los distintos componentes del entorno y entre los usuarios y los componentes.
Modelado CASE, reingeniera de software e ingeniera de reversa

Se componen de diferentes herramientas CASE que soportan adecuadamente las tcnicas de distintas etapas/tareas+repositorio.

Pgina 78 de 183

Ventajas: Transferencia natural de datos/informacin natural Reduccin del esfuerzo necesario para efectuar actividades globales (GCS, documentacin, calidad, etc.) Mayor control del proyecto (visin global). Mejor coordinacin entre el equipo de trabajo. Permitir acceso directo y no secuencial a cualquiera de las herramientas Esta herramienta propone la utilizacin de cuatro tipos de modelo para realizar un diseo del sistema, utilizando una vista esttica y otra dinmica de los modelos del sistema, uno lgico y otro fsico. Permite crear y refinar estas vistas creando de esta forma un modelo completo que representa el dominio del problema y el sistema de software. CASE es una combinacin de herramientas software (aplicaciones) y de metodologas de desarrollo: 1. Las herramientas permiten automatizar el proceso de desarrollo del software. 2. Las metodologas definen los procesos automatizar.

La siguiente clasificacin es la ms habitual basada en las fases del ciclo de desarrollo que cubren:
Upper CASE (U-CASE), herramientas que ayudan en las fases de planificacin, anlisis de requisitos y estrategia del desarrollo, usando, entre otros diagramas UML. Middle CASE (M-CASE), herramientas para automatizar tareas en el anlisis y diseo de la aplicacin. Lower CASE (L-CASE), herramientas que semiautomatizan la generacin de cdigo, crean programas de deteccin de errores, soportan la depuracin de programas y pruebas. Adems automatizan la documentacin completa de la aplicacin. . Existen otros nombres que se le dan a este tipo de herramientas, y que no es una clasificacin excluyente entre s, ni con la anterior: Integrated CASE (I-CASE), herramientas que engloban todo el proceso de desarrollo software, desde anlisis hasta implementacin. MetaCASE, herramientas que permiten la definicin de nuestra propia tcnica de modelado, los elementos permitidos del metamodelo generado se guardan en un repositorio y pueden ser usados por otros analistas, es decir, es como si definiramos nuestro propio UML, con nuestros elementos, restricciones y relaciones posibles.

REINGENIERIA DE SOFTWARE E INGENIERIA DE REVERSA


Tcnicas y Herramientas de Reingeniera Software OBJETIVOS Describir los conceptos asociados a la Reingeniera Software Tipos de Reingeniera y Mantenimiento Tcnicas y Mtodos de Reingeniera Herramientas disponibles Prcticas 2.1 Concepto y tipos de Reingeniera La Reingeniera consiste en la automatizacin del mantenimiento del software.
Modelado CASE, reingeniera de software e ingeniera de reversa

La Reingeniera es tambin el proceso de examinar sistemas de software existentes y/o modificarlos con ayuda de herramientas de forma automtica o semi-automtica.

Pgina 79 de 183

Analizar sistemas existentes para entender su diseo y desarrollar estrategias para extraer y reutilizar componentes. Implica la rehabilitacin y modernizacin de los componentes.

Ventajas de los procesos de Reingeniera

Proporcionar asistencia automatizada a las tareas de mantenimiento y evolucin del software. Reducir errores y costes. Mejorar los procesos de conversin y migracin. Extender el ciclo de vida de las aplicaciones. Facilitar el entendimiento de los programas. Formas de Reingeniera Software Anlisis: proceso de examinar sistemas existentes para entender mejor el sistema y sus componentes. Reestructuracin: cambios en la forma del software(ej: cdigo, documentacin, datos) pero no su funcionalidad Ingeniera Inversa: analizar software y reconstruir las relaciones entre sus partes. Migracin: conversin de software o actualizacin de tecnologa

Concepto y tipos de Reingeniera


Reformateo: Identificacin y alineacin de palabras clave, nombres de datos, etc. Reestructuracin de Control: Convierte cdigo no estructurado en cdigo equivalente pero estructurado. Refuerza el mantenimiento. Reestructuracin de Datos: Disea y crea nuevas estructuras de datos ms flexibles. Redocumentacin: Entendimiento del software y reconstruir documentacin Re-desarrollo: Incluye la reescritura de partes del sistema utilizando un nuevo entorno de desarrollo. Ingeniera Inversa: Extrae informacin del cdigo fuente para obtener informacin (elementos, relaciones) de alto nivel del sistema. Trata de reconstruir la lgica de un sistema de forma parcial o total. Ingeniera Inversa de Datos: Extrae relaciones de datos de alto nivel a partir de estructuras de datos. Ingeniera Inversa de Procesos: Extrae especificaciones de alto nivel a partir del cdigo fuente.

Migracin: Evolucin del sistema a otro ms eficiente y/o mantenible. Datos: Migracin a otros sistemas de datos ms eficientes. De Interfaces de Usuario: Realiza un rediseo o reingeniera de los interfaces por otros ms modernos o con mayor usabilidad. De Lenguaje:: Generalmente requerido necesidades tecnolgicas. De Plataforma: Cambio de una plataforma a otra. De Arquitectura: Transformacin de la arquitectura de un sistema. Ejemplo: Una monoltica a una cliente servidor.

Pgina 80 de 183

Modelado CASE, reingeniera de software e ingeniera de reversa

La Ingeniera Inversa trata de analizar sistemas de software para reconstruir la descripcin de alto nivel a partir de las de bajo nivel. Bsicamente consiste en analizar el cdigo para extraer relaciones y el diseo de todo o parte del sistema. La ingeniera inversa trata de re-documentar el sistema y descubrir informacin de diseo con el fin de poder entenderlo mejor.

Herramientas de Ingeniera Inversa y Directa


IBM RATIONAL ROSE I. Inversa: C, C++, Java, CORBA, XML_DTD, Ada I. Directa: Idnticos lenguajes Obtencin de diagramas UML desde cdigo Generacin de esqueletos de cdigo anotados Visualizador Modelado fsico de la arquitectura (diagramas de componentes) Modelado de datos (Oracle) Integracin con Requisite Pro TELELOGIC TAU I. Inversa: C, C++, Java, CORBA, XML_DTD, Ada I. Directa: Obtencin de diagramas UML 2.0 desde cdigo Comparacin grfica y fusin de modelos UML Soporte de smbolos grficos especficos de dominio OTRAS ARMIN ReWeb, WARE, WANDA (Dominio Web) VAQUISTA TERESA Altova Umodel (Java, C# UML) Imagix 4D (C/C++ UML) Compiladores inversos Visualizadores (VCG, Dotty, Rigi): No especfica de Ing. Inv

INGENIERIA INVERSA
(Reverse engineering). La ingeniera inversa es el proceso de descubrir los principios tecnolgicos de un dispositivo, objeto o sistema, a travs de razonamiento abductivo de su estructura, funcin y operacin. La ingeniera inversa se trata de tomar algo (un dispositivo mecnico o electrnico, un software de computadora, etc.) para analizar su funcionamiento en detalle, generalmente para intentar crear un dispositivo o programa que haga la misma o similar tarea sin copiar la original.

Pgina 81 de 183

Modelado CASE, reingeniera de software e ingeniera de reversa

Usos de la ingeniera inversa


* La ingeniera inversa suele ser empleada por empresas, para analizar si el producto de su competencia infringe patentes de sus propios productos. * Muchas veces, la ingeniera inversa es utilizada en el rea militar para investigar (y copiar) las tecnologas de otras naciones, sin obtener planos ni detalles de su construccin o desarrollo. * En el software y en el hardware, la ingeniera inversa, muchas veces es empleada para desarrollar productos que sean compatibles con otros productos, sin conocer detalles de desarrollo de stos ltimos. En otras palabras, quien desarrolla los nuevos productos, no puede acceder a los detalles de fabricacin de los productos de los que intenta ser compatibles. * La ingeniera inversa tambin es empleada para comprobar la seguridad de un producto, generar keygens de aplicaciones, reparacin de productos, etc.

Pgina 82 de 183

Calidad en el desarrollo de software

INGENIERIA DE SOFTWARE Y CALIDAD


Algunos desarrolladores de software continan creyendo que la calidad del software es algo en lo que se empieza a preocupar una vez que se ha generado el cdigo. Nada ms lejos de la realidad! Para empezar a definir que es la calidad del software, es necesario primero comprender el concepto de calidad. A continuacin se presenta el concepto de calidad segn la norma ISO 9000.

Calidad.- Conjunto de propiedades y de caractersticas de un producto o servicio, que le confiera aptitud para
satisfacer unas necesidades explcitas o implcitas (ISO 8402).

Control de Calidad.- Conjunto de tcnicas y actividades de carcter operativo,


utilizadas para verificar los requerimientos relativos a la calidad del producto o

servicio. El control de calidad es una actividad que se tiene que llevar a cabo para garantizar la calidad de
todo producto o servicio que se ofrece a los consumidores, en las siguientes lneas se presenta este concepto. Aplicado al software, el control de calidad es una serie de inspecciones, revisiones, y pruebas utilizados a lo largo del ciclo de desarrollo para asegurar que cada producto cumple con los requisitos que le han sido asignados. Las actividades del control de calidad pueden ser manuales, completamente automticas o una combinacin de herramientas automticas e interaccin humana.

Garanta de Calidad.- Conjunto de acciones planificadas y sistemticas necesarias para proporcionar la


confianza adecuada de que un producto o servicio satisface los requerimientos dados sobre calidad. El objetivo de la garanta de calidad es proporcionar la gestin para informar de los datos necesarios sobre la calidad del producto, por lo que se va adquiriendo una visin ms profunda y segura de que la calidad del producto est cumpliendo sus objetivos.

Instrucciones: el siguiente cuestionario te permitir tener un valor cuantitativo acerca de los temas ms
importantes en la materia; se muestra la pregunta, la respuesta y porque es la respuesta correcta. 1) Grado con el que sistema, componente o procesos cumple con los requerimientos y las necesidades y expectativas del cliente o usuario: Respuesta: Calidad de software 2) Segn McCall los factores que determinan la calidad de software se centran en 3 aspectos importantes; cuales son: Caractersticas Operativas, Capacidad de soportar cambios y adaptabilidad a nuevos entornos. Caractersticas operativas: Correccin Fiabilidad Eficiencia Seguridad Usabilidad

Calidad en el desarrollo de software

Capacidad de soportar cambios: Facilidad de mantenimiento

Pgina 83 de 183

Flexibilidad Adaptabilidad a nuevos entornos: Portabilidad Reusabilidad Interoperabilidad 3) Menciona las caractersticas del software: Respuesta: a) El software se desarrolla, no se fabrica en un sentido clsico. b) El software no se estropea. c) La Mayora del software se construye a medida, en vez de ensamblar componentes existentes. 4) Menciona los principales modelos de desarrollo de software: Respuesta: a) Modelo lineal secuencial o de cascada b) Modelo por prototipos c) Modelo de desarrollo rpido d) Modelo de desarrollo evolutivo e) Modelo incremental f) Modelo en espiral * Nota: Se recomienda estudiar cada uno de estos modelos y sus representaciones. 5) Menciona las diferentes etapas en el desarrollo de software: Respuesta: a) Anlisis de sistemas b) Diseo de sistemas c) Desarrollo de sistemas c) Pruebas de sistemas d) Implementacin de sistemas d) Mantenimiento de sistemas Anlisis de sistemas: implica determinar las necesidades del cliente y/o usuario para poder especificar los requerimientos que sirven como base para el desarrollo de un sistema o software siendo el que de un sistema informtico. Diseo de sistemas: Es un conjunto de pasos repetitivos que permiten al diseador describir todos los aspectos del sistema a construir, siendo el como de un sistema informtico. Desarrollo de sistemas: Es la fase de la programacin o implementacin propiamente dicha. Aqu se implementa el cdigo fuente del sistema. Pruebas de sistema: Es un conjunto de actividades que se pueden planificar por adelantado y llevar acabo sistemticamente para validar el funcionamiento del sistema. Implementacin de sistema: En esta fase se hace la entrega del sistema al usuario para comience con el uso y operacin del mismo. Mantenimiento de sistemas: el mantenimiento se debe o se invoca debido a cambios pedidos por los clientes o por los requerimientos del mercado.
Calidad en el desarrollo de software

METRICAS Y PROCESOS (PSP)


El Personal Software Process(Proceso Personal de Software) ayuda a los desarrolladores de software a mejorar su funcionamiento disciplinando la manera en que desarrollan software.

Pgina 84 de 183

El PSP se puede aplicar a muchas partes del proceso del desarrollo del software, incluyendo el anlisis, definicin de requerimientos, desarrollo del programa, documentacin, las pruebas del sistema, y mantenimiento. El PSP es un proceso de software diseado para ser utilizado por un Desarrollador de Software. Es utilizado para guiar el planeamiento y desarrollo de mdulos de software o pequeos programas, pero es adaptable a otros programas. El objetivo del PSP es adquirir una correcta disciplina personal para el desarrollo de un software de calidad en los plazos y costes comprometidos. 7) Menciona las principales Mtricas del PSP: Respuesta: Densidad de defectos ndice de Revisin ndices de tiempo de desarrollo ndices de defectos Rendimiento Defectos por hora Efectividad de remocin de defectos Evaluacin del ndice de fallas Con datos de tamao, tiempo y defectos, existen muchas formas de medir, evaluar Y manejar la calidad de un programa. PSP provee una serie de mediciones de calidad que ayudan a los desarrolladores a examinar la calidad de sus programas desde varias perspectivas. 8) Menciona como est estructurado PSP Respuesta: Comenzando con los requerimientos, el primer paso en el proceso de PSP es la planificacin. Existe un script de planificacin que sirve de gua y un resumen del plan para registrar todos los datos del mismo. Mientras los desarrolladores van siguiendo el lineamiento de trabajo sugerido por los scripts, deben ir registrando los tiempos dedicados y los datos de defectos en los logs de tiempos y defectos. Al final de la tarea, durante la fase de postmortem (PM), deben resumir los datos de tiempo y defectos, medir el tamao del programa, e ingresar esos datos en el formulario de sumario del plan. Al finalizar, deben entregar el producto finalizado y el formulario de sumario del plan completado. 9) Cules es el camino(niveles) de PSP y con qu nombre se identifican? Respuesta: PSP0 Medicin personal PSP1 - Planeacin Personal PSP2 - Administracin de Calidad Personal PSP - Proceso Personal Cclico

Calidad en el desarrollo de software

Cada nivel demuestra el grado de avance que se tiene en el dominio de PSP y en el grado de avance que demuestra cmo cada individuo mejora la forma de desarrollar software desde un simple programa hasta sistemas de gran escala o complejos. Se recomienda que revisen cada uno de los niveles para que tengan claro en que consiste cada uno y los sepan diferenciar. 10) Proceso de software diseado para equipos de trabajo de desarrollo de

Pgina 85 de 183

software y mantenimiento de entre 2 y 15 ingenieros: Respuesta: TSP (Team Software Process) TSP nos muestra cmo construir un equipo auto dirigido y como ser un miembro efectivo de equipo. Nos ensea como dirigir y soportar estos equipos y como mantener un medio para obtener un alto nivel de desarrollo. 11)Menciona las fases del TSP: Respuesta: 1. Requerimientos 2. Diseo 3. Implementacin 4. Pruebas 5. Postmortem 12) Completa la siguiente grafica de acuerdo a la relacin del TSP con el CMMI y PSP: Respuesta: Organizacin Equipo Individual Mientras que el CMMI se enfoca en lo que tienen que hacer las organizaciones, no especifica cmo alcanzar esos objetivos. El PSP provee una gua especifica en como los ingenieros de software de manera individual pueden continuamente mejorar su desempeo. El TSP provee guas especficas de cmo ingenieros capacitados en PSP pueden trabajar de manera efectiva como miembros de un equipo de alto desempeo. CMMI TSP PSP

MODELO DE CAPACIDAD DE MADUREZ INTEGRADO (CMMI)


Para entender la importancia del CMMI, se debe conocer con claridad hacia donde apuntan las grandes empresas dedicadas al desarrollo de software, las cuales estn utilizando este modelo de referencia para madurar sus procesos en sus organizaciones, todo ello conlleva un gran esfuerzo y trabajo de manera individual y colectiva.
El CMM - CMMI es un modelo de calidad del software que clasifica las empresas en niveles de madurez. Estos niveles sirven para conocer la madurez de los procesos que se realizan para producir software.

13) Mtodo de definir los procesos a realizar por una organizacin: Respuesta: CMMI 14) Cuales son las disciplinas del CMMI: Respuesta: CMMI-SW CMMI-SE/SW CMMI-SE/SW/IPPD CMMI-SE/SW/IPPD/SS
Calidad en el desarrollo de software

15) Cuales son los 5 niveles del CMMI y da una breve explicacin de ellos: Respuesta: Inicial o Nivel 1 CMM - CMMI. Este es el nivel en donde estn todas las empresas que no tienen procesos. Los presupuestos se disparan, no es posible entregar el proyecto en fechas, te tienes que quedar durante noches y fines de semana para terminar un proyecto. No hay control sobre el estado del proyecto, el desarrollo del proyecto es completamente opaco, no sabes lo que pasa en l. En este nivel de CMMI, los procesos y mtodos de ingeniera no se encuentran definidos. El desarrollo se basa en la heroicidad y responsabilidad de los individuos.

Pgina 86 de 183

Repetible o Nivel 2 CMM - CMMI. Quiere decir que el xito de los resultados obtenidos se pueden repetir. La principal diferencia entre este nivel y el anterior es que el proyecto es gestionado y controlado durante el desarrollo del mismo. El desarrollo no es opaco y se puede saber el estado del proyecto en todo momento. Los procesos que hay que implantar para alcanzar este nivel son: Gestin de requisitos Planificacin de proyectos Seguimiento y control de proyectos Gestin de proveedores Aseguramiento de la calidad Gestin de la configuracin Definido o Nivel 3 CMM - CMMI. Resumindolo mucho, este alcanzar este nivel significa que la forma de desarrollar proyectos (gestin e ingeniera) esta definida, por definida quiere decir que esta establecida, documentada y que existen mtricas (obtencin de datos objetivos) para la consecucin de objetivos concretos. Los procesos que hay que implantar para alcanzar este nivel son: Desarrollo de requisitos Solucin Tcnica Integracin del producto Verificacin Validacin Desarrollo y mejora de los procesos de la organizacin Definicin de los procesos de la organizacin Planificacin de la formacin Gestin de riesgos Anlisis y resolucin de toma de decisiones La mayora de las empresas que llegan al nivel 3 paran aqu, ya que es un nivel que proporciona muchos beneficios y no ven la necesidad de ir ms all porque tienen cubiertas la mayora de sus necesidades. Cuantitativamente Gestionado o Nivel 4 CMM - CMMI. Los proyectos usan objetivos medibles para alcanzar las necesidades de los clientes y la organizacin. Se usan mtricas para gestionar la organizacin. Los procesos que hay que implantar para alcanzar este nivel son: Gestin cuantitativa de proyectos Mejora de los procesos de la organizacin Optimizado o Nivel 5 CMM - CMMI. Los procesos de los proyectos y de la organizacin estn orientados a la mejora de las actividades. Mejoras incrementales e innovadoras de los procesos que mediante mtricas son identificadas, evaluadas y puestas en prctica. Los procesos que hay que implantar para alcanzar este nivel son: Innovacin organizacional Anlisis y resolucin de las causas Normalmente las empresas que intentan alcanzar los niveles 4 y 5 lo realizan simultneamente ya que estn muy relacionados. 16) Cual es el propsito fundamental del CMMI:

Pgina 87 de 183

Respuesta: Proporcionar una gua para mejorar los procesos de la organizacin y la habilidad para administrar el desarrollo, adquisicin y mantenimiento de productos y servicios. 17) Cuales son las representaciones del modelo CMMI: Respuesta: Representacin por etapas o por niveles de madurez Representacin continua. 18) Cuales son los beneficios de la representacin Continua: Respuesta: Permite seleccionar el orden de mejora que mejor se adapte a los objetivos de negocio de la organizacin y mitigar en su caso las reas de mayor riesgo. Permite compararse con otras organizaciones tomando como base las reas de proceso. Permite una fcil migracin de EIA/IS-731 a CMMI 19) Cuales son los beneficios de la representacin por etapas: Respuesta: Proporciona una secuencia predefinida de la mejora en las reas de proceso agrupadas por niveles de madurez. Permite una fcil migracin de SW/CMM a CMMI. Permite conocer la madurez de la organizacin como resultado de unaevaluacin. Los niveles de madurez tienen una base secuencial. 20) Menciona la principal terminologa utilizada en CMMI: Respuesta: Establecer y mantener: No solo se debe definir una poltica dentro de una organizacin, sino que tambin debe estar formalmente documentada, aprobada y utilizada por toda la organizacin. Practicas: Describen las acciones necesarias requeridas para cubrir los elementos claves de un proceso. La esencia de un modelo CMMI est en las prcticas. Nivel de Madurez: Es un conjunto pre-definido de reas de proceso que deben ser cubiertas por completo para cumplir con un nivel especfico. rea de proceso: Conjunto de prcticas relacionadas entre s, que cuando son implementadas de forma colectiva, satisfacen un conjunto de objetivos que cubren esa rea. Objetivo especfico: Forma parte de un rea de proceso y describe que debe ser implementado para satisfacer un rea de proceso. Practica especifica: Es una actividad que es considerada importante para alcanzar los objetivos especficos SGs de un rea de proceso. Permiten establecer la madurez de los procesos de una organizacin.

Pgina 88 de 183

Sistemas Operativos

5.- SISTEMAS OPERATIVOS


GENERALIDADES DE LOS SISTEMAS OPERATIVOS MULTIUSUARIOS
Existen diversos programas que se manejan en una computadora. De todos los programas y aplicaciones comerciales que se conocen hoy en da, los ms importantes son los llamados programas del sistema, que son programas que controlan el hardware de manera directa o indirecta. Entre ellos existen: editores, compiladores, traductores, ligadores, etc,. Sin embargo el ms importante de todos es el Sistema Operativo. Definicin (de Sistema Operativo): Software de Sistema que se encarga de la gestin de recursos y su administracin tanto de software como de hardware, ocultando los detalles al usuario, permitindole una interaccin ms cmoda con los mismos. As existen dos formas de visualizar a los sistemas operativos: Top-Down (Arriba-Abajo): Como un software capaz de comunicarse con los recursos de hardware de la computadora sin mostrar los detalles al usuario. Bottom-Up (Abajo-Arriba): Visto como un software gestor de recursos de hardware y su control para que el usuario obtenga la informacin de forma rpida y correcta. Un sistema operativo tradicional se puede ver como un modelo en capas superpuestas(capas de cebolla) desde la ms interna, que est pegada con el hardware de la computadora, y la ms externa que est en interaccin directa con el usuario. Estos componentes son: Kernel o Ncleo. Es el programa medular que ejecuta programas y gestiona dispositivos de hardware tales como los discos y las impresoras. Shell. Proporciona una interfaz para el usuario. Recibe rdenes del usuario y las enva al ncleo para ser ejecutadas. Sistema de archivos. Organiza la forma en que se almacenan los archivos en dispositivos de almacenamiento tales como los discos. Aplicaciones Son programas especializados, tales como editores, compiladores y programas de comunicaciones, que realizan operaciones de computacin estndar. Una de las aplicaciones ms utilizadas es la interfaz grfica que facilita enormemente la interaccin humano computadora.

PROCESOS Y ARCHIVOS
Ahora bien dentro de los sistemas operativos existen dos paradigmas definiciones fundamentales con las que un sistema operativo opera. Proceso: Cualquier programa en ejecucin Archivo: Secuencia de bytes almacenados en cualquier dispositivo de memoria secundaria

Sistemas Operativos

Pgina 89 de 183

De manera principal los sistemas operativos se apoyan en estos conceptos para poder ofrecer los servicios adecuados. En base a esta forma de trabajo los sistemas operativos pueden clasificarse como sigue: Monousuarios Los SO monousuarios son aquellos que soportan a un usuario a la vez, sin importar el nmero de procesadores que tenga la computadora o el nmero de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales tpicamente se han clasificado en este rengln. Multiusuarios Los SO multiusuarios son capaces de dar servicio a ms de un usuario a la vez, ya sea por medio de varias terminales conectadas a la computadora o por medio de sesiones remotas en una red de comunicaciones. No importa el nmero de procesadores en la mquina ni el nmero de procesos que cada usuario puede ejecutar simultneamente. En otras palabras consiste en el fraccionamiento del tiempo (timesharing). El tiempo compartido en ordenadores o computadoras consiste en el uso de un sistema por ms de una persona al mismo tiempo, ejecutando programas separados de forma concurrente, intercambiando porciones de tiempo asignadas a cada programa (usuario). En este aspecto, es similar a la capacidad de multitareas que es comn en la mayora de los microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el acceso de varios usuarios a computadoras ms grandes y a organizaciones de servicios, mientras que la multitarea relacionada con las microcomputadoras implica la realizacin de mltiples tareas por un solo usuario Esto facilita la reduccin de tiempo ocioso en el procesador, e indirectamente implica reduccin de los costos de energa y equipamiento para resolver las necesidades de cmputo de los usuarios. Ejemplos de sistemas operativos con caracterstica de multiusuario son VMS y Unix en sus mltiples derivaciones (e.g. IRIX, Solaris, etc.) y los sistemas "clones de Unix" como Linux y FreeBSD. En la familia de los sistemas operativos Microsoft Windows, las versiones domsticas y para clientes de Windows 2000, Windows XP y Windows Vista proveen soporte para ambientes personalizados por usuario, pero no admiten mltiples usuarios usando el escritorio del sistema concurrentemente, las versiones de servidor de Windows 2000 y Windows 2003 (as como la futura versin de Vista "Longhorn") proveen servicio de escritorio a mltiples usuarios de forma concurrente a travs de Terminal Services. Un sistema operativo multiusuario, a diferencia de uno monousuario, debe resolver una serie de complejos problemas de administracin de recursos, memoria, acceso al sistema de archivos, etc. Multitarea Es una caracterstica de un sistema operativo moderno. Permite que varios procesos sean ejecutados al mismo tiempo compartiendo uno o ms procesadores. Tipos de multitarea: Nula: El sistema operativo carece de multitarea. Aun as puede lograrse a veces algo parecido a una multitarea implementndola en espacio de usuario, o usando trucos como los TSR de MS-DOS. Un ejemplo tpico de un sistema no multitarea es MS-DOS y sus clones. Cooperativa: Los procesos de usuario son quienes ceden la CPU al sistema operativo a intervalos regulares. Muy problemtica, puesto que si el proceso de usuario se interrumpe y no cede la CPU al sistema operativo, todo el sistema estar trabado, es decir, sin poder hacer nada. Da lugar tambin a latencias muy irregulares, y la imposibilidad de tener en cuenta este esquema en sistemas operativos de tiempo real. Un ejemplo sera Windows hasta la versin 95.

Sistemas Operativos

Preferente: El sistema operativo es el encargado de administrar el/los procesador(es), repartiendo el tiempo de uso de este entre los procesos que estn esperando para utilizarlo. Cada proceso utiliza el

Pgina 90 de 183

procesador durante cortos perodos de tiempo, pero el resultado final es prcticamente igual que si estuviesen ejecutndose al mismo tiempo. Ejemplos de sistemas de este tipo seran Unix y sus clones (FreeBSD, Linux...), Windows NT... Real: Slo se da en sistemas multiprocesador. Es aquella en la que varios procesos se ejecutan realmente al mismo tiempo, en distintos microprocesadores. Suele ser tambin preferente. Ejemplos de sistemas operativos con esa capacidad: variantes Unix, Linux, Windows NT, etc.

Sistema Operativo Linux


En un sentido estricto, slo se puede hablar de una versin de Linux en un momento determinado: la ltima versin actualizada del ncleo. El ncleo es el dominio particular de Torvalds en el desarrollo de Linux, dejando todas las aplicaciones y servicios que actan sobre el ncleo para los miles de desarrolladores que hay en el mundo. En el sentido genrico de Linux, que se refiere a las colecciones de aplicaciones que se ejecutan sobre el ncleo, hay muchas versiones de Linux. Cada distribucin tiene caractersticas especficas, que incluyen mtodos de instalacin, ampliaciones y caractersticas especiales. Lo interesante de la forma dual de usar el trmino Linux es que ocurre lo mismo con el trmino SO. En un sentido comercial, un SO es una gran coleccin de aplicaciones que complementan el ncleo. Esto es lo que son Windows 95 y Windows 98, Windows NT, Windows 2000, o Mac OS. Desde un punto de vista tcnico, un SO es el ncleo principal que proporciona funciones bsicas para desarrollar y ejecutar aplicaciones. Un Sistema Operativo multiusuario Ms importante que sus capacidades multitarea son sus caractersticas como SO multiusuario, caractersticas que comparte con todas las versiones de Uns y otros sistemas clnicos de Unix. Linux permite varios usuarios simultneos, permitiendo aprovechar al mximo las capacidades multitarea del SO. La gran ventaja de esto es que permite utilizar Linux como servidor de aplicaciones. Desde sus terminales, los usuarios pueden conectarse a travs de una red con el servidor y ejecutar las aplicaciones directamente en l, en lugar de hacerlo en su propio ordenador. Linux es un sistema que trabaja propiamente de dos formas: Lnea de Comandos Interfaz Grfica

El shell o lnea de comandos trabaja con comandos diversos que cumplen las siguientes funciones, entre muchas otras: Sobre los archivos y directorios Tratamiento de Archivos Permisos y Espacio de Disco Duro Monitoreo de procesos Redireccionamiento y Tuberas Adems trabaja con un sper usuario o administrador del sistema que es capaz de manejar las caractersticas anteriores y muchas otras.
Lnea de comando

LNEA DE COMANDO

Pgina 91 de 183

COMANDOS SOBRE ARCHIVOS Y DIRECTORIOS Comando: mkdir Formato: mkdir [opciones] directorio Descripcin: Crea directorios. Ejemplo: mkdir p /home/juan/documentos/cartas Crea el directorio cartas y todos los directorios anteriores necesarios. Comando: rmdir Formato: rmdir directorio Descripcin: Borra el directorio especificado. Siempre y cuando este vaco. Ejemplo: rmdir cartas Comando: pwd Formato: pwd Descripcin: Informa sobre cul es el directorio actual en el que nos encontramos, no tiene ningn tipo de parmetro. Comando: cd Formato: cd nombre_del_directorio Descripcin: Cambia del directorio actual al indicado en nombre_del_directorio. Si no se indica ningn directorio cambiara al directorio raz del usuario que lo invoca. Admite los directorios . y .. correspondientes al actual y al padre del actual para indicar los caminos relativos al directorio destino. Ejemplos: cd cartas Cambia al directorio cartas. Comando: ls Formato: ls [opciones] archivos Descripcin: Lista los archivos indicados mostrando informacin sobre ellos. Si no se pasa como parmetro ningn nombre de archivo, lista los archivos del directorio actual. Las opciones son: -a Muestra todos los archivos del directorio actual incluyendo los archivos ocultos, que en LINUX son los que comienza su nombre por punto. -l Muestra los directorios como archivos en lugar de mostrar sus contenidos. -t -r Archivos Ejemplos: ls l Muestra los archivos del directorio actual con el formato extendido dando toda la informacin. ls la *.c Muestra todos los archivos en formato extenso cuyo nombre termine en .c y que comiencen por cualquier cadena de carcter, mostrar tambin los que se consideran ocultos, que comprenden por .., y cumplan en resto de las condiciones.

Pgina 92 de 183

Lnea de comando

COMANDOS BSICOS PARA EL MANEJO DE ARCHIVOS


Comando: cat Formato: cat [opciones] archivos Descripcin: Concatena la lista de archivos que se le facilita en la salida estndar. Ejemplos: cat hola.txt Comando: rm Formato: rm [opciones] archivos Descripcin: Elimina archivos y directorios del sistema de ficheros. Se utiliza tanto para borrar archivos, enlaces y directorios. Para eliminar directorios es necesaria la opcin r. Hay que tener mucho cuidado con la utilizacin de este comando pues sus acciones son irreparables. Las opciones son: Ejemplos: rm * Borra todos los archivos del directorio actual pidiendo permiso para cada archivo que va a borrar. Comando: cp Formato: cp [opciones] fuente destino Descripcin: Copia archivos y directorios. Copiar fuente a destino, fuente puede ser una lista de archivos que copiar a un directorio indicado en destino. Tambin puede copiar un archivo sobre otro archivo. Ejemplos: cp /usr/bin/joe . Copia el archivo joe del directorio /usr/bin al directorio actual. cp joe joe.old Copia el contenido de joe a joe.old, es decir, respalda joe. Comando: mv Formato: mv [opciones] origen destino Descripcin: Mueve archivos y directorios. Tambin es el comando que se utiliza para renombrado de archivos y directorios por ser similar el efecto que se produce. Ejemplos: mv carta.txt carta.doc Cambia de nombre el archivo carta.txt a carta.doc. Comando: ln Formato: ln [-s] origen destino Descripcin: Crea un enlace a un archivo, con el fin de poder acceder a un archivo con ms de un nombre. Ejemplos: ln s documento.txt trabajo.txt Crea un enlace simblico o ligadura simblica del archivo documento.txt en el enlace trabajo.txt. Comando: file Formato: file archivo Descripcin: Realiza una exploracin del archivo tratando de clasificarlo. Al final imprime en pantalla la descripcin del archivo e informacin relevante. Ejemplo: carta.doc Clasifica a carta.doc como un documento de Microsoft Office Document Comando: find Formato: find directorio(s) [criterios_de_seleccion] [opcion_de_comando] nom arch Descripcin: El comando find se utiliza para examinar la jerarqua de directorios en bsqueda de archivos. Para esta bsqueda pueden indicarse ciertos criterios. Adems, tambin puede aparecer el nombre del archivo encontrado en pantalla o ejecutarse con un comando.
Lnea de comando

Ejemplo: find . name jose print

Pgina 93 de 183

En este caso busca en el directorio actual. el archivo con nombre jose e imprime los lugares o bsquedas exitosas.

TRATAMIENTO DE ARCHIVOS
Comando: cat Formato: cat [opciones] archivo [archivo1][archivo n] Descripcin: Despliega el contenido de un archivo sin paginacin y sin formato hacia la pantalla consola. Concatena dos o ms archivos en uno slo. Ejemplo: cat numero.c Despliega el contenido del archivo numero.c a la pantalla sin formato y sin pausas paginacin. Comando: more Formato: more [opciones] archivo Descripcin: Se utiliza para paginar texto que no cabe en la pantalla y, por tanto, se desplaza sin poderlo ver. Se utiliza a travs de un redireccionamiento o una pipe para formatear el resultado de otro comando. Para salir de more antes de terminar pulse q y para avanzar barra espaciadora. Ejemplos: ls l | more Lista los archivos del directorio actual y se los pasa al comando more para que lo pagine y lo muestre pgina a pgina. more cartas.txt Pagina el contenido de cartas.txt Comando: less Formato: less [-cmsCM] [-xtab] [+comando] [archivo...] Descripcin: Al igual que more, less es un programa de paginacin. Una de sus principales ventajas es que hace fcil desplazarse hacia atrs o hacia adelante de un archivo.Los datos se despliegan pantalla por pantalla. Con las flechas de direccin regresa o avanza. Ejemplo: less hola.txt Muestra el contenido de hola.txt paginado y con formato. Con la posibilidad de ir hacia delante y hacia atrs del texto. Comando: tail Formato: tail [opciones] archivo Descripcin: Muestra las ltimas lneas del archivo que se le pasan como parmetro. Por defecto muestra las diez ltimas lneas. Ejemplo: tail archivo_largo.txt Muestra las 10 ltimas lneas del archivo_largo.txt. Comando: head Formato: head [opciones] archivo Descripcin: Muestra las primeras lneas del archivo que se le pasan como parmetro. Por defecto muestra las diez primeras lneas. Ejemplo: head archivo_largo.txt Muestra las 10 primeras lneas del archivo_largo.txt.

Pgina 94 de 183

Lnea de comando

Comando: grep Formato: grep [opciones] patrn [archivo(s)] Descripcin: Permite buscar cadenas de caracteres en los archivos que le indiquemos. grep toma el patrn que deseamos buscar como primer argumento y el resto de los argumentos los toma como nombres de archivos. En caso de que el elemento que deseemos buscar se componga de ms de una palabra, ese elemento deberemos incluirlo entre comillas dobles. Una vez buscado el patrn, se visualizan todos los archivos que lo contienen. Ejemplos: grep NULL * En este caso, grep busca el patrn NULL en todos los archivos del directorio actual. Recordemos que el asterisco sustituye a cualquier cadena de caracteres, y en este caso a todos los archivos del directorio en el que estemos situados.
grep n main /home/chan/spro/*.c En el caso anterior, al colocar la opcin n se visualiza el nmero de lnea del archivo donde se encuentra el patrn buscado.

PERMISOS Y ESPACIO DE DISCO DURO


Comando: chgrp Formato: chgrp [opciones] grupo archivos Descripcin: Permite el cambio del grupo propietario de un archivo directorio. Para cambiar la propiedad de grupo de un archivo o directorio hay que ser el propietario de dicho archivo o ser el usuario root. Ejemplo: chgrp invitados p* Cambia el grupo propietario a invitados de todos los archivos que comiencen por la letra p dentro del directorio actual. Comando: chmod Formato: chmod [opciones] modo archivos Descripcin: Permite el cambio de los permisos o modo de los archivos y directorios. Los permisos de un archivo o directorio permiten controlar el acceso a los mismos. Existen tres niveles de permisos, los de propietario, grupo y otros. As los permisos de propietario afectan al propietario del archivo o directorio, los permisos de grupo afectan al grupo propietario y, por ltimo, otros afectan al resto de usuarios del sistema. Dentro de cada nivel de permisos existen tres tipos de derechos de lectura r de escritura w y de ejecucin x. En archivos, los derechos de lectura y escritura permitirn leer y escribir el archivo respectivamente y el derecho de ejecucin ejecutar si se trata de un fichero que contiene cdigo ejecutable. Ejemplo: chmod rwx,r,r archivo.txt Comando: chown Formato: chown [opciones] usuario archivos Descripcin: Permite el cambio de usuario propietario de un archivo o directorio. Para cambiar el propietario de un archivo o directorios hay que ser el propietario de dicho archivo o ser el usuario root. Si se cambia la propiedad de un archivo sin ser el root ya no se podr volver a obtener dicha propiedad, esta accin la tendr que hacer el nuevo propietario o el root. Ejemplos: chown jdalanis tabla.txt Cambia el propietario de tabla.txt al usuario jdalanis

Pgina 95 de 183

Lnea de comando

Comando: du Formato: du [opciones] archivos Descripcin: Informa sobre la cantidad de espacio que ocupan en disco los archivos y directorios indicados como parmetros. Si no se da ningn parmetro se da la informacin del directorio actual. Las opciones ms utiles son: -k Muestra los tamaos en kilobytes. -s Muestra el tamao que ocupa cada subdirectorio en conjunto con la suma de todo lo que ocupa su contenido. -h Muestra el tamao que ocupa la particin para que sea entendible para los humanos. Ejemplos: du s /var Muestra el tamao total ocupado por el directorio /var y todo su contenido. Comando: df Descripcin: Muestra informacin acerca de las particiones y el porcentaje que cada particin ocupa sobre el disco duro o unidad. Si por el contrario se introduce un directorio, se mostrarn slo las estadsticas de la unidad de disco que incluye dicho directorio. Adems muestra donde est montada la particin, cul es su tamao. Las principales opciones para usar con df son: -h Nos ensea el nmero de bloques ocupados en gigabytes, megabytes o kilobytes ? de forma legible para el ser humano human readable Tipo de unidad (ext2, nfs, etc.). -t Muestra los resultados en i-bloques para cada sistema de archivos -k

MONITOREO DE PROCESOS
Comando: ps Formato: ps [opciones] Descripcin: Informa acerca de los procesos que en ese momento se estn ejecutando en el sistema. Si no le pasamos ninguna opcin, slo nos ofrecer un pequeo informe de los procesos asociados a nuestra terminal. En el sistema BSD, esta orden funciona de forma diferente como lo hace en UNIX System V. Las opciones ms comunes para este ltimo son:
Informa de todos los procesos que hay en el sistema. Proporciona una lista completa de cada proceso, incluyendo el identificador de cada uno de ellos (PID) y el identificador del proceso padre (PPID). -l Da listados largos y completos que contiene muchos detalles de los procesos de los que informa, incluyendo prioridad, valor nice y tamao de la memoria. Ejemplo: ps ef UID PID PPID C STIME TTY TIME COMMAND Root Root Root Root Root Root Chan 0 1 2 4 3332 3288 4025 0 0 0 0 0 1 1 0 0 0 0 0 0 0 12:04:19 12:04:19 12:04:19 12:04:19 12:04:46 12:04:33 12:23:22 ? ? ? ? ? ? Tyy0 0:00 0:00 0:00 0:00 0:00 0:00 0:02 swapper /etc/init /pagedaemon netisr /etc/vtdaemon /etc/rlbdaemon ksh
Lnea de comando

-e -f

Analicemos cada uno de los campos anteriores:

Pgina 96 de 183

UID PID PPID C

Nombre del usuario propietario del proceso. Identificador del proceso. Identificador del proceso padre. ndica la cantidad de recursos de CPU que el proceso ha utilizado recientemente. El ncleo utiliza esta informacin para calcular la prioridad. Este campo puede ser modificado con la orden nice. STIME Instante de comienzo del proceso. TTY Terminal asociado al proceso. Es el terminal usado por el proceso para operaciones de lectura y escritura estndar. Algunos procesos no estn asociados a ningn terminal, en cuyo caso la columna de TTY de la salida contiene el smbolo de interrogacin, ?. TIME Tiempo de CPU asignado al proceso. COMMAND Nombre del programa que contiene la imagen del proceso.

Comando: kill Formato: kill [-seal] PID [PID...] Descripcin: La orden kill, como hemos dicho, se utiliza para enviar seales. El que enva la seal debe ser el propietario de los procesos o el administrador del sistema. Por defecto, kill enva la seal nmero 15 al proceso especificado, con intencin de terminar su ejecucin. Esta seal nmero 15 lo mximo que hace es avisar al proceso que termine por s mismo, pero el proceso puede ignorarla. Si queremos eliminar el proceso definitivamente, lo mejor es enviarla la seal nmero 9, que no se puede ignorar. Ejemplo: Imaginemos que queremos eliminar el proceso tail cuyo PID es el 1809. La forma de hacerlo sera: kill 9 1809

COMANDOS VARIOS
Comando: finger Formato: finger [opciones] usuarios Descripcin: Este comando se utiliza para obtener informacin sobre los usuarios del sistema, muestra toda la informacin referente a un usuario que hay registrada en el sistema. Si solo se invoca el comando sin ninguna opcin ni nombre de usuario nos da informacin referente a los usuarios actualmente conectados al sistema. Podemos pedir informacin sobre usuarios de otras computadoras conectadas en red poniendo:usuario@nmbrecomputador.sudominio. Ejemplo: finger jdalanis Nos devolver la informacin almacenada referente al usuario jdalanis Comando: clear Formato: clear Descripcin: Borra la pantalla completamente de la terminal en la que se est trabajando. Comando: man Formato: man [comando] Descripcin: Localiza y muestra la(s) pgina(s) del manual del comando especificado. Ejemplo: man date El manual en lnea man contiene pginas del manual para cada comando y otras pginas acerca de las funciones internas que los programadores utilizan, formatos para diferentes tipos de sistema de archivo, descripciones de hardware que puede conectarse a su Sistema Operativo.

Pgina 97 de 183

Lnea de comando

Comando: cal Formato: cal [-j] [-y] [mes] [ao] Descripcin: Muestra en pantalla el calendario del ao indicado, o del mes indicado. Ejemplos: cal Muestra en pantalla el calendario del mes actual. cal 4 1974 Muestra el calendario de abril de 1974. cal 2010 Muestra el calendario del ao 2010. Comando: Formato: who who [opciones] [archivo] who am i Descripcin: Informa sobre quin est en el sistema. Lista el nombre de conexin, el nombre de la terminal y el momento de conexin para cada usuario conectado al sistema LINUX. Tambin puede escribir who am i y slo se imprimir la lnea de la terminal en la cual se escribi el comando. Ejemplos: who El comando who se ocupa para saber quin se encuentra en el sistema con la finalidad de: mandar mensajes, conocer la carga del sistema o para verificar la actividad en el sistema antes de su cierre. Comando: passwd Formato: passwd [nombre del usuario] Descripcin: Cambia la contrasea del usuario (password), siempre que ya se haya registrado. Una contrasea slo puede ser cambiada por el propietario de la misma, passwd pedir que escriba la contrasea actual para probar que an es la misma persona que cuando se llev a cabo el registro. Posteriormente el programa. passwd pide la nueva contrasea dos veces para asegurarse de que sea correcta. Si se ha introducido la misma contrasea las dos veces, la orden passwd cambiar la idea de que el sistema tiene la contrasea y regresar luego al shell de la forma usual para aceptar la siguiente orden. Si se comete un error, el programa passwd acabar volviendo al shell para que se pueda intentar de nuevo. Si se cancela la ejecucin del comando passwd, acabar dejando la vieja contrasea todava en activo. Si olvidara la contrasea, no hay manera de recuperarla, ni an el administrador del sistema puede hacerlo. Puede asignarle una nueva. El administrador del sistema podr crear una contrasea nula o variar las contraseas de los distintos usuarios. Comando: shutdown Formato: /sbin/shutdown [-t segundos] [-rkhncf] tiempo [mensaje] Descripcin: Termina todos los procesos que se estn ejecutando en el sistema de manera ordenada. Cierra el sistema, parando todas las conexiones y esperando antes de detenerse mientras lanza mensajes de aviso. Cuando se especifica una hora, el cierre se realizar a la hora indicada. Slo el superusuario o un usuario con autorizacin pueden ejecutar la orden shutdown. Las opciones son: -r Reinicia despus de cerrar. -h Se detiene despus de hacer el shutdown. mensaje Enva el mensaje a todos los usuarios. Ejemplos: shutdown h +10 El sistema se cierra al cabo de 10 minutos. shutdown r now
Lnea de comando

Cierra el sistema inmediatamente y despus lo vuelve a arrancar.

Pgina 98 de 183

shutdown h +5 El sistema necesita un descanso Advierte a los usuarios del cierre del sistema para darles tiempo a terminar lo que estn haciendo. El comando shutdown forma parte del procedimiento de desconexin, que tiene como finalidad mantener la sanidad del sistema cuando se arranque de nuevo. shutdown trata de evitar que los procesos en ejecucin no se vean afectados o alterados por la cada o desconexin del sistema Comando: exit Formato: exit Descripcin: Indica que se ha terminado la sesin y libera a la terminal para ser utilizada por alguien ms o para ingresar con un identificador distinto. La terminacin o despedida impide que gente extraa utilice la terminal y el identificador para provocar perjuicios potenciales. REDIRECCIONAMIENTO Y TUBERAS

Smbol Significado o < Se usa para redireccionar la entrada en un comando o programa a fin de que provenga de un archivo y no de la terminal, es decir, en vez de que la entrada provenga del teclado de la terminal, viene de un archivo. Por ejemplo, el siguiente comando enva por correo electrnico el archivo info al usuario jdalanis mail jdalanisu < info En vez de volver a escribir el contenido del archivo info hacia el comando mail, se utiliza dicho archivo como la entrada (stdin) hacia el comando mail. > Se emplea para redireccionar la salida de un programa hacia un archivo, es decir, en vez de que la salida vaya a la pantalla de la terminal, se coloca en un archivo. Por ejemplo, el siguiente comando guarda la hora y fecha actuales en el archivo fecha: date > fecha En lugar de que el comando date despliegue la hora y fecha actuales en la pantalla de la terminal las enva al archivo fecha. Linux crea o sobreescribe el archivo a la derecha del smbolo >, por lo que debe tenerse cuidado de no destruir informacin til de esta manera. >> Se usa para aadir informacin a un archivo existente. Por ejemplo, el siguiente comando agrega la fecha actual a un archivo llamado reporte: date >> reporte
Tuberas Con frecuencia es necesario utilizar la salida de un proceso como entrada de otro, o dicho de otra manera, un proceso podra generar cierta salida que fuera utilizada por otro. Por ejemplo, en el comando: cat cartas.txt | grep amor el primer proceso, que ejecuta cat, y muestra el archivo cartas.txt. El segundo proceso, que ejecuta grep, selecciona e imprime en la salida estndar todas las lneas que contienen la palabra amor desde la salida generada por el primer proceso. En vez de introducir cada comando por separado y guardar los resultados en archivos intermedios, puede conectar una secuencia de comandos por medio de una tubera. El carcter de tubera de Linux es una barra vertical ( | ).

Pgina 99 de 183

Programacin orientada a objetos

6.- PROGRAMACIN
INTRODUCCIN A LA POO.
La programacin orientada a objetos, se ha convertido en uno de los motores claves para el desarrollo de software en la dcada de los noventas, sin embargo, de manera contraria a como se crea, la POO no es una tecnologa nueva, si no que ha existido desde la dcada de los 60s. La POO basa su filosofa en los objetos, entidades que pueden ser tomadas del mundo real, como personas, lugares o cosas, y que tienen atributos o datos, y mtodos o funciones, que son el conjunto de cosas que puede hacer un objeto.

FUNDAMENTOS DE PROGRAMACIN ORIENTADA A OBJETOS (POO).


Los programas estructurados se basan en estructuras de control bien definidas, bloques de cdigo, subrutinas independientes que soportan recursividad y variables locales. La esencia de la programacin estructurada es la reduccin de un programa a sus elementos constituidos. La programacin orientada a objetos permite descomponer un problema en subgrupos relacionados. Cada subgrupo pasa a ser un objeto autocontenido que contiene sus propias instrucciones y datos que le relacionan con ese objeto. Todos los lenguajes Orientados a Objetos comparten tres caractersticas: Encapsulacin, Polimorfismo y Herencia. La caracterstica ms importante de C++ es que es un lenguaje orientado a objetos. Este tipo de lenguajes permite organizar el cdigo en una forma ms intuitiva que otros tipos de lenguaje. El principal objetivo en un lenguaje orientado a objeto es que se pueden crear objetos que contienen los datos y los mtodos para manipularlos. Adems, el programador puede decidir si los datos y los mtodos son visibles o no al resto del programa, en C++ estos objetos se implementan mediante clases. Las clases son muy similares a las estructuras.

MECANISMOS BSICOS DE LA POO. Objeto: Conjunto de variables y funciones pertenecientes a una clase encapsulados. A este encapsulamiento es al que se denomina objeto. Por tanto la clase es quien define las caractersticas y funcionamiento del objeto. Mensaje: es lo mismo que una llamada a una funcin. En programacin orientada a objetos se envan mensajes en lugar de llamar a funciones. En principio se puede pensar en ambas cosas como equivalentes. Mtodo: es una funcin contenida en una clase

Programacin orientada a objetos

Clases: Una clase es un grupo de datos y mtodos (funciones). Es slo un patrn que ser usado
para crear una variable que pueda ser manipulada en el programa. Un objeto es un ejemplo de una clase, lo que es similar a decir que una variable que hemos definido como un ejemplo de un tipo. Un objeto es lo que realmente se utiliza en un programa, ya que tiene valores que pueden ser cambiados.

Pgina 100 de 183

Subclases: Una subclase, es aquella clase que ha sido desarrollada tomando como base otra u otras clases, para obtener una subclase se hace uso del mecanismo de herencia que permite compartir mtodos y atributos entre clases. CARACTERSTICAS DE LA POO 1.- Abstraccin: Es el proceso mediante el cual se logran abstraer las caractersticas generales de
un objeto real, para a partir de l formar una clase.

2.- Encapsulamiento: Las funciones son una interface a travs de la cual se manipulan los datos almacenados en una clase. Usando estos mtodos, podemos manipular y extraer datos de un objeto sin saber qu tipos de datos se usan para almacenar los datos. Esto se conoce como encapsulacin de datos, y es un concepto muy importante en la programacin orientada a objetos. Encapsulacin es la habilidad de una parte de un programa para ocultar sus datos al resto del cdigo, impidiendo as accesos incorrectos o conflictos con los nombres de otras variables.
Las secciones de una clase que han sido etiquetadas como public permiten que los campos (variables o funciones) que le siguen en la clase puedan ser accedidas desde cualquier parte del programa, mientras que la palabra private indica que los campos que le siguen slo son accesibles por el cdigo que forma parte de la misma clase.

3.-Herencia: Proceso mediante el cual un objeto puede adquirir las propiedades de otro objeto. La informacin se hace manejable gracias a la clasificacin jerrquica. 4.- Polimorfismo: Es la cualidad que permite que un nombre se utilice para dos o ms propsitos relacionados pero tcnicamente diferentes. El propsito es poder usar un nombre para especificar una clase general de acciones. Por ejemplo en C tenemos tres funciones distintas para devolver el valor absoluto. Sin embargo en C++ incorpora Polimorfismo y a cada funcin se puede llamar abs().

Pgina 101 de 183

Programacin avanzada

APLICACIONES EN MODO GRFICO EN C#

1. Introduccin y fundamentos para el manejo de grficos El sistema operativo Windows proporciona una interface compuesta de muchos controles grficos que permiten la interaccin con el usuario final. Las aplicaciones desarrolladas en la plataforma .NET se consideran tambin como aplicaciones grficas. Justificacin: Es necesario que se tenga una forma de acceso a los recursos grficos del sistema operativo, sobre todo cuando la informacin que va a manejar una aplicacin requiere de una representacin grfica personalizada y que va cambiando con respecto al comportamiento de la informacin. GDI+ Antes de .NET: Fuerte dependencia entre el lenguaje y el Hardware de generacin de grficos. La tecnologa GDI+ se encarga de proporcionar una programacin independiente del dispositivo fsico sobre el que se van a generar los grficos. GDI+ divide su campo de trabajo en tres reas principales. Generacin de grficos vectoriales 2D Manipulacin de imgenes en los formatos grficos ms habituales. Visualizacin de texto en un amplio abanico de tipos de letra. Evolucin en el desarrollo de grficos

1.1 Primitivas de Graficacin


Tres acciones para la creacin de un grfico: 1. Definir un objeto en donde se va a crear la grfica (como una hoja de papel o lienzo). 2. Establecer el objeto con el cual se va a graficar (como un lpiz o un lapicero) 3. Elegir qu control va a servir como contenedor de la grfica, ya que como la programacin es independiente al dispositivo, una grfica ya creada, se puede visualizar en cualquier control de la aplicacin. Instancias de clases que se encuentran dentro del namespace System.Draw 1. El objeto para definir donde se va a realizar la grfica es una instancia de la clase Graphics, para definir 2. el lapicero o brocha para pintar se usan instancias de la clase Pen o SolidBrush y para establecer en que 3. control se va a visualizar el dibujo se puede usar cualquier control que contenga el mtodo CreateGraphics. Primera primitiva de graficacin: Lnea

Pgina 102 de 183

Graphics hoja; Pen pluma = new Pen(Color.MidnightBlue , 2);


Programacin avanzada

hoja = panel1.CreateGraphics(); hoja.Clear(Color.Blue); int x1, y1, x2, y2; x1 = panel1.Width / 2; y1 = panel1.Height / 2; x2 = x1; y2 = panel1.Height; hoja.DrawLine(pluma, x1, y1, x2, y2);

1.1 clases y mtodos para graficar


clase Graphics clase pen clase brush Mtodos ms comunes : DrawLine DrawRectangle, DrawEllipse DrawPolygon DrawCurve DrawBezier DrawPie DrawLine hoja.DrawLine(pluma, x1, y1, x2, y2); Donde X1,Y1 representan el punto inicial de la lnea y X2, Y2 representan el punto final de la lnea. Point punto1= new Point() ; Point punto2= new Point (); punto1.X = panel1.Width / 2; punto1.Y = panel1.Height / 2; punto2.X = punto1.X; punto2.Y = panel1.Height; hoja.DrawLine(pluma, punto1, punto2);

Pgina 103 de 183

Point punto1 = new Point(panel1.Width / 2, panel1.Height / 2); Point punto2 = new Point(punto1.X, panel1.Height); hoja.DrawLine(pluma, punto1, punto2); hoja.DrawLine(pluma, new Point(panel1.Width / 2, panel1.Height / 2), new Point(panel1.Width / 2, panel1.Height)); DRAWRECTANGLE: Este mtodo permite crear un rectngulo en la posicin y longitudes indicadas, su sintaxis tiene dos formas que son: hoja.DrawRectangle(pluma ,new Rectangle (10,10,20,40)); hoja.DrawRectangle(pluma,10,10,40,50);

La primera hace uso de una instancia de la clase rectangle, que es una clase con los parmetros siguientes: Rectangle(X1,Y1, width, height) Donde X1,Y1 representan su esquina superior izquierda del rectngulo y width su longitud sobre el eje x a partir de la coordenada X1 y height su longitud sobre el eje y a partir de y1.
Programacin avanzada

DRAWELLIPSE: Una elipse es un ovalo o forma circular, determinada por el rectngulo que la encierra. Las dos dimensiones de este rectngulo son los dimetros de la elipse. La sintaxis de este mtodo tiene dos formas que son: hoja.DrawEllipse(pluma,new Rectangle (10,10, 80,90)); hoja.DrawEllipse(pluma, 10, 10, 90, 90);

DRAWPOLYGON: Este mtodo dibuja un polgono arbitrario, solo sigue el orden de los puntos (point) que se le pasan como argumento y el punto final lo enlaza automticamente con el punto inicial, para cerrar la figura y dejar el polgono correspondiente. Su sintaxis general es la siguiente: Graphics.DrawPolygon(pen, points()); Donde points() es un arreglo de instancias de la clase point. Point[] puntos = new Point[] { new Point(230, 190), new Point(125, 60), new Point(250, 140),new Point(260, 250),new Point(310, 190), new Point(330, 220), new Point(310, 300),new Point(270, 390), new Point(190, 360), new Point(250, 330),new Point(190, 300), new Point(230, 270), new Point(230, 190)}; hoja.DrawPolygon(pluma, puntos);

Pgina 104 de 183

DRAWCURVE: Como su nombre lo indica, este mtodo permite crear curvas a travs de una serie de puntos dados. Cada punto que se agregue es por donde va a pasar la curva, por lo tanto entre ms puntos se tengan, la curva tendr mayor resolucin y definicin. Este tipo de curvas es similar a crear una curva con una cuerda que va a pasar por varios clavos en una pared, como la cuerda es un material no rgido y muy manejable, necesita una determinada tensin para la generacin de la curva, si la tensin es muy grande en lugar de una curva parecer un conjunto de rectas unidas, y si la tensin es mnima la cuerda puede quedar demasiado suelta y hacer ms curvas de las esperadas. La sintaxis general de este mtodo es la siguiente: Graphics.DrawCurve(pen, points, tension) Donde points es un arreglo de instancias point que contiene los clavos por donde va a pasar la cuerda y tension es un valor flotante donde 0 representa la mayor tensin. Una curva se define bien con una tensin de 0.5 o 0.8, tensiones mayores a 1 hacen curvas inesperadas. Point[] clavos = new Point[] { new Point(20, 50), new Point(220, 190), new Point(330, 80), new Point(450, 280) }; hoja.DrawCurve(pluma,clavos,0); DRAWBEZIER: Con este mtodo se puede generar una curva de Bezier, la cual es ms suavizada y solo se define a travs de cuatro puntos, el punto inicial, el punto de control 1, el punto de control 2 y el punto final.

La curva no pasa a travs de los puntos de control, solo sirven para darle una orientacin a la curva. Semejando con el mundo real, es como si se estuviera creando una curva con un alambre y los puntos de control son dos imanes que marcan el sentido de la misma.
Programacin avanzada

hoja.DrawBezier(pluma, new Point(120, 150), new Point(200, 90), new Point(330, 30), new Point(410, 110));

DRAWPIE: Este mtodo dibuja un pie, similar a una porcin de pastel, es decir, es un arco unido por dos segmentos de lnea que se conectan al centro de un crculo, o una elipse. Graphics.DrawPie(pen, X, Y, width, height, start, sweep); Donde X, Y, width y height representan el rectngulo de la elipse, start es el ngulo donde inicia el pie y

Pgina 105 de 183

sweep representa el desplazamiento en grados a partir del ngulo inicial.

hoja.DrawPie(pluma,40,80,70,70,0,90);

1.1 Programacin de Aplicaciones


La aplicacin de los mtodos de graficacin va a depender de las necesidades del programador. Uso comn: la animacin de objetos. Ir dibujando y borrando un mismo elemento grfico desde distintas posiciones creando un efecto de movimiento. Ejemplo: Hacer un programa que permita la animacin de cinco crculos que comiencen en el centro del rea de dibujo y se vayan moviendo en distintas direcciones hasta los lmites superiores del rea de dibujo. Diseo del Formulario Botn que activa la animacin y, rea de dibujo que es un control label con el tamao suficiente (AutoSize-False) y con su estilo de bordes definido para visualizar el cuadro correspondiente (BorderStyle-Fixed3D)

Graphics hoja; Pen plu = new Pen(Color.Red, 2); Pen plu2 = new Pen(Color.White, 2); hoja = label1.CreateGraphics(); hoja.Clear(Color.White);
int x1, y1, longi; Rectangle cuadrito = new Rectangle (); Rectangle cuad2 = new Rectangle(); Rectangle cuad3 = new Rectangle(); Rectangle cuad4 = new Rectangle(); Rectangle cuad5 = new Rectangle(); x1 = (label1.Width / 2) - 20; y1 = (label1.Height / 2) - 20; longi = 40; cuadrito.X = x1; cuadrito.Y = y1;
Programacin avanzada

cuadrito.Width = longi; cuadrito.Height = longi; cuad2 = cuadrito; cuad3 = cuad2; cuad4 = cuad3; cuad5 = cuad4; for (int z=1; z<=y1; z+=4) { hoja.DrawEllipse(plu, cuadrito);

Pgina 106 de 183

hoja.DrawEllipse(plu, cuad2); hoja.DrawEllipse(plu, cuad3); hoja.DrawEllipse(plu, cuad4); hoja.DrawEllipse(plu, cuad5); for (int a = 0; a <= 15000; a++) { for (int b = 0; b <= 1000; b++) { } } hoja.DrawEllipse(plu2, cuadrito); hoja.DrawEllipse(plu2, cuad2); hoja.DrawEllipse(plu2, cuad3); hoja.DrawEllipse(plu2, cuad4); hoja.DrawEllipse(plu2, cuad5); cuadrito.Y -= 4; cuad2.X -= 4; cuad3.X += 4; cuad4.X -= 3; cuad4.Y -= 3; cuad5.X += 3; cuad5.Y -= 3; } hoja.DrawEllipse(plu, cuadrito); hoja.DrawEllipse(plu, cuad2); hoja.DrawEllipse(plu, cuad3); hoja.DrawEllipse(plu, cuad4); hoja.DrawEllipse(plu, cuad5);

MANEJO DE ERRORES CON EXCEPCIONES


Los errores causados por un programa de computadora pueden ser clasificados dentro de tres grupos principales: Tiempo de diseo, Ejecucin, y lgico. El error en tiempo de diseo es el ms fcil de encontrar y arreglar. Un error de este tipo ocurre cuando se escribe cdigo no siguiendo las reglas del lenguaje de programacin.
Programacin avanzada

Son fciles de encontrar debido a que Visual Estudio .NET no solo indica donde est, sino que parte de la lnea es incompresible para el lenguaje. Los errores en tiempo de ejecucin son ms difciles de ubicar, debido a que Visual Studio no proporciona una ayuda para encontrar el error hasta que este ocurre en la ejecucin del programa. Estos errores ocurren cuando un programa intenta alguna cosa ilegal, como acceder a datos que no existen o recursos para los cuales no se tienen los permisos adecuados. Este tipo de errores puede causar que el programa se cuelgue a menos que sean manejados adecuadamente. El tercer tipo de error, el error lgico, es frecuentemente el ms insidioso para ubicar, debido a que por s mismo puede no manifestarse como un problema en todo el programa.

Pgina 107 de 183

Un programa con un error lgico simplemente significa que la salida u operacin del programa no es exactamente como se esperaba. Lo anterior puede ser ocasionado por un clculo incorrecto o tener una opcin de men habilitada cuando se quera deshabilitar, etc.

Excepciones integradas Un error en tiempo de ejecucin en C#.NET genera una excepcin. Una excepcin es una respuesta a una condicin de error que el programa ha generado. El manejo de un error es una seccin de cdigo de C#.NET que permite detectar excepciones y ejecutar los pasos necesarios para recuperar el control despus del error. Considere el siguiente bloque de cdigo dentro del evento clic de un botn. private void button1_Click(object sender, EventArgs e) { string cadena = "cochinos"; button1.Text = cadena.Substring (10,1); } El cdigo est intentando desplegar el onceavo carcter en la cadena cochinos. La cadena slo contiene ochos caracteres y una excepcin es generada al momento de ejecutar el evento, como lo muestra la siguiente imagen.

Lo primero que debe notarse es el hecho de que el mensaje ocurre en tiempo de ejecucin como un tipo de excepcin no controlada. Esto significa que la lnea de cdigo que ha generado el error no est contenida dentro de un bloque de manejo de excepcin. La segunda pieza de informacin es que la excepcin es del tipo ArgumentOutOfRangeException. Los errores pueden ser clasificados en grupos, en el caso anterior el mensaje indica que el objeto excepcin generado es de dicha clase, la cual es descendiente de la clase Exception.
Programacin avanzada

La informacin adicional indica algunas notas especficas sobre la naturaleza del error, para el ejemplo, el ndice startIndex no puede ser mayor que la longitud de la cadena.

Estructura de una excepcin


El siguiente cdigo contiene el mismo problema que en la seccin anterior pero contiene una forma simple de atrapar el error que se produce. private void button1_Click(object sender, EventArgs e) { string cadena = "cochinos"; try { button1.Text = cadena.Substring(10, 1);

Pgina 108 de 183

} catch { button1.Text = "Error"; } } El cdigo intenta hacer lo mismo que el cdigo anterior, pero esta vez la sentencia de la cadena defectuosa es envuelta entre el bloque try Catch Este bloque representa el manejo bsico de una excepcin. Si algn cdigo despus de la sentencia Try genera una excepcin, el control del programa automticamente salta al cdigo despus de la sentencia Catch. Si excepciones no son generadas en el cdigo bajo la sentencia Try, entonces el bloque Catch es pasado por alto. Cuando el cdigo es ejecutado, ArgumentOutOfRangeException se genera y el cdigo no termina con un mensaje. En su lugar, la propiedad text del botn establece la palabra Error, y el programa contina con su ejecucin.

Una variacin en el manejo de excepciones es el siguiente: private void button1_Click(object sender, EventArgs e) { string cadena = "cochinos"; try { button1.Text = cadena.Substring(10, 1); } catch (Exception oEx) { button1.Text = oEx.Message; } } En esta ocasin, la excepcin genera una instancia de la clase Exception y localiza dicha instancia en una variable llamada oEX. Tener la variable de una instancia de excepcin es til debido a que ofrece el texto del problema, que es desplegado en un mensaje.
Programacin avanzada

De hecho, desplegar el mensaje de la excepcin dentro de una ventana es mucho mejor que hacerlo durante la ejecucin del programa con una excepcin no controlada. Note que el control de la excepcin anterior no diferencia entre los diferentes tipos de errores, si alguna excepcin es generada dentro del bloque Try, entonces el bloque Catch es ejecutada. Es posible escribir un control de excepcin que maneje diferentes clases de errores, por ejemplo vea el siguiente cdigo. private void button2_Click(object sender, EventArgs e) { try { button2.Text = listBox1.SelectedItem.ToString(); } catch (NullReferenceException oEx) { MessageBox.Show("Por favor selecciona un elemento del ListBox"); MessageBox.Show(oEx.Message);

Pgina 109 de 183

} catch (Exception oEx) { MessageBox.Show("Otro error" + oEx.Message); } } Este cdigo intenta tomar el item seleccionado en un ListBox y lo despliega en el texto de un botn. Si ningn item es seleccionado en el ListBox, entonces NullReferenceException ser generada, y se usa la informacin para indicarle al usuario que debe hacer una seleccin de item en el ListBox. Si algn otro tipo de excepcin es generada, el cdigo despliega el texto del mensaje de error. Observe que, el control de excepcin ms especfico se encuentra primero y el control de excepcin ms general posteriormente. El programador debe tener cuidado en el orden de establecer el control de las excepciones. Adems la variable oEX es reutilizada en cada bloque de excepcin. Lo anterior es posible debido a que la sentencia Catch en realidad sirve como una declaracin de la variable y la variable oEX tiene un alcance local slo dentro del bloque Catch. Finalmente, la instancia de la excepcin es declarada en cada bloque Catch con alcance tambin dentro de su bloque. Cuando una excepcin es generada y manejada por una sentencia Catch, la ejecucin del cdigo es transferida inmediatamente al primer bloque de control de excepcin Catch relevante y entonces continua fuera del bloque Try Catch Algunas veces, puede ser necesario ejecutar algn tipo de limpieza antes de moverse fuera del bloque de control de excepcin. Considere el siguiente cdigo:

private void LeerArchivoTexto(string nombreArchivo) { StreamReader flujoLectura; string linea; Boolean valorB = false; listBox1.Items.Clear(); flujoLectura = new StreamReader(nombreArchivo); try
Programacin avanzada

{ while (!valorB) { linea = flujoLectura.ReadLine(); if (linea == null) valorB = true; else listBox1.Items.Add(linea); } flujoLectura.Close(); } catch (Exception oEx) { MessageBox.Show(oEx.Message); } } Este mtodo intenta leer el contenido de un archivo de texto y colocar el resultado dentro de un ListBox, lnea por lnea.

Pgina 110 de 183

Mucho del cdigo de lectura es envuelto dentro de un controlador de excepcin genrico. Si alguna excepcin es encontrada en el ciclo principal, entonces la lnea flujoLectura.Close( ) dentro del vecindario nunca ser ejecutada. Lo anterior significa que el flujo del archivo nunca ser apropiadamente cerrado, posiblemente conduciendo a una fuga de recurso. Afortunadamente, existe un tipo adicional de bloque disponible en el control de una excepcin que especficamente permite evitar este tipo de problema. Este nuevo bloque es llamado el bloque Finally. El cdigo dentro de un bloque Finally siempre se ejecuta, si alguna excepcin es generada o no. Considere el siguiente cdigo modificado respecto al anterior:

private void LeerArchivoTexto(string nombreArchivo) { StreamReader flujoLectura; string linea; Boolean valorB = false; listBox1.Items.Clear(); flujoLectura = new StreamReader(nombreArchivo); try { while (!valorB) { linea = flujoLectura.ReadLine(); if (linea == null) valorB = true; else listBox1.Items.Add(linea); } } catch (Exception oEx) { MessageBox.Show(oEx.Message); Programacin avanzada } finally { flujoLectura.Close(); } } En este caso, si alguna excepcin dentro del ciclo de lectura del archivo ocurre ser manejada con una ventana de mensaje, y entonces el objeto StreamReader es cerrado dentro del bloque Finally. La sentencia de cerrar se ejecuta si el cdigo dentro del bloque Try Catch se ejecuta o falla. Esto permite garantizar que ciertos recursos o controles son apropiadamente dispuestos cuando ya no son necesitados. Existen cientos de clases de excepcin construidas dentro del entorno .NET, la figura siguiente muestra la ventana de dilogo de excepciones que se encuentra en el men Depurar.

Tipos de excepciones

Pgina 111 de 183

Buscando en el rbol mostrado por la ventana se pueden encontrar eventualmente todas las clases que generan excepciones del entorno .NET que pueden ser usadas en las sentencias Catch segn el tipo de error que se desea controlar en un orden especfico o genrico.

Excepciones personalizadas Conforme se es ms hbil en la escritura de clases, probablemente se encuentre uno con la necesidad crear excepciones propias. Imagine escribir el cdigo para una propiedad de cierta clase de tipo entero que tiene un cierto rango. Si un desarrollador est usando la clase e intenta configurar la propiedad a un valor ms all del rango, es posible que se quiera informar al desarrollador que ha proporcionado un valor invlido. La mejor forma para informarle de este problema es envindole una excepcin. Suponga escribir la clase CtaCredito, para llevar el control de cuentas bancarias. Se introduce el titular de la cuenta y un importe para el crdito que necesita asignar. No obstante, dicho crdito no podr sobrepasar el valor de 2500; as que, para controlar tal circunstancia, se crea adicionalmente, la clase CreditoException, que heredando de Exception, contendr informacin en uno de sus miembros, sobre la excepcin producida en cuanto al importe que se intent asignar a la cuenta. // esta clase contiene la informacin sobre un error // producido en un objeto CtaCredito class CreditoException : Exception {
Programacin avanzada

private readonly String mDescription; public CreditoException(String lsDescription) { mDescription = lsDescription; } public string Descripsion { get { return mDescription; } } } class CtaCredito { private string mTitular; private readonly double mDisponible; //propiedad Titular

Pgina 112 de 183

public string Titular { get { return mTitular; } set { mTitular = value; } } //propiedad Credito de solo lectura public double Credito { get { return mDisponible; } } /* en este mtodo, si se intenta asignar un importe superior al permitido, se lanza una excepcin, utilizando un objeto de la clase CreditoException, heredado de Exception */ public void AsignarCredito(double ldbCredito) { if (ldbCredito > 2500 ) throw new CreditoException("Lmite disponible: 2500 - se intento asignar " + Convert .ToString (ldbCredito )); else mDisponible = ldbCredito; } }
Programacin avanzada

El esquema del proceso es el siguiente: cuando al mtodo AsignarCredito( ), de un objeto CtaCredito, se intente asignar un valor no permitido, se genera un nuevo objeto CreditoException y se lanza a travs de la palabra clave throw, que es la encargada de emitir las excepciones en el entorno de ejecucin. El uso de estas clases sera: Agregar un botn con el texto: Uso de Exception Personalizada. Agregar un label con el texto: Mensajes.

Evento clic del botn //crear un objeto de la nueva clase CtaCredito CtaCredito oCredito = new CtaCredito(); try { //asignar valores a propiedades oCredito.Titular = "Nancy lopez"; oCredito.AsignarCredito(1000); //no hay error en la expresion anterior label1.Text = "El crdito actual de: " + oCredito.Titular + " es de: " + Convert.ToString(oCredito.Credito); //la siguiente instruccion produce un error oCredito.AsignarCredito(5000); }

Pgina 113 de 183

catch (CreditoException oExep) { //manipulador para las excepciones producidas sobre un objeto CtaCredito label1.Text = oExep.Descripsion; } finally { MessageBox.Show("El controlador de errores ha finalizado"); }

Pgina 114 de 183

Programacin para la web

PROGRAMACIN PARA LA WEB


Estructuracin de un documento
Las etiquetas ms bsicas son las que forman el esqueleto de la pgina: <html> <head> <title> <body>

Define que se iniciara la construccin de una pgina web. En esta parte definida como el encabezado, se pueden incluir las funcione de programacin de Java script y las Hojas de Estilo. Define el ttulo de nuestra pgina Web Aqu es donde se construir toda nuestra pgina, es decir todos los elementos visuales que el usuario observa en la pgina

<HTML> <HEAD> <TITLE>una pgina de ensayo</TITLE> </HEAD> <BODY> Esto es lo que se visualiza en el navegador </BODY> </HTML>
Descripcin Comentarios Colores en el Lugar Prrafos Saltos de lnea Texto con preformato Cabeceras Separadores Etiqueta <!-> <font color=#rrggbb> </font> <p></p> <br> <pre> </pre> <H1> </H1> hasta <H6> </H6> <HR> Atributos

ALING=center/left/right alineacin SIZE=n ancho de lnea, donde n=1 al 10, el 1 es la ms fina WIDTH = n longitud de la lnea, NOSHADE lnea sin relieve

Tamao de (fuentes) Tipos de letras

letra

<FONT SIZE=x></FONT> <B> negrita <I> cursiva <u> subrayar <blink> texto intermitente <big> texto grande, el mayor tamao de fuente <small> texto pequeo, el menor tamao de la fuente <sup> super indice <sub> subindice <address> bloque de texto cursivo <blockquote> Representar con una tabulacin y en cursiva.

Pgina 115 de 183

<cite> muestra el texto como si fuera una cita <code> se utiliza para representar una etiqueta HTML o cdigo de programa <em> presenta el contenido de un bloque de texto enfatizado <strong> texto ms enfatizado que el caso anterior. Negrita <strike> texto techado <center> centra el texto en la pantalla <A HREF="xxx"> yyy </A> <OL TYPE= i> </OL> <OL TYPE= > </OL> <Img src=.....>; <table> </table> <tr> </tr> <td> </td> <TABLE> <TR> <TR> <TR> <T D>. <T ..</ D>. TD <T ..</ > D>. TD ..</ > TD > <T D>. <T ..</ D>. TD <T ..</ > D>. </TABLE> TD ..</ > TD > <T D>. <T ..</ D>. TD <T ..</ > D>. TD ..</ > TD > </TR> </TR> </TR>

Enlaces Listas Ordenadas Listas desordenadas Imgenes Tablas Filas columnas

<LH> Titulo de la lista <LI> Elemento de la lista ALT Asignamos entre comillas un nombre para la imagen

FRAMES <HTML> <HEAD><TITLE> Titulo </TITLE></HEAD> <FRAMESET COLS=*.*> <!---------CODIGO---------> </FREMESET> </HTML> Veamos que dos asteriscos separados por una coma, nos ayudan a delimitar las zonas de trabajo. En este caso indicamos que ambas ventana son iguales, tambin es posible sustituir estos asteriscos por nmeros o porcentajes, por ejemplo: <FRAMESET ROW=3*,*> igual a <FRAMESET ROW= 75%,25%>. Formularios <HTML> <HEAD> <TITLE> FORMULARIOS</TITLE> </HEAD> <BODY> <FORM> <P>Nombre completo: <INPUT TYPE="text" NAME="nombre" SIZE="30">
Programacin para la web

Pgina 116 de 183

<P>Direccin: <INPUT TYPE="text" NAME="direccion" SIZE="50"> <P>Ciudad: <INPUT TYPE="text" NAME="ciudad" SIZE="20"> Cdigo Postal: <INPUT TYPE="text" NAME="c.p." SIZE="6" MAXLENGTH="5"> <P>Telfono: <INPUT TYPE="text" NAME="telefono" SIZE="10" MAXLENGTH="9"> <P>Fax: <INPUT TYPE="text" NAME="FAX" SIZE="10" MAXLENGTH="9"> <P>Email: <INPUT TYPE="text" NAME="email" SIZE="30"> <P>Catlogo: <SELECT> <OPTION VALUE="nacional"> Nacional <OPTION VALUE="internacional" SELECTED> Internacional <OPTION VALUE="completo"> Completo </SELECT> <P> <INPUT TYPE="image" BORDER="0" SRC="img/enviar.jpg" VALUE="Enviar"> </FORM> </BODY> </HTML>

Programacin para la web

JAVASCRIP

Pgina 117 de 183

Javascript es un lenguaje de programacin utilizado para crear pequeos programitas encargados de realizar acciones dentro del mbito de una pgina web. Con Javascript podemos crear efectos especiales en las pginas y definir interactividades con el usuario. El navegador del cliente es el encargado de interpretar las instrucciones Javascript y ejecutarlas para realizar estos efectos e interactividades, de modo que el mayor recurso, y tal vez el nico, con que cuenta este lenguaje es el propio navegador Queremos que quede claro que Javascript no tiene nada que ver con Java, salvo en sus orgenes, como se ha podido leer hace unas lneas. Actualmente son productos totalmente distintos y no guardan entre si ms relacin que la sintaxis idntica y poco ms. Algunas diferencias entre estos dos lenguajes son las siguientes:

Compilador. Para programar en Java necesitamos un Kit de desarrollo y un compilador. Sin embargo, Javascript no es un lenguaje que necesite que sus programas se compilen, sino que stos se interpretan por parte del navegador cuando ste lee la pgina. Orientado a objetos. Java es un lenguaje de programacin orientado a objetos. (Ms tarde veremos qu quiere decir orientado a objetos, para el que no lo sepa todava) Javascript no es orientado a objetos, esto quiere decir que podremos programar sin necesidad de crear clases, tal como se realiza en los lenguajes de programacin estructurada como C o Pascal. Propsito. Java es mucho ms potente que Javascript, esto es debido a que Java es un lenguaje de propsito general, con el que se pueden hacer aplicaciones de lo ms variado, sin embargo, con Javascript slo podemos escribir programas para que se ejecuten en pginas web. Estructuras fuertes. Java es un lenguaje de programacin fuertemente tipado, esto quiere decir que al declarar una variable tendremos que indicar su tipo y no podr cambiar de un tipo a otro automticamente. Por su parte Javascript no tiene esta caracterstica, y podemos meter en una variable la informacin que deseemos, independientemente del tipo de sta. Adems, podremos cambiar el tipo de informacin de una variable cuando queramos. Otras caractersticas. Como vemos Java es mucho ms complejo, aunque tambin ms potente, robusto y seguro. Tiene ms funcionalidades que Javascript y las diferencias que los separan son lo suficientemente importantes como para distinguirlos fcilmente.

El lenguaje Javascript tiene una sintaxis muy parecida a la de Java por estar basado en l. Tambin es muy parecida a la del lenguaje C, de modo que si el lector conoce alguno de estos dos lenguajes se podr manejar con facilidad con el cdigo. De todos modos, en los siguientes captulos vamos a describir toda la sintaxis con detenimiento, por lo que los novatos no tendrn ningn problema con ella.

Comentarios
Un comentario es una parte de cdigo que no es interpretada por el navegador y cuya utilidad radica en facilitar la lectura al programador. El programador, a medida que desarrolla el script, va dejando frases o palabras sueltas, llamadas comentarios, que le ayudan a l o a cualquier otro a leer ms fcilmente el script a la hora de modificarlo o depurarlo. Ya se vio anteriormente algn comentario Javascript, pero ahora vamos a contarlos de nuevo. Existen dos tipos de comentarios en el lenguaje. Uno de ellos, la doble barra, sirve para comentar una lnea de cdigo. El
Programacin para la web

otro comentario lo podemos utilizar para comentar varias lneas y se indica con los signos /* para empezar el comentario y */ para terminarlo. Veamos unos ejemplos. <SCRIPT> //Este es un comentario de una lnea /*Este comentario se puede extender

Pgina 118 de 183

por varias lneas. Las que quieras*/ </SCRIPT>

Maysculas y minsculas
En javascript se han de respetar las maysculas y las minsculas. Si nos equivocamos al utilizarlas el navegador responder con un mensaje de error de sintaxis. Por convencin los nombres de las cosas se escriben en minsculas, salvo que se utilice un nombre con ms de una palabra, pues en ese caso se escribirn con maysculas las iniciales de las palabras siguientes a la primera. Tambin se puede utilizar mayscula en las iniciales de las primeras palabras en algunos casos, como los nombres de las clases, aunque ya veremos ms adelante cules son estos casos y qu son las clases.

Separacin de instrucciones
Las distintas instrucciones que contienen nuestros scripts se han de separar convenientemente para que el navegador no indique los correspondientes errores de sintaxis. Javascript tiene dos maneras de separar instrucciones. La primera es a travs del carcter punto y coma (;) y la segunda es a travs de un salto de lnea. Por esta razn Las sentencias Javascript no necesitan acabar en punto y coma a no ser que coloquemos dos instrucciones en la misma lnea. No es una mala idea, de todos modos, acostumbrarse a utilizar el punto y coma despus de cada instruccin pues otros lenguajes como Java o C obligan a utilizarlas y nos estaremos acostumbrando a realizar una sintaxis ms parecida a la habitual en entornos de programacin avanzados.

Cmo definir funciones


Las funciones se definen por medio del estatuto function, el cual requiere un nombre para la funcin, una lista de parmetros o argumentos que se pasarn a la funcin y un bloque de comandos que define lo que hace la funcin: function nombre_de_la_funcion(parametro1, parametro2, ... , parametroN) { linea_de_comando; ... ... linea_de_comando } Los nombres de las funciones son sensibles a maysculas y minsculas, pueden incluir el guin de subrayado y deben comenzar con una letra. La lista de argumentos se encierra entre parntesis y van separados por comas.
Programacin para la web

Cmo pasar parmetros

En el ejemplo expuesto arriba vemos que la funcin AlertBox acepta un parmetro llamado cMens. Dentro de la funcin, las referencias a cMens aluden al valor pasado a la funcin. Respecto de los parmetros, hay varios aspectos a considerar: Tanto las variables como los literales se pueden pasar como argumentos cuando se llama a una funcin. Si se pasa una variable a una funcin, al cambiar el valor del parmetro dentro de la funcin, no se estar alterando el valor de la variable pasada a la funcin.

Pgina 119 de 183

Los parmetros existen slo durante la vida de la funcin, si llama a una funcin varias veces, los parmetros se crean de nuevo cada vez que se llama a la funcin, y los valores que contienen cuando la funcin termin la ltima vez, no se retienen. Si un parmetro de una funcin tuviere el mismo nombre que una variable externa a la funcin, la funcin slo "ver" el valor del parmetro. Tanto los valores de los parmetros de una funcin como las variables creadas dentro de la misma, son desconocidos por el resto de las funciones del documento.

Variables y literales
Podemos imaginarnos las variables como cajas para guardar cosas que vamos a necesitar mientras ejecutamos JavaScript. Es habitual declarar variables en la mayora de los lenguajes de programacin. Esto significa que antes de utilizar una variable se le adjudica un nombre con el fin de que, cada vez que se ejecute el programa, se reserve un espacio de memoria para el contenido de la variable. En JavaScript declaramos variables utilizando la palabra clave var: var nombre_variable; Tambin puede incluirse algn contenido al declarar la variable: var nombre_variable = contenido; A esto se lo llama inicializar la variable. Por ejemplo: var cEstado = "Buenos Aires"; var nCodPostal = 1000; var oForms = document.forms; Por otro lado tenemos las literales. Las literales son valores fijos que proporcionan literalmente un valor a un programa. Existen tres tipos de datos literales: numricos, cadenas y boleanos.

Cadenas (strings), "Hola todos" Nmeros , enteros y decimales Boleanos (verdadero|true // falso|false)
Programacin para la web

HOJAS DE ESTILO CSS


Las Hojas de estilo son un complemento directo de HTML y conforman un lenguaje con el cual se definen las caractersticas formales (apariencia o estilos) de las instrucciones HTML en una pgina. Con la ayuda de las hojas de estilo se puede definir por ejemplo, que un encabezamiento de 1er. Nivel tenga un tamao de letra de 18 puntos, usando la fuente Helvtica sin ser resaltada y a una distancia de 1.75 cm. del prrafo que sigue. Este tipo de descripciones no se pueden hacer en HTML tradicional. Ventajas y desventajas Ventajas: Podemos modificarla la presentacin de todos los elementos estndar del documento sin tener que modificar el cdigo HTML estructural. Disponemos de comandos y atributos ms potentes y precisos con los que podemos maquetar exactamente un documento. Es un lenguaje muy sencillo, ya que se basa en el uso de propiedades muy intuitivas, similares a las de un procesador de texto en ingls.

Pgina 120 de 183

Podemos generar un estilo externo que contenga todas las definiciones de estilo de un documento y modificar ste nicamente para efectuar cambios en una o varias pginas Web. Es uno de los pilares del DHTML y puede combinarse con JavaScript, VBScript, etc. Su uso estructurado y razonado permite ahorrar muchas lneas de cdigo HTML

Desventajas: La principal y la nica desventaja hasta el momento podemos decir que es la incompatibilidad entre navegadores distintos.

Hay tres navegadores que soportan aceptablemente las CSS; Microsoft Internet Explorer, Netscape y Opera. Aunque todos ellos aseguran la compatibilidad lo cierto es que entre varias versiones de un mismo navegador, ya hay irregularidades. La solucin a este inconveniente es conocer las propiedades implementadas en cada versin de navegador, probar nuestros estilos en varios navegadores y pensar que siempre puede haber un navegador visualizando la pgina sin soporte para CSS, con lo que el HTML ser el nico cdigo a interpretar.

Las Hojas de estilo tienen una estructura simple, flexible y potente. No es necesario tener grandes conocimientos de programacin (ms bien ninguno) para trabajar cmodamente con ellas. Dada su fcil estructuracin podemos definir la apariencia de cada elemento o grupo de ellos con suma facilidad cambiando posteriormente si diseo si es necesario, de forma simple y rpida.

Programacin para la web

Sintaxis y Reglas
Disponemos de multitud de formas o reglas para definir los estilos dentro de un documento dependiendo de la finalidad a conseguir, podemos definir un estilo de manera global, es decir, especificar las propiedades que van a afectar a todo el documento, aplicar los estilos a un elemento HTML concreto, establecer estilos dependiendo del contexto que rodea el elemento (estar dentro de un tabla, formar parte de una lista) etc. Una hoja de estilo se define de manera similar a los Scripts de JavaScript o Vbscript. La definicin global de un estilo estar delimitada por las etiquetas <style> </style> respectivamente y en su interior podremos establecer los estilos que se utilizan en todo el documento. Para especificar el tipo de sintaxis que se emplear utilizaremos el atributo TYPE. Su valor por defecto es text/css y selecciona la sintaxis CSS <style type=text/css> <!P{color: green} -> </style> Estilos de etiqueta A continuacin estudiaremos las distintas formas sintcticas de definir estilos en un documento HTML. La sintaxis bsica es la siguiente:

Pgina 121 de 183

Selector {Propiedad: Valor} El selector es el valor en HTML al que afectar la definicin del estilo en funcin del valor asignado a la propiedad que desea especificar. Al conjunto Propiedad- Valor se le llama: Declaracin. Por ejemplo: P{color:green} Aqu se indica que todos los prrafos sern de color verde. Si adems queremos que todos los prrafos estn justificados, habr que aadir la propiedad correspondiente, en este caso: P{text-align: justify} En el ejemplo anterior ya tenemos dos lneas de cdigo y solo acabamos de empezar, pues bien la sintaxis CSS permite aadir todas las propiedades que queramos para un mismo selector entre sus corchetes separando las mismas por un punto y coma. As pues, para configurar un prrafo de color verde y justificado, la sintaxis adecuada sera: P {color:green; text-align: justify} Si quisiramos aadir el estilo definido anteriormente a la etiqueta <B> (negrita), no sera necesario volver a escribir toda la declaracin, bastara con separar con una coma un selector de otro. Veamos como: B, P {color:green; text-align: justify} Ahora imaginemos que adems, el estilo negrita (B) debe aparecer sobre un fondo blanco. En este caso, la solucin es aadir una nueva lnea ya que es una propiedad que queremos aplicar slo al selector negrita, As nuestro estilo tomara la siguiente forma: B, P {color:green; text-align: justify} B {background-color: white} Otra posibilidad puede ser la de establecer un estilo dependiendo de una condicin estructural. Por ejemplo, si el texto en negrita aparece dentro de la celda de una tabla, entonces el fondo debe de ser negro y la letra debe aparecer en cursiva.
Programacin para la web

TD B { background-color: black; font-style: italic}


Observe como en este caso no se han separado los selectores con una coma. De esta forma, el intrprete CSS entiende que esa declaracin slo debe cumplirse para las negritas que estn dentro de la celda. Finalmente podemos aplicar un estilo concreto a un elemento del documento, bien sea porque de manera puntual se requiere modificar el estilo definido en anteriores declaraciones en el supuesto de que las hubiera o porque slo queremos que ese elemento modifique sus propiedades de estilo sin afectar a sus semejantes.
As pues, volviendo a nuestro selector de negritas <B>, vamos a indicar en un punto determinado del cdigo HTML un estilo concreto: El texto en negrita en este punto <B style= Font-size:12pt; color:#0000FF> Es ms grande y est en azul. </B> .

Definicin de estilos mediante clases


La utilizacin de clases va a permitirnos especificar distintos estilos para un mismo elementos HTML o bien generar estilos tipo para poder aplicarlos a cualquier etiqueta HTML segn sea necesario. Su sintaxis es: Elemento.nombreclase {propiedad:valor} Por ejemplo, vamos a definir varios colores de prrafo de la siguiente manera: P.amarillo {color:yellow} P.verde {color:green}

Pgina 122 de 183

P.colorextrao {color:#CA36E1} Si queremos aplicar los estilos de color definidos anteriormente, el cdigo sera similar al siguiente: <P> este prrafo no tiene ningn estilo aplicado <P class=amarillo> este saldr de color Amarillo <P class=verde> este seguro que verde <P class=colorextrao> el color extrao se parece al violeta Sin embargo, qu pasara si tambin se quisiera determinar un estilo de color para todos los encabezados? Evidentemente, no tendramos que repetir la propiedad color para cada encabezado, bastara con definir una clase sin asociarla a ningn estilo. .amarillo {color:yelow} .verde {color:green} .colorextrao {color:#ca36e1} Como puede verse, la sintaxis es la misma, salvo que en este caso, est omitiendo el selector, con lo que est dejando abierta la posibilidad de aplicarlo a cualquiera. <P class=amarillo>este saldr de color amarillo <h1 class=verde>este encabezado saldr de color verde </h1> <B class=colorextrao> esta negrita es de color violeta?

Pgina 123 de 183

Programacin visual

Introduccin.
Visual Basic es uno de los tantos lenguajes de programacin que podemos encontrar hoy en da. Dicho lenguaje nace del BASIC (Beginners All-purpose Symbolic Instruction Code) que fue creado en su versin original en el Dartmouth College, con el propsito de servir a aquellas personas que estaban interesadas en iniciarse en algn lenguaje de programacin. Luego de sufrir varias modificaciones, en el ao 1978 se estableci el BASIC estndar. La sencillez del lenguaje gan el desprecio de los programadores avanzados por considerarlo "un lenguaje para principiantes". Primero fue GW-BASIC, luego se transform en QuickBASIC y actualmente se lo conoce como Visual Basic y la versin ms reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft. Esta versin combina la sencillez del BASIC con un poderoso lenguaje de programacin Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows. Esta fusin de sencillez y la esttica permiti ampliar mucho ms el monopolio de Microsoft, ya que el lenguaje slo es compatible con Windows, un sistema operativo de la misma empresa. Visual Basic ya no es ms "un lenguaje para principiantes" sino que es una perfecta alternativa para los programadores de cualquier nivel que deseen desarrollar aplicaciones compatibles con Windows. En este informe explicaremos algunos trminos y/o caractersticas de mismo con la finalidad de aprender ms sobre este Programa y manejarlo con facilidad

1. Qu es Visual Basic?
Es un lenguaje de programacin que se ha diseado para facilitar el desarrollo de aplicaciones en un entorno grafico (GUI-GRAPHICAL USER INTERFACE) Como Windows 98, Windows NT o superior.

2. Caractersticas de Visual Basic.


Diseador de entorno de datos: Es posible generar, de manera automtica, conectividad entre controles y datos mediante la accin de arrastrar y colocar sobre formularios o informes. Los Objetos Actives son una nueva tecnologa de acceso a datos mediante la accin de arrastrar y colocar sobre formularios o informes. Asistente para formularios: Sirve para generar de manera automtica formularios que administran registros de tablas o consultas pertenecientes a una base de datos, hoja de clculo u objeto (ADO-ACTIVE DATA OBJECT) Asistente para barras de herramientas es factible incluir barras de herramientas es factible incluir barra de herramientas personalizada, donde el usuario selecciona los botones que desea visualizar durante la ejecucin.

Programacin visual

En las aplicaciones HTML: Se combinan instrucciones de Visual Basic con cdigo HTML para controlar los eventos que se realizan con frecuencia en una pgina web. La Ventana de Vista de datos proporciona acceso a la estructura de una base de datos. Desde esta tambin acceso al Diseador de Consultas y diseador de Base de datos para administrar y registros.

3. Mencione y Explique las partes del entorno de Visual Basic.


Barra de ttulo: muestra el nombre del proyecto y del formulario q se est diseando actualmente Barra de mens: agrupa los mens despegables que contienes todas las operaciones que pueden llevarse a cabo con Visual Basic 6.0.

Pgina 124 de 183

Barra de herramientas estndar: contienen los botones que se utilizan con mayor frecuencia cuando se trabaja con un proyecto. Simplifica la eleccin de opciones de los mens Archivo, Edicin, Ver y Ejecutar; adems, en el rea derecha presenta la ubicacin (coordenadas) y el tamao del objeto seleccionado Ventana de formulario: es el rea donde se disea la interfaz grfica, es decir, es donde se inserta electo grficos, como botones, imgenes, casilla de verificacin, cuadros de listas, etc. Cuadro de herramientas: presenta todos los controles necesarios para disear una aplicacin, como cuadros de texto, etiquetas, cuadros de listas, botones de comandos, etc. Ventana de proyecto: muestra los elementos involucrados en el proyecto, como formularios, mdulos, controles , etc. Cada elemento puede seleccionarse en forma independiente para su edicin. Ventana de posicin del formulario: muestra la ubicacin que tendr el formulario en la pantalla, cuando ejecute la aplicacin. Esta ubicacin puede cambiarse si se hace clic con el botn izquierdo del mouse. La Ventana propiedades muestra todas las propiedades del control actualmente seleccionado, en este caso muestra las propiedades del Form1, luego podemos ver que abajo dice "Form1 Form", lo que est en negrita es el nombre del objeto, y lo que le sigue es el tipo de objeto, en este caso es un Formulario (Form)

4. Mencione y Explique los botones de la barra de herramientas de Visual Basic.

Pgina 125 de 183

Programacin visual

TextBox

Mediante este control podremos realizar tanto la entrada como la salida de datos en nuestras aplicaciones. No hace falta que indiquemos las coordenadas de la situacin del formulario en pantalla, simplemente tendremos que marcar sobre el control de la caja de herramientas y dibujarlo con el tamao que queramos en nuestro formulario

Label

Este control es tambin uno de los ms utilizados, aunque su utilidad queda restringida a la visualizacin de datos en el mismo, no permitiendo la introduccin de datos por parte del usuario.

CommandButton

Este control es el tpico botn que aparece en todas las aplicaciones y que al hacer click sobre l nos permite realizar alguna operacin concreta, normalmente Aceptar o Cancelar. Aunque segn el cdigo que le asociemos podremos realizar las operaciones que queramos.

OptionButton

Este control nos permite elegir una opcin entre varias de las que se nos plantean. Cada opcin ser un control optionbutton diferente.

Programacin visual

Tiene la siguiente forma:

Un control Frame proporciona un agrupamiento identificable para controles. Tambin puede utilizar un Frame para subdividir un formulario funcionalmente por ejemplo, para separar grupos de controles OptionButton.

Pgina 126 de 183

CHECK BUTTON Y OPTION BUTTON (BOTONES DE ELECCION Y OPCION)


Se obtienen directamente de la caja de herramientas.

Dada la similitud de ambos controles, se comentan conjuntamente. El control CheckBox, o casilla de verificacin, permite elegir una opcin (activada / desactivada, True/False) que el usuario puede establecer o anular haciendo click. Una X en una casilla de verificacin indica que est seleccionada, activada, o con valor True. Cada casilla de verificacin es independiente de las dems que puedan existir en el formulario, pudiendo tomar cada una de ellas el valor True o False, a voluntad del operador. Un control OptionButton muestra una opcin que se puede activar o desactivar, pero con dependencia del estado de otros controles OptionButton que existan en el formulario. Generalmente, los controles OptionButton se utilizan en un grupo de opciones para mostrar opciones de las cuales el usuario slo puede seleccionar una. Los controles OptionButton se agrupan dibujndolos dentro de un contenedor como un control Frame, un control PictureBox o un formulario. Para agrupar controles OptionButton en un Frame o PictureBox, dibuje en primer lugar el Frame o PictureBox y, a continuacin, dibuje dentro los controles OptionButton. Todos los controles OptionButton que estn dentro del mismo contenedor actan como un solo grupo, e independientes de los controles OptionButton de otros grupos distintos.
Programacin visual

Aunque puede parecer que los controles OptionButton y CheckBox funcionan de forma similar, hay una diferencia importante: Cuando un usuario selecciona un OptionButton, los otros controles del mismo grupo OptionButton dejan de estas disponibles automticamente. Por contraste, se puede seleccionar cualquier nmero de controles CheckBox.

LIST BOX Y COMBO BOX


Estos dos controles, debido a su similitud, se estudian conjuntamente. Se obtienen directamente de la caja de herramientas:

Un control ListBox muestra una lista de elementos en la que el usuario puede seleccionar uno o ms. Si el nmero de elementos supera el nmero que puede mostrarse, se agregar automticamente una barra de desplazamiento al control ListBox. Un control ComboBox combina las caractersticas de un control TextBox y un control ListBox. Los usuarios pueden introducir informacin en la parte del cuadro de texto y seleccionar un elemento en la parte de cuadro de lista del control. En resumen, un ComboBox es la combinacin de un ListBox, que se comporta como si de un ListBox se tratase, y de un TextBox, con comportamiento anlogo a un TextBox sencillo, con la

Pgina 127 de 183

particularidad aqu de que el texto se le puede introducir por teclado, o elegir uno de los que figuran en la parte ListBox del Combo. CONTROLES HScrollBar y VScrollBar Son dos controles similares, para introducir un dato cuasi-analgico en una aplicacin. Se toman directamente de la caja de herramientas, y tienen un aspecto parecido al de un control de volumen de un equipo de msica. El HScrollBar est en posicin horizontal, y el VScrollBar en posicin vertical.

Mediante estos controles se pueden introducir datos variando la posicin del cursor.
Programacin visual

TIMER TEMPORIZADOR
Este objeto permite establecer temporizaciones. Presenta una novedad respecto a los controles estudiados hasta ahora. El control Timer solamente se ve durante el tiempo de diseo. En tiempo de ejecucin, el control permanece invisible. La temporizacin producida por el Timer es independiente de la velocidad de trabajo del ordenador. (Casi independiente. El timer no es un reloj exacto, pero se le parece) Se toma directamente de la caja de herramientas, y tiene el aspecto siguiente:

SHAPE Se toma directamente de la caja de herramientas:

Shape es un control grfico que se muestra como un rectngulo, un cuadrado, una elipse, un crculo, un rectngulo redondeado o un cuadrado redondeado. Utilice controles Shape en tiempo de diseo en lugar o adems de invocar los mtodos Circle y Line en tiempo de ejecucin. Puede dibujar un control Shape en un contenedor, pero no puede actuar como contenedor.

Pgina 128 de 183

(Esto quiere decir que un control Shape nunca le servir, por ejemplo, para albergar varios OptionButton y pretender que sean independientes de otros controles OptionButton que se encuentren fuera del control Shape. Este control no tiene Procedimientos. En realidad, solamente sirve para mostrar un determinado grfico, envolver grficamente a otros controles, pero no tiene ninguna aplicacin en cuanto a programa. Es un "adorno" para sus aplicaciones.
Programacin visual

LINE Se toma directamente de la caja de herramientas

Line, al igual que Shape, es un control grfico que solamente sirve para poner una lnea en un formulario. Del mismo modo, no tiene procedimientos, por lo que no sirve para aportar cdigo al programa. Solo sirve para aportar una caracterstica grfica, es un adorno.

CONTROL GAUGE
Este control presenta una informacin numrica de forma grfica, bien como un display lineal (tpico por ejemplo en ecualizadores de audio), o como una aguja. No est normalmente en la caja de herramientas, por lo que hay que traerla desde los Controles Personalizados (Men desplegable de Herramientas) Se denomina MicroHelp Gauge Control. El archivo que lo contiene se denomina GAUGE16.OCX, 16 bits

Mediante este control, podemos presentar una magnitud numrica de una forma cuasi-analgica. Podramos decir que es un control similar al HScrollBar, que en vez de meter informacin a la aplicacin, la presenta. Este control puede servir, por ejemplo, para presentar el tanto por ciento de ejecucin de una tarea, como elemento tranquilizante. Puede presentar el nivel de un depsito de agua, etc. Presenta las dos formas siguientes:

Programacin visual

Pgina 129 de 183

En la figura puede verse un Gauge de aguja, uno de barra horizontal y otro de barra vertical. Para mejorar la presentacin, el Gauge permite poner un grfico como fondo, cambiar el color de la barra, color de fondo, etc. El control Gauge crea medidores definidos por el usuario, que puede elegir entre los estilos lineales (relleno) o de aguja. Nota para la distribucin Cuando cree y distribuya aplicaciones con controles Gauge, tendr que instalar el archivo apropiado en el subdirectorio SYSTEM de Windows del cliente. El Kit para instalacin que incluye Visual Basic, le proporciona herramientas para escribir los programas que instalan las aplicaciones correctamente. El CommonDialog es un control del que se libran muy pocas aplicaciones. Dada la importancia de este control, se le dedica un captulo nico en esta Gua del Estudiante.

CUADRO DE DIALOGO CommonDialog


Normalmente se encuentra en la caja de herramientas

Este control no se presenta en tiempo de diseo ms que con un simple icono:

El cuadro de dilogo, CommonDialog se utiliza para varias funciones: Abrir Ficheros Guardar Ficheros Elegir colores Seleccionar Impresora Seleccionar Fuentes
Programacin visual

Mostrar el fichero de Ayuda

En realidad el cuadro de dilogo permite conocer datos con los cuales, y mediante el cdigo adecuado, abriremos o guardaremos ficheros, elegiremos colores o seleccionaremos fuentes. Es decir, el CommonDialog NO realiza ms funciones que mostrar ficheros existentes, fuentes disponibles, colores, para que, mediante cdigo, abramos esos ficheros o usemos una determinada fuente. Dependiendo de la aplicacin para la que vaya a usarse se deber activar de distintas formas. Si el cuadro de dilogo se va a usar para seleccionar la impresora y para otras aplicaciones, es recomendable usar uno exclusivamente para seleccionar la impresora. Esta ltima recomendacin se debe a que, para el control de la impresora, el CommonDialog SI realiza las funciones de seleccin de impresora predeterminada. Esta diferencia operativa hace que si usamos el mismo CommonDialog para seleccionar impresora y abrir ficheros, por ejemplo, se "cuelgue" el CommonDialog.

Defina los siguientes trminos. Pgina 130 de 183

Eventos: es una accin como hacer clic, doble clic, presionar una tecla, mover el puntero del mouse, etc. Que el usuario debe realizar para que un objeto ejecute una accin determinada cada control responde a diferentes eventos, algunos de ellos tienen caractersticas comunes. Los eventos pueden Visualizarse en la ventana de cdigo. Mtodos: Son procedimientos definidos en Visual Basic para realizar operaciones especficas sobre los objetos (Controles o Formularios) Controles: Son los objetos que conforman la interfaz grfica de un programa; a travs de ellos, un usuario interacta con la aplicacin. Sus caractersticas pueden cambiarse por medio de la ventana propiedades Proyecto: Propiedades: Son los datos que hacen referencia a un objeto o formulario. Ejemplo : Color de fondo del formulario, Fuente de texto de un TextBox. Objetos: Un objeto es una entidad que tiene asociado un conjunto de mtodos, eventos y propiedades. Hay muchas clases de objetos, y por tanto, puede llegar a haber tantos mtodos, eventos y propiedades distintas como objetos diferentes. Ejemplo : Una caja de texto (TextBox) en la cual podemos escribir cualquier lnea es un objeto. Clases: Una clase no es nada ms que un Objeto, este objeto, tiene propiedades, funciones y mtodos. Para empezar ahora la creacin de propiedades si se utiliza Property Let y Property Get; la diferencia es casi nada, inclusive podra decir que una clase en visual Basic, es casi lo mismo que un control, pero ahora nace una nueva pregunta, cuando utilizar un control y cuando utilizar una clase, bueno la opinin que voy a dar es desde mi perspectiva. Mdulo: Un proyecto Visual Basic no slo est compuesto de Formularios, sino tambin de lo que se denominan mdulos. Un mdulo es un fichero Visual Basic donde escribimos parte del cdigo de nuestro programa, y digo parte, porque puede haber cdigo en el formulario tambin.
Programacin visual

De los fundamentos de programacin explique: Mdulos de Control: Mdulos de Formularios: Es un fichero con extensin .frm que puede contener descripciones del formulario y controles. Mdulos de Clases: mdulo que puede contener la definicin de un nuevo proyecto. Cada instancia de una
clase crea un objeto nuevo. Los procedimientos definidos en el mdulo se convierten en propiedades y mtodos del objeto. Los mdulos de clase pueden existir solos o con formularios e informes

Mdulos Estndar: mdulo en el que puede colocar los procedimientos Sub y Function que desee que estn
disponibles para otros procedimientos de la base de datos. Es un fichero con extensin .bas que solo contiene declaraciones y definiciones de procedimientos, tipos y datos a los que tienen acceso otros mdulos de la aplicacin.

Editor de Cdigos: lugar donde se va a programar en Visual Basic, en este editor se escribirn
todas las sentencias que darn vida a una aplicacin.

Pgina 131 de 183

Variable: Dim: Al declarar una variable con esta palabra estamos diciendo que la variable sea local al mbito en que se declara. Puede ser dentro de un procedimiento o dentro de un formulario, de esta forma no sera accesible desde los dems procedimientos o formularios.
Public: Las variables declaradas sern pblicas y podrn estar accesibles desde todos los formularios de la aplicacin. Para conseguirlo tendremos que declararlas en un mdulo de cdigo, no en la seccin declarations de cualquier formulario de los que conste la aplicacin. Para crear un mdulo de cdigo en el men principal de Visual Basic marcamos en INSERT/MODULE y aparecer junto a los dems formularios de la ventana de proyecto aunque con un icono distinto indicando que se trata de un mdulo de cdigo. Static: Con esta forma de declarar variables conseguiremos que las variables locales no se creen y se destruyan al entrar y salir de los procedimientos donde fueron declaradas sino que se mantenga su valor durante todo el periodo de ejecucin de la aplicacin. De esta forma a entrar en algn procedimiento las variables recuerdan el valor que tenan cuando se sali de l.

TIPOS DE VARIABLES
TIPO BOOLEAN BYTE INTEGER LONG SINGLE DOUBLE CURRENCY STRING DATE COMENTARIO Slo admite 2 valores TRUE o FALSE admite valores entre 0 y 255 admite valores entre -32768 y 32767 admite valores entre -2.147.483.648 y 2.147.483.647 admite valores decimales con precisin simple admite valores decimales de doble precisin vlido para valores de tipo moneda cadenas de caracteres fechas, permite operar con ellas

Constante: Declaracin de constantes que pueden ser usadas en cualquier punto en lugar de su valor, permitiendo cambiarlo cuando sea necesario, sin tener que cambiarlo en todos los sitios en que se utiliza. La expresin no puede utilizar llamadas a funciones, pues la constante se calcula en tiempo de compilacin, no en tiempo de ejecucin.

Pgina 132 de 183

Estructura de Datos

Aplicar las clases de la biblioteca estndar STL del lenguaje C++ y ser capaz de manejar las estructuras de datos dinmicas para la elaboracin de programas, utilizando la Programacin Orientada a Objetos. INTRODUCCIN A LA ORIENTACIN A OBJETOS Y A LOS TIPOS DE DATOS ABSTRACTOS (TDA) Las Tcnicas Orientadas a Objetos (TOO) brindan la posibilidad de construir objetos complejos a partir de objetos existentes, lo que permite un alto grado de reutilizacin, ahorro de tiempo y dinero y confiabilidad. Adems, ofrecen soporte para encapsular datos y comportamiento, estructurar los objetos en clases y organizar las clases en jerarquas, permitiendo compartir comportamiento a travs de la herencia. El concepto orientado a objetos se puede definir de la siguiente manera: Orientacin a Objetos (OO) = Objetos + Clasificacin + Herencia + Comunicacin Las ventajas que ofrece la tecnologa orientada a objetos son: Encapsulado u ocultamiento de informacin, Reutilizacin, Estabilidad, Consistencia. Una clase es la implementacin de un tipo de objeto. Especifica las estructuras de datos y los mtodos operativos permisibles que se aplican a cada uno de sus objetos. Una clase puede tener muchas subclases.
Nombre de la clase Nombre de la clase
Cadena de caracteres que identifican el nombre del tipo de objeto que implementa la clase .

Estado

Estado
Especifica las estructuras de datos encapsuladas y creadas para cada uno de sus objetos. Dichas estructuras de datos constituyen la parte privada del objeto .

Comportamiento

Comportamiento
Especifica los mtodos u operaciones permitidos por medio de los cuales se controlan las estructuras de datos de los objetos de la clase, es decir, los objetos de la clase son controlados por mtodos que implementan las operaciones permitidas de tal manera que las estructuras de datos slo pueden ser utilizadas (modificadas o consultadas) por dichos mtodos. Estas operaciones constituyen la parte pblica del objeto.

Por ejemplo, los atributos de un estudiante son, entre otros, registro o matrcula, nombre, direccin y telfono, todos de tipo cadena (string). Algunas de las operaciones que pueden implementarse mediante la creacin de la clase Estudiante se presentan a continuacin.

Pgina 133 de 183

Estructura de Datos

E studiante registro nom bre direccin telfono estEstudiante obtRegistro obtNom bre obtDireccin obtTelfono

Nombre del mtodo estEstudiante

obtRegistro obtNombre obtDireccin

Operacin o funcin que realiza el mtodo Establece las propiedades del estudiante a un estado consistente a partir de los datos o cadenas de entrada registro, nombre, direccin y telfono proporcionados como argumentos durante el llamado a este mtodo. Lee y devuelve el registro del estudiante. Lee y devuelve el nombre del estudiante. Lee y regresa la direccin del estudiante.

Veamos otro ejemplo, un rectngulo se caracteriza por tener sus lados opuestos paralelos dos a dos. Si se considera la construccin de la clase Rectngulo, sta tiene los atributos base y altura, cuyos valores predeterminados son 1. Tiene mtodos que implementan las operaciones que calculan y devuelven el permetro y el rea del rectngulo, adems de las operaciones que establecen y obtienen los valores de la base y la altura. Los mtodos que establecen las propiedades del rectngulo verifican que la base y la altura sean nmeros reales mayores que 0.0 y menores que 20.0.
Rectngulo base altura calcularPermetro calcularrea estBase estAltura obtBase obtAltura

A continuacin se menciona como se podran utilizar la herencia y el polimorfismo para crear una clase base abstracta llamada Paralelogramo y derivar a partir de sta las subclases Rectngulo y Cuadrado. Un Rectngulo es un Paralelogramo porque sus lados opuestos son paralelos dos a dos; es decir, el concepto de paralelogramo se aplica al objeto rectngulo y por lo tanto ste se clasifica como miembro o instancia de la clase Paralelogramo. Los cuadrados, romboides y rombos tambin son clasificados como paralelogramos. Todos, Rectngulos, Cuadrados, Romboides y Rombos, son instancias de la clase Paralelogramo porque tienen la propiedad de que sus lados opuestos son paralelos dos a dos. Sin embargo,
Estructura de Datos

debe observarse que los rectngulos, cuadrados, romboides y rombos tienen, a su vez, atributos y
comportamientos propios (los rectngulos tienen los cuatro ngulos iguales y los lados contiguos desiguales,

Pgina 134 de 183

los cuadrados tienen los cuatro ngulos iguales y los cuatro lados iguales, los romboides tienen los lados y los ngulos contiguos desiguales, y los rombos tienen los cuatro lados iguales y los ngulos contiguos desiguales), por lo que stos pueden ser definidos como subclases de la clase paralelogramo. Cada una de estas subclases tendr sus estructuras de datos y mtodos propios, adems de los que herede de su clase padre. La herencia en una forma de reutilizacin del software en la que se crean clases nuevas a partir de clases ya existentes por medio de la absorcin se sus atributos y comportamientos, sobreponindolos o mejorndolos con capacidades que las clases nuevas requieran. Mediante la herencia se logra compartir el comportamiento y los atributos de las clases de objetos definidas previamente con extensiones de clases de objetos que reciben el nombre de subclases. Se dice que las subclases heredan las estructuras de datos y las operaciones de la clase de objetos a partir de la cual se derivan. El hecho de que un tipo de objeto de alto nivel pueda especializarse en tipos de objeto de bajo nivel, permite la creacin de una jerarqua de clases, subclases, sub-subclases, etc. Una clase permite la implementacin de un tipo de objeto. Una subclase hereda propiedades de su clase padre, una sub-subclase hereda propiedades de las subclases, etc. Una subclase puede heredar las estructuras de datos y los mtodos de su superclase; tambin puede tener sus propios mtodos e incluso tipos de datos propios.
De manera ms especfica se tienen las siguientes definiciones. Una subclase es una clase que hereda las propiedades y los mtodos de una clase existente. Una superclase es una clase de la cual otra clase hereda propiedades y mtodos. Herencia simple es cuando una clase se deriva de una superclase. Herencia mltiple es cuando una clase se deriva de ms de una superclase. El polimorfismo se define como la habilidad de los objetos de diferentes clases, que estn relacionados mediante la herencia, para responder en forma diferente al mismo mensaje; es decir, al llamado o solicitud de una operacin implementada por un mtodo de manera diferente para cada tipo de objeto. An as, aunque los mtodos sean distintos, llevan a cabo el mismo propsito operativo. La palabra polimorfismo se aplica a una operacin que adopta varias formas de implementacin. La herencia y el polimorfismo, dan la posibilidad de que una clase pase por alto el comportamiento heredado de un tipo a un subtipo, al permitir la redefinicin del mtodo de una operacin heredada en el subtipo. Por ejemplo, si las clases Rectngulo, Cuadrado, Romboide y Rombo se derivan de la clase base Paralelogramo (cuadriltero o polgono de cuatro lados con los lados opuestos paralelos dos a dos), entonces cada instancia de las clases derivadas tambin son instancias de la clase base y por lo tanto no tendran que repetir el comportamiento heredado de Paralelogramo. Si dentro de las estructuras de datos de la clase Paralelogramo se define un arreglo de cuatro puntos para almacenar las coordenadas de los vrtices del paralelogramo y la operacin exhibir se implementa mediante un mtodo que conecte los cuatro vrtices del paralelogramo y lo muestre en pantalla, entonces dicha operacin tambin se aplicara a los rectngulos, cuadrados, romboides y rombos; es decir, las clases Rectngulo, Cuadrado, Romboide y Rombo heredan la operacin exhibir de la clase Paralelogramo y no tienen que repetirla o redefinirla. Sin embargo, aunque todas las operaciones de Paralelogramo se aplican a sus subclases, el mtodo operativo puede ser diferente; por ejemplo, el mtodo para calcular el permetro de un paralelogramo, un romboide o un rectngulo podra definirse como dos veces la suma de la longitud de sus lados adyacentes, pero el mtodo para calcular el permetro de un cuadrado o un rombo podra definirse como cuatro veces la longitud de cualquiera de sus lados. En este caso es necesario redefinir la operacin que calcula el permetro en las subclases Cuadrado y Rombo.

Estructura de Datos

DEFINICIN DE ESTRUCTURA DE DATOS


Las estructuras de datos, tambin conocidas como tipos de datos, establecen una relacin entre las distintas formas de representacin de los datos, que se caracterizan por su organizacin y por las operaciones

Pgina 135 de 183

que se pueden realizar con ellas. Las estructuras de datos dictan la organizacin, los mtodos de acceso y las alternativas de procesamiento para la informacin. Debido a que la estructura de la informacin afectar el diseo de los programas, las estructuras de datos juegan un papel muy importante. La organizacin y complejidad de las estructuras de datos tan slo est limitada por el ingenio del diseador; sin embargo, hay un nmero reducido de estructuras de datos clsicas (elemento escalar, arreglos, listas, pilas, colas y rboles), que constituyen los bloques con los que se construyen estructuras ms sofisticadas. Es importante tener en cuenta que las estructuras de datos se pueden representar a diferentes niveles de abstraccin. Por ejemplo, una pila es un modelo conceptual de una estructura de datos, que puede implementarse como un arreglo (vector secuencial) o como una lista ligada. TIPOS DE DATOS ABSTRACTOS (TDA) Un TDA es un tipo de dato definido por el programador (por ejemplo, una clase) que se puede manipular de un modo similar a los tipos de datos definidos por el sistema. Est formado por un conjunto vlido de elementos y un nmero de operaciones primitivas que se pueden realizar sobre ellos. Ejemplo: Definicin del tipo (representacin): Numero racional: Conjunto de pares de elementos (a, b) de tipo entero, con b<>0. Operaciones (interfaz de uso): CrearRacional: a, b = (a,b) Suma: (a,b) + (c,d) = (a*d+b*c , b*d) Resta: (a,b) - (c,d) = (a*d-b*c , b*d) Producto: (a,b) * (c,d) = (a*c , b*d) Divisin: (a,b) / (c,d) = (a*d , b*c) Numerador: (a,b) = a Denominador: (a,b) = b ValorReal: (a,b) = a/b MCD: (a,b) ... Potencia: (a,b)^c = (a^c , b^c) Simplifica: (a,b) = ( a/mcd(a,b) , b/mcd(a,b) )

Una vez definido el TDA (o clase) se podrn declarar variables (objetos o instancias) de ese tipo para utilizar (llamar o invocar) los mtodos (operaciones) que aporta la clase. Ejemplo: TRacional r1,r2, rsuma; // declara tres objetos de tipo TRacional r1.CrearRacional(4,7); // llama al mtodo CrearRacional del objeto r1 r2.CrearRacional(5,8); // llama al mtodo CrearRacional del objeto r2 // el valor devuelto por el mtodo Suma del objeto r1 lo asigna al objeto rsuma
Estructura de Datos

rsuma = r1.Suma(r1, r2);


printf(El valor real es %f, rsuma.ValorReal() ); // imprime el valor real del objeto rsuma LA BIBLIOTECA STL (Standard Template Library Biblioteca estndar de plantillas) La STL est formada por contenedores (estructuras de datos comunes organizadas como plantillas), iteradores y algoritmos. Es decir, la STL es una biblioteca estndar de contenedores de objetos organizados

Pgina 136 de 183

en platillas. Su uso puede ahorrar considerable tiempo y esfuerzo, y da como resultado programas de ms alta calidad. Las clases de contendores de la STL ms importantes son: 1. vector: Para inserciones y eliminaciones rpidas al final. Permite el acceso directo a cualquier elemento. Archivo de encabezado <vector>. 2. list: Lista de enlace doble que permite la insercin y eliminacin rpidas en cualquier lugar. Archivo de encabezado <list>. 3. stack: LIFO (Last In First Out ltimo en entrar, primero en salir). Archivo de encabezado <stack>. 4. queue: FIFO (First In First Out primero en entrar, primero en salir). Archivo de encabezado <queue>. Nota: El contenido de todos los archivos de encabezado est en namespace std. La STL fue diseada a fin de que los contenedores proporcionen funcionalidad similar, por lo que hay muchas operaciones genricas, tales como la funcin size, que se aplican a todos los contenedores, y otras que slo se aplican a subconjuntos de contenedores similares. Las funciones ms comunes para todos los contenedores de la STL son: 1. constructor predeterminado: Proporciona una inicializacin predeterminada del contenedor. Cada contenedor puede tener varios constructores que proporcionan una variedad de mtodos de inicializacin para dicho contenedor. 2. constructor de copia: Inicializa al contenedor para que sea una copia de un contenedor existente del mismo tipo. 3. destructor: Destruye un contenedor cuando ya no es necesario. 4. empty: Devuelve true si no hay elementos en el contenedor y false en caso contrario. 5. max_size: Devuelve la cantidad mxima de elementos de un contenedor. 6. size: Devuelve la cantidad de elementos que hay actualmente en el contenedor. 7. operator=: Asigna un contenedor a otro. 8. operator<: Devuelve true si el primer contenedor es menor que el segundo y false en caso contrario. 9. operator<=: Devuelve true si el primer contenedor es menor o igual que el segundo y false en caso contrario. 10. operator>: Devuelve true si el primer contenedor es mayor que el segundo y false en caso contrario. 11. operator>=: Devuelve true si el primer contenedor es mayor o igual que el segundo y false en caso contrario. 12. operator==: Devuelve true si el primer contenedor es igual al segundo y false en caso contrario. 13. operator!=: Devuelve true si el primer contenedor no es igual que el segundo y false en caso contrario. 14. swap: Intercambia los elementos de dos contenedores.

Pgina 137 de 183

Estructura de Datos

ITERADORES
Los iteradores se utilizan para apuntar hacia los elementos de contenedores. stos guardan informacin de estado que es sensible a los contenedores particulares sobre los que operan y, por lo tanto, dichos iteradores estn implementados en forma adecuada para cada tipo de contenedor. Sin embargo, algunas operaciones de los iteradores son uniformes entre los contenedores. Por ejemplo, el operador * des referencia a un iterador para que se pueda utilizar el elemento hacia el que apunta. La operacin ++ sobre un iterador devuelve un iterador al siguiente elemento del contenedor (en forma muy similar a como el incremento de un apuntador a un arreglo coloca al apuntador en el siguiente elemento de dicho arreglo). Si el iterador i apunta a un elemento en particular, ++i apunta al siguiente elemento y *i hace referencia al elemento al que apunta i. Se usa un objeto de tipo iterator para referirse a un elemento de contenedor que puede modificarse. Se usa un objeto de tipo const_iterator para referirnos a un elemento de contendor que no puede modificarse. ARREGLOS: CONTENEDOR vector La clase vector proporciona una estructura de datos con localidades de memoria contiguas, lo que permite un acceso directo y eficiente a cualquier elemento de un vector por medio del operador de subndice [ ], exactamente como se hace con un arreglo de C o C++. Un objeto de tipo vector puede cambiar su tamao dinmicamente y soporta iteradores de acceso aleatorio. En el siguiente programa de ejemplo se usan varios mtodos de la clase vector. #include "stdafx.h" #include <iostream> #include <vector> using namespace std; // Requerido int _tmain(int argc, _TCHAR* argv[]) { const int TAM = 6; // definicin del arreglo a de 6 enteros al estilo C o C++ int a[TAM] = {1, 2, 3, 4, 5, 6}; // Declaracin de un objeto v de tipo vector (uso de STL) que // almacena valores de tipo entero, cuya capacidad y tamao son 0. vector<int> v; // Asigna en la variable tamv es valor devuelto por el mtodo size() // del objeto v, dicho valor es el nmero de elementos que estn // actualmente almacenados en el contenedor. int tamv = v.size(); cout << "El tamao inicial de v es: " << tamv << endl; // Asigna en la variable capv el valor devuelto po el mtodo // capacity() del objeto v, dicho valor es el nmero de elementos // que se pueden almacenar en el vector v antes de que ste reajuste // dinmicamente su tamao para acomodar elementos. int capv = v.capacity(); cout << "La capacidad inicial de v es: " << capv << endl; // Agrega los enteros del 0 al 9 al final del vector v
Estructura de Datos

for(int i=0; i<10; i++){

Pgina 138 de 183

v.push_back(i); // agrega el entero i al final del vector v // Nota: El mtodo push_back del objeto v agrega un elemento // al final del vector v. Si se agrega un elemento a un vector // lleno, ste incrementa su tamao automticamente. } // Mostrar el nuevo tamao y capacidad del vector v despus de // ejecutar push_back. cout << "El tamao de v es: " << v.size() << endl; cout << "La capacidad de v es: " << v.capacity() << endl; cout << "\nContenido del arreglo a utilizando la notacin de apuntador:" << endl; for(int *ptr = a; ptr!=a+TAM; ++ptr){ cout << *ptr << ' ' << endl; } cout << "\n Contenido del arreglo o vector v utilizando la notacin de iterador:" << endl; // Declaracin de un iterador constante llamado p para iterar a // travs del vector v. vector<int>::const_iterator p; // El mtodo begin() del objeto v devuelve un iterador constante al // primer elemento del objeto v. El ciclo contina mientras p no pase // del final del vector v, lo cual se determina comparando a p con el // resultado de v.end(), que devuelve un iterador constante el cual // indica la localidad que est despus del ltimo elemento del vector v. // La expresin p++ coloca al iterador en el siguiente elemento de // dicho objeto. for(p=v.begin(); p!=v.end(); p++){ cout << *p << ' ' << endl; } // Probar algunos mtodos de la clase vector: // v.front() - Devuelve el primer elemento del vector v // v.back() - Devuelve el ltimo elemento del vector v cout << "Primer elemento de v: " << v.front() << endl; cout << "ltimo elemento de v: " << v.back() << endl; // Establece a 7 el primer elemento v[0] = 7; // Establece a 10 el elemento que est en la localidad 2 del vector v v.at(2) = 10; // inserta 22 como segundo elemento del vector v v.insert(v.begin() + 1, 22); // elimina el primer elemento del vector v v.erase(v.begin()); // borra todos los elementos del vector v v.erase(v.begin(), v.end()); // clear llama a erase para vaciar el vector v v.clear(); getchar(); return 0; }
Estructura de Datos

LISTAS: CONTENEDOR list Pgina 139 de 183

Una lista es una estructura de datos que representa una coleccin homognea y dinmica de elementos con una relacin lineal entre ellos. Es decir, cada elemento de la lista (excepto el primero) tiene un nico elemento predecesor y cada elemento (excepto el ltimo) tienen un elemento sucesor. La representacin escogida depender de la utilizacin que se le vaya a dar al tipo. Lo normal es implementarlas como listas de elementos enlazados mediante apuntadores. Los elementos sern objetos con uno o varios campos de datos y un campo de tipo puntero que har referencia al siguiente elemento.

El contenedor list proporciona una implementacin eficiente para las operaciones de insercin y eliminacin en cualquier localidad del contenedor. La clase list est implementada como una lista de enlace doble, es decir, cada nodo de un objeto list contiene un apuntador al nodo anterior de dicho objeto y otro al hacia el siguiente nodo del mismo, lo que permite que la clase list soporte iteradores bidireccionales que permiten que el contenedor sea recorrido tanto hacia delante como hacia atrs. Muchas de las funciones miembro de la clase list manipulan los elementos del contenedor como un conjunto de elementos ordenados. En el siguiente programa de ejemplo se usan los mtodos ms usuales de la clase list. #include "stdafx.h" #include <iostream> #include <list> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { // Crea un objeto llamado lista de tipo list que puede // almacenar valores de tipo entero. list<int> lista; // Declaracin de un iterador constante llamado p para // iterar a travs de la lista de enteros. list<int>::const_iterator p; int i; // Agrega a la lista de enteros los valores: 1, 2, 3 y 4. // Despus del ciclo la lista de enteros contendr: // 4, 3, 2 y 1, dado que cada elemento insertado se // agrega al inicio de la lista. for(i=1; i<5; i++){ // El mtodo push_front(i) agrega el valor de i al // inicio de la lista de enteros. lista.push_front(i); } // Agrega a la lista de enteros los valores: 5, 6, 7, 8 // y 9. Despus del ciclo la lista de enteros contendr: // 4, 3, 2, 1, 5, 6, 7, 8 y 9 dado que cada elemento // insertado se agrega al final de la lista.
Estructura de Datos

for(i=5; i<10; i++){ // El mtodo push_back(i) agrega el valor de i al // final de la lista de enteros. lista.push_back(i); }

Pgina 140 de 183

// El mtodo empty() devuelve true si la lista est // vaca y false en caso contrario. bool vacia = lista.empty(); if(vacia){ // si la lista est vaca cout << "La lista est vaca."; } else{ // de lo contrario (si la lista no est vaca) lista.sort(); // ordena los elementos de la lista // Despus de ejecutar el mtodo sort() la lista // contiene: 1, 2, 3, 4, 5, 6, 7, 8 y 9. // Elimina el elemento del inicio de la lista. lista.pop_front(); // En este punto la lista contiene: 2,3,4,5,6,7,8 y 9 // Elimina el elemento del final de la lista. lista.pop_back(); // En este punto la lista contiene: 2,3,4,5,6,7 y 8 // El mtodo begin() del objeto lista devuelve un iterador // constante al primer elemento del objeto lista. El ciclo // contina mientras p no pase del ltimo nodo de la lista, // lo cual se determina comparando a p con el resultado // de lista.end(), que devuelve un iterador constante que // indica la localidad que est despus del ltimo elemento // de la lista. La expresin p++ coloca al iterador en el // siguiente elemento de dicho objeto. for(p=lista.begin(); p!=lista.end(); p++){ cout << *p << ' '; } // Al finalizar el ciclo, los elementos de la lista // impresos son: // 2 3 4 5 6 7 8 } getchar(); return 0; }

Pgina 141 de 183

Estructura de Datos

PILAS: ADAPTADOR DE CONTENEDOR stack


Una pila es una estructura de datos LIFO (Last In, First Out ltimo en entrar, primer en salir) que permite almacenar una coleccin lineal, dinmica y homognea de elementos, en la que los elementos de insertan y se extraen por el mismo extremo.

Nota: Un adaptador de contenedor no soporta iteradores. El beneficio de una clase de adaptador es que el programador pueda elegir una estructura de datos subyacente adecuada. Las clases de adaptador proporcionan funciones miembro push y pop que implementan los mtodos adecuados de insertar y eliminar un elemento de cada estructura de datos de adaptador. La clase stack (pila) proporciona la funcionalidad que permite inserciones y eliminaciones de un extremo de la estructura de datos subyacente del tipo LIFO. Un objeto stack puede implementarse con cualquier contenedor se secuencia: vector, list y deque. En el ejemplo que se presenta a continuacin se crean dos pilas de enteros utilizando los contenedores vector y list. #include "stdafx.h" #include <iostream> #include <stack> #include <vector> #include <list> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { // pilaVector es un objeto de tipo stack de enteros que utiliza // un objeto de tipo vector de enteros como estructura de datos // subyacente. stack<int, vector<int>> pilaVector; // pilaLista es un objeto de tipo stack de enteros que utiliza // un objeto de tipo list de enteros como estructura de datos // subyacente. stack<int, list<int>> pilaLista; // Coloca 10 enteros en el stack pilaVector y // 10 enteros en el stack pilaLista. for(int i=0; i<10; i++){ // Coloca el entero i en la parte superior de las pilas // pilaVector y pilaLista. pilaVector.push(i); pilaLista.push(i); } // Asigna a la variable entera tampila el valor devuelto por el // mtodo size del stack pilaVector. El mtodo size() devuelve
Estructura de Datos

// el nmero de elementos que se encuentran en la pila. int tampila = pilaVector.size(); cout << "El nmero de elementos de la pilaVector es: " << tampila << endl;

Pgina 142 de 183

// Asigna a la variable entera tampila el valor devuelto por el // mtodo size del stack pilaLista. El mtodo size() devuelve // el nmero de elementos que se encuentran en la pila. tampila = pilaLista.size(); cout << "El nmero de elementos de la pilaLista es: " << tampila << endl; // Mientras el stack pilaVector no se encuentre vaca: // a) imprimir el elemento que se encuentra en la parte superior // del stack pilaVector. // b) eliminar el elemento superior del stack pilaVector. while(!pilaVector.empty()){ cout << pilaVector.top() << ' '; pilaVector.pop(); } getchar(); return 0; }

COLAS: ADAPTADOR DE CONTENEDOR queue


La clase queue (cola) proporciona funcionalidad que permite inserciones al final de la estructura de datos subyacente y eliminaciones al inicio de sta, por eso a este tipo de estructura se le conoce como FIFO (First In, First Out primero en entrar, primero en salir). Un objeto tipo queue se puede implementar con las estructuras de datos de la STL list y deque. En el ejemplo que se presenta a continuacin se crea una cola de nmero reales utilizando el contenedor list. #include "stdafx.h" #include <iostream> #include <queue> #include <list> using namespace std; int _tmain(int argc, _TCHAR* argv[]) { // cola es un objeto de tipo queue de nmero reales que utiliza // un objeto de tipo list de nmero reales como estructura de datos // subyacente. queue<double, list<double>> cola; // Agrega 10 enteros en la cola. for(int i=0; i<10; i++) { // Coloca el entero i al final de la cola. cola.push(i); } // Asigna a la variable entera tamcola el valor devuelto por el // mtodo size de la cola. El mtodo size() devuelve el nmero // de elementos que se encuentran en la cola. int tamcola = cola.size(); cout << "El nmero de elementos de la cola es: " << tamcola << endl;
Estructura de Datos

// El mtodo front del objeto cola devuelve el elemento // que se encuantra al inicio de la cola. cout << "El elemento del frente de la cola es " << cola.front() << endl; // Mientras la cola no se encuentre vaca: // a) imprimir el elemento que se encuentra al inicio de la cola.

Pgina 143 de 183

// b) eliminar el elemento que se encuentra al inicio de la cola. while(!cola.empty()) { cout << cola.front() << ' '; cola.pop(); } getchar();
} return 0;

RBOLES
Un rbol es una estructura de datos no lineal que establece una estructura jerrquica entre los objetos. Los rboles genealgicos y los organigramas son ejemplos comunes de rboles. Un rbol es una coleccin de elementos llamados NODOS, uno de los cuales se distingue del resto y se le llama la RAZ, junto con una relacin que impone una estructura jerrquica entre los nodos.

Ej
Los trminos ms importantes de un rbol son:

Grado de un nodo: es el nmero de subrboles que tienen como raz ese nodo (nodos que cuelgan del nodo). Nodo terminal u hoja: nodo con grado 0. No tiene subrboles. Grado de un rbol: grado mximo de los nodos de un rbol. Hijos de un nodo: nodos que dependen directamente de ese nodo, es decir, las races de sus subrboles. Padre de un nodo: antecesor directo de un nodo del cual depende directamente. Nodos hermanos: nodos hijos del mismo nodo padre. Camino: sucesin de nodos del rbol: n(1), n(2), .. n(k), tal que n(i) es el padre de n(i+1).
Estructura de Datos

Antecesores de un nodo: todos los nodos en el camino desde la raz del rbol hasta ese nodo. Nivel de un nodo: longitud del camino desde la raz hasta el nodo. El nodo raz tiene nivel 1. Altura o profundidad de un rbol: nivel mximo de un nodo en un rbol

Pgina 144 de 183

Ejem
Se debe de definir la forma en cmo se pueden recorrer todos los nodos de un determinado rbol, en general existen tres formas de recorrer un rbol que son: 1)Prefijo, 2)Infijo, 3)Posfijo Que obedecen a las reglas: 1) nodo subrbol izq. subrbol der. 2) subrbol izq. nodo subrbol der. 3) subrbol izq. subrbol der. nodo

En gener lado izqu los subr menores actual y e


Pgina 145 de 183

Bases de datos

7.- BASES DE DATOS


Objetivo: Disear bases de datos mediante la utilizacin de la interfaz de un Sistema Manejador de Base de Datos (SMDB) empleando un modelo de datos as como las restricciones de integridad a un nivel creativo. Una base de datos es una recopilacin de informacin relativa a un asunto o un propsito particular, como el seguimiento de pedidos de clientes o el mantenimiento de una coleccin de msica. Definiciones de trminos que involucran a las bases de datos: Datos: Conjunto de caracteres con algn significado, pueden ser numricos, alfabticos, o alfanumricos. Informacin: Es un conjunto ordenado de datos los cuales son manejados segn la necesidad del usuario, para que un conjunto de datos pueda ser procesado eficientemente y pueda dar lugar a informacin, primero se debe guardar lgicamente en archivos. Campo: Unidad bsica de una base de datos. Un campo puede ser, por ejemplo, el nombre de una persona. El equivalente a las columnas del modelo relacional. Registro: (Tambin llamado fila o tupla) Representa un elemento nico de datos implcitamente estructurados en una tabla. Archivo: Coleccin de registros almacenados siguiendo una estructura homognea. El equivalente a las tablas del modelo relacional. Dentro de este marco, otra definicin es: Conjunto o coleccin de archivos interrelacionados, cuyo contenido engloba a la informacin concerniente de una organizacin, de tal manera que los datos estn disponibles para los usuarios, una de las finalidades de las bases de datos es eliminar la redundancia o por lo menos minimizarla. Funciones de los sistemas de bases de datos. Las funciones principales de un sistema de base de datos es disminuir (evitar) los siguientes aspectos:

1. Redundancia e inconsistencia de datos. (originar duplicados de informacin) 2. Dificultad para tener acceso a los datos. (entorno de datos que no le facilite al usuario el manejo de los
mismos)

3. Aislamiento de los datos. (los datos estn repartidos en varios archivos) 4. Anomalas del acceso concurrente.(interaccin de actualizaciones concurrentes pueden resultar datos
inconsistentes

5. Problemas de seguridad. (todos los usuarios pueden visualizar alguna informacin) 6. Problemas de integridad. (los datos deben satisfacer cierto tipo de restricciones de consistencia)
Niveles de Abstraccin: Un objetivo importante de un sistema de base de datos es proporcionar a los usuarios una visin abstracta de los datos, es decir, el sistema esconde ciertos detalles de cmo se almacenan y mantienen los datos. Nivel Fsico (base de datos fsica). Es la representacin del nivel ms bajo de abstraccin, en ste se describe en detalle la forma en cmo se almacenan los datos en los dispositivos de almacenamiento (por ejemplo, mediante sealadores o ndices para el acceso aleatorio a los datos).
Bases de datos

Nivel Conceptual (base de datos lgica). En este nivel se describe que datos son almacenados realmente en la base de datos y las relaciones que existen entre los mismos, describe la base de datos completa en trminos de su estructura de diseo.

Pgina 146 de 183

Nivel de Visin. Nivel ms alto de abstraccin, es lo que el usuario final puede visualizar del sistema terminado, describe slo una parte de la base de datos al usuario acreditado para verla. Actores en los sistemas de bases de datos: Administrador de Bases de Datos. (DBA, Database Administrator) Usuarios de Bases de Datos, se clasifican en:

Programadores de aplicaciones. Los profesionales en computacin que interactan con el


sistema por medio de llamadas en DML (Lenguaje de Manipulacin de Datos), las cuales estn incorporadas en un programa escrito en un lenguaje de programacin (Por ejemplo, COBOL, PL/I, Pascal, C, etc.) programas. En cambio explotan la informacin.

Usuarios sofisticados. Los usuarios sofisticados interactan con el sistema sin escribir Usuarios especializados. Algunos usuarios sofisticados escriben aplicaciones de base de
datos especializadas que no encajan en el marco tradicional de procesamiento de datos.

Usuarios ingenuos. Los usuarios no sofisticados interactan con el sistema invocando a uno
de los programas de aplicacin permanentes que se han escrito anteriormente en el sistema de base de datos, podemos mencionar al usuario ingenuo como el usuario final que utiliza el sistema de base de datos sin saber nada del diseo interno del mismo por ejemplo: un cajero. Sistemas Gestores de Bases de datos. El sistema de gestin de la base de datos (SGBD) es una aplicacin que permite a los usuarios definir, crear y mantener la base de datos, y proporciona acceso controlado a la misma. Ventajas de utilizar un SGBD. Existen distintos objetivos que deben cumplir los SGBD, tales como:

Abstraccin de la informacin. Independencia. Redundancia mnima. Consistencia. Seguridad. Integridad. Respaldo y recuperacin. Control de la concurrencia. Tiempo de respuesta.

Estructura Global de un sistema de base de datos: Un sistema de base de datos se encuentra dividido en mdulos cada uno de los cuales controla una parte de la responsabilidad total de sistema.
Bases de datosLos componentes funcionales de un sistema de base de datos, son: Gestor de archivos, Manejador de base de datos, Procesador de consultas, Compilador de DDL, Archivo de datos, Diccionario de datos, ndices.

MODELOS DE BASES DE DATOS. Los modelos de bases de datos son un conjunto de conceptos, reglas
y convenciones que nos permiten describir y manipular (consultar y actualizar) los datos de un cierto mundo real que deseamos almacenar en una base de datos. Son un eficaz instrumento en el diseo de Bases de Datos, al proporcionar instrumentos que ayudan a la estructuracin, paso a paso, del mundo real hasta llegar a la base de Datos fsica.

MODELOS LGICOS BASADOS EN OBJETOS. Se usan para describir datos en el nivel


conceptual y de visin, es decir, con este modelo representamos los datos como nosotros los percibimos en el mundo real, tienen una capacidad de estructuracin bastante flexible y

Pgina 147 de 183

permiten especificar restricciones de datos explcitamente. Entre los modelos que encontramos de este tipo son Modelo Entidad-Relacin, Modelo Entidad-Relacin Extendido y Modelo Orientado a Objetos.

MODELOS LGICOS BASADOS EN REGISTROS. Se utilizan para describir datos en los

niveles conceptual y fsico; se utilizan para especificar la estructura lgica completa de las bases de datos y proporcionan una descripcin de alto nivel de implementacin, tienen un nmero fijo de campos, atributos y longitud fija, entre estos encontramos el Modelo de Red, Modelo Jerrquico y Modelo Relacional.

MODELO DE DATOS ENTIDAD-RELACIN. Denominado por sus siglas como: E-R. Este modelo
representa a la realidad a travs de entidades, que son objetos que existen y que se distinguen de otros por sus caractersticas, por ejemplo: un alumno se distingue de otro por sus caractersticas particulares como lo es el nombre, o el nmero de control as mismo, un empleado, una materia, etc. Las caractersticas de las entidades en base de datos se llaman atributos, por ejemplo el nombre, direccin telfono, grado, grupo, etc. son atributos de la entidad alumno. A su vez una entidad se puede asociar o relacionar con ms entidades a travs de relaciones, Una relacin es la asociacin que existe entre dos a ms entidades.
Smbolo Representa

Entidad Relacin Atributos Ligas

TIPOS DE RELACIN. Existen 4 tipos de relaciones que pueden establecerse entre entidades, las cuales
establecen con cuantas entidades de tipo B se pueden relacionar una entidad de tipo A:

Bases de datos

Relacin uno a uno. Se presenta cuando existe una relacin como su nombre lo indica uno a
uno, denominado tambin relacin de matrimonio. Una entidad del tipo A slo se puede relacionar con una entidad del tipo B, y viceversa;

Relacin uno a muchos. Significa que una entidad del tipo A puede relacionarse con cualquier

cantidad de entidades del tipo B, y una entidad del tipo B slo puede estar relacionada con una entidad del tipo A. entidades del tipo A y una entidad del tipo A slo puede estar relacionada con una entidad del tipo B.

Muchos a uno. Indica que una entidad del tipo B puede relacionarse con cualquier cantidad de Muchos a muchos. Establece que cualquier cantidad de entidades del tipo A pueden estar
relacionados con cualquier cantidad de entidades del tipo B. A los tipos de relaciones antes descritos, tambin se le conoce como cardinalidad. MODELO DE DATOS RELACIONAL. Modelo relacional. El modelo relacional ofrece una manera nica de representar los datos: como una tabla bidimensional denominada relacin (tabla), dicha relacin (tabla) contiene campos (columnas) y registros (filas). Sus elementos son: Campos, Registros, Dominios, Claves.

Pgina 148 de 183

CLAVES Clave Primaria (primary key). Columna o combinacin de columnas cuyos valores identifican de manera nica cada fila de la tabla. Clave Fornea (foreign key). Las columnas de una tabla cuyos valores coinciden con los de la clave primaria de otra tabla se denominan claves externas o forneas. Conjuntamente una clave primaria y una clave fornea crean una relacin padre/hijo entre las tablas que las contienen. NORMALIZACIN Proceso durante el cual los esquemas de relacin que no cumplen las condiciones se descomponen repartiendo sus atributos entre esquemas de relacin ms pequeos que cumplen las condiciones establecidas. Un objetivo es garantizar que no ocurran anomalas de actualizacin. Primera forma normal (1FN). Una relacin est en primera forma normal (1FN) si los valores para cada atributo de la relacin son atmicos. Esto quiere decir simplemente que cada atributo slo puede pertenecer a un dominio (es indivisible) y que tiene un valor nico para cada fila. Ejemplo: En vez de: Cliente ID Cliente Nombre Apellido Telfono 123 456 789 Rachel James Cesar Ingram Wright Dure 555-861-2025 555-403-1659 555-776-4100 555-808-9633

Usamos: Cliente ID Cliente Nombre Apellido 123 456 789 Rachel James Cesar Ingram Wright Dure

Telfono del cliente ID Cliente Telfono 123 456 456 789 555-861-2025 555-403-1659 555-776-4100 555-808-9633

Segunda forma normal (2FN). Una relacin est es segunda forma normal (2FN) si est en 1FN y todos los atributos no clave dependen de la clave completa y no slo de una parte de esta. Ejemplo: En vez de: Habilidades de los empleados Empleado Habilidad Jones Jones Mecanografa Taquigrafa Lugar actual de trabajo 114 Main Street 114 Main Street

Pgina 149 de 183

Jones Bravo Ellis Ellis

Tallado Alquimia Malabarismo

114 Main Street 73 Industrial Way 73 Industrial Way

Limpieza ligera 73 Industrial Way

Harrison Limpieza ligera 73 Industrial Way Usamos: Empleados Empleado Lugar actual de trabajo Jones Bravo Ellis Harrison 114 Main Street 73 Industrial Way 73 Industrial Way 73 Industrial Way

Habilidades de los empleados Empleado Jones Jones Jones Bravo Ellis Ellis Harrison Habilidad Mecanografa Taquigrafa Tallado Limpieza ligera Alquimia Malabarismo Limpieza ligera

Tercera forma normal (3FN). Una relacin est en tercera forma normal si todos los atributos de la relacin dependen funcionalmente slo de la clave y no de ningn otro atributo. Ejemplo: En vez de: Ganadores del torneo Torneo Indiana Invitational Cleveland Open Indiana Invitational Ao Ganador 1998 Al Fredrickson 1999 Bob Albertson Fecha de nacimiento del ganador 21 de julio de 1975 28 de septiembre de 1968 21 de julio de 1975

Des Moines Masters 1999 Al Fredrickson

1999 Chip Masterson 14 de marzo de 1977

Usamos: Ganadores del torneo Torneo Indiana Invitational Cleveland Open Indiana Invitational Ao Ganador 1998 Al Fredrickson 1999 Bob Albertson 1999 Chip Masterson

Des Moines Masters 1999 Al Fredrickson

Fecha de nacimiento del jugador

Pgina 150 de 183

Jugador Al Fredrickson Bob Albertson

Fecha de nacimiento 21 de julio de 1975 28 de septiembre de 1968

Chip Masterson 14 de marzo de 1977

LENGUAJE DE CONSULTA ESTRUCTURADO (SQL). El Lenguaje de consulta estructurado (Structured Query Language, por sus siglas en ingls) es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones sobre las mismas.

Pgina 151 de 183

Bases de datos

OPTIMIZACION DE CONSULTAS Clusula GROUP BY. La clusula GROUP BY se usa para producir valores de agregado para cada fila del conjunto de resultados. Cuando se usan sin una clusula GROUP BY, las funciones de agregado slo devuelven un valor de agregado para la instruccin SELECT.
Ejemplo:

SELECT SUM(ventas) FROM repventas

Obtiene la suma de las ventas de todos los empleados.

SELECT SUM(ventas) FROM repventas GROUP BY oficina

Se forma un grupo para cada oficina, con las filas de la oficina, y la suma se calcula sobre las filas de cada grupo. El ejemplo anterior obtiene una lista con la suma de las ventas de los empleados de cada oficina.

La consulta quedara mejor incluyendo en la lista de seleccin la oficina para saber a qu oficina corresponde la suma de ventas: SELECT oficina,SUM(ventas) FROM repventas GROUP BY oficina

Clusula HAVING. La clusula HAVING establece las condiciones de la clusula GROUP BY de la misma forma que WHERE interacta con SELECT. Mientras que las condiciones de bsqueda de WHERE se aplican antes de que se produzca la operacin de agrupamiento, las condiciones de bsqueda de HAVING se aplican despus. La sintaxis de la clusula HAVING es similar a la de la clusula WHERE, con la diferencia de que HAVING puede contener funciones de agregado. Las clusulas HAVING pueden hacer referencia a cualquiera de los elementos que aparecen en la lista de seleccin.
En la condicin de seleccin slo pueden aparecer : valores constantes, funciones de columna, columnas de agrupacin (columnas que aparecen en la clusula GROUP BY) o cualquier expresin basada en las anteriores. Ejemplo: Queremos saber las oficinas con un promedio de ventas de sus empleados mayor que 500.000 ptas. SELECT oficina FROM empleados GROUP BY oficina HAVING AVG(ventas) > 500000 NOTA: Para obtener lo que se pide hay que calcular el promedio de ventas de los empleados de cada oficina, por lo que hay que utilizar la tabla empleados. Tenemos que agrupar los empleados por oficina y calcular el promedio para cada oficina, por ltimo nos queda seleccionar del resultado las filas que tengan un promedio superior a 500.000 ptas.

Clusula ORDER BY. La clusula ORDER BY ordena los resultados de una consulta por una o ms columnas.

Ejemplo: SELECT store_name, Sales, Date FROM Store_Information ORDER BY Sales DESC Resultado:
store_name Sales Date Los Angeles 1500 05-Jan-1999 Boston 700 08-Jan-1999 San Francisco 300 08-Jan-1999 San Diego 250 07-Jan-1999 Adems del nombre de la columna, podramos utilizar la posicin de la columna (segn la consulta SQL) para indicar en qu columna deseamos aplicar la clusula ORDER BY. La primera columna es 1, y la segunda columna es 2, y as sucesivamente. En el ejemplo anterior, alcanzaremos los mismos resultados con el siguiente comando:

Pgina 152 de 183

SELECT store_name, Sales, Date FROM Store_Information ORDER BY 2 DESC

PREDICADOS ALL TOP COUNT DISTINCT DISTINCTROW AVG SUM MAX MIN PREDICADOS Devuelve todosFUNCIONES DE AGREGADO los campos de la tabla. Devuelve un determinado nmero de registros de la tabla. Devuelve el nmero de registros de la tabla que se haya especificado. Omite los registros cuyos campos seleccionados coincidan totalmente. Omite losel promedio de los valores de un en la totalidad del registro y no slo Calcula registros duplicados basndose campo determinado. en los campos seleccionados. Devuelve la suma o total de un campo determinado. Devuelve el valor mximo de un campo determinado. Devuelve el valor mnimo de un campo determinado.

CONSULTAS AVANZADAS (LIKE, BETWEEN, IN, NOT IN) LIKE. La palabra clave LIKE busca valores de cadenas de caracteres, de fecha o de hora, que coincidan con un determinado patrn. BETWEEN. La palabra clave BETWEEN especifica un intervalo inclusivo de bsqueda. NOT BETWEEN. Busca todas las filas que estn fuera del intervalo que se especifique. IN. La palabra clave IN permite seleccionar las filas que coincidan con alguno de los valores de una lista.
Bases de datos

Pgina 153 de 183

NOT IN. La palabra clave NOT IN permite seleccionar las filas que no coincidan con alguno de los valores de una lista. INNER JOIN. Las vinculaciones entre tablas se realiza mediante la clusula INNER que combina registros de dos tablas siempre que haya concordancia de valores en un campo comn. * INNER JOIN no muestra registros con valores nulos. Ejemplo:
SELECT * FROM empleado INNER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento

Resultados: Empleado.Apelli Empleado.IDdepartam departamento.NombreDeparta do ento mento Zolano Jordn Rbinson Steinberg Andrade 34 33 34 33 31 Produccin Ingeniera Produccin Ingeniera Ventas departamento.IDDepartam ento 34 33 34 33 31

LEFT JOIN, RIGTHJOIN. Un LEFT JOIN o un RIGHT JOIN puede anidarse dentro de un INNER JOIN, pero un INNER JOIN no puede anidarse dentro de un LEFT JOIN o un RIGHT JOIN.
SELECT * FROM empleado LEFT OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento

Empleado.Apell Empleado.IDDepartam Departamento.NombreDeparta ido ento mento Jordn Andrade Rbinson Zolano Gaspar Steinberg 33 31 34 34 36 33 Ingeniera Ventas Produccin Produccin NULL Ingeniera

Departamento.IDDepartam ento 33 31 34 34 NULL 33

SELECT * FROM empleado RIGHT OUTER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento

Pgina 154 de 183

Empleado.Apell Empleado.IDDepartam Departamento.NombreDeparta ido ento mento Zolano Jordn Rbinson Steinberg Andrade NULL 34 33 34 33 31 NULL Produccin Ingeniera Produccin Ingeniera Ventas Mercadeo

Departamento.IDDepartam ento 34 33 34 33 31 35

PROCEDIMIENTOS ALMACENADOS (TRANSACT SQL). Un procedimiento almacenado es una coleccin con nombre de instrucciones de Transact-SQL que se almacena en el servidor. Los procedimientos almacenados son un mtodo para encapsular tareas repetitivas. Admiten variables declaradas por el usuario, ejecucin condicional y otras caractersticas de programacin muy eficaces. Sintaxis general: CREATE PROC nombre_del_procedimiento { @ parametro tipo_de_dato(longitud) } AS Instrucciones_sql

El siguiente ejemplo muestra un procedimiento almacenado, denominado spu_addCliente que inserta un registro en la tabla "CLIENTES". CREATE PROCEDURE spu_addCliente @nombre varchar(100), @apellido1 varchar(100), @apellido2 varchar(100), @nifCif varchar(20), @fxNaciento datetime AS INSERT INTO CLIENTES (nombre, apellido1, apellido2, nifcif, fxnacimiento) VALUES (@nombre, @apellido1, @apellido2, @nifCif, @fxNaciento)
Ejecutar un procedimiento almacenado. Para ejecutar un procedimiento almacenado se utiliza el comando: EXEC nombre_del_procedimiento EXECUTE nombre_del_procedimiento TRIGGER. Es una clase especial de procedimiento almacenado que se ejecuta automticamente cuando un usuario intenta la instruccin especificada de modificacin de datos en la tabla indicada. Sintaxis general: CREATE TRIGGER nombre_disp momento_disp evento_disp ON nombre_tabla FOR EACH ROW sentencia_disp

Un disparador es un objeto con nombre en una base de datos que se asocia con una tabla, y se activa cuando ocurre un evento en particular para esa tabla. Pgina 155 de 183

El disparador queda asociado a la tabla nombre_tabla. Esta debe ser una tabla permanente, no puede ser una tabla TEMPORARY ni una vista.
momento_disp es el momento en que el disparador entra en accin. Puede ser BEFORE (antes) o AFTER (despues), para indicar que el disparador se ejecute antes o despus que la sentencia que lo activa. evento_disp indica la clase de sentencia que activa al disparador. Puede ser INSERT, UPDATE, o DELETE. Por ejemplo, un disparador BEFORE para sentencias INSERT podra utilizarse para validar los valores a insertar.

No puede haber dos disparadores en una misma tabla que correspondan al mismo momento y sentencia. Por ejemplo, no se pueden tener dos disparadores BEFORE UPDATE. Pero s es posible tener los disparadores BEFORE UPDATE y BEFORE INSERT o BEFORE UPDATE y AFTER UPDATE.
sentencia_disp es la sentencia que se ejecuta cuando se activa el disparador. Si se desean ejecutar mltiples sentencias, deben colocarse entre BEGIN ... END, el constructor de sentencias compuestas. Esto adems posibilita emplear las mismas sentencias permitidas en rutinas almacenadas.
VISTAS. Una vista se puede considerar una tabla virtual o una consulta almacenada. Los datos accesibles a travs de una vista no estn almacenados en un objeto distinto de la base de datos. Lo que est almacenado en la base de datos es una instruccin SELECT. El resultado de la instruccin SELECT forma la tabla virtual que la vista devuelve. Sintaxis general:CREATE VIEW nombre_vista AS SELECT campo(s) FROM tabla

Ejemplo:Crear una vista sobre nuestra tabla alquileres, en la que se nos muestre el nombre y apellidos del cliente en lugar de su cdigo. CREATE VIEW vAlquileres AS ( SELECT nombre, apellidos, matricula FROM tAlquileres, tClientes WHERE ( tAlquileres.codigo_cliente = tClientes.codigo ) )
Si ya no necesita una vista, puede quitar su definicin de la base de datos con la instruccin DROP VIEW nombre_vista. TRANSACCIONES. Una transaccin es la unidad de ejecucin de un programa que accede y posiblemente actualiza varios elementos de datos.
Sintaxis general: Begin transaction nombre_de_la_transaccin Instrucciones sql (select, insert, update, delete) End
Seguridad y optimizacin

Pgina 156 de 183

COMMIT TRANSACTION. Se utiliza para finalizar una transaccin correctamente sino hubo errores. Todas las modificaciones de datos realizadas en la transaccin se convierten en partes permanentes de la base de datos. ROLLBACK TRANSACTION. Deshace una transaccin explcita o implcita hasta el inicio de la transaccin o hasta un punto de almacenamiento dentro de una transaccin. SEGURIDAD Y OPTIMIZACIN Seguridad: Se refiere a la proteccin contra el acceso mal intencionado. Integridad: Se refiere a la proteccin contra la prdida accidental de consistencia (precisin, correccin o validez de la BD). Confidencialidad: Tarea del Administrador de la BD de aumentarla. La informacin debe estar protegida contra: Accesos no autorizados Destruccin o alteracin con fines indebidos Introduccin accidental de Inconsistencia (El mal uso que se haga de la BD puede ser intencional o accidental) Los tipos de fallos que una BD puede tener son: Fsicos: De memoria, cadas del sistema, anomalas de acceso concurrente. Lgicos: De programacin, del Sistema Operativo Humanos: Mal intencionados o no. Un DBMS facilita los mecanismos para prevenir los fallos: Subsistemas de Control: Facilita los mecanismos para prevenir las fallas. Subsistemas de Deteccin: Para detectar las fallas una vez que se han producido. Subsistemas de Recuperacin: Para corregir las fallas despus de haber sido detectadas. NIVELES DE SEGURIDAD. Un usuario atraviesa dos fases de seguridad al trabajar en SQL Server: la autenticacin y autorizacin (aprobacin de los permisos). La fase de la autenticacin identifica al usuario que est usando una cuenta de inicio de sesin y verifica slo su capacidad para conectarse a una instancia de SQL Server. Si la autenticacin tiene xito, el usuario se conecta a una instancia de SQL Server. El usuario necesita entonces permisos para acceder a las bases de datos en el servidor, lo que se obtiene concediendo acceso a una cuenta en cada base de datos (asociadas al inicio de sesin del usuario). La implementacin en SQL Server abarca los siguientes aspectos: SEGURIDAD FSICA DEL SERVIDOR. Restringir el acceso fsico al servidor SQL Server nicamente al personal autorizado. Adems, tambin debemos tener en cuenta la seguridad fsica del lugar donde est almacenado o dispuesto el servidor, es decir, en un lugar ventilado adecuadamente, un lugar con los dispositivos ante alguna contingencia, como por ejemplo: Extintores, antes los incendios o corto circuitos. Ubicacin adecuada del servidor, por ejemplo si existen riesgos de inundacin, tal vez podramos ubicarlo en un lugar elevado. El cableado debe estar adecuado al lugar para evitar problemas con el fluido elctrico. UPS o sistema de alimentacin continua de energa.

Seguridad y optimizacin

CUENTAS Y CONTRASEAS. Nunca usar contraseas en blanco o escribir las contraseas en alguna aplicacin. Es recomendable tener contraseas mixtas que comiencen con uno o varios nmeros seguido por una combinacin de letras y caracteres especiales para contrarrestar los ataques producidos por los hackers. CONCEDER PERMISOS: SENTENCIA GRANT

Pgina 157 de 183

La sentencia GRANT crea una entrada en el sistema de seguridad que permite a un usuario de la base de datos actual trabajar con datos de la base de datos actual o ejecutar instrucciones Transact-SQL especficas. Para permisos de la instruccin:
GRANT { ALL | statement [ , . . n ] } TO security_account [, . . . n]

COMANDO CREATE DATABASE USE CREATE TABLE SHOW DATABASES SHOW TABLES DROP DATABASE DROP TABLE DESCRIBE INSERT

SINTAXIS CREATE DATABASE nombre_base; USE nombre_base; CREATE TABLE nombre_tabla (atributo1 tipo1(longitud, atributo2 tipo2(longitud), .. Atributo n tipo n(longitud) ); SHOW DATABASES; SHOW TABLES; DROP DATABASE nombre_base; DROP TABLE noombre_tabla; DESCRIBE nombre_tabla; INSERT INTO nombre_tabla (campo1,campo2, campo3, campo4, , campo n) VALUES (VALOR1,VALOR2,VALOR3,VALOR4, ,VALOR n);

DESCRIPCIN Permite crear una base de datos. Permite asegurarnos de usar la base de datos ade

Permite crear una tabla dentro de una base especificando los atributos que componen la tabla.

Muestra las bases de datos que se hayan creado. Muestra las tablas que se hayan creado dentro d de datos que actualmente est en uso. Permite eliminar una base de datos que se hay Este comando no enva ningn tipo de adve notificacin. Permite eliminar una tabla de la base de d actualmente este en uso. Este comando no env tipo de advertencia o notificacin. Muestra la estructura de una tabla.

Utilizado para insertar datos en una tabla, se pued un registro a la vez o varios registros en una sola o

DENEGAR PERMISOS: SENTENCIA DENY La sentencia DENY crea una entrada en el sistema de seguridad que deniega un permiso de una cuenta de seguridad en la base de datos actual e impide que la cuenta de seguridad herede los permisos a travs de los miembros de su grupo o funcin. Permisos de la instruccin: DENY {ALL | statement [ , . . . n ] } TO security_account [ , . . . ] EVOCAR PERMISOS: SENTENCIA REVOKE Es posible revocar un permiso que previamente se ha otorgado o denegado. La revocacin se asemeja a la denegacin en que ambas retiran un permiso concedido y en el mismo nivel. No obstante, aunque la revocacin retira un permiso concedido, no impide que el usuario, grupo o funcin lo herede de un nivel superior... La sintaxis de REVOKE es la siguiente: Permisos de la instruccin: REVOKE { ALL | statement [ , . . . n ] FROM security_account [ , . . . n ]

Pgina 158 de 183

Lenguaje de Consultas (SQL)

UPDATE

UPDATE nombre_tabla SET campo_a_modificar = nuevo_dato WHERE campo_condicin = valor_condicin;

Utilizado para modificar los valores de los campos registro. Si no se utiliza la clusula WHERE se modificaran registros de la tabla.

DELETE

DELETE FROM nombre_tabla WHERE condicin;

Utilizado para eliminar registros de una tabla. Si no la clusula WHERE se borraran todos los registros tabla.

CLASULAS FROM WHERE Especifica la tabla de la cual se van a solicitar los registros. Especifica las condiciones que deben de cumplir los registros. OPERADORES DE COMPARACIN >, <, <>, >=, <=, = LIKE Se utiliza para establecer una comparacin entre nmeros. Se utiliza para establecer una comparacin con un texto determinado.

SELECT AND OR

SELECT campo(s) FROM nombre_tabla; Permite consultar registros de la base de d OPERADORES LGICOS SELECT campo(s) FROM nombre_tabla WHERE satisfagan un criterio determinado. condicin; condiciones y devuelve un valor de verdad si ambascomando se puede utilizar combinando Este son ciertas. Evala dos SELECT campo(s) FROM nombre_tabla WHERE operadores y funciones. condicin1 AND/OR condicin2; Es el O lgico. Evala dos condiciones.

Pgina 159 de 183

Administracin

8.- ADMINISTRACIN DE LA FUNCIN INFORMTICA


Administracin: proceso de crear, disear y mantener un ambiente en el que las personas al laborar o
trabajar en grupos, alcancen con eficiencia metas seleccionadas.

Proceso administrativo: el proceso metodolgico que implica una serie de actividades que llevar a
una mejor consecucin de los objetivos, en un periodo ms corto y con una mayor productividad. Elementos del proceso administrativo:

Planeacin. Determinacin racional de a dnde queremos ir y cmo llegar all


Niveles de planeacin de un centro de cmputo

Planeacin de recursos: Instalaciones acorde a las necesidades informticas, equipo de cmputo y


materiales de produccin.

Planeacin operativa.

Anlisis de necesidades para definir una plataforma tecnolgica con una infraestructura en hardware, software, personal operativo etc.

Planeacin de instalacin fsica y ubicacin fsica. Los factores que como mnimo hay que cubrir
son: Espacio fsico, movilidad de equipos, iluminacin, tratamiento acstico, seguridad fsica del local y suministro elctrico.

Criterios para seleccionar software:


Verificar el tipo de Software de programa, existen dos niveles: bsico. Sistema Operativo y soporte: Base de datos Proveedor. Debe cubrir ciertos requisitos: prestigio, soporte tcnico, personal especializado, comunicacin rpida, capacitacin, cartera de clientes de software iguales al adquirido. Costos: Se considerarn condicin de pago, local, inclusin de entrenamiento, costos de mantenimiento.

Criterios para seleccionar Hardware Equipos: La configuracin de acuerdo a la carga de trabajo, crecimiento vertical y horizontal, garanta,
tecnologa de punta.

Proveedor. prestigio, soporte tcnico, personal especializado, comunicacin rpida, capacitacin,


cartera de clientes de software iguales al adquirido

Precios: Condiciones de pago, descuentos, costos de mantenimiento Proceso general para la Adquisicin de Software y Hardware.
Solicitud de propuesta. Partiendo de los objetivos establecidos en la etapa de planeacin Evaluacin de propuesta. Verificar operatividad Financiamiento. Ver fuentes de financiamiento Negociacin de Contrato. Por escrito e incluir todos los aspectos de hardware y software

Pgina 160 de 183

Administracin

Principales problemas de un centro de cmputo

Hardware
Defectos de fabricacin y daos fsicos que puedan tener durante su transporte. Que el manual de uso este en otro idioma ajeno al que manejamos las piezas que pudiera ser daadas no son muy comunes y por tanto difciles de conseguir. Cuando se trabaja con conexin a red, es muy comn que por falta de conocimiento den rdenes que la puedan bloquear o provocar que esta se caiga. Que las impresoras deben recibir trato especial porque la configuracin de estas es muy especfica.

Software
Los archivos necesarios para su instalacin no estn contenidos en el CD de instalacin. El ambiente en que se desarrolla no es compatible con el sistema operativo que est siendo usado por el PC. El idioma, no siempre est en el que nosotros hablamos y por tanto nos es difcil su manejo. Algunas ordenes, comandos u operaciones son muy complejos y puede producir que al darlas de manera equivoca bloquee el equipo.

Sistemas y empresas con mayor riesgo


En sistemas donde se manejan nominas o control de valores, se pueden realizar transacciones fraudulentas de dinero y sacarlo de la empresa. Los sistemas mecanizados son susceptibles de prdidas o fraudes debido a que: Manejan grandes volmenes de datos e interviene poco personal, lo que impide verificar todas las partidas. En los registros magnticos transitorios menos que se realicen pruebas dentro de un perodo de tiempo corto, podran perderse los detalles de lo que sucedi, quedando slo los efectos. Los sistemas son impersonales, aparecen en un formato ilegible y estn controlados parcialmente por personas cuya principal preocupacin son los aspectos tcnicos del equipo y del sistema y que no comprenden, o no les afecta, el significado de los datos que manipulan. En el diseo de un sistema importante es difcil asegurar que se han previsto todas las situaciones posibles y es probable que en las previsiones que se hayan hecho queden <<agujeros>> sin cubrir. Cuando existe personal muy inteligente, que trabaja por iniciativa propia la mayora del tiempo, resultar difcil implantar unos niveles normales de control y supervisin. El error y el fraude son difciles de equiparar. A menudo, los errores no son iguales al fraude. Se tiende a empezar buscando errores de programacin y del sistema. Si falla esta operacin, se buscan fallos tcnicos y operativos. Slo cuando todas estas averiguaciones han dado resultados negativos, acaba pensndose en que la causa podra ser un fraude. Tipificacin de los delitos informticos, Clasificacin Segn la Actividad Informtica

Conductas dirigidas a causar daos fsicos: Destruccin fsica del hardware y el software de un sistema. Copia ilegal de software y espionaje informtico: Obtener datos en forma ilegtima o sustraccin del sistema si Infraccin de los derechos de autor: conductas que supongan la copia o el plagio de las obras Infraccin del Copyright de bases de datos: No existe una proteccin uniforme de las bases de datos en los Uso ilegtimo de sistemas informticos ajenos: Empleados utilizan los sistemas de las empresas para fines privados. Delitos informticos contra la privacidad: Utilizacin indebida o modificacin de datos personales de registro Pornografa infantil. Utilizacin de sistemas informticos para su distribucin
Auditora

Estas conductas pueden ser analizadas jurdicamente tiene valor comercial.

protegidas, donde concurran dos circunstancias: el nimo de lucro y el perjuicio de tercero pases que tienen acceso a Internet. En general se protegen los datos pero no el sistema pblico o privado

Clasificacin Segn el Instrumento, Medio o Fin u Objetivo

Pgina 161 de 183

Como instrumento o medio: Falsificacin de documentos va computarizada (tarjetas de crdito, cheques, etc.) Variacin de los activos y pasivos en la situacin contable de las empresas. Lectura, sustraccin o copiado de informacin confidencial. Modificacin de datos de entrada y salida Aprovechamiento indebido o violacin de un cdigo para penetrar a un sistema introduciendo instrucciones inapropiadas. Variacin en cuanto al destino de pequeas cantidades de dinero hacia una cuenta bancaria apcrifa. Uso no autorizado de programas de cmputo. Introduccin de instrucciones que provocan interrupciones en la lgica interna de los programas. Alteracin en el funcionamiento de los sistemas, a travs de los virus informticos. Obtencin de informacin residual impresa en papel luego de la ejecucin de trabajos. Acceso a reas informatizadas en forma no autorizada. Intervencin en las lneas de comunicacin de datos o teleproceso. Como fin u objetivo. Conductas criminales que van dirigidas contra las computadoras, accesorios o programas como entidad fsica: Programacin de instrucciones que producen un bloqueo total al sistema. Destruccin de programas por cualquier mtodo. Dao a la memoria. Atentado fsico contra la mquina o sus accesorios. Sabotaje poltico o terrorismo en que se destruya o surja un apoderamiento de los centros neurlgicos computarizados. Secuestro de soportes magnticos entre los que figure informacin valiosa con fines de chantaje Ley de Derechos de Autor (FRAGMENTOS IMPORTANTES) Artculo 101.- Se entiende por programa de computacin la expresin original en cualquier forma, lenguaje o cdigo, de un conjunto de instrucciones que, con una secuencia, estructura y organizacin determinada, tiene como propsito que una computadora o dispositivo realice una tarea o funcin especfica. Artculo 102.- Los programas de computacin se protegen en los mismos trminos que las obras literarias. Dicha proteccin se extiende tanto a los programas operativos como a los programas aplicativos, ya sea en forma de cdigo fuente o de cdigo objeto. Se exceptan aquellos programas de cmputo que tengan por objeto causar efectos nocivos a otros programas o equipos. Artculo 103.- Salvo pacto en contrario, los derechos patrimoniales sobre un programa de computacin y su documentacin, cuando hayan sido creados por uno o varios empleados en el ejercicio de sus funciones o siguiendo las instrucciones del empleador, corresponden a ste. Como excepcin a lo previsto por el artculo 33 de la presente Ley, el plazo de la cesin de derechos en materia de programas de computacin no est sujeto a limitacin alguna. Artculo 104.-Como excepcin a lo previsto en el artculo 27 fraccin IV, el titular de los derechos de autor sobre un programa de computacin o sobre una base de datos conservar, an despus de la venta de ejemplares de los mismos, el derecho de autorizar o prohibir el arrendamiento de dichos ejemplares. Este precepto no se aplicar cuando el ejemplar del programa de computacin no constituya en s mismo un objeto esencial de la licencia de uso.

Auditora

Artculo 105.- El usuario legtimo de un programa de computacin podr realizar el nmero de copias que le autorice la licencia concedida por el titular de los derechos de autor, o una sola copia de dicho programa siempre y cuando: I. Sea indispensable para la utilizacin del programa, o

Pgina 162 de 183

II. Sea destinada exclusivamente como resguardo para sustituir la copia legtimamente adquirida, cuando sta no pueda utilizarse por dao o prdida. La copia de respaldo deber ser destruida cuando cese el derecho del usuario para utilizar el programa de computacin. Artculo 106.- El derecho patrimonial sobre un programa de computacin comprende la facultad de autorizar o prohibir: I. La reproduccin permanente o provisional del programa en todo o en parte, por cualquier medio y forma: II. La traduccin, la adaptacin, el arreglo o cualquier otra modificacin de un programa y la reproduccin del programa resultante III. Cualquier forma de distribucin del programa o de una copia del mismo, incluido el alquiler, y IV. La de compilacin, los procesos para revertir la ingeniera de un programa de computacin y el desensamblaje. Artculo 107.- Las bases de datos o de otros materiales legibles por medio de mquinas o en otra forma, que por razones de seleccin y disposicin de su contenido constituyan creaciones intelectuales, quedarn protegidas como compilaciones. Dicha proteccin no se extender a los datos y materiales en s mismos. Artculo 108.- Las bases de datos que no sean originales quedan, sin embargo, protegidas en su uso exclusivo por quien las haya elaborado, durante un lapso de 5 aos. Artculo 109.- El acceso a informacin de carcter privado relativa a las personas contenidas en las bases de datos a que se refiere el artculo anterior, as como la publicacin, reproduccin, divulgacin, comunicacin pblica y transmisin de dicha informacin, requerir la autorizacin previa de las personas de que se trate. Quedan exceptuados de lo anterior, las investigaciones de las autoridades encargadas de la procuracin e imparticin de justicia, de acuerdo con la legislacin respectiva, as como el acceso a archivos pblicos por las personas autorizadas por la ley, siempre que la consulta sea realizada conforme a los procedimientos respectivos. Artculo 110.- El titular del derecho patrimonial sobre una base de datos tendr el derecho exclusivo, respecto de la forma de expresin de la estructura de dicha base, de autorizar o prohibir: I. Su reproduccin permanente o temporal, total o parcial, por Cualquier medio y de cualquier forma; II. Su traduccin, adaptacin, reordenacin y cualquier otra modificacin; III. La distribucin del original o copias de la base de datos; IV. La comunicacin al pblico, y V. La reproduccin, distribucin o comunicacin pblica de los resultados de las operaciones mencionadas en la fraccin II del presente artculo. Artculo 111.- Los programas efectuados electrnicamente que contengan elementos visuales, sonoros, tridimensionales o animados quedan protegidos por esta Ley en los elementos primigenios que contengan. Artculo 112.- Queda prohibida la importacin, fabricacin, distribucin y utilizacin de aparatos o la prestacin de servicios destinados a eliminar la proteccin tcnica de los programas de cmputo, de las transmisiones a travs del espectro electromagntico y de redes de telecomunicaciones y de los programas de elementos electrnicos sealados en el artculo anterior.

Auditora

Artculo 113.- Las obras e interpretaciones o ejecuciones transmitidas por medios electrnicos a travs del espectro electromagntico y de redes de telecomunicaciones y el resultado que se obtenga de esta transmisin estarn protegidas por esta Ley. Artculo 114.- La transmisin de obras protegidas por esta Ley mediante cable, ondas radioelctricas, satlite u otras similares, debern adecuarse, en lo conducente, a la legislacin mexicana y respetar en todo caso y en todo tiempo las disposiciones sobre la materia.

Pgina 163 de 183

Artculo 164.- El Registro Pblico del Derecho de Autor tiene las siguientes obligaciones: I. Inscribir, cuando proceda, las obras y documentos que le sean presentados II. Proporcionar a las personas que lo soliciten la informacin de las inscripciones y, salvo lo dispuesto en los prrafos siguientes, de los documentos que obran en el Registro. Tratndose de programas de computacin, de contratos de edicin y de obras inditas, la obtencin de copias slo se permitir mediante autorizacin del titular del derecho patrimonial o por mandamiento judicial.

Pgina 164 de 183

Paquetera Bsica

9.- INFORMATICA
Paquetes de aplicaciones generales (Procesadores de Texto, Hojas de Clculo, Bases de
Datos e Internet). a) Notas Tcnicas

Concepto de herramienta de software


Herramienta de Software: Es una aplicacin que es capaz de eficientar las tareas cotidianas de oficina, con el fin de mejorar dichas tareas.

Concepto de procesador de texto, de hoja de clculo y de software de presentaciones


Procesador de Texto: Programa de procesamiento de palabras con todas las facilidades para computadoras personales. Hoja de Clculo: Programa que permite a los crear, manipular y analizar rpidamente datos que se organizan en columnas e hileras. Power Point: Programa que permite crear, manipular y enlazar presentaciones de calidad hechas por el usuario.

Funcionamiento de las tareas bsicas de Word


Tareas Bsicas de Word: Permite la creacin de cualquier tipo documentos, apoyndose en herramientas que faciliten el tratamiento de textos.

Funcionamiento bsico de Excel


Funcionamiento Bsico de Excel: Permite la creacin de cualquier tipo de hoja clculo, funciones financieros, de matemticas, de texto, lgicas y grficas.

Funcionamiento bsico de Power Point


Funcionamiento bsico de Power Point: Permite la creacin de cualquier tipo de presentacin utilizando las herramientas de diseo, y de multimedia.

Internet en las comunicaciones del mundo


Internet: Es una interconexin de redes informticas que permite a las computadoras conectadas comunicarse directamente. El trmino suele referirse a una interconexin en particular, de carcter planetario y abierto al pblico, que conecta redes informticas de organismos oficiales, educativos y empresariales.

Funcionamiento de los servicios de Internet: Correo electrnico y Web


Correo electrnico: Conocido como e-mail, es el intercambio de mensajes almacenados en computadora por medio de las telecomunicaciones. Web: World Wide Web, es el universo de informacin inagotable y accesible a travs de Internet. b) Ejercicios (y Respuestas)

Paquetera Bsica

Pgina 165 de 183

Sistemas de informacin en la empresa: Estaciones de trabajo, redes internas y externas. a) Notas Tcnicas

Principios de Comunicacin de Datos Definicin de Comunicacin


Es el proceso mediante el cual dos o ms personas logran establecer un enlace para enviar, transmitir o compartir una idea, informacin, o un bien que posee cada una de ellas. Formas de Comunicacin: Gestos. Movimiento corporal. Voz Seales de humo. Palomas mensajeras Correo. Telgrafo, Telfono. Radio Televisin. Internet. Etc.

Componentes de la Comunicacin

Mensaje.- Es la idea, informacin o bien que se va a enviar. Fuente.- Es el origen del mensaje que se va a enviar. Transmisor.- Es el elemento que codifica (modifica siguiendo ciertas reglas) y enva el mensaje. Algunas veces la fuente y el transmisor se consideran como un mismo elemento. Medio o Canal.- Es el conducto por el cual viaja el mensaje. Por ejemplo;

Mensaje Un camin Un barco Un tren Un avin El agua

Medio Una carretera El agua Una va El aire Una manguera El sonido El aire La electricidad Un cable metlico
Receptor.- Es el elemento que recibe y decodifica (traduce) el mensaje para que sea entendido por el elemento destino. Destino.- Es el que toma el mensaje del receptor y lo interpreta.

Pgina 166 de 183

Paquetera Bsica

Modelo de comunicacin de datos Importancia de la comunicacin: En la medida en que una sociedad se desarrolla y crece, tambin aumenta la necesidad de comunicacin entre su poblacin. Todos los das las personas enviamos y recibimos millones de mensajes para compartir informacin o para tomar decisiones. Por ejemplo: Un empresario necesita convencer a sus clientes de que compren sus productos. Un hijo que vive lejos de sus padres desea informarles que se encuentra bien. Un abogado quiere informar al juez del veredicto de un acusado. Para que las personas que reciben el mensaje lo interpreten o entiendan correctamente, la comunicacin debe realizarse con xito, es decir; el mensaje que enva la fuente debe ser exactamente igual al mensaje que recibe el destino. De otra manera se tomaran decisiones que podran ser fatales. Por ejemplo: Los clientes no compraran los productos. Los padres pensaran que su hijo no se encuentra bien. Se sentenciara injustamente a un acusado.

Concepto de Protocolo Un protocolo es un conjunto de reglas que permiten iniciar, mantener y finalizar en forma correcta y ordenada la transmisin de informacin en un medio de comunicacin para que sta sea comprensible tanto para el emisor como para el receptor, estableciendo el formato, la sincrona y el control de errores. Informtica en la Organizacin La Informtica se define como el conjunto de conocimientos y tcnicas que tienen por objetivo:

El tratamiento automtico de informacin. El desarrollo de sistemas de informacin.

La informtica dentro de una organizacin ayuda a eficientar y automatizar los procesos, que se llevan a cabo dentro de la misma. Informtica relacionada con las Tecnologas de Informacin La evolucin de la tecnologa computacional ha propiciado que surja el concepto de Tecnologas de la Informacin, por lo que:

Pgina 167 de 183

Las Tecnologas de Informacin son las ciencias y habilidades de los aspectos de computacin y comunicacin, para la administracin de la informacin.

Debido a que un profesionista en Informtica se enfrentar a la administracin de la informacin es importante que se relacione a la Informtica con las Tecnologas de Informacin, para su aplicacin en la implementacin de soluciones computacionales en una organizacin.

Pgina 168 de 183

Bases de hardware

Componentes de una computadora

Computadora: Dispositivo electrnico, constituido por un conjunto de unidades especializadas dependientes de un programa introducido en la memoria, que permite, sin intervencin del hombre, efectuar complejas operaciones de carcter aritmtico o lgico. La unidad central de proceso La Unidad central de proceso o CPU, se puede definir como un circuito microscpico que interpreta y ejecuta instrucciones. La CPU se ocupa del control y el proceso de datos en los ordenadores. Habitualmente, la CPU es un microprocesador fabricado en un chip, un nico trozo de silicio que contiene millones de componentes electrnicos. El microprocesador de la CPU est formado por una unidad aritmtico-lgica que realiza clculos y comparaciones, y toma decisiones lgicas (determina si una afirmacin es cierta o falsa mediante las reglas del lgebra de Boole); por una serie de registros donde se almacena informacin temporalmente, y por una unidad de control que interpreta y ejecuta las instrucciones. Para aceptar rdenes del usuario, acceder a los datos y presentar los resultados, la CPU se comunica a travs de un conjunto de circuitos o conexiones llamado bus. El bus conecta la CPU a los dispositivos de almacenamiento (por ejemplo, un disco duro), los dispositivos de entrada (por ejemplo, un teclado o un mouse) y los dispositivos de salida (por ejemplo, un monitor o una impresora). Elementos que componen a la computadora Unidad de control: controla el funcionamiento de la CPU y por tanto del computador. Unidad aritmtico-lgica (ALU): encargada de llevar a cabo las funciones de procesamiento de datos del computador. Registros: proporcionan almacenamiento interno a la CPU. Interconexiones CPU: Son mecanismos que proporcionan comunicacin entre la unidad de control, la ALU y los registros.

Bases de hardware

Pgina 169 de 183

La Memoria
La memoria de un computador se puede definir como los circuitos que permiten almacenar y recuperar la informacin. En un sentido ms amplio, puede referirse tambin a sistemas externos de almacenamiento, como las unidades de disco o de cinta. . Tipos de Memoria Jerarqua de memoria En un ordenador hay una jerarqua de memorias atendiendo al tiempo de acceso y a la capacidad que. normalmente son factores contrapuestos por razones econmicas y en muchos casos tambin fsicas. Comenzando desde el procesador al exterior, es decir en orden creciente de tiempo de acceso y capacidad, se puede establecer la siguiente jerarqua: Memorias cach: Son memorias de pequea capacidad. Normalmente una pequea fraccin de la memoria principal y pequeo tiempo de acceso. Este nivel de memoria se coloca entre la CPU y la memoria central. Memoria central o principal: En este nivel residen los programas y los datos. La CPU lee y escribe datos en l aunque con menos frecuencia que en los niveles anteriores. Tiene un tiempo de acceso relativamente rpido y gran capacidad. Extensiones de memoria central: Son memorias de la misma naturaleza que la memoria central que amplan su capacidad de forma modular. El tiempo de similar, a lo sumo un poco mayor, al de la memoria central y su capacidad puede ser algunas veces mayor. Clasificacin de memorias semiconductoras de acceso aleatorio Las memorias se clasifican, por la tecnologa empleada y, adems segn la forma en que se puede modificar su contenido, A este respecto, las memorias se clasifican en dos grandes grupos: 1) Memorias RAM: Son memorias en las que se puede leer y escribir, si bien su nombre (Random access memory) no representa correctamente este hecho. Por su tecnologa pueden ser de ferritas (ya en desuso) o electrnicas, 2) Memorias ROM (Read 0nly Memory): Son memorias en las que slo se puede leer. Pueden ser: ROM programadas por mscara, cuya informacin se graba en fbrica y no se puede modificar. PROM, o ROM programable una sola vez. EPROM (erasable PROM) o RPROM (reprogramable ROM), cuyo contenido puede borrarse mediante rayos ultravioletas para regrabarlas. Memoria FLASH, denominada as por la velocidad con la que puede reprogramarse, utilizan tecnologa de borrado elctrico al igual que las EEPROM. Las memorias flash pueden borrarse enteras en unos cuantos segundos, mucho ms rpido que las EPROM Buses del Sistema El bus se puede definir como un conjunto de lneas conductoras de hardware utilizadas para la transmisin de datos entre los componentes de un sistema informtico. Un bus es en esencia una ruta compartida que conecta diferentes partes del sistema, como el microprocesador, la controladora de unidad de disco, la memoria y los puertos de entrada/salida (E/S), para permitir la transmisin de informacin.

Bases de hardware

Procesador

Pgina 170 de 183

Bus de direcciones (bits) Bus de datos (bits) Ejemplos de microprocesadores

Este mismo concepto es tambin la razn por la cual al utilizar tarjetas de ampliacin en un PC surgen problemas una y otra vez, si hay dos tarjetas que reclaman para ellas el mismo campo de direccin o campos de direccin que se solapan entre ellos. Los datos en si no se mandan al bus de direcciones sino al bus de datos. El bus XT tena solo 8 bits con lo cual slo poda transportar 1 byte a la vez. Si la CPU quera depositar el contenido de un registro de 16 bits o por valor de 16 bits, tena que desdoblarlos en dos bytes y efectuar la transferencia de datos uno detrs de otro. Estructuras de interconexin Existen dos organizaciones fsicas de operaciones E/S que tienen que ver con los buses que son: Bus nico Bus dedicado La primera gran diferencia entre estas dos tipos de estructuras es que el bus nico no permite un controlador DMA (todo se controla desde la CPU), mientras que el bus dedicado s que soporta este controlador. Este bus especial que utiliza el bus dedicado tiene 4 componentes fundamentales: Datos: Intercambio de informacin entre la CPU y los perifricos. Control: Lleva informacin referente al estado de los perifricos (peticin de interrupciones). Direcciones: Identifica el perifrico referido. Sincronizacin: Temporiza las seales de reloj.
Bases de hardware

La mayor ventaja del bus nico es su simplicidad de estructura que le hace ser ms econmico, pero no permite que se realice a la vez transferencia de informacin entre la memoria y el procesador y entre los perifricos y el procesador. Por otro lado el bus dedicado es mucho ms flexible y permite transferencias simultneas. Por contra su estructura es ms compleja y por tanto sus costes son mayores.

Pgina 171 de 183

Tipos de Buses Ahora vamos a ver los distintos tipos de buses que se han ido desarrollando y los que se emplean en la actualidad. El Bus XT y el Bus ISA (AT) Cuando en 1980 IBM fabric su primer PC, este contaba con un bus de expansin conocido como XT que funcionaba a la misma velocidad que los procesadores Intel 8086 y 8088 (4.77 Mhz). El ancho de banda de este bus (8 bits) con el procesador 8088 formaba un tandem perfecto, pero la ampliacin del bus de datos en el 8086 a 16 bits dejo en entredicho este tipo de bus (aparecieron los famosos cuellos de botella). Bus Micro Channel (MCA) Vistas las limitaciones que tena el diseo del bus ISA en IBM se trabaj en un nueva tecnologa de bus que comercializ con su gama de ordenadores PS/2. El diseo MCA (Micro Channel Arquitecture) permita una ruta de datos de 32 bits, ms ancha, y una velocidad de reloj ligeramente ms elevada de 10 Mhz, con una velocidad de transferencia mxima de 20 Mbps frente a los 8 Mbps del bus ISA. EISA (Extended ISA) El principal rival del bus MCA fue el bus EISA, tambin basado en la idea de controlar el bus desde el microprocesador y ensanchar la ruta de datos hasta 32 bits. Local Bus Teniendo en cuenta las mencionadas limitaciones del bus AT y la infalibilidad de los buses EISA y MCA para asentarse en el mercado, en estos aos se han ideado otros conceptos de bus. Se inici con el llamado Vesa Local Bus (VL-Bus), que fue concebido y propagado independientemente por el comit VESA, que se propuso el definir estndares en el mbito de las tarjetas grficas y Vesa Local Bus Al contrario que con el EISA, MCA y PCI, el bus VL no sustituye al bus ISA sino que lo complementa. Un PC con bus VL dispone para ello de un bus ISA y de las correspondientes ranuras (slots) para tarjetas de ampliacin. Adems, en un PC con bus VL puede haber, sin embargo, una, dos o incluso tres ranuras de expansin, para la colocacin de tarjetas concebidas para el bus VL, casi siempre grficos. Solamente estos slots estn conectados con la CPU a travs de un bus VL, de tal manera que las otras ranuras permanecen sin ser molestadas y las tarjetas ISA pueden hacer su servicio sin inconvenientes. PCI (Peripheral Component Interconnect) PCI significa: interconexin de los componentes perifricos (Peripheral Component Interconnect) y presenta un moderno bus que no slo est meditado para no tener la relacin del bus ISA en relacin a la frecuencia de reloj o su capacidad sino que tambin la sincronizacin con las tarjetas de ampliacin en relacin a sus direcciones de puerto, canales DMA e interrupciones se ha automatizado finalmente de tal manera que el usuario no deber preocuparse ms por ello.
Bases de hardware

SCSI (Small Computer System Interface)


Adems de todas las arquitecturas mencionadas anteriormente, tambin hay que mencionar a SCSI. Esta tecnologa tiene su origen a principios de los aos 80 cuando un fabricante de discos desarrollo su propia interface de E/S denominado SASI (Shugart Asociates System Interface) que debido a su gran xito comercial fue presentado y aprobado por ANSI en 1986. El protocolo SCSI 3.0 no establecer nuevas prestaciones de los protocolos, pero si refinar el funcionamiento de SCSI.

Pgina 172 de 183

AGP (Accelerated Graphics Port)


La tecnologa AGP, creada por Intel, tiene como objetivo fundamental el nacimiento de un nuevo tipo de PC, en el que se preste especial atencin a dos facetas: grficos y conectividad. La especificacin AGP se basa en la especificacin PCI 2.1 de 66 Mhz (aunque

Dispositivos de almacenamiento y de entrada-salida


Notas Tcnicas Dispositivos de almacenamiento Los sistemas informticos pueden almacenar los datos tanto interna (en la memoria) como externamente (en los dispositivos de almacenamiento). Internamente, las instrucciones o datos pueden almacenarse por un tiempo en los chips de silicio de la RAM (memoria de acceso aleatorio) montados directamente en la placa de circuitos principal de la computadora, o bien en chips montados en tarjetas perifricas conectadas a la placa de circuitos principal del ordenador. Estos chips de RAM constan de conmutadores sensibles a los cambios de la corriente elctrica. Los chips de RAM esttica conservan sus bits de datos mientras la corriente siga fluyendo a travs del circuito, mientras que los chips de RAM dinmica (DRAM, acrnimo de Dynamic Random Access Memory) necesitan la aplicacin de tensiones altas o bajas a intervalos regulares aproximadamente cada dos milisegundos para no perder su informacin. Dispositivos de almacenamiento magntico: Almacenamiento Magntico 1.- Discos Flexibles 2.- Discos Duros 3.- Cintas Magnticas o Cartuchos. Almacenamiento ptico: La necesidad de mayores capacidades de almacenamiento han llevado a los fabricantes de hardware a una bsqueda continua de medios de almacenamiento alternativos y cuando no hay opciones, a mejorar tecnologas disponibles y desarrollar nuevas. Las tcnicas de almacenamiento ptico hacen posible el uso de la localizacin precisa mediante rayos lser. Leer informacin de un medio ptico es una tarea relativamente fcil, escribirla es otro asunto. El problema es la dificultad para modificar la superficie de un medio ptico, ya que los medios pticos perforan fsicamente la superficie para reflejar o dispersar la luz del lser. Los principales dispositivos de almacenamiento ptico son: 1.- CD ROM.- CD Read Only Memory 2.- WORM.- Write Once, Read Many
Bases de hardware

Medios Magntico - pticos: Estos medios combinan algunas de las mejores caractersticas de las tecnologas de grabacin magntica y ptica. Un disco MO tiene la capacidad de un disco ptico, pero puede ser re-grabable con la facilidad de un disco magntico. Actualmente estn disponibles en varios tamaos y capacidades.

Dispositivos de Entrada-Salida Definicin de Hardware:

Pgina 173 de 183

Hardware son todos aquellos componentes fsicos de una computadora, todo lo visible y tangible. El Hardware realiza las 4 actividades fundamentales: entrada, procesamiento, salida y almacenamiento secundario. Software Software, programas de computadoras. Son las instrucciones responsables de que el hardware (la mquina) realice su tarea. Como concepto general, el software puede dividirse en varias categoras basadas en el tipo de trabajo realizado. Las dos categoras primarias de software son los sistemas operativos (software del sistema), que controlan los trabajos del ordenador o computadora, y el software de aplicacin, que dirige las distintas tareas para las que se utilizan las computadoras. Dispositivos de entrada. Un Dispositivo de Entrada es aquel componente que permite al usuario comunicarle un dato a la computadora, entonces creo que ya puede usted ir entendiendo de que se trata el misterio del que estamos hablando. Teclado: Es un dispositivo similar a una mquina de escribir, en el que adems de las teclas alfabticas, numricas y de puntuacin existen smbolos y teclas de control. Mouse: Es un dispositivo que permite sealar con un puntero o una flecha en la pantalla, as como seleccionar opciones, arrastrar objetos, conmutar entre pantallas, crear elementos grficos y otras actividades ms. Micrfono: Es un dispositivo de entrada de informacin que recientemente ha pasado a formar parte de la estructura normal de una PC, se conecta a la tarjeta de audio, y convierte el sonido en impulsos elctricos, mismos que a su vez son convertidos en informacin binaria para su manejo por el microprocesador. Escner: Es un lector exploratorio ptico que convierte las imgenes en una representacin digital, de acuerdo con algn formato grfico. Lectores pticos: Suelen contener una fuente de luz que ilumina intensamente el dato a leer, un sistema ptico de ampliacin de imagen y los elementos necesarios para identificar el carcter. Caracteres magnticos: Se utilizan en los talones y cheques bancarios, y en las etiquetas de algunos medicamentos en algunos pases, pues en Espaa se usa el cdigo EAN. En estos documentos se imprimen, de acuerdo con unos patrones, los caracteres que identifican el cheque o taln.

Bases de hardware

Dispositivos de salida Estos dispositivos permiten al usuario ver los resultados de los clculos o de las manipulaciones de datos de la computadora. El dispositivo de salida ms comn es la unidad de visualizacin (VDU, acrnimo de Video Display Unit), que consiste en un monitor que presenta los caracteres y grficos en una pantalla similar a la del televisor. Por lo general, las VDU tienen un tubo de rayos catdicos como el de cualquier televisor, aunque los ordenadores pequeos y porttiles utilizan hoy pantallas de cristal lquido (LCD, acrnimo de Liquid Crystal Displays) o electroluminiscentes. Otros dispositivos de salida ms comunes son las impresoras y los mdem. Un mdem enlaza dos ordenadores transformando las seales digitales en analgicas para que los datos puedan transmitirse a travs de las telecomunicaciones. Ejemplos: Sintetizado de voz

Pgina 174 de 183

Visualizador Trazador de grficos o "plotter" Monitor Microfilm Instrumentacin cientfica o industrial

Descripcin de algunos de ellos. Monitor: La introduccin del monitor como una forma de expedir los resultados, capaz de convertir la seal de computadora en una seal de Televisin. Pantallas LCD: Despliegue de cristal lquido. Impresora: Una impresora es un perifrico para el computador, que traslada el texto o la imagen generada por ella a un medio imprimible (papel, transparencias, etc...)

Pgina 175 de 183

Sistemas de informacin

La Informacin y su Representacin Definicin de Informtica:


Tratamiento automatizado de la Informacin.

Definicin de datos
Se refiere fundamentalmente a cualquier hecho, cifra, carta, palabra, smbolo o grficas que representan una idea, objetivo, condicin o situacin. As como los datos pueden incluir cosas tan diversas como boletas electorales, cifras de inventarios, lecturas de medidores de gas, registro de asistencia escolar, informe de resultados tcnicos y cifras de produccin.

Diferencia entre datos e informacin


Los datos son hechos, la materia prima de la informacin. Los datos se representan por medio de smbolos, pero slo pueden considerarse como informacin en un sentido limitado. En la forma en que el trmino se utiliza en el procesamiento de datos, la informacin consta de datos organizados en una forma que es til para las personas que la reciben. En otras palabras, la informacin consiste en conocimientos importantes producidos como resultado de las operaciones de procesamiento de datos, asimismo las personas los adquieren para mejorar su comprensin y para lograr objetivos especficos. Actividades de procesamiento de datos 1. Captura de los datos de entrada Los datos se deben registrarse o capturarse de alguna manera antes de poder procesarse. 1. Manipulacin de datos. a) Agrupacin: Se denomina agrupacin al proceso de organizar elementos similares para formar grupos o clases. b) Clculo: La manipulacin aritmtica de los datos se llama clculo y es una actividad de procesamiento muy comn. c) Clasificacin: casi siempre es ms fcil trabajar con los datos si estn ordenados en una secuencia lgica. d) Sntesis: Se denomina sntesis a la reduccin de grandes volmenes de datos a una forma ms concisa y manejable. 1. Manejo de los resultados de salida. a) Almacenamiento y recuperacin: Se denomina almacenamiento a la conservacin de los datos para consultarlos en el futuro. b) Comunicacin y reproduccin: La comunicacin de datos es la transferencia de datos de una localidad u operacin a otra, para utilizarlos o para seguirlos procesando y este proceso contina hasta que la informacin en forma til llega hasta el usuario final. Operaciones de entrada/salida 1. Operacin de entrada/salida: Una computadora puede aceptar datos de entrada como emitirlos, a partir de una gran variedad de dispositivos de entrada/salida. 2. Operaciones de clculo y manipulacin de texto: Los circuitos de las computadoras efectan clculos con los nmeros y son igualmente capaces de manipular caracteres no numricos y los dems smbolos que se utilizan en palabras y enunciado. 3. Operaciones de lgica/comparacin: La computadora tambin es capaz de efectuar operaciones lgicas. 4. Operaciones de almacenamiento y recuperacin de informacin. Tanto los datos como las instrucciones de programa se almacenan dentro de la computadora.
Sistemas de informacin

Pgina 176 de 183

Sistema de informacin Sistema-. Es un conjunto de partes entre s para alcanzar determinado objetivo. Sistema Empresarial-. Son los hombres y las maquinas que realizan las operaciones y los procedimientos que definen las operaciones. Definicin de Sistema de Informacin-. Se define como la forma de proporcionar informacin oportuna, pertinente y precisa, relativa a las operaciones internas y a la inteligencia externa a cualquier miembro de una organizacin como ayuda de la toma de decisiones o para el desempeo de la actividad de trabajo asignada. Computadoras digitales y sistemas digitales. La computadora digital de propsito general es el ejemplo mejor conocido de un sistema digital. Es caracterstico de un sistema digital la manipulacin de elementos discretos de informacin. Sistemas numricos En matemticas, varios sistemas de notacin que se han usado o se usan para representar cantidades abstractas denominadas nmeros. Un sistema numrico est definido por la base que utiliza. Nmeros binarios. Un nmero decimal como 7392 representa una cantidad igual a 7 millares, ms 3 centenas, ms 9 decenas, ms 2 unidades. Los millares, centenas, etc., son potencias de 10 implicadas por la posicin de los coeficientes. Para ser ms exactos, 7 392 debe escribirse como; 7 X 103 + 3 X 102 + 9 X 101 + 2 X 100. Algebra booleana El lgebra booleana fue originalmente propuesta por George Boole en 1854. Public su trabajo en An Investigation of the Law of Thought. Variable booleana: Una variable booleana solamente puede tomar un valor de verdadero (1) o de falso (0). Operaciones: Las principales operaciones que pueden efectuarse sobre variables booleanas son el AND (AB), OR (A+B) y NOT ('A). Todas las dems operaciones pueden expresarse en trminos de estas tres. Jerarqua de operaciones: Las operaciones booleanas tambin manejan prioridades: NOT, AND, OR. As, si tiene A + BC', esta expresin se resuelve (A + (B . ('C))). Los parntesis se utilizan para forzar otras prioridades. Factorizacin: Las expresiones lgicas pueden factorizarse de una manera equivalente a las del lgebra tradicional. Por ejemplo, AB+AC = A(B+C). Sin embargo, debe siempre recordarse que estamos manejando variables cuyos valores pueden ser nicamente 1 0. Tablas de verdad: Una tabla de verdad es una tabla que maneja todos los posibles valores para las variables involucradas en una expresin. Entonces, se maneja una tabla de verdad por expresin. Para ello, se escriben como encabezado todos los nombres de las variables. En la parte inferior de la tabla, se
Sistemas de informacin

numeran en base 2 todos los posibles valores de dichas variables, comenzando con 0 y terminando con 2n1 , donde n es el nmero total de variables involucradas. Lgica matemtica

Pgina 177 de 183

La lgica matemtica es la disciplina que trata de mtodos de razonamiento. En un nivel elemental, la lgica proporciona reglas y tcnicas para determinar si es o no valido un argumento dado. El razonamiento lgico se emplea en matemticas para demostrar teoremas; en ciencias de la computacin para verificar si son o no correctos los programas; en las ciencias fsica y naturales, para sacar conclusiones de experimentos; y en las ciencias sociales y en la vida cotidiana, para resolver una multitud de problemas. Ciertamente se usa en forma constante el razonamiento lgico para realizar cualquier actividad. Proposiciones y operaciones lgicas. Una proposicin o enunciado es una oracin que puede ser falsa o verdadera pero no ambas a la vez. La proposicin es un elemento fundamental de la lgica matemtica. A continuacin se tienen algunos ejemplos de proposiciones vlidas y no vlidas, y se explica el porqu algunos enunciados no son proposiciones. Las proposiciones se indican por medio de una letra minscula, dos puntos y la proposicin propiamente dicha. Ejemplo. p: q: r: s: t: w: La tierra es plana. -17 + 38 = 21 x > y-9 El Morelia ser campen en la presente temporada de Fut-Bol. Hola cmo ests? Lava el coche por favor.

Los incisos p y q sabemos que pueden tomar un valor de falso o verdadero; por lo tanto son proposiciones vlidas. El inciso r tambin es una proposicin valida, aunque el valor de falso o verdadero depende del valor asignado a las variables x y y en determinado momento. La proposicin del inciso s tambin est perfectamente expresada aunque para decir si es falsa o verdadera se tendra que esperar a que terminara la temporada de futbol. Conectivos lgicos y proposiciones compuestas. Existen conectores u operadores lgicas que permiten formar proposiciones compuestas (formadas por varias proposiciones). Los operadores o conectores bsicos son: Leyes y postulado del algebra booleana 1.- Postulado 2: (a) X+0 = X (b) X.X = 0 2.- Postulado 5: (a) X+X = 1 (b) X.X = 0 3.- Teorema 1: (a) X+ X = X (b) X.X =X

Sistemas de informacin

4.- Teorema 2: (a) X+1 = 1 (b) X.X = X 5.- Teorema 3: (a) (X) = X

Pgina 178 de 183

6.- Postulado 3: (a) X+Y = Y+X (b) X.Y = YX 7.- Teorema 4 (Asociativa): (a) X+(Y+Z) = (X+Y)+Z (b) X(YZ)=(XY)Z 8.- Postulado 4 (distributiva) (a) X(Y+Z) = XY+XZ (b) X+YZ = (X+Y)(X+Z) 9.- Teorema 5 (Ley de Morgan) (a) (X+Y) = XY (b) (X.Y) = X+Y 10.- Teorema 6 (Absorcin) (a) X+XY = X (b)X(X+Y) = X Los circuitos lgicos Los circuitos de conmutacin y temporizacin, o circuitos lgicos, forman la base de cualquier dispositivo en el que se tengan que seleccionar o combinar seales de manera controlada. Entre los campos de aplicacin de estos tipos de circuitos pueden mencionarse la conmutacin telefnica, las transmisiones por satlite y el funcionamiento de las computadoras digitales. Compuertas lgicas

Smbolo Lgico

Descripcin. Ecuacin Lgica Y = /A (se lee Y = not A) A es la variable de entrada y Y es la salida. Si A = 1 lgico entonces Y = 0 lgico, por otro lado si A = 0 lgico entonces Y = 1 lgico. Por este comportamiento esta compuerta tambin es llamada inversora. Ecuacin Lgica Y = A + B (se lee Y = A OR B) Las variables de entrada son A y B la salida es Y. La ecuacin lgica indica que A es igual a 1 lgico si A es igual a 1 lgico o B es igual a 1 lgico o tanto A como B son iguales a 1 lgico. Visto de otra forma Y es igual a cero lgico si y solo si tanto A como B son iguales a cero lgico Ecuacin Lgica Y = A * B (se lee Y = A AND B) Las variables de entrada son A y B la salida es Y. La ecuacin lgica indica que A es igual a 1 lgico si y solo si A es igual a 1 lgico y (and) B es igual a 1 lgico. Visto de otra forma si tanto A o B o ambas son iguales a cero lgico entonces Y es igual a cero lgico

Compuertas Lgicas Combinadas Pgina 179 de 183

Ecuacin Lgica Y = /(A + B) Esta compuerta surge de la conexin de una compuerta OR y una NOT en cascada Las variables de entrada son A y B la salida es Y. La ecuacin lgica indica que Y es igual a 0 lgico si A es igual a 1 lgico o B es igual a 1 lgico o ambas tanto A como B son 1 lgico. Visto de otra forma Y es igual a 1 lgico si y solo si A es igual a 0 lgico y B es igual a 0 lgico. Note que esta compuerta es lo contrario a la OR.

Ecuacin Lgica Y = /(A * B) Esta compuerta surge de la conexin de una compuerta AND y una NOT en cascada. Las variables de entrada son A y B la salida es Y. La ecuacin lgica indica que A es igual a 0 lgico si A es igual a 1 lgico y B es igual a 1 lgico. Visto de otra forma si tanto A o B o ambas son iguales a cero lgico entonces Y es igual a uno lgico. Note que esta compuerta es lo contrario a la AND.

Ecuacin Lgica Y = A (+) B (se lee Y = A XOR B) Las variables de entrada son A y B la salida es Y. La salida Y es 1 lgico si y solo si A es diferente de B, si A y B son ambas 0 lgico o ambas son 1 lgico entonces Y es 0 lgico Ecuacin Lgica Y = /(A (+) B Las variables de entrada son A y B la salida es Y. La salida Y es uno lgico si y solo si A y B son ambas iguales ya sea que ambas sean 0 lgico o ambas sean 1 lgico. Si A y B son diferentes entre s entonces Y es 0 lgico.

Pgina 180 de 183

Sistemas de informacin

Software de Diagnstico Notas Tcnicas Virus Un virus en simplemente un programa. Una secuencia de instrucciones y rutinas creadas con el nico objetivo de alterar el correcto funcionamiento del sistema y, en la inmensa mayora de los casos, corromper o destruir parte o la totalidad de los datos almacenados en el disco. De todas formas, dentro del trmino "virus informtico" se suelen englobar varios tipos de programas, por lo que a continuacin se da un pequeo repaso a cada uno de ellos poniendo de manifiesto sus diferencias. La clasificacin es la siguiente: Virus 'Puro' Caballo de Troya Bomba Lgica Gusano o Worm

Todos estos programas tienen en comn la creacin de efectos perniciosos; sin embargo, no todos pueden ser considerados como virus propiamente dichos. Virus Puro Un verdadero virus tiene como caractersticas ms importantes la capacidad de copiarse a s mismo en soportes diferentes al que se encontraba originalmente, y por supuesto hacerlo con el mayor sigilo posible y de forma transparente al usuario; a este proceso de autorrplica se le conoce como "infeccin", de ah que en todo este tema se utilice la terminologa propia de la medicina: "vacuna", "tiempo de incubacin", etc. Como soporte entendemos el lugar donde el virus se oculta, ya sea fichero, sector de arranque, particin, etc. Un virus puro tambin debe modificar el cdigo original del programa o soporte objeto de la infeccin, para poder activarse durante la ejecucin de dicho cdigo; al mismo tiempo, una vez activado, el virus suele quedar residente en memoria para poder infectar as de forma trasparente al usuario. Caballo de Troya Al contrario que el virus puro, un Caballo de Troya es un programa maligno que se oculta en otro programa legtimo, y que produce sus efectos perniciosos al ejecutarse este ltimo. En este caso, no es capaz de infectar otros archivos o soportes, y slo se ejecuta una vez, aunque es suficiente, en la mayora de las ocasiones, para causar su efecto destructivo. Bomba Lgica Se trata simplemente de un programa maligno que permanece oculto en memoria y que solo se activa cuando se produce una accin concreta, predeterminada por su creador: cuando se llega a una fecha en concreto ( Viernes 13 ), cuando se ejecuta cierto programa o cierta combinacin de teclas, etc. Gusano o Worm Por ltimo, un gusano en un programa cuya nica finalidad es la de ir consumiendo la memoria del sistema, mediante la realizacin de copias sucesivas de s mismo, hasta desbordar la RAM, siendo sta su nica accin maligna.

Sistemas de informacin

Pgina 181 de 183

La barrera entre virus puros y el resto de programas malignos es muy difusa, prcticamente invisible, puesto que ya casi todos los virus incorporan caractersticas propias de uno o de varios de estos programas: por ejemplo, los virus como el Viernes 13 son capaces de infectar otros archivos, siendo as virus puro, pero tambin realizan su efecto destructivo cuando se da una condicin concreta, la fecha Viernes 13, caracterstica propia de una bomba lgica; por ltimo, se oculta en programas ejecutables teniendo as una cualidad de Caballo de Troya. De ah la gran confusin existente a este respecto. Formas de Infeccin Antes de nada, hay que recordar que un virus no puede ejecutarse por s solo, necesita un programa portador para poder cargarse en memoria e infectar; asimismo, para poder unirse a un programa portador necesita modificar la estructura de este, para que durante su ejecucin pueda realizar una llamada al cdigo del virus. Efectos Destructivos De Los Virus Los efectos perniciosos que causan los virus son variados; entre stos se encuentran el formateo completo del disco duro, eliminacin de la tabla de particin, eliminacin de archivos, ralentizacin del sistema hasta lmites exagerados, enlaces de archivos destruidos, archivos de datos y de programas corruptos, mensajes o efectos extraos en la pantalla, emisin de msica o sonidos. Formas de Ocultamiento Un virus puede considerarse efectivo si, adems de extenderse lo ms ampliamente posible, es capaz de permanecer oculto al usuario el mayor tiempo posible; para ello se han desarrollado varias tcnicas de ocultamiento o sigilo. Para que estas tcnicas sean efectivas, el virus debe estar residente en memoria, puesto que debe monitorizar el funcionamiento del sistema operativo. La base principal del funcionamiento de los virus y de las tcnicas de ocultamiento, adems de la condicin de programas residentes, la intercepcin de interrupciones. El DOS y los programas de aplicacin se comunican entre s mediante el servicio de interrupciones, que son como subrutinas del sistema operativo que proporcionan una gran variedad de funciones a los programas. Las interrupciones se utilizan, por ejemplo, para leer o escribir sectores en el disco, abrir ficheros, fijar la hora del sistema, etc. Y es aqu donde el virus entra en accin, ya que puede sustituir alguna interrupcin del DOS por una suya propia y as, cuando un programa solicite un servicio de esa interrupcin, recibir el resultado que el virus determine. Entre las tcnicas ms usuales cabe destacar el ocultamiento o stealth, que esconde los posibles signos de infeccin del sistema. Los sntomas ms claros del ataque de un virus los encontramos en el cambio de tamao de los ficheros, de la fecha en que se crearon y de sus atributos, y en la disminucin de la memoria disponible. Prevencin, Deteccin Y Eliminacin Una buena poltica de prevencin y deteccin nos puede ahorrar sustos y desgracias. Las medidas de prevencin pasan por el control, en todo momento, del software ya introducido o que se va a introducir en nuestro ordenador, comprobando la fiabilidad de su fuente. Esto implica la actitud de no aceptar software no original, ya que el pirateo es una de las principales fuentes de contagio de un virus, siendo tambin una prctica ilegal y que hace mucho dao a la industria del software. Software Antivirus Para combatir la avalancha de virus informticos se cre el software antivirus. Estos programas suelen incorporar mecanismos para prevenir, detectar y eliminar virus. Para la prevencin se suelen usar programas residentes que alertan al usuario en todo momento de cualquier acceso no autorizado o sospechoso a memoria o a disco, por lo que resultan sumamente tiles al impedir la entrada del virus y hacerlo
Sistemas de informacin

en el momento en que este intenta la infeccin, facilitndonos enormemente la localizacin del programa maligno. Sin embargo presentan ciertas desventajas, ya que al ser residentes consumen memoria RAM, y pueden tambin resultar incompatibles con algunas aplicaciones. Por otro lado, pueden

Pgina 182 de 183

llegar a resultar bastante molestos, puesto que por lo general suelen interrumpir nuestro trabajo habitual con el ordenador avisndonos de intentos de acceso a memoria o a disco que en muchos casos provienen de programas legtimos. A pesar de todo, son una medida de proteccin excelente y a ningn usuario debera faltarle un programa de este tipo.

Que se debe buscar en un Antivirus?


A la hora de decidirnos por un antivirus, no debemos dejarnos seducir por la propaganda con mensajes como "detecta y elimina 56.432 virus". Realmente existen miles de virus, pero en muchsimos casos son mutaciones y familias de otros virus; esto est bien, pero hay que tener en cuenta que una inmensa mayora de virus no han llegado ni llegaran a nuestro pas. Por lo que de poco nos sirve un antivirus que detecte y elimine virus muy extendidos en Amrica y que desconozca los ms difundidos en Espaa. Por tanto, estaremos mejor protegidos por un software que, de alguna forma, est ms "especializado" en virus que puedan detectarse en nuestro pas. Por ejemplo "Flip", "Anti Tel", "Barrotes", "Corua", etc. Por otro lado, hemos de buscar un software que se actualice el mayor nmero posible de veces al ao; puesto que aparecen nuevos virus y mutaciones de otros ya conocidos con mucha frecuencia, el estar al da es absolutamente vital. Cmo Reaccionar Ante Una Infeccin En el disco de sistema limpio (que crearemos con la orden format a: /s) incluiremos utilidades como mem.exe, chkdsk.exe, sys.com, fdisk.exe y todos los controladores para que el teclado funcione correctamente. Si disponemos de dos o ms antivirus es muy recomendable pasarlos todos para tener mayor seguridad a la hora de inmunizar el PC. Si la infeccin se ha producido en el sector de arranque podemos limpiar el virus con la orden sys c:, siempre y cuando hayamos arrancado con el disquete antes mencionado. Para recuperar la tabla de particiones podemos ejecutar fdisk /mbr.

Pgina 183 de 183

También podría gustarte