183
INDICE PÁGINA 1.- HARDWARE Y HERRAMIENTAS DE APLICACIÓN--------------- 2 A).- Informática aplicada……………………………………………………………… 2 B)- Mantenimiento preventivo………………………………………………………... 5 2.- PROGRAMACIÓN------------------------------------------------------------ 8 A).- Lógica de programación…………………………………………………………. 8 B).- Programación de computadoras………………………………………………... 12 C).- Desarrollo de sitios web………………………………………………………….. 20 D).- Bases de datos…………………………………………………………………… 38 3.- REDES--------------------------------------------------------------------------- 44 A).- Comunicación de datos…………………………………………………………. 44 B).- Redes de cómputo………………………………………………………………. 53 4.- ANALISIS Y DISEÑO DE SISTEMAS DE INFORMACION ------ 65 A).- Representación de sistemas con UML, uso y ciclo iterativo e incremental.. 65 B).- Modelado CASE, reingeniería de software e ingeniería de reversa……….. 75 C).- Calidad en el desarrollo de software…………………………………………… 80 5.-SISTEMAS OPERATIVOS-------------------------------------------------- 86 A).- Generalidades de sistemas operativos multiusuarios……………………….. 86 B).- Línea de comando………………………………………………………………. 89 6.- PROGRAMACION----------------------------------------------------------- 97 A).- Programación orientada a objetos……………………………………………. 97 B).- Programación avanzada………………………………………………………. 99 C).- Programación para la web……………………………………………………. 112 D).- Programación visual…………………………………………………………… 121 E).- Estructura de datos……………………………………………………………. 132 7.-BASES DE DATOS---------------------------------------------------------- 145 A).- Aplicación…………………………………………………………………………145 B).- Seguridad y optimización………………………………………………………. 156 8.- ADMINISTRACION DE LA FUNCION INFORMATICA----------- 160 A).- Administración………………………………………………………………….. 160 B).- Auditoría…………………………………………………………………………. 162 9.- INFORMATICA--------------------------------------------------------------- 165 A).- Paquetería básica……………………………………………………………… 165 B).- Bases de hardware…………………………………………………………….. 169 C).- Sistemas de información………………………………………………………. 176 Página 1 de 183

Guia Para Egetsu

  • Upload
    lesly

  • View
    128

  • Download
    10

Embed Size (px)

Citation preview

Page 1: Guia Para Egetsu

INDICE PÁGINA1.- HARDWARE Y HERRAMIENTAS DE APLICACIÓN--------------- 2

A).- Informática aplicada……………………………………………………………… 2B)- Mantenimiento preventivo………………………………………………………... 5

2.- PROGRAMACIÓN------------------------------------------------------------ 8A).- Lógica de programación…………………………………………………………. 8B).- Programación de computadoras………………………………………………... 12C).- Desarrollo de sitios web………………………………………………………….. 20D).- Bases de datos…………………………………………………………………… 38

3.- REDES--------------------------------------------------------------------------- 44A).- Comunicación de datos…………………………………………………………. 44B).- Redes de cómputo………………………………………………………………. 53

4.- ANALISIS Y DISEÑO DE SISTEMAS DE INFORMACION ------ 65A).- Representación de sistemas con UML, uso y ciclo iterativo e incremental.. 65B).- Modelado CASE, reingeniería de software e ingeniería de reversa……….. 75C).- Calidad en el desarrollo de software…………………………………………… 80

5.-SISTEMAS OPERATIVOS-------------------------------------------------- 86A).- Generalidades de sistemas operativos multiusuarios……………………….. 86B).- Línea de comando………………………………………………………………. 89

6.- PROGRAMACION----------------------------------------------------------- 97A).- Programación orientada a objetos……………………………………………. 97B).- Programación avanzada………………………………………………………. 99C).- Programación para la web……………………………………………………. 112D).- Programación visual…………………………………………………………… 121E).- Estructura de datos……………………………………………………………. 132

7.-BASES DE DATOS---------------------------------------------------------- 145A).- Aplicación…………………………………………………………………………145B).- Seguridad y optimización………………………………………………………. 156

8.- ADMINISTRACION DE LA FUNCION INFORMATICA----------- 160A).- Administración………………………………………………………………….. 160B).- Auditoría…………………………………………………………………………. 162

9.- INFORMATICA--------------------------------------------------------------- 165A).- Paquetería básica……………………………………………………………… 165B).- Bases de hardware…………………………………………………………….. 169C).- Sistemas de información………………………………………………………. 176

Página 1 de 183

Page 2: Guia Para Egetsu

Informática aplicada

I.- HARDWARE Y HERRAMIENTAS DE APLICACION

Sistema informático:− Hardware: Componentes físicos de un aparato eléctrico o electrónico, de un dispositivo como una

computadora.− Software: Conjunto de programas, procedimientos y documentación asociada con un sistema

especialmente una computadora.− Computadora: Principal herramienta que usa la informática para su cometido. Se define como

máquina que utiliza la electrónica digital, para el tratamiento automático de la información.Almacén de la información codificada, datos y programa, antes, durante y después de la ejecución.

UNIDADES DE MEMORIADefinición de Memoria: Almacén de la información codificada, datos y programa, antes, durante y

después de la ejecución.

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 informaciónbyte 8 bitsword 2 bytes = 16 bitsdword 4 bytes = 32 bitsKb = 1024 bytesMb = 1024 KbGb = 1024 MbTb = 1024 Gb

Tamaño de palabra de un procesador

Define la cantidad máxima de información 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)

Definición de datos, información, instrucciones y programas

• Instrucción: Es un conjunto de símbolos que representan una orden de operación 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.

Página 2 de 183

Page 3: Guia Para Egetsu

Informática aplicada

• Programas: Conjunto ordenado de instrucciones que se dan a la computadora indicándole las operaciones o

• tareas que debe realizar, se ejecutan secuencialmente. Las instrucciones se forman con elementos o símbolos

• 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 símbolos

• utilizados para representar o expresar un hecho, una idea, un número,...en la forma adecuada para ser objeto de

• tratamiento.

• Información: Conjunto de datos e instrucciones necesarias para que el ordenador ejecute una tarea.

Hardware típico de una computadora• Chasis o gabinete• La placa madre, que contiene: CPU, cooler, RAM, BIOS, buses (PCI, USB, HyperTransport, CSI, AGP, etc.) • Fuente de alimentación• Controladores de almacenamiento: IDE, SATA, SCSI• Controlador de video• Controladores del bus de la computadora (paralelo, serial, USB, FireWire), para conectarla a periféricos• Almacenamiento: disco duro, CD-ROM, disquetera, ZIP driver y otros• Tarjeta de sonido• Redes: módem y tarjeta de red

El hardware también puede incluir componentes externos como:• Teclado• Mouse, trackballs• Joystick, gamepad, volante• Escáner, webcam• Micrófono, parlante• Monitor (LCD, o CRT)• Impresora

Distintas clasificaciones del hardware

Clasificación por la funcionalidad del hardware* Hardware básico: dispositivos necesarios para iniciar la computadora. Los más básicos son la placa madre, la fuente de alimentación, el

Informática aplicada

Página 3 de 183

Page 4: Guia Para Egetsu

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

Clasificación por la ubicación del hardware* Periféricos (componentes externos): dispositivos externos a la computadora. Ver periférico* Componentes internos: dispositivos que son internos al gabinete de la computadora* Puertos: conectan los periféricos con los componentes internos

Clasificación por el flujo de información del hardware* Periféricos de salida: monitor, impresora, etc.* Periféricos de entrada: teclado, mouse, etc.* Periféricos/dispositivos de almacenamiento: disco duro, memorias, etc.* Periféricos de comunicación: módem, puertos, etc.* Dispositivos de procesamiento: CPU, microprocesador, placa madre, etc.

Herramientas de HardwareUna herramienta de Hardware es una herramienta física como un destornillador o martillo, no

necesitan mucho entrenamiento o conocimiento técnico para usarla, su uso se basa principalmente en la experiencia empírica, principalmente se necesita fuerza motriz para usarla y se daña (desgasta) con el uso.

Entre las herramientas de Hardware más usuales podemos citar:Un juego de destornilladores.Una llave tubo de 5 mm (el único formato actualmente necesario).Un pequeño soldador.Una malla antiestática. Pinzas diversas (planas, cortantes, para pelar cables, etc.).Una herramienta para extracción de circuitos integrados. Una linterna. Una lupa. Un pequeño calibre.

Un téster.

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 número de fallas que presentan los equipos es por la acumulación de

Página 4 de 183

Page 5: Guia Para Egetsu

polvo en los componentes internos, ya que éste actúa como aislante térmico. El calor generado por los componentes no puede dispersarse adecuadamente porque es atrapado en la capa de polvo. Las partículas 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 demás 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 periféricos.

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 daños 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 función requerida. Estas acciones incluyen la combinación de las acciones técnicas y administrativascorrespondientes. Es el cuidado que se le otorgue a la computadora para prevenir posibles fallas.

¿Su función?El objetivo principal de cualquier programa de mantenimiento es proteger a un sistema de futuros

problemas. Existen cuatro tipos reconocidos de mantenimiento, los cuales están en función del momento en el tiempo en que se realizan, el objetivo particular para el cual son puestos en marcha, y en función a los recursos utilizados:

Mantenimiento Correctivo : También denominado mantenimiento reactivo, tiene lugar luego que ocurre una falla o avería,

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 corrección 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 verán

parados a la espera de la corrección de la etapa anterior.– Presenta costos por reparación y repuestos no presupuestados, por lo que se dará el caso

que por falta de recursos económicos no se podrán comprar los repuestos en el momento.– La planificación del tiempo que estará el sistema fuera de operación no es predecible.Mantenimiento Preventivo : También denominados “Planificado”, tiene lugar antes que ocurra una falla, se efectúa bajo

condiciones controladas sin la existencia de algún error en el sistema. Se realiza a razón 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 también puede estipular el momento adecuado a través de los manuales técnicos. Presenta las siguientes características:

– 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 condición técnica real de la máquina examinada,

mientras esta se encuentre en pleno funcionamiento, para ello se hace uso de un programa sistemático de mediciones de los parámetros más importantes del equipo. El sustento tecnológico de este mantenimiento consiste en la aplicación de algoritmos matemáticos agregados a las operaciones de diagnóstico, que juntos pueden brindar información referente a las condiciones del equipo. Tiene

Página 5 de 183

Page 6: Guia Para Egetsu

como objetivo disminuir las paradas por mantenimientos preventivos y de esta manera minimizar los costos por mantenimiento y por no producción. La implementación de éste tipo de métodos requiere de inversión en equipos, en instrumentos, y en contratación de personal calificado. Técnicas utilizadas para le estimación del mantenimiento predictivo:

– Analizadores de Fourier (Para análisis de vibraciones).– Endoscopia (Para poder ver lugares ocultos).– Ensayos no destructivos (a través de líquidos penetrantes, ultrasonido, radiografías,

partículas magnéticas, entre otros).– Termovisión (Detección de condiciones a través del calor desplegado).– Medición de parámetros de operación (Viscosidad, voltaje, corriente, potencia, presión,

temperatura, etc.).

Herramientas RequeridasPara 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 presión.

a) Cepillos de cerdas duras.b) Brochas, de preferencia antiestáticas.c) Trapos, de preferencia que no suelten pelusa.d) Isopos de algodón.e) Limpiador de aplicación en espuma.f) Limpiador de componentes electrónicos dieléctrico.g) Aire comprimido.h) Aspiradora.i) Cautínj) Multímetro digitalk) Soldadura

Página 6 de 183

Page 7: Guia Para Egetsu

Mantenimiento Preventivo

l) Pulsera antiestáticam) 1 bote de rollo fotográfico para guardar los tornillos o algo similarn) Alfileres o clipso) Bolsas antiestáticasp) Juego Desarmadores (planos, Phillips y tohr)q) Liquido desengrasante

7 consejos básicos 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 demás componentes periféricos. Para esta limpieza puede usarse algún aparato soplador o una pequeña aspiradora especial acompañada de un pincel pequeño. Poner especial énfasis en las cercanías al Microprocesador y a la Fuente.

2.- Revisar los conectores internos del PC: Asegurándonos que estén firmes y no flojos. Revisar además que las tarjetas de expansión y los

módulos de memoria estén 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 energía que podría 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 paño seco que no deje residuos ni pelusas.

4.- Atender al mouse:Debajo del mouse o ratón hay una tapa que puede abrirse simplemente girándola en el sentido

indicado en la misma tapa. Limpiar la bolita que se encuentre dentro con un paño que no deje pelusas así como los ejes y evitar que haya algún tipo de partículas adheridas a ellos.

5.- La disquetera: Existen unos diskettes especiales diseñados 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 láser no se recomienda abrirlos si no se está capacitado para

hacerlo. Existen unos discos especialmente diseñados para limpiar los lentes de este tipo de unidades.

7.-La superficie exterior del PC y sus periféricos:Es recomendable para esta tarea una tela humedecida en jabón líquido o una sustancia especial que

no contengan disolventes o alcohol por su acción abrasiva, luego de ello usar nuevamente un paño seco que no deje pelusas.

Página 7 de 183

Page 8: Guia Para Egetsu

Lógica de Programación

3.- PROGRAMACIONLenguaje de Programación: Es un conjunto de símbolos, caracteres y reglas que le permiten a las personas comunicarse con la computadora. Los lenguajes de programación tienen un conjunto de instrucciones que nos permiten realizar operaciones de entrada / salida, cálculo, manipulación de textos, comparaciones, almacenamiento y recuperación de información.

Definición de Algoritmo: Un algoritmo es una serie de pasos organizados que describe el proceso que se debe seguir, para dar solución a un problema específico. Existen dos tipos de algoritmos:

• Gráficos: Es la representación gráfica de las operaciones que realiza un algoritmo (diagrama de flujo).• No Gráficos: Representa en forma descriptiva las operaciones que debe realizar un algoritmo (pseudo

código).

Dato: Un dato puede ser un simple carácter 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:

NuméricosSimples Lógicos

Alfanuméricos (string)Tipos de datos Arreglos (Vectores, Matrices)

Estructurados Registros(Def. por el Archivosusuario) Apuntadores

Expresiones: Las expresiones son combinaciones de constantes, variables, símbolos de operación, paréntesis y nombres de funciones especiales. Por ejemplo: a + (b + 3)/c. Una expresión consta de operadores y operandos. Según sea el tipo de datos u operandos que manipulan, se clasifican en:

• Aritméticas• Relaciónales• Lógicas

OperadoresAritméticos Relaciónales Lógicos+ Suma- Resta* Multiplicación/ DivisiónMod Modulo

> Mayor que< Menor que> = Mayor o igual que< = Menor o igual que< > Diferente= Igual

And YOR ONot Negación

Prioridad de los Operadores Aritméticos1. ^ Exponenciación2. *, /, mod. Multiplicación, división, modulo.3. +, - Suma y resta

Página 8 de 183

Page 9: Guia Para Egetsu

Lógica de Programación

Tabla de valores lógicos:

AND OR NOT

T and T = T T and F = F F and T = F F and F = F

T or T = T T or F = T F or T = T F or F = F

not T = Fnot F = T

Identificadores: representan los datos de un programa (constantes, variables). Un identificador es una secuencia de caracteres que sirve para identificar una posición 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, mayúsculas o minúsculas) y no deben contener espacios en

blanco.• Letras, dígitos y caracteres como la subraya (_) son permitidos después del primer carácter.

Constante: Es un dato numérico o alfanumérico que no cambia durante la ejecución 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 ejecución del programa.

Estructuras Algorítmicas: Son formas de trabajo, que permiten, mediante la manipulación de variables, realizar ciertos procesos específicos que nos lleven a la solución de problemas. Estas estructuras se clasifican de acuerdo con su complejidad en:

- AsignaciónSecuenciales - Entrada

- Salida

- Simples Estructuras Condicionales - Múltiples

Algorítmicas- Hacer para

Cíclicas - Hacer mientras- Repetir hasta

Estructuras Secuenciales: son aquellas en la que una acción (instrucción) 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 . Acción NFin

Página 9 de 183

Page 10: Guia Para Egetsu

Lógica de Programación

Asignación: La asignación 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 asignación 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 número 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 operación matemática 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 operación se representa en un pseudo código como sigue:

Leer a, b (Donde “a” y “b” son las variables que recibirán 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 código 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 comparación, se siga un curso de acción dentro del programa. Las comparaciones se pueden hacer contra otra variable o contra una constante. Existen dos tipos básicos, las simples y las dobles.

• Simples: Las estructuras condicionales simples se les conoce como “Tomas de decisión”. Estas tomas de decisión tienen la siguiente forma:

Si <condición> entoncesAcción(es)

Fin-si

• Dobles: Las estructuras condicionales dobles permiten elegir entre dos opciones o alternativas posibles en función del cumplimiento o no de una determinada condición. Se representa de la siguiente forma:

Si <condición> entoncesAcción(es)

si noAcción(es)

Fin-si

Estructuras Cíclicas: Se llaman problemas repetitivos o cíclicos a aquellos en cuya solución es necesario utilizar un mismo conjunto de acciones que se puedan ejecutar una

Lógica de Programación

Página 10 de 183

Page 11: Guia Para Egetsu

cantidad específica de veces. Esta cantidad puede ser fija (previamente determinada por el programador) o puede ser variable (estar en función de algún dato dentro del programa).Los ciclos se clasifican en:

• Ciclos con un Número Determinado de Iteraciones (Hacer-Para o FOR) Son aquellos en que el número de iteraciones se conoce antes de ejecutarse el ciclo.

• Ciclos con un Número Indeterminado de Iteraciones (Hacer-Mientras, Repetir-Hasta o WHILE) Son aquellos en que el número de iteraciones no se conoce con exactitud, ya que está dado en función 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 instrucción se vale de una condición que es la que debe cumplirse para que se siga ejecutando. Cuando la condición ya no se cumple, entonces ya no se ejecuta el proceso.

Página 11 de 183

Page 12: Guia Para Egetsu

Programación de Computadoras

Los conceptos básicos del paradigma OO son clase y objeto. Los objetos son simplemente entidades que tienen sentido en el contexto de una aplicación. Todos los objetos son instancias de alguna clase, los términos 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 características 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 (métodos). A los atributos también se les llama: campos, propiedades, variables o atributos; mientras que a los métodos también se les llama rutinas o funciones.El esquema general para la representación de una clase es la siguiente:

Nombre de la clase

Estado Responsabilidades Comportamiento

Atributos

Métodos

C#C# es un lenguaje de programación orientado a objetos desarrollado y estandarizado por Microsoft como parte de su plataforma .NET. Su sintaxis básica deriva de C/C++ la cual es similar a la de Java.Tipos de datos más 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 carácter 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.

Programación de Computadoras

Página 12 de 183

Page 13: Guia Para Egetsu

El código en C# es una secuencia de símbolos que determinan el conjunto de instrucciones. Dos aspectos determinan si una secuencia de símbolos es correcta en C#: la sintaxis y la semántica.

La sintaxis: son reglas que permiten determinar de qué manera los símbolos pueden combinarse para escribir código que por su forma sea correcto.

La semántica: permite determinar el significado de la secuencia de símbolos. También a través de las reglas semánticas pueden ser detectados errores de interpretación que no permiten que las acciones o instrucciones puedan ser ejecutadas.

Variables: Una variable es una abstracción 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 unAño;string nombre, apellido;

Operadores:La siguiente tabla muestra un resumen de los operadores más importantes.

Página 13 de 183

Page 14: Guia Para Egetsu

Programación 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 código fuente con el objetivo de facilitar su legibilidad a los programadores. Los comentarios no tienen significado alguno para la ejecución de una aplicación; esto es equivalente a decir que los comentarios son completamente ignorados por el compilador. Un comentario de una sola línea se determina por los caracteres //. Un comentario con un conjunto de líneas con /* al inicio, y se cierra el bloque con */.

Clases y objetosUna clase en C# es una secuencia de símbolos (o caracteres) de un alfabeto básicoSintaxis para la definición de clases

class <NombreClase>{<miembros>}

Los miembros se definen como los atributos y métodos. Los cuales estarán presentes en cada uno de los objetos o instancias de la clase.

Programación de Computadoras

Página 14 de 183

Page 15: Guia Para Egetsu

Atributos: Son datos comunes a todos los objetos de una determinada clase y su sintaxis de definición es (como la declaración 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

Métodos: Son un conjunto de instrucciones o acciones que se agrupan a través de un determinado nombre simbólico de tal manera que es posible ejecutarlas en cualquier momento sin tenerlas que volver a escribir. A estas instrucciones se les denomina cuerpo del método, y a su ejecución a través de su nombre se le denomina llamada al método. Los métodos pueden devolver algún valor cuando se ejecutan. En las instrucciones es posible acceder contotal libertad a los atributos de la clase a la cual pertenece el método. Su sintaxis es la siguiente:

<TipoDevuelto> <identificador del método> ([<Parámetros>]){<instrucciones>}

Ejemplo de la declaración de clase y método:

class Persona{ // atributos string nombre; int añoNacimiento; // método de consulta o acceso int Edad(int unAño) { // edad aproximada return unAño - añoNacimiento; } }Sobrecarga de métodos: Se denomina así a la posibilidad de disponer de varios métodos con el mismo nombre, pero con diferente lista de parámetros y es posible que cuando se les invoque el compilador podrá determinar a cual llamar a partir de los parámetros pasados en la llamada.Sin embargo, lo que no se permite es definir varios métodos que solamente se diferencien en su valor de retorno, puesto que la forma de invocar a los métodos a través de instancias de la clase es: <objeto>.<nombre del método>([<valores de los parámetros>])

Nota: C# permite la sobrecarga de operadores con la palabra clave operator

Página 15 de 183

Page 16: Guia Para Egetsu

Programación de Computadoras

Encapsulamiento: El mecanismo de encapsulamiento o principio de la ocultación de la información, le permite a los diseñadores de clases determinar qué miembros de estas pueden ser utilizados por otros programadores y cuáles no. A su vez este mecanismo nos permite ocultar todos los detalles relativos a la implementación interna y sólo dejar visibles aquellos que se puedan usar con seguridad y le facilita al creador la posterior modificación. Este mecanismo le permite a las clases proporcionar una interfaz con las responsabilidades que los clientes pueden acceder directamente. El encapsulamiento se consigue añadiendo modificadores de acceso en las definiciones de los métodos y atributos. Estos modificadores son palabras reservadas del lenguaje que indican desde qué código puede accederse a ellos. Los modificadores de C# son los siguientes:

• public: indica que la componente puede ser accedida desde cualquier código. Se representa con +.• private: sólo puede ser accedido desde el código de la clase a la que pertenece. Es lo considerado.

Se representa con -.• protected: permite el acceso desde el código de la clase a la que pertenece o de subclases suyas. Se

representa con #.

En caso de no especificarse algún modificador, se considera por defecto u omisión que los miembros de un tipo de dato son private.

La creación de un objeto o instancia de clase se realiza por medio de un método constructor.Constructores: Los constructores de una clase son métodos especiales que se definen como componentes de ésta, y que contienen código a ejecutar cada vez que se crea un objeto de ése tipo. Éste código suele utilizarse para la inicialización de los atributos del objeto a crear. La sintaxis básica de definición de constructores consiste en definirlos como cualquier otro método pero dándoles el mismo nombre que la clase a la que pertenecen y no se indicando el tipo de valor de retorno.Sintaxis:

<nombreTipo>([<parámetros>]){ <código>}

Nota: Un constructor tiene el mismo nombre que su clase y es sintácticamente similar a un método. Un constructor no regresa ningún valor. Los constructores también 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 según 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 también se utiliza para invocar el constructor predeterminado de los tipos de datos. Ejemplo:

Programación de Computadoras

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

Página 16 de 183

Page 17: Guia Para Egetsu

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 públicos, aunque en realidad son métodos 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 métodosSintaxis:[<modificadores>] <tipoPropiedad> <nombrePropiedad>{ get

{<códigoEscritura>

}set{

<códigoEscritura>}

}

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 ejecutaría el <códigoLectura> y en cada escritura de un valor en ella se ejecutaría <códigoEscritura>.

Estructura de control alternativa simpleLa instrucción if: se evalúa la expresión lógica <condición>, si el resultado de su evaluación es verdadero (true) se ejecuta el <bloque de instrucciones >. Tiene la siguiente sintaxis: if (<condición>)<bloque de instrucciones>;

La instrucción if-else: El <bloque de instrucciones 1> se ejecuta en caso de que se cumpla la <condición>, en otro caso se ejecuta entonces el <bloque de instrucciones 2>. La sintaxis es:if (<condición>)<bloque de instrucciones 1>;else<bloque de instrucciones 2>;

Estructura de control alternativa múltiple (switch case)La instrucción switch es muy simple: si al evaluarse <expresión> toma <valor 1> entonces se ejecuta <bloque de instrucciones 1>; si al evaluarse <expresión> toma <valor 2> entonces se ejecuta <bloque de instrucciones 2> y así sucesivamente hasta <valor n>. De no coincidir la evaluación con alguno de los valores predeterminados y si existe la opción default (ya que es opcional), entonces se ejecutará <bloque de instrucciones default>. La instrucción break es obligatoria excepto cuando exista una instrucción return

Página 17 de 183

Page 18: Guia Para Egetsu

Programación de Computadoras

en el respectivo bloque de instrucciones. break indica que después de ejecutar el bloque de instrucciones que lo precede se salta a la próxima instrucción después del switch. La sintaxis es la siguiente:switch (<expresión>){

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 más conocidos y usados; está controlado por un contador o variable de control. Tiene la siguiente sintaxis:for (<instrucciones 1>; <expresión>; <instrucciones 2>)<instrucciones>

La semántica 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 más de una instrucción en este momento, dichas instrucciones se deben separar por comas (“,”). <expresión>; es evaluada en cada ciclo y en dependencia del valor que devuelva, dependerá que el bucle continúe ejecutándose (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 cuestión. Por lo general puede contener alguna actualización para las variables de control. En caso de querer ejecutar en este momento más de una instrucción se deben separar por comas.

Estructura de control while: A veces no es posible saber de antemano el número de veces que se va a repetir la ejecución de una porción de código, mientras una condición sea cierta. Para definir este tipo de ciclos condicionales es posible utilizar la estructura de control while, cuya sintaxis es la siguiente:while <condición><instrucciones>

Se ejecuta el bloque (<instrucciones>) mientras la <condición> sea cierta, o dicho de otra manera, el bucle terminará cuando la <condición> sea falsa. En ésta estructura la <condición> se verifica siempre al principio del ciclo por lo que, si la primera vez que se evalúa <condición>, es falsa, el ciclo no llegará nunca a ejecutarse.

Estructura de control do-while: La estructura de control do-while es otra sentencia de iteración en la que la condición se evalúa por primera vez después de que las

Página 18 de 183

Page 19: Guia Para Egetsu

Programación 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 <condición>;

Estructura de control foreach: El ciclo foreach repite las instrucciones para cada elemento de un arreglo o colección. La finalidad de esta estructura es recorrer todos los elementos de un arreglo o colección, sin necesidad de índices ni valores mínimos o máximos. Sintácticamente, como se muestra a continuación, tras la palabra foreach y entre paréntesis 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 colección>)<instrucciones>

ArreglosUn 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 tamaño del arreglo es 2 y los datos del arreglo son 28 y -5double[] pesos; // Se declara un arreglo llamado pesos, no se ha definido el tamaño del arreglo. pesos=new double[5]; // crea y define que el tamaño del arreglo pesos es de 5.

Página 19 de 183

Page 20: Guia Para Egetsu

Desarrollo de sitios Web

Metodología de Desarrollo de Proyectos WebTodo proyecto, para completarse de manera exitosa, debe seguir una metodología probada y basada en la experiencia que guie el proceso de desarrollo hasta alcanzar los objetivos propuestos.

En ADWEBS implementamos una Metodología de Desarrollo Web para lograr los objetivos propuestos del proyecto a través de los siguientes pasos

Análisis: Ya sea de forma presencia, por teléfono o vía correo electrónico se levanta el requerimiento de las necesidades de su WebSite; definición de secciones de contenido, mapa de navegación, colores e imágenes deseadas y diseños de referencia Diseño: Los diseñadores proceden a crear 2 Layouts (Maquetas Visuales) de su sitio Web a tamaño 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 cómo quedarán estructurados sus contenidos y el funcionamiento de los mismos Desarrollo: con el diseño y los Wireframes los programadores crean el código 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 año de Hosting y nombre de dominio GRATIS, además de cuentas de correo electrónico ILIMITADAS. Publicación y Entrega: Una vez el sitio en su Hosting final, se le entregan al cliente todos los datos de acceso y capacitación necesaria para el uso del mismo E-Marketing: Se le incluyen palabras claves en los títulos 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 estadístico de uso del sitio Mantenimiento: Adiciones y modificaciones posteriores a la entrega, apoyo en la publicación 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 día a día para todas aquellas personas que ofrecen algún servicio o tienen un negocio o empresa, ya sea pública 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 día, los 7 días de la semana.• Ofrecer sus servicios y productos a un costo realmente bajo.• Ventas automáticas.

Página 20 de 183

Page 21: Guia Para Egetsu

• 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, serán el objeto de estudio del documento presente.Hoy en día 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 elección inicial definirá a nuestra publicación, razón por la cual hay que estar bien seguros y planificar lo máximo posible. El tipo de sitio que publiquemos cumplirá un objetivo principal el cual debemos tener claramente delineado antes de comenzar a hacer nada.

2.- ¿Cómo publicaremos? En este punto juegan los recursos materiales y los conocimientos de los cuales disponemos o podríamos disponer. Este presupuesto primario nos definirá qué tipo de publicación podemos gestar. Si no contamos con financiación suficiente para costear un hosting, un dominio, ni contamos con capacitación suficiente para editar nuestras páginas la mejor elección será utilizar un asistente de publicación de algún servicio de hosting gratuito o patrocinado.

Si por el contrario disponemos de financiación para costear dominio y hosting profesional y además los conocimientos necesarios para editar nuestras páginas e incluso para diseñarlas y/o programarlas podremos acceder a una publicación de tipo profesional.

3.- ¿Cuál será la demanda del sitio?Es necesario considerar el número 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 número de procesadores, el Sistema Gestor de Base de Datos (SGBD)y, en caso de que se publique en Internet, el ancho de banda de conexión a Internet (si se publica en una intranet, esto último no será necesario).

Una vez definido lo anterior, podemos pasar a los requerimientos técnicos y de publicación 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 comunicación de un sistema informático 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 añadir al propio sistema operativo del equipo o integrarse con él.

El software del sistema operativo de red se integra en un número 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).

Página 21 de 183

Page 22: Guia Para Egetsu

Un servidor web o servidor HTTP es un programa que procesa cualquier aplicación del lado del servidor realizando conexiones bidireccionales y/o unidireccionales y síncronas o asíncronas con el cliente generando o cediendo una respuesta en cualquier lenguaje o Aplicación del lado del cliente. El código recibido por el cliente suele ser compilado y ejecutado por un navegador web. Para la transmisión de todos estos datos suele utilizarse algún protocolo. Generalmente se utiliza el protocolo HTTP para estas comunicaciones, perteneciente a la capa de aplicación del modelo OSI. El término también se emplea para referirse al ordenador que ejecuta el programa.

Un servidor web opera mediante el protocolo HTTP, de la capa de aplicación del Modelo OSI. Al protocolo HTTP se le asigna habitualmente el puerto TCP 80. Las peticiones al servidor suelen realizarse mediante HTTP utilizando el método de petición GET en el que el recurso se solicita a través de la url al servidor web.GET /index.html HTTP/1.1 HOST: www.host.com

ApacheEs el servidor más 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 características como la compresión de datos, las conexiones seguras y la utilización de URLs amigables.Microsoft IISA pesar de haber superado los momentos en que era más conocido por sus vulnerabilidades que por sus características, IIS ha perdido mercado en los últimos años. Es el segundo servidor web más usado y cuenta con un buen número de módulos, pero también con el gran handicap de funcionar únicamente en Windows.Google Web ServerEl tercero más utilizado, conocido como GWS, es una gran incógnita. Google no publica apenas información sobre él y se rumorea que puede ser una versión adaptada de Apache. Obviamente, la gran cantidad de dominios que emplean este servidor no pertenecen todos a Google, sino que la mayoría son de compañías que emplean sus servicios como Blogger o App Engine.NginxEs un servidor web ligero que funciona en múltiples plataformas (entre las que se encuentran Windows Linux y Mac OS X). Es usado por algunos sitios importantes como WordPress.com o Hulu.LighttpdEs el otro gran servidor ligero, que permite usar menos cantidad de memoria y CPU. También es empleado por sitios con mucho tráfico 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 dirección IP fija (comúnmente, IP fija o IP estática), esta, no cambia con el tiempo. Los servidores de correo, DNS, FTP públicos y servidores de páginas web necesariamente deben contar con una dirección IP fija o estática, ya que de esta forma se permite su localización en la red.

A través de Internet, los ordenadores se conectan entre sí mediante sus respectivas direcciones IP. Sin embargo, a los seres humanos nos es más cómodo utilizar otra notación más fácil de recordar, como los nombres de dominio; la traducción entre unos y otros se resuelve mediante los servidores de nombres de dominio DNS.

En caso de publicar el sitio en una intranet, la conexión a internet no será necesaria, solamente la IP fija.

IV. Dominio de Internet (Internet).Página 22 de 183

Page 23: Guia Para Egetsu

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 página web de Masadelante. Un solo servidor web puede servir múltiples páginas web de múltiples dominios, pero un dominio sólo puede apuntar a un servidor.

El propósito 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 términos memorizables y fáciles de encontrar.Sin la ayuda del sistema de nombres de dominio, los usuarios de Internet tendrían que acceder a cada servicio web utilizando la dirección IP del nodo (por ejemplo, sería 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. También puede hacer referencia a aquellas computadoras (servidores) dedicadas a ejecutar esos programas, prestando el servicio.

Los sistemas de administración de base de datos (SGBD) generalmente proveen funcionalidades para servidores de base de datos, en cambio otros (como por ejemplo, MySQL) solamente proveen construcción y acceso a la base de datos. Para elegir nuestro SGBD es necesario tomar en cuenta el sistema operativo instalado en el servidor.

La utilización de páginas dinámicas 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 (artículos de una tienda virtual, proveedores o clientes de una empresa, películas en cartelera en el cine, etc.). Estos registros son catalogados en función de distintos parámetros que los caracterizan y que presentan una utilidad a la hora de clasificarlos.

METODOS DE CONEXIÓN A BASES DE DATOSI.- DE FORMA ABIERTAOpen Data Base Conectivity (ODBC)O lo que es lo mismo, conectividad abierta de bases de datosPero 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 tendríamos que ir cambiando este elemento, y nuestra aplicación siempre funcionaría sin importar lo que hay al otro lado, algo así como ir cambiando las boquillas de una manguera. A esas piezas intercambiables las llamaremos orígenes de datos de ODBC.Por un lado el ODBC provee de unas características siempre homogéneas, y por el otro permite distintos controladores que aseguran la conectividad de la aplicación con diferentes bases de datos. ODBC es un estándar de acceso a bases de datos que utilizan los sistemas Microsoft. A través 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

Página 23 de 183

Page 24: Guia Para Egetsu

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 conexión por ODBC para referirnos a ella desde las aplicaciones o programas que deban conectarse con la base de datos.JDBCJava Database Connectivity (JDBC) es una interfase de acceso a bases de datos estándar SQL que proporciona un acceso uniforme a una gran variedad de bases de datos relacionales. JDBC también proporciona una base común para la construcción 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 métodos nativos JNI (Java Native Interface).JDBC es el API para la ejecución de sentencias SQL. (Como punto de interés JDBC es una marca registrada y no un acrónimo, no obstante a menudo es conocido como “Java Database Connectivity”). Consiste en un conjunto de clases e interfases escritas en el lenguaje de programación Java. JDBC suministra un API estándar para los desarrolladores y hace posible escribir aplicaciones de base de datos usando un API puro Java.JDBC hace posibles tres cosas:

✔ Establece una conexión con la base de datos.✔ Envía 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 librería escrita en C viene activada por defecto desde PHP 5.1 por lo cual podrá utilizarse en la mayoría de los servidores que actualmente soportan PHP5.PDO es una extensión 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 extensión eficiente que fue desarrollada en C. ✔ Sus métodos son independientes del sistema gestor de bases de datos que uses,

permitiendo que una aplicación pueda migrar de un motor de base de datos a otro con sólo indicar el driver correspondiente al nuevo motor.

✔ Previene que en las consultas se inyecte SQL malicioso (SQL Injection) usando consultas parametrizadas.

✔ Está implementada con tecnología orientada a objetos. La conexión a una base de datos se realiza creando una instancia de la clase base PDO. Algunos métodos son: prepare, execute, exec, beginTransaction, bindParam, commit.La extensión 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 características específicas de la base de datos como funciones de extensión regulares.DRIVERS NATIVOS

Página 24 de 183

Page 25: Guia Para Egetsu

Sólo algunos manejadores de bases de datos los soportan. Una conexión nativa es una conexión 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 conexión 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 estándar.Teóricamente una conexión nativa se establece hacia tu base de datos utilizando la plataforma en que reside.

II.- USANDO LOS DRIVERS DEL PROVEEDOROLEDBOLEDB 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 específico de gestión (SQL Server, MySQL, Oracle o Access, por ejemplo).Es una tecnología desarrollada por Microsoft usada para tener acceso a diferentes fuentes de información, o bases de datos, de manera uniforme.SQLSERVERSQL Server Native Client (SQLNCLI10) es una tecnología de acceso a datos nueva en Microsoft SQL Server; es una interfaz de programación 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 vínculos dinámicos (DLL) nativa, a la vez que proporciona una funcionalidad nueva independiente de Microsoft Data Access Components (MDAC).ORACLEEl 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 versión 1+, Oracle Database 10g Express Edition (Oracle Database XE) y 11g versión 1+.

Hay dos versiones de Easysoft ODBC-Oracle Driver: una versión Oracle Call Interface (OCI) y una versión Wire Protocol (WP).El Easysoft ODBC-Oracle Driver (versión OCI) utiliza software cliente de Oracle para acceder a la base de datos Oracle. Éste es el único método de acceso a la base de datos Oracle para el que Oracle ofrece soporte. MySQLMySQL provee drivers estándar para JDBC, ODBC y .NET dando posibilidad a los desarrolladores de construir aplicaciones de bases de datos en el lenguaje de su elección. Adicionalmente, una librería C les permite incrustar MySQL directamente en sus aplicaciones.DRIVERS DESARROLLADOS POR MySQL

✔ ADO.NET Driver for MySQL (Connector/NET)Página 25 de 183

Page 26: Guia Para Egetsu

✔ 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 método de conexión a una base de datos debemos tomar en cuenta en primer lugar el lenguaje de programación usado para desarrollar la aplicación y en segundo el manejador de base de datos que emplearemos, por último también consideraremos el sistema operativo.JDBC solamente puede usarse con el lenguaje JAVA y ODBC sólo funciona para aplicaciones sobre plataforma Windows.

Cualquier base de datos que se pretenda utilizar debe tener su propio driver, el cuál será definido tomando en cuenta el método de conexión elegido previamente.

Por ejemplo, MySQL dispone de un Driver ODBC que se puede descargar desde su página web. Las bases de datos Access y SQL Server de Microsoft también tienen su driver ODBC y este ya se encuentra instalado en el Windows de fábrica.

BLOQUES DE CONTENCIONCajas

Etiqueta <div></div> Define una sección 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 después en el formateo y posicionamiento de elementos en HTML.

Ejemplo: en esta sección 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 más importantes de la implementación del HTML dinámico de Netscape Communicator es la creación de una etiqueta HTML nueva con el objetivo de contener toda la funcionalidad del posicionamiento CSS. Hay que indicar que esta solución es propietaria y que, además, desapareció con la aparición de la versión 6 de Netscape. Solo se usará, por tanto, si deseamos mantener la compatibilidad hacia atrás.

Esta etiqueta, LAYER, contradice los principios de los estándares 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:

Página 26 de 183

Page 27: Guia Para Egetsu

<LAYER TOP="20" LEFT="20" WIDTH="250" Z-INDEX="3"><img src="alvarez1.jpg"></LAYER>equivaldría 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 más que trasladar a HTML todos los atributos del estilo. Todos menos uno, position.

Posicionamiento absoluto y relativoLa etiqueta LAYER no tiene ningún parámetro 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 cuestión utilice un posicionamiento relativo.

Posición y tamañoLos parámetros para colocar la capa se llaman igual y se utilizan para lo mismo. Son LEFT, TOP, WIDTH y HEIGHT. Sólo podemos utilizar como unidades de tamaño los pixels, indicando directamente el número sin más aditivos.

Aparte de éstos, Netscape incluye los parámetros 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 parámetros page nos aseguramos de que se refieran a los márgenes del documento.

Cambio de aspectoAunque Netscape no admite OVERFLOW en sus etiquetas (más que nada porque el Communicator no soporta esta propiedad tampoco en CSS) si admite los recortes por medio del parámetro clip, al que deberemos asignar una lista de números equivalente a la propiedad del mismo nombre, cuando le asignábamos un rectángulo. De ese modo:

<ILAYER CLIP="100,0,2,4">

equivale a:

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

Admite también los parámetros 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.

CapasAparte de Z-INDEX, que se utiliza de un modo equivalente al usado en CSS, las etiquetas LAYER e ILAYER admiten otro método por medio de los parámetros ABOVE y BELOW. Si tenemos el siguiente código:

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

Veremos que la etiqueta nombrada como capa3 sería la que estuviera debajo de todas las demás, 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. También admite el valor INHERIT, que indica a una capa "hija" que herede el valor que tenga en esta propiedad su capa "padre".

OtrosAparte de los parámetros ya vistos, las capas de Netscape admiten un par de cosas más que conviene indicar. El parámetro SRC, por ejemplo, permite introducir en la capa el contenido de la página 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.

Página 27 de 183

Page 28: Guia Para Egetsu

Note sin embargo, que los navegadores que no soporten las etiquetas LAYER e ILAYER mostrarán el contenido que haya dentro de estas etiquetas, sólo que no tendrán en cuenta toda la información sobre el posicionamiento y mostrarán 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 página.

Sintaxis<NOLAYER> ... </NOLAYER>

Ejemplo<LAYER SRC=layerContent.html></LAYER><NOLAYER>Esta página te mostrará cosas interesantes si tienes un navegador que soporte la etiqueta LAYER.</NOLAYER>

Etiqueta <span>La etiqueta <span> permite agrupar varios elementos en línea seguidos dentro de un mismo bloque (por ejemplo, varias palabras seguidas en un párrafo), para después darles formato con la hoja de estilo.

Ejemplo:

Resultado:

Frames flotantes

Es posible situar en nuestras páginas web una especie de frames o marcos "flotantes", queriendo decir con esto que son como frames pero que podemos situarlos en la posición que queramos dentro de nuestra página, situando mediante coordenadas su vértice superior izquierdo. Estas ventanas son configurables, pudiendo definir además de su posición su tamaño y otra serie de propiedades.

El mayor inconveniente que encontramos con estas ventanas flotantes es que su implementación 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 compañías, 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 página que contiene al marco, es decir, entre <BODY> y </BODY>.

Los principales atributos de la etiqueta <IFRAME> son:

* NAME=" nombre " , análogo al atributo de <FRAME>, sirve para identificar unívocamente al marco flotante, con vistas a referenciar su contenido mediante un enlace por medio del parámetro TARGET.

Página 28 de 183

Page 29: Guia Para Egetsu

* WIDTH= " x " , donde x = nº píxeles. Con este atributo definimos la anchura que va a tener el marco flotante.

* HEIGHT= " x " , donde x = nº píxeles. 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.- (Sólo 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.- (Sólo para I.Explorer) <html> <head> </head> <body> <iframe src="a.html" frameborder="0" align="center" ></iframe> </html>

* VSPACE= " x " , donde x = nº píxeles. Nos sirve para posicionar el marco, y define la distancia entre el borde superior del marco y el límite superior de la ventana del navegador.

* HSPACE= " x " , donde x = nº píxeles. Nos sirve para posicionar el marco, y define la distancia entre el borde izquierdo del marco y el límite izquierdo de la ventana del navegador.

Ejemplo.- (Sólo para I.Explorer) <html> <head> </head> <body> <iframe src="a.html" hspace="100" vspace="20"></iframe> </html>

* MARGINHEIGHT= " x " , donde x = nº píxeles. Nos define el espacio en píxeles que va a haber entre el borde superior del marco y su contenido.

* MARGINWIDTH= " x " , donde x = nº píxeles. Nos define el espacio en píxeles que va a haber entre el borde izquierdo del marco y su contenido.

Ejemplo.- (Sólo 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 sólo cuando sea necesario por exceder el contenido al tamaño del mismo. Su valor por defecto es auto .

* SRC= " ruta página html " , que nos va a definir la página web que se va a cargar dentro del marco flotante. Podemos especificar bien la ruta completa de la página en el directorio de nuestro servidor web o bien una URL completa de Internet.

* STYLE= " parámetro-valor / parámetro-valor / … " , Este atributo es una aplicación directa de las Hojas de Estilo en Cascada (CSS), y nos permiten definir la posición y tamaño del marco en la ventana del navegador. Si el frame flotante no contiene

Página 29 de 183

Page 30: Guia Para Egetsu

una página web referenciada mediante SRC y contiene texto, también es posible aplicar estilos a este texto, como color, fuente, tamaño, etc.

Ejemplo.- (Sólo 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 " . Análogo al anterior, pero ahora refiriendo el estilo del marco flotante (posición y tamaño) de acuerdo con una clase de estilos definida en la sección de la página que contiene al marco o en un archivo externo de extensión ".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. También posibilita cambiar dinámicamente 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

Método Significado

GET Devuelve el recurso identificado en la URL pedida.

HEAD Funciona como el GET, pero sin que el servidor devuelva el cuerpo del mensaje. Es decir, sólo se devuelve la información de cabecera.

POST Indica al servidor que se prepare para recibir información del cliente. Suele usarse para enviar información desde formularios.

PUT Envía el recurso identificado en la URL desde el cliente hacia el servidor.

OPTIONS Pide información sobre las características de comunicación proporcionadas por el servidor. Le permite al cliente negociar los parámetros de comunicación.

TRACE Inicia un ciclo de mensajes de petición. Se usa para depuración y permite al cliente ver lo que el servidor recibe en el otro lado.

DELETE Solicita al servidor que borre el recurso identificado con el URL.

CONNECT Este método se reserva para uso con proxys. Permitirá que un proxy pueda dinámicamente convertirse en un túnel. Por ejemplo para comunicaciones con SSL.

INTRANET

Página 30 de 183

Page 31: Guia Para Egetsu

Intranet es la aplicación de los estándares Internet dentro de un ámbito corporativo para mejorar la

productividad, reducir costos y mantener los sistemas de información 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

información de manera rápida y convertir a estos trabajadores en miembros activos de una red

corporativa, o sea da al usuario la información que este necesita para su trabajo. Pretende que cada

cual tenga la información 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 comunicación: correo electrónico con las listas de distribución, las News,

Usenet o foros de debate, las Talk e IRC o charlas electrónicas, o Mbone o la transmisión de

imágenes 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 información: 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 organización, 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 información de datos, ideas, entre

trabajadores de una empresa de todos los niveles. Se trata de compartir información no de

acapararla y adaptarla a las necesidades de los usuarios.

Una Intranet bien diseñada puede ahorrar tiempo y dinero, ya que reduce drásticamente los costes y

el tiempo de los procesos de generación, duplicación y uso de los datos.

EXTRANET

A principios de los noventa Internet supuso una gran revolución, a continuación Intranet fue el

siguiente paso para aprovechar los recursos y la tecnología de Internet pero en el ámbito de las

empresas u organizaciones y actualmente Extranet, aunque la diferencia con la Intranet sea difusa

Página 31 de 183

Page 32: Guia Para Egetsu

puesto que es la intersección de distintas Intranets, parece que es el futuro, con la integración de las

redes anteriores, que permitirá una revolución en la estructura y operaciones comerciales de las

empresas, instituciones y organismos públicos y privados.

Una Extranet es una red externa de colaboración que utiliza también la tecnología Internet. Para

algunos es una parte de las Intranets de la empresa que se hacen accesibles a otras empresas u

organizaciones. Es una conexión entre empresas a través de Internet, una herramienta que permite

la colaboración entre empresas. Son comunicaciones entre empresa y proveedores, de empresa a

empresa, de empresas a consumidores.

Las Extranets son el puente entre la red pública Internet y las redes privadas corporativas o

Intranets, o sea un canal que conecta múltiples y diversas organizaciones online, donde las que

comparten información puedan comunicarse con el fin de conseguir los objetivos comerciales

señalados.

Las aplicaciones de esta red pueden ser entre grupos de empresas que comparten la misma

información o las mismas ideas, entre empresas que participan o colaboran en el desarrollo de

alguna nueva aplicación, para los catálogos de productos, para la gestión y el control y desarrollo de

un mismo proyecto de trabajo, para programas de formación, para que proveedores y clientes

intercambien ofertas, promociones, que asociaciones, universidades o la misma administración

participen en actividades como gestión de bolsas de trabajo, prácticas de investigación, programas

de formación.

Internet, Intranet y Extranet tienen en común:

– La tecnología subyacente.

– La infraestructura que se basa en estándares que hacen posible compartir recursos comunes.

– La red física debe basarse en el protocolo IP.

Lo que las hace diferentes es:

– Internet ofrece acceso a información pública a un grupo ilimitado de personas en todo el

mundo.

– Una intranet permite acceso a la información y recursos privados de una organización a un

número 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 información disponibles.

Página 32 de 183

Page 33: Guia Para Egetsu

– Una Extranet es un “punto medio” entre la Internet y la Intranet, ya que hace posible que

usuarios que no pertenecen a la organización (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 topología lógica que

se utilice para crear la red.

Software de gestión de datos: Este software se encarga de la manipulación y gestión 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 interacción con los usuarios: También reside en los clientes y es la aplicación gráfica de usuario para la manipulación de datos, siempre claro a nivel usuario (consultas principalmente).

Ventajas y desventajas del modelo cliente-servidor

Ventajas:

* Centralización del control de los recursos, datos y accesos.

* Facilidad de mantenimiento y actualización del lado del servidor: Esto es porque el lado del servidor se puede mantener o actualizar fácilmente . Por ejemplo, una actualización se aplica a un único servidor , pero los beneficios los obtienen múltiples clientes generalmente sin necesidad de que éstos actualicen nada.

* Toda la información 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 número de clientes simultáneos 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 más que un cliente FTP al cual podemos acceder a través de nuestro navegador web sin necesidad de tener otra aplicación para ello.

El protocolo de transferencia es el sistema de reglas mediante el cual se transfiere información entre los servidores y los clientes (por ejemplo los navegadores).

Página 33 de 183

Page 34: Guia Para Egetsu

Un dominio se compone normalmente de tres partes: en www.masadelante.com, las tres uves dobles (www), el nombre de la organización (masadelante) y el tipo de organización (com).

Hosting (alojamiento o también 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 más 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 página principal (la home page en terminología inglesa) desde la que se puede llegar a otras páginas de la web. Estas otras páginas a su vez son un nodo para llegar a otro grupo de páginas. De esta manera llegaremos a tener las páginas 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 difícil para navegar. Puede ser útil para estructurar nuestro sitio en canales o grupos de páginas independientes. En cualquier caso no conviene que el número de niveles sea excesivo, nunca más de 3. Piensa que si queremos ir de una página a otra en el mismo nivel en otra rama del árbol, debemos retroceder hasta la raíz para luego alcanzar la página de destino.

LISTAS

Esta forma de organizar el sitio es totalmente opuesto al anterior. Realmente no existe una página raíz o principal, lo que tenemos es una especie de lista de páginas donde cada una tiene dos vecinas: una a la izquierda y otra a la derecha, excepto las páginas de los extremos. Una variante presentaría las páginas primera y última enlazadas. Esta forma de organizar un sitio es muy parecida a un libro donde cada página sería un capítulo del mismo. Pasamos del primer al último capítulo a través de los intermedios. Es una implementación muy adecuada para manuales o para procesos donde el usuario deba recorrer forzosamente una serie de páginas.

MIXTA

Esta estructura aprovecha las ventajas de las dos anteriores. Las páginas están jerarquizadas en niveles, pero dentro de cada nivel se organizan como listas, de forma que podemos recorrer todas las páginas 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

Página 34 de 183

Page 35: Guia Para Egetsu

Las páginas del sitio también pueden estar totalmente interconectadas, es decir, desde cada página podemos ir a cualquier otra del sitio. Realmente la interconexión de absolutamente todas las páginas sería un caso extremo. Es una estructura de apariencia algo anárquica en la que hay que cuidar mucho de no dejar enlaces abiertos, es decir, apuntando a una página inexistente. Además debemos evitar que el usuario se pierda en una maraña de enlaces. Por todo esto ello es necesario planificarla muy bien.

MAPA DEL SITIO WEBRepresentación gráfica o textual de un sitio web. El mapa de un sitio web puede ser un documento que se utiliza para planificar el diseño de la web, o puede ser una página web donde se listan todas -o las más importantes- páginas web de un sitio (generalmente organizadas de alguna manera).

Modelos de seguridad.Son mecanismos abstractos que permiten poner en práctica una determinada política de seguridad. En relación con el control de acceso tenemos los siguientes estándares:

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 políticas por encima de las decisiones de los sujetos, además de permitir una granularidad y control mayores. Desde el punto de vista de la seguridad, MAC es más 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 mayoría 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 basándose en los roles establecidos en la organización, 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 política, ya que permite modelar otros modelos previos, que han demostrado limitaciones, como son DAC y MAC.

Formas de diagnóstico de seguridad.Software de verificación.

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 código abierto y permite llevar a cabo pruebas exhaustivas de los servidores web para varios artículos.Los plugins se actualizan con frecuencia y se puede actualizar de forma automática.

Página 35 de 183

Page 36: Guia Para Egetsu

Nessus.Es el líder mundial en escáneres activos de vulnerabilidad.Con alta velocidad de descubrimiento, la auditoría de configuración, el perfil activo, el descubrimiento de los datos sensibles y análisis de la vulnerabilidad de su seguridad.

HOJAS DE ESTILO: Definición. 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 presentación de los contenidos: tipo, fuente y tamaño de letras, justificación del texto, colores y fondos, etc.

Página 36 de 183

Page 37: Guia Para Egetsu

Página 37 de 183

Page 38: Guia Para Egetsu

Bases de datos

Bases de datos en la Web

Las bases de datos permiten almacenar de una forma estructurada y eficiente toda la información de un sitio web.

Ventajas • Proporcionar información actualizada• Facilitar la realización de búsquedas• Disminuir los costes de mantenimiento• Implementar sistemas de control de acceso• Almacenar preferencias de los usuarios

Esquema básico de un sitio web soportado por bases de datos:

Instalación y config. de MySQLPágina 38 de 183

Page 39: Guia Para Egetsu

Pasos:• Descargar• Descomprimir e instalar• Configurar• Arrancar• Conectar con el servidor• Instalar la extensión para MySQL de PHP

Bases de datos

Características de MySQLModelo relacional, multiusuario

Tipos de datosNuméricos

tinyint, smallint, mediumint, int, integer, bigintdecimal, float, numeric

Fecha y horadate, time, datetime, year, timestamp

Cadenachar, varchar

tinytext, text, mediumtext, longtexttinyblob, blob, mediumblob, longblobenum, set

Debe elegirse adecuadamente el tipo y el tamaño de cada campo

OperadoresAritméticos

+, -, *, /

Comparación=, !=, <=, <, >=, >, IS NULL, IS NOT NULL

Lógicosnot (!), and (&&), or (||), xor

FuncionesFunciones de cadenaFunciones de comparación de cadenasFunciones numéricasFunciones de fecha y horaFunciones de agregado

Página 39 de 183

Page 40: Guia Para Egetsu

phpMyAdmin es una herramienta para la administración del servidor de bases de datos MySQLDispone de una interfaz gráfica y es de libre distribuciónPermite realizar todo tipo de operaciones sobre bases de datos:crear, borrar y modificar tablasconsultar, insertar, modificar y eliminar datosdefinir usuarios y asignar permisosrealizar copias de seguridadetcEstá 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 datosProcedimiento de comunicación con la base de datos:

Página 40 de 183

Page 41: Guia Para Egetsu

Bases de datos

Las instrucciones más habituales son SELECT, INSERT, UPDATE, DELETE

Veamos su sintaxis básica y algunos ejemplos de usoPara ello utilizaremos una tabla noticias con cinco campos: un identificador único de la noticia, el título de la noticia, el texto de la noticia, la categoría de la noticia y la fecha de publicación de la noticia

SELECT

Sintaxis:SELECT expresión FROM tabla[WHERE condición][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 DESCObtiene las noticias del día con un tope máximo de 10, ordenadas de la más reciente a la más antigua

Página 41 de 183

título

texto

categoría

noticias

id

fecha

Page 42: Guia Para Egetsu

INSERTSintaxis:

INSERT [INTO] nombre_tabla [(nombre_columna,...)]VALUES ((expresión | DEFAULT),...), (...),...INSERT [INTO] nombre_tablaSET nombre_columna=(expresión | DEFAULT), ...

Ejemplo:INSERT INTO noticias (id, titulo, texto, categoria, fecha) VALUES (37, “Nueva promoción en Nervión”, “145 viviendas de lujo en urbanización ajardinada situadas en un entorno privilegiado”, “promociones”, CURDATE())Inserta una noticia con los valores indicados

Bases de datos

UPDATESintaxis:

UPDATE nombre_tablaSET nombre_columna1=expr1 [, nombre_columna2=expr2 ...][WHERE condición][ORDER BY ...][LIMIT row_count]

Ejemplo:UPDATE noticias SET categoria = “ofertas” WHERE id=37Modifica la categoría de la noticia con id=37 de la tabla

DELETESintaxis:

DELETE FROM nombre_tabla[WHERE condición][ORDER BY ...][LIMIT row_count]

Ejemplo:DELETE FROM noticias WHERE fecha < CURDATE()-10Borra las noticias con más de 10 días de antigüedad

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 instrucción SQL a la base de datos: mysql_query()

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

Cerrar la conexión con el servidor de bases de datos: mysql_close()

Página 42 de 183

Page 43: Guia Para Egetsu

Acceso a bases de datos MySQL

Conectar con el servidor de bases de datos: mysql_connect()Devuelve un identificador de la conexión 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 instrucción SQL a la base de datos: mysql_query()Devuelve un identificador o true (dependiendo de la instrucción) si la instrucción se ejecuta correctamente y false en caso contrario

Sintaxis:$consulta = mysql_query (instrucción, $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 instrucción enviada produzca unos resultados, mysql_query() devuelve las filas de la tabla afectadas por la instrucciónmysql_num_rows() devuelve el número de filas afectadasPara obtener las distintas filas del resultado se utiliza la función mysql_fetch_array(), que obtiene una fila del resultado en un array asociativo cada vez que se invoca

Sintaxis:

Página 43 de 183

Page 44: Guia Para Egetsu

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

Comunicación de Datos

3.- REDES Terminología de networking

Redes de datos

Las redes de datos se desarrollaron como consecuencia de aplicaciones comerciales diseñadas para microcomputadores.A principios de la década 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 periféricos • Medios de networking • Dispositivos de networking

Algunas de las tecnologías 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 más LAN dentro de un área geográfica común.

Redes de área amplia (WAN)

Algunas de las tecnologías comunes de WAN son: • Módems • Red digital de servicios integrados (RDSI) • Línea de suscripción digital (DSL - Digital Subscriber Line) • Frame Relay • Series de portadoras para EE.UU. (T) y Europa (E): T1, E1, T3, E3 • Red óptica síncrona (SONET )

Redes de área de almacenamiento (SAN)

Página 44 de 183

Page 45: Guia Para Egetsu

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 tráfico entre clientes y servidores

Red privada virtual (VPN) Una VPN es una red privada que se construye dentro de una infraestructura de red pública, como la Internet global.

Comunicación de Datos

Ancho de banda El ancho de banda se define como la cantidad de información que puede fluir a través de una conexión de red en un período dado. El ancho de banda analógico se mide en función de la cantidad de espectro magnético ocupada por cada señal. La unidad de medida básica del ancho de banda analógico es el hercio (Hz), o ciclos por segundo. Las unidades de medida más comúnmente usadas son el kilohercio (KHz), el megahercio (MHz), y el gigahercio (GHz). Estas unidades se utilizan para describir las frecuencias de los teléfonos inalámbricos, que generalmente operan a 900 MHz o a 2,4 GHz. El ancho de banda digital, toda la información se envía como bits, independientemente del tipo de información del cual se trate. Voz, video y datos se convierten todos en corrientes de bits al ser preparados para su transmisión a través de medios digitales.

El ancho de banda en redes inalámbricas 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 comunicación se conoce como de par-a-par. Durante este proceso, los protocolos de cada capa intercambian información, denominada unidades de datos de protocolo (PDU). Cada capa de comunicación en el computador origen se comunica con un PDU específico de capa, y con su capa par en el computador destino.

Pruebas de encapsulamiento de los datosEl proceso de los datos son incorporados al ordenador hasta que se trasmiten al medio se llama encapsulación. Estos datos son formateados, segmentados, identificados con el direccionamiento lógico y físico para finalmente ser enviados al medio. A cada capa del modelo osi le corresponde una PDU “Unidad de datosPosiblemente 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á corrección de errores.

Página 45 de 183

Page 46: Guia Para Egetsu

Estos segmentos son empaquetados (paquetes o datagramas) e identificados en la capa de red con la dirección lógica o ip correspondiente al origen y destino. Ocurre lo mismo con la dirección MAC en la capa de enlace de datos formándose las tramas o frames para ser transmitidos a través de una interfaz. Finalmente las tramas son enviadas al medio desde la capa física.

ENCAPSULAMIENTOS DE DATOS: DATOSDATOS SEGMENTADOS: DATOS, DATOS, DATOSENCABEZADO IP: ENCABEZADO IP, DATOS, FCSENCABEZADO MAC: ENCABEZADO MAC, ENCABEZADO IP, DATOS FCS.

Dominios de colisión y difusiónEthernet es una tecnología conflictiva, todos los equipos de trabajo que se conectan al mismo medio físico reciben las señales enviadas por otros dispositivos. Si dos estaciones transmiten a la vez, se genera una

Comunicación de Datos

colisión. Si no existieran mecanismos que detectasen y corrigiesen los errores de estas colisiones, Ethernet no podría funcionar.En el diseño de una red se debe tener especial cuidado con los llamados:

Dominios de Colisión: Grupo de dispositivos conectados al mismo medio físico, de tal manera que si dos dispositivos acceden al medio al mismo tiempo, el resultado será una colisión entre las dos señales. Se produce un consumo inadecuado de recursos y de ancho de banda.Dominio de difusión (Broadcast): Grupo de dispositivos de la red envía y reciben mensajes de difusión entre ellos. Una cantidad excesiva de estos mensajes de difusión entre ellos. Una cantidad excesiva de estos mensajes de difusión 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 colisión, eso quiere decir que sí que si dos equipos provocan una colisión en un segmento asociado a un puerto del hubs, todos los equipos provocan una colisión en un segmento asociado a un puerto del hubs, todos los demás dispositivos aun estando en diferentes puertos se verán afectados. Si una estación envía un Broadcast, debido a que un hub también tiene un solo dominio de difusión.

CSMA / CD acceso múltiple con detección de portadora (carrier) y detección 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 ningún otro puesto este utilizándolo. 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 ningún otro tráfico, ambos trataran de trasmitir al mismo tiempo, dando como resultado una colisión. A partir esta colisión las estaciones emiten una señal de congestión para asegurase de que existe una colisión y se generas un algoritmo de espera con el que las estaciones retransmitirán aleatoriamente.Modelo OSI El modelo de referencia de Interconexión de Sistemas Abiertos (OSI) lanzado en 1984 fue el modelo de red descriptivo creado por ISO. Proporcionó a los fabricantes un conjunto de estándares que aseguraron una mayor compatibilidad e interoperabilidad entre los distintos tipos de tecnología de red producidos por las empresas a nivel mundial.

Ventajas del modelo OSI Reduce la complejidad Estandariza las interfaces Facilita el diseño modular Asegura la interoperabilidad de la tecnología

Página 46 de 183

Page 47: Guia Para Egetsu

Comunicación de Datos

Las capas del modelo OSI.

Página 47 de 183

Page 48: Guia Para Egetsu

Comunicación de Datos

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

Capa Física: 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 colisión y los dominios de difusión. Los Puentes y los Switches dividen a la red en segmentos, estos a su vez crean dominios de colisión. Una colisión producida en un segmento conectado a un switch no afectará a los demás segmentos conectados al mismo switch. Sin embargo los dispositivos de capa 2 no crean dominios de broadcast o difusión.Un switch de 12 puertos utilizados tendrá 12 dominios de colisión y 1 de difusión.Capa de Red: Los routers en la capa de red del modelo OSI separando los segmentos en dominios de colisión y difusión únicos. Estos segmentos están identificados por una dirección de red que permitirá alcanzar las estaciones finales. Los routers cumplen dos funciones básicas que son la de enrutar y conmutar los paquetes.

Modelo TCP/IPLa capa de aplicación La capa de aplicación del modelo TCP/IP maneja protocolos de alto nivel, aspectos de representación, codificación y control de diálogo. Transferencia de archivos: TFTP,FTP,NFS, Correo Electrónico: SMT, Conexión remota: Telnet, rlogin, Administración de red: SNMP*, Gestión de nombres: DNSLa capa de transporte La capa de transporte proporciona servicios de transporte desde el host origen hacia el host destino. Esta capa forma una conexión lógica entre los puntos finales de la red, el host transmisor y el host receptor. Los servicios de transporte incluyen Protocolo de control de trasmisión Orientado a conexión (TCP) y Protocolo de Datagrama de Usuario no orientado a conexión (UDP). La capa de Internet El propósito 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

envío de mensajes. • El Protocolo de resolución de direcciones (ARP) determina la MAC, para las direcciones IP

conocidas. • El Protocolo de resolución inversa de direcciones (RARP) determina IP cuando se conoce la

dirección 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 físico real con los medios de la red. Tecnología LAN y WAN, la capas física y de enlace de datos del modelo OSI. Las funciones de la capa de acceso de red incluyen la asignación de direcciones IP a las direcciones físicas y el encapsulamiento de los paquetes IP en tramas.

Comunicación de Datos

Dispositivos de networking

Página 48 de 183

Page 49: Guia Para Egetsu

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, escáneres, y demás 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 intercomunicación.

Topología de red

La topología de red define como la estructura física y lógica que forma una red.

a).- Topología física, que es la disposición real de los cables o medios.

b).- Topología lógica, que define la forma en que los hosts acceden a los medios para enviar datos. Los dos tipos más comunes de topologías lógicas son:

• Broadcast• Transmisión de tokens.

Comunicación de Datos

Protocolos de red

Página 49 de 183

Topologías LógicasTopologías Físicas

Page 50: Guia Para Egetsu

Un protocolo es un conjunto de reglas y convenciones que rigen un aspecto particular de cómo los dispositivos de una red se comunican entre sí. Los protocolos determinan el formato, la sincronización, la secuenciación y el control de errores en la comunicación de datos.

Los protocolos controlan todos los aspectos de la comunicación de datos, que incluye Estas normas de red son creadas y administradas por una serie de diferentes organizaciones y comités. Entre ellos se incluyen el Instituto de Ingeniería Eléctrica y Electrónica (IEEE), el Instituto Nacional Americano de Normalización (ANSI), la Asociación de la Industria de las Telecomunicaciones (TIA), la Asociación de Industrias Electrónicas (EIA) y la Unión Internacional de Telecomunicaciones (UIT), antiguamente conocida como el Comité Consultivo Internacional Telegráfico y Telefónico (CCITT).

Medios de Ethernet y requisitos de conector Antes de seleccionar la implementación de Ethernet, tenga en cuenta los requisitos de los conectores y medios para cada una de ellas. También tenga en cuenta el nivel de rendimiento que necesita la red.

DIRECCIONAMIENTO IP

Una dirección IP es una secuencia de 1s y 0s de 32 bits, se representa como 4 números decimales separados por puntos. En un DIRECCIONAMIENTO JERÁRQUICO la dirección IP consta de 2 partes, la primera identifica la dirección de la red donde se conecta el sistema y la segunda identifica el sistema en particular de esa red (el hosts, la máquina particular) y contiene diferentes niveles.

Las direcciones ip se dividen en clases:

CLASE INICIO DECIMAL

INICIO BIN RANGO BINARIO OCTETOS MASCARA DE SUBRED

A 1 - 126 0 00000000-01111111 R.H.H.H 255.0.0.0B 128 - 191 10 10000000-10111111 R.R.H.H 255.255.0.0C 192 - 223 110 11000000-11011111 R.R.R.H 255.255.255.0D 224 - 239 1110 11100000-11101111 USO MULTICASTE 240 - 254 RESERVADO PARA INVESTIGACIÓN IETF

Página 50 de 183

Page 51: Guia Para Egetsu

Comunicación de Datos

LAS SUBREDES se realizan cuando se dividen en redes más pequeñas, para su mayor aprovechamiento y seguridad en bajo nivel en la LAN.

DADA LA DIRECCIÓN 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 número de bits prestados que se requieren, con la fórmula:

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; después convertir a decimal)D. realiza la tabla mostrando: número de subred, bits por subred, num de hosts por subred,

direcciones de subred, números asignados a los hosts. (determina el rango restando a 256 el resultado del ultimo octeto, decimal del paso c)

E. gráfica, indicando los números 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 PEDIRÁN PRESTADOS 3 BITS:23=8 SE PUEDEN CREAR 8 SUBREDES23-2=6 DE LAS CUALES 6 SERÁN 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 SERÁN UTILIZABLES*Se restan dos porque la 1 se usa para Red y la ultima para Broadcast

C. MASCARA DE SUBRED POR DEFAULT: = 255.255.255.0MASCARA DE SUBRED ESPECÍFICA: 192.10.8. 111 00000 = 192.10.8.224

RED SUBRED HOST

D. RANGO = 256-224 = 32

NUM. SUBRED

BITS DE SUBRED

NUM. HOST DECIMAL

DIRECCIÓN DE SUBREDES

NUM. DE HOSTS

0 000 0 - 31 192.10.8.0 No se usa1 001 32 - 63 192.10.8.32 192.10.8 .33 -

.632 010 64 - 95 192.10.8.64 192.10.8 .65

- .953 011 96 - 127 192.10.8.96 192.10.8 .97 - .

127 4 100 128 - 159 192.10.8.128 192.10.8 .129 - .

1595 101 160 - 191 192.10.8.160 192.10.8 .161 - .

1916 110 192 - 223 192.10.8.192 192.10.8 .193 - .

2237 111 224 - 255 192.10.8.224 No se usa

Página 51 de 183

Page 52: Guia Para Egetsu

Comunicación de Datos

Página 52 de 183

Page 53: Guia Para Egetsu

.

Página 53 de 183

192.10.8.32192.10.8.64192.10.8.128192.10.8.96192.10.8.160192.10.8.192192.10.8.0

Page 54: Guia Para Egetsu

Página 54 de 183

192.10.8.32192.10.8.64192.10.8.128192.10.8.96192.10.8.160192.10.8.192

Page 55: Guia Para Egetsu

Página 55 de 183

Page 56: Guia Para Egetsu

Redes de Computo

ENRUTAMIENTO

DETERMINACIÓN DE RUTAS IPPara que un dispositivo de 3 capas pueda determinar la ruta hacia un destino debe tener conocimiento de cómo hacerlo. El aprendizaje de las rutas puede ser mediante enrutamiento estático o dinámico.LAS RUTAS DINÁMICAS son aprendidas automáticamente por el router a través de la información enviada por otros routers, una vez que el administrador ha configurado un protocolo de enrutamiento que permite el aprendizaje dinámico de rutas.Para poder enlutar paquetes de información un router debe conocer lo siguiente:

• DIRECCIÓN DE DESTINO: dirección a donde han de ser enviados los paquetes.• FUENTES DE INFORMACIÓN: 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 cuál es la mejor ruta hasta el destino

especificado.• MANTENER LAS TABLAS DE ENRUTAMIENTO ACTUALIZADAS: mantener conocimiento

actualizado de las rutas destino.

La información 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 información del router acerca de las redes. Si la red de destino está conectada directamente, el router debe aprender y calcular la ruta más ó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 están conectadas directamente, el router debe aprender y calcular la ruta más óptima a usar para reenviar paquetes a dichas redes. La tabla de enrutamiento se construye mediante uno de estos dos métodos o ambos:

• Manualmente, por el administrador de la red.• A través de procesos dinámicos que se ejecutan en la red.

LAS RUTAS ESTÁTICAS son aprendidas por el router a través del administrador, que establece dicha ruta manualmente, quien también debe actualizar cuando tenga lugar un cambio de topología.Las rutas estáticas se definen administrativamente y establecen rutas específicas que han de surgir los paquetes para pasar de un puerto destino. Se establece un control preciso del enrutamiento según los parámetros del administrador.Las rutas estáticas 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 estáticas se utilizan habitualmente desde una red hasta una red de conexión única, ya que existen más que una ruta de entrada y salida de una red de conexión única, evitando de este modo la sobrecarga de tráfico que genera un protocolo de enrutamiento. La ruta estática 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 estática, los parámetros del comando definen la ruta estática.Las entradas creadas en la tabla usando este procedimiento permanecerán en dichas tablas mientras la ruta siga activa. Con la opción permanent, la ruta seguirá en la tabla aunque la ruta en cuestión haya dejado de estar activa.La sintaxis de configuración de una ruta estática es la siguiente:

Router (config) # ip router router {red} {mascara} {dirección ip / interfaz} {distancia} {permanent}Redes de Computo

Red: es la red o subred de destino.Mascara: es la máscara de subred.

Página 56 de 183

Page 57: Guia Para Egetsu

Interfaz: es el nombre de la interfaz que debe usarse para llegar a la red de destino.Distancia: es un parámetro opcional, que se define la distancia administrativa.Permanent: un parámetro opcional que especifica que la ruta no debe se

eliminada, aunque la interfaz deje de estar activa.

RUTAS ESTÁTICA POR DEFECTOUna ruta estática, predeterminada o de último recurso es un tipo especial de ruta estática 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 información relativa a todas las rutas posibles.La sintaxis de configuración de una ruta estática por defecto es la siguiente:

Router (config) # ip route 0.0.0.0 0.0.0.0 {dirección ip / interfaz} {distancia}

PROTOCOLOSLos protocolos describen el conjunto de normas y convenciones que rigen la forma en que los dispositivos de una red intercambian información.Algunos de los protocolos más usados, que operan en la capa de Internet, son:*IP: proporciona un enrutamiento de paquetes no orientados a conexión de máximo 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 envío de mensajes. Herramientas tales como PING y TRACERT lo utilizan.* ARP Protocolo de resolución de direcciones: determina la dirección de la capa de enlace de datos, la dirección MAC, para direcciones IP conocidas.* RARP Protocolo de resolución inversa de direcciones: determina las direcciones IP cuando se conoce la dirección MAC.UN PROTOCOLO ENRUTADO lleva una completa información 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 núcleos:

• PROTOCOLOS DE GATEWAY INTERIOR (IGP): Se usan para intercambiar información de enrutamiento dentro de un sistema autónomo (RIP, IGRP).

• PROTOCOLO DE GATEWAY EXTERIOR (EGP): Se usan para intercambiar información de enrutamiento entre sistemas autónomos.

UN SISTEMA AUTÓNOMO (AS) es un conjunto de redes bajo un dominio administrativo común, se utilizan si el sistema utiliza algún BGP o red pública.

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 dirección y la distancia a cualquier red (RIP, EIGRP) * Estado de enlace: tiene una idea exacta de la topología de red y no efectúa actualizaciones a menos que ocurra un cambio (OSPF y EIS-EIS)* Híbrido: combina aspectos de los dos anteriores (EIGRP).

Redes de Computo

ENRUTAMIENTO POR VECTOR DISTANCIA Pasa por copias periódicas de la tabla de enrutamiento de un router a otro acumulando vectores de distancia (donde el vector es una dirección y la distancia es una medida de longitud). Cada protocolo utiliza un algoritmo distinto para determinar la ruta óptima, este genera un número llamado “métrica de ruta”.

Página 57 de 183

Page 58: Guia Para Egetsu

Las métricas más 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 máxima de transmisión.

LOS BUCLES DE ENRUTAMIENTO se generan si no existe una convergencia rápida y precisa entre los router. La solución a los bucles de enrutamiento son:

• Métricas máximas: solamente permiten la repartición de enrutamiento hasta que la métrica exceda el valor máximo permitido (RIP 16 saltos).

• Horizonte dividido (slip horizont) el router conoce otra ruta viable al destino y no devolverá información por la interfaz donde la recibió.

• Envenenamiento: se asegura que todos los router del segmento hayan recibido información acerca de la ruta envenenada, es una operación complementaria del horizonte dividido.

• Temporizadores: los router no aplican ningún 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 basándose en una base de datos de la topología. EL ALGORITMO SPF (primero la ruta libre más 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 topológica, el algoritmo SPF, el árbol SPF resultantes y una tabla de enrutamiento con las rutas y puertos de cada red. Existe una visión independiente de la red por cada router por lo que se producen muy pocos errores. No tienen límites de saltos, la métrica 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 autónomo y se puede dividir en sectores más pequeños que se llaman áreas, el área principal o backbone de un sistema autónomo es el area0.Los protocolos estado-enlace son más rápidos y escalables que los de vector distancia por:

• Los protocolos de estado enlace solo envían actualizaciones cuando hay cambios de topología.• Las actualizaciones periódicas son menos frecuentes que los protocolos vector distancia.• Puede manejar redes segmentadas en distintas áreas jerárquicamente 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.

Página 58 de 183

Page 59: Guia Para Egetsu

Redes de Computo

PROTOCOLO RIP IGRP EIGRP IS-IS OSPFVECTOR-DISTANCIA

X X X

ESTADO DE ENLACE

X X

RESUMEN AUTO- MÁTICO DE RUTA

X X X X

RESUMEN MANUAL DE RUTA

X X X X X

SOPORTE VLSM X X XPROPIETARIO DE CISCO

X X

CONVERGENCIA LENTO LENTO MUY RÁPIDO MUY RÁPIDO

MUY RÁPIDO

DISTANCIA ADVA.

120 100 90 115 110

TIEMPO DE ACTUALIZACIÓN

30 90

MÉTRICA SALTOS COMPUESTA COMPUESTA COSTE COSTE

CONFIGURACIÓN INICIAL DEL ROUTERUn router es un ordenador construido para desempeñar funciones específicas 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 utlizán 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 información de la tablas de enrutamiento, el cache de

conmutación rápida, configuración actual y colas de paquetes.• MEMORIA FLASH: Almacena una imagen completa del software IOS de cisco.• NVRAM: Memoria de acceso aleatorio no volátil, se utiliza para la configuración de inicio y retiene sus

contenidos al ser apagada la unidad.• BUSES: Bus de sistema se utiliza para la comunicación entre la CPU y las interfaces y/o ranuras de

expansión, transfiere los paquetes hacia y desde las interfaces.• ROM: Memoria de solo lectura que se utiliza para almacenar de forma permanente el código de

diagnóstico 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.

Página 59 de 183

Page 60: Guia Para Egetsu

ADMINISTRACIÓN: Los puertos de consola y aux son puertos seriales que se utilizan principalmente para la configuración inicial del router, no son puertos de networking, realizan sesiones terminales.

• FUENTE DE ALIMENTACIÓN: Brinda la energía necesaria para operar los componentes internos.

UN ROUTER O SWITCH PUEDEN SER CONFIGURADOS DESDE DISTINTAS UBICACIONES:

• En la instalación inicial, el administrador de red configura desde una terminal de consola, conectado por medio del puerto de consola.

• Con una conexión 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 configuración 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 configuración 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 configuración relativas a los atributos específicos del router,

funciones de protocolos y direcciones de interfaz.

MODOS DE TRABAJO:MODO SÍMBOLO ACCESO SALIDA

EXEC usuario Router>EXEC privilegiado Router# Enable Ctl + z exit disableConfiguración global Router(config)# Configure terminal Ctl + z exitConfiguración de interfaces Router(config-if)# Interface [tipo y num] Ctl + z exitConfiguración de router Router(config-router)# Router [protocolo] Ctl + z exit

Redes de Computo

EJEMPLO DE CONFIGURACIÓN

Página 60 de 183

LOS PROTOCOLOS Y ESTÁNDARES DE LA CAPA FISICA DE WAN son:

• EIA / TIA 232• EIA / TIA 449• V.24• V.35• X.21• G.703• EIA 530• RDSI• T1,T3, E1 Y E3• xDSL• SONET

LOS PROTOCOLOS Y ESTÁNDARES DE LA CAPA DE ENLACE DE DATOS DE WAN son:

• HDLC control de enlace de datos de alto nivel• FRAME RELAY

• PPP protocolo punto a punto• SDLC control de enlace de datos síncrono• SLIP protocolo de internet de enlace serial

• X.25• ATM• LAPB• LAPD• LAPF

Page 61: Guia Para Egetsu

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 configuración:#copy running-config startup-config#copy startup-config running-config#copy running-config tftpO bien se puede eliminar con el comando #erase startup-configLOS COMANDOS SHOW nos permiten el rápido diagnóstico 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

Página 61 de 183

Page 62: Guia Para Egetsu

Existe una convención 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

1 Formato de archivo121-5 Número de versión

LA CONFIGURACIÓN DE ENRUTAMIENTO ESTÁTICO se realiza a través del comando de configuración global de OSI ip route, este utiliza varios parámetros , como: dirección de red, mascara de subred asociada e información del destino, que puede adoptar una de las siguientes formas:

• Dirección ip específica del siguiente router de la ruta.• Dirección 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 ESTÁTICAS SE ACONSEJA en los siguientes casos:• Circuito de datos poco fiable y deja de funcionar constantemente.• Red donde existe una sola conexión con un solo ISP.• Cuando se puede acceder a la red a través de una conexión de acceso telefónico.• Cuando un cliente o cualquier otra red vinculada no desean intercambiar información de enrutamiento

dinámico.LA CONFIGURACIÓN DE RUTAS ESTÁTICAS POR DEFECTO se utilizan cuando el destino al que se pretende llegar son múltiples 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 CONFIGURACIÓN DE ENRUTAMIENTO DINÁMICO son algoritmos que permiten que los routers publiquen, o anuncien, la existencia de la información de ruta de red ip necesaria para crear la tabla de enrutamiento, determinan el criterio de selección de ruta que sigue el paquete cuando se le presenta al router, esperando una decisión de conmutar, sus objetivos consisten en proporcionar al usuario la posibilidad de seleccionar la ruta idónea en la red, reaccionar con rapidez a los cambios de la misma y realizar dichas tareas de la manera más sencilla y con la menor sobrecarga del router posible.Para habilitar un protocolo de enrutamiento dinámico, 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 autónomo]Router(config-router) # network [num. de red directamente conectada]EL PROTOCOLO DE INFORMACIÓN DE ENRUTAMIENTO (RIP) es uno de los protocolos de enrutamiento más antiguos utilizado por dispositivos basados en IP. Sus principales características son:

• Es un protocolo basado en vector distancia.• Utiliza la cuenta de saltos del router como métrica• El máximo 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 omisión.Redes de Computo

• Puede realizar equilibrado de carga en un máximo de seis rutas de igual coste (la especificación por omisión es de 4).

• RIP v1 requiere que se use una sola mascara de red de longitud fija para cada número de red de clase principal que es anunciado y no contempla actualizaciones desencadenadas.

Página 62 de 183

Page 63: Guia Para Egetsu

• RIP v2 permiten máscaras de subred de longitud variable (VLSM) en la interconexión, permite actualizaciones desencadenadas, el número máximo de rutas paralelas permitidas la tabla de enrutamiento faculta a RIP para llevar a cabo el equilibrio de carga.

• En RIP la información de enrutamiento se propaga de un router a los vecinos por medio de una difusión de IP usando el protocolo UDP y el puerto 520.

CONFIGURACIÓN RIPRouter(config) # router ripRouter(config-router)# network 192.168.1.0Router(config-router)# network 200.200.21.0Router(config-router)# vesion 2Router(config-router)# maximum-paths 6LA REDISTRIBUCIÓN ESTÁTICA EN RIP se utiliza para que todos los routers contenidos dentro del mismo sistema autónomo 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 vector-distancia, desarrollado por cisco systems a mediados de los 80´s, corrige algunos defectos de RIP y proporciona un mejor soporte para grandes redes con enlaces de diferentes anchos de banda. IGRP calcula su métrica 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 según el rendimiento de la interfaz.

• Utiliza publicaciones IP para comunicar información de enrutamiento con vecinos, pero no depende de UDP o TCP.

• Funciona en forma similar a UDP.• Soporta múltiples rutas entre origen y destino, con conmutación automática pueden transportar 2

líneas una misma trama de tráfico de forma cooperativa.• El equilibrio de carga de coste desigual permite distribuir el tráfico hasta entre 6 rutas de distinto coste,

para mayor rendimiento y fiabilidad.

LAS MEJORAS SOBRE RIP son:• ESCALABILIDAD MEJORADA: Admite una red con un número máxima de 255 saltos de router.• MÉTRICA SOFISTICADA: Distingue entre diferentes tipos de medios de conexión y costes asociados.• SOPORTE DE MÚLTIPLES RUTAS: Ofrece una convergencia de funcionalidad, enviando información

sobre cambios en la red a medida que está disponible.

LAS MÉTRICAS IGRP son compuestas, la más baja se considera la óptima, entre estas encontramos:• ANCHO DE BANDA: valor mínimo 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 máxima de transmisión 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 métrica preestablecida.CONFIGURACIÓN IGRPRouter(config) # router igrp 100Router(config-router)# network 192.168.1.0Router(config-router)# network 200.200.21.0

Página 63 de 183

Page 64: Guia Para Egetsu

Router(config-router)# variance 2Router(config-router)# traffic-share?CONVERGENCIA es la capacidad de los routers de poseer la misma información de enrutamiento actualizada.IGRP y EIGRP se redistribuyen automáticamente si ambos tienen el mismo número de sistema autónomo.PROCESO DE RECUPERACIÓN DE CONTRASEÑA

• PARA ROUTERS CISCO SERIES 2000,2500,3000,4000 con CPU motorola 680x0 y 7000 ejecutando IOS versión 10.0 o posterior.

PASO 1: Conecte una terminal o PC con software de emulación de terminal al puerto de consola del router. Acceda físicamente al router, apague y encienda el router.

PASO 2: Pulse la tecla de interrupción del terminal durante los primeros 60 segundos del encendido del router. En el caso de hyperterminal la combinación del control control+pausa dará la señal de interrupción en el router. Aparecerá el símbolo rommon> sin nombre del router. Si no aparece el símbolo, la terminal no está enviando la señal de interrupción correcta.PASO 3: Introduzca el comando orden de registro 0x2142 para arrancar desde flash e ignorar NVRAM.PASO 4: En el símbolo rommon> introduzca el comando i (initialize) para reiniciar el router, ignorando la configuración grabada en la NVRAM.PASO 5: Siga los pasos de arranque normales. Aparecerá el símbolo router>.PASO 6: La memoria RAM estará vacía, copie el contenido de la NVRAM a la RAM, para recuperar la configuración y contraseña no deseada. El nombre del router volverá a ser el original.PASO 7: Cambie la contraseña no deseada por una conocida.PASO 8: Guarde su nueva contraseña 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 símbolo del nivel exec privilegiado, responda yes al guardado de registro de configuración y confirme el reinicio.El router arrancará con la configuración y la contraseña conocida.

• PARA ROUTERS CISCO SERIES 1700,2600,4500,7200 y 7500Siga 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 ubicación de la imagen IOS que se debe cargar:COMANDO PARA ARRANCAR

DESDE…Router(config)#boot system flash [nombre_archivo] IOS de memoria flash

Router(config)#boot system rom IOS de memoria rom

Router(config)#boot system tftp [nombre_archivo] [dirección_servidor] IOS de memoria tftp

Si no existen comandos de boot system en la configuración, por omisión 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 botón “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_helperdir flash:

PASO 3: Escriba rename flash:config.txt flash:config.old para cambiar el nombre del archive de configuración. Este archivo contiene la definición de contraseñaPASO 4: Escriba boot para arrancar el sistema, responda NO a la continuación de diálogos de configuración.PASO 5:En el indicador de exec privilegiado escriba rename flash config.old flash:config.txt para cambiar el nombre del archivo de configuración al nombre original.PASO 6: Copie el archivo de configuración a la memoria , cambie la contraseña anterior (desconocida) con

Página 64 de 183

Page 65: Guia Para Egetsu

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

LAS LISTAS DE CONTROL DE ACCESO sirven para identificar el tráfico, después se filtra y se consigue una mejor administración del tráfico global de la red. Una lista de control de acceso IP es un listado secuencial de condiciones de permiso o prohibición que se aplican a las direcciones IP o a protocolos IP de capa superior.

• Identifican el tráfico que ha de ser filtrado en su tránsito por el router, pero no pueden filtrar el tráfico originado por el propio router.

• Se aplican a los puertos de líneas de Terminal virtual para permitir y denegar tráfico TELNET entrante o saliente.

• Establecen un control más fino o a la hora de separar el tráfico en diferentes colas de prioridades y personalizadas.

• Identifica el tráfico interesante, para activar las llamadas del enrutamiento por llamada telefónica 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 recepción en una interfaz.

Un deny significa descartar el paquete.Las instrucciones de una ACL operan en orden lógico secuencial, se evalúan 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 ESTÁNDAR comprueban las direcciones de origen de paquetes que

solicitan enrutamiento, el resultado es el permiso o negación de la salida del paquete por parte del protocolo, basándose en la dirección IP de la red-subred-host de origen. Las listas de acceso IP estándar verifican sólo la dirección de origen en la cabecera del paquete (capa 3).

LAS LISTA DE ACCESO EXTENDIDAS comprueban tanto la dirección origen como la del destino de cada paquete, verifican los protocolos especificados, números de puerto y otros parámetros. Las listas de acceso IP extendidas pueden verificar muchos elementos, incluyendo opciones de la cabecera del segmento (capa 4), como números de puerto TCP y UDP, direcciones IP de origen y destino; así como protocolos específicos.

LISTA DE ACCESO NUMERADASA las ACL se les asigna un número dentro de los siguientes rangos de lista de acceso numeradas:

ACL RANGO RANGO EXTENDIDO

Página 65 de 183

Page 66: Guia Para Egetsu

IP estándar 1-99 1300-1999IP extendida 100-199 2000-2699Prot, type code 200-299DECnet 300-399XNS estándar 400-499XNS extendida 500-599Apple talk 600-699IPX estándar 800-899IPX extendida 900-999Filtro SAP 1000-

1099

CONFIGURACIÓN DE ACL ESTÁNDARRouter# configure terminalRouter(config)# access-list [1-99] [permit/deny][dirección origen] [ mascara comodín]Router(config)# interface [ tipo y no. de interfaz]Router(config-if)# ip access-group [no. de ACL] [in/out]

CONFIGURACIÓN DE ACL EXTENDIDARouter# configure terminalRouter(config)# access-list [1-99] [permit/deny] [protocolo] [dirección origen] [ mascara comodín] [dirección destino] [máscara comodín] [puerto] [established] [log]Router(config)# interface [ tipo y no. de interfaz]Router(config-if)# ip access-group [no. de ACL] [in/out]

APLICACIÓN DE UNA ACL A LINEA TELNETRouter# configure terminalRouter(config)# line vty 0 4Router(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][dirección origen] [ mascara comodín]Router(config-if)#no ip access-group [no. de ACL] [in/out]

Redes de Computo

De igual forma es posible la CONFIGURACIÓN DE LISTA DE ACCESO NOMBRADAS, en vez de asignarle un número, se le asigna un nombre:Router# configure terminalRouter(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 asociación de ACLRouter(config-if)# ip access-group [nombre] [in/out] Para VERIFICACIÓN DE ACLs se pueden utilizar los siguientes comandos:Show ip interface [tipo de interfaz] [no. de interfaz]Show access-listShow access-lists

• Una lista de acceso puede ser aplicada a múltiples interfaces

• Solo puede haber una ALC por protocolo, por dirección y por interfaz.

Página 66 de 183

Page 67: Guia Para Egetsu

• A menos que termine una ACL con una condición de permiso implícito en toso, se denegará todo el tráfico que no cumpla ninguna de las condiciones establecidas en la lista ya que existe un deny (permisos de servidor de Transact-SQL) implícito al final de cada lista.

• Las ACLs extendidas deben colocarse normalmente lo más cerca posible del origen del tráfico que será denegado, mientras que las estándar lo más cerca posible del destino.

Página 67 de 183

Page 68: Guia Para Egetsu

Representación de sistemas con UML, uso y ciclo iterativo e incremental

4.- ANALISIS Y DISEÑO DE SISTEMAS DE INFORMACION

Como sistema se define a un conjunto de elementos interrelacionados con un fin común. Todo sistema requiere información y ésta va a servir para ser procesada y evaluada para tomar una o más decisiones sobre el sistema.

El término Sistema de Información tiene dos definiciones importantes

a) Es una disposición de componentes integrados entre sí cuyo objetivo es satisfacer las necesidades de información en una organización

b) Es una disposición de personas, actividades, datos, redes y tecnología integrados entre sí con el propósito de apoyar y mejorar las operaciones y la toma de decisiones.

Análisis se le llama al proceso de identificación e interpretación de hechos. Es un diagnóstico de problemas empleando información con el fin de recomendar mejoras. Dentro de las actividades que se realizan en un análisis se encuentran: examinar, detallar, describir, descomponer, observar, descubrir, comparar, estudiar, explorar, cuestionar, diagnosticar y pronosticar

Para realizar un análisis se necesita tomar en cuenta los siguientes puntos:1. Se debe tener una situación.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 más eficiente al sistema.5. Marcar un objetivo a lograr.

Un análisis no es:-El estudio de una empresa para buscar procesos ya existentes.-Determinar los cambios que deberían efectuarse.-Determinar que la mejor forma de resolver un problema es modificar a un subsistema

Los analistas de sistemas nacieron con la Revolución Industrial. No trabajaban en un principio con computadoras; en vez de esto eran ingenieros industriales cuyas responsabilidades se centraban en el diseño de sistemas de producción eficaces.

Un analista de sistemas, es una persona que comprende tanto las necesidades de la empresa como la tecnología informática. Los analistas de sistemas transforman las necesidades de información y de los usuarios en soluciones tecnológicas basadas en computadoras

Las responsabilidades de un analista cambian de una organización a otra; a continuación se mencionan solo algunas de las actividades más comunes asignadas a los analistas de sistema

1. Análisis de sistemas: en este caso su responsabilidad es conducir estudios sobre los sistemas relevantes dentro de la organización, para detectar hechos relevantes. Considerar que la parte más importante es reunir la información y determinar los requerimientos. En este punto, sólo el analista es responsable del análisis de la información.

Representación de sistemas con UML, uso y ciclo iterativo e incremental

Página 68 de 183

Page 69: Guia Para Egetsu

2. Análisis y diseño de sistemas: el analista tiene la responsabilidad adicional de diseñar el nuevo sistema, desarrollando las especificaciones de diseño, tomando como base el análisis de los hechos previamente recolectados.

3. Análisis, diseño y programación: el analista cuando realiza esta actividad conduce la investigación, desarrolla el diseño del nuevo sistema y describe el software necesario para implantar el diseño.

LOS ELEMENTOS DE UN SISTEMA DE INFORMACIÓN SON:

a) Procedimientos y prácticas habituales de trabajo.

b) Información: el analista de sistemas debe adaptar la información para ser entregada, por lo que debe saber a quién se le va a entregar y de qué forma la requiere.

La información en las organizaciones tiene dos tipos de flujo:1. Horizontal: es la información que se da al mismo nivel y es directa.2. Vertical: esta información se puede dar de dos formas:

Los usuarios.- Los trabajadores de la información son aquellos que se ganan la vida al crear, utilizar, procesar, administrar o intercambiar información, 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 interactúan con el sistema como pueden ser los gerentes y empleados de una organización.

Los usuarios se clasifican en cuatro categorías:1. Usuarios primarios: son los que interactúan con el sistema. Ellos alimentan al sistema con los datos de entrada o reciben salidas por algún medio de salida.2. Usuarios indirectos: son aquellos que se benefician de los resultados o reportes generados por los sistemas pero que no interactúan de manera directa con el hardware o software.3. Usuarios gerente: son los usuarios que tienen responsabilidades administrativas dentro de los sistemas de aplicación4. Usuarios directivos: estos usuarios toman ciertas responsabilidades en el desarrollo de los sistemas de información. Los sistemas de información están formados por subsistemas que incluyen hardware, software y medios de almacenamiento de información

Los sistemas de información se dividen en:1. Sistemas transaccionales2. Sistemas para la gestión de información3. Sistemas de información ejecutiva4. Sistemas de apoyo a las decisiones5. Sistemas expertos

El uso de información puede iniciarse por un sin número de razones como:

-Petición de una persona.-Solicitud de empleados y usuarios del sistema.-Necesidades de información de los niveles directivos.

Representación de sistemas con UML, uso y ciclo iterativo e incremental

Antes de implantar el plan de investigación es necesario conocer:

Página 69 de 183

Page 70: Guia Para Egetsu

- FUENTES INTERNAS: son todas las personas contactos en la investigación, aquellas de nivel jerárquico de la unidad afectada, así como los usuarios operativos y administradores.

- FUENTES EXTERNAS: considerar a todas las dependencias que tienen relación al sistema a investigar, sus clientes y personal que se encuentra involucrado, sin olvidar a la información que ellos generan.

-TÉCNICAS DE RECOLECIÓN DE DATOS: hay que considerar que el trabajo del análisis no es una función para un solo analista; este debe crear grupos de trabajo que deben encargarse de recopilar y analizar datos para saber si existe coincidencia de anomalías en el sistema.

REPRESENTACION DE SISTEMAS CON UMLUnified Modeling Languaje – lenguaje de modelado unificadoUML [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 información que es utilizada o producida mediante un proceso de desarrollo de software.

UML se quiere convertir en un lenguaje estándar con el que sea posible modelar todos los componentes del proceso de desarrollo de aplicaciones una aplicación en tiempo real, que el proceso de desarrollo de una aplicación orientada a gestión, por poner un ejemplo. Las diferencias son muy marcadas y afectan a todas las fases del proceso. El método del UML recomienda utilizar los procesos que otras metodologías tienen definidos.

Los IniciosA partir del año 1994, Grady Booch [Booch96](precursor de Booch '93) y Jim Rumbaugh (creador de OMT) se unen en una empresa común, Rational Software Corporation, y comienzan a unificar sus dos métodos.

• El método debía ser capaz de modelar no sólo sistemas de software sino otro tipo de sistemas reales de la empresa, siempre utilizando los conceptos de la orientación a objetos (OO).

• Crear un lenguaje para modelado utilizable a la vez por máquinas y por personas.• Establecer un acoplamiento explícito de los conceptos y los artefactos ejecutables.• Manejar los problemas típicos de los sistemas complejos de misión crítica.Lo que se intenta es lograr con esto que los lenguajes que se aplican siguiendo los métodos más utilizados sigan evolucionando en conjunto y no por separado. Y además, unificar las perspectivas entre diferentes tipos de sistemas (no sólo software, sino también en el ámbito de los negocios), al aclarar las fases de desarrollo, los requerimientos de análisis, el diseño, la implementación y los conceptos internos de la OO.

2. Modelado de objetos

En la especificación 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 más modelos, posiblemente desde distintos puntos de vista.

El UML es una técnica de modelado de objetos y como tal supone una abstracción de un sistema para llegar a construirlo en términos concretos. El modelado no es más que la construcción de un modelo a partir de una especificación.

Representación de sistemas con UML, uso y ciclo iterativo e incremental

Un modelo es una abstracción 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 músicos representan la música en forma de notas musicales, los artistas pintan sobre el lienzo con carboncillos antes de empezar a utilizar los óleos, etc.

Página 70 de 183

Page 71: Guia Para Egetsu

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 creación del UML se persigue obtener un lenguaje que sea capaz de abstraer cualquier tipo de sistema, sea informático o no, mediante los diagramas, es decir, mediante representaciones gráficas que contienen toda la información relevante del sistema.

Un diagrama es una representación gráfica de una colección de elementos del modelo, que habitualmente toma forma de grafo donde los arcos que conectan sus vértices son las relaciones entre los objetos y los vértices se corresponden con los elementos del modelo. Artefactos para el Desarrollo de Proyectos

Un artefacto es una información que es utilizada o producida mediante un proceso de desarrollo de software. Pueden ser artefactos un modelo, una descripción o un software..

Se necesita más de un punto de vista para llegar a representar un sistema. UML utiliza los diagramas gráficos para obtener estos distintos puntos de vista de un sistema:

• Diagramas de Implementación. • Diagramas de Comportamiento o Interacción. • Diagramas de Casos de uso. • Diagramas de Clases.

Diagramas de Implementación Se derivan de los diagramas de proceso y módulos de la metodología de Booch, aunque presentan

algunas modificaciones. Los diagramas de implementación muestran los aspectos físicos del sistema. Incluyen la estructura del código fuente y la implementación, en tiempo de implementación. Existen dos tipos:Diagramas de componentes Diagrama de plataformas despliegue

Diagramas de componentes

Página 71 de 183

Page 72: Guia Para Egetsu

Muestra la dependencia entre los distintos componentes de software, incluyendo componentes de código fuente, binario y ejecutable. Un componente es un fragmento de código software (un fuente, binario o ejecutable) que se utiliza para mostrar dependencias en tiempo de compilación.

Diagrama de plataformas o despliegue

Muestra la configuración de los componentes hardware, los procesos, los elementos de procesamiento en tiempo de ejecución y los objetos que existen en tiempo de ejecución. En este tipo de diagramas intervienen nodos, asociaciones de comunicación, componentes dentro de los nodos y objetos que se encuentran a su vez dentro de los componentes. Un nodo es un objeto físico en tiempo de ejecución, es decir una máquina que se compone habitualmente de, por lo menos, memoria y capacidad de procesamiento, a su vez puede estar formado por otros componentes.

Diagramas de Interacción o Comportamiento Muestran las interacciones entre objetos ocurridas en un escenario (parte) del sistema. Hay varios tipos:Diagrama de secuencia.Diagrama de colaboración. Diagrama de estado. Diagrama de actividad.

Representación de sistemas con UML, uso y ciclo iterativo e incremental

Página 72 de 183

Page 73: Guia Para Egetsu

Diagrama de secuenciaMuestran las interacciones entre un conjunto de objetos, ordenadas según 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 colaboración, es decir son instancias concretas de una clase que participa en la interacción. El objeto puede existir sólo durante la ejecución de la interacción, se puede crear o puede ser destruido durante la ejecución de la interacción. Un diagrama de secuencia representa una forma de indicar el período durante el que un objeto está desarrollando una acción directamente o a través de un procedimiento

Diagrama de colaboraciónMuestra la interacción 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 información similar, pero en una forma diferente.

Página 73 de 183

Page 74: Guia Para Egetsu

Diagramas de actividad En realidad se corresponden con un caso especial de los diagramas de estado donde los estados son

estados de acción (estados con una acción interna y una o más transiciones que suceden al finalizar esta acción, o lo que es lo mismo, un paso en la ejecución de lo que será un procedimiento) y las transiciones vienen provocadas por la finalización 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 estadoRepresentan la secuencia de estados por los que un objeto o una interacción entre objetos pasa

durante su tiempo de vida en respuesta a estímulos (eventos) recibidos. Representa lo que podemos denominar en conjunto una máquina de estados. Un estado en UML es cuando un objeto o una interacción satisface una condición, desarrolla alguna acción o se encuentra esperando un evento.

Página 74 de 183

Page 75: Guia Para Egetsu

Diagramas de Casos de UsoUnos 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 interacción con los usuarios y/o otros sistemas. O lo que es igual, un diagrama que muestra la relación entre los actores y los casos de uso en un sistema. Una relación es una conexión entre los elementos del modelo, por ejemplo la relación y la generalización 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 ClasesLos diagramas de clases representan un conjunto de elementos del modelo que son estáticos, 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 estáticos son los siguientes:

Representación 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, permitiéndose que un paquete contenga otro paquete.

Página 75 de 183

Page 76: Guia Para Egetsu

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, métodos, relaciones y significado. En UML una clase es una implementación 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.

Operación. También conocido como método, 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 depósito para mantener las variables de clase y proporcionan operaciones (método 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 implementación. Un tipo establece una especificación de comportamiento para las clases.

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

Relación entre clases: Las clases se relacionan entre sí de distintas formas, que marcan los tipos de

relaciones existentes:

Asociación: Es una relación que describe un conjunto de vínculos entre clases. Pueden ser binarias o n-arias, según se implican a dos clases o más. Las relaciones de asociación 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 asociación (existen otros tipos de roles según la relación a la que identifiquen). Indican la información más importante de las asociaciones. Una asociación 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 asociación.Existe una forma especial de asociación, la agregación, que especifica una relación entre las clases donde el llamado "agregado" indica él todo y el "componente" es una parte del mismo.

Composición: Es un tipo de agregación donde la relación de posesión es tan fuerte como para marcar otro tipo de relación. Las clases en UML tienen un tiempo de vida determinado, en las relaciones de composición, 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.

Generalización: Cuando se establece una relación 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 más de una clase que se comporte como subclase.

Representación de sistemas con UML, uso y ciclo iterativo e incremental

Dependencia: Una relación 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 DesarrolloUML 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 tendrán en común con otras organizaciones que utilicen UML serán los tipos de diagramas.

Página 76 de 183

Page 77: Guia Para Egetsu

UML es un método 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 evolución de prototipos ejecutables que se muestran a los usuarios y clientes

En el ciclo de vida iterativo a cada iteración se reproduce el ciclo de vida en cascada a menor escala Los objetivos de una iteración se establecen en función de la evaluación 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

iteración Cada iteración comprende:• Planificar la iteración (estudio de riesgos)• Análisis de los Casos de Uso y escenarios• Diseño de opciones arquitectónicas• Codificación y pruebas. La integración del nuevo código con el existente de iteraciones anteriores se

hace gradualmente durante la construcción• Evaluación de la entrega ejecutable (evaluación del prototipo en función de las pruebas y de los

criterios definidos)• Preparación de la entrega (documentación e instalación del prototipo)

Desarrollo IterativoRational 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 iteración comienza con una primera aproximación del análisis, diseño e implementación para identificar los riesgos del diseño, los cuales se utilizan para conducir la iteración, primero se identifican los riesgos y después se prueba la aplicación para que éstos se hagan mínimos.

Cuando la implementación pasa todas las pruebas que se determinan en el proceso, ésta se revisa y se añaden los elementos modificados al modelo de análisis y diseño. Una vez que la actualización del modelo

se ha modificado, se realiza la siguiente iteración.

Página 77 de 183

Page 78: Guia Para Egetsu

Modelado CASE, reingeniería de software e ingeniería de reversa

MODELADO CASE

Concepto de CASE

CASE: Ingeniería del Software asistida por ordenador (Computer Aided Software Engineering).

Definición:Toda herramienta o paquete informático que proporcione una ayuda, más o menos automática, en cualquiera de las etapas del ciclo de vida de desarrollo de un sistema informático.

Objetivo básico del CASE:Resolver la “crisis del software” a través de la automatización

Tipos de Herramientas CASE.

Integración de Herramientas CASE. Repositorio. Metodologías y Herramientas CASE. Implantación del CASE. El futuro del CASE. Beneficios del CASE. Ejemplos de Herramientas CASE Herramientas de planificación y gestión de proyectos (seguimiento, análisis

de riesgos, etc.) Herramientas de análisis y diseño. Herramientas de prototipado, maquetado. Herramientas de programación. Herramientas de integración y pruebas. Herramientas de documentación . Herramientas de ayuda al mantenimiento. Herramientas de gestión de configuraciones. Herramientas de planificación estratégica de sistemas, de modelado de

procesos, etc.

Integración de Herramientas CASE

Un conjunto de herramientas CASE sólo es útil si: Comparten información. Propagan o comunican los cambios. Tienen una interfaz consistente y flexible. Integración de herramientas CASE: Combinación de distintas herramientas. Herramienta única (I-CASE, Integrated-CASE).

Entorno CASE

Conjunto de herramientas CASE que se basan en una concepciónintegrada de la interacción entre los distintos componentes del entorno y entre los usuarios y los componentes.

Modelado CASE, reingeniería de software e ingeniería de reversa

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

Página 78 de 183

Page 79: Guia Para Egetsu

Ventajas: Transferencia “natural” de datos/información natural Reducción del esfuerzo necesario para efectuar actividades globales (GCS,

documentación, calidad, etc.) Mayor control del proyecto (visión global). Mejor coordinación entre el equipo de trabajo. Permitir acceso directo y no secuencial a cualquiera de las herramientas

Esta herramienta propone la utilización de cuatro tipos de modelo para realizar un diseño del sistema, utilizando una vista estática y otra dinámica de los modelos del sistema, uno lógico y otro físico. 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 combinación de herramientas software (aplicaciones) y de metodologías de desarrollo:1. Las herramientas permiten automatizar el proceso de desarrollo del software.2. Las metodologías definen los procesos automatizar.

La siguiente clasificación es la más habitual basada en las fases del ciclo de desarrollo que cubren:Upper CASE (U-CASE), herramientas que ayudan en las fases de planificación, análisis de requisitos yestrategia del desarrollo, usando, entre otros diagramas UML.Middle CASE (M-CASE), herramientas para automatizar tareas en el análisis y diseño de la aplicación.Lower CASE (L-CASE), herramientas que semiautomatizan la generación de código, crean programas de detección de errores, soportan la depuración de programas y pruebas. Además automatizan la documentación completa de la aplicación. .Existen otros nombres que se le dan a este tipo de herramientas, y que no es una clasificación excluyente entre sí, ni con la anterior:•Integrated CASE (I-CASE), herramientas que engloban todo el proceso de desarrollo software, desde análisis hasta implementación.•MetaCASE, herramientas que permiten la definición de nuestra propia técnica 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 definiéramos nuestro propio UML, con nuestros elementos, restricciones y relaciones posibles.

REINGENIERIA DE SOFTWARE E INGENIERIA DE REVERSA

Técnicas y Herramientas de Reingeniería Software

OBJETIVOS Describir los conceptos asociados a la Reingeniería Software Tipos de Reingeniería y Mantenimiento Técnicas y Métodos de Reingeniería Herramientas disponibles Prácticas

2.1 Concepto y tipos de Reingeniería La Reingeniería consiste en la automatización del mantenimiento del software.

Modelado CASE, reingeniería de software e ingeniería de reversa

La Reingeniería es también el proceso de examinar sistemas de software existentes y/o modificarlos con ayuda de herramientas de forma automáticao semi-automática.

Página 79 de 183

Page 80: Guia Para Egetsu

Analizar sistemas existentes para entender su diseño y desarrollar estrategias para extraer y reutilizar componentes. Implica la rehabilitación y modernización de los componentes.

Ventajas de los procesos de Reingeniería Proporcionar asistencia automatizada a las tareas de mantenimiento y evolución del software. Reducir errores y costes. Mejorar los procesos de conversión y migración. Extender el ciclo de vida de las aplicaciones. Facilitar el entendimiento de los programas.

Formas de Reingeniería Software Análisis: proceso de examinar sistemas existentes para entender mejor el sistema y sus componentes. Reestructuración: cambios en la forma del software(ej: código, documentación, datos) pero no su

funcionalidad Ingeniería Inversa: analizar software y reconstruir las relaciones entre sus partes. Migración: conversión de software o actualización de tecnología

Concepto y tipos de Reingeniería• Reformateo: Identificación y alineación de palabras clave, nombres de datos, etc.• Reestructuración de Control: Convierte código no estructurado en código

equivalente pero estructurado. Refuerza el mantenimiento.• Reestructuración de Datos: Diseña y crea nuevas estructuras de datos más

flexibles.• Redocumentación: Entendimiento del software y reconstruir documentación• Re-desarrollo: Incluye la reescritura de partes del sistema utilizando un nuevo

entorno de desarrollo.• Ingeniería Inversa: Extrae información del código fuente para obtener información (elementos,

relaciones) de alto nivel del sistema. Trata de reconstruir la lógica de un sistema de forma parcial o total.

• Ingeniería Inversa de Datos: Extrae relaciones de datos de alto nivela partir de estructuras de datos.

• Ingeniería Inversa de Procesos: Extrae especificaciones de alto nivel apartir del código fuente.

Migración: Evolución del sistema a otro más eficiente y/o mantenible. Datos: Migración a otros sistemas de datos más eficientes. De Interfaces de Usuario: Realiza un rediseño o reingeniería de los interfaces por otros más modernos o

con mayor usabilidad. De Lenguaje:: Generalmente requerido necesidades tecnológicas. De Plataforma: Cambio de una plataforma a otra. De Arquitectura: Transformación de la arquitectura de un sistema.

Ejemplo: Una monolítica a una cliente servidor.

Página 80 de 183

Page 81: Guia Para Egetsu

Modelado CASE, reingeniería de software e ingeniería de reversa

La Ingeniería Inversa trata de analizar sistemas de software para reconstruir la descripción de alto nivel a partir de las de bajo nivel.

Básicamente consiste en analizar el código para extraer relaciones y el diseño de todo o parte del sistema. La ingeniería inversa trata de re-documentar el sistema y descubrir información de diseño con el fin de

poder entenderlo mejor.

Herramientas de Ingeniería Inversa y Directa

IBM RATIONAL ROSE I. Inversa: C, C++, Java, CORBA, XML_DTD, Ada I. Directa: Idénticos lenguajes Obtención de diagramas UML desde código Generación de esqueletos de código anotados Visualizador Modelado físico de la arquitectura (diagramas de componentes) Modelado de datos (Oracle) Integración con Requisite Pro

TELELOGIC TAU I. Inversa: C, C++, Java, CORBA, XML_DTD, Ada I. Directa: Obtención de diagramas UML 2.0 desde código Comparación gráfica y fusión de modelos UML Soporte de símbolos gráficos específicos 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 específica de Ing. Inv

INGENIERIA INVERSA(Reverse engineering). La ingeniería inversa es el proceso de descubrir los principios tecnológicos de un dispositivo, objeto o sistema, a través de razonamiento abductivo de su estructura, función y operación.

La ingeniería inversa se trata de tomar algo (un dispositivo mecánico o electrónico, 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.

Página 81 de 183

Page 82: Guia Para Egetsu

Modelado CASE, reingeniería de software e ingeniería de reversa

Usos de la ingeniería inversa

* La ingeniería inversa suele ser empleada por empresas, para analizar si el producto de su competencia infringe patentes de sus propios productos.

* Muchas veces, la ingeniería inversa es utilizada en el área militar para investigar (y copiar) las tecnologías de otras naciones, sin obtener planos ni detalles de su construcción o desarrollo.

* En el software y en el hardware, la ingeniería 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 fabricación de los productos de los que intenta ser compatibles.

* La ingeniería inversa también es empleada para comprobar la seguridad de un producto, generar keygens de aplicaciones, reparación de productos, etc.

Página 82 de 183

Page 83: Guia Para Egetsu

Calidad en el desarrollo de software

INGENIERIA DE SOFTWARE Y CALIDAD

Algunos desarrolladores de software continúan creyendo que la calidad del software es algo en lo que se empieza a preocupar una vez que se ha generado el código. ¡Nada más lejos de la realidad! Para empezar a definir que es la calidad del software, es necesario primero comprender el concepto de calidad.

A continuación se presenta el concepto de calidad según la norma ISO 9000.

Calidad.- Conjunto de propiedades y de características de un producto o servicio, que le confiera aptitud para satisfacer unas necesidades explícitas o implícitas (ISO 8402).

Control de Calidad.- Conjunto de técnicas y actividades de carácter 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 líneas 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 automáticas o una combinación de herramientas automáticas e interacción humana.

Garantía de Calidad.- Conjunto de acciones planificadas y sistemáticas necesarias para proporcionar la confianza adecuada de que un producto o servicio satisface los requerimientos dados sobre calidad.El objetivo de la garantía de calidad es proporcionar la gestión para informar de losdatos necesarios sobre la calidad del producto, por lo que se va adquiriendo una visión más 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 más 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 losrequerimientos y las necesidades y expectativas del cliente o usuario:Respuesta: Calidad de software

2) Según McCall los factores que determinan la calidad de software se centran en 3 aspectos importantes; cuales son:Características Operativas, Capacidad de soportar cambios y adaptabilidad a nuevos entornos.

Características operativas:• Corrección• Fiabilidad• Eficiencia• Seguridad• Usabilidad

Calidad en el desarrollo de software

Capacidad de soportar cambios:• Facilidad de mantenimiento

Página 83 de 183

Page 84: Guia Para Egetsu

• FlexibilidadAdaptabilidad a nuevos entornos:• Portabilidad• Reusabilidad• Interoperabilidad

3) Menciona las características del software:Respuesta:a) El software se desarrolla, no se fabrica en un sentido clásico.b) El software no se “estropea”.c) La Mayoría 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 cascadab) Modelo por prototiposc) Modelo de desarrollo rápidod) Modelo de desarrollo evolutivoe) Modelo incrementalf) 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) Análisis de sistemasb) Diseño de sistemasc) Desarrollo de sistemasc) Pruebas de sistemasd) Implementación de sistemasd) Mantenimiento de sistemas

Análisis 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 informático.

Diseño de sistemas: Es un conjunto de pasos repetitivos que permiten al diseñador describir todos los aspectos del sistema a construir, siendo el “como” de un sistema informático.

Desarrollo de sistemas: Es la fase de la programación o implementación propiamente dicha. Aquí se implementa el código fuente del sistema.

Pruebas de sistema: Es un conjunto de actividades que se pueden planificar poradelantado y llevar acabo sistemáticamente para validar el funcionamiento delsistema.

Implementación de sistema: En esta fase se hace la entrega del sistema al usuario para comience con el uso y operación 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 losdesarrolladores de software a mejorar su funcionamiento disciplinando la manera en que desarrollan software.

Página 84 de 183

Page 85: Guia Para Egetsu

El PSP se puede aplicar a muchas partes del proceso del desarrollo del software, incluyendo el análisis, definición de requerimientos, desarrollo del programa, documentación, las pruebas del sistema, y mantenimiento.

El PSP es un proceso de software diseñado para ser utilizado por un Desarrollador de Software. Es utilizado para guiar el planeamiento y desarrollo de módulos de software o pequeños 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 Métricas del PSP:Respuesta: Densidad de defectosÍndice de RevisiónÍndices de tiempo de desarrolloÍndices de defectosRendimientoDefectos por horaEfectividad de remoción de defectosEvaluación del índice de fallasCon datos de tamaño, 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 PSPRespuesta: Comenzando con los requerimientos, el primer paso en el proceso de PSP es la planificación. Existe un script de planificación que sirve de guía 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 tamaño del programa, e ingresar esos datos en el formulario de sumario del plan. Al finalizar, deben entregar elproducto finalizado y el formulario de sumario del plan completado.

9) ¿Cuáles es el camino(niveles) de PSP y con qué nombre se identifican?Respuesta:PSP0 – Medición personalPSP1 - Planeación PersonalPSP2 - Administración de Calidad PersonalPSP• - Proceso Personal Cíclico

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 cómo 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 diseñado para equipos de trabajo de desarrollo de

Página 85 de 183

Page 86: Guia Para Egetsu

software y mantenimiento de entre 2 y 15 ingenieros:Respuesta: TSP (Team Software Process)TSP nos muestra cómo construir un equipo auto dirigido y como ser un miembroefectivo de equipo. Nos enseña como dirigir y soportar estos equipos y comomantener un medio para obtener un alto nivel de desarrollo.

11)Menciona las fases del TSP:Respuesta: 1. Requerimientos2. Diseño3. Implementación4. Pruebas5. Postmortem

12) Completa la siguiente grafica de acuerdo a la relación del TSP con el CMMI yPSP:Respuesta: OrganizaciónEquipoIndividualMientras que el CMMI se enfoca en lo que tienen que hacer las organizaciones, noespecifica cómo alcanzar esos objetivos. El PSP provee una guía especifica en como los ingenieros de software de manera individual pueden continuamente mejorar su desempeño. El TSP provee guías específicas de cómo ingenieros capacitados en PSP pueden trabajar de manera efectiva como miembros de un equipo de alto desempeño.CMMITSPPSP

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 están 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) Método de definir los procesos a realizar por una organización:Respuesta: CMMI

14) Cuales son las disciplinas del CMMI:Respuesta: CMMI-SWCMMI-SE/SWCMMI-SE/SW/IPPDCMMI-SE/SW/IPPD/SS

Calidad en el desarrollo de software

15) Cuales son los 5 niveles del CMMI y da una breve explicación de ellos:Respuesta: Inicial o Nivel 1 CMM - CMMI. Este es el nivel en donde están 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 métodos de ingeniería no se encuentran definidos. El desarrollo se basa en la heroicidad y responsabilidad de los individuos.

Página 86 de 183

Page 87: Guia Para Egetsu

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: ○ Gestión de requisitos ○ Planificación de proyectos ○ Seguimiento y control de proyectos ○ Gestión de proveedores ○ Aseguramiento de la calidad ○ Gestión de la configuración

Definido o Nivel 3 CMM - CMMI. Resumiéndolo mucho, este alcanzar este nivel significa que la forma de desarrollar proyectos (gestión e ingeniería) esta definida, por definida quiere decir que esta establecida, documentada y que existen métricas (obtención de datos objetivos) para la consecución de objetivos concretos.

Los procesos que hay que implantar para alcanzar este nivel son: ○ Desarrollo de requisitos ○ Solución Técnica ○ Integración del producto ○ Verificación ○ Validación ○ Desarrollo y mejora de los procesos de la organización ○ Definición de los procesos de la organización ○ Planificación de la formación ○ Gestión de riesgos ○ Análisis y resolución de toma de decisiones

La mayoría 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 más allá porque tienen cubiertas la mayoría de sus necesidades.

Cuantitativamente Gestionado o Nivel 4 CMM - CMMI. Los proyectos usan objetivos medibles para alcanzar las necesidades de los clientes y la organización. Se usan métricas para gestionar la organización.

Los procesos que hay que implantar para alcanzar este nivel son: ○ Gestión cuantitativa de proyectos ○ Mejora de los procesos de la organización

Optimizado o Nivel 5 CMM - CMMI. Los procesos de los proyectos y de la organización están orientados a la mejora de las actividades. Mejoras incrementales e innovadoras de los procesos que mediante métricas son identificadas, evaluadas y puestas en práctica.

Los procesos que hay que implantar para alcanzar este nivel son: ○ Innovación organizacional ○ Análisis y resolución de las causas

Normalmente las empresas que intentan alcanzar los niveles 4 y 5 lo realizan simultáneamente ya que están muy relacionados.

16) Cual es el propósito fundamental del CMMI:

Página 87 de 183

Page 88: Guia Para Egetsu

Respuesta: Proporcionar una guía para mejorar los procesos de la organización y la habilidad para administrar el desarrollo, adquisición y mantenimiento de productos y servicios.

17) Cuales son las representaciones del modelo CMMI:Respuesta: Representación por etapas o por niveles de madurezRepresentación continua.

18) Cuales son los beneficios de la representación Continua:Respuesta: Permite seleccionar el orden de mejora que mejor se adapte a los objetivos de negocio de la organización y mitigar en su caso las áreas de mayor riesgo. Permite compararse con otras organizaciones tomando como base las áreas de proceso. Permite una fácil migración de EIA/IS-731 a CMMI

19) Cuales son los beneficios de la representación por etapas:Respuesta: Proporciona una secuencia predefinida de la mejora en las áreas de proceso agrupadas por niveles de madurez.Permite una fácil migración de SW/CMM a CMMI.Permite conocer la madurez de la organización como resultado de unaevaluación.Los niveles de madurez tienen una base secuencial.

20) Menciona la principal terminología utilizada en CMMI:Respuesta: ”Establecer y mantener”: No solo se debe definir una política dentro de una organización, sino que también debe estar formalmente documentada, aprobada y utilizada por toda la organización.Practicas: Describen las acciones necesarias requeridas para cubrir los elementos claves de un proceso. La esencia de un modelo CMMI está en las prácticas.Nivel de Madurez: Es un conjunto pre-definido de áreas de proceso que deben ser cubiertas por completo para cumplir con un nivel específico.Área de proceso: Conjunto de prácticas relacionadas entre sí, que cuando son implementadas de forma colectiva, satisfacen un conjunto de objetivos que cubren esa área.Objetivo específico: 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 específicos SG’s de un área de proceso. Permiten establecer la madurez de los procesos de una organización.

Página 88 de 183

Page 89: Guia Para Egetsu

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 día, los más 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 más importante de todos es el Sistema Operativo.

Definición (de Sistema Operativo): Software de Sistema que se encarga de la gestión de recursos y su administración tanto de software como de hardware, ocultando los detalles al usuario, permitiéndole una interacción más cómoda 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 información de forma rápida y correcta.

Un sistema operativo tradicional se puede ver como un modelo en capas superpuestas(capas de cebolla) desde la más interna, que está pegada con el hardware de la computadora, y la más externa que está en interacción directa con el usuario.

Estos componentes son:

Kernel o Núcleo. 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 envía al núcleo 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 computación estándar. Una de las aplicaciones más utilizadas es la interfaz gráfica que facilita enormemente la interacción 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 ejecuciónArchivo: Secuencia de bytes almacenados en cualquier dispositivo de memoria secundaria

Sistemas Operativos

Página 89 de 183

Page 90: Guia Para Egetsu

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:

• MonousuariosLos SO monousuarios son aquellos que soportan a un usuario a la vez, sin importar el número de

procesadores que tenga la computadora o el número de procesos o tareas que el usuario pueda ejecutar en un mismo instante de tiempo. Las computadoras personales típicamente se han clasificado en este renglón.

• MultiusuariosLos SO multiusuarios son capaces de dar servicio a más 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 número de procesadores en la máquina ni el número de procesos que cada usuario puede ejecutar simultáneamente.

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 más 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 común en la mayoría de los microordenadores o las microcomputadoras. Sin embargo el tiempo compartido se asocia generalmente con el acceso de varios usuarios a computadoras más grandes y a organizaciones de servicios, mientras que la multitarea relacionada con las microcomputadoras implica la realización de múltiples tareas por un solo usuario

Esto facilita la reducción de tiempo ocioso en el procesador, e indirectamente implica reducción de los costos de energía y equipamiento para resolver las necesidades de cómputo de los usuarios. Ejemplos de sistemas operativos con característica de multiusuario son VMS y Unix en sus múltiples 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 domésticas y para clientes de Windows 2000, Windows XP y Windows Vista proveen soporte para ambientes personalizados por usuario, pero no admiten múltiples usuarios usando el escritorio del sistema concurrentemente, las versiones de servidor de Windows 2000 y Windows 2003 (así como la futura versión de Vista "Longhorn") proveen servicio de escritorio a múltiples usuarios de forma concurrente a través de Terminal Services.

Un sistema operativo multiusuario, a diferencia de uno monousuario, debe resolver una serie de complejos problemas de administración de recursos, memoria, acceso al sistema de archivos, etc.

Multitarea

Es una característica de un sistema operativo moderno. Permite que varios procesos sean ejecutados al mismo tiempo compartiendo uno o más procesadores.Tipos de multitarea:

• Nula: El sistema operativo carece de multitarea. Aun así puede lograrse a veces algo parecido a una multitarea implementándola en espacio de usuario, o usando trucos como los TSR de MS-DOS. Un ejemplo típico 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 problemática, 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 también a latencias muy irregulares, y la imposibilidad de tener en cuenta este esquema en sistemas operativos de tiempo real. Un ejemplo sería Windows hasta la versión 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 estén esperando para utilizarlo. Cada proceso utiliza el

Página 90 de 183

Page 91: Guia Para Egetsu

procesador durante cortos períodos de tiempo, pero el resultado final es prácticamente igual que si estuviesen ejecutándose al mismo tiempo. Ejemplos de sistemas de este tipo serían Unix y sus clones (FreeBSD, Linux...), Windows NT... • Real: Sólo se da en sistemas multiprocesador. Es aquella en la que varios procesos se ejecutan

realmente al mismo tiempo, en distintos microprocesadores. Suele ser también preferente. Ejemplos de sistemas operativos con esa capacidad: variantes Unix, Linux, Windows NT, etc.

Sistema Operativo Linux

En un sentido estricto, sólo se puede hablar de una versión de Linux en un momento determinado: la última versión actualizada del núcleo. El núcleo es el dominio particular de Torvalds en el desarrollo de Linux, dejando todas las aplicaciones y servicios que actúan sobre el núcleo para los miles de desarrolladores que hay en el mundo.

En el sentido genérico de Linux, que se refiere a las colecciones de aplicaciones que se ejecutan sobre el núcleo, hay muchas versiones de Linux. Cada distribución tiene características específicas, que incluyen métodos de instalación, ampliaciones y características especiales.

Lo interesante de la forma dual de usar el término Linux es que ocurre lo mismo con el término SO. En un sentido comercial, un SO es una gran colección de aplicaciones que complementan el núcleo. Esto es lo que son Windows 95 y Windows 98, Windows NT, Windows 2000, o Mac OS.

Desde un punto de vista técnico, un SO es el núcleo principal que proporciona funciones básicas para desarrollar y ejecutar aplicaciones.

Un Sistema Operativo multiusuarioMás importante que sus capacidades multitarea son sus características como SO multiusuario,

características que comparte con todas las versiones de Unís y otros sistemas clónicos de Unix.

Linux permite varios usuarios simultáneos, permitiendo aprovechar al máximo 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 través 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:

• Línea de Comandos• Interfaz Gráfica

El shell o línea 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 Tuberías

Además trabaja con un súper usuario o administrador del sistema que es capaz de manejar las características anteriores y muchas otras.

Línea de comando

LÍNEA DE COMANDO

Página 91 de 183

Page 92: Guia Para Egetsu

COMANDOS SOBRE ARCHIVOS Y DIRECTORIOS

Comando: mkdirFormato: mkdir [opciones] directorioDescripción: Crea directorios.Ejemplo: mkdir –p /home/juan/documentos/cartasCrea el directorio cartas y todos los directorios anteriores necesarios.

Comando: rmdirFormato: rmdir directorioDescripción: Borra el directorio especificado. Siempre y cuando este vacío.Ejemplo: rmdir cartas

Comando: pwdFormato: pwdDescripción: Informa sobre cuál es el directorio actual en el que nos encontramos, no tiene ningún tipo de parámetro.

Comando: cdFormato: cd nombre_del_directorioDescripción: Cambia del directorio actual al indicado en nombre_del_directorio. Si no se indica ningún directorio cambiara al directorio raíz 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: lsFormato: ls [opciones] archivosDescripción: Lista los archivos indicados mostrando información sobre ellos. Si no se pasa como parámetro ningún nombre de archivo, lista los archivos del directorio actual.Las opciones son:-a

-l

-t-rArchivos

Muestra todos los archivos del directorio actual incluyendo los archivos ocultos, que en LINUX son los que comienza su nombre por punto.Muestra los directorios como archivos en lugar de mostrar sus contenidos.

Ejemplos: ls –lMuestra los archivos del directorio actual con el formato extendido dando toda la información.

ls –la *.cMuestra todos los archivos en formato extenso cuyo nombre termine en .c y que comiencen por cualquier cadena de carácter, mostrará también los que se consideran ocultos, que comprenden por .., y cumplan en resto de las condiciones.

Página 92 de 183

Page 93: Guia Para Egetsu

Línea de comando

COMANDOS BÁSICOS PARA EL MANEJO DE ARCHIVOSComando: catFormato: cat [opciones] archivosDescripción: Concatena la lista de archivos que se le facilita en la salida estándar. Ejemplos: cat hola.txt

Comando: rmFormato: rm [opciones] archivosDescripción: Elimina archivos y directorios del sistema de ficheros. Se utiliza tanto para borrar archivos, enlaces y directorios. Para eliminar directorios es necesaria la opción –r. Hay que tener mucho cuidado con la utilización 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: cpFormato: cp [opciones] fuente destinoDescripción: Copia archivos y directorios. Copiará fuente a destino, fuente puede ser una lista de archivos que copiará a un directorio indicado en destino. También 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: mvFormato: mv [opciones] origen destinoDescripción: Mueve archivos y directorios. También 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: lnFormato: ln [-s] origen destinoDescripción: Crea un enlace a un archivo, con el fin de poder acceder a un archivo con más de un nombre. Ejemplos: ln –s documento.txt trabajo.txt

Crea un enlace simbólico o ligadura simbólica del archivo documento.txt en el enlace trabajo.txt.

Comando: fileFormato: file archivoDescripción: Realiza una exploración del archivo tratando de clasificarlo. Al final imprime en pantalla la descripción del archivo e información relevante.Ejemplo: carta.doc Clasifica a carta.doc como un documento de Microsoft Office Document

Comando: findFormato: find directorio(s) [criterios_de_seleccion] [opcion_de_comando] nom archDescripción: El comando find se utiliza para examinar la jerarquía de directorios en búsqueda de archivos. Para esta búsqueda pueden indicarse ciertos criterios. Además, también puede aparecer el nombre del archivo encontrado en pantalla o ejecutarse con un comando.

Línea de comando

Ejemplo: find . –name jose –print

Página 93 de 183

Page 94: Guia Para Egetsu

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

TRATAMIENTO DE ARCHIVOS

Comando: catFormato: cat [opciones] archivo [archivo1]…[archivo n]Descripción: Despliega el contenido de un archivo sin paginación y sin formato hacia la pantalla ó consola. Concatena dos o más archivos en uno sólo.Ejemplo: cat numero.c

Despliega el contenido del archivo numero.c a la pantalla sin formato y sin pausas ó paginación.

Comando: moreFormato: more [opciones] archivoDescripción: Se utiliza para paginar texto que no cabe en la pantalla y, por tanto, se desplaza sin poderlo ver. Se utiliza a través 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 página a página. more cartas.txt Pagina el contenido de cartas.txt

Comando: lessFormato: less [-cmsCM] [-xtab] [+comando] [archivo...]Descripción: Al igual que more, less es un programa de paginación. Una de sus principales ventajas es que hace fácil desplazarse hacia atrás o hacia adelante de un archivo.Los datos se despliegan pantalla por pantalla. Con las flechas de dirección 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 atrás del texto.

Comando: tailFormato: tail [opciones] archivoDescripción: Muestra las últimas líneas del archivo que se le pasan como parámetro. Por defecto muestra las diez últimas líneas.Ejemplo: tail archivo_largo.txt

Muestra las 10 últimas líneas del archivo_largo.txt.

Comando: headFormato: head [opciones] archivoDescripción: Muestra las primeras líneas del archivo que se le pasan como parámetro. Por defecto muestra las diez primeras líneas.Ejemplo: head archivo_largo.txt

Muestra las 10 primeras líneas del archivo_largo.txt.

Página 94 de 183

Page 95: Guia Para Egetsu

Línea de comando

Comando: grepFormato: grep [opciones] patrón [archivo(s)]Descripción: Permite buscar cadenas de caracteres en los archivos que le indiquemos. grep toma el patrón 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 más de una palabra, ese elemento deberemos incluirlo entre comillas dobles. Una vez buscado el patrón, se visualizan todos los archivos que lo contienen.Ejemplos: grep NULL * En este caso, grep busca el patrón 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 opción –n se visualiza el número de línea del archivo donde se encuentra el

patrón buscado.

PERMISOS Y ESPACIO DE DISCO DURO

Comando: chgrpFormato: chgrp [opciones] grupo archivosDescripción: 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: chmodFormato: chmod [opciones] modo archivosDescripción: 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 ejecución x. En archivos, los derechos de lectura y escritura permitirán leer y escribir el archivo respectivamente y el derecho de ejecución ejecutar si se trata de un fichero que contiene código ejecutable.Ejemplo: chmod rwx,r,r archivo.txt

Comando: chownFormato: chown [opciones] usuario archivosDescripción: 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 acción la tendrá que hacer el nuevo propietario o el root.Ejemplos:

chown jdalanis tabla.txtCambia el propietario de tabla.txt al usuario jdalanis

Página 95 de 183

Page 96: Guia Para Egetsu

Línea de comando

Comando: duFormato: du [opciones] archivosDescripción: Informa sobre la cantidad de espacio que ocupan en disco los archivos y directorios indicados como parámetros. Si no se da ningún parámetro se da la información del directorio actual.Las opciones más utiles son:-k-s

-h

Muestra los tamaños en kilobytes.Muestra el tamaño que ocupa cada subdirectorio en conjunto con la suma de todo lo que ocupa su contenido.Muestra el tamaño que ocupa la partición para que sea entendible para los humanos.

Ejemplos:du –s /varMuestra el tamaño total ocupado por el directorio /var y todo su contenido.

Comando: df Descripción: Muestra información acerca de las particiones y el porcentaje que cada partición ocupa sobre el disco duro o unidad. Si por el contrario se introduce un directorio, se mostrarán sólo las estadísticas de la unidad de disco que incluye dicho directorio.Además muestra donde está montada la partición, cuál es su tamaño.Las principales opciones para usar con df son:-h

-t-k

Nos enseña el número de bloques ocupados en gigabytes, megabytes o kilobytes ? de forma legible para el ser humano human readableTipo de unidad (ext2, nfs, etc.).Muestra los resultados en i-bloques para cada sistema de archivos

MONITOREO DE PROCESOSComando: psFormato: ps [opciones]Descripción: Informa acerca de los procesos que en ese momento se están ejecutando en el sistema. Si no le pasamos ninguna opción, sólo nos ofrecerá un pequeño 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 más comunes para este último son:

-e Informa de todos los procesos que hay en el sistema.-f 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 tamaño de la memoria.Ejemplo:ps –efUID PID PPID C STIME TTY TIME COMMAND

Root 0 0 0 12:04:19 ? 0:00 swapper

Root 1 0 0 12:04:19 ? 0:00 /etc/init

Root 2 0 0 12:04:19 ? 0:00 /pagedaemon

Root 4 0 0 12:04:19 ? 0:00 netisr

Root 3332 0 0 12:04:46 ? 0:00 /etc/vtdaemon

Root 3288 1 0 12:04:33 ? 0:00 /etc/rlbdaemon

Chan 4025 1 0 12:23:22 Tyy0 0:02 ksh

Línea de comando

Analicemos cada uno de los campos anteriores:

Página 96 de 183

Page 97: Guia Para Egetsu

UID Nombre del usuario propietario del proceso.PID Identificador del proceso.PPID Identificador del proceso padre.C Índica la cantidad de recursos de CPU que el proceso ha utilizado recientemente. El núcleo utiliza

esta información 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 estándar. Algunos procesos no están asociados a ningún terminal, en cuyo caso la columna de TTY de la salida contiene el símbolo de interrogación, ?.

TIME Tiempo de CPU asignado al proceso.COMMAND Nombre del programa que contiene la imagen del proceso.

Comando: killFormato: kill [-señal] PID [PID...]Descripción: La orden kill, como hemos dicho, se utiliza para enviar señales. El que envía la señal debe ser el propietario de los procesos o el administrador del sistema. Por defecto, kill envía la señal número 15 al proceso especificado, con intención de terminar su ejecución. Esta señal número 15 lo máximo 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 señal número 9, que no se puede ignorar.Ejemplo: Imaginemos que queremos eliminar el proceso tail cuyo PID es el 1809. La forma de hacerlo sería:kill –9 1809

COMANDOS VARIOS

Comando: fingerFormato: finger [opciones] usuariosDescripción: Este comando se utiliza para obtener información sobre los usuarios del sistema, muestra toda la información referente a un usuario que hay registrada en el sistema. Si solo se invoca el comando sin ninguna opción ni nombre de usuario nos da información referente a los usuarios actualmente conectados al sistema. Podemos pedir información sobre usuarios de otras computadoras conectadas en red poniendo:[email protected]:

finger jdalanisNos devolverá la información almacenada referente al usuario jdalanis

Comando: clearFormato: clearDescripción: Borra la pantalla completamente de la terminal en la que se esté trabajando.

Comando: manFormato: man [comando]Descripción: Localiza y muestra la(s) página(s) del manual del comando especificado.Ejemplo: man date

El manual en línea man contiene páginas del manual para cada comando y otras páginas 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.

Página 97 de 183

Page 98: Guia Para Egetsu

Línea de comando

Comando: calFormato: cal [-j] [-y] [mes] [año]Descripción: Muestra en pantalla el calendario del año indicado, o del mes indicado.Ejemplos:

calMuestra en pantalla el calendario del mes actual.cal 4 1974Muestra el calendario de abril de 1974.cal 2010Muestra el calendario del año 2010.

Comando: whoFormato: who [opciones] [archivo]

who am iDescripción: Informa sobre quién está en el sistema. Lista el nombre de conexión, el nombre de la terminal y el momento de conexión para cada usuario conectado al sistema LINUX. También puede escribir who am i y sólo se imprimirá la línea de la terminal en la cual se escribió el comando.Ejemplos: who

El comando who se ocupa para saber quién 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: passwdFormato: passwd [nombre del usuario]Descripción: Cambia la contraseña del usuario (password), siempre que ya se haya registrado. Una contraseña sólo puede ser cambiada por el propietario de la misma, passwd pedirá que escriba la contraseña actual para probar que aún es la misma persona que cuando se llevó a cabo el registro. Posteriormente el programa. passwd pide la nueva contraseña dos veces para asegurarse de que sea correcta. Si se ha introducido la misma contraseña las dos veces, la orden passwd cambiará la idea de que el sistema tiene la contraseña 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 ejecución del comando passwd, acabará dejando la vieja contraseña todavía en activo. Si olvidara la contraseña, no hay manera de recuperarla, ni aún el administrador del sistema puede hacerlo. Puede asignarle una nueva. El administrador del sistema podrá crear una contraseña nula o variar las contraseñas de los distintos usuarios.

Comando: shutdownFormato: /sbin/shutdown [-t segundos] [-rkhncf] tiempo [mensaje]

Descripción: Termina todos los procesos que se estén 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. Sólo el superusuario o un usuario con autorización pueden ejecutar la orden shutdown.

Las opciones son:-r Reinicia después de cerrar.-h Se detiene después de hacer el shutdown.mensaje Envía el mensaje a todos los usuarios.

Ejemplos: shutdown –h +10El sistema se cierra al cabo de 10 minutos.shutdown –r now

Línea de comando

Cierra el sistema inmediatamente y después lo vuelve a arrancar.

Página 98 de 183

Page 99: Guia Para Egetsu

shutdown –h +5 “El sistema necesita un descanso”Advierte a los usuarios del cierre del sistema para darles tiempo a terminar lo que estén haciendo.El comando shutdown forma parte del procedimiento de desconexión, que tiene como finalidad

mantener la sanidad del sistema cuando se arranque de nuevo. shutdown trata de evitar que los procesos en ejecución no se vean afectados o alterados por la caída o desconexión del sistema

Comando: exitFormato: exitDescripción: Indica que se ha terminado la sesión y libera a la terminal para ser utilizada por alguien más o para ingresar con un identificador distinto. La terminación o despedida impide que gente extraña utilice la terminal y el identificador para provocar perjuicios potenciales.

REDIRECCIONAMIENTO Y TUBERÍAS

Símbolo

Significado

< 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 envía por correo electrónico el archivo info al usuario jdalanis mail jdalanisu < infoEn 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 > fechaEn lugar de que el comando date despliegue la hora y fecha actuales en la pantalla de la terminal las envía al archivo fecha. Linux crea o sobreescribe el archivo a la derecha del símbolo >, por lo que debe tenerse cuidado de no destruir información útil de esta manera.

>> Se usa para añadir información a un archivo existente. Por ejemplo, el siguiente comando agrega la fecha actual a un archivo llamado reporte: date >> reporte

TuberíasCon frecuencia es necesario utilizar la salida de un proceso como entrada de otro, o dicho de otra

manera, un proceso podría 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 estándar todas las líneas 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 tubería. El carácter de tubería de Linux es una barra vertical ( | ).

Página 99 de 183

Page 100: Guia Para Egetsu

Programación orientada a objetos

6.- PROGRAMACIÓN

INTRODUCCIÓN A LA POO.

La programación orientada a objetos, se ha convertido en uno de los motores claves para el desarrollo de software en la década de los noventas, sin embargo, de manera contraria a como se creía, la POO no es una tecnología nueva, si no que ha existido desde la década de los 60’s.

La POO basa su filosofía en los objetos, entidades que pueden ser tomadas del mundo real, como personas, lugares o cosas, y que tienen atributos o datos, y métodos o funciones, que son el conjunto de cosas que puede hacer un objeto.

FUNDAMENTOS DE PROGRAMACIÓN ORIENTADA A OBJETOS (POO).

Los programas estructurados se basan en estructuras de control bien definidas, bloques de código, subrutinas independientes que soportan recursividad y variables locales. La esencia de la programación estructurada es la reducción de un programa a sus elementos constituidos.

La programación 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 características: Encapsulación, Polimorfismo y Herencia.

La característica más importante de C++ es que es un lenguaje orientado a objetos. Este tipo de lenguajes permite organizar el código en una forma más 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 métodos para manipularlos. Además, el programador puede decidir si los datos y los métodos 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 BÁSICOS 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 características y funcionamiento del objeto.

Mensaje: es lo mismo que una llamada a una función. En programación orientada a objetos se envían mensajes en lugar de llamar a funciones. En principio se puede pensar en ambas cosas como equivalentes.

Método: es una función contenida en una clase

Programación orientada a objetos

Clases: Una clase es un grupo de datos y métodos (funciones). Es sólo un patrón 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.

Página 100 de 183

Page 101: Guia Para Egetsu

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 métodos y atributos entre clases.

CARACTERÍSTICAS DE LA POO

1.- Abstracción: Es el proceso mediante el cual se logran abstraer las características generales de un objeto real, para a partir de él formar una clase.

2.- Encapsulamiento: Las funciones son una interface a través de la cual se manipulan los datos almacenados en una clase. Usando estos métodos, podemos manipular y extraer datos de un objeto sin saber qué tipos de datos se usan para almacenar los datos. Esto se conoce como encapsulación de datos, y es un concepto muy importante en la programación orientada a objetos. Encapsulación es la habilidad de una parte de un programa para ocultar sus datos al resto del código, 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 sólo son accesibles por el código que forma parte de la misma clase.

3.-Herencia: Proceso mediante el cual un objeto puede adquirir las propiedades de otro objeto. La información se hace manejable gracias a la clasificación jerárquica.

4.- Polimorfismo: Es la cualidad que permite que un nombre se utilice para dos o más propósitos relacionados pero técnicamente diferentes. El propósito 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 función se puede llamar abs().

Página 101 de 183

Page 102: Guia Para Egetsu

Programación avanzada

APLICACIONES EN MODO GRÁFICO EN C#

1. Introducción y fundamentos para el manejo de gráficos

El sistema operativo Windows proporciona una interface compuesta de muchos controles gráficos que permiten la interacción con el usuario final. Las aplicaciones desarrolladas en la plataforma .NET se consideran también como aplicaciones gráficas. Justificación: Es necesario que se tenga una forma de acceso a los recursos gráficos del sistema operativo, sobre todo cuando la información que va a manejar una aplicación requiere de una representación gráfica personalizada y que va cambiando con respecto al comportamiento de la información.GDI+• Antes de .NET: Fuerte dependencia entre el lenguaje y el Hardware de generación de gráficos.• La tecnología GDI+ se encarga de proporcionar una programación independiente del dispositivo físico

sobre el que se van a generar los gráficos.• GDI+ divide su campo de trabajo en tres áreas principales.

Generación de gráficos vectoriales 2D Manipulación de imágenes en los formatos gráficos más habituales. Visualización de texto en un amplio abanico de tipos de letra.

Evolución en el desarrollo de gráficos

1.1Primitivas de Graficación

Tres acciones para la creación de un gráfico:

1. Definir un objeto en donde se va a crear la gráfica (como una hoja de papel o lienzo). 2. Establecer el objeto con el cual se va a graficar (como un lápiz o un lapicero) 3. Elegir qué control va a servir como contenedor de la gráfica, ya que como la programación es

independiente al dispositivo, una gráfica ya creada, se puede visualizar en cualquier control de la aplicación.

Instancias de clases que se encuentran dentro del namespace System.Draw

1. El objeto para definir donde se va a realizar la gráfica 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 método CreateGraphics.

Primera primitiva de graficación: Línea

Página 102 de 183

Page 103: Guia Para Egetsu

Graphics hoja;

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

Programación 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.1clases y métodos para graficar

clase Graphics clase pen clase brush

Métodos más comunes : DrawLine DrawRectangle,DrawEllipse DrawPolygon DrawCurve DrawBezier DrawPie

DrawLinehoja.DrawLine(pluma, x1, y1, x2, y2);

Donde X1,Y1 representan el punto inicial de la línea y X2, Y2 representan el punto final de la línea.

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);

Página 103 de 183

Page 104: Guia Para Egetsu

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 método permite crear un rectángulo en la posición 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 parámetros siguientes:

• Rectangle(X1,Y1, width, height)

• Donde X1,Y1 representan su esquina superior izquierda del rectángulo 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.

Programación avanzada

DRAWELLIPSE: Una elipse es un ovalo o forma circular, determinada por el rectángulo que la encierra. Las dos dimensiones de este rectángulo son los diámetros de la elipse. La sintaxis de este método tiene dos formas que son:

• hoja.DrawEllipse(pluma,new Rectangle (10,10, 80,90));

• hoja.DrawEllipse(pluma, 10, 10, 90, 90);

DRAWPOLYGON: Este método dibuja un polígono arbitrario, solo sigue el orden de los puntos (point) que se le pasan como argumento y el punto final lo enlaza automáticamente con el punto inicial, para cerrar la figura y dejar el polígono 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);

Página 104 de 183

Page 105: Guia Para Egetsu

DRAWCURVE: Como su nombre lo indica, este método permite crear curvas a través de una serie de puntos dados. Cada punto que se agregue es por donde va a pasar la curva, por lo tanto entre más puntos se tengan, la curva tendrá mayor resolución y definición.

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 rígido y muy manejable, necesita una determinada tensión para la generación de la curva, si la tensión es muy grande en lugar de una curva parecerá un conjunto de rectas unidas, y si la tensión es mínima la cuerda puede quedar demasiado suelta y hacer más curvas de las esperadas. La sintaxis general de este método 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 tensión. Una curva se define bien con una tensión 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 método se puede generar una curva de Bezier, la cual es más suavizada y solo se define a través 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 través de los puntos de control, solo sirven para darle una orientación 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.

Programación avanzada

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

DRAWPIE: Este método dibuja un pie, similar a una porción de pastel, es decir, es un arco unido por dos segmentos de línea que se conectan al centro de un círculo, o una elipse.

• Graphics.DrawPie(pen, X, Y, width, height, start, sweep);

– Donde X, Y, width y height representan el rectángulo de la elipse,

– start es el ángulo donde inicia el pie y

Página 105 de 183

Page 106: Guia Para Egetsu

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

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

1.1Programación de Aplicaciones

La aplicación de los métodos de graficación va a depender de las necesidades del programador.Uso común: la animación de objetos.Ir dibujando y borrando un mismo elemento gráfico desde distintas posiciones creando un efecto de movimiento.

Ejemplo:Hacer un programa que permita la animación de cinco círculos que comiencen en el centro del área de dibujo y se vayan moviendo en distintas direcciones hasta los límites superiores del área de dibujo. • Diseño del Formulario• Botón que activa la animación y,• Área de dibujo que es un control label con el tamaño 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;

Programación 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);

Página 106 de 183

Page 107: Guia Para Egetsu

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 diseño, Ejecución, y lógico.

• El error en tiempo de diseño es el más fácil de encontrar y arreglar. • Un error de este tipo ocurre cuando se escribe código no siguiendo las reglas del lenguaje de

programación.

Programación avanzada

• Son fáciles de encontrar debido a que Visual Estudio .NET no solo indica donde está, sino que parte de la línea es incompresible para el lenguaje.

• Los errores en tiempo de ejecución son más difíciles de ubicar, debido a que Visual Studio no proporciona una ayuda para encontrar el error hasta que este ocurre en la ejecución 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 lógico, es frecuentemente el más insidioso para ubicar, debido a que por sí mismo puede no manifestarse como un problema en todo el programa.

Página 107 de 183

Page 108: Guia Para Egetsu

• Un programa con un error lógico simplemente significa que la salida u operación del programa no es exactamente como se esperaba.

• Lo anterior puede ser ocasionado por un cálculo incorrecto o tener una opción de menú habilitada cuando se quería deshabilitar, etc.

Excepciones integradas• Un error en tiempo de ejecución en C#.NET genera una excepción. • Una excepción es una respuesta a una condición de error que el programa ha generado. • El manejo de un error es una sección de código de C#.NET que permite detectar excepciones y ejecutar

los pasos necesarios para recuperar el control después del error. Considere el siguiente bloque de código dentro del evento clic de un botón. private void button1_Click(object sender, EventArgs e) { string cadena = "cochinos"; button1.Text = cadena.Substring (10,1); }El código está intentando desplegar el onceavo carácter en la cadena “cochinos”. La cadena sólo contiene ochos caracteres y una excepción 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 ejecución como un tipo de excepción no controlada.

• Esto significa que la línea de código que ha generado el error no está contenida dentro de un bloque de manejo de excepción.

• La segunda pieza de información es que la excepción es del tipo ArgumentOutOfRangeException. • Los errores pueden ser clasificados en grupos, en el caso anterior el mensaje indica que el objeto

excepción generado es de dicha clase, la cual es descendiente de la clase Exception.

Programación avanzada

• La información adicional indica algunas notas específicas sobre la naturaleza del error, para el ejemplo, el índice –startIndex no puede ser mayor que la longitud de la cadena.

Estructura de una excepciónEl siguiente código contiene el mismo problema que en la sección 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);

Página 108 de 183

Page 109: Guia Para Egetsu

} catch { button1.Text = "Error"; } }

• El código intenta hacer lo mismo que el código anterior, pero esta vez la sentencia de la cadena “defectuosa” es envuelta entre el bloque try … Catch …

• Este bloque representa el manejo básico de una excepción. Si algún código después de la sentencia Try genera una excepción, el control del programa automáticamente salta al código después de la sentencia Catch.

• Si excepciones no son generadas en el código bajo la sentencia Try, entonces el bloque Catch es pasado por alto.

• Cuando el código es ejecutado, ArgumentOutOfRangeException se genera y el código no termina con un mensaje. En su lugar, la propiedad text del botón establece la palabra “Error”, y el programa continúa con su ejecución.

Una variación 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 ocasión, la excepción genera una instancia de la clase Exception y localiza dicha instancia en una variable llamada oEX.

• Tener la variable de una instancia de excepción es útil debido a que ofrece el texto del problema, que es desplegado en un mensaje.

Programación avanzada

• De hecho, desplegar el mensaje de la excepción dentro de una ventana es mucho mejor que hacerlo durante la ejecución del programa con una excepción no controlada.

• Note que el control de la excepción anterior no diferencia entre los diferentes tipos de errores, si alguna excepción es generada dentro del bloque Try, entonces el bloque Catch es ejecutada.

• Es posible escribir un control de excepción que maneje diferentes clases de errores, por ejemplo vea el siguiente código.

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);

Página 109 de 183

Page 110: Guia Para Egetsu

} catch (Exception oEx) { MessageBox.Show("Otro error" + oEx.Message); } }

• Este código intenta tomar el item seleccionado en un ListBox y lo despliega en el texto de un botón. Si ningún item es seleccionado en el ListBox, entonces NullReferenceException será generada, y se usa la información para indicarle al usuario que debe hacer una selección de item en el ListBox. Si algún otro tipo de excepción es generada, el código despliega el texto del mensaje de error.

• Observe que, el control de excepción más específico se encuentra primero y el control de excepción más general posteriormente.

• El programador debe tener cuidado en el orden de establecer el control de las excepciones. • Además la variable oEX es reutilizada en cada bloque de excepción. • Lo anterior es posible debido a que la sentencia Catch en realidad sirve como una declaración de la

variable y la variable oEX tiene un alcance local sólo dentro del bloque Catch. • Finalmente, la instancia de la excepción es declarada en cada bloque Catch con alcance también dentro

de su bloque. • Cuando una excepción es generada y manejada por una sentencia Catch, la ejecución del código es

transferida inmediatamente al primer bloque de control de excepción Catch relevante y entonces continua fuera del bloque Try … Catch …

• Algunas veces, puede ser necesario ejecutar algún tipo de limpieza antes de moverse fuera del bloque de control de excepción.

• Considere el siguiente código:

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

Programación 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 método intenta leer el contenido de un archivo de texto y colocar el resultado dentro de un ListBox, línea por línea.

Página 110 de 183

Page 111: Guia Para Egetsu

• Mucho del código de lectura es envuelto dentro de un controlador de excepción genérico. Si alguna excepción es encontrada en el ciclo principal, entonces la línea 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 excepción que específicamente permite evitar este tipo de problema.

• Este nuevo bloque es llamado el bloque Finally. El código dentro de un bloque Finally siempre se ejecuta, si alguna excepción es generada o no.

• Considere el siguiente código 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);Programación avanzada } finally { flujoLectura.Close(); } }

• En este caso, si alguna excepción 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 código 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.

Tipos de excepciones• Existen cientos de clases de excepción construidas dentro del entorno .NET, la figura siguiente muestra la

ventana de diálogo de excepciones que se encuentra en el menú Depurar.

Página 111 de 183

Page 112: Guia Para Egetsu

• 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 según el tipo de error que se desea controlar en un orden específico o genérico.

Excepciones personalizadas• Conforme se es más hábil en la escritura de clases, probablemente se encuentre uno con la necesidad

crear excepciones propias. • Imagine escribir el código 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 más allá del rango, es

posible que se quiera informar al desarrollador que ha proporcionado un valor inválido. • La mejor forma para informarle de este problema es enviándole una excepción.• Suponga escribir la clase CtaCredito, para llevar el control de cuentas bancarias. • Se introduce el titular de la cuenta y un importe para el crédito que necesita asignar.• No obstante, dicho crédito no podrá sobrepasar el valor de 2500; así que, para controlar tal circunstancia,

se crea adicionalmente, la clase CreditoException, que heredando de Exception, contendrá información en uno de sus miembros, sobre la excepción producida en cuanto al importe que se intentó asignar a la cuenta.

// esta clase contiene la información sobre un error// producido en un objeto CtaCredito class CreditoException : Exception {

Programación 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

Página 112 de 183

Page 113: Guia Para Egetsu

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

Programación avanzada

• El esquema del proceso es el siguiente: cuando al método AsignarCredito( ), de un objeto CtaCredito, se intente asignar un valor no permitido, se genera un nuevo objeto CreditoException y se lanza a través de la palabra clave throw, que es la encargada de emitir las excepciones en el entorno de ejecución. El uso de estas clases sería:

Agregar un botón con el texto: Uso de Exception Personalizada. Agregar un label con el texto: Mensajes.

Evento clic del botón//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 crédito actual de: " + oCredito.Titular + " es de: " + Convert.ToString(oCredito.Credito); //la siguiente instruccion produce un error oCredito.AsignarCredito(5000); }

Página 113 de 183

Page 114: Guia Para Egetsu

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"); }

Página 114 de 183

Page 115: Guia Para Egetsu

Programación para la web

PROGRAMACIÓN PARA LA WEBEstructuración de un documento

Las etiquetas más básicas son las que forman el esqueleto de la página:

<html> Define que se iniciara la construcción de una página web.

<head> En esta parte definida como el encabezado, se pueden incluir las funcione de programación de Java script y las Hojas de Estilo.

<title> Define el título de nuestra página Web

<body> Aquí es donde se construirá toda nuestra página, es decir todos los elementos visuales que el usuario observa en la página

<HTML> <HEAD> <TITLE>una página de ensayo</TITLE> </HEAD> <BODY> Esto es lo que se visualiza en el navegador </BODY></HTML>

Descripción Etiqueta AtributosComentarios <!- ->

Colores en el Lugar <font color=”#rrggbb”> </font>Párrafos <p></p>Saltos de línea <br>Texto con preformato <pre> </pre>Cabeceras <H1> </H1> hasta

<H6> </H6>Separadores <HR> ALING=center/left/right alineación

SIZE=n ancho de línea, donde n=1 al 10, el 1 es la más finaWIDTH = n longitud de la línea, NOSHADE línea sin relieve

Tamaño de letra (fuentes)

<FONT SIZE=x></FONT>

Tipos de letras <B> negrita<I> cursiva<u> subrayar <blink> texto intermitente<big> texto grande, el mayor tamaño de fuente<small> texto pequeño, el menor tamaño de la fuente<sup> super indice<sub> subindice<address> bloque de texto cursivo <blockquote> Representar con una tabulación y en cursiva.

Página 115 de 183

Page 116: Guia Para Egetsu

<cite> muestra el texto como si fuera una cita<code> se utiliza para representar una etiqueta HTML o código de programa<em> presenta el contenido de un bloque de texto enfatizado<strong> texto más enfatizado que el caso anterior. Negrita

<strike> texto techado<center> centra el texto en la pantalla

Enlaces <A HREF="xxx"> yyy </A>Listas Ordenadas <OL TYPE= i> </OL> <LH> Titulo de la lista

<LI> Elemento de la listaListas desordenadas <OL TYPE=” “> </OL>Imágenes <Img src=”.....”>; ALT Asignamos entre comillas un nombre

para la imagen Tablas <table> </table>• Filas• columnas

<tr> </tr><td> </td>

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, también es posible sustituir estos asteriscos por números 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">

Programación para la web

Página 116 de 183

<TABLE>

<TR> </TR>

<TR> </TR>

<TR> </TR>

</TABLE>

<TD>...</TD>

<TD>...</TD>

<TD>...</TD>

<TD>...</TD>

<TD>...</TD>

<TD>...</TD>

<TD>...</TD>

<TD>...</TD>

<TD>...</TD>

Page 117: Guia Para Egetsu

<P>Dirección: <INPUT TYPE="text" NAME="direccion" SIZE="50"> <P>Ciudad: <INPUT TYPE="text" NAME="ciudad" SIZE="20"> Código Postal: <INPUT TYPE="text" NAME="c.p." SIZE="6" MAXLENGTH="5"> <P>Teléfono: <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>Catálogo: <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>

Programación para la web

JAVASCRIP

Página 117 de 183

Page 118: Guia Para Egetsu

Javascript es un lenguaje de programación utilizado para crear pequeños programitas encargados de realizar acciones dentro del ámbito de una página web. Con Javascript podemos crear efectos especiales en las páginas 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 orígenes, como se ha podido leer hace unas líneas. Actualmente son productos totalmente distintos y no guardan entre si más relación que la sintaxis idéntica y poco más. 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 página.

• Orientado a objetos. Java es un lenguaje de programación orientado a objetos. (Más tarde veremos qué quiere decir orientado a objetos, para el que no lo sepa todavía) 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 programación estructurada como C o Pascal.

• Propósito. Java es mucho más potente que Javascript, esto es debido a que Java es un lenguaje de propósito general, con el que se pueden hacer aplicaciones de lo más variado, sin embargo, con Javascript sólo podemos escribir programas para que se ejecuten en páginas web.

• Estructuras fuertes. Java es un lenguaje de programación fuertemente tipado, esto quiere decir que al declarar una variable tendremos que indicar su tipo y no podrá cambiar de un tipo a otro automáticamente. Por su parte Javascript no tiene esta característica, y podemos meter en una variable la información que deseemos, independientemente del tipo de ésta. Además, podremos cambiar el tipo de información de una variable cuando queramos.

• Otras características. Como vemos Java es mucho más complejo, aunque también más potente, robusto y seguro. Tiene más funcionalidades que Javascript y las diferencias que los separan son lo suficientemente importantes como para distinguirlos fácilmente.

El lenguaje Javascript tiene una sintaxis muy parecida a la de Java por estar basado en él. También 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 código. De todos modos, en los siguientes capítulos vamos a describir toda la sintaxis con detenimiento, por lo que los novatos no tendrán ningún problema con ella.

Comentarios

Un comentario es una parte de código 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 más fácilmente el script a la hora de modificarlo o depurarlo.

Ya se vio anteriormente algún 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 línea de código. El

Programación para la web

otro comentario lo podemos utilizar para comentar varias líneas y se indica con los signos /* para empezar el comentario y */ para terminarlo. Veamos unos ejemplos.

<SCRIPT>//Este es un comentario de una línea/*Este comentario se puede extender

Página 118 de 183

Page 119: Guia Para Egetsu

por varias líneas.Las que quieras*/</SCRIPT>

Mayúsculas y minúsculas

En javascript se han de respetar las mayúsculas y las minúsculas. Si nos equivocamos al utilizarlas el navegador responderá con un mensaje de error de sintaxis. Por convención los nombres de las cosas se escriben en minúsculas, salvo que se utilice un nombre con más de una palabra, pues en ese caso se escribirán con mayúsculas las iniciales de las palabras siguientes a la primera. También se puede utilizar mayúscula en las iniciales de las primeras palabras en algunos casos, como los nombres de las clases, aunque ya veremos más adelante cuáles son estos casos y qué son las clases.

Separación 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 través del carácter punto y coma (;) y la segunda es a través de un salto de línea.

Por esta razón Las sentencias Javascript no necesitan acabar en punto y coma a no ser que coloquemos dos instrucciones en la misma línea.

No es una mala idea, de todos modos, acostumbrarse a utilizar el punto y coma después de cada instrucción pues otros lenguajes como Java o C obligan a utilizarlas y nos estaremos acostumbrando a realizar una sintaxis más parecida a la habitual en entornos de programación avanzados.

Cómo definir funcionesLas funciones se definen por medio del estatuto function, el cual requiere un nombre para la función, una lista de parámetros o argumentos que se pasarán a la función y un bloque de comandos que define lo que hace la función:

function nombre_de_la_funcion(parametro1, parametro2, ... , parametroN)

{ linea_de_comando; ... ... linea_de_comando}

Los nombres de las funciones son sensibles a mayúsculas y minúsculas, pueden incluir el guión de subrayado y deben comenzar con una letra. La lista de argumentos se encierra entre paréntesis y van separados por comas.

Programación para la web

Cómo pasar parámetros

En el ejemplo expuesto arriba vemos que la función AlertBox acepta un parámetro llamado cMens. Dentro de la función, las referencias a cMens aluden al valor pasado a la función. Respecto de los parámetros, hay varios aspectos a considerar:

• Tanto las variables como los literales se pueden pasar como argumentos cuando se llama a una función.

• Si se pasa una variable a una función, al cambiar el valor del parámetro dentro de la función, no se estará alterando el valor de la variable pasada a la función.

Página 119 de 183

Page 120: Guia Para Egetsu

• Los parámetros existen sólo durante la vida de la función, si llama a una función varias veces, los parámetros se crean de nuevo cada vez que se llama a la función, y los valores que contienen cuando la función terminó la última vez, no se retienen.

• Si un parámetro de una función tuviere el mismo nombre que una variable externa a la función, la función sólo "verá" el valor del parámetro.

• Tanto los valores de los parámetros de una función 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 mayoría de los lenguajes de programación. 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;

También puede incluirse algún 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: numéricos, cadenas y boleanos.

• Cadenas (strings), "Hola todos"

• Números , enteros y decimales

• Boleanos (verdadero|true // falso|false)

Programación 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 características formales (apariencia o estilos) de las instrucciones HTML en una página. Con la ayuda de las hojas de estilo se puede definir por ejemplo, que un encabezamiento de 1er. Nivel tenga un tamaño de letra de 18 puntos, usando la fuente “Helvética” sin ser resaltada y a una distancia de 1.75 cm. del párrafo que sigue. Este tipo de descripciones no se pueden hacer en HTML “tradicional”.

Ventajas y desventajas

Ventajas:

• Podemos modificarla la presentación de todos los elementos estándar del documento sin tener que modificar el código HTML estructural.

• Disponemos de comandos y atributos más 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 inglés.

Página 120 de 183

Page 121: Guia Para Egetsu

• 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 páginas Web.

• Es uno de los pilares del DHTML y puede combinarse con JavaScript, VBScript, etc.• Su uso estructurado y razonado permite ahorrar muchas líneas de código 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 solución a este inconveniente es conocer las propiedades implementadas en cada versión de navegador, probar nuestros estilos en varios navegadores y pensar que siempre puede haber un navegador visualizando la página sin soporte para CSS, con lo que el HTML será el único código a interpretar.

Las Hojas de estilo tienen una estructura simple, flexible y potente. No es necesario tener grandes conocimientos de programación (más bien ninguno) para trabajar cómodamente con ellas. Dada su fácil estructuración podemos definir la apariencia de cada elemento o grupo de ellos con suma facilidad cambiando posteriormente si diseño si es necesario, de forma simple y rápida.

Programación 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 definición 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 continuación estudiaremos las distintas formas sintácticas de definir estilos en un documento HTML. La sintaxis básica es la siguiente:

Página 121 de 183

Page 122: Guia Para Egetsu

Selector {Propiedad: Valor}

El selector es el valor en HTML al que afectar la definición del estilo en función del valor asignado a la propiedad que desea especificar. Al conjunto Propiedad- Valor se le llama: Declaración.

Por ejemplo: P{color:green}

Aquí se indica que todos los párrafos serán de color verde. Si además queremos que todos los párrafos estén justificados, habrá que añadir la propiedad correspondiente, en este caso:

P{text-align: justify}

En el ejemplo anterior ya tenemos dos líneas de código y solo acabamos de empezar, pues bien la sintaxis CSS permite añadir 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 párrafo de color verde y justificado, la sintaxis adecuada sería:

P {color:green; text-align: justify}

Si quisiéramos añadir el estilo definido anteriormente a la etiqueta <B> (negrita), no sería necesario volver a escribir toda la declaración, bastaría con separar con una coma un selector de otro. Veamos como:

B, P {color:green; text-align: justify}

Ahora imaginemos que además, el estilo negrita (B) debe aparecer sobre un fondo blanco. En este caso, la solución es añadir una nueva línea ya que es una propiedad que queremos aplicar sólo al selector negrita, Así nuestro estilo tomaría 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 condición 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.

Programación 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 intérprete CSS entiende que esa declaración sólo debe cumplirse para las negritas que estén 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 sólo 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 código HTML un estilo concreto:

El texto en negrita en este punto <B style= “Font-size:12pt; color:”#0000FF”>

Es más grande y está en azul. </B> .

Definición de estilos mediante clases

La utilización 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 según sea necesario. Su sintaxis es:

Elemento.nombreclase {propiedad:valor}

Por ejemplo, vamos a definir varios colores de párrafo de la siguiente manera:

P.amarillo {color:yellow}

P.verde {color:green}Página 122 de 183

Page 123: Guia Para Egetsu

P.colorextraño {color:#CA36E1}

Si queremos aplicar los estilos de color definidos anteriormente, el código sería similar al siguiente:

<P> este párrafo no tiene ningún estilo aplicado

<P class=amarillo> este saldrá de color Amarillo

<P class=verde> este seguro que verde

<P class=colorextraño> el color extraño se parece al violeta

Sin embargo, ¿qué pasaría si también se quisiera determinar un estilo de color para todos los encabezados? Evidentemente, no tendríamos que repetir la propiedad color para cada encabezado, bastaría con definir una clase sin asociarla a ningún estilo.

.amarillo {color:yelow}

.verde {color:green}

.colorextraño {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=colorextraño> esta negrita es de color ¿violeta?

Página 123 de 183

Page 124: Guia Para Egetsu

Programación visual

Introducción.

Visual Basic es uno de los tantos lenguajes de programación que podemos encontrar hoy en día. Dicho lenguaje nace del BASIC (Beginner´s All-purpose Symbolic Instruction Code) que fue creado en su versión original en el Dartmouth College, con el propósito de servir a aquellas personas que estaban interesadas en iniciarse en algún lenguaje de programación. Luego de sufrir varias modificaciones, en el año 1978 se estableció el BASIC estándar. 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 versión más reciente es la 6 que se incluye en el paquete Visual Studio 6 de Microsoft. Esta versión combina la sencillez del BASIC con un poderoso lenguaje de programación Visual que juntos permiten desarrollar robustos programas de 32 bits para Windows. Esta fusión de sencillez y la estética permitió ampliar mucho más el monopolio de Microsoft, ya que el lenguaje sólo es compatible con Windows, un sistema operativo de la misma empresa.

Visual Basic ya no es más "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 términos y/o características de mismo con la finalidad de aprender más sobre este Programa y manejarlo con facilidad

1. ¿Qué es Visual Basic?

Es un lenguaje de programación que se ha diseñado para facilitar el desarrollo de aplicaciones en un entorno grafico (GUI-GRAPHICAL USER INTERFACE) Como Windows 98, Windows NT o superior.

2. Características de Visual Basic.

Diseñador de entorno de datos: Es posible generar, de manera automática, conectividad entre controles y datos mediante la acción de arrastrar y colocar sobre formularios o informes.

Los Objetos Actives son una nueva tecnología de acceso a datos mediante la acción de arrastrar y colocar sobre formularios o informes.

Asistente para formularios: Sirve para generar de manera automática formularios que administran registros de tablas o consultas pertenecientes a una base de datos, hoja de cálculo 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 ejecución.

Programación visual

En las aplicaciones HTML: Se combinan instrucciones de Visual Basic con código HTML para controlar los eventos que se realizan con frecuencia en una página web.

La Ventana de Vista de datos proporciona acceso a la estructura de una base de datos. Desde esta también acceso al Diseñador de Consultas y diseñador de Base de datos para administrar y registros.

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

Barra de título: muestra el nombre del proyecto y del formulario q se está diseñando actualmente

Barra de menús: agrupa los menús despegables que contienes todas las operaciones que pueden llevarse a

cabo con Visual Basic 6.0.

Página 124 de 183

Page 125: Guia Para Egetsu

Barra de herramientas estándar: contienen los botones que se utilizan con mayor frecuencia cuando

se trabaja con un proyecto. Simplifica la elección de opciones de los menús Archivo, Edición, Ver y Ejecutar; además, en el área derecha presenta la ubicación (coordenadas) y el tamaño del objeto seleccionado

Ventana de formulario: es el área donde se diseña la interfaz gráfica, es decir, es donde se inserta

electo gráficos, como botones, imágenes, casilla de verificación, cuadros de listas, etc.

Cuadro de herramientas: presenta todos los controles necesarios para diseñar una aplicación, como

cuadros de texto, etiquetas, cuadros de listas, botones de comandos, etc.

Ventana de proyecto: muestra los elementos involucrados en el proyecto, como formularios,

módulos, controles , etc. Cada elemento puede seleccionarse en forma independiente para su edición.

Ventana de posición del formulario: muestra la ubicación que tendrá el formulario en la pantalla,

cuando ejecute la aplicación. Esta ubicación puede cambiarse si se hace clic con el botón 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.

Página 125 de 183

Page 126: Guia Para Egetsu

Programación 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 situación del formulario en pantalla, simplemente tendremos que marcar sobre el control de la caja de herramientas y dibujarlo con el tamaño que queramos en nuestro formulario

Label

Este control es también uno de los más utilizados, aunque su utilidad queda restringida a la visualización de datos en el mismo, no permitiendo la introducción de datos por parte del usuario.

CommandButton

Este control es el típico botón que aparece en todas las aplicaciones y que al hacer click sobre él nos permite realizar alguna operación concreta, normalmente Aceptar o Cancelar. Aunque según el código que le asociemos podremos realizar las operaciones que queramos.

OptionButton

Este control nos permite elegir una opción entre varias de las que se nos plantean. Cada opción será un control optionbutton diferente.

Programación visual

Tiene la siguiente forma:

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

Página 126 de 183

Page 127: Guia Para Egetsu

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 verificación, permite elegir una opción (activada / desactivada, True/False) que el usuario puede establecer o anular haciendo click. Una X en una casilla de verificación indica que está seleccionada, activada, o con valor True. Cada casilla de verificación es independiente de las demás 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 opción 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 sólo puede seleccionar una. Los controles OptionButton se agrupan dibujándolos 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 continuación, dibuje dentro los controles OptionButton. Todos los controles OptionButton que están dentro del mismo contenedor actúan como un solo grupo, e independientes de los controles OptionButton de otros grupos distintos.

Programación 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 automáticamente. Por contraste, se puede seleccionar cualquier número 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 más. Si el número de elementos supera el número que puede mostrarse, se agregará automáticamente una barra de desplazamiento al control ListBox.

Un control ComboBox combina las características de un control TextBox y un control ListBox. Los usuarios pueden introducir información 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 combinación de un ListBox, que se comporta como si de un ListBox se tratase, y de un TextBox, con comportamiento análogo a un TextBox sencillo, con la

Página 127 de 183

Page 128: Guia Para Egetsu

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-analógico en una aplicación. Se toman directamente de la caja de herramientas, y tienen un aspecto parecido al de un control de volumen de un equipo de música. El HScrollBar está en posición horizontal, y el VScrollBar en posición vertical.

Mediante estos controles se pueden introducir datos variando la posición del cursor. Programación 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 diseño. En tiempo de ejecución, el control permanece invisible.

La temporización 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 gráfico que se muestra como un rectángulo, un cuadrado, una elipse, un círculo, un rectángulo redondeado o un cuadrado redondeado.

Utilice controles Shape en tiempo de diseño en lugar o además de invocar los métodos Circle y Line en tiempo de ejecución. Puede dibujar un control Shape en un contenedor, pero no puede actuar como contenedor.

Página 128 de 183

Page 129: Guia Para Egetsu

(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 gráfico, envolver gráficamente a otros controles, pero no tiene ninguna aplicación en cuanto a programa. Es un "adorno" para sus aplicaciones.

Programación visual

LINE

Se toma directamente de la caja de herramientas

Line, al igual que Shape, es un control gráfico que solamente sirve para poner una línea en un formulario. Del mismo modo, no tiene procedimientos, por lo que no sirve para aportar código al programa. Solo sirve para aportar una característica gráfica, es un adorno.

CONTROL GAUGE

Este control presenta una información numérica de forma gráfica, bien como un display lineal (típico 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 numérica de una forma cuasi-analógica. Podríamos decir que es un control similar al HScrollBar, que en vez de meter información a la aplicación, la presenta.

Este control puede servir, por ejemplo, para presentar el tanto por ciento de ejecución de una tarea, como elemento tranquilizante. Puede presentar el nivel de un depósito de agua, etc.

Presenta las dos formas siguientes:

Programación visual

Página 129 de 183

Page 130: Guia Para Egetsu

En la figura puede verse un Gauge de aguja, uno de barra horizontal y otro de barra vertical. Para mejorar la presentación, el Gauge permite poner un gráfico 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 distribución 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 instalación 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 capítulo único en esta Guía del Estudiante.

CUADRO DE DIALOGO CommonDialog

Normalmente se encuentra en la caja de herramientas

Este control no se presenta en tiempo de diseño más que con un simple icono:

El cuadro de diálogo, CommonDialog se utiliza para varias funciones:

Abrir Ficheros

Guardar Ficheros

Elegir colores

Seleccionar Impresora

• Seleccionar Fuentes Programación visual

• Mostrar el fichero de Ayuda

En realidad el cuadro de diálogo permite conocer datos con los cuales, y mediante el código adecuado, abriremos o guardaremos ficheros, elegiremos colores o seleccionaremos fuentes. Es decir, el CommonDialog NO realiza más funciones que mostrar ficheros existentes, fuentes disponibles, colores, para que, mediante código, abramos esos ficheros o usemos una determinada fuente.

Dependiendo de la aplicación para la que vaya a usarse se deberá activar de distintas formas. Si el cuadro de diálogo se va a usar para seleccionar la impresora y para otras aplicaciones, es recomendable usar uno exclusivamente para seleccionar la impresora.

Esta última recomendación se debe a que, para el control de la impresora, el CommonDialog SI realiza las funciones de selección 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 términos.

Página 130 de 183

Page 131: Guia Para Egetsu

Eventos: es una acción 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 acción determinada cada control responde a diferentes eventos, algunos de ellos tienen características comunes. Los eventos pueden Visualizarse en la ventana de código.

Métodos: Son procedimientos definidos en Visual Basic para realizar operaciones específicas sobre

los objetos (Controles o Formularios)

Controles: Son los objetos que conforman la interfaz gráfica de un programa;

a través de ellos, un usuario interactúa con la aplicación. Sus característicaspueden 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 métodos, eventos y

propiedades. Hay muchas clases de objetos, y por tanto, puede llegar a haber tantos métodos, eventos y propiedades distintas como objetos diferentes.Ejemplo : Una caja de texto (TextBox) en la cual podemos escribir cualquier línea es un objeto.

Clases: Una clase no es nada más que un Objeto, este objeto, tiene propiedades, funciones y

métodos. Para empezar ahora la creación de propiedades si se utiliza Property Let y Property Get; la diferencia es casi nada, inclusive podría 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 opinión que voy a dar es desde mi perspectiva.

Módulo: Un proyecto Visual Basic no sólo está compuesto de Formularios, sino también de lo que se denominan módulos.Un módulo es un fichero Visual Basic donde escribimos parte del código de nuestro programa, y digo parte, porque puede haber código en el formulario también.

Programación visual

De los fundamentos de programación explique:

Módulos de Control:

Módulos de Formularios: Es un fichero con extensión .frm que puede contener descripciones

del formulario y controles.

Módulos de Clases: módulo que puede contener la definición de un nuevo proyecto. Cada instancia de una

clase crea un objeto nuevo. Los procedimientos definidos en el módulo se convierten en propiedades y métodos del objeto. Los módulos de clase pueden existir solos o con formularios e informes

Módulos Estándar: módulo en el que puede colocar los procedimientos Sub y Function que desee que estén

disponibles para otros procedimientos de la base de datos. Es un fichero con extensión .bas que solo contiene declaraciones y definiciones de procedimientos, tipos y datos a los que tienen acceso otros módulos de la aplicación.

Editor de Códigos: lugar donde se va a programar en Visual Basic, en este editor se escribirán

todas las sentencias que darán vida a una aplicación.

Página 131 de 183

Page 132: Guia Para Egetsu

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 sería accesible desde los demás procedimientos o formularios.

Public: Las variables declaradas serán públicas y podrán estar accesibles desde todos los formularios de la aplicación. Para conseguirlo tendremos que declararlas en un módulo de código, no en la sección declarations de cualquier formulario de los que conste la aplicación. Para crear un módulo de código en el menú principal de Visual Basic marcamos en INSERT/MODULE y aparecerá junto a los demás formularios de la ventana de proyecto aunque con un icono distinto indicando que se trata de un módulo de código.

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 ejecución de la aplicación. De esta forma a entrar en algún procedimiento las variables recuerdan el valor que tenían cuando se salió de él.

TIPOS DE VARIABLES

TIPO COMENTARIOBOOLEAN Sólo admite 2 valores TRUE o FALSEBYTE admite valores entre 0 y 255INTEGER admite valores entre -32768 y 32767LONG admite valores entre -2.147.483.648 y 2.147.483.647SINGLE admite valores decimales con precisión simpleDOUBLE admite valores decimales de doble precisiónCURRENCY válido para valores de tipo monedaSTRING cadenas de caracteres DATE fechas, permite operar con ellas

Constante: Declaración 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 expresión no puede utilizar llamadas a funciones, pues la constante se calcula en tiempo de compilación, no en tiempo de ejecución.

Página 132 de 183

Page 133: Guia Para Egetsu

Estructura de Datos

Aplicará las clases de la biblioteca estándar STL del lenguaje C++ y será capaz de manejar las estructuras de datos dinámicas para la elaboración de programas, utilizando la Programación Orientada a Objetos.

INTRODUCCIÓN A LA ORIENTACIÓN A OBJETOS Y A LOS TIPOS DE DATOS ABSTRACTOS (TDA)

Las Técnicas Orientadas a Objetos (TOO) brindan la posibilidad de construir objetos complejos a partir de objetos existentes, lo que permite un alto grado de reutilización, ahorro de tiempo y dinero y confiabilidad. Además, ofrecen soporte para encapsular datos y comportamiento, estructurar los objetos en clases y organizar las clases en jerarquías, permitiendo compartir comportamiento a través de la herencia.

El concepto orientado a objetos se puede definir de la siguiente manera:

Orientación a Objetos (OO) = Objetos + Clasificación + Herencia + Comunicación

Las ventajas que ofrece la tecnología orientada a objetos son: Encapsulado u ocultamiento de información, Reutilización, Estabilidad, Consistencia.

Una clase es la implementación de un tipo de objeto. Especifica las estructuras de datos y los métodos operativos permisibles que se aplican a cada uno de sus objetos. Una clase puede tener muchas subclases.

Comportamiento

Nombre de la clase

Estado

Nombre de la clase

Cadena de caracteres que identifican el nombre del tipo de objeto que implementa la clase.

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.

ComportamientoEspecifica los métodos 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 controladospor métodos que implementan las operaciones permitidas de tal manera que las estructuras de datos sólo pueden ser utilizadas (modificadas o consultadas) por dichos métodos. Estas operaciones constituyen la parte pública del objeto.

Por ejemplo, los atributos de un estudiante son, entre otros, registro o matrícula, nombre, dirección y teléfono, todos de tipo cadena (string). Algunas de las operaciones que pueden implementarse mediante la creación de la clase Estudiante se presentan a continuación.

Página 133 de 183

Page 134: Guia Para Egetsu

Estructura de Datos

Nombre del método Operación o función que realiza el métodoestEstudiante Establece las propiedades del estudiante a un estado consistente a

partir de los datos o cadenas de entrada registro, nombre, dirección y teléfono proporcionados como argumentos durante el llamado a este método.

obtRegistro Lee y devuelve el registro del estudiante.obtNombre Lee y devuelve el nombre del estudiante.obtDirección Lee y regresa la dirección del estudiante.

Veamos otro ejemplo, un rectángulo se caracteriza por tener sus lados opuestos paralelos dos a dos. Si se considera la construcción de la clase Rectángulo, ésta tiene los atributos base y altura, cuyos valores predeterminados son 1. Tiene métodos que implementan las operaciones que calculan y devuelven el perímetro y el área del rectángulo, además de las operaciones que establecen y obtienen los valores de la base y la altura. Los métodos que establecen las propiedades del rectángulo verifican que la base y la altura sean números reales mayores que 0.0 y menores que 20.0.

A continuación se menciona como se podrían utilizar la herencia y el polimorfismo para crear una clase base abstracta llamada Paralelogramo y derivar a partir de ésta las subclases Rectángulo y Cuadrado.

Un Rectángulo es un Paralelogramo porque sus lados opuestos son paralelos dos a dos; es decir, el concepto de paralelogramo se aplica al objeto rectángulo y por lo tanto éste se clasifica como miembro o instancia de la clase Paralelogramo. Los cuadrados, romboides y rombos también son clasificados como paralelogramos. Todos, Rectángulos, 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 rectángulos, cuadrados, romboides y rombos tienen, a su vez, atributos y comportamientos propios (los rectángulos tienen los cuatro ángulos iguales y los lados contiguos desiguales,

Página 134 de 183

estEstudianteobtRegistroobtNombreobtDirecciónobtTeléfono

Estudiante

registronombredirecciónteléfono

calcularPerímetrocalcularÁreaestBaseestAlturaobtBaseobtAltura

Rectángulo

basealtura

Page 135: Guia Para Egetsu

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 métodos propios, además de los que herede de su clase padre.

La herencia en una forma de reutilización del software en la que se crean clases nuevas a partir de clases ya existentes por medio de la absorción se sus atributos y comportamientos, sobreponiéndolos o mejorándolos 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 creación de una jerarquía de clases, subclases, sub-subclases, etc. Una clase permite la implementación 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 métodos de su superclase; también puede tener sus propios métodos e incluso tipos de datos propios.

De manera más específica se tienen las siguientes definiciones. Una subclase es una clase que hereda las propiedades y los métodos de una clase existente. Una superclase es una clase de la cual otra clase hereda propiedades y métodos. Herencia simple es cuando una clase se deriva de una superclase. Herencia múltiple es cuando una clase se deriva de más de una superclase.

El polimorfismo se define como la habilidad de los objetos de diferentes clases, que están relacionados mediante la herencia, para responder en forma diferente al mismo mensaje; es decir, al llamado o solicitud de una operación implementada por un método de manera diferente para cada tipo de objeto. Aún así, aunque los métodos sean distintos, llevan a cabo el mismo propósito operativo. La palabra polimorfismo se aplica a una operación que adopta varias formas de implementación.

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 redefinición del método de una operación heredada en el subtipo. Por ejemplo, si las clases Rectángulo, Cuadrado, Romboide y Rombo se derivan de la clase base Paralelogramo (cuadrilátero o polígono de cuatro lados con los lados opuestos paralelos dos a dos), entonces cada instancia de las clases derivadas también son instancias de la clase base y por lo tanto no tendrían 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 vértices del paralelogramo y la operación exhibir se implementa mediante un método que conecte los cuatro vértices del paralelogramo y lo muestre en pantalla, entonces dicha operación también se aplicaría a los rectángulos, cuadrados, romboides y rombos; es decir, las clases Rectángulo, Cuadrado, Romboide y Rombo heredan la operación 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 método operativo puede ser diferente; por ejemplo, el método para calcular el perímetro de un paralelogramo, un romboide o un rectángulo podría definirse como dos veces la suma de la longitud de sus lados adyacentes, pero el método para calcular el perímetro de un cuadrado o un rombo podría definirse como cuatro veces la longitud de cualquiera de sus lados. En este caso es necesario redefinir la operación que calcula el perímetro en las subclases Cuadrado y Rombo.

Estructura de Datos

DEFINICIÓN DE ESTRUCTURA DE DATOS

Las estructuras de datos, también conocidas como tipos de datos, establecen una relación entre las distintas formas de representación de los datos, que se caracterizan por su organización y por las operaciones

Página 135 de 183

Page 136: Guia Para Egetsu

que se pueden realizar con ellas. Las estructuras de datos dictan la organización, los métodos de acceso y las alternativas de procesamiento para la información.

Debido a que la estructura de la información afectará el diseño de los programas, las estructuras de datos juegan un papel muy importante. La organización y complejidad de las estructuras de datos tan sólo está limitada por el ingenio del diseñador; sin embargo, hay un número reducido de estructuras de datos clásicas (elemento escalar, arreglos, listas, pilas, colas y árboles), que constituyen los bloques con los que se construyen estructuras más sofisticadas. Es importante tener en cuenta que las estructuras de datos se pueden representar a diferentes niveles de abstracción. 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 válido de elementos y un número de operaciones primitivas que se pueden realizar sobre ellos.

Ejemplo:

Definición del tipo (representación):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)• División: (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 podrán declarar variables (objetos o instancias) de ese tipo para utilizar (llamar o invocar) los métodos (operaciones) que aporta la clase.

Ejemplo:

TRacional r1,r2, rsuma; // declara tres objetos de tipo TRacionalr1.CrearRacional(4,7); // llama al método CrearRacional del objeto r1r2.CrearRacional(5,8); // llama al método CrearRacional del objeto r2// el valor devuelto por el método 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 estándar 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 estándar de contenedores de objetos organizados

Página 136 de 183

Page 137: Guia Para Egetsu

en platillas. Su uso puede ahorrar considerable tiempo y esfuerzo, y da como resultado programas de más alta calidad.

Las clases de contendores de la STL más importantes son:1. vector: Para inserciones y eliminaciones rápidas al final. Permite el acceso directo a cualquier

elemento. Archivo de encabezado <vector>.2. list: Lista de enlace doble que permite la inserción y eliminación rápidas 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 diseñada a fin de que los contenedores proporcionen funcionalidad similar, por lo que hay muchas operaciones genéricas, tales como la función size, que se aplican a todos los contenedores, y otras que sólo se aplican a subconjuntos de contenedores similares.

Las funciones más comunes para todos los contenedores de la STL son:1. constructor predeterminado: Proporciona una inicialización predeterminada del contenedor. Cada

contenedor puede tener varios constructores que proporcionan una variedad de métodos de inicialización 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 máxima 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.

Página 137 de 183

Page 138: Guia Para Egetsu

Estructura de Datos

ITERADORES

Los iteradores se utilizan para apuntar hacia los elementos de contenedores. Éstos guardan información de estado que es sensible a los contenedores particulares sobre los que operan y, por lo tanto, dichos iteradores están 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 operación ++ 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 subíndice [ ], exactamente como se hace con un arreglo de C o C++. Un objeto de tipo vector puede cambiar su tamaño dinámicamente y soporta iteradores de acceso aleatorio. En el siguiente programa de ejemplo se usan varios métodos 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;// definición del arreglo a de 6 enteros al estilo C o C++int a[TAM] = {1, 2, 3, 4, 5, 6};

// Declaración de un objeto v de tipo vector (uso de STL) que // almacena valores de tipo entero, cuya capacidad y tamaño son 0. vector<int> v; // Asigna en la variable tamv es valor devuelto por el método size() // del objeto v, dicho valor es el número de elementos que están // actualmente almacenados en el contenedor.int tamv = v.size(); cout << "El tamaño inicial de v es: " << tamv << endl;// Asigna en la variable capv el valor devuelto po el método // capacity() del objeto v, dicho valor es el número de elementos // que se pueden almacenar en el vector v antes de que éste reajuste // dinámicamente su tamaño 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++){

Página 138 de 183

Page 139: Guia Para Egetsu

v.push_back(i); // agrega el entero i al final del vector v// Nota: El método 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 tamaño automáticamente.

}// Mostrar el nuevo tamaño y capacidad del vector v después de // ejecutar push_back.cout << "El tamaño de v es: " << v.size() << endl;cout << "La capacidad de v es: " << v.capacity() << endl;

cout << "\nContenido del arreglo a utilizando la notación de apuntador:" << endl;

for(int *ptr = a; ptr!=a+TAM; ++ptr){cout << *ptr << ' ' << endl;

}cout << "\n Contenido del arreglo o vector v utilizando la notación de iterador:" << endl;

// Declaración de un iterador constante llamado p para iterar a // través del vector v.vector<int>::const_iterator p;// El método begin() del objeto v devuelve un iterador constante al // primer elemento del objeto v. El ciclo continúa 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á después del último elemento del vector v.// La expresión p++ coloca al iterador en el siguiente elemento de // dicho objeto.for(p=v.begin(); p!=v.end(); p++){

cout << *p << ' ' << endl; }// Probar algunos métodos de la clase vector:// v.front() - Devuelve el primer elemento del vector v// v.back() - Devuelve el último elemento del vector vcout << "Primer elemento de v: " << v.front() << endl;cout << "Último elemento de v: " << v.back() << endl;// Establece a 7 el primer elementov[0] = 7; // Establece a 10 el elemento que está en la localidad 2 del vector vv.at(2) = 10;

// inserta 22 como segundo elemento del vector vv.insert(v.begin() + 1, 22); // elimina el primer elemento del vector vv.erase(v.begin());// borra todos los elementos del vector vv.erase(v.begin(), v.end()); // clear llama a erase para vaciar el vector vv.clear(); getchar();return 0;

}Estructura de Datos

LISTAS: CONTENEDOR list

Página 139 de 183

Page 140: Guia Para Egetsu

Una lista es una estructura de datos que representa una colección homogénea y dinámica de elementos con una relación 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 representación escogida dependerá de la utilización que se le vaya a dar al tipo. Lo normal es implementarlas como listas de elementos enlazados mediante apuntadores. Los elementos serán 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 implementación eficiente para las operaciones de inserción y eliminación 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 atrás. 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 métodos más 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;

// Declaración de un iterador constante llamado p para // iterar a través 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.// Después 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 método 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. Después 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 método push_back(i) agrega el valor de i al// final de la lista de enteros.lista.push_back(i);

}

Página 140 de 183

Page 141: Guia Para Egetsu

// El método empty() devuelve true si la lista está// vacía y false en caso contrario.bool vacia = lista.empty();if(vacia){ // si la lista está vacía

cout << "La lista está vacía.";}else{ // de lo contrario (si la lista no está vacía)

lista.sort(); // ordena los elementos de la lista// Después de ejecutar el método 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 método begin() del objeto lista devuelve un iterador // constante al primer elemento del objeto lista. El ciclo // continúa 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á después del último elemento // de la lista. La expresión 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;

}

Página 141 de 183

Page 142: Guia Para Egetsu

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 colección lineal, dinámica y homogénea 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 métodos 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 continuación 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// método size del stack pilaVector. El método size() devuelve

Estructura de Datos

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

Página 142 de 183

Page 143: Guia Para Egetsu

// Asigna a la variable entera tampila el valor devuelto por el// método size del stack pilaLista. El método size() devuelve // el número de elementos que se encuentran en la pila.tampila = pilaLista.size();cout << "El número de elementos de la pilaLista es: " << tampila << endl;// Mientras el stack pilaVector no se encuentre vacía:// 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 continuación se crea una cola de número 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 número reales que utiliza// un objeto de tipo list de número 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// método size de la cola. El método size() devuelve el número // de elementos que se encuentran en la cola.int tamcola = cola.size();cout << "El número de elementos de la cola es: " << tamcola << endl;

Estructura de Datos

// El método 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 vacía:// a) imprimir el elemento que se encuentra al inicio de la cola.

Página 143 de 183

Page 144: Guia Para Egetsu

// 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 jerárquica entre los objetos. Los árboles genealógicos y los organigramas son ejemplos comunes de árboles. Un árbol es una colección de elementos llamados NODOS, uno de los cuales se distingue del resto y se le llama la RAÍZ, junto con una relación que impone una estructura jerárquica entre los nodos.

Ejemplo de un árbol.

A

B C D

HG IFE

Raíz

Hojas

Los términos más importantes de un árbol son:

• Grado de un nodo: es el número de subárboles que tienen como raíz ese nodo (nodos que cuelgan del nodo).

• Nodo terminal u hoja: nodo con grado 0. No tiene subárboles. • Grado de un árbol: grado máximo de los nodos de un árbol. • Hijos de un nodo: nodos que dependen directamente de ese nodo, es decir, las raíces de sus

subárboles. • Padre de un nodo: antecesor directo de un nodo del cual depende directamente.

• Nodos hermanos: nodos hijos del mismo nodo padre. • Camino: sucesión 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 raíz del árbol hasta ese nodo. • Nivel de un nodo: longitud del camino desde la raíz hasta el nodo. El nodo raíz tiene nivel 1. • Altura o profundidad de un árbol: nivel máximo de un nodo en un árbol

Página 144 de 183

Page 145: Guia Para Egetsu

Ejemplo de un árbol binario.

• En general en el lado izquierdo van los subárboles menores al nodo actual y en la rama derecha van los subárboles mayores.

4

2 6

531 7

Se debe de definir la forma en cómo 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 – subárbol izq. – subárbol der.2) subárbol izq. – nodo – subárbol der.

3) subárbol izq. – subárbol der. – nodo

Página 145 de 183

Page 146: Guia Para Egetsu

Bases de datos

7.- BASES DE DATOSObjetivo: Diseñar bases de datos mediante la utilización 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 recopilación de información relativa a un asunto o un propósito particular, como el seguimiento de pedidos de clientes o el mantenimiento de una colección de música.

Definiciones de términos que involucran a las bases de datos:

Datos: Conjunto de caracteres con algún significado, pueden ser numéricos, alfabéticos, o alfanuméricos.

Información: Es un conjunto ordenado de datos los cuales son manejados según la necesidad del usuario, para que un conjunto de datos pueda ser procesado eficientemente y pueda dar lugar a información, primero se debe guardar lógicamente en archivos.

Campo: Unidad básica 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: (También llamado fila o tupla) Representa un elemento único de datos implícitamente estructurados en una tabla.

Archivo: Colección de registros almacenados siguiendo una estructura homogénea. El equivalente a las tablas del modelo relacional.

Dentro de este marco, otra definición es: “Conjunto o colección de archivos interrelacionados, cuyo contenido engloba a la información concerniente de una organización, de tal manera que los datos estén 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 información)

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 están repartidos en varios archivos)

4. Anomalías del acceso concurrente.(interacción de actualizaciones concurrentes pueden resultar datos inconsistentes

5. Problemas de seguridad. (todos los usuarios pueden visualizar alguna información)

6. Problemas de integridad. (los datos deben satisfacer cierto tipo de restricciones de consistencia)

Niveles de Abstracción: Un objetivo importante de un sistema de base de datos es proporcionar a los usuarios una visión abstracta de los datos, es decir, el sistema esconde ciertos detalles de cómo se almacenan y mantienen los datos.

Nivel Físico (base de datos física). Es la representación del nivel más bajo de abstracción, en éste se describe en detalle la forma en cómo se almacenan los datos en los dispositivos de almacenamiento (por ejemplo, mediante señaladores o índices para el acceso aleatorio a los datos).

Bases de datos

Nivel Conceptual (base de datos lógica). 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 términos de su estructura de diseño.

Página 146 de 183

Page 147: Guia Para Egetsu

Nivel de Visión. Nivel más alto de abstracción, es lo que el usuario final puede visualizar del sistema terminado, describe sólo 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 computación que interactúan con el sistema por medio de llamadas en DML (Lenguaje de Manipulación de Datos), las cuales están incorporadas en un programa escrito en un lenguaje de programación (Por ejemplo, COBOL, PL/I, Pascal, C, etc.)

✔ Usuarios sofisticados. Los usuarios sofisticados interactúan con el sistema sin escribir programas. En cambio explotan la información.

✔ 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 interactúan con el sistema invocando a uno de los programas de aplicación 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 diseño interno del mismo por ejemplo: un cajero.

Sistemas Gestores de Bases de datos. El sistema de gestión de la base de datos (SGBD) es una aplicación 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:

✔ Abstracción de la información.

✔ Independencia.

✔ Redundancia mínima.

✔ Consistencia.

✔ Seguridad.

✔ Integridad.

✔ Respaldo y recuperación.

✔ 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 módulos 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 diseño de Bases de Datos, al proporcionar instrumentos que ayudan a la estructuración, paso a paso, del mundo real hasta llegar a la base de Datos física.

✔ MODELOS LÓGICOS BASADOS EN OBJETOS. Se usan para describir datos en el nivel conceptual y de visión, es decir, con este modelo representamos los datos como nosotros los percibimos en el mundo real, tienen una capacidad de estructuración bastante flexible y

Página 147 de 183

Page 148: Guia Para Egetsu

permiten especificar restricciones de datos explícitamente. Entre los modelos que encontramos de este tipo son Modelo Entidad-Relación, Modelo Entidad-Relación Extendido y Modelo Orientado a Objetos.

✔ MODELOS LÓGICOS BASADOS EN REGISTROS. Se utilizan para describir datos en los niveles conceptual y físico; se utilizan para especificar la estructura lógica completa de las bases de datos y proporcionan una descripción de alto nivel de implementación, tienen un número fijo de campos, atributos y longitud fija, entre estos encontramos el Modelo de Red, Modelo Jerárquico y Modelo Relacional.

MODELO DE DATOS ENTIDAD-RELACIÓN. Denominado por sus siglas como: E-R. Este modelo representa a la realidad a través de entidades, que son objetos que existen y que se distinguen de otros por sus características, por ejemplo: un alumno se distingue de otro por sus características particulares como lo es el nombre, o el número de control así mismo, un empleado, una materia, etc.

Las características de las entidades en base de datos se llaman atributos, por ejemplo el nombre, dirección teléfono, grado, grupo, etc. son atributos de la entidad alumno. A su vez una entidad se puede asociar o relacionar con más entidades a través de relaciones, Una relación es la asociación que existe entre dos a más entidades.

Símbolo Representa

Bases de datos

TIPOS DE RELACIÓN. 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:

✔ Relación uno a uno. Se presenta cuando existe una relación como su nombre lo indica uno a uno, denominado también relación de matrimonio. Una entidad del tipo A sólo se puede relacionar con una entidad del tipo B, y viceversa;

✔ Relación 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 sólo puede estar relacionada con una entidad del tipo A.

✔ Muchos a uno. Indica que una entidad del tipo B puede relacionarse con cualquier cantidad de entidades del tipo A y una entidad del tipo A sólo puede estar relacionada con una entidad del tipo B.

✔ 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, también 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 relación (tabla), dicha relación (tabla) contiene campos (columnas) y registros (filas).

Sus elementos son: Campos, Registros, Dominios, Claves.

Página 148 de 183

Entidad

Relación

AtributosLigas

Page 149: Guia Para Egetsu

CLAVES

Clave Primaria (primary key). Columna o combinación de columnas cuyos valores identifican de manera única cada fila de la tabla.

Clave Foránea (foreign key). Las columnas de una tabla cuyos valores coinciden con los de la clave primaria de otra tabla se denominan claves externas o foráneas. Conjuntamente una clave primaria y una clave foránea crean una relación padre/hijo entre las tablas que las contienen.

NORMALIZACIÓN

Proceso durante el cual los esquemas de relación que no cumplen las condiciones se descomponen repartiendo sus atributos entre esquemas de relación más pequeños que cumplen las condiciones establecidas. Un objetivo es garantizar que no ocurran anomalías de actualización. Primera forma normal (1FN). Una relación está en primera forma normal (1FN) si los valores para cada atributo de la relación son atómicos. Esto quiere decir simplemente que cada atributo sólo 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 Teléfono

123 Rachel Ingram 555-861-2025

456 James Wright555-403-1659555-776-4100

789 Cesar Dure 555-808-9633

Usamos:Cliente

ID Cliente Nombre Apellido

123 Rachel Ingram

456 James Wright

789 Cesar Dure

Teléfono del cliente

ID Cliente Teléfono

123 555-861-2025

456 555-403-1659

456 555-776-4100

789 555-808-9633

Segunda forma normal (2FN). Una relación está es segunda forma normal (2FN) si está en 1FN y todos los atributos no clave dependen de la clave completa y no sólo de una parte de esta.Ejemplo:En vez de:

Habilidades de los empleados

Empleado Habilidad Lugar actual de trabajo

Jones Mecanografía 114 Main Street

Jones Taquigrafía 114 Main Street

Página 149 de 183

Page 150: Guia Para Egetsu

Jones Tallado 114 Main Street

Bravo Limpieza ligera 73 Industrial Way

Ellis Alquimia 73 Industrial Way

Ellis Malabarismo 73 Industrial Way

Harrison Limpieza ligera 73 Industrial Way

Usamos:Empleados

Empleado Lugar actual de trabajo

Jones 114 Main Street

Bravo 73 Industrial Way

Ellis 73 Industrial Way

Harrison 73 Industrial Way

Habilidades de los empleados

Empleado Habilidad

Jones Mecanografía

Jones Taquigrafía

Jones Tallado

Bravo Limpieza ligera

Ellis Alquimia

Ellis Malabarismo

Harrison Limpieza ligera

Tercera forma normal (3FN). Una relación está en tercera forma normal si todos los atributos de la relación dependen funcionalmente sólo de la clave y no de ningún otro atributo.

Ejemplo:En vez de:

Ganadores del torneo

Torneo Año Ganador Fecha de nacimiento del ganador

Indiana Invitational 1998 Al Fredrickson 21 de julio de 1975

Cleveland Open 1999 Bob Albertson 28 de septiembre de 1968

Des Moines Masters 1999 Al Fredrickson 21 de julio de 1975

Indiana Invitational 1999 Chip Masterson 14 de marzo de 1977

Usamos:Ganadores del torneo

Torneo Año Ganador

Indiana Invitational 1998 Al Fredrickson

Cleveland Open 1999 Bob Albertson

Des Moines Masters 1999 Al Fredrickson

Indiana Invitational 1999 Chip Masterson

Fecha de nacimiento del jugador

Página 150 de 183

Page 151: Guia Para Egetsu

Jugador Fecha de nacimiento

Chip Masterson 14 de marzo de 1977

Al Fredrickson 21 de julio de 1975

Bob Albertson 28 de septiembre de 1968

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

Página 151 de 183

Page 152: Guia Para Egetsu

Bases de datos

OPTIMIZACION DE CONSULTASCláusula GROUP BY. La cláusula GROUP BY se usa para producir valores de agregado para cada fila del conjunto de resultados. Cuando se usan sin una cláusula GROUP BY, las funciones de agregado sólo devuelven un valor de agregado para la instrucción SELECT.

Ejemplo:

SELECT SUM(ventas)FROM repventas

Obtiene la suma de las ventas de todos los empleados.

SELECT SUM(ventas)FROM repventasGROUP 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 quedaría mejor incluyendo en la lista de selección la oficina para saber a qué oficina corresponde la suma de ventas:

SELECT oficina,SUM(ventas)FROM repventasGROUP BY oficina

Cláusula HAVING. La cláusula HAVING establece las condiciones de la cláusula GROUP BY de la misma forma que WHERE interactúa con SELECT. Mientras que las condiciones de búsqueda de WHERE se aplican antes de que se produzca la operación de agrupamiento, las condiciones de búsqueda de HAVING se aplican después. La sintaxis de la cláusula HAVING es similar a la de la cláusula WHERE, con la diferencia de que HAVING puede contener funciones de agregado. Las cláusulas HAVING pueden hacer referencia a cualquiera de los elementos que aparecen en la lista de selección.

En la condición de selección sólo pueden aparecer : valores constantes, funciones de columna, columnas de agrupación (columnas que aparecen en la cláusula GROUP BY) o cualquier expresión basada en las anteriores.

Ejemplo: Queremos saber las oficinas con un promedio de ventas de sus empleados mayor que 500.000 ptas.

SELECT oficinaFROM empleadosGROUP BY oficinaHAVING 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.

Cláusula ORDER BY. La cláusula ORDER BY ordena los resultados de una consulta por una o más columnas.

Ejemplo:SELECT store_name, Sales, DateFROM Store_InformationORDER BY Sales DESC

Resultado:store_name Sales DateLos Angeles 1500 € 05-Jan-1999Boston 700 € 08-Jan-1999San Francisco 300 € 08-Jan-1999San Diego 250 € 07-Jan-1999

Además del nombre de la columna, podríamos utilizar la posición de la columna (según la consulta SQL) para indicar en qué columna deseamos aplicar la cláusula 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:

Página 152 de 183

Page 153: Guia Para Egetsu

SELECT store_name, Sales, DateFROM Store_InformationORDER BY 2 DESC

PREDICADOS

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 patrón.

BETWEEN. La palabra clave BETWEEN especifica un intervalo inclusivo de búsqueda.

NOT BETWEEN. Busca todas las filas que estén 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

Página 153 de 183

FUNCIONES DE AGREGADO

COUNT Devuelve el número de registros de la tabla que se haya especificado.

AVG Calcula el promedio de los valores de un campo determinado.

SUM Devuelve la suma o total de un campo determinado.

MAX Devuelve el valor máximo de un campo determinado.

MIN Devuelve el valor mínimo de un campo determinado.

PREDICADOSALL Devuelve todos los campos de la tabla.TOP Devuelve un determinado número de registros de la tabla.DISTINCT Omite los registros cuyos campos seleccionados coincidan totalmente.DISTINCTROW Omite los registros duplicados basándose en la totalidad del registro y no sólo

en los campos seleccionados.

Page 154: Guia Para Egetsu

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 cláusula INNER que combina registros de dos tablas siempre que haya concordancia de valores en un campo común. * INNER JOIN no muestra registros con valores nulos.

Ejemplo:

SELECT *FROM empleado INNER JOIN departamento ON empleado.IDDepartamento = departamento.IDDepartamento

Resultados:

Empleado.Apellido

Empleado.IDdepartamento

departamento.NombreDepartamento

departamento.IDDepartamento

Zolano 34 Producción 34

Jordán 33 Ingeniería 33

Róbinson 34 Producción 34

Steinberg 33 Ingeniería 33

Andrade 31 Ventas 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.Apellido

Empleado.IDDepartamento

Departamento.NombreDepartamento

Departamento.IDDepartamento

Jordán 33 Ingeniería 33

Andrade 31 Ventas 31

Róbinson 34 Producción 34

Zolano 34 Producción 34

Gaspar 36 NULL NULL

Steinberg 33 Ingeniería 33

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

Página 154 de 183

Page 155: Guia Para Egetsu

Empleado.Apellido

Empleado.IDDepartamento

Departamento.NombreDepartamento

Departamento.IDDepartamento

Zolano 34 Producción 34

Jordán 33 Ingeniería 33

Róbinson 34 Producción 34

Steinberg 33 Ingeniería 33

Andrade 31 Ventas 31

NULL NULL Mercadeo 35

PROCEDIMIENTOS ALMACENADOS (TRANSACT –SQL). Un procedimiento almacenado es una colección con nombre de instrucciones de Transact-SQL que se almacena en el servidor. Los procedimientos almacenados son un método para encapsular tareas repetitivas. Admiten variables declaradas por el usuario, ejecución condicional y otras características de programación 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

ASINSERT 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 automáticamente cuando un usuario intenta la instrucción especificada de modificación 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.

Página 155 de 183

Page 156: Guia Para Egetsu

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 acción. Puede ser BEFORE (antes) o AFTER (despues), para indicar que el disparador se ejecute antes o después 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 podría 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 múltiples sentencias, deben colocarse entre BEGIN ... END, el constructor de sentencias compuestas. Esto además 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 través de una vista no están almacenados en un objeto distinto de la base de datos. Lo que está almacenado en la base de datos es una instrucción SELECT. El resultado de la instrucción 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 código.

CREATE VIEW vAlquileresAS(SELECT nombre, apellidos, matriculaFROM tAlquileres, tClientes WHERE ( tAlquileres.codigo_cliente = tClientes.codigo ))

Si ya no necesita una vista, puede quitar su definición de la base de datos con la instrucción DROP VIEW nombre_vista.

TRANSACCIONES. Una transacción es la unidad de ejecución de un programa que accede y posiblemente actualiza varios elementos de datos.

Sintaxis general:Begin transaction nombre_de_la_transacciónInstrucciones sql (select, insert, update, delete)End

Seguridad y optimización

Página 156 de 183

Page 157: Guia Para Egetsu

COMMIT TRANSACTION. Se utiliza para finalizar una transacción correctamente sino hubo errores. Todas las modificaciones de datos realizadas en la transacción se convierten en partes permanentes de la base de datos.

ROLLBACK TRANSACTION. Deshace una transacción explícita o implícita hasta el inicio de la transacción o hasta un punto de almacenamiento dentro de una transacción.

SEGURIDAD Y OPTIMIZACIÓN✔ Seguridad: Se refiere a la protección contra el acceso mal intencionado.✔ Integridad: Se refiere a la protección contra la pérdida accidental de consistencia (precisión,

corrección o validez de la BD).✔ Confidencialidad: Tarea del Administrador de la BD de aumentarla.

La información debe estar protegida contra:✔ Accesos no autorizados✔ Destrucción o alteración con fines indebidos✔ Introducción 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:✔ Físicos: De memoria, caídas del sistema, anomalías de acceso concurrente.✔ Lógicos: De programación, 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 Detección: Para detectar las fallas una vez que se han producido.✔ Subsistemas de Recuperación: Para corregir las fallas después de haber sido detectadas.

NIVELES DE SEGURIDAD. Un usuario atraviesa dos fases de seguridad al trabajar en SQL Server: la autenticación y autorización (aprobación de los permisos). La fase de la autenticación identifica al usuario que está usando una cuenta de inicio de sesión y verifica sólo su capacidad para conectarse a una instancia de SQL Server. Si la autenticación 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 sesión del usuario).

La implementación en SQL Server abarca los siguientes aspectos:

SEGURIDAD FÍSICA DEL SERVIDOR. Restringir el acceso físico al servidor SQL Server únicamente al personal autorizado. Además, también debemos tener en cuenta la seguridad física 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.

✔ Ubicación adecuada del servidor, por ejemplo si existen riesgos de inundación, tal vez podríamos ubicarlo en un lugar elevado.

✔ El cableado debe estar adecuado al lugar para evitar problemas con el fluido eléctrico.

✔ UPS o sistema de alimentación continua de energía.

Seguridad y optimización

CUENTAS Y CONTRASEÑAS. Nunca usar contraseñas en blanco o escribir las contraseñas en alguna aplicación. Es recomendable tener contraseñas mixtas que comiencen con uno o varios números seguido por una combinación de letras y caracteres especiales para contrarrestar los ataques producidos por los hackers.

CONCEDER PERMISOS: SENTENCIA GRANT

Página 157 de 183

Page 158: Guia Para Egetsu

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 específicas.

Para permisos de la instrucción:GRANT { ALL | statement [ , . . n ] }TO security_account [, . . . n]

DENEGAR PERMISOS: SENTENCIA DENYLa 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 través de los miembros de su grupo o función. Permisos de la instrucción:

DENY {ALL | statement [ , . . . n ] }TO security_account [ , . . . ]

EVOCAR PERMISOS: SENTENCIA REVOKE Es posible revocar un permiso que previamente se ha otorgado o denegado. La revocación se asemeja a la denegación en que ambas retiran un permiso concedido y en el mismo nivel. No obstante, aunque la revocación retira un permiso concedido, no impide que el usuario, grupo o función lo herede de un nivel superior... La sintaxis de REVOKE es la siguiente:Permisos de la instrucción:

REVOKE { ALL | statement [ , . . . n ]FROM security_account [ , . . . n ]

Página 158 de 183

COMANDO SINTAXIS DESCRIPCIÓNCREATE DATABASE CREATE DATABASE nombre_base; Permite crear una base de datos.USE USE nombre_base; Permite asegurarnos de usar la base de datos adecuada.

CREATE TABLECREATE TABLE nombre_tabla (atributo1 tipo1(longitud, atributo2 tipo2(longitud), ….. Atributo n tipo n(longitud) );

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

SHOW DATABASES SHOW DATABASES; Muestra las bases de datos que se hayan creado.SHOW TABLES SHOW TABLES; Muestra las tablas que se hayan creado dentro de la base

de datos que actualmente esté en uso.DROP DATABASE DROP DATABASE nombre_base; Permite eliminar una base de datos que se haya creado.

Este comando no envía ningún tipo de advertencia o notificación.

DROP TABLE DROP TABLE noombre_tabla; Permite eliminar una tabla de la base de datos que actualmente este en uso. Este comando no envía ningún tipo de advertencia o notificación.

DESCRIBE DESCRIBE nombre_tabla; Muestra la estructura de una tabla.INSERT INSERT INTO nombre_tabla (campo1,campo2,

campo3, campo4, …, campo n) VALUES (VALOR1,VALOR2,VALOR3,VALOR4, …,VALOR n);

Utilizado para insertar datos en una tabla, se puede insertar un registro a la vez o varios registros en una sola operación.

Page 159: Guia Para Egetsu

Página 159 de 183

SELECTSELECT campo(s) FROM nombre_tabla;SELECT campo(s) FROM nombre_tabla WHERE condición;SELECT campo(s) FROM nombre_tabla WHERE condición1 AND/OR condición2;

Permite consultar registros de la base de datos que satisfagan un criterio determinado.Este comando se puede utilizar combinando cláusulas, operadores y funciones.

UPDATE UPDATE nombre_tablaSET campo_a_modificar = nuevo_datoWHERE campo_condición = valor_condición;

Utilizado para modificar los valores de los campos de un registro. Si no se utiliza la cláusula WHERE se modificaran todos los registros de la tabla.

DELETE DELETE FROM nombre_tabla WHERE condición; Utilizado para eliminar registros de una tabla. Si no se utiliza la cláusula WHERE se borraran todos los registros de la tabla.

OPERADORES DE COMPARACIÓN

>, <, <>, >=, <=, = Se utiliza para establecer una comparación entre números.

LIKE Se utiliza para establecer una comparación con un texto determinado.

CLAÚSULAS

FROM Especifica la tabla de la cual se van a solicitar los registros.

WHERE Especifica las condiciones que deben de cumplir los registros.

OPERADORES LÓGICOS

AND Evalúa dos condiciones y devuelve un valor de verdad si ambas son ciertas.

OR Es el “O” lógico. Evalúa dos condiciones.

Lenguaje de Consultas (SQL)

Page 160: Guia Para Egetsu

Administración

8.- ADMINISTRACIÓN DE LA FUNCIÓN INFORMÁTICAAdministración: proceso de crear, diseñar y mantener un ambiente en el que las personas al laborar o trabajar en grupos, alcancen con eficiencia metas seleccionadas.

Proceso administrativo: el proceso metodológico que implica una serie de actividades que llevará a una mejor consecución de los objetivos, en un periodo más corto y con una mayor productividad. Elementos del proceso administrativo:

Planeación. Determinación racional de a dónde queremos ir y cómo llegar allá

Niveles de planeación de un centro de cómputo

Planeación de recursos: Instalaciones acorde a las necesidades informáticas, equipo de cómputo y materiales de producción.

Planeación operativa. Análisis de necesidades para definir una plataforma tecnológica con una infraestructura en hardware, software, personal operativo etc.

Planeación de instalación física y ubicación física. Los factores que como mínimo hay que cubrir son: Espacio físico, movilidad de equipos, iluminación, tratamiento acústico, seguridad física del local y suministro eléctrico.

Criterios para seleccionar software: Verificar el tipo de Software de programa, existen dos niveles: básico. Sistema Operativo y soporte:

Base de datos Proveedor. Debe cubrir ciertos requisitos: prestigio, soporte técnico, personal especializado,

comunicación rápida, capacitación, cartera de clientes de software iguales al adquirido. Costos: Se considerarán condición de pago, local, inclusión de entrenamiento, costos de

mantenimiento.

Criterios para seleccionar Hardware Equipos: La configuración de acuerdo a la carga de trabajo, crecimiento vertical y horizontal, garantía,

tecnología de punta. Proveedor. prestigio, soporte técnico, personal especializado, comunicación rápida, capacitación,

cartera de clientes de software iguales al adquirido Precios: Condiciones de pago, descuentos, costos de mantenimiento

Proceso general para la Adquisición de Software y Hardware.

Solicitud de propuesta. Partiendo de los objetivos establecidos en la etapa de planeación Evaluación de propuesta. Verificar operatividad Financiamiento. Ver fuentes de financiamiento Negociación de Contrato. Por escrito e incluir todos los aspectos de hardware y software

Página 160 de 183

Page 161: Guia Para Egetsu

Administración

Principales problemas de un centro de cómputo

Hardware Defectos de fabricación y ó daños físicos que puedan tener durante su transporte. Que el manual de uso este en otro idioma ajeno al que manejamos las piezas que pudiera ser dañadas no son muy comunes y por tanto difíciles de conseguir. Cuando se trabaja con conexión a red, es muy común 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 configuración de estas es muy específica.

Software Los archivos necesarios para su instalación no están contenidos en el CD de instalación. 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 difícil 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 pérdidas o fraudes debido a que: • Manejan grandes volúmenes de datos e interviene poco personal, lo que impide verificar todas las

partidas. • En los registros magnéticos transitorios menos que se realicen pruebas dentro de un período de tiempo

corto, podrían perderse los detalles de lo que sucedió, quedando sólo los efectos. • Los sistemas son impersonales, aparecen en un formato ilegible y están controlados parcialmente por

personas cuya principal preocupación son los aspectos técnicos del equipo y del sistema y que no comprenden, o no les afecta, el significado de los datos que manipulan.

• En el diseño de un sistema importante es difícil 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 mayoría del tiempo, resultar difícil implantar unos niveles normales de control y supervisión.

• El error y el fraude son difíciles de equiparar. A menudo, los errores no son iguales al fraude. Se tiende a empezar buscando errores de programación y del sistema. Si falla esta operación, se buscan fallos técnicos y operativos. Sólo cuando todas estas averiguaciones han dado resultados negativos, acaba pensándose en que la causa podría ser un fraude.

Tipificación de los delitos informáticos, Clasificación Según la Actividad Informática

• Conductas dirigidas a causar daños físicos: Destrucción «física» del hardware y el software de un sistema. Estas conductas pueden ser analizadas jurídicamente

• Copia ilegal de software y espionaje informático: Obtener datos en forma ilegítima o sustracción del sistema si tiene valor comercial.

• Infracción de los derechos de autor: conductas que supongan la copia o el plagio de las obras protegidas, donde concurran dos circunstancias: el ánimo de lucro y el perjuicio de tercero

• Infracción del Copyright de bases de datos: No existe una protección uniforme de las bases de datos en los países que tienen acceso a Internet. En general se protegen los datos pero no el sistema

• Uso ilegítimo de sistemas informáticos ajenos: Empleados utilizan los sistemas de las empresas para fines privados.• Delitos informáticos contra la privacidad: Utilización indebida o modificación de datos personales de registro

público o privado• Pornografía infantil. Utilización de sistemas informáticos para su distribución

Auditoría

Clasificación Según el Instrumento, Medio o Fin u Objetivo

Página 161 de 183

Page 162: Guia Para Egetsu

Como instrumento o medio: • Falsificación de documentos vía computarizada (tarjetas de crédito, cheques, etc.)• Variación de los activos y pasivos en la situación contable de las empresas.• Lectura, sustracción o copiado de información confidencial.• Modificación de datos de entrada y salida• Aprovechamiento indebido o violación de un código para penetrar a un sistema introduciendo

instrucciones inapropiadas. • Variación en cuanto al destino de pequeñas cantidades de dinero hacia una cuenta bancaria apócrifa.• Uso no autorizado de programas de cómputo.• Introducción de instrucciones que provocan «interrupciones » en la lógica interna de los programas.• Alteración en el funcionamiento de los sistemas, a través de los virus informáticos.• Obtención de información residual impresa en papel luego de la ejecución de trabajos.• Acceso a áreas informatizadas en forma no autorizada.• Intervención en las líneas de comunicación de datos o teleproceso.

Como fin u objetivo.Conductas criminales que van dirigidas contra las computadoras, accesorios o programas como entidad física:• Programación de instrucciones que producen un bloqueo total al sistema.• Destrucción de programas por cualquier método.• Daño a la memoria.• Atentado físico contra la máquina o sus accesorios.• Sabotaje político o terrorismo en que se destruya o surja un apoderamiento de los centros neurálgicos

computarizados.• Secuestro de soportes magnéticos entre los que figure información valiosa con fines de chantaje

Ley de Derechos de Autor (FRAGMENTOS IMPORTANTES)

Artículo 101.- Se entiende por programa de computación la expresión original en cualquier forma, lenguaje o código, de un conjunto de instrucciones que, con una secuencia, estructura y organización determinada, tiene como propósito que una computadora o dispositivo realice una tarea o función específica.

Artículo 102.- Los programas de computación se protegen en los mismos términos que las obras literarias. Dicha protección se extiende tanto a los programas operativos como a los programas aplicativos, ya sea en forma de código fuente o de código objeto. Se exceptúan aquellos programas de cómputo que tengan por objeto causar efectos nocivos a otros programas o equipos.

Artículo 103.- Salvo pacto en contrario, los derechos patrimoniales sobre un programa de computación y su documentación, 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 excepción a lo previsto por el artículo 33 de la presente Ley, el plazo de la cesión de derechos en materia de programas de computación no está sujeto a limitación alguna.

Artículo 104.-Como excepción a lo previsto en el artículo 27 fracción IV, el titular de los derechos de autor sobre un programa de computación o sobre una base de datos conservará, aún después 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 computación no constituya en sí mismo un objeto esencial de la licencia de uso.

Auditoría

Artículo 105.- El usuario legítimo de un programa de computación podrá realizar el número 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 utilización del programa, o

Página 162 de 183

Page 163: Guia Para Egetsu

II. Sea destinada exclusivamente como resguardo para sustituir la copia legítimamente adquirida, cuando ésta no pueda utilizarse por daño o pérdida. La copia de respaldo deberá ser destruida cuando cese el derecho del usuario para utilizar el programa de computación.

Artículo 106.- El derecho patrimonial sobre un programa de computación comprende la facultad de autorizar o prohibir: I. La reproducción permanente o provisional del programa en todo o en parte, por cualquier medio y forma:II. La traducción, la adaptación, el arreglo o cualquier otra modificación de un programa y la reproducción del programa resultanteIII. Cualquier forma de distribución del programa o de una copia del mismo, incluido el alquiler, y IV. La de compilación, los procesos para revertir la ingeniería de un programa de computación y el desensamblaje.

Artículo 107.- Las bases de datos o de otros materiales legibles por medio de máquinas o en otra forma, que por razones de selección y disposición de su contenido constituyan creaciones intelectuales, quedarán protegidas como compilaciones. Dicha protección no se extenderá a los datos y materiales en sí mismos.

Artículo 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 años.

Artículo 109.- El acceso a información de carácter privado relativa a las personas contenidas en las bases de datos a que se refiere el artículo anterior, así como la publicación, reproducción, divulgación, comunicación pública y transmisión de dicha información, requerirá la autorización previa de las personas de que se trate. Quedan exceptuados de lo anterior, las investigaciones de las autoridades encargadas de la procuración e impartición de justicia, de acuerdo con la legislación respectiva, así como el acceso a archivos públicos por las personas autorizadas por la ley, siempre que la consulta sea realizada conforme a los procedimientos respectivos.

Artículo 110.- El titular del derecho patrimonial sobre una base de datos tendrá el derecho exclusivo, respecto de la forma de expresión de la estructura de dicha base, de autorizar o prohibir: I. Su reproducción permanente o temporal, total o parcial, por Cualquier medio y de cualquier forma; II. Su traducción, adaptación, reordenación y cualquier otra modificación; III. La distribución del original o copias de la base de datos; IV. La comunicación al público, y V. La reproducción, distribución o comunicación pública de los resultados de las operaciones mencionadas en la fracción II del presente artículo.

Artículo 111.- Los programas efectuados electrónicamente que contengan elementos visuales, sonoros, tridimensionales o animados quedan protegidos por esta Ley en los elementos primigenios que contengan.

Artículo 112.- Queda prohibida la importación, fabricación, distribución y utilización de aparatos o la prestación de servicios destinados a eliminar la protección técnica de los programas de cómputo, de las transmisiones a través del espectro electromagnético y de redes de telecomunicaciones y de los programas de elementos electrónicos señalados en el artículo anterior.

Auditoría

Artículo 113.- Las obras e interpretaciones o ejecuciones transmitidas por medios electrónicos a través del espectro electromagnético y de redes de telecomunicaciones y el resultado que se obtenga de esta transmisión estarán protegidas por esta Ley.

Artículo 114.- La transmisión de obras protegidas por esta Ley mediante cable, ondas radioeléctricas, satélite u otras similares, deberán adecuarse, en lo conducente, a la legislación mexicana y respetar en todo caso y en todo tiempo las disposiciones sobre la materia.

Página 163 de 183

Page 164: Guia Para Egetsu

Artículo 164.- El Registro Público del Derecho de Autor tiene las siguientes obligaciones: I. Inscribir, cuando proceda, las obras y documentos que le sean presentadosII. Proporcionar a las personas que lo soliciten la información de las inscripciones y, salvo lo dispuesto en los párrafos siguientes, de los documentos que obran en el Registro. Tratándose de programas de computación, de contratos de edición y de obras inéditas, la obtención de copias sólo se permitirá mediante autorización del titular del derecho patrimonial o por mandamiento judicial.

Página 164 de 183

Page 165: Guia Para Egetsu

Paquetería Básica

9.- INFORMATICA

Paquetes de aplicaciones generales (Procesadores de Texto, Hojas de Cálculo, Bases de Datos e Internet).

a) Notas Técnicas

Concepto de herramienta de software

Herramienta de Software: Es una aplicación 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 cálculo y de software de presentaciones

Procesador de Texto: Programa de procesamiento de palabras con todas las facilidades para computadoras personales. Hoja de Cálculo: Programa que permite a los crear, manipular y analizar rápidamente 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 básicas de Word

Tareas Básicas de Word: Permite la creación de cualquier tipo documentos, apoyándose en herramientas que faciliten el tratamiento de textos.

Funcionamiento básico de Excel

Funcionamiento Básico de Excel: Permite la creación de cualquier tipo de hoja cálculo, funciones financieros, de matemáticas, de texto, lógicas y gráficas.

Funcionamiento básico de Power Point

Funcionamiento básico de Power Point: Permite la creación de cualquier tipo de presentación utilizando las herramientas de diseño, y de multimedia.

Internet en las comunicaciones del mundo

Internet: Es una interconexión de redes informáticas que permite a las computadoras conectadas comunicarse directamente. El término suele referirse a una interconexión en particular, de carácter planetario y abierto al público, que conecta redes informáticas de organismos oficiales, educativos y empresariales.

Funcionamiento de los servicios de Internet: Correo electrónico y Web

Correo electrónico: 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 información inagotable y accesible a través de Internet.b) Ejercicios (y Respuestas)

Paquetería Básica

Página 165 de 183

Page 166: Guia Para Egetsu

Sistemas de información en la empresa: Estaciones de trabajo, redes internas y externas.

a) Notas Técnicas

Principios de Comunicación de Datos

Definición de Comunicación

Es el proceso mediante el cual dos o más personas logran establecer un enlace para enviar, transmitir o compartir una idea, información, o un bien que posee cada una de ellas.

Formas de Comunicación:

• Gestos.• Movimiento corporal.• Voz• Señales de humo.• Palomas mensajeras• Correo.• Telégrafo,• Teléfono.• Radio• Televisión.• Internet.• Etc.

Componentes de la Comunicación

• Mensaje .- Es la idea, información 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 envía 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 MedioUn camión Una carreteraUn barco El aguaUn tren Una víaUn avión El aireEl agua Una

mangueraEl sonido El aireLa electricidad Un cable

metálico

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

Página 166 de 183

Page 167: Guia Para Egetsu

Paquetería Básica

Modelo de comunicación de datos

Importancia de la comunicación:

En la medida en que una sociedad se desarrolla y crece, también aumenta la necesidad de comunicación entre su población. Todos los días las personas enviamos y recibimos millones de mensajes para compartir información 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 comunicación debe realizarse con éxito, es decir; el mensaje que envía la fuente debe ser exactamente igual al mensaje que recibe el destino. De otra manera se tomarían decisiones que podrían ser fatales.

Por ejemplo:

• Los clientes no comprarían los productos.• Los padres pensarían que su hijo no se encuentra bien.• Se sentenciaría 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 transmisión de información en un medio de comunicación para que ésta sea comprensible tanto para el emisor como para el receptor, estableciendo el formato, la sincronía y el control de errores.

Informática en la Organización La Informática se define como el conjunto de conocimientos y técnicas que tienen por objetivo:

• El tratamiento automático de información. • El desarrollo de sistemas de información.

La informática dentro de una organización ayuda a eficientar y automatizar los procesos, que se llevan a cabo dentro de la misma.

Informática relacionada con las Tecnologías de Información

La evolución de la tecnología computacional ha propiciado que surja el concepto de Tecnologías de la Información, por lo que:

Página 167 de 183

Page 168: Guia Para Egetsu

Las Tecnologías de Información son las ciencias y habilidades de los aspectos de computación y comunicación, para la administración de la información.

Debido a que un profesionista en Informática se enfrentará a la administración de la información es importante que se relacione a la Informática con las Tecnologías de Información, para su aplicación en la implementación de soluciones computacionales en una organización.

Página 168 de 183

Page 169: Guia Para Egetsu

Bases de hardware

Componentes de una computadora

Computadora:

Dispositivo electrónico, constituido por un conjunto de unidades especializadas dependientes de un programa introducido en la memoria, que permite, sin intervención del hombre, efectuar complejas operaciones de carácter aritmético o lógico.

La unidad central de proceso

La Unidad central de proceso o CPU, se puede definir como un circuito microscópico 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 electrónicos. El microprocesador de la CPU está formado por una unidad aritmético-lógica que realiza cálculos y comparaciones, y toma decisiones lógicas (determina si una afirmación es cierta o falsa mediante las reglas del álgebra de Boole); por una serie de registros donde se almacena información 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 través 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 aritmético-lógica (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 comunicación entre la unidad de control, la ALU y los registros.

Bases de hardware

Página 169 de 183

Page 170: Guia Para Egetsu

La Memoria

La memoria de un computador se puede definir como los circuitos que permiten almacenar y recuperar la información. En un sentido más amplio, puede referirse también a sistemas externos de almacenamiento, como las unidades de disco o de cinta.

. Tipos de Memoria

Jerarquía de memoria

En un ordenador hay una jerarquía de memorias atendiendo al tiempo de acceso y a la capacidad que. normalmente son factores contrapuestos por razones económicas y en muchos casos también físicas. Comenzando desde el procesador al exterior, es decir en orden creciente de tiempo de acceso y capacidad, se puede establecer la siguiente jerarquía:

Memorias caché: Son memorias de pequeña capacidad. Normalmente una pequeña fracción de la memoria principal y pequeño 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 rápido y gran capacidad.Extensiones de memoria central: Son memorias de la misma naturaleza que la memoria central que amplían 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.

Clasificación de memorias semiconductoras de acceso aleatorio

Las memorias se clasifican, por la tecnología empleada y, además según 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 tecnología pueden ser de ferritas (ya en desuso) o electrónicas, 2) Memorias ROM (Read 0nly Memory): Son memorias en las que sólo se puede leer. Pueden ser:

ROM programadas por máscara, cuya información se graba en fábrica 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 tecnología de borrado eléctrico al igual que las EEPROM. Las memorias flash pueden borrarse enteras en unos cuantos segundos, mucho más rápido que las EPROM

Buses del Sistema

El bus se puede definir como un conjunto de líneas conductoras de hardware utilizadas para la transmisión de datos entre los componentes de un sistema informático. 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 transmisión de información.

Bases de hardware

Procesador

Página 170 de 183

Page 171: Guia Para Egetsu

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

Este mismo concepto es también la razón por la cual al utilizar tarjetas de ampliación en un PC surgen problemas una y otra vez, si hay dos tarjetas que reclaman para ellas el mismo campo de dirección o campos de dirección que se solapan entre ellos.

Los datos en si no se mandan al bus de direcciones sino al bus de datos. El bus XT tenía solo 8 bits con lo cual sólo podía transportar 1 byte a la vez. Si la CPU quería depositar el contenido de un registro de 16 bits o por valor de 16 bits, tenía que desdoblarlos en dos bytes y efectuar la transferencia de datos uno detrás de otro.

Estructuras de interconexión

Existen dos organizaciones físicas 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 información entre la CPU y los periféricos.

Control: Lleva información referente al estado de los periféricos (petición de interrupciones).

Direcciones: Identifica el periférico referido.

Sincronización: Temporiza las señales de reloj.

Bases de hardware

La mayor ventaja del bus único es su simplicidad de estructura que le hace ser más económico, pero no permite que se realice a la vez transferencia de información entre la memoria y el procesador y entre los periféricos y el procesador.

Por otro lado el bus dedicado es mucho más flexible y permite transferencias simultáneas. Por contra su estructura es más compleja y por tanto sus costes son mayores.

Página 171 de 183

Page 172: Guia Para Egetsu

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 expansión 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 ampliación 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 tenía el diseño del bus ISA en IBM se trabajó en un nueva tecnología de bus que comercializó con su gama de ordenadores PS/2. El diseño MCA (Micro Channel Arquitecture) permitía una ruta de datos de 32 bits, más ancha, y una velocidad de reloj ligeramente más elevada de 10 Mhz, con una velocidad de transferencia máxima de 20 Mbps frente a los 8 Mbps del bus ISA.

EISA (Extended ISA)

El principal rival del bus MCA fue el bus EISA, también 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 años 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 estándares en el ámbito de las tarjetas gráficas 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 ampliación. Además, en un PC con bus VL puede haber, sin embargo, una, dos o incluso tres ranuras de expansión, para la colocación de tarjetas concebidas para el bus VL, casi siempre gráficos. Solamente estos slots están conectados con la CPU a través 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: interconexión de los componentes periféricos (Peripheral Component Interconnect) y presenta un moderno bus que no sólo está meditado para no tener la relación del bus ISA en relación a la frecuencia de reloj o su capacidad sino que también la sincronización con las tarjetas de ampliación en relación a sus direcciones de puerto, canales DMA e interrupciones se ha automatizado finalmente de tal manera que el usuario no deberá preocuparse más por ello.

Bases de hardware

SCSI (Small Computer System Interface)

Además de todas las arquitecturas mencionadas anteriormente, también hay que mencionar a SCSI. Esta tecnología tiene su origen a principios de los años 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.

Página 172 de 183

Page 173: Guia Para Egetsu

AGP (Accelerated Graphics Port)

La tecnología AGP, creada por Intel, tiene como objetivo fundamental el nacimiento de un nuevo tipo de PC, en el que se preste especial atención a dos facetas: gráficos y conectividad.

La especificación AGP se basa en la especificación PCI 2.1 de 66 Mhz (aunque

Dispositivos de almacenamiento y de entrada-salida

Notas Técnicas

Dispositivos de almacenamiento

Los sistemas informáticos 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 periféricas conectadas a la placa de circuitos principal del ordenador. Estos chips de RAM constan de conmutadores sensibles a los cambios de la corriente eléctrica. Los chips de RAM estática conservan sus bits de datos mientras la corriente siga fluyendo a través del circuito, mientras que los chips de RAM dinámica (DRAM, acrónimo de Dynamic Random Access Memory) necesitan la aplicación de tensiones altas o bajas a intervalos regulares aproximadamente cada dos milisegundos para no perder su información.

Dispositivos de almacenamiento magnético:

Almacenamiento Magnético

1.- Discos Flexibles2.- Discos Duros3.- Cintas Magnéticas o Cartuchos.

Almacenamiento Óptico:La necesidad de mayores capacidades de almacenamiento han llevado a los fabricantes de hardware a una búsqueda continua de medios de almacenamiento alternativos y cuando no hay opciones, a mejorar tecnologías disponibles y desarrollar nuevas. Las técnicas de almacenamiento óptico hacen posible el uso de la localización precisa mediante rayos láser.Leer información de un medio óptico es una tarea relativamente fácil, escribirla es otro asunto. El problema es la dificultad para modificar la superficie de un medio óptico, ya que los medios ópticos perforan físicamente la superficie para reflejar o dispersar la luz del láser.

Los principales dispositivos de almacenamiento óptico son:

1.- CD ROM.- CD Read Only Memory2.- WORM.- Write Once, Read Many

Bases de hardware

Medios Magnético - Ópticos:

Estos medios combinan algunas de las mejores características de las tecnologías de grabación magnética y óptica. Un disco MO tiene la capacidad de un disco óptico, pero puede ser re-grabable con la facilidad de un disco magnético. Actualmente están disponibles en varios tamaños y capacidades.

Dispositivos de Entrada-Salida

Definición de Hardware:

Página 173 de 183

Page 174: Guia Para Egetsu

Hardware son todos aquellos componentes físicos 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 máquina) realice su tarea. Como concepto general, el software puede dividirse en varias categorías basadas en el tipo de trabajo realizado. Las dos categorías primarias de software son los sistemas operativos (software del sistema), que controlan los trabajos del ordenador o computadora, y el software de aplicación, 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 máquina de escribir, en el que además de las teclas alfabéticas, numéricas y de puntuación existen símbolos y teclas de control.

Mouse: Es un dispositivo que permite señalar con un puntero o una flecha en la pantalla, así como seleccionar opciones, arrastrar objetos, conmutar entre pantallas, crear elementos gráficos y otras actividades más.

Micrófono: Es un dispositivo de entrada de información 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 eléctricos, mismos que a su vez son convertidos en información binaria para su manejo por el microprocesador.

Escáner: Es un lector exploratorio óptico que convierte las imágenes en una representación digital, de acuerdo con algún formato gráfico. Lectores ópticos: Suelen contener una fuente de luz que ilumina intensamente el dato a leer, un sistema óptico de ampliación de imagen y los elementos necesarios para identificar el carácter.

Caracteres magnéticos: Se utilizan en los talones y cheques bancarios, y en las etiquetas de algunos medicamentos en algunos países, pues en España se usa el código EAN. En estos documentos se imprimen, de acuerdo con unos patrones, los caracteres que identifican el cheque o talón.

Bases de hardware

Dispositivos de salida

Estos dispositivos permiten al usuario ver los resultados de los cálculos o de las manipulaciones de datos de la computadora. El dispositivo de salida más común es la unidad de visualización (VDU, acrónimo de Video Display Unit), que consiste en un monitor que presenta los caracteres y gráficos en una pantalla similar a la del televisor. Por lo general, las VDU tienen un tubo de rayos catódicos como el de cualquier televisor, aunque los ordenadores pequeños y portátiles utilizan hoy pantallas de cristal líquido (LCD, acrónimo de Liquid Crystal Displays) o electroluminiscentes. Otros dispositivos de salida más comunes son las impresoras y los módem. Un módem enlaza dos ordenadores transformando las señales digitales en analógicas para que los datos puedan transmitirse a través de las telecomunicaciones.

Ejemplos:

• Sintetizado de voz

Página 174 de 183

Page 175: Guia Para Egetsu

• Visualizador• Trazador de gráficos o "plotter"• Monitor• Microfilm• Instrumentación científica o industrial

Descripción de algunos de ellos.

Monitor: La introducción del monitor como una forma de expedir los resultados, capaz de convertir la señal de computadora en una señal de Televisión.

Pantallas LCD: Despliegue de cristal líquido.

Impresora: Una impresora es un periférico para el computador, que traslada el texto o la imagen generada por ella a un medio imprimible (papel, transparencias, etc...)

Página 175 de 183

Page 176: Guia Para Egetsu

Sistemas de información

La Información y su Representación

Definición de Informática: Tratamiento automatizado de la Información.

Definición de datosSe refiere fundamentalmente a cualquier hecho, cifra, carta, palabra, símbolo o gráficas que representan una idea, objetivo, condición o situación.

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 técnicos y cifras de producción.

Diferencia entre datos e información

Los datos son hechos, la materia prima de la información. Los datos se representan por medio de símbolos, pero sólo pueden considerarse como información en un sentido limitado. En la forma en que el término se utiliza en el procesamiento de datos, la información consta de datos organizados en una forma que es útil para las personas que la reciben. En otras palabras, la información consiste en conocimientos importantes producidos como resultado de las operaciones de procesamiento de datos, asimismo las personas los adquieren para mejorar su comprensión y para lograr objetivos específicos.

Actividades de procesamiento de datos

1. Captura de los datos de entradaLos datos se deben registrarse o capturarse de alguna manera antes de poder procesarse.

1. Manipulación de datos.a) Agrupación: Se denomina agrupación al proceso de organizar elementos similares para formar

grupos o clases.b) Cálculo: La manipulación aritmética de los datos se llama cálculo y es una actividad de

procesamiento muy común.c) Clasificación: casi siempre es más fácil trabajar con los datos si están ordenados en una secuencia

lógica. d) Síntesis: Se denomina síntesis a la reducción de grandes volúmenes de datos a una forma más

concisa y manejable.

1. Manejo de los resultados de salida.a) Almacenamiento y recuperación: Se denomina almacenamiento a la conservación de los datos

para consultarlos en el futuro.b) Comunicación y reproducción: La comunicación de datos es la transferencia de datos de una

localidad u operación a otra, para utilizarlos o para seguirlos procesando y este proceso continúa hasta que la información en forma útil llega hasta el usuario final.

Operaciones de entrada/salida

1. Operación 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 cálculo y manipulación de texto: Los circuitos de las computadoras efectúan cálculos con los números y son igualmente capaces de manipular caracteres no numéricos y los demás símbolos que se utilizan en palabras y enunciado.

3. Operaciones de lógica/comparación: La computadora también es capaz de efectuar operaciones lógicas.

4. Operaciones de almacenamiento y recuperación de información. Tanto los datos como las instrucciones de programa se almacenan dentro de la computadora.

Sistemas de información

Página 176 de 183

Page 177: Guia Para Egetsu

Sistema de información

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.

Definición de Sistema de Información-. Se define como la forma de proporcionar información oportuna, pertinente y precisa, relativa a las operaciones internas y a la inteligencia externa a cualquier miembro de una organización como ayuda de la toma de decisiones o para el desempeño de la actividad de trabajo asignada.

Computadoras digitales y sistemas digitales.

La computadora digital de propósito general es el ejemplo mejor conocido de un sistema digital. Es característico de un sistema digital la manipulación de elementos discretos de información.

Sistemas numéricos

En matemáticas, varios sistemas de notación que se han usado o se usan para representar cantidades abstractas denominadas números. Un sistema numérico está definido por la base que utiliza.

Números binarios.

Un número decimal como 7392 representa una cantidad igual a 7 millares, más 3 centenas, más 9 decenas, más 2 unidades. Los millares, centenas, etc., son potencias de 10 implicadas por la posición de los coeficientes. Para ser más 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 demás operaciones pueden expresarse en términos de estas tres.

Jerarquía de operaciones: Las operaciones booleanas también manejan prioridades: NOT, AND, OR. Así, si tiene A + BC', esta expresión se resuelve (A + (B . ('C))). Los paréntesis se utilizan para forzar otras prioridades.

Factorización: Las expresiones lógicas 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 expresión. Entonces, se maneja una tabla de verdad por expresión. Para ello, se escriben como encabezado todos los nombres de las variables. En la parte inferior de la tabla, se

Sistemas de información

numeran en base 2 todos los posibles valores de dichas variables, comenzando con 0 y terminando con 2n-

1, donde n es el número total de variables involucradas.

Lógica matemática

Página 177 de 183

Page 178: Guia Para Egetsu

La lógica matemática es la disciplina que trata de métodos de razonamiento. En un nivel elemental, la lógica proporciona reglas y técnicas para determinar si es o no valido un argumento dado. El razonamiento lógico se emplea en matemáticas para demostrar teoremas; en ciencias de la computación para verificar si son o no correctos los programas; en las ciencias física 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 lógico para realizar cualquier actividad.

Proposiciones y operaciones lógicas.

Una proposición o enunciado es una oración que puede ser falsa o verdadera pero no ambas a la vez. La proposición es un elemento fundamental de la lógica matemática.

A continuación se tienen algunos ejemplos de proposiciones válidas y no válidas, y se explica el porqué algunos enunciados no son proposiciones. Las proposiciones se indican por medio de una letra minúscula, dos puntos y la proposición propiamente dicha. Ejemplo.

p: La tierra es plana. q: -17 + 38 = 21 r: x > y-9 s: El Morelia será campeón en la presente temporada de Fut-Bol. t: Hola ¿cómo estás? w: 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 válidas. El inciso r también es una proposición valida, aunque el valor de falso o verdadero depende del valor asignado a las variables x y y en determinado momento. La proposición del inciso s también está perfectamente expresada aunque para decir si es falsa o verdadera se tendría que esperar a que terminara la temporada de futbol.

Conectivos lógicos y proposiciones compuestas.

Existen conectores u operadores lógicas que permiten formar proposiciones compuestas (formadas por varias proposiciones). Los operadores o conectores básicos 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 información

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

5.- Teorema 3:

(a) (X’)’ = X

Página 178 de 183

Page 179: Guia Para Egetsu

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)’ = X’Y’(b) (X.Y)’ = X’+Y’

10.- Teorema 6 (Absorción)(a) X+XY = X

(b)X(X+Y) = X

Los circuitos lógicos

Los circuitos de conmutación y temporización, o circuitos lógicos, forman la base de cualquier dispositivo en el que se tengan que seleccionar o combinar señales de manera controlada. Entre los campos de aplicación de estos tipos de circuitos pueden mencionarse la conmutación telefónica, las transmisiones por satélite y el funcionamiento de las computadoras digitales.

Compuertas lógicasSímbolo Lógico Descripción.

Ecuación Lógica Y = /A (se lee Y = not A)A es la variable de entrada y Y es la salida. Si A = 1 lógico entonces Y = 0 lógico, por otro lado si A = 0 lógico entonces Y = 1 lógico. Por este comportamiento esta compuerta también es llamada inversora.Ecuación Lógica Y = A + B (se lee Y = A OR B)Las variables de entrada son A y B la salida es Y. La ecuación lógica indica que A es igual a 1 lógico si A es igual a 1 lógico o B es igual a 1 lógico o tanto A como B son iguales a 1 lógico. Visto de otra forma Y es igual a cero lógico si y solo si tanto A como B son iguales a cero lógicoEcuación Lógica Y = A * B (se lee Y = A AND B)Las variables de entrada son A y B la salida es Y. La ecuación lógica indica que A es igual a 1 lógico si y solo si A es igual a 1 lógico y (and) B es igual a 1 lógico. Visto de otra forma si tanto A o B o ambas son iguales a cero lógico entonces Y es igual a cero lógico

Compuertas Lógicas Combinadas

Página 179 de 183

Page 180: Guia Para Egetsu

Ecuación Lógica Y = /(A + B) Esta compuerta surge de la conexión de una compuerta OR y una NOT en cascada Las variables de entrada son A y B la salida es Y. La ecuación lógica indica que Y es igual a 0 lógico si A es igual a 1 lógico o B es igual a 1 lógico o ambas tanto A como B son 1 lógico. Visto de otra forma Y es igual a 1 lógico si y solo si A es igual a 0 lógico y B es igual a 0 lógico. Note que esta compuerta es lo contrario a la OR.

Ecuación Lógica Y = /(A * B)Esta compuerta surge de la conexión de una compuerta AND y una NOT en cascada. Las variables de entrada son A y B la salida es Y. La ecuación lógica indica que A es igual a 0 lógico si A es igual a 1 lógico y B es igual a 1 lógico. Visto de otra forma si tanto A o B o ambas son iguales a cero lógico entonces Y es igual a uno lógico. Note que esta compuerta es lo contrario a la AND.

Ecuación Lógica 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 lógico si y solo si A es diferente de B, si A y B son ambas 0 lógico o ambas son 1 lógico entonces Y es 0 lógicoEcuación Lógica Y = /(A (+) BLas variables de entrada son A y B la salida es Y. La salida Y es uno lógico si y solo si A y B son ambas iguales ya sea que ambas sean 0 lógico o ambas sean 1 lógico. Si A y B son diferentes entre sí entonces Y es 0 lógico.

Página 180 de 183

Page 181: Guia Para Egetsu

Sistemas de información

Software de Diagnóstico

Notas Técnicas

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 mayoría de los casos, corromper o destruir parte o la totalidad de los datos almacenados en el disco. De todas formas, dentro del término "virus informático" se suelen englobar varios tipos de programas, por lo que a continuación se da un pequeño repaso a cada uno de ellos poniendo de manifiesto sus diferencias.

La clasificación es la siguiente:

• Virus 'Puro'• Caballo de Troya• Bomba Lógica• Gusano o Worm

Todos estos programas tienen en común la creación de efectos perniciosos; sin embargo, no todos pueden ser considerados como virus propiamente dichos.

Virus Puro

Un verdadero virus tiene como características más 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 autorréplica se le conoce como "infección", de ahí que en todo este tema se utilice la terminología propia de la medicina: "vacuna", "tiempo de incubación", etc. Como soporte entendemos el lugar donde el virus se oculta, ya sea fichero, sector de arranque, partición, etc.

Un virus puro también debe modificar el código original del programa o soporte objeto de la infección, para poder activarse durante la ejecución de dicho código; 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 legítimo, y que produce sus efectos perniciosos al ejecutarse este último. En este caso, no es capaz de infectar otros archivos o soportes, y sólo se ejecuta una vez, aunque es suficiente, en la mayoría de las ocasiones, para causar su efecto destructivo.

Bomba Lógica

Se trata simplemente de un programa maligno que permanece oculto en memoria y que solo se activa cuando se produce una acción concreta, predeterminada por su creador: cuando se llega a una fecha en concreto ( Viernes 13 ), cuando se ejecuta cierto programa o cierta combinación 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 realización de copias sucesivas de sí mismo, hasta desbordar la RAM, siendo ésta su única acción maligna.

Sistemas de información

Página 181 de 183

Page 182: Guia Para Egetsu

La barrera entre virus puros y el resto de programas malignos es muy difusa, prácticamente invisible, puesto que ya casi todos los virus incorporan características 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 también realizan su efecto destructivo cuando se da una condición concreta, la fecha Viernes 13, característica propia de una bomba lógica; por último, se oculta en programas ejecutables teniendo así una cualidad de Caballo de Troya. De ahí la gran confusión existente a este respecto.

Formas de Infección

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 ejecución pueda realizar una llamada al código 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, eliminación de la tabla de partición, eliminación de archivos, ralentización del sistema hasta límites exagerados, enlaces de archivos destruidos, archivos de datos y de programas corruptos, mensajes o efectos extraños en la pantalla, emisión de música o sonidos.

Formas de Ocultamiento

Un virus puede considerarse efectivo si, además de extenderse lo más ampliamente posible, es capaz de permanecer oculto al usuario el mayor tiempo posible; para ello se han desarrollado varias técnicas de ocultamiento o sigilo. Para que estas técnicas 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 técnicas de ocultamiento, además de la condición de programas residentes, la intercepción de interrupciones. El DOS y los programas de aplicación 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 acción, ya que puede sustituir alguna interrupción del DOS por una suya propia y así, cuando un programa solicite un servicio de esa interrupción, recibirá el resultado que el virus determine.

Entre las técnicas más usuales cabe destacar el ocultamiento o stealth, que esconde los posibles signos de infección del sistema. Los síntomas más claros del ataque de un virus los encontramos en el cambio de tamaño de los ficheros, de la fecha en que se crearon y de sus atributos, y en la disminución de la memoria disponible.

Prevención, Detección Y Eliminación

Una buena política de prevención y detección nos puede ahorrar sustos y desgracias. Las medidas de prevención 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 también una práctica ilegal y que hace mucho daño a la industria del software.

Software Antivirus

Para combatir la avalancha de virus informáticos se creó el software antivirus. Estos programas suelen incorporar mecanismos para prevenir, detectar y eliminar virus. Para la prevención 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 información

en el momento en que este intenta la infección, facilitándonos enormemente la localización del programa maligno. Sin embargo presentan ciertas desventajas, ya que al ser residentes consumen memoria RAM, y pueden también resultar incompatibles con algunas aplicaciones. Por otro lado, pueden

Página 182 de 183

Page 183: Guia Para Egetsu

llegar a resultar bastante molestos, puesto que por lo general suelen interrumpir nuestro trabajo habitual con el ordenador avisándonos de intentos de acceso a memoria o a disco que en muchos casos provienen de programas legítimos. A pesar de todo, son una medida de protección excelente y a ningún usuario debería 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 muchísimos casos son mutaciones y familias de otros virus; esto está bien, pero hay que tener en cuenta que una inmensa mayoría de virus no han llegado ni llegaran a nuestro país.

Por lo que de poco nos sirve un antivirus que detecte y elimine virus muy extendidos en América y que desconozca los más difundidos en España. Por tanto, estaremos mejor protegidos por un software que, de alguna forma, esté más "especializado" en virus que puedan detectarse en nuestro país. Por ejemplo "Flip", "Anti Tel", "Barrotes", "Coruña", etc. Por otro lado, hemos de buscar un software que se actualice el mayor número posible de veces al año; puesto que aparecen nuevos virus y mutaciones de otros ya conocidos con mucha frecuencia, el estar al día es absolutamente vital.Cómo Reaccionar Ante Una Infección

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 más antivirus es muy recomendable pasarlos todos para tener mayor seguridad a la hora de inmunizar el PC. Si la infección 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».

Página 183 de 183