Subido por Leonel Dominguez

Temario-Unificado

Anuncio
AREA DE BASES DE DATOS
TEORIA DE BASE DE DATOS Y MANEJO DE INFORMACION
BASE DE DATOS EN EL CONTEXTO DE LA INGENIERÍA DE SOFTWARE.
La base de datos se relaciona a la ingeniería del software debido a que para la realización del mismo, es necesario
contar con herramienta y métodos que nos permiten obtener una base bien ordena.
La correcta ordenación de los datos y su forma de relacionarlos, a la vez la utilización de métodos y herramientas
para lograr obtener soluciones a los problemas en el almacenamiento de datos.
La base de datos es una estructura que en base a herramientas y métodos que nos ayudan en la realización de su
diseño permite el almacenamiento de datos de una forma sistemática, el cual tiene como beneficiario a los
usuarios finales.
CONCEPTOS DE BASE DE DATOS.
Datos: datos sin procesar.
Información: datos procesados que revelan un significado.
Metadatos: datos acerca de los datos.
Índice: funcionamientos similares a la de los libros, los cuales por medio de un identificador único nos muestran
los registros de una tabla en una base de datos.
Base de datos: Es una estructura computarizada compartida e integrada que guarda un conjunto de:
•
•
Datos del usuario final.
Metadatos
Una base de datos es un conjunto de datos pertenecientes a un mismo contexto y almacenados
sistemáticamente para su posterior uso.
VENTAJAS DE UNA AMBIENTE DE BASE DE DATOS.
•
•
•
•
•
•
•
•
Integridad de datos: consistencia de datos y los datos se adecuan las condiciones de entradas de los datos.
Obtención de datos de forma rápida. Debido a que todo está en un computador la obtención se agiliza.
Compartir datos. Dependiendo del tipo de base de datos es más fácil realizar esta acción.
Consistencia de datos. Menor redundancia y los datos son el mismo en cualquiera de las áreas donde se
utilicen.
Obtención de información. Facilidad de consulta de datos.
Independencia de datos. Que nos afecta el cambio de formato con las programas de aplicación.
Seguridad. Una base de datos maneja políticas de seguridad con lo cual ayuda a que no cualquier usuario
pueda visualizar los datos.
Mejor toma de decisiones.
(Base de Datos, 2015) (Coronel, Morris, & Rob, 2011)
ARQUITECTURA DE UN DBMS
•
•
•
•
Usuarios.
Usuarios normales, programadores de aplicaciones, usuarios sofisticados y administradores de la base de
datos
Programas de aplicación/consulta
Herramientas que ayudan a interactuar al usuario con la base de datos.
Software para procesar consultas/ programa
a) Interprete del LDD: interpreta las instrucciones del LDD y registra las definiciones en el diccionario de
datos.
b) Compilador de LMD: traduce las instrucciones de LMD en un lenguaje de consultas a un plan de
evaluación que consiste en instrucciones de bajo nivel que entiende el motor de evaluación.
También cumple con la función de optimización de consultas.
c) Motor de evaluación de consultas. Ejecuta las instrucciones de bajo nivel generadas por el compilador
de LMD.
Software para tener acceso a datos
Su función es la de traducir las diferentes instrucciones LMD a órdenes de un sistema de archivos de bajo
nivel.
Sus componentes son:
•
a) Gestor de autorización e integridad: comprueba que se tenga la debida autorización al acceso a los
datos por parte de los usuarios y que se sigan las normas de integridad.
b) Gestor de transacciones. Asegura que la base de datos este en forma consistente y que las tracciones
ocurran sin conflicto.
c) Gestor de archivos. Gestiona la reserva de espacio de almacenamiento de disco y las estructuras de
datos usadas para representar la información almacenada en disco.
d) Gestor de memoria. intermedia. Es responsable de traer los datos al disco de almacenamiento a
memoria principal y decidir qué datos tratar en la memoria cache.
Almacenamiento.
Lugar donde se almacenan los datos físicamente, aunque también contiene estructuras que ayudan a
poder obtener la información de una manera más rápida.
a) Archivo de datos: almacena la base datos en sí.
b) Diccionario de datos: almacena metadatos acerca de la estructura de la base de datos, en particular,
el esquema de la base de datos.
c) Índices. Que proporciona acceso rápido a elementos de datos que tienen valores particulares.
(Coronel, Morris, & Rob, 2011) (Silberschatz, 2004)
http://www.unalmed.edu.co/~mstabare/Dbms.htm
LENGUAJE DE DEFINICION DE DATOS.
Forma parte de SQL (Structured Query Languaje), su función es la de especificar el esquema de la base de datos.
Las sentencias son:
•
•
•
Create: utilizado para crear nuevas tablas, campos e índices.
Drop: empleado para eliminar tablas e índices.
Alter: utilizado para modificar las tablas agregando campos o cambiando la definición de los campos.
Estas sentencias se pueden aplicar a tablas, vistas, procedimientos almacenados y Triggers de la base de datos.
COMANDO U OPCION
CREATE SCHEMA AUTHORIZATION
CREATE TABLE
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
DEFAULT
DESCRIPCION
Crea un esquema de base de datos.
Crea una nueva tabla en el esquema de base de datos de usuario.
Asegura que una columna no tendrá valores nulos.
Asegura que una columna no tendrá valores duplicados.
Define una llave primaria para una tabla
Define una llave foránea para una tabla
(Silberschatz, 2004) (Wikipedia, 2015)
LENGUAJE DE MANEJO DE DATOS.
Es un lenguaje que permite a los usuarios acceder o manipular los datos organizados mediante el modelo de
datos apropiado. Hay dos tipos.
•
Procedimentales. Requieren que el usuario especifique que datos se necesitan y como obtener esos
datos.
•
Declarativos. La misma funcionalidad que la anterior a diferencia que no indicar como obtener los datos.
Sentencias.
•
•
•
Insert. Inserta registros.
Update. Actualiza registros.
Delete. Elimina registros.
(Silberschatz, 2004)Presentación de SQL,
FUNCIONES DEL GESTOR DE BASE DE DATOS.
El gestor de la base de datos es un conjunto de programas que hacen cumplir las funciones de un DBMS.
Es un conjunto de programas que permiten el almacenamiento, modificación y extracción de la información en una base
de datos, además de proporcionar herramientas para añadir, borrar, modificar y analizar los datos. Los usuarios pueden
acceder a la información usando herramientas específicas de interrogación y de generación de informes, o bien
mediante aplicaciones al efecto.
Además de servir como interfaz entre la base de datos, las aplicaciones y el usuario.
Sus funciones son la definición, manipulación y consulta de datos.
USUARIOS DE UN AMBIENTE DE BASE DE DATOS.
Existen 5 tipos de usuarios que interactúan con una base de datos.
•
•
•
•
•
Usuario normal o final: son las personas que utilizan la aplicación para ejecutar las operaciones diarias de una
organización. Ejemplo, un vendedor, supervisores, etc.
Analistas y programadores del sistema o programadores de aplicaciones. Escriben programas de aplicación
para la introducción de datos, informes y procedimientos por medio de los cuales los usuarios finales
manipulan la base de datos.
Diseñador de base de datos. Proyectan la estructura de una base de datos
Administrador de la base de datos. Manejan el DBMS y aseguran que la base de datos se encuentre
funcionando en forma correcta.
Administrador del sistema. Supervisan las operaciones generales del sistema de base de datos.
TIPOS DE BASES DE DATOS Y SUS FORMAS DE MODELADO.
MODELO JERÁRQUICO.
Creado en el año 1960, su nombre se debe a que su estructura se representa por medio de un árbol invertido. Además
de permitir relaciones uno a muchos, con la deficiencia de que no permite la relación muchos a muchos.
Otro inconveniente que presentas es que trabaja a nivel físico y por lo tanto para poder relacionar es necesario saber
trabajar a nivel físico.
MODELO DE RED.
Fue creado para representar relaciones de datos en forma más efectiva que el modelo jerárquico, además de permitir
las relaciones muchos a muchos.
Las ventajas que promovió este modelo se presenta más a definiciones, que a su utilización, ya que en este modelo se
utilizó por primera vez el término, esquema (describe la estructura de la base de datos que se diseña: nombres y tipos
de los campos en cada tipo de registro y las relaciones generales entres ellos), subesquema (vista de la información
creada a partir de la datos almacenados), lenguaje de definición de datos y manipulación de datos.
MODELO ORIENTADO A OBJETOS.
Este modelo se apega más al mundo real además de ser más semántico, es decir que su contenido se relaciona más a
un significado de lo que lleva. Se le llama orientada a objetos debido a que utiliza objetos. Los métodos de una clase se
podrían decir que son los procedimientos en el modelo relacional, las propiedades de una clase son los atributos,
además de poseer las características de un objeto como herencia, encapsulamiento, jerarquía de clases, etc. Cabe
mencionar que todas las relaciones y procedimientos están en la misma clase.
Para la representación de este modelo se utiliza UML, específicamente el diagrama de clases, debido a la utilización de
la herencia se promueve más la integridad de datos.
MODELO CONCEPTUAL DE DATOS.
Es parte de la abstracción de datos, también llamado modelo lógico, que representa una vista global de toda la base de
datos como lo ve la organización. Para representarlo gráficamente se utiliza el modelo entidad relación. El modelo
conceptual contiene las entidades, relaciones, restricciones y procesos que llevara la base de datos en una sola vista.
Cabe mencionar que para llegar al modelo conceptual es necesario realizar el modelo externo de abstracción de datos.
MODELO ENTIDAD – RELACION.
Utilizado para la modelación de datos. Además de ser una herramienta en el modelo relacional, permite poder observar
las entidades, atributos, relaciones y restricciones que interactúan en sistema de base de datos. Es uno de los varios
modelos semánticos.
Las entidades, son cualquier cosa (persona, lugar, coas, o hecho) del cual se recolecta y guardar datos. Además de que
se pueden llamar conjunto de entidades.
Atributos es una característica de una entidad.
Además estas presentas ciertas características:
•
Atributo requerido, no permite que se quede vacío o nulo
•
•
•
•
•
•
•
•
•
Atributo opcional, puede dejarse vacío
Dominios: los atributos tiene dominio, un ejemplo de dominio seria la casilla genero de una tabla de empleados
donde su dominio se centra en si es M (masculino) o F (Femenino).
Identificadores: son atributos que identifican de manera única a cada instancia de entidad, en el modelo
relacional están relacionados a las llaves primarias.
Identificador Compuesto. Es decir una llave compuesta por más de un atributo.
Atributos compuestos. Son aquellos que pueden subdividirse como por ejemplo la dirección, ya que esta consta
de una zona, avenida, etc.
Atributos simples. Son aquellos que no puede subdividirse por ejemplo el sexo, estado civil, edad.
Atributos de un solo valor: son aquellos que solo captan un valor simple, por ejemplo el número de seguro
social.
Atributos de varios valores: son aquellos que permiten muchos valores, por ejemplo una persona puede tener
varios títulos universitarios.
Atributos derivados, son aquellos que cuyo valor se calcula por medio de otros atributos. Por ejemplo el sueldo
de un empleado, en base a los que vendió y lo que le pagan por cada producto vendido.
Relación: describe la asociación entre entidades. Esta puede ser, uno a uno, uno a muchos, o muchos a muchos
Restricción: se aplica a los datos, por ejemplo, el salario de un empleado es de 300 a 600
Conectividad y Cardinalidad.
La conectividad se usa para clasificar el grado de relación. Y la cardinalidad nos muestra la cantidad mínima y máxima
de casos de entidad asociados en un caso de la entidad relacional.
Dependencia de existencia.
Es decir que una entidad solo puede existir si existe otra, u otra forma que la entidad tenga una llave foránea.
Entidad fuerte.
Es aquella entidad que es independiente de existencia, es decir que no necesita de alguien para poder existir.
Fuerza de relación.
Está relacionada en cómo se define la llave primaria en una entidad relacionada.
•
•
Relaciones débiles. Se le llama así porque la llave primaria de una entidad aparece solo como llave foránea en
otra entidad.
Relaciones fuertes. Se le llama así porque la llave primaria de una entidad aparece como llave primaria y
foránea en otra entidad.
Entidades débiles
Son aquellas que dependen existencialmente.
Participación de relación.
•
•
Opcional: una entidad no requiere de una entidad en una relación
Obligatoria. Una entidad requiere de una entidad en una relación.
Es dependerá de la semántica con que se maneje.
Grado de Relación.
•
•
•
Unarias. Es decir que la entidad se relaciona a así mismo, un ejemplo seria que en la tabla empleados está el
gerente, que a su vez es un empleado, pero para generar otro empleado se necesita de un superior y ese
superior es otro empleado con distinto nivel.
Binarias. Es cuando dos entidades están relacionadas.
Ternarias y orden superior. Una relación ternaria es una relación entre tres entidades
Entidades asociativas (compuestas)
Son aquellas que se generan en una relación muchos a muchos, es decir es una entidad que relación dos entidades.
MODELO ENTIDAD RELACION EXTENDIDO.
Debido a que la complejidad de las estructuras de datos que se modelan ha aumentado, existe la necesidad de capturar
más información en los modelos de datos.
Supertipos y subtipos de entidad.
•
•
Supertipos: poseen características comunes, son entidades generalizadas, por ejemplo una entidad empleado.
Subtipos. Son entidades más específicas poseen características específicas. Dependen de una supertipos por
ejemplo, mecánico, depende de la entidad empleado.
Jerarquía de especialización.
Describe la organización de supertipos y subtipos.
Herencia
La herencia hace posible que un subtipo herede los atributos y relaciones de un supertipo.
Discriminador de subtipo.
Es una atributo que determina a que supertipo está relacionado el subtipo.
Restricciones disjuntas y traslapadas.
Los subtipos disjuntos con aquellos que solo se pueden relacionar un solo vez con el supertipo ejemplo, un empleado
puede ser solo mecánico o piloto.
Los subtipos traslapados lo contrario a disjunto es decir un empleado puede ser piloto y mecánico a la vez.
Restricciones de plenitud.
•
•
Parcial, el supertipo no es miembro de algún subtipo.
Total, el supertipo es miembro de al menos un subtipo.
Especialización y Generalización.
Ambos métodos nos ayudan en la identificación de supertipos y subtipos
•
•
Especialización. Identifica supertipos y subtipos en base a la identificación de características específicas de los
subtipos para luego crear el supertipo. (De lo particular a lo General).
Generalización. Identifica supertipos y subtipos en base a las características comunes para un supertipos y
luego busca el subtipo. (De lo General a lo particular).
Grupo de entidad.
Es un tipo de entidad virtual empleado para representar varias entidades y relaciones en el ERD.
Llaves naturales y llaves primarias.
Un identificador natural es aquel que identifica de manera única a objetos reales, al cumplir con esto, es candidato a
ser la llave primaria.
Guía para seleccionar una llave primaria.
•
•
•
•
•
•
Valores únicos: capaz de identificar de manera única cada instancia de entidad.
No inteligentes: solo se utiliza para identificar.
Sin cambio en el tiempo: es por esto que no se puede dejar como llave primaria el nombre de alguien ya que
este cambie cuando se case.
De un solo atributo, ya que con esto es más fácil que la base de datos trabaje.
Numérica, las llaves primarias deben ser siempre numéricas ya que en base a ello es más fácil la búsqueda.
Queja de seguridad. La llave primaria no debe estar compuesta por atributos que den un riesgo, por ejemplo
el número de seguro social.
Uso de la llaves compuestas
•
•
Identificadores de entidades compuestas.
Identificadores de entidades débiles.
ESTRATEGIAS DE MODELADO.
Para el modela de datos es necesario contar con cierta información que nos ayudara a seleccionar el modelo a utilizar
y a su vez en que forma las entidades estarán relacionadas.
Los primero que se debe realizar es la abstracción de datos y para ello es necesario utilizar el modelo externo,
conceptual e interno, luego de ellos utilizamos el modelo entidad relación y para mostrar nuestros resultados el
diagrama entidad relación.
DESARROLLO DE BASES DE DATOS Y SUS ASPECTOS PRINCIPALES
MODELO RELACIONAL.
Introducido en el año de 1970 por E.F. Codd, el modelo relacional es un concepto conocido como relación. La relación
puede ser considerada como una matriz de filas y columnas, a cada fila se le llama tupla y a cada columna atributo.
Permite el uso de SQL por lo cual lo vuelve más fácil de utilizar, a su vez nos permite observar una vista lógica de como
las entidades están relacionados olvidándose de la parte en cómo se guardan los datos.
El modelo relacional está basado en la lógica de predicados y la teoría de conjuntos, este último permite que se realicen
las relaciones. El modelo relacional tiene tres conceptos bien definidos.
•
•
•
Una estructura lógica de datos representados por sus relaciones.
Un conjunto de reglas de integridad
Un conjunto de operaciones que define como se manipulan los datos.
El modelo relacional se representa por tablas, además utiliza llaves para identificar de manera única a cada instancia
de entidad y también se utiliza para relacionar las entidades, las llaves se clasifican en:
•
•
•
•
•
•
Súper llave: es un atributo o combinación que identifica de manera única a una instancia de entidad.
llave candidata. Se puede llamar una súper llave sin atributos innecesarios.
llave primaria. Es la llave candidata seleccionada.
llave Secundaria. Se utiliza para recuperación de datos.
llave Compuesta. Utiliza varios atributos para formar esta llave.
llave foránea. Es un atributo en una tabla pero es llave primaria en otra.
La integridad se dividen en:
•
•
integridad de entidad. Para garantizar esto no se permite datos nulos en una llave
Integridad referencial. Garantiza que para esa relación la llave foránea indique la existencia de datos. Si en caso
no existiera algo que garantice la relación se utilizan banderas.
Para la manipulación de datos se utiliza el álgebra relacional, esta define ochos operadores relaciones los cuales son:
•
•
•
•
•
•
•
•
SELECT, da un subconjunto horizontal de una tabla.
PROJECT, de un subconjunto vertical de una tabla.
JOIN, permite que se reúna información de una o más tablas.
INTERSECT, muestra los renglones que son comunes en ambas tablas.
UNION, combina todos los renglones de dos tablas, excluyendo las que se duplican.
DIFFERENCE, da todos los renglones de una tabla que nos están en la otra.
PRODUCTO, da todos los posibles pares de renglones de dos tablas.
DIVIDE.
Diccionario de datos: es una descripción detallada de todas las tablas que se encuentran en la base de datos es decir
contiene toda la información acerca de atributos y las características de cada tabla.
Catálogo del sistema. Es como un diccionario de datos del sistema, que contiene información acerca de los objetos
dentro del sistema, tipos de datos de cada columna, nombre de la tabla, quien creo la tabla y la fecha en que lo creo,
que usuario y que privilegios de acceso tienen.
La relaciones que maneja el modelo relacional. Son uno a muchos, uno a uno, muchos a muchos, en el caso de uno a
uno lo que pretende es que solo exista esta instancia de entidad en la otra instancia de entidad. Para la relación muchos
a muchos, el modelo relacional no se puede hacer uso de ella, debido a que presentaría mucha redundancia y además
de que es casi complicado por aplicar los operadores relacionales. Para ello se utiliza una entidad compuesta la cual
consta de las llaves primarias de cada tabla, además de utilizar la relación uno a muchos. El diseñador dejara a su criterio
si utiliza las llaves foráneas como llave compuesta o crea una llave primaria para esa entidad.
NORMALIZACION DE DATOS
La normalización es el proceso mediante el cual se transforman datos complejos a un conjunto de estructuras
de datos más pequeñas, que además de ser más simples y más estables, son más fáciles de mantener. También
se puede entender la normalización como una serie de reglas que sirven para ayudar a los diseñadores de bases
de datos a desarrollar un esquema que minimice los problemas de lógica. Cada regla está basada en la que le
antecede. La normalización se adoptó porque el viejo estilo de poner todos los datos en un solo lugar, como un
archivo o una tabla de la base de datos, era ineficiente y conducía a errores de lógica cuando se trataban de
manipular los datos.
La normalización también hace las cosas fáciles de entender. Los seres humanos tenemos la tendencia de
simplificar las cosas al máximo. Lo hacemos con casi todo, desde los animales hasta con los automóviles. Vemos
una imagen de gran tamaño y la hacemos más simple agrupando cosas similares juntas. Las guías que la
normalización provee crean el marco de referencia para simplificar una estructura de datos compleja.
Otra ventaja de la normalización de base de datos es el consumo de espacio. Una base de datos normalizada
ocupa menos espacio en disco que una no normalizada. Hay menos repetición de datos, lo que tiene como
consecuencia un mucho menor uso de espacio en disco. El proceso de normalización tiene un nombre y una
serie de reglas para cada fase. Esto puede parecer un poco confuso al principio, pero poco a poco se va
entendiendo el proceso, así como las razones para hacerlo de esta manera.
Grados de normalización
Existen básicamente tres niveles de normalización: Primera Forma Normal (1NF), Segunda Forma Normal (2NF) y
Tercera Forma Normal (3NF). Cada una de estas formas tiene sus propias reglas. Cuando una base de datos se
conforma a un nivel, se considera normalizada a esa forma de normalización. No siempre es una buena idea
tener una base de datos conformada en el nivel más alto de normalización, puede llevar a un nivel de
complejidad que pudiera ser evitado si estuviera en un nivel más bajo de normalización.
En la tabla siguiente se describe brevemente en qué consiste cada una de las reglas, y posteriormente se
explican con más detalle.
SISTEMAS GESTORES DE BASES DE DATOS EN EL MERCADO ACTUAL.
•
•
•
SGBD libres
a) MySQL
b) FireBird.
c) SQLite.
SGBD no libres
a) Microsoft SQL Server
b) PervarsiveSQL
c) Oracle
SGBD no libre y gratuitos.
a) Microsoft SQL server edición básica.
b) Sybase ASE (Linux).
c) Oracle Express Edition 10
Los más usados:
• Oracle
a) Licencia Privativa
b) Multiplataforma.
c) Para bases de datos relacionales.
d) Utilizado mundialmente
e) Puede ejecutarse en diversas multiplataforma.
f) Permite el uso de particiones para la mejora de la eficiencia.
g) Es más orientado a internet.
h) Las licencias son muy caras.
• D2 de IBM
• SQL Server
a) Licencia privativa, aunque gratuito.
b) MS Windows.
c) Basado en transact-SQL.
d) Multiusuario.
e) Posee un entorno gráfico.
f) Uso de comandos DML y DDL.
g) Mejor utilización de los recursos de la PC.
h) Utiliza una mayor cantidad de RAM.
i) Bloque a nivel de página.
•
MySQL
a) Es Multiplataforma.
b) Código Abierto.
c) Mantenimiento de Pago.
d)
e)
f)
g)
•
Base de datos relacional.
Vistas actualizables.
Procedimientos almacenados.
Los disparadores son básicos.
PostgreSQL.
a) Multiplataforma.
b) Código Abierto.
c) Orientado a objetos.
d) Alta concurrencia.
e) Herencia de tablas.
f) Integridad transaccional.
g) Consume más recursos que MySQL por lo que necesita mayores características de hardware.
h) Es más lento que MySQL
INSTRUCCIONES DE LENGUAJE ESTRUCTURADO DE CONSULTA.
Es un lenguaje declarativo de acceso a bases de datos relacionales que permite especificar diversos tipos de operaciones
sobre las mismas. Se caracteriza por el uso del algebra y calculo relacional.
Comandos SQL para Definición de datos
Comando o Opcion
CREATE SCHEMA
AUTHORIZATION
CREATE TABLE
NOT NULL
UNIQUE
PRIMARY KEY
FOREIGN KEY
DEFAULT
CHECK
CREATE INDEX
CREATE VIEW
ALTER TABLE
CREATE TABLE AS
DROP TABLE
DROP INDEX
DROP VIEW
Descripción
Crea un esquema de base de datos.
Crea una nueva tabla en el esquema de base de datos del usuario
Asegura que una columna no tendrá valores nulos
Asegura que una columna no tendrá valores duplicados
Define una llave primaria para una tabla
Define una llave foránea para una tabla
Define una valor predeterminado para una columna
Valida datos de un atributo
Crea un índice para una tabla
Crea un subconjunto dinámico de filas/columnas desde una o más tablas
Modifica una definición de tablas (agrega, modifica o elimina atributos o restricciones)
Crea una nueva tabla basada en una consulta en el esquema de base de datos del usuario
Permanentemente elimina tabla (y sus datos)
Permanentemente Elimina un índice
Permanentemente elimina una vista.
CREATE SCHEMA
Sintaxis:
CREATE SCHEMA AUTHORIZATION [creador]
Ejemplo:
CREATE SCHEMA AUTHORIZATION HORARIO.
CREATE TABLE
Sintaxis:
CREATE TABLE nombre_de_tabla (
Columna1
tipo de datos
[restricciones][,
Columna2
tipo de datos
[restricciones]][,
PRIMARY KEY (Columna1
[, Columna2])][,
FOREIGN KEY (Columna1
[, Columna2]) REFERENCES nombre_de_tabla [,
CONSTRAINT restricciones]);
Ejemplo.
CREATE TABLE VENDEDOR {
Idvendedor int not null unique,
Nombre_vendedor nvarchar (50) not null,
Apellido_vendedor nvarchar (50) not null,
Primary key (Idvendedor)
}
CREATE TABLE PRODUCTO {
Idproducto int not null unique,
Descripción_producto nvarchar (100) not null
Primary key (Idproducto),
Foreing key (Idvendedor) references VENDEDOR ON UPDATE CASCADE.
}
Tipo de datos
•
•
•
•
•
•
Int: números naturales (enteros).
Smallint: números enteros pero de valores limitados (6 dígitos).
Decimal(l,d):
Char: datos de longitud fija.
Varchar: datos de longitud variable.
Date: fechas,
Restricciones
•
•
•
•
•
•
PRIMARY KEY
FOREING KEY
NOT NULL
UNIQUE
DEFAULT
CHECK
CREATE INDEX
Sintaxis
CREATE [Unique] INDEX nombre_del_indice ON nombre_de_tabla (Columna1)
Ejemplo.
CREATE INDEX índice_vendedor ON VENDEDOR (Idvendedor).
DROP INDEX
Sintaxis
DROP INDEX nombre_del_indice
Ejemplo
DROP INDEX índice_vendedor.
MANIPULACION
INSERT
SELECT
WHERE
GROUP BY
HAVING
ORDER BY
UPDATE
Inserta renglón(es) en una tabla
Selecciona atributos de renglones en una o más tablas o vistas
Restringe la selección de renglones con base en una expresión condicional
Agrupa los renglones seleccionados con base en uno o más atributos
Restringe la selección de renglones agrupados con base en una condición
Ordena los renglones seleccionados con base en uno o más atributos
Modifica los valores de un atributo en uno o más renglones de tabla
INSERT
Sintaxis.
INSERT INTO nombre_tabla VALUES (valor1, valor2, valor3,…, valorn)
INSERT INTO nombre_tabla (atributo1, atributo2) VALUES (valor1, valor2, valor3)
Ejemplo
INSERT INTO VENDEDOR VALUES (1,’juan’,’perez’);
Para guardar cambios en la tabla, estos no se guardan hasta que se cierra el programa por lo tanto es necesario
utilizar el comando COMMIT, este comando guarda permanentemente en la tabla.
Sintaxis.
COMMIT;
SELECT
Sintaxis:
SELECT Campos FROM Tabla
Ejemplo:
SELECT Nombre, Teléfono FROM Clientes;
Ordenar los registros.
Variaciones en la sentencia de consulta. La siguiente consulta ordena los datos de acuerdo al campo nombre.
Sentencia:
SELECT CodigoPostal, Nombre, Telefono FROM Clientes Order By Nombre
Se puede ordenar los registros por más de un campo.
Ejemplo:
SELECT CodigoPostal, Nombre, Telefono FROM Clientes Order By CodigoPostal, Nombre;
Se puede cambiar la forma del ordenamiento agregando DESC o ASC.
SELECT CodigoPostal, Nombre, Telefono FROM Clientes ORDER BY CodigoPostal DESC,
Nombre DESC;
CONSULTAS CON PREDICADO.
Predicado
ALL
TOP
DISTINCT
DISTINCTROW
Descripción
Devuelve todos los campos de la tabla.
Devuelve los primeros N de registros del conjunto resultante.
Omite los registros cuyos campos seleccionados coincidan totalmente.
Omite los registros duplicados basándose en la totalidad del registro y no
solo en los campos seleccionados.
Sintaxis
ALL: si no se incluye algún predicado se asume ALL
SELECT * FROM Empleados.
TOP: devuelve un cierto número de registros que entran al principio o al final
de un rango especificado por la cláusula ORDER BY.
SELECT TOP 25 Nombre, Apellido FROM Estudiantes ORDER BY Nota DESC
También nos permite la selección de un porcentaje
SELECT TOP 10 PERCENT Nombre, Apellido FROM Estudiantes ORDER BY Nota DESC.
DISTINCT: Devuelve aquellos registros cuyos campos indicados en la cláusula
SELECT posean un contenido diferente.
SELECT DISTINCT Apellido FROM Empleados.
ALIAS.
Sentencia AS: sirve para colocarle otro nombre a alguna columna.
Ejemplo:
SELECT DISTINCROW Apellido AS Empleado FROM Empleado
También es posible para las tablas
SELECT E.Nombre, E.Apellido, C.Salario AS Sueldo FROM Empleado as E, Contrato as C
WHERE E.Codigo_Empleado = C.Codigo_Empleado
WHERE.
SENTENCIA WHERE: nos permite limitar los resultados de la sentencia SELECT.
De lo contrario siempre nos devolvería todas las filas.
Ejemplo:
SELECT Apellidos, Salario FROM Empleados
WHERE Salario > 21000
SELECT Apellidos, Salario FROM Empleados
WHERE Salario BETWEEN 200 and 300;
Funciones agregadas
COUNT: sirve para totalizar el número de valores no nulos en la tabla.
Ejemplo.
SELECT COUNT (*) FROM Vendedor.
MAX y MIN: nos ayudan a identificar cual es el mayor y menor de algún registro
de una tabla.
Ejemplo.
SELECT código FROM Producto
WHERE precio = MAX (precio);
SUM: calcula la suma para cualquier atributo especificado.
Ejemplo
SELECT SUM (totales_parciales) FROM Ventas
AVG: calcula el promedio
Ejemplo:
SELECT AVG (totales_parciales) FROM Producto;
UPDATE
Comando utilizado para modificar datos de una tabla.
Sintaxis
UPDATE nombre_tabla
SET nombre_columna = expresión, nombre_columna2=expresion2
WHERE lista de condiciones.
Ejemplo.
UPDATE VENDEDOR
SET Nombre_vendedor = ‘pedro’
WHERE Idvendedor = 1;
Para dejar la base de datos como estaba anteriormente luego de alguna modificación se puede utilizar el comando
ROLLBACK, este comando deshace cualquier modificación desde el último comando COMMIT
Sintaxis.
ROLLBACK;
DELETE
Utilizado para la eliminación de renglones de tabla.
Sintaxis.
DELETE FROM nombre_tabla
WHERE [lista_de_condiciones]
Ejemplo.
DELETE FROM VENDEDOR
WHERE Idvendedor = 1;
ALTER TABLE
Utilizado para la manipulación de las tablas
Adición de una columna
ALTER TABLE nombre_tabla ADD (nombre_columna tipo_dato).
Modificación de una columna.
ALTER TABLE nombre_tabla MODIFY (nombre_columna tipo_dato);
Eliminar una columna.
ALTER TABLE nombre_tabla DROP nombre_columna.
FUNCIONES
Es un grupo de enunciados procedimentales y de SQL, con nombre, que entrega a un valor
Sintaxis:
CREATE FUNCTION nombre_funcion (variable tipo_de_dato) RETURNS tipo_de_dato
BEGIN
Instrucciones:
RETURN VALOR
END;
Ejemplo
CREATE FUNCTION nuevo (archivo Datatime)
RETURNS int
AS
BEGIN
Declare @resultado int
Insert into fecha_actual (archivo);
Set @resultado=1;
RETURN @resultado;
END;
SELECT dbo.nuevo (10/10/10);
PROCEDIMIENTOS ALMACENADOS
Es un grupo de enunciados procedimentales, con nombre, se pueden usar para encapsular y representar
transacciones de negocio, además se almacenan físicamente en una base de datos. Su uso es rápido debido a que
se ejecuta en el motor de la base de datos.
Sintaxis:
CREATE PROCEDURE nombre_procedimiento (argumento IN/OUT tipo_dato) AS
BEGIN
Instrucciones PL/SQL o SQL:
END
CREATE PROCEDURE INSERTAR_VENDEDOR (Nombre_Vendedor in nvarchar (20))
AS
BEGIN
Declare existe int default 0;
Declare estado nvarchar (20);
Set existe = (SELECT COUNT (*) FROM VENDEDOR WHERE nombre = Nombre_Vendedor)
If existe > 0 then
Set estado = ‘ya existe el vendedor’;
Else
Insert Into VENDEDOR (nombre) VALUES (Nombre_Vendedor);
Set estado = ‘ingreso exitoso’;
Endif;
END;
DISPARADORES
Se activa al momento que se realice alguna actividad la cual poder ser una inserción, actualización. O eliminación.
Sintaxis.
CREATE OR REPLEACE TRIGGER nombre_disparador [BEFORE/AFTER]
[DELETE/INSERT/UPDATE] OF nombre_de_columna ON nombre_tabla
[FOR EACH NOW]
[DECLARE]
[nombre_variable_tipo_de_dato [:=valor_inicial]]
BEGIN
Instrucciones
END;
CREATE TRIGGER nombre_disparador
On NOMBRETABLA
FOR EVENTO- insert, update o delete
As
SENTENCIAS
Ejemplo
CREATE TRIGGER dis_empleados_insertar ON empleados
FOR INSERT
AS
Declare @maximo decimal(8,2)
Set @maximo=(SELECT sueldomaximo FROM secciones
join inserted
ON inserted.codigoseccion=secciones.codigo)
If (@maximo< (SELECT sueldo FROM inserted))
BEGIN
Declare @mensaje varchar (40)
Set @mensaje='El sueldo debe ser menor a '+cast (@maximo as Char (8))
raiserror(@mensaje, 16, 1)
ROLLBACK transaction
END;
SISTEMA BASES DE DATOS EN DIFERENTES PLATAFORMAS
BANCO DE DATOS
Conjunto de datos, de informaciones que son agrupadas y mantenidas en un mismo soporte a modo de facilitar
su acceso. Cuando hablamos de un banco de datos estamos señalando que esta información está clasificada y
ordenada de acuerdo a diferentes parámetros ya que la misma puede ser solicitada muy a menudo con diversos
fines. Los bancos de datos pueden ser estáticas (solo de lectura) o dinámicas (permiten edición).
(Wikipedia, 2015)
EXPLORACION DE DATOS, MINERIA DE DATOS.
Es un mecanismo de explotación que permite explorar grandes base de datos, de manera automática o
semiautomática con el objetivo de encontrar patrones repetitivos, tendencia o reglas, que expliquen el
comportamiento de los datos en un determinado contexto. Además de que la minería es la principal herramienta
de ayuda en la toma de decisiones tácticas y estratégicas.
La minería de datos se basa en tres conceptos:
• Estadística clásica.
• Inteligencia artificial.
• Aprendizaje automático.
La minería de datos se divide en:
• Minería de datos predictiva: usado para la estadística.
• Minería de datos para descubrimiento de conocimiento: para la inteligencia artificial.
Características de la minería.
• Las herramientas de la minería de datos se combinan fácilmente y pueden analizarse y procesarse
rápidamente.
• Uso de procesos paralelos.
• Hurgar y sacudir implica el descubrimiento de resultados valiosos.
• La arquitectura que posee la minería es la de cliente servidor.
• Busca los datos en los almacenes de datos.
Los usuarios que participan en la minería de datos son:
• Analistas empresariales.
Produce, consultas y reportes
• Peritos en estadística
• Profesionales en tecnología de la información.
Proceso de la minería de datos.
• Selección de objetivos: de acuerdo a lo que el cliente desee.
• Preparación de datos: se refiere a la preparación de la base de datos.
• Construcción del modelo: de acuerdo a los objetivos.
• Análisis de resultados. Se determina si los resultados son novedosos y si ayudan en la toma de decisiones.
Extensiones en la minería de datos.
• Web mining: aplicación de la minería de datos en la web.
• Text mining: aplicación de la minería de datos en los documentos:
Aplicación de la minería de datos:
•
En la empresa: detección de fraudes, formas de compras en supermercados, recursos humanos.
BASE DE DATOS DISTRIBUIDAS.
Almacena datos que pertenecen lógicamente a un solo sistema, pero se encuentra físicamente esparcido en varios
“sitios” de la red. Un sistema de base de datos distribuidos se compone de un conjunto de sitios, conectados entre
sí mediante algún tipo de red de comunicaciones.
Estas pueden ser:
•
•
Homogéneas: tiene el mismo sistema gestor de base de datos (SGBD).
Heterogéneas. El SGBD es distinto en cada sitio.
Sistema de Gestión de Base de Datos Distribuida.
Es un sistema de gestión de base de datos que gestiona la BD distribuida.
Funciones:
• Acceso a sitios remotos.
• Establece las estrategias de ejecución de las consultas.
• Decide a que copia de datos acceder.
• Mantiene la consistencia de las copias de los datos replicados.
• Realiza la recuperación ante los fallos.
Componentes:
•
Hardware.
Solo necesita servidores y una red.
•
Software.
a) Sistema manejador de base de datos distribuida (DDBMS). Está formado por las transacciones y los
administradores de las base de datos.
b) Administrador de transacciones distribuidas (DTM). Encargado de coordinar y controlar las solicitudes
de procesamiento de los programas de consultas o transacciones y las traduce en acciones para los
administradores.
c) Sistema manejador de base de datos (DBMS). Procesa cierta porción de la base de datos. Se encarga
de recuperar y actualizar datos del usuario y generales de acuerdo a los comandos de los DTM.
d) Nodo. Es una computadora que ejecuta un DTM o un DBM o ambos. Un nodo transacción ejecuta un
DTM y un nodo de base de datos un DBM.
Distribución de los datos:
•
•
•
•
Centralizada. Los usuarios están distribuidos, maneja el modelo Cliente/Servidor y lo único que realiza es
una transacción distribuida.
Replicadas. Se realiza una copia de toda la base de datos y se la coloca en cada sitio, la desventaja que
tiene es que es de un alto costo, aunque es de gran ayuda si el sistema solo es de lectura y en él no se
escribe mucho. Además nos da fiabilidad y disponibilidad.
Particionadas o Fragmentadas. Hay una copia de cada elemento, pero la información está distribuida a
través de los nodos.
Hibrida. Combinación de partición y replicación. Se particional la relación y a la vez los fragmentos están
selectivamente replicados a través del sistema del BDD.
Tipos de Arquitecturas/implementaciones.
Se toma en cuenta:
• Distribución. Los componentes del sistema están en la misma computadora o no.
• Heterogeneidad. Que se heterogéneo.
• Autonomía. En el diseño, comunicación, de ejecución.
Ventajas:
• Mejora en la estructura organizacional, debido a que los datos están en el área que le corresponde.
• Autonomía Local: Un departamento puede controlar los datos que le pertenecen.
• Disponibilidad: algún fallo solo afecta a cierta área no a todo el sistema.
• Rendimiento: trabajo en paralelo por lo cual balancea la carga de los servidores.
• Economía: es más barato crear una red de computadoras pequeñas, que tener una sola muy poderosa.
• Modularidad: se puede agregar, modificar o quitar sistema de la base de datos sin afectar a los demás.
Desventajas
• Complejidad: se debe asegurar que la base de datos sea transparente.
• Economía: necesita mayor mano de obra.
• Seguridad: tanto en la infraestructura como en cada sistema.
• Falta de experiencia: falta de personal con experiencia en el campo.
• Carencia de estándares: no existen herramientas o metodologías que ayuden.
GESTORES DE BASES DE DATOS EN EL MERCADO ACTUAL
•
SQL: es el lenguaje de programación estructurado de las bases de datos Oracle y su estructura es muy
similar a la de cualquier otro lenguaje con procedimientos como C o C++.
•
SERVER: Sistema que proporciona recursos (por ejemplo, servidores de ficheros, servidores de
nombres). En Internet, este término se utiliza a menudo para designar los sistemas que proporcionan
información a los usuarios de la red.
•
ORACLE: es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de
Relational Data Base Management System), desarrollado por Oracle.
•
Adabas: (Adaptable Database System), es una base de datos de listas invertidas.
•
SQL Server: es un sistema de gestión de bases de datos relacionales (SGBD) basado en el lenguaje
Transact-SQL, y específicamente en Sybase IQ, capaz de poner a disposición de muchos usuarios grandes
cantidades de datos de manera simultánea.
•
Access es un programa Sistema de gestión de base de datos relacional creado y modificado por
Microsoft para uso personal de pequeñas organizaciones.
•
Db2 es una marca comercial, propiedad de IBM, bajo la cual se comercializa el sistema de gestión de
base de datos.DB2 versión 9 es un motor de base de datos relacional que integra XML de manera nativa,
lo que IBM ha llamado pureXML, que permite almacenar documentos completos dentro del tipo de
datos xml para realizar operaciones y búsquedas de manera jerárquica dentro de éste, e integrarlo con
búsquedas relacionales.
•
PostgreSQL es un sistema de gestión de base de datos relacional orientada a objetos de software libre,
publicado bajo la licencia BSD.
ALGORITMOS DE CODIFICACION, COMPRESION, DETECCION Y CORRECCION DE ERRORES
Codificación
• Shannon-Fanon
• Huffman-Greedy
Compresión de datos
• Codificación de fuente
• Códigos no-singulares
• Códigos unívocamente decodificables
o Extensión de código
• Códigos prefijo (o códigos instantáneos)
Detección de errores
• Bits de redundancia
o Métodos de control de errores
▪ Paridad
▪ Códigos autochequeo y autocorrectores
▪ Códigos de bloque
▪ Distancia Hamming
▪
▪ Paridad horizontal y vertical
Códigos lineales
▪ Códigos cíclicos
▪ CRC16
▪ CRC32
RESPALDOS
Definición de respaldo de información
La palabra "Backup" significa subir respaldo, siendo común el uso de este término dentro del ámbito
informático. El respaldo de información es la copia de los datos importantes de un dispositivo primario en uno ó
varios dispositivos secundarios, ello para que en caso de que el primer dispositivo sufra una avería
electromecánica ó un error en su estructura lógica, sea posible contar con la mayor parte de la información
necesaria para continuar con las actividades rutinarias y evitar pérdida generalizada de datos.
Métodos para el respaldo de información
Manual: el usuario copia directamente los archivos a respaldar por medio de comandos ó por medio del
explorador de archivos de su respectivo sistema operativo.
Otra forma de realizar las copias de seguridad es por medio de una aplicación que permita la creación de la
copia al momento y con los datos existentes hasta ese momento, regularmente los datos se almacenan en forma
de archivos comprimidos para ahorrar espacio. Ejemplo Microsoft® Copia de Seguridad.
Automático: por medio de una aplicación especializada, el usuario programa los archivos a guardar y
este respaldo se va actualizando en tiempo real (simultáneamente), conforme se van registrando cambios en los
archivos.
La manera más moderna de realizar los respaldos, es por medio de aplicaciones basadas en el uso de
Internet, ya que por medio de la contratación de servicios de pago ó libres de pago, se pueden programar
rutinas de respaldo, que permiten guardar copias de seguridad en servidores Web.
Entre los dispositivos y servicios para respaldo de información están los siguientes:
Cintas de almacenamiento: son los dispositivos por excelencia que mas se habían utilizado, debido a su
bajo costo y gran capacidad de almacenamiento, aunque su lentitud era la desventaja. Desde el
dispositivo de almacenamiento principal, se copian los archivos hacia la unidad que escribe/lee las
cintas.
Servidores Web: actualmente por medio de Internet, es posible subir los archivos a respaldar
al servidor de algún proveedor, esto se hace por medio de la red. Tiene la desventaja de que la
conexión tiene que ser muy veloz y segura, para evitar que los datos sean interceptados mientras llegan
al servidor.
Discos duros: actualmente estos son los que dominan el mercado, ya que cuentan con una muy alta
capacidad para guardar datos, tanto en empresas como en el entorno doméstico ya que tiene una alta
velocidad de lectura/escritura. Simplemente se copian los archivos del dispositivo primario al disco
duro.
Discos espejo de servidores: se trata de discos duros que se van autocopiando mientras se trabaja de
manera normal, conforme el disco duro principal de una computadora va modificando su información,
una computadora anexa va clonando las acciones de este. Esto se logra mediante una aplicación
especial instalada en ambas computadoras, así, si él principal falla, se auto activa el otro como primario
mientras se resuelve la avería del sistema.
RECUPERACIÓN
El escenario más común de "recuperación de datos" involucra una falla en el sistema operativo (típicamente
de un solo disco, una sola partición, un solo sistema operativo), en este caso el objetivo es simplemente
copiar todos los archivos requeridos en otro disco. Esto se puede conseguir fácilmente con un Live CD, la
mayoría de los cuales proveen un medio para acceder al sistema de archivos, obtener una copia de
respaldo de los discos o dispositivos removibles, y luego mover los archivos desde el disco hacia el
respaldo con un administrador de archivos o un programa para creación de discos ópticos. Estos casos
pueden ser mitigados realizando particiones del disco y continuamente almacenando los archivos de
información importante (o copias de ellos) en una partición diferente del de la de los archivos de sistema en
el sistema operativo, los cuales son reemplazables.
Otro escenario involucra una falla a nivel de disco, tal como un sistema de archivos o partición de disco que
esté comprometido, o una falla en el disco duro. En cualquiera de estos casos, los datos no pueden ser
fácilmente leídos. Dependiendo de la situación, las soluciones pueden estar entre reparar el sistema de
archivos, la tabla de particiones o el registro maestro de cargado (MBR), o técnicas de recuperación del
disco duro que van desde la recuperación basada en software de los datos corruptos a el reemplazo del
hardware de un disco dañado físicamente. Si la recuperación del disco duro es necesaria, el disco de por sí
típicamente ha fallado de manera permanente, y el propósito en vez de una recuperación de una sola vez,
es el de rescatar cualquier dato que pueda ser leído.
En un tercer escenario, los archivos han sido "borrados" de un medio de almacenamiento. Típicamente, los
archivos borrados no son realmente eliminados de inmediato; en vez de ello, las referencias a ellos en la
estructura de directorios ha sido removida, y el espacio que éstos ocupan se hace disponible para su
posterior sobre-escritura. En el transcurso de esto, el archivo original puede ser recuperado. Aunque hay
cierta confusión acerca del término, la "recuperación de datos" puede también ser usada en el contexto de
aplicaciones de informática forense o de espionaje.
AREA DE DESARROLLO DE SOFTWARE
ESTRUCTURAS DE DATOS
ESTATICAS
Es aquella en las que el tamaño se ocupa la memoria antes de que se ejecute el programa y no puede modificarse
dicho tamaño durante la ejecución del programa.
Su principal característica es que ocupan solo una casilla de memoria, por lo tanto una variable simple hace
referencia a un único valor a la vez, dentro de este grupo de datos se encuentra:
a)
b)
c)
d)
e)
f)
Enteros
Reales
Caracteres
Boléanos
Enumerados
Subrangos.
DINAMICAS
No tiene las limitaciones o restricciones en el tamaño de memoria ocupada que son propias de las estructuras
estáticas. Mediante el uso de un tipo de datos especifico, denominado puntero, es posible construir estructuras
de datos dinámicas que no son soportadas por la mayoría de los lenguajes, pero que en aquellos que si tiene estas
características ofrecen soluciones eficaces y efectivas.
Estructura de datos dinámicos
1- Lineales
a) Pila
b) Cola
c) Lista
2- No Lineales
a) Arboles
b) Grafos
METODOS Y MODELOS DE DESARROLLO DE SOFTWARE
Un proceso de software detallado y completo suele denominarse “Metodología”. Las metodologías se basan en
una combinación de los modelos de proceso genéricos (cascada, evolutivo, incremental, espiral entre otros).
Adicionalmente una metodología debería definir con precisión los artefactos, roles y actividades involucrados,
junto con prácticas y técnicas recomendadas, guías de adaptación de la metodología al proyecto, guías para uso
de herramientas de apoyo, etc. Habitualmente se utiliza el término “método” para referirse a técnicas, notaciones
y guías asociadas, que son aplicables a una (o algunas) actividades del proceso de desarrollo, por ejemplo, suele
hablarse de métodos de análisis y/o diseño.
EVOLUCION HISTORICA DE LAS METODOLOGIAS DE DESARROLLO DE SOFTWARE
El desarrollo de los sistemas tradicionales de ciclo de vida se originó en la década de 1960 para desarrollar a gran
escala funcional de sistemas de negocio en una época de grandes conglomerados empresariales. La idea
principal era continuar el desarrollo de los sistemas de información en una muy deliberada, estructurada y
metódica, reiterando cada una de las etapas del ciclo de vida. Los sistemas de información en torno a las
actividades resueltas pesadas para el procesamiento de datos y rutinas de cálculo.
Metodologías de Desarrollo de Software tiene como objetivo presentar un conjunto de técnicas tradicionales y
modernas de modelado de sistemas que permitan desarrollar software de calidad, incluyendo heurísticas de
construcción y criterios de comparación de modelos de sistemas.
Para tal fin se describen, fundamentalmente, herramientas de Análisis y Diseño Orientado a Objetos (UML), sus
diagramas, especificación, y criterios de aplicación de las mismas. Como complemento se describirán las
metodologías de desarrollo de software que utilizan dichas herramientas, ciclos de vida asociados y discusión
sobre el proceso de desarrollo de software más adecuado para las diferentes aplicaciones ejemplos que se
presentarán. Principalmente, se presentará el Proceso Unificado el cual utiliza un ciclo de vida iterativo e
incremental.
• Kendall y Kendall
I. Identificación del problema, oportunidades y objetivos. II. Determinación de los requerimientos de
información. III. Análisis de las necesidades del sistema. IV. Diseño del sistema recomendado. V. Desarrollo y
documentación del software. VI. Pruebas y mantenimiento del sistema. VII. Implantación y evaluación del
sistema.
• James Senn
I. Ciclo de vida y desarrollo del sistema. II. Desarrollo por análisis estructurado III. Prototipo del sistema.
• Llorens Fabregas
I. Requerimientos. II. Análisis/Diseño. III. Construcción. IV. Pruebas. V. Producción y mantenimiento.
• Jonas Montilva
I. Definir el proyecto. II. Análisis del contexto. III. Definición de los requerimientos. IV. Diseño preliminar. V.
Diseño detallado.
• Roger Pressman
I. Análisis de los requerimientos del Software. II. Diseño. III. Generación de código. IV. Pruebas. V.
Mantenimiento.
Metodologías de desarrollo de software
1970
• Programación estructurada sol desde 1969
• Programación estructurada Jackson desde 1975
1980
• Structured Systems Analysis and Design Methodology (SSADM) desde 1980
• Structured Analysis and Design Technique (SADT) desde 1980
• Ingeniería de la información (IE/IEM) desde 1981
1990
• Rapid application development (RAD) desde 1991.
• Programación orientada a objetos (OOP) a lo largo de la década de los 90's
• Virtual finite state machine (VFSM) desde 1990s
• Dynamic Systems Development Method desarrollado en UK desde 1995.
• Scrum (desarrollo), en la última parte de los 90's
• Rational Unified Process (RUP) desde 1999.
• Extreme Programming(XP) desde 1999
Nuevo milenio
• Enterprise Unified Process (EUP) extensiones RUP desde 2002
• Constructionist design methodology (CDM) desde 2004 por Kristinn R. Thórisson
• Agile Unified Process (AUP) desde 2005 por Scott Ambler
GENERACION DE METODOLOGIAS
• Desarrollo Convencional
a) Los resultados finales son impredecibles
b) No hay forma de controlar lo que está sucediendo en el proyecto.
c) Los cambios organizativos afectan negativamente el proceso de desarrollo.
• Desarrollo Estructurado
a) Identificación de los problemas, oportunidades y objetivos.
Es la primera fase del ciclo de vida del desarrollo de sistemas, el encargado de esta fase es el analista. La
identificación de los problemas es fundamental para el desarrollo ya que es donde se centrara el proyecto,
las oportunidades que se vayan a identificar podrían darle una ventaja competitiva a la empresa ya que
estas se pretenden mejorar con los proyectos. Los objetivos también son importantes identificarlos debido
a que nos permite saber qué hace la empresa y como poder ayudarle con el sistema. Las personas que se
involucran en esta etapa son los usuarios, analistas y los administradores de sistemas.
b) Determinación de los requerimientos del factor humano.
Esta fase nos sirve para determinar las necesidades de los usuarios involucrados, mediante el uso de
herramientas como, entrevistas, muestreos e investigación de datos duros, cuestionarios y los métodos
discretos como, observación.
c) Análisis de las necesidades del sistema.
Por medio de herramientas como los diagramas de flujo se puede observar cuales son los requerimientos
del sistema, como entradas, procesos y salidas, en esta etapa el analista prepara una propuesta en base a
lo que ha averiguado de los usuarios.
d) Diseño del sistema recomendado.
Se utiliza la información antes recolectada para el diseño lógico del sistema, se diseña las interfaces es con
la ayuda de los usuarios, también se diseña la base de datos, también se diseña las salidas que satisfagan
las necesidades de los usuarios, también se debe diseñar controles y procedimientos de respaldo para
proteger el sistema y los datos.
e) Desarrollo y documentación del software.
En esta fase se trabaja con los programadores para desarrollar el software original y además se crea la
documentación efectiva para el software, como manuales. La documentación indica a los usuarios como
deben usar el software y que deben de hacer en caso de problemas.
f) Prueba y mantenimiento del sistema.
Las pruebas nos permiten detectar si existe algún problema antes de entregarles a los clientes el producto.
El mantenimiento del sistema empieza en esta fase y se realiza durante toda la vida del sistema.
g) Implementación y evaluación del sistema.
Es esta fase se inicia con la capacitación de los usuarios, además es planea un conversión del sistema
antiguo al nuevo este proceso implica instalar equipo, convertir datos, etc. La evaluación nos indica si los
usuarios están usando el sistema.
•
Desarrollo Ágil.
Es una metodología que se basa en valores, principios y prácticas básicas. Los cuatro valores son
comunicación, simpleza, retroalimentación y valentía. La metodología ágil se caracteriza por dos palabras
interactivas e incrementales.
a) Exploración.
Se estima el tiempo, con que personal se trabajara y con las tecnologías potenciales necesarias para crear el
sistema.
b) Planeación.
En esta etapa se define la fecha en que se entregara las soluciones a los problemas más estresantes de la
empresa.
c) Iteraciones para la liberación de la primera versión.
Nos sirven para mostrar lo que se espera entregar, además de darnos retroalimentación y modificación de lo
que se tiene.
d) Puesta en Producción.
En esta fase se libera el producto.
e) Mantenimiento.
Una vez liberado el sistema, debe seguir funcionando sin problemas. Es posible agregar características.
•
Desarrollo Orientado a Objetos
Es una metodología diñada para facilitar el desarrollo de sistemas que deben cambiar con rapidez en
respuesta a los entornos empresariales dinámicos. Utilizan UML, para descomponer el sistema en un
modelo de caso de uso. Los objetos pueden ser clientes, artículos, pedidos, etc. Los objetos representan
y agrupan mediante clases, las cuales son ideales para la reutilización y la facilidad de mantenimiento
a) Definir el modelo de caso de uso.
Se identifica a los actores y los eventos principales iniciados por los actores.
b) Durante la fase de análisis de sistemas, empezar a dibujar diagramas de UML.
Se dibujan diagrama de actividad, los cuales ilustran todas las principales actividades en el caso de uso.
Además se crea uno o más diagramas de secuencia.
c) Continua la fase de análisis, desarrollar diagramas de clases.
d) Aun en la fase de análisis, dibujar diagramas de estado.
Los diagramas de clases sirven para dibujar diagrama de estado, los cuales ayudan a comprender procesos
complejos.
e) Empezar el diseño de sistemas mediante la modificación de los diagramas de UML.
f) Desarrollar y documentar el sistema.
UML, solo nos da un modelo, por lo cual es necesario poder desarrollarlo.
A menudo las metodologías orientadas a objetos se enfocan en iteraciones pequeñas y rápidas de desarrollo, a lo
que algunas veces se le conocen como el modelo de espiral.
CARACTERISTICAS DESEABLES DE UNA METODOLOGIA.
•
•
•
•
•
•
•
•
•
•
•
Existencia de reglas predefinidas
Cobertura total del ciclo de desarrollo
Verificación intermedias
Planificación y control
Comunicación efectiva
Utilización sobre un abanico de amplio de proyectos
Fácil formación
Herramientas CASE
Actividades que mejoren el proceso de desarrollo
Soporte al mantenimiento
Soporte de la reutilización de software
METODOLOGIAS EN COMPARACION CON EL CICLO DE VIDA DE DESARROLLO DE SOFTWARE
MODELOS DE PROCESO EN EL DESARROLLO DE SOFTWARE.
•
Modelo de la cascada
Está compuesto por una serie de fases que se ejecutan secuencialmente.
Utilizado mayormente cuando se necesita una actualización o mejora a un sistema ya existente.
Desventajas de su uso
• Es raro que los proyectos reales sigan el flujo secuencial del proyecto.
• Es difícil que un cliente indique cuales son los requerimientos.
• El cliente debe tener paciencia, ya que tendrá resultados hasta el final.
• Dependencia de fases.
Ventajas de su uso.
• Solo en proyectos donde se conocen los requerimientos y estos son fijos.
•
Modelo Incremental
Este modelo permite entregar etapas del proyecto funcionales, hasta llegar a su finalización.
El modelo de proceso incremental se centra en que en cada incremento se entrega un producto que ya opera. Los
primeros incrementos son versiones desnudas del producto final, pero proporcionan capacidad que sirve al usuario y
también le dan una plataforma de evaluación.
Útil cuando no se dispone de mucho personal, debido a que si los primeros incrementos son bien recibidos entonces
se agrega el personal necesario para las posteriores etapas.
•
Modelos de proceso evolutivos.
Su uso se debe a que en el proceso de desarrollo del software, puede que el proyecto presente cambios en los
requerimientos estipulados anteriormente.
PROTOTIPOS
•
•
•
•
•
El modelo de proceso de prototipos comienza con la comunicación, en la cual se definen los requerimientos y
los objetivos generales.
Se planea rápidamente una iteración para hacer el prototipo.
se lleva a cabo el modelado (en forma de un “diseño rápido”), Este se centra en la representación de aquellos
aspectos del software que serán visibles para los usuarios finales.
El diseño rápido lleva a la construcción de un prototipo.
Este es entrega y es evaluado por los participantes, que dan retroalimentación para mejorar los
requerimientos.
La iteración ocurre a medida de que el prototipo es afinado para satisfacer las necesidades de distintos participantes,
y al mismo tiempo le permite a usted entender mejor lo que se necesita hacer.
La idea es que el prototipo sirva para identificar los requerimientos del software.
Desventajas de su uso.
•
•
Puede ser que los clientes piensen que es la versión final, lo cual puede ocasionar que el proyecto se
estanque, a su vez afecta la calidad del software.
Se utilizan herramientas como sistemas operativos o lenguajes de programación que se tiene a disposición y
no se busca el ideal para el sistema.
ESPIRAL
Propuesto por Barry Boehm, es un modelo evolutivo del proceso de software impulsado por el riesgo y se acopla con
la naturaleza iterativa de hacer prototipos con los aspectos controlados y sistemáticos del modelo de cascada.
Características.
•
•
Enfoque cíclico, es decir permite el crecimiento incremental del grado de definición de un sistema y su
implementación, mientras que disminuye el grado de riesgo.
Punto de referencia de anclaje puntual, para asegurar el compromiso del participante con soluciones factibles
y mutualmente satisfactorias.
PROGRAMACION EXTREMA.
Utilizado en la metodología ágil. Involucre ir descubriendo la solución, en la medida que se va avanzando en el
desarrollo. Hay poca documentación, mucha interacción con el cliente/usuario
Características
•
•
•
Desarrollo iterativo e incremental.
Pruebas unitarias continuas.
Programación en parejas.
RAD.
Este modelo se basa en el modelo lineal secuencial llevado a cabo por varios equipos de trabajo que siguen las etapas
del proceso, es aplicable a la construcción de sistema de información fácilmente modularizables.
Modelado de Gestión: el flujo de información entre las funciones de la empresa se define respondiendo a preguntas
como que información del motor del proceso de negocio, lo que se genera, que la genera, donde va la información,
que lo procesa y así sucesivamente.
Modelado de Datos: la información de datos definidos en la fase de modelado de negocio, se refina en un conjunto
de objetos de datos que se necesitan para apoyar el negocio.
Modelado de procesos. Se transforman los datos para lograr el flujo de la información, se utiliza para implementar
una función de negocio, descripciones de procesamiento se crean para añadir, modificar, eliminar o recuperar un
objeto de datos.
Generación de aplicaciones. La herramientas automatizadas que se utilizan para facilitar la construcción del software,
e incluso que utilizan las técnicas GL cuerto.
Pruebas de entrega.
Este modelo se enfoca más a la codificación que a la documentación. Y tiene un lapso máximo de tiempo de 90 días.
CLASIFICACION DE LAS METODOLOGIAS SEGUN EL MODELO DE PROCESO.
•
•
•
Metodología Estructural.
a) Modelo de Cascada.
b) Incremental.
Metodología Ágil.
a) Modelo de Prototipos.
b) RAD.
c) Programación Extrema.
Metodología Orientada a Objetos.
a) Espiral
b) RAD.
CLASIFICACION DE LAS METODOLOGIAS SEGÚN SU ENFOQUE.
•
•
•
Lineal
a) Modelo de Cascada
Iterativo.
a) Prototipos
b) Programación extrema.
c) RAD.
Iterativo y línea.
a) Incremental.
b) Espiral.
MODELOS DE PROCESOS UTILIZADOS EN EL DESARROLLO DE SOFTWARE.
•
•
•
•
Cascada
Prototipos
Incremental.
Espiral.
ARQUITECTURA DE SOFTWARE
DOCUMENTOS DE DISEÑO: ARQUITECTONICO Y DETALLADO, MATRIZ DE TRAZADO.
Parte 1: Descripción General.
• Propósito del sistema. propósito del sistema a desarrollar
• Alcance. Alcance del sistema a desarrollar
• Definiciones, acrónimos y abreviaciones. Listado con su significado.
• Referencias. Referencia de los documentos utilizados para construir el DD.
• Descripción general. Describe a grandes rasgos, el sistema a desarrollar.
• Servicios a brindar por el producto. Que servicios brinda el producto (consultas, etc.)
Parte 2: Diseño Arquitectónico.
Relacionado con el diseño macro-componentes del sistema, relacionado con los requerimientos antes
encontrados.
Se divide en:
• Arquitectura Física.
a) Expresa cuales son los componentes físicos (cliente, servidor, servidor web, BD) que se utilizaran y
como se relacionan entre ellos.
b) Consta de uno o más diagramas, y la explicación de los mismos (actores y relaciones entre ellos).
c) La arquitectura física es una formalización del ambiente operacional.
Existen arquitecturas como la de tres capas, su auge se debe a que actualmente se está utilizando
más las aplicaciones web.
•
Arquitectura Lógica.
a) Indica cuales son los componente lógicos (subsistemas, o macro-sistemas) que participan en nuestra
solución, y la relación entre ellos.
b) Utilización de diagramas (Diagramas de Datos, de clases, de bloques, de casos de uso)
•
Modelo de datos.
a) El modelo de datos consiste en identificar gráficamente las entidades (o tablas) que participan en el
sistema.
b) Identificación de llaves.
Parte 3: Diseño Detallado.
Relacionado con el diseño de las micro-componentes del sistema, en base a los requerimientos y el diseño
arquitectónico. El diseño detallado se especifica a través de:
• Diseño detallado por Módulos.
Se mantiene las interfaces de entrada/salida, cada módulo del sistema debe tener un identificador.
ID, Nombre (o Descripcion), Subsistema, Funcion, Parametros de Entrada, Parametros de Salida.
•
Modelo de Navegación.
•
Interfaz de Usuario.
a) Patrón de interfaz a usar (si hay alguno).
b) Diseño de cada interfaz.
•
Diccionario de Datos.
a) Complemento de los puntos anteriores.
b) Posee dos componentes, especificación de procesos y de datos.
1- Procesos.
Para cada módulo del diseño detallado por módulos, se indica su función, los parámetros que
recibe, y los parámetros que retorna.
2- Datos.
Por cada tabla se especifican los campos y su formato.
Parte 4: Matriz de Trazado.
Es un elemento de control, su función es de ver que el diseño refleje los requisitos especificados además de ver
la calidad del diseño. Su trabajo se realiza en paralelo con el diseño.
Se han creado diferentes técnicas y modelos para soportar la práctica de trazabilidad durante el proceso
de desarrollo de software. La técnica más común y aplicable a cualquier modelo de desarrollo es la
construcción de matrices de trazado, que hacen posible el análisis de la correlación entre elementos de
un mismo modelo y entre modelos en diferentes niveles de abstracción. Por ejemplo, en la figura 1 se
muestra una de las matrices más comunes de trazado: la de Requisitos y Casos de Uso, la cual permite
verificar en qué casos de uso son representados y especificados los requisitos funcionales solicitados
desde el espacio del problema.
Otro ejemplo es la matriz CRUD (Create, Retrieve, Update and Delete). Permite analizar las operaciones
que deben realizarse sobre la base de datos a partir de la correlación entre tablas y funciones y entre
otros elementos de la base de datos.
La construcción de estas matrices trae beneficios, más allá de un simple registro de la correlación o
dependencia entre los elementos de los modelos. A partir de ellas es posible analizar características tales
como el nivel de especificación de los requisitos, el nivel de participación de los usuarios, el costo
asociado a cada fase de desarrollo, la arquitectura requerida, el plan de las pruebas, etc. Otra de las
ventajas de estas matrices es que, si se actualizan continuamente, pueden servir como herramienta de
soporte muy útil para el personal encargado del mantenimiento y las pruebas del sistema.
De otra parte, esta práctica puede ser costosa y tediosa para sistemas de gran tamaño o complejos.
Algunas herramientas CASE posibilitan la generación automática de estas matrices o de forma
automática generan elementos de un modelo a otro en diferentes niveles de abstracción (p. ej. del
modelo de análisis al modelo de diseño), para obtener así una correlación (mapping) de trazado; sin
embargo, no todos los elementos pueden ser correlacionados de forma automática o simplemente no
tienen elementos definidos en los modelos destino.
TRABAJO EN EQUIPO
Trabajar en equipos se deba a que los proyectos son cada vez más grandes, además de ser más necesarios los
especiales y los grupos interdisciplinarios.
El trabajar en equipo no ayuda a competir, mejorar y a su vez nos permite poder asumir desafíos más grandes.
El funcionamiento de los grupos se puede dividir en:
•
•
•
•
Democrático.
No hay un líder, las decisiones se toman por votos. Las desventajas son; difícil de implementar, solo es para
grupos chicos, a menudo cuesta más llegar a una decisión, no todo se puede llevar a votación.
Jerárquico.
Hay un responsable por nivel, y rol. Los procedimientos claros para casi todo. Todas las comunicaciones se
realizan a través del jefe, las ventajas que ofrece son; pocos canales de comunicación, fácil toma de
decisiones, se está acostumbrado a trabajar así, mejor comunicación cliente/usuario. Desventajas el jefe
tiene que estar en todo, no es aplicable en proyectos grandes, dependencia del personal,
Supervisado.
Es administrado por dos personas; el manager y el team leader (técnico). Las ventajas que nos ofrece son; los
administradores pueden desempeñar el cargo del otro, con óptimos resultados si las personas tienen mucha
experiencia y profesionalismo. Las desventajas son que hay decisiones que son tanto del área técnica como
gerencial, necesita de un buen entendimiento de los administradores, además de un gran profesionalismo y
compromiso.
Mezclas.
Cada equipo debe estar formado por pequeños equipos (de 3 a 4 personas), con responsabilidades y
atribuciones claras. Cada miembro trabajara en forma individual.
Los equipos de trabajo deben considerar 5 temas críticos:
•
•
•
•
Clarificar la visión compartida del proyecto.
Cada miembro del equipo debe tener la confianza de poder expresar su visión del proyecto.
Construir la cooperación y la confianza.
Conocimientos delos principios morales básicos, es necesario tener en cuenta que el éxito es de todos, a
menudo lo que nosotros esperamos o exigimos de alguien, se vuelve lo que recibimos de el.
No se debe ser negativo, no ser idealista, no ser egocéntrico, ser objetivo, clarificar.
Establecer responsabilidades y atribuciones.
Establecer cuál es la tarea de cada miembro y que resultados nos brindara su trabajo, y además que otros
miembros del equipos necesitan esos resultados.
Establecer la organización y utilización de los recursos.
Identificación de los recursos, y quien tiene acceso a ellos, asignación de los mismos de manera equitativa.
•
Definir las actividades de supervisión.
Es cuando en una reunión se verifica el progreso del proyecto es puede ser por medio de revisiones grupales,
reuniones y controles para recibir información. Además nos permite determinar el éxito de proyecto.
Equipos vs. Grupos.
Grupos
Líder fuerte
Responsabilidad individua
Persigue metas organizacionales
Se delega trabajo
Alienta el individualismo
Equipos
Liderazgo compartido.
Responsabilidad individual y grupal
Persigue metas del equipo
Se trabaja en conjunto
Estrecha vínculos entre los miembros.
Los equipos y buenos resultados, son conceptos inseparables.
Claves del éxito de los equipos
•
•
•
•
•
•
Compromiso común.
Definición de objetivos específicos
Mezcla de experiencia.
Se mide el rendimiento grupal e individual.
Existen acuerdos.
Identificación del administrador del proyecto y de sus colaboradores.
Administrador del proyecto
Habilidades y destrezas de un administrador efectivo.
•
•
•
•
•
•
•
•
•
•
•
•
Capacidad de administración
Análisis
Negociación
Comunicación verbal y escrita
Escuchar
Motivar
Toma de decisiones.
Alta coordinación
Definir los niveles de opinión
Información fluida
Nivel de autorización frente a terceros.
Protección del grupo respecto a perturbaciones externas.
COSTOS Y TIEMPO.
Medidas del software.
Planeación -> estimar tiempos y recursos -> estimar tamaño del software - > medida del software.
Medida directa. Peso, altura
Medida Indirecta. Velocidad.
Predicción. Estimación de tamaño que no existe en ese momento. Es solo un aproximación a la medida correcta.
Modelo COCOMO simple
Relaciona el esfuerzo E (meses-hombre) con el tamaño S (MLOCS) de acuerdo a:
E=a*Sb
Donde a y b son parámetros determinados por el tipo de software a ser desarrollado.
Es un sistema de predicción de costos.
Medir cada Fase (análisis, diseño, ...)
➔ Para mejorar
Medir a paquete completo
➔ Para estimar mejor.
Sistemas de Predicción.
• Se debe establecer empíricamente la precisión de la predicción.
Métodos de estimación.
• Wideband-Delphi.
a) se usan a varios expertos que hacen converger hacia una estimación única.
• Lógica Difusa.
a) Se basa en comparar el tamaño/complejidad con información histórica de productos anteriores.
• Componentes Estándares.
a) Se basa en mantener una base de datos con información de componentes usados anteriormente.
• Puntos de Función.
a) Identifica 5 funciones, pantallas de captura de datos, de salida; consultas, archivos (tablas de BD),
Interfaz (archivos compartidos de entrada y salida).
• Factor de complejidad.
Considera 14 aspectos
Es mejor desarrollar un modelo propio, que use la información historia de la empresa.
ARQUITECTURAS BASICAS.
Por lo general las arquitecturas se adaptan según sea el caso donde se apliquen.
• Cliente-Servidor.
Modelo de aplicación distribuida en la que las tareas las provee un servidor o servidores y los
solicitantes son los clientes. Ejemplo de ello son los servicios como Correo Electrónico o un Servidor de
impresión.
•
Cliente servidor en internet.
La separación es de un tipo lógico, el cliente es quien inicia las solicitudes y peticiones, recibe y espera
las respuestas del servidor, pueden conectarse a varios servidores,
El servidor al iniciarse espera a que lleguen las solicitudes, y envía las respuestas
Ventajas
a) Centralización del control, los accesos, recursos y la integridad son controlados por el servidor.
b) Escalabilidad. Se pueden agregar más clientes y servidores por separado.
c) Fácil mantenimiento. Debido a que están distribuidas las funciones y responsabilidades en varios
ordenadores es más fácil realizar el mantenimiento.
d) Existen tecnologías, las cuales se están especializadas para este tipo de arquitectura, para cubrir la
seguridad, interfaces, transacciones.
Desventajas.
a) Congestión de tráficos, se da cuando muchos clientes envían solicitudes al mismo servidor.
b) Puede caer, si el servidor colapsa no se podrá realizar ninguna transacción.
c) El software y Hardware. Es necesario contar con el equipo necesario.
d) El Cliente no dispone de los recursos que puedan existir en el servidor.
•
Arquitectura de tres niveles.
Es una especialización de la arquitectura cliente-servidor, su objetivo general es la separación de la
lógica de negocios de la lógica de diseño.
La ventaja principal es que se puede llevar a cabo en varios niveles y, en caso de que sobrevenga algún
cambio, solo se ataca el nivel requerido sin tener que revisar todo el código mezclado.
Capas y niveles.
a) Capa de presentación. Es la interfaz gráfica, es decir es lo que ve el usuario, se presenta de una
manera agradable y a su vez permite la captura de información.
b) Capa de negocios. Es donde residen los programas que se ejecutan, y se comunica con la capa de
datos.
c) Capa de datos. Es donde residen los datos y es la encargada de acceder a los mismos. Formado por
uno o más gestores de base de datos.
Capa. Nos indica la forma como una solución segmentada desde el punto de vista lógico.
Nivel. Nos indica en la forma que las capas están distribuidas.
•
Modelo vista Controlador
Este modelo separa los datos y la lógica de negocio de una aplicación de la interfaz gráfica de usuario y
el modulo encargado de gestionar los eventos y las comunicaciones.
De manera genérica, los componentes de MVC se podrían definir como:
a) Modelo: es la presentación de la información con lo cual el sistema opera, por lo tanto gestiona
todos los accesos a dicha información, tanto consultas como actualizaciones.
b) Controlador. Responde a eventos e invoca peticiones al modelo. También puede enviar comandos a
vista, por tanto se puede decir que controlador hace de intermedio entre la vista y el modelo.
c) Vista. Presenta el modelo, (interfaz gráfica).
•
•
•
OSI
Es una arquitectura de red, creado en el año 1980
a) Nivel Físico. Encargada de la topología de red, definición del medio por los que va a viajar la
comunicación, cable de pares trenzados, cable coaxial, fibra óptica.
b) Nivel de Enlace de datos.
Esta capa se ocupa del direccionamiento físico. Ethernet, Wi fi, Token rif
c) Nivel de Red. Identifica el enrutamiento existente entre una o más redes. Su objetivo es que los
datos lleguen desde el origen al destino. Uso de routers.
d) Nivel de Transporte. Se encarga de trasportas los datos de la máquina de origen a la de destino.
Utiliza los protocolos UDP, TCP.
e) Nivel de Sesión. Encarga de mantener y controlar el enlace establecido entre dos hosts.
f) Nivel de Presentación. Da un formato estándar a los datos, capas de cifrar y comprimir datos.
g) Nivel de Aplicación. Permite a las aplicaciones poder acceder a los servicios de las demás capas y
define los protocolos para intercambios datos, como correo electrónico, gestores de base de datos y
servidor de ficheros, por UDP pueden viajar (DNS)
Sistemas domóticas.
Utilización de las Tecnologías de información y comunicación (TIC)
Arquitectura orienta a servicios.
Utilizado para diseñar y desarrollar sistemas distribuidos, permite la creación de sistemas de
información altamente escalables que reflejan el negocio de la organización, a su vez brinda una forma
bien definida de exposición e invocación de servicios.
SOA es una arquitectura de aplicación en la cual todas las funciones están definidas como servicios
independientes con interfaces invocables que pueden ser llamados en secuencias bien definidas para
formar los procesos de negocio.
•
Arquitectura Orientada a Objetos.
Conjunto de objetos que cooperan entre si en lugar de como un conjunto de procedimientos. Los
objetos son discretos, independientes y poco acoplados, se comunican mediantes interfaces y permiten
enviar y recibir peticiones.
METRICAS Y REVISIONES DE SOFTWARE
Métricas: es la medida de un concepto (generalmente) abstracto.
Debe medirse de forma
• Sistemática
• Simple
• Pertinente
Se requiere una escala de medida para ese concepto
Las métricas son utilizadas para medir, el cumplimiento de requisitos, etapa, hitos, impacto de proyecto.
Ejemplo de métricas.
• Cantidad y tipo de requisitos por proyecto
• Cantidad y tipo de errores por proyecto.
• Uso de componentes estándares
• Duración del proyecto.
Implementar métricas tiene sentido si es a largo plazo.
Las revisiones de software sirven para validar la calidad y/o el estado de un producto, el cual puede ser un
documento, un módulo, un prototipo.
Las revisiones del software son un filtro para el proceso del software, sirven para descubrir errores y defectos a
fin de poder eliminarlos, purifican los productos de la ingeniería del software.
Consideraciones generales.
• Lea el manual sobre protocolos de comunicación entre miembros del proyecto
• Se revisa el trabajo, no al autor.
• Se buscan defectos, no forma de implementar sus ideas.
• Sigas las instrucciones del moderador, y los tiempos asignados a cada actividad.
• Las criticas destructivas, no beneficia a nadie.
Estas pueden ser:
• Revisiones (entre pares). Orientado al código fuente, detecta errores o problemas de lógica y de
programación en forma temprana.
• Auditorias. Evalúa el nivel de conformidad con estándares y planes.
• Caminatas. Está divida en tres fases, planificación (preparación) , ejecución(revisión) y
seguimiento(post-revisión).
• Inspecciones.
Las revisiones nos ayudan.
• Mantener el control del proyecto.
• Publicitar el estado de avance del proyecto.
• Identificar falencia.
• Generará nuevas ideas.
DISEÑO DOCUMENTACIÓN
1. Requisitos
La sección de requisitos describe el problema que se está solventando junto con la solución. Esta
sección de la documentación resulta interesante tanto para los usuarios como para los
implementadores; no debería contener detalles sobre la estrategia de implementación en concreto.
Las otras partes de la documentación del sistema no serán de interés para los usuarios, únicamente
para los implementadores, los encargados del mantenimiento y demás personal.
1. Visión general Una explicación del objetivo del sistema y de la funcionalidad del mismo.
2. Especificación revisada: Si le facilitaron especificaciones detalladas del comportamiento del
sistema, es probable que encuentre que ciertas partes del mismo se encuentran
infraespecificadas o son ambiguas. En esta sección debería aclarar tanto cualquier suposición
que haya hecho sobre el significado de los requisitos, como cualquier extensión o modificación
de los mismos.
3. Manual de usuario: Una descripción detallada sobre cómo el usuario puede utilizar el sistema,
qué operaciones puede llevar a cabo, cuáles son los argumentos de la línea de comando, etc.
Las especificaciones detalladas de los formatos deberían relegarse al Apéndice. Cualquier
suposición relativa al entorno debería explicitarse aquí: por ejemplo, observe si el programa
sólo se ejecuta en ciertas plataformas, si supone que la jerarquía de un cierto directorio está
presente, si existen otras aplicaciones, etc. Junto con la visión general, este manual debería
proporcionar toda la información que un usuario del sistema necesita.
4. Funcionamiento (Análisis de requisitos): ¿Qué recursos necesita el sistema para una operación
normal y qué espacio y tiempo se espera que consuma?
5. Análisis del problema: Una descripción clara del problema subyacente. Esto incluye el modelo
conceptual que hay detrás del diseño (y posiblemente la interfaz de usuario), si no se ha tratado
ya. El análisis del problema generalmente incluye uno o más modelos de objeto del problema,
definiciones de sus conjuntos y relaciones y una discusión de asuntos complicados. Los objetos
en los modelos de objeto del problema proceden del dominio del problema, no del código. Los
modelos de objeto deberían incluir tanto diagramas como cualquier restricción textual
fundamental, y deberían estar claramente expuestos para una correcta legibilidad. Esta parte
también debería describir alternativas que hayan sido consideradas pero que se han rechazado,
con razones, asuntos no resueltos o aspectos que no hayan sido totalmente aclarados y que
vayan a solventarse más tarde.
Puede que los casos de uso le resulten útiles cuando escriba la especificación revisada y/o el manual de
usuario. Un caso de uso es un objetivo específico y una lista de acciones que un usuario lleva a cabo
para conseguir dicho objetivo. Un cliente puede, entre otras cosas, examinar la lista de acciones para
decidir si la interfaz de usuario es aceptable. Si la colección de casos de uso abarca todos los objetivos
deseados por el usuario, el cliente puede tener la seguridad de que el sistema cumplirá con su objetivo.
2. Diseño
La sección de diseño de su documentación proporciona un cuadro de alto nivel de su estrategia de
implementación.
1. Visión general Una visión general del diseño: organización de alto nivel, cuestiones de diseño
especialmente interesantes, uso de librerías y otros módulos de terceros e indicadores de
aspectos no resueltos o proclives al cambio. También incluye problemas con el diseño:
decisiones que pueden resultar erróneas y los análisis de las consecuencias entre la flexibilidad
y el funcionamiento que pueden ser juzgadas negativamente.
2. Estructura en tiempo de ejecución: Una descripción de la estructura del estado del programa
en ejecución, expresada como un modelo de objeto de código. Éste debería ocultar las
representaciones de los tipos de datos abstractos; su propósito consiste en mostrar las
relaciones entre objetos. Los modelos de objeto deberían incluir tanto diagramas como
cualquier restricción textual fundamental, y deberían estar claramente expuestos para una
correcta legibilidad. Las representaciones de los tipos de datos deberían explicarse (con sus
funciones de abstracción e invariantes de representación) si esas representaciones son poco
comunes, especialmente complejas o decisivas para el diseño global. Observe que las funciones
de abstracción y los invariantes de representación deberían aparecer, aun así en su sitio normal
en el propio código.
Para explicar la descomposición y otras decisiones de diseño, exponga que aportan simplicidad,
extensibilidad (facilidad para añadir características nuevas), particionalidad (los distintos miembros del
equipo pueden trabajar en las diferentes partes del diseño sin necesidad de mantener una
comunicación constante) u objetivos similares relativos a la ingeniería de software.
3. Pruebas
La sección de pruebas de su documentación indica el enfoque que usted ha elegido para verificar y
validar su sistema. (En un sistema real, esto podría incluir tanto las pruebas de usuario para determinar
la idoneidad del sistema como solución al problema descrito en la sección de requisitos, como la
ejecución de suites de prueba para verificar la corrección algorítmica del código). Del mismo modo que
no debería comunicar el diseño de su sistema presentando el código o incluso enumerando las clases,
no debería únicamente enumerar las pruebas realizadas. En vez de hacer esto, explique cómo se
seleccionaron las pruebas, por qué éstas bastaron, por qué un lector debería creer que no se ha
omitido ninguna prueba importante y por qué debería creer que el sistema realmente funcionará como
se desee cuando se ponga en práctica.
1. Estrategia: Una explicación de la estrategia general de las pruebas: blackbox y/o glassbox, top
down (de arriba hacia abajo) y/o bottom up (de abajo hacia arriba), tipos de test beds (bancos
de prueba) y manejadores de tests que se han utilizado, fuentes de datos del test, suites de
prueba, métrica de cobertura, comprobación en tiempo de compilación frente a sentencias en
tiempo de ejecución, razonamientos sobre su código, etc. Es posible que quiera usar técnicas
distintas (o combinaciones de técnicas) en las diferentes partes del programa. Justifique su
decisión en cada caso.
Explique qué tipo de errores espera encontrar (¡y cuáles no!) con su estrategia. Comente qué
aspectos del diseño dificultaron o facilitaron la validación.
2. Resultados del test: Resumen de qué pruebas se han realizado y cuáles no, si es que queda
alguna: qué módulos se han probado, y si se han probado a fondo. Indique el grado de
confianza del código: ¿Qué tipo de defectos se han eliminado? ¿Cuáles son los que podrían
quedar?
ANALISIS DE SISTEMAS.
CONCEPTOS DEL ANALISIS DE SISTEMAS.
Analista de sistemas. Evalúa en forma sistemática cómo interactúan los usuarios con la tecnología y como
operan las empresas. El analista debe ser capaz de trabajar con personas de todo tipo y tener experiencia en
cuanto al trabajo con computadoras.
Roles del analista.
• Consultor: ya que posee una idea de cómo esta forma la estructura organizacional.
• Experto en soporte: tener experiencia en hardware y software.
• Agente de Cambio: ayuda a cambiar la forma en que se trabaja en la empresa.
PROCESOS DEL CICLO DE VIDA.
•
•
•
•
•
•
•
Identificación de problemas, objetivos y oportunidadesDeterminación de los requerimientos del información del factor humanoAnálisis de las necesidades del sistema.
Diseño del sistema recomendado.
Desarrollo y documentación del software.
Prueba y Mantenimiento.
Implementación y Evaluación del sistema.
Procesos principales
• Adquisición
• Suministro
• Desarrollo
• Explotación
• Mantenimiento.
Procesos de soporte
• Documentación
• Gestión de la configuración.
• Aseguramiento de la calidad.
Procesos de la organización
• Gestión
• Mejora
• Infraestructura
• formación
MODELOS DE PROCESOS.
•
•
•
•
Modelo de cascada
Modelo de prototipos
Modelo incremental
Modelo en espiral.
DESARROLLO DE SOFTWARE ORIENTADO A ASPECTOS, SERVICIOS Y OBJETOS.
•
Desarrollo de software orientado a aspectos.
El enfoque orientado a aspectos define un mecanismo que ayuda a resolver problemas de codificación
en los requisitos, los cuales son un código disperso y diseminado.
Los requerimientos del aspecto definen aquellas preocupaciones globales que tienen algún efecto a
través de la arquitectura del software. El desarrollo de software orientado a aspectos, conocido también
como programación orientada a aspectos (POA), es un paradigma de ingeniería de software
relativamente nuevo que proporciona un proceso y enfoque metodológico para definir, especificar,
diseñar y construir aspectos: “mecanismo ms allá de subrutinas y herencia para localizar la expresión de
una preocupación. Este modo de desarrollo permite que el producto sea reutilizable
•
Desarrollo de software orientado a servicios.
Utilizado para sistemas distribuidos. Usado para las web services, se define la naturaleza del servicio y
no la tecnología utilizada.
•
Desarrollo de software orientado a objetos.
Enfocado a los objetos por lo cual permite una abstracción más compleja de los datos, y además se base
en uml
METODOS ORIENTADOS A OBJETOS.
•
•
•
Dirigidos por los datos
Basado en la parte estructural de los objetos.
Dirigidos por las responsabilidades.
Se centra en las acciones que puede llevar a cabo un objeto.
Dirigidos por los caso de uso.
METODOS
•
OMT
Comprende las fases de análisis y diseño.
a) Análisis
- Modelo de objetos
1- Identificar los objetos y clases.
2- Identificar asociaciones entre objetos.
3- Identificar atributos de objetos y enlaces.
4- Organizar y simplificar las clases de objetos empleado la herencia.
5- Iterar y refinar el modelo.
REUTILIZACION, PATRONES DE DISEÑO, PORTABILIDAD, INTEROPERABILIDAD.
•
•
•
•
Reutilización. Uso de componentes de un producto para facilitar el desarrollo de productos diferentes con
diferentes con diferente funcionalidad.
Puedes ser.
1. Marcos de trabajo.
2. Patrones de arquitectura.
3. Patrones de diseño.
Patrones de diseño, ofrece una solución abstracta a un problema de diseño que aparece muy
frecuentemente, expresada mediante un conjunto de relaciones e interrelaciones entre componente.
Portabilidad. Un producto se considera portable si es significativamente menos costoso adaptarlo a una
nueva plataforma que construirlo desde el principio.
Interoperabilidad. Operación mutua de código abierto de diferentes vendedores, escrito en diferentes
lenguajes y ejecutándose en diferentes plataformas.
EJECUCIÓN DEL PROYECTO Y ADMINISTRACIÓN DEL RIESGO
Preparación
Antes de comenzar con la ejecución de un proyecto, es necesario tomarse el tiempo para desglosar el
proyecto en tareas de manera que se pueda programar la ejecución de estas tareas y determinar los
recursos que deben movilizarse.
Ejecución
Esta es la etapa de desarrollo del trabajo en sí. Esta etapa es responsabilidad del contratista, con la
supervisión del cliente. Durante la ejecución del proyecto, se debe poner énfasis en la comunicación
para tomar decisiones lo más rápido posible en caso de que surjan problemas. Así, es posible acelerar
el proyecto estableciendo un plan de comunicación
Documentación
La documentación debe acompañar al proyecto en la entrega. En ocasiones, esta documentación está
incompleta o desactualizada; sin embargo, es uno de los aspectos esenciales de un proyecto ya que
constituye el punto de referencia del trabajo una vez ejecutado.
Validación
Una vez que el proyecto ha finalizado, es buena idea que el contratista se asegure de haber cumplido
con las especificaciones. El término Pruebas de las unidades se refiere a la validación, por parte del
contratista, de la conformidad del producto en función de cada una de las condiciones especificadas.
Administración del riesgo
La administración de riesgos son los medios a través de los cuales la incertidumbre se maneja de forma
sistemática, para aumentar la probabilidad de lograr los objetivos del proyecto.
Evaluación de Riesgo (se concentra en identificar los riesgos y en qué concentrarse)
•
•
•
Hacer una lista de todos los peligros potenciales que afectarán el proyecto (identificación del
riesgo)
Determinar la probabilidad de las consecuencias de la ocurrencia y de la pérdida del potencial
de cada elemento identificado (cuantificación del riesgo)
Clasificar los elementos (del más al menos peligroso)
Control de Riesgos (hacer algo sobre los riesgos)
•
•
•
Establecer técnicas y estrategias para atenuar los riesgos más altos (planeación del riesgo)
Ejecutar estrategias para resolver los factores de alto riesgo (respuesta del riesgo)
Supervisar de la eficacia de las estrategias y de los niveles de modificación de riesgos a lo largo
del proyecto
La información para determinar riesgo viene de:
•
•
•
•
Descripción del producto. La naturaleza del producto del proyecto tendrá un efecto mayor en
los riesgos identificados. Por ejemplo, los productos que implican tecnología probada, en
igualdad de circunstancias, implicarán menos riesgo que productos, cuáles requieren
innovación o invención.
Documentos/planes del proyecto: Las revisiones del documento de alcance, del plan del
proyecto, del plan de adquisición del personal, etc. pueden revelar riesgos.
Información histórica: Bases de Datos del proyecto, expedientes del proyecto, experiencia del
personal.
Entrevistas del Cliente y/o Usuario, así como de los estudios de viabilidad
Los riesgos asociados al producto del proyecto se describen a menudo en términos de su costo e
impacto en sus calendarios.
Identificación del riesgo
La identificación del riesgo debe considerar riesgos internos y externos. Los riesgos internos son los
elementos que el equipo de proyecto puede controlar o influenciar, por ejemplo asignaciones del
personal. Los riesgos externos van más allá del control o de la influencia del equipo de proyecto, tal
como cambios de mercado o acciones del Gobierno.
Podemos también hablar de riesgo inherente que resultan de la naturaleza de los objetivos y del
alcance o riesgo adquirido que resulta del enfoque, metodologías, herramientas, técnicas, habilidades
y de la experiencia que se aplican al proyecto
Herramientas y técnicas para la identificación del riesgo
1. Checklists. Las listas de comprobación se agrupan típicamente por la fuente del riesgo. Algunas
áreas de aplicación han sido ampliamente utilizadas para la clasificación de las fuentes del
riesgo.
2. Diagramación. La diagramación puede ayudar al equipo de proyecto a entender mejor las
causas y efectos de los riesgos.
3. Entrevistas.- Las entrevistas orientadas a riesgos con varios de los involucrados (personas que
serán impactadas por el proyecto) pueden ayudar a identificar riesgos no identificados durante
actividades normales de la planeación. Los registros de las entrevistas previas al proyecto
deben estar disponibles (por ejemplo, las aplicadas durante el estudio de viabilidad).
Fuentes de Riesgo
Riesgos asociados al Cliente y/o Usuario
•
•
•
•
•
•
Requerimientos (requisitos) confusos / incompletos
Cambios frecuentes a los requerimientos (requisitos) del proyecto durante la ejecución del
mismo
Cliente y/o Usuario que no es eficiente, eficaz o completo en cumplir sus responsabilidades del
proyecto --Cliente y/o Usuario que no está lo suficientemente disponible o que no conoce lo suficiente
para proporcionar información precisa de los requerimientos (requisitos) y /o proceso de
revisión.
Cliente y/o Usuario que no tiene expectativas realistas sobre los resultados del proyecto, locuaz
genera restricciones de alto riesgo.
Restricciones Contractuales como penalizaciones por no lograr fechas límite o penalizaciones de
la terminación.
Riesgos asociados a los calendarios
•
•
Tareas o Hitos (Milestone) faltantes
Duración inexacta de la métrica
•
•
Estimaciones no precisas
Un calendario basado en cantidades exageradas de tiempo extra para todo el equipo.
Riesgos asociados a los recursos
•
•
•
•
•
Roles y/o responsabilidades NO claras
Recursos NO disponibles
Habilidades y/o Conocimientos requeridos NO satisfechos o inadecuados
Equipo faltante o Inadecuado
Rotación del personal
Riesgos asociados a la Experiencia
•
•
•
Nueva Tecnología
Nuevo ambiente de desarrollo
Nuevo Hardware
Riesgos asociados al Proceso de Administración de Proyectos
•
•
•
•
Descomposición de Tareas (WBS) – una descomposición inadecuada falla en identificar todas
las actividades que son parte del proyecto.
Métricas: estimaciones de tiempo y costo- las estimaciones agresivas o las desarrolladas con
información insuficiente tiempo llevan a un riesgo mayor.
Fallas del Flujo de Trabajo: en la entrega, en la autorización de la terminación, no cumplimiento
de fechas límite.
Falla de Aseguramiento de Calidad: proceso con fallas, carencia de la función de aseguramiento
de calidad.
IMPLEMENTACION Y ENTREGA.
•
•
•
•
•
•
Migración de datos.
Capacitación de usuarios.
Puesta en marcho del nuevo software.
Pruebas de usuario.
Recolección y reparación de errores.
Entrega de los documentos.
LÓGICA DE PROGRAMACIÓN Y LENGUAJES DE PROGRAMACIÓN ACTUALES
Un lenguaje de programación es un lenguaje formal diseñado para realizar procesos que pueden ser llevados a
cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de una máquina, para
expresar algoritmos con precisión, o como modo de comunicación humana.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen su estructura y el
significado de sus elementos y expresiones. Al proceso por el cual se escribe, se prueba, se depura, se
compila (de ser necesario) y se mantiene el código fuente de un programa informático se le llama programación.
Programación, es el proceso de diseñar, codificar, depurar y mantener el código fuente de programas
computacionales. El código fuente es escrito en un lenguaje de programación. El propósito de la programación
es crear programas que exhiban un comportamiento deseado. El proceso de escribir código requiere
frecuentemente conocimientos en varias áreas distintas, además del dominio del lenguaje a utilizar, algoritmos
especializados y lógica formal. Programar no involucra necesariamente otras tareas tales como el análisis y
diseño de la aplicación (pero sí el diseño del código), aunque sí suelen estar fusionadas en el desarrollo de
pequeñas aplicaciones
Algoritmos: es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite
realizar una actividad mediante pasos sucesivos que no generen dudas a quien deba realizar dicha actividad.
Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una
solución.
Lenguaje C
El lenguaje C es uno de los lenguajes de programación estructurada más utilizados en nuestros días. Elprincipal
componente estructural de C es la función. En C, las funciones son bloques en los cuales ocurren las actividades
de un programa. Esto nos permite separar los en tareas, lo que nos conduce a la programación modular.
Otra forma de estructurar en C es usando bloques de códigos. Un bloque de código es un grupo de
instrucciones conectadas lógicamente el cual es tratado como una unidad. Un bloque está construido por un
conjunto de instrucciones colocadas entre llaves { }.
•
Es el lenguaje de programación de propósito general asociado al sistema operativo UNIX
•
Es un lenguaje de medio nivel. Trata con objetos básicos como caracteres, números, etc.; también con
bits y direcciones de memoria.
Posee una gran portabilidad
Se utiliza para la programación de sistemas: construcción de intérpretes, compiladores, editores de
texto, etc.
•
•
•
El lenguaje C consta de
o El lenguaje C propiamente dicho: tipos de datos, expresiones y estructuras de control
o Extensiones en forma de macros y un amplio conjunto de librerias predeterminadas
Lenguaje C++.
C++ es un lenguaje imperativo orientado a objetos derivado del C. En realidad un supe conjunto de C, que nació
para añadirle cualidades y características de las que carecía. El resultado es que como su ancestro, sigue muy
ligado al hardware subyacente, manteniendo una considerable potencia para programación a bajo nivel, pero se
la han añadido elementos que le permiten también un estilo de programación con alto nivel de abstracción.
Se añadieron facilidades de programación genérica, que se sumó a los otros dos paradigmas que ya estaban
admitidos (programación estructurada y la programación orientada a objetos). Por esto se suele decir que el C++
es un lenguaje de programación multiparadigma
Lenguaje Java.
Los lenguajes de propósito general, son lenguajes que pueden ser usados para varios propósitos, acceso a bases
de datos, comunicación entre computadoras, comunicación entre dispositivos, captura de datos, cálculos
matemáticos, diseño de imágenes o páginas.
Computación concurrente es la simultaneidad en la ejecución de múltiples tareas interactivas. Estas tareas
pueden ser un conjunto de procesos o hilos de ejecución creados por un único programa. Las tareas se pueden
ejecutar en una sola unidad central de proceso (multiprogramación), en varios procesadores o en una red de
computadores distribuidos.
Programación Orientada a Objetos.
JAVA
Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos que fue diseñado
específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es
permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier
dispositivo (conocido en inglés como WORA, o "write once, run anywhere"), lo que quiere decir que el código
que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012,
uno de los lenguajes de programación más populares en uso, particularmente para aplicaciones de clienteservidor de web
El lenguaje Java se creó con cinco objetivos principales:
1. Debería usar el paradigma de la programación orientada a objetos.
2. Debería permitir la ejecución de un mismo programa en múltiples sistemas operativos.
3. Debería incluir por defecto soporte para trabajo en red.
4. Debería diseñarse para ejecutar código en sistemas remotos de forma segura.
5. Debería ser fácil de usar y tomar lo mejor de otros lenguajes orientados a objetos, como C++.
Operadores y expresiones, estructuras de selección, estructura de control, funciones, arreglo, listas y tablas,
algoritmos de ordenación y búsqueda.
Expresiones y Operadores
•
Expresión
Una expresión es una combinación de variables, operadores y llamadas de métodos construida de acuerdo a
la sintaxis del lenguaje que devuelve un valor.
El tipo de dato del valor regresado por una expresión depende de los elementos usados en la expresión.
•
Operadores
Los operadores son símbolos especiales que por lo común se utilizan en expresiones.
La tabla siguiente muestra los distintos tipos de operadores que utiliza Java.
Operador
Significado
Ejemplo
Operadores aritméticos
+
*
/
%
Suma
Resta
Multiplicación
División
Módulo
a+b
a-b
a*b
a/b
a%b
Operadores de asignación
=
+=
-=
*=
/=
%=
==
!=
<
>
<=
>=
++
Asignación
Suma y asignación
Resta y asignación
Multiplicación y asignación
División y asignación
Módulo y asignación
Operadores relacionales
Igualdad
Distinto
Menor que
Mayor que
Menor o igual que
Mayor o igual que
Operadores especiales
Incremento
a=b
a += b (a=a + b)
a -= b (a=a - b)
a *= b (a=a * b)
a / b (a=a / b)
a % b (a=a % b)
a == b
a != b
a<b
a>b
a <= b
a >= b
a++ (postincremento)
++a (preincremento)
-Decremento
a-- (postdecremento)
--a (predecremento)
(tipo)expr
Cast
a = (int) b
+
Concatenación de cadenas
a = "cad1" + "cad2"
.
Acceso a variables y métodos
a = obj.var1
()
Agrupación de expresiones
a = (a + b) * c
La tabla siguiente muestra la precedencia asignada a los operadores, éstos son listados en orden de precedencia.
Los operadores en la misma fila tienen igual precedencia
Operador
Notas
. [] ()
Los corchetes se utilizan para los arreglos
++ -- ! ~
! es el NOT lógico y ~ es el complemento de bits
new (tipo)expr
new se utiliza para crear instancias de clases
* / %
Multiplicativos
+Aditivos
<< >> >>>
Corrimiento de bits
< > <= >=
Relacionales
== !=
Igualdad
&
AND (entre bits)
^
OR exclusivo (entre bits)
|
OR inclusivo (entre bits)
&&
AND lógico
||
OR lógico
?:
Condicional
= += -= *= /= %= &= ^= |= <<= >>= >>>=
Asignación
Todos los operadores binarios que tienen la misma prioridad (excepto los operadores de asignación) son evaluados de
izquierda a derecha.
Estructuras de selección
En una estructura de selección/decisión, el algoritmo al ser ejecutado toma una decisión, ejecutar o no
ciertas instrucciones si se cumplen o no ciertas condiciones. Las condiciones devuelven un valor,
verdadero o falso, determinado así la secuencia a seguir.
Por lo general los lenguajes de programación disponen de dos estructuras de este tipo: estructura de
decisión simple (if), y estructura de decisión múltiple (CASE, SWITCH).
IF
if (condición)
ejecuta esto si la condición es verdadera
else
ejecuta esto si la condición es falsa
Case - Switch
switch (valor) {
case ‘1’: ejecuta esto si valor es 1
break;
case ‘2’: ejecuta esto si valor es 2
break;
case ‘3’: ejecuta esto si valor es 3
break;
default: ejecuta esto si valor no es ninguno de los anteriores
break;
Estructuras de Control.
En lenguajes de programación, las estructuras de control permiten modificar el flujo de ejecución de
las instrucciones de un programa.
Con las estructuras de control se puede:
•
•
•
•
•
De acuerdo a una condición, ejecutar un grupo u otro de sentencias (If-Then-Else)
De acuerdo al valor de una variable, ejecutar un grupo u otro de sentencias (Select-Case)
Ejecutar un grupo de sentencias mientras se cumpla una condición (Do-While)
Ejecutar un grupo de sentencias hasta que se cumpla una condición (Do-Until)
Ejecutar un grupo de sentencias un número determinado de veces (For-Next)
Funciones
Desde un punto de vista práctico, podemos decir que una función es una parte de un programa (subrutina) con
un nombre, que puede ser invocada (llamada a ejecución) desde otras partes tantas veces como se desee. Un
bloque de código que puede ser ejecutado como una unidad funcional. Opcionalmente puede recibir valores; se
ejecuta y puede devolver un valor. Desde el punto de vista de la organización, podemos decir que una función es
algo que permite un cierto orden en una maraña de algoritmos.
Las declaraciones de funciones generalmente son especificadas por: Un nombre único en el ámbito: Nombre de
la función con el que se identifica y se distingue de otras. No podrá haber otra función ni procedimiento con ese
nombre (salvo sobrecarga o polimorfismo en programación orientada a objetos). Un tipo de dato de retorno:
tipo de dato del valor que la función devolverá al terminar su ejecución. Una lista de parámetros: Especificación
del conjunto de argumentos (pueden ser cero, uno o más) que la función debe recibir para realizar su tarea. El
código u órdenes de procesamiento: conjunto de órdenes y sentencias que debe ejecutar la función.
valor-devuelto nombre-función (lista-de-argumentos) {
sentencias;
// "cuerpo" de la función
}
Arreglos
Arreglo: Es una colección de datos del mismo tipo. Sirve para manejar un número “n” de elementos en común,
ya sea de tipos definidos por el Lenguaje (“int”,”float”,”String”, etc.), así como aquellos definidos por el
programador.
Un arreglo unidimensional es un tipo de datos estructurado que está formado de una colección finita y ordenada
de datos del mismo tipo. Es la estructura natural para modelar listas de elementos iguales. El tipo de acceso a los
arreglos unidimensionales es el acceso directo, es decir, podemos acceder a cualquier elemento del arreglo sin
tener que consultar a elementos anteriores o posteriores, esto mediante el uso de un índice para cada elemento
del arreglo que nos da su posición relativa.
Un arreglo unidimensional tiene una sola dimensión, También reciben el nombre de vectores en álgebra.
Un arreglo se caracteríza por :
1. Almacenar los elementos del arreglo en posiciones de memoria contínua.
2. Tener un único nombre de variable que representa a todos los elementos, y éstos a su vez se diferencian por
un índice o subíndice.
3. Acceso directo o aleatorio a los elementos individuales del arreglo.
Veamos cómo se agruparían estos 3 elementos en un solo arreglo:
private int []x = new int[3];
private int[]x = {1,2,3};
En la primera línea, hemos creado un arreglo vacío de 3 elementos; mientras que en la segunda, creamos un
arreglo de 3 elementos inicializados.
SINTAXIS
Declaración:
[ ] < identificador > ;
Creación:
< identificador > = new [ tamaño ] ;
Listas
Una lista o secuencia es un dato abstracto que representa una secuencia ordenada de valores, donde el mismo valor
puede ocurrir más de una vez. Un caso de una lista es una representación computacional del concepto matemático de
una secuencia finita. Las listas son un ejemplo básico de contenedores, cuando contienen otros valores. Si el mismo
valor se repite varias veces, cada ocurrencia está considerada un elemento distinto.
Una simple estructura de lista enlazada, implementando una lista con 3 elementos enteros.
El concepto lista es también utilizado para varias estructuras de datos que puede soler implementar listas abstractas,
especialmente listas enlazadas.
Una lista enlazada es una de las estructuras de datos fundamentales, y puede ser usada para implementar otras
estructuras de datos. Consiste en una secuencia de nodos, en los que se guardan campos de datos arbitrarios y una o
dos referencias, enlaces o punteros al nodo anterior o posterior. El principal beneficio de las listas enlazadas respecto
a los vectores convencionales es que el orden de los elementos enlazados puede ser diferente al orden de
almacenamiento en la memoria o el disco, permitiendo que el orden de recorrido de la lista sea diferente al de
almacenamiento.
Una lista enlazada es un tipo de dato autoreferenciado porque contienen un puntero o enlace (en inglés link, del
mismo significado) a otro dato del mismo tipo. Las listas enlazadas permiten inserciones y eliminación de nodos en
cualquier punto de la lista en tiempo constante (suponiendo que dicho punto está previamente identificado o
localizado), pero no permiten un acceso aleatorio. Existen diferentes tipos de listas enlazadas: listas enlazadas
simples, listas doblemente enlazadas, listas enlazadas circulares y listas enlazadas doblemente circulares.
Listas enlazadas lineales
Listas simples enlazadas
La lista enlazada básica es la lista enlazada simple la cual tiene un enlace por nodo. Este enlace apunta al siguiente
nodo (o indica que tiene la dirección en memoria del siguiente nodo) en la lista, o al valor NULL o a la lista vacía, si es
el último nodo.
Listas doblemente enlazadas
Un tipo de lista enlazada más sofisticado es la lista doblemente enlazada o lista enlazadas de dos vías. Cada nodo
tiene dos enlaces: uno apunta al nodo anterior, o apunta al valor NULL si es el primer nodo; y otro que apunta al nodo
siguiente, o apunta al valor NULL si es el último nodo.
En algún lenguaje de muy bajo nivel, XOR-Linking ofrece una vía para implementar listas doblemente enlazadas,
usando una sola palabra para ambos enlaces, aunque esta técnica no se suele utilizar.
Listas enlazadas circulares
En una lista enlazada circular, el primer y el último nodo están unidos juntos. Esto se puede hacer tanto para listas
enlazadas simples como para las doblemente enlazadas. Para recorrer una lista enlazada circular podemos empezar
por cualquier nodo y seguir la lista en cualquier dirección hasta que se regrese hasta el nodo original. Desde otro
punto de vista, las listas enlazadas circulares pueden ser vistas como listas sin comienzo ni fin. Este tipo de listas es el
más usado para dirigir buffers para “ingerir” datos, y para visitar todos los nodos de una lista a partir de uno dado.
Una lista enlazada circular que contiene tres valores enteros
Listas enlazadas simples circulares
Cada nodo tiene un enlace, similar al de las listas enlazadas simples, excepto que el siguiente nodo del último apunta
al primero. Como en una lista enlazada simple, los nuevos nodos pueden ser solo eficientemente insertados después
de uno que ya tengamos referenciado. Por esta razón, es usual quedarse con una referencia solamente al último
elemento en una lista enlazada circular simple, esto nos permite rápidas inserciones al principio, y también permite
accesos al primer nodo desde el puntero del último nodo. 1
Listas enlazadas doblemente circulares
En una lista enlazada doblemente circular, cada nodo tiene dos enlaces, similares a los de la lista doblemente
enlazada, excepto que el enlace anterior del primer nodo apunta al último y el enlace siguiente del último nodo,
apunta al primero. Como en una lista doblemente enlazada, las inserciones y eliminaciones pueden ser hechas desde
cualquier punto con acceso a algún nodo cercano. Aunque estructuralmente una lista circular doblemente enlazada
no tiene ni principio ni fin, un puntero de acceso externo puede establecer el nodo apuntado que está en la cabeza o
al nodo cola, y así mantener el orden tan bien como en una lista doblemente enlazada.
Nodos centinelas
A veces las listas enlazadas tienen un nodo centinela (también llamado falso nodo o nodo ficticio) al principio o al final
de la lista, el cual no es usado para guardar datos. Su propósito es simplificar o agilizar algunas operaciones,
asegurando que cualquier nodo tiene otro anterior o posterior, y que toda la lista (incluso alguna que no contenga
datos) siempre tenga un “primer y último” nodo
TABLAS.
Una tabla es una colección de elementos homogéneos (del mismo tipo), especialmente diseñada para el acceso rápido
a la información.
Se puede acceder a cualquier elemento de la tabla a través de un campo clave.
Una tabla de una base de datos es similar en apariencia a una hoja de cálculo, en cuanto a que los datos se almacenan
en filas y columnas. Como consecuencia, normalmente es bastante fácil importar una hoja de cálculo en una tabla de
una base de datos. La principal diferencia entre almacenar los datos en una hoja de cálculo y hacerlo en una base de
datos es la forma de organizarse los datos.
Para lograr la máxima flexibilidad para una base de datos, la información tiene que estar organizada en tablas, para
que no haya redundancias. Por ejemplo, si se almacena información sobre empleados, cada empleado se insertará
una sola vez en una tabla que se configurará para contener únicamente datos de los empleados. Los datos sobre
productos se almacenarán en su propia tabla, y los datos sobre sucursales también tendrán su tabla aparte. Este
proceso se conoce como normalización.
Cada fila de una tabla se denomina registro. En los registros es donde se almacena cada información individual. Cada
registro consta de campos (al menos uno). Los campos corresponden a las columnas de la tabla. Por ejemplo, puede
trabajar con una tabla denominada "Empleados", en la que cada registro (fila) contiene información sobre un
empleado distinto y cada campo (columna) contiene un tipo de información diferente, como el nombre, los apellidos,
la dirección, o similares. Los campos se deben configurar con un determinado tipo de datos, ya sea texto, fecha, hora,
numérico, o cualquier otro tipo.
Otra forma de describir registros y campos es imaginando un catálogo de fichas tradicional de una biblioteca. Cada
ficha del armario corresponde a un registro de la base de datos. Cada información contenida en una ficha (autor,
título, etc.) corresponde a un campo de la base de datos.
Operaciones sobre tablas
• Crear
• Recorrer los elementos
• Insertar un elemento
• Eliminar un elemento
• Buscar un elemento por clave
• Destruir
ALGORITMOS DE ORDENACIÓN Y BUSQUEDA
ORDENACIÓN
La ordenación o clasificación de datos (sort, en inglés) es una operación consistente en disponer un conjunto —
estructura— de datos en algún determinado orden con respecto a uno de los campos de elementos del
conjunto. Una colección de datos (estructura) puede ser almacenada en un archivo, un array (vector o tabla), un
array de registros, una lista enlazada o un árbol. Cuando los datos están almacenados en un array, una lista
enlazada o un árbol, se denomina ordenación interna. Si los datos están almacenados en un archivo, el proceso
de ordenación se llama ordenación externa.
Una lista se dice que está ordenada por la clave k si la lista está en orden ascendente o descendente con
respecto a esta clave.
La lista se dice que está en orden ascendente si: i<= k[j]
y se dice que está en orden descendente si: i>j
implica que k[i] <= k[j] para todos los elementos de la lista.
Los métodos (algoritmos) de ordenación son numerosos, por ello se debe prestar especial atención en su
elección. ¿Cómo se sabe cuál es el mejor algoritmo? La eficiencia es el factor que mide la calidad y rendimiento
de un algoritmo. En el caso de la operación de ordenación, dos criterios se suelen seguir a la hora de decidir qué
algoritmo —de entre los que resuelven la ordenación— es el más eficiente: 1) tiempo menor de ejecución en
computadora; 2) menor número de instrucciones. El mejor criterio para medir la eficiencia de un algoritmo es
aislar una operación específica clave en la ordenación y contar el número de veces que se realiza. Así, en el caso
de los algoritmos de ordenación, se utilizará como medida de su eficiencia el número de comparaciones entre
elementos efectuados. El algoritmo de ordenación A será más eficiente que el B, si requiere menor número de
comparaciones.
Los métodos de ordenación se suelen dividir en dos grandes grupos:
• Directos -burbuja, selección, inserción• Indirectos (avanzados) -Shell, ordenación rápida, ordenación por mezcla, RadixsortEn el caso de listas pequeñas, los métodos directos se muestran eficientes, sobre todo porque los algoritmos son
sencillos; su uso es muy frecuente. Sin embargo, en listas grandes estos métodos se muestran ineficaces y es preciso
recurrir a los métodos avanzados.
BUSQUEDA EN LISTAS
Con mucha frecuencia los programadores trabajan con grandes cantidades de datos almacenados en arrays y
registros, y por ello será necesario determinar si un array contiene un valor que coincida con un cierto valor
clave. El proceso de encontrar un elemento específico de un array se denomina búsqueda. En esta sección se
examinarán dos técnicas de búsqueda: búsqueda lineal o secuencial, la técnica más sencilla, y búsqueda binaria
o dicotómica, la técnica más eficiente.
Búsqueda secuencial
La búsqueda secuencial busca un elemento de una lista utilizando un valor destino llamado clave.
En una búsqueda secuencial (a veces llamada búsqueda lineal), los elementos de una lista o vector se exploran (se
examinan) en secuencia, uno después de otro. La búsqueda secuencial es necesaria, por ejemplo, si se desea
encontrar la persona cuyo número de teléfono es 958-220000 en un directorio o listado telefónico de su ciudad. Los
directorios de teléfonos están organizados alfabéticamente por el nombre del abonado en lugar de por números de
teléfono, de modo que deben explorarse todos los números, uno después de otro, esperando encontrar el número
958-220000. El algoritmo de búsqueda secuencial compara cada elemento del array con la clave de búsqueda.
Dado que el array no está en un orden prefijado, es probable que el elemento a buscar pueda ser el primer elemento,
el último elemento o cualquier otro. De promedio, al menos el programa tendrá que comparar la clave de búsqueda
con la mitad de los elementos del array. El método de búsqueda lineal funcionará bien con arrays pequeños o no
ordenados. La eficiencia de la búsqueda secuencial es pobre, tiene complejidad lineal, O(n).
Búsqueda binaria
La búsqueda secuencial se aplica a cualquier lista. Si la lista está ordenada, la búsqueda binaria proporciona una
técnica de búsqueda mejorada. Una búsqueda binaria típica es la búsqueda de una palabra en un diccionario. Dada la
palabra, se abre el libro cerca del principio, del centro o del final dependiendo de la primera letra del primer apellido
o de la palabra que busca. Se puede tener suerte y acertar con la página correcta; pero, normalmente, no será así y se
mueve el lector a la página anterior o posterior del libro. Por ejemplo, si la palabra comienza con «J» y se está en la
«L» se mueve uno hacia atrás. El proceso continúa hasta que se encuentra la página buscada o hasta que se descubre
que la palabra no está en la lista.
Una idea similar se aplica en la búsqueda en una lista ordenada. Se sitúa la lectura en el centro de la lista y se
comprueba si la clave coincide con el valor del elemento central. Si no se encuentra el valor de la clave, se sigue la
búsqueda uno en la mitad inferior o superior del elemento central de la lista. En general, si los datos de la lista están
ordenados se puede utilizar esa información para acortar el tiempo de búsqueda.
MANEJO DE CADENAS, RECURSIVIDAD, MANEJO DE ARCHIVOS Y REGISTROS.
Recursividad:
En programación, una función es recursiva cuando se llama a sí misma. A continuación un ejemplo para intentar
entender recursividad
Uno de los ejemplos más clásicos es él factorial de un número. Intenta seguir la explicación razonando cada paso.
Para cualquier entero positivo N, el factorial de N (que se expresa como N!) es el producto (multiplicación) de todos
los enteros menor a él.
Es una técnica utilizada en programación que nos permite que un bloque de instrucciones se ejecute un cierto
número de veces (el que nosotros determinemos).
Manejo de archivos y registros.
Esta sección presenta las generalidades relacionadas con archivos antes de empezar a utilizarlos y programarlos. Es
necesario involucrarse con la terminología relacionada como archivo, registro, campo, etc. También es recomendable
conocer las clasificaciones generales y las operaciones fundamentales con archivos.
¿Cómo surge la necesidad de utilizar archivos?
Hasta antes de la materia de Administración de Archivos, muchas de las aplicaciones que los alumnos de ISC han
programado han sido usando la memoria principal o memoria RAM como único medio de almacenamiento (usando
variables, arreglos o estructuras de datos mas emplejas), con el inconveniente que esto representa: la volatilidad de la
memoria RAM; es decir, si se apaga la computadora se pierden los datos. Además, algunas aplicaciones exigen
transportar los datos de una computadora a otra. De ahí surge la necesidad dealmacenar dichos datos de forma
permanente que permita retenerlos en ciertos dispositivos de almacenamiento secundario por un período de tiempo
largo sin necesidad de suministrarles energía, de tal forma que permitan transportarlos y utilizarlos en otro equipo
computacional.
Definiciones de datos, registros y archivos
• Datos: Básicamente se refieren a los testimonios individuales relacionados con hechos, ya sean características de
ciertos objetos de estudio o condiciones particulares de situaciones dadas. Los elementos individuales de los archivos
se llaman datos o campos. Por ejemplo un cheque de un banco tiene los siguientes campos: Cuenta habiente,
Número de cheque, Fecha, Persona a la que se le paga, Monto numérico, Monto con letra, Nota, Identificación del
banco, Número de cuenta y Firma. Cada campo es definido por un tipo de dato.
Registro: Es el conjunto completo de datos relacionados pertenecientes a una entrada. Son estructuras cuyos
componentes pueden ser de diferente tipo. Para declarar un tipo registro se debe incluir el nombre y el tipo de cada
componente del mismo. En C se usa la palabra reservada struct para indicar que el tipo que se está definiendo es un
registro o estructura. P. ejem. Un almacén puede retener los datos de sus productos en registros de acuerdo al
formato mostrado.
Archivo: En términos computacionales es una colección de datos que tiene un nombre y se guardan en dispositivos de
almacenamiento secundario, los cuales pueden ser magnéticos, ópticos, electrónicos, etc. P. ejem. Diskettes, discos
duros, CD´s, ZIP drives, flash drives, memory sticks, etc.
FUNCIONES DE MANEJO DE ARCHIVOS EN LENGUAJE C
Esta sección presenta los aspectos generales de la implementación de programas de archivos en Lenguaje C. Aunque
se puede almacenar cualquier tipo de datos en archivos, aquí se muestran las operaciones del manejo de registros
(struct) en archivos, por lo que las funciones que se mencionan a continuación son las mas importantes para este tipo
de datos.
Declaración del alias del archivo
Para realizar programas de manejo de archivos en Lenguaje C se requiere el encabezado “Standard I/O” y se necesita
incluirlo de la sig. forma:
#include
además es necesario declarar una variable de tipo FILE que opere como el apuntador a la estructura del archivo
(alias), esto se logra con la sig. línea:
FILE *alias;
La función fopen() y modos de apertura de archivos
Se usa la función fopen para abrir un archivo, determinar el modo de apertura y establecer la vía de comunicación
mediante su alias correspondiente. Además determinar el tipo de contenido del archivo (texto o binario). Esta función
tiene dos argumentos: el nombre del archivo y su modo, muestra los modos de apertura de archivos de texto y
binarios.
Los prototipos correspondientes de fopen y fclose son:
FILE * fopen (const char *filename, const char *opentype);
int fclose (FILE *stream);
Cierre de archivos usando fclose() y fcloseall()
Antes de dejar de utilizar un archivo es necesario cerrarlo. Esto se logra mediante las funciones fclose o fcloseall. Si se
usa fclose es necesario indicarle el alias del archivo que se desea cerrar. La función fcloseall cierra
todos los archivos abiertos.
Ejemplo
El siguiente programa abre un archivo que contiene un nombre y cedula de identidad. Luego abre un archivo de salida
y escribe estos datos (pero en orden invertido). El archivo de entrada fue creado con un editor de texto.
Archivo de entrada: entrada.txt
#include
int main(){
char ifilename[] = "entrada.txt";
char ofilename[] = "salida.txt";
char name[30];
int idNum;
FILE *ofp, *ifp; /* Declara apuntadores a archivo */
ifp = fopen(ifilename,"r"); /* Abre archivo de entrada */
fscanf (ifp,"%s %d",name,&idNum); /* Lee datos de entrada */
ofp = fopen(ofilename,"w"); /* Abre archivo de salida */
fprintf(ofp,"%d %s\n",idNum, name); /* Escribe los datos */
fclose(ifp); fclose(ofp); /* Cierra los archivos */
return 0;
}
Archivo de salida: salida.txt
Escritura de registros usando fwrite()
La función fwrite proporciona el mecanism para almacenar todos los campos de un registro en un archivo. Cabe
destacar que al utilizar esta función, se almacena una variable (de tipo struct) que representa un bloque de datos o
campos; es decir, no se almacena campo por campo. Esta función tiene cuatro argumentos: la variable que se desea
grabar, su tamaño en bytes, la cantidad de variables y el alias del archivo donde se desea almacenar
COMUNICACIÓN EXTERNA Y PUERTOS
Los Puertos de Comunicación
Los puertos de comunicación son herramientas que permiten manejar e intercambiar datos entre un computador
(generalmente están integrados en las tarjetas madres) y sus diferentes periféricos, o entre dos computadores.
Puertos PS/2
Estos puertos son en esencia puertos paralelos que se utilizan para conectar pequeños periféricos a la PC. Su nombre
viene dado por las computadoras de modelo PS/2 de IBM, donde fueron utilizados por primera vez.
Características:
Este es un puerto serial, con conectores de tipo Mini DIN, el cual consta por lo general de 6 pines o conectores. La
placa base tiene el conector hembra. En las placas de hoy en día se pueden distinguir el teclado del Mouse por sus
colores, siendo el teclado (por lo general) el de color violeta y el Mouse el de color verde.
Puertos USB (Universal Serial Bus):
Estándar que comenzó en 1995 por Intel, Compaq, Microsoft. En 1997, el USB llegó a ser popular y extenso con el
lanzamiento del chipset de 440LX de Intel.
Es una arquitectura de bus desarrollada por las industrias de computadoras y telecomunicaciones, que permite
instalar periféricos sin tener que abrir la maquina para instalarle hardware, es decir, que basta con conectar dicho
periférico en la parte posterior del computador.
Características:
• Una central USB le permite adjuntar dispositivos periféricos rápidamente, sin necesidad de reiniciar la
computadora ni de volver a configurar el sistema.
• El USB trabaja como interfaz para la transmisión de datos y distribución de energía que ha sido introducido
en el mercado de PCs y periféricos para mejorar las lentas interfases serie y paralelo.
• Los periféricos para puertos USB son reconocidos automáticamente por el computador (y se configuran casi
automáticamente) lo cual evita dolores de cabeza al instalar un nuevo dispositivo en el PC.
• Los puertos USB son capaces de transmitir datos a 12 Mbps.
Puertos Seriales (COM):
Son adaptadores que se utilizan para enviar y recibir información de BIT en BIT fuera del computador a través de un
único cable y de un determinado software de comunicación. Un ordenador o computadora en serie es la que posee
una unidad aritmética sencilla en la cual la suma en serie es un calculo digito a digito
Características:
• Los puertos seriales se identifican típicamente dentro del ambiente de funcionamiento como puertos del
COM (comunicaciones). Por ejemplo, un ratón pudo ser conectado con COM1 y un módem a COM2.
• Los voltajes enviados por los pines pueden ser en 2 estados, encendido o apagado. Encendido (valor binario
de 1) significa que el pin esta transmitiendo una señal entre -3 y -25 voltios, mientras que apagado (valor
binario de 0) quiere decir que esta transmitiendo una señal entre +3 y +25 voltios.
Puertos Paralelos (LPT):
Son conectores utilizados para realizar un enlace entre dos dispositivos; en el sistema lógico se le conoce como LPT. El
primer puerto paralelo LPT1 es normalmente el mismo dispositivo PRN (nombre del dispositivo lógico de la
impresora).
Características:
• Unidireccional - puerto estándar 4-BIT que por defecto de la fábrica no tenía la capacidad de transferir datos
ambas direcciones.
• Bidireccional - puerto estándar 8-BIT que fue lanzado con la qintroducción del puerto PS/2 en 1987 por IBM y
todavía se encuentra en computadoras hoy. El puerto bidireccional es capaz de enviar la entrada 8-bits y la
salida. Hoy en las impresoras de múltiples funciones este puerto se puede referir como uno bidireccional.
• EPP - el puerto paralelo realzado (EPP) fue desarrollado en 1991 por Intel, Xircom y funciona cerca de
velocidad de una tarjeta ISA y puede alcanzar transferencias hasta 1 a 2MB / por segundo de datos
Puertos RJ-11:
Es un conector utilizado por lo general en los sistemas telefónicos y es el que se utiliza para conectar el MODEM a la
línea telefónica de manera que las computadoras puedan tener acceso a Internet.
•
El RJ11 se refiere expresamente al conector de medidas reducidas el cual está al cable telefónico y tiene
cuatro contactos (pines) para cuatro hilos de cable telefónico aunque se suelen usar únicamente dos.
Puertos RJ-45:
Es una interfaz física utilizada comúnmente en las redes de computadoras, sus siglas corresponden a "Registered
Jack" o "Clavija Registrada", que a su vez es parte del código de regulaciones de Estados Unidos.
Características:
• Es utilizada comúnmente con estándares como EIA/TIA-568B, que define la disposición de los pines.
• Para que todos los cables funcionen en cualquier red, se sigue un estándar a la hora de hacer las conexiones.
• Este conector se utiliza en la mayoría de las tarjetas de ethernet (tarjetas de red) y va en los extremos de un
cable UTP nivel 5
Puertos VGA
El puerto VGA es el puerto estandarizado para conexión del monitor a la PC.
Características:
• Su conector es un HD 15, de 15 pines organizados en 3 hileras horizontales.
Puertos RCA
El conector RCA es un tipo de conector eléctrico común en el mercado audiovisual. El nombre "RCA" deriva de la
Radio Corporation of America, que introdujo el diseño en los 1940. Un problema del sistema RCA es que cada señal
necesita su propio cable. Para evitar líos, se usan otros tipos de conectores combinados, como el euroconector
(SCART), presente en la mayoría de televisiones modernas. Además, también se encuentran adaptadores RCA-SCART.
HDMI
La sigla HDMI proviene de ("High Definition Multimedia Interface"), lo que traducido significa interfase multimedia de
alta definición. Es un puerto de forma especial con 19 ó 29 terminales, capaz de transmitir de manera simultánea
videos de alta definición, así como varios cqanales de audio y otros datos de apoyo. Por el hecho de permitir la
transmisión de datos entre un dispositivo externo (periférico), con la computadora, se le denomina puerto.
•
•
•
•
Es una nueva generación de conector, ya que no es dedicado a únicamente el video, sino que combina la
transmisión de audio y otros tipos de datos.
El puerto HDMI se encarga de enviar las señales cifradas desde la computadora hacia la pantalla, ello quiere
decir que de este modo es difícil copiar la señal hacia otro dispositivo con el que se quieran crear copias
ilegales.
Utilizan un formato de datos "PanelLink", denominado TMDS ("Transition Minimized Differential Signaling") ó
señalización con transición diferencial minimizada, la cual no utiliza ningún tipo de compresión.
Se encuentra integrado en las tarjetas aceleradoras de gráficos modernas.
AREA DE REDES Y SISTEMAS OPERATIVOS
EVOLUCIÓN Y TIPOS DE SISTEMAS OPERATIVOS
Evolución
Generación 0: en 1940 lenguaje maquina
Generación Primera: 1945-1955 Sistemas operativos por lotes
Generación Segunda: 1955-1965 por lotes, multiprocesamiento, multiprogramación
Generación Tercera: 1965-1980 Multiprogramación, mayor número de tareas, dispositivos de entrada y salida,
operaciones simultaneas, interfaces gráficas.
Generación Cuarta: 1980-1990: Sistemas Operativos por Red, Sistemas Operativos Distribuidos, Conexiones
Remotas.
PROCESOS, SINCRONIZACIÓN Y COMUNICACIÓN ENTRE PROCESOS.
Problema de la sección critica.
Necesidad de sincronización y comunicación.
• Comunicación: necesidad de transmisión de información entre procesos concurrentes.
• Sincronización: necesidad de que las ejecuciones de los procesos concurrentes se produzcan según una
secuenciación temporal, conocida y establecida entre los propios procesos.
Sección Crítica:
• Cada proceso tiene un segmento de código llamado sección crítica.
• No está permitido que varios procesos estén simultáneamente en su sección critica.
•
Un protocolo rige la forma de entrar y salir de la sección critica.
Para solucionar el problema de la sección crítica se deben cumplir con los tres requisitos:
• Exclusión mutua: es decir solo un proceso ejecuta su sección crítica.
• Progreso: si ningún proceso ejecuta su sección critica, podrá algún proceso hacerlo utilizando un
protocolo que impida la entrada de otros a la vez.
• Espera Limitada: ningún procesos debe esperar tanto para
Semáforos: mecanismo cómodo y efectivo para lograr la sincronización.
Problemas:
• Errores de temporización.
• Es posible que no se consiga la exclusión mutua.
• Nos es hábil para programas grandes.
• Bloqueos mutuos.
Región Crítica: Mecanismo de sincronización de alto nivel.
Este mecanismo declara una variable que se comparte con todos los procesos, pero a la que solo puede acceder
uno. Para acceder se verifica que la RC (Región Critica) este vacía, y si no, los procesos que intentan entrar
tendrán que esperar. Solo se permite la entrada a la RC si sale uno.
Región Crítica Condicional (RCC): similar funcionamiento a la RC, a diferencia de que necesita que la condición
de acceso sea cierta. Si la condición de evaluación es falsa, el proceso abandona la RC y permite el acceso a
otros procesos. Para que el proceso con evaluación falsa ingrese de nuevo debe esperar.
Limitaciones de la RCC:
• Puede aparecer a lo largo de todo el programa.
• No se garantiza la integridad de las estructuras de datos.
• Es difícil implementar eficientemente las RCC.
Monitor: mecanismo de sincronización de alto nivel. Similar al funcionamiento de los semáforos pero más fáciles
de controlar.
Uso de mensajes, es necesario la sincronización.
Interbloqueo.
Problema que afecta a procesos concurrentes que utilizan recursos en un sistema.
Tipos de recursos.
• Recursos reutilizables. Recursos que se usan pero no se agotan, ejemplo, procesador, impresionar.
• Recursos consumibles. Cuando se adquiere un recurso este deja de existir. Ejemplo interrupciones,
señales, mensajes e información en buffers.
Un interbloqueo se da si se cumplen:
• Exclusión mutua.
• Retención y espera.
• No expropiación.
• Espera circular.
Para solventar este problema se utilizan tratamientos como:
• Garantizando que no ocurra nunca en el sistema.
• Detección y recuperación.
• Ignorar el problema. Utilizado por la mayoría de sistemas operativos.
Inanición.
Es cuando un proceso que está en medio de otros nunca llega a acceder a un recurso.
GESTION DE MEMORIA, ARCHIVOS.
La gestión de memoria es una de las funciones de los SO que supone cargar y descargar bloques desde y hacia el
almacenamiento secundario.
Memoria: amplia tabla de datos, cada uno de ellos con su propia dirección.
Los procesos se referencia y estas referencias, en un intervalo de tiempo, se agrupan, en un subconjunto de
espacios de direcciones, llamado localidad.
Es encargada también de tratar de repartir de forma eficiente la memoria para introducir tantos procesos como
sea posible.
Se debe:
• Tener la menor memoria desaprovechada.
• Proporcionar protección y compartición.
• No perjudicar el rendimiento.
Memoria principal
• Almacén de datos de acceso rápido, que son compartidos por la CPU y los dispositivos de E/S.
• Paginación, segmentación,
• Algoritmos de ubicación.
GESTION DE ARCHIVOS.
Archivo. Unidad de almacenamiento lógica (se graba en almacenamiento secundario) que para el usuario no
constituye más que un conjunto de datos relacionados con un nombre asociado.
Operación con archivos.
• Creación
Encontrar el espacio para el en el sistema de archivos, insertar una entrada para el nuevo archivo en el
directorio.
• Eliminación.
• Escritura
• Lectura
• Posicionarse dentro del archivo.
• Truncar un archivo.
Otras operaciones.
• Rename.
SISTEMAS MUILTIPROCESADORES Y DISTRIBUIDOS.
SISTEMAS MULTIPROCESADOR.
•
•
•
•
Sistemas multiprocesador con más de una CPU en comunicación muy cercana.
Sistemas fuertemente acoplados – Los procesadores comparten la memoria y el reloj; la comunicación
por lo general se realiza a través de la memoria compartida.
Multiprocesamiento simétrico (SMP).
a) Cada procesador corre una copia idéntica del SO.
b) Muchos procesos pueden correr a la vez sin deterioro del rendimiento.
Multiprocesamiento asimétrico.
a) A cada procesador se le asigna una tarea específica, el procesador maestro planifica y asigna el
trabajo a los procesadores esclavos.
b) El más común en sistemas muy grandes.
SISTEMAS DISTRIBUIDOS.
•
•
•
•
Distribuye los cálculos entre diferentes procesadores.
Su objetivo principal es compartir recursos y datos entre usuarios.
Sistemas débilmente acoplados – cada procesador tiene su propia memoria local, los procesadores se
comunican entre sí a través de varias líneas de comunicación, tales como buses de alta velocidad o
líneas telefónicas.
Su característica principal es que son controlados por un solo sistema operativo que funciona en torno a
él.
ALGORITMOS E IMPLEMETACIÓN DE SO
La planificación de la CPU tiene que ver con el problema de decidir a cuál de los procesos en la cola de listos se le
asignara a la CPU. Existen varios algoritmos encargados de esto entre los cuales están:
1.
2.
3.
4.
5.
Planificación del primero en llegar, primero en ser atendido.
Primero el trabajo más corto.
Planificación con prioridad.
Planificación round-robin.
Planificación de colas de niveles múltiples.
6. Planificación con colas de niveles múltiples y retroalimentación.
1. PLANIFICACION DEL PRIMERO EN LLEGAR, PRIMER EN SER ATENDIDO. (no apropiativo)
DEFICIENCIAS
El tiempo de espera promedio con esta política es bastante largo.
2. PLANIFICACION DE PRIMERO EL TRABAJO MAS CORTO (apropiativo y no apropiativo)
El algoritmo de primero el trabajo más corto (shortest-job-first, SJF) asocia con cada proceso la longitud de su
siguiente ráfaga de CPU. Cuando la CPU está disponible, se le asigna al proceso que tiene la ráfaga siguiente más
pequeña de CPU. Si 2 procesos tienen la misma longitud de ráfaga se utiliza la planificación FCFS para tomar la
decisión. Esta planificación SJF se emplea con frecuencia en la planificación a largo plazo. Aun cuando el
algoritmo SJF es optimo, no puede implementarse a nivel de la planificación de la CPU a corto plazo. No hay
forma de conocer la longitud de la siguiente ráfaga de CPU. Un enfoque consiste en tratar de aproximar la
planificación SJF. Tal vez no conozcamos la longitud de la siguiente ráfaga de la CPU, pero quizá podemos
predecir su valor a través de las ráfagas anteriores.
Este algoritmo puede ser apropiativo o no apropiativo. La elección surge cuando llega un nuevo proceso a la cola
de listos mientras un proceso previo se está ejecutando. Un algoritmo SJF apropiativo suspenderá al proceso
que actualmente está en ejecución, en tanto que un algoritmo SJF no apropiativo permitirá que dicho proceso
termine su ráfaga de CPU.
3. PLANIFICACION CON PRIORIDAD (apropiativo y no apropiativo)
PROBLEMAS PLANIFICACION CON PRIORIDAD
Un problema importante con este algoritmo de planificación por prioridades es el bloqueo indefinido o
inanición. Un proceso listo para ejecución pero que carece de la CPU puede ser considerado como bloqueado,
esperando por el procesador. Este algoritmo puede dejar a algunos procesos de prioridad baja esperando
indefinidamente por la CPU. (Se ha corrido el rumor que cuando se apago la IBM 7094 del MIT en 1973,
descubrió un proceso de prioridad baja que había sido entregado para su ejecución en 1967 y que todavía no se
había ejecutado).
SOLUCION A LA PLANIFICACION CON PRIORIDAD
Una solución a este problema de bloqueo indefinido en los procesos de prioridad baja es el envejecimiento.
Esta técnica consiste en aumentar gradualmente la prioridad de los procesos que esperan en el sistema durante
mucho tiempo. Por ejemplo se podría hacer que cada 15 minutos se aumentara en 1 la prioridad de un proceso
que está en espera.
4. PLANIFICACION ROUND ROBIN (apropiativo)
También conocido como algoritmo de planificación por turnos o round-robin (RR) esta diseñado especialmente
para sistemas de tiempo compartido. Es similar a FCFS, pero se añade apropiación para conmutar entre
procesos. Aquí se define una pequeña unidad de tiempo denomina quantum, o porción de tiempo. Un quantum
es por lo general de 10 a 100 milisengudos. La cola de procesos listos es tratada como una cola circular. El
planificador de la CPU da vueltas sobre la cola de listos, asignando la CPU a cada proceso durante un intervalo de
tiempo de hasta 1 quantum. Este algoritmo es apropiativo.
Como funciona
Para implementar la planificación RR, se hace una cola fifo de procesos listos. Los procesos nuevos se agregan al
final de la cola de listos. El planificador de la CPU toma el primer proceso de la cola de listos, fija el valor de un
temporizador para interrumpir después de 1 quantum y despacha el proceso.
A continuación sucederá una de 2 cosas. El proceso tal vez tenga una ráfaga de CPU de menos de 1 quantum. En
este caso el proceso mismo liberara a la CPU voluntariamente. En caso contrario, si la ráfaga de CPU del proceso
actualmente está en ejecución es mayor a 1 quantum, el temporizador se apagara y provocara una interrupción
que se comunica al sistema operativo. Se ejecuta un cambio de contexto, y el proceso será puesto al final de la
cola de listos. El planificador de la CPU seleccionara entonces el siguiente proceso de la cola de listos.
PROBLEMAS DE ROUND ROBIN
El principal problema es la selección del quantum. Si el quantum es demasiado pequeño, el trabajo adicional de
planificación en la forma de tiempo de cambio de contexto se vuele excesivo.
5. PLANIFICACION DE COLAS DE NIVELES MULTIPLES
Estos son otra clase de algoritmos que toman en cuenta a procesos de primer plano (interactivos) y procesos de
segundo plano (en lotes). Estos 2 tipos de procesos tienen distintos requerimientos de tiempo de respuesta, y
por lo tanto podrían tener diversas necesidades de planificación.
Un algoritmo de planificación con colas de niveles múltiples divide la cola de listos en varias colas separadas.
Los procesos se asignan de forma permanente a una cola, por lo general con base a una propiedad del proceso,
como el tamaño de la memoria, la prioridad del proceso, o el tipo de proceso. Cada cola tiene su propio
algoritmo de planificación. Por ejemplo la cola de procesos de primer plano se podría planificar mediante un
algoritmo RR, en tanto que los procesos de segundo plano se programarían mediante un algoritmo FCFS.
Además debe de existir planificación entre colas, la cual se implementa comúnmente como una planificación por
prioridad fija apropiativa. Por ejemplo, la cola de procesos de primer plano puede tener una prioridad absoluta
sobre la cola de procesos de segundo plano.
Los tipos de procesos pueden ser
1. Procesos del sistema.
2. Procesos interactivos.
3. Procesos de edición interactivos.
4. Procesos por lotes.
5. Procesos de estudiantes.
Cada cola tiene prioridad absoluta sobre las colas de menor prioridad. Ningun proceso en la cola de lotes, por
ejemplo, podría ejecutarse a menos que estuvieran totalmente vacías las colas de procesos del sistema, de
procesos interactivos y de procesos de edición interactivos. Si un proceso de edición interactivo entrara a la cola
de listos mientras estuviera en ejecución un proceso por lotes, este sería suspendido.
6. PLANIFICACION CON COLAS DE NIVELES MULTIPLES Y RETROALIMENTACION
A diferencia de la planificación anterior esta planificación permite que un proceso se mueva entre colas. La idea
es separar procesos con diferentes características de ráfaga de CPU. Si un proceso emplea demasiado tiempo de
la CPU, será movido a una cola de menor prioridad. Este esquema deja a los procesos limitador por E/S y a los
procesos interactivos en las colas de prioridad alta. De manera similar, un proceso que espera demasiado
tiempo en una cola de prioridad baja puede ser movido a una cola de prioridad alta. Esta forma de
envejecimiento impide la inanición.
SEGURIDAD Y PROTECCIÓN.
El sistema debe cumplir con los siguientes requisitos.
• Confidencialidad.
• Integridad.
• Disponibilidad.
Elementos amenazados.
• Hardware
• Software
• Datos.
• Líneas de comunicación.
Aspectos que se agrupa la seguridad.
• Seguridad en el uso de recursos y servicios: control de acceso.
• Seguridad en el acceso al sistema.
• Seguridad en el uso de redes.
Amenazas a la seguridad en el acceso al sistema
• Intrusos. Hackers, como lo hacen, averiguar contraseña, probar exhaustivamente, descifrar archivo de
contraseñas. Intervenir líneas, usar caballos Troya.
Solución. Creación de contraseñas por ordenador. Inspección activa
• Programas malignos.
a) Necesitan anfitrión.
Forman parte de un programa.
Ejemplo
1. Trampillas. Usado para acceso no autorizado.
2. Bomba lógica. Se ejecuta cuando se cumplen ciertas condiciones.
3. Caballo de Troya. Código incrustado en programa que se ejecuta
b) No necesitan anfitrión
Programas independientes1. Bacterias. Agotar la capacidad del procesador.
2. Gusanos. Causa daños, se propaga en la red.
3. Virus.
Tipos de amenazas.
•
•
Pasivas. Revelación de mensajes.
Activas. Alteración de mensajes, suplantación.
Cifrado de datos. Transforma un mensaje original en otro ilegible.
Seguridad en sistemas operativos.
•
•
Seguridad en Linux.
a) Autentificación de usuarios ante el sistema.
b) Configurable sin modificar la aplicación.
c) Homogénea para todos los servicios.
Seguridad en Windows.
a) Login.
b) Autoridad de cuentas de usuario.
c) Gestor de cuentas de usuario.
d) Monitor de referencia de seguridad.
SISTEMAS OPERATIVOS DE DISPOSITIVOS MOVILES
Capas
1. Kernel
El núcleo o kernel proporciona el acceso a los distintos elementos del hardware del dispositivo. Ofrece distintos
servicios a las superiores como son los controladores o drivers para el hardware, la gestión de procesos, el
sistema de archivos y el acceso y gestión de la memoria.
2. Middleware
El middleware es el conjunto de módulos que hacen posible la propia existencia de aplicaciones para móviles. Es
totalmente transparente para el usuario y ofrece servicios claves como el motor de mensajería y
comunicaciones, códecs multimedia, intérpretes de páginas web, gestión del dispositivo y seguridad.
3. Entorno de ejecución de aplicaciones
El entorno de ejecución de aplicaciones consiste en un gestor de aplicaciones y un conjunto de interfaces
programables abiertas y programables por parte de los desarrolladores para facilitar la creación de software.
4. Interfaz de usuario
Las interfaces de usuario facilitan la interacción con el usuario y el diseño de la presentación visual de la
aplicación. Los servicios que incluye son el de componentes gráficos (botones, pantallas, listas, etc.) y el del
marco de interacción.
Aparte de estas capas también existe una familia de aplicaciones nativas del teléfono que suelen incluir los
menús, el marcador de números de teléfono etc...
SO EN EL MERCADO
1. Android: es sin duda el líder del mercado móvil en sistemas operativos, está basado en Linux,
diseñado originalmente para cámaras fotográficas profesionales, luego fue vendido a Google y
modificado para ser utilizado en dispositivos móviles como los teléfonos inteligentes y luego en
tablets como es el caso del Galaxy Tab de Samsung , actualmente se encuentra en desarrollo para
usarse en netbooks y PCs, el desarrollador de este S.O. es Google, fue anunciado en el 2007 y
liberado en el 2008; además de la creación de la Open Handset Alliance, compuesto por 78
compañías de hardware, software y telecomunicaciones dedicadas al desarrollo de estándares
abiertos para celulares, esto le ha ayudado mucho a Google a masificar el S.O, hasta el punto de
ser usado por empresas como HTC, LG, Samsung, Motorola entre otros.
2. iOS: es el sistema operativo que da vida a dispositivos como el iPhone, el iPad, el iPod Touch o el
Apple TV. Su simplicidad y optimización son sus pilares para que millones de usuarios se decanten
por iOS en lugar de escoger otras plataformas que necesitan un hardware más potente para mover
con fluidez el sistema operativo.
3. Windows Phone: anteriormente llamado Windows Mobile es un S.O. móvil compacto desarrollado
por Microsoft, se basa en el núcleo del sistema operativo Windows CE y cuenta con un conjunto de
aplicaciones básicas, actualmente va por la versión 10.
4. Blackberry OS: es un sistema desarrollado por Research In Motion (RIM) el cual fue presentado en el
WES 2010 junto con un video promocional donde se muestra algunas novedades. RIM apuesta que
su BlackBerry 6 estará enfocado en el mercado corporativo y no-corporativo.
5. Symbian: fue producto de la alianza de varias empresas de telefonía móvil, entre las que se
encuentran Nokia como la más importante, Sony Ericsson, Samsung, Siemens, BenQ, Fujitsu,
Lenovo, LG, Motorola, esta alianza le permitió en un momento dado ser unos de los pioneros y más
usados.
6. Firefox OS: es un sistema operativo móvil, basado en HTML5 con núcleo Linux, de código abierto,
para smartphones y tabletas. Es desarrollado por Mozilla Corporation bajo el apoyo de otras empresas
como Telefónica y una gran comunidad de voluntarios de todo el mundo.
7. Ubuntu Touch: es un sistema operativo móvil basado en Linux. Es desarrollado por Canonical Ltd..
TECNICAS Y PROCESOS DE LA INFORMACION
FUNDAMENTOS DE LA TEORIA DE LA INFORMACION
La teoría de la información, también conocida como teoría matemática de la comunicación (Mathematical
Theory of Communication) o teoría matemática de la información, es una propuesta teórica presentada por
Claude E. Shannon y Warren Weaver a finales de la década de los años 1940. Esta teoría está relacionada con las
leyes matemáticas que rigen la transmisión y el procesamiento de la información y se ocupa de la medición de la
información y de la representación de la misma, así como también de la capacidad de los sistemas de
comunicación para transmitir y procesar información. La Teoría de la Información es una rama de la teoría
matemática y de las ciencias de la computación que estudia la información y todo lo relacionado con ella: canales,
compresión de datos, criptografía y temas relacionados.
Una de las aplicaciones de la teoría de la información son los archivos ZIP, documentos que se comprimen para su
transmisión a través de correo electrónico o como parte de los procedimientos de almacenamiento de datos. La
compresión de los datos hace posible completar la transmisión en menos tiempo. En el extremo receptor, un
software se utiliza para la liberación o descompresión del archivo, restaurando los documentos contenidos en el
archivo ZIP a su formato original. La teoría de la información también entra en uso con otros tipos de archivos;
por ejemplo, los archivos de audio y vídeo que se reproducen en un reproductor de MP3 se comprimen para una
fácil descarga y almacenamiento en el dispositivo. Cuando se accede a los archivos se amplían para que estén
inmediatamente disponibles para su uso.
ALGORITMOS DE CODIFICACION, COMPRESION, DETECCION Y CORRECCION DE ERRORES
Codificación
• Shannon-Fanon
• Huffman-Greedy
Compresión de datos
• Codificación de fuente
• Códigos no-singulares
• Códigos unívocamente decodificables
o Extensión de código
• Códigos prefijo (o códigos instantáneos)
Detección de errores
• Bits de redundancia
o Métodos de control de errores
▪ Paridad
▪ Códigos autochequeo y autocorrectores
▪ Códigos de bloque
▪ Distancia Hamming
▪ Paridad horizontal y vertical
▪ Códigos lineales
▪ Códigos cíclicos
▪ CRC16
▪ CRC32
SEGURIDAD INFORMATICA
3 Pilares de la Seguridad
1. Confidencialidad: Se refiere a proteger la información de ser accedida por personas no autorizadas.
2. Integridad: Se refiere a la autenticidad de la información. Significa que la información no esté alterada y
que la fuente sea genuina.
3. Disponibilidad: Significa que la información siempre esté disponible para todos los usuarios autorizados.
Para cumplir los 3 principios básicos de la seguridad existentes los siguientes servicios de la seguridad
1. Autenticación.
2. Autorización.
3. No Repudio (No negar que yo como usuario hice cierta acción).
4. Auditabilidad (Registro Histórico).
La Autenticación busca asegurar la validez de una identificación proporcionada para acceder a cierta información
proveyendo de medios para verificar la identidad de un sujeto. Esto puede hacerse por medio de lo siguiente:
• Algo que el sujeto es
• Por algo que el sujeto tiene
• Por algo que el sujeto conoce
La Autorización busca asegurarse que las personas solo puedan hacer las cosas que le están permitidas.
El No repudio provee los medios y mecanismos necesarios para identificar quien ha llevado una o varias acciones
en un sistema, para que los usuarios NO PUEDAN NEGAR las responsabilidades de las acciones que han llevado a
cabo.
La Auditabilidad proporciona los mecanismos de detección y recuperación ante posibles fallas o incidentes de la
seguridad, mediante el registro de todos los eventos y acciones hechas en el sistema.
VULNERABILIDADES, AMENAZAS Y ATAQUES
VULNERABILIDAD
Una vulnerabilidad es alguna debilidad de cualquier tipo que compromete la seguridad del sistema. Las
vulnerabilidades pueden surgir por fallos en las siguientes etapas:
•
•
•
Requerimientos.
Diseño.
Implementación.
La principal causa de errores se da en los requerimientos y se da por las siguientes causas:
1. No se hace un análisis de requerimientos.
2. La Especificación de requerimientos no está normalmente bien hecha o definida.
3. Normalmente se dejan fuera del proyecto los requerimientos de seguridad.
AMENAZAS
Es el escenario en que un evento o acción, deliberada o no, compromete la seguridad de un activo. Entre las
amenazas existentes se encuentran:
1.
2.
3.
4.
Interceptación
Modificación.
Interrupción.
Fabricación.
Este tipo de amenazas tratan de violar los 3 pilares básicos de la seguridad.
El Flujo Normal de la información entre un emisor y receptor es el siguiente, en donde se dan los 3 pilares básicos
de la seguridad. Confidencialidad, Disponibilidad e Integridad.
INTERCEPTACION
Cuando se da la amenaza de INTERCEPTACION pasa lo siguiente:
a. Existe una 3er persona que recibe nuestra información, por le regular a esta técnica se le conoce como
hombre en el medio.
b. La Interceptación afecta la Confidencialidad.
MODIFICACION
En la amenaza de MODIFICACIÓN no hay Integridad. La información está alterada, o no es genuina.
INTERRUPCION
En este tipo de Amenazas no existe la disponibilidad. Por Ejemplo Ataques de Denegación de Servicios lo cual
ocasiona la caída de los sistemas.
FABRICACION
Las amenazas también pueden surgir de manera remota a la organización, como de manera local. Existen las
amenazas del entorno las cuales pueden ser físicas u operacionales, y las amenazas remotas.
En las amenazas de entorno físicas u operacionales pueden ser causadas por personas de la misma organización
como usuarios, ex empleados, piratas etc. También las catástrofes naturales son una amenaza incontrolable.
RIESGO
Probabilidad de que algo malo pase. Probabilidad de que un evento se materialice cuando existe una
vulnerabilidad y una amenaza asociada a la misma.
ATAQUES
Un ataque es una acción deliberada en contra de un sistema informático. Su objetivo es violar alguna regla de los
pilares de la seguridad.
1.
2.
3.
4.
5.
Ataques de Penetración.
Denegación de Servicios.
Escaneo de la Red.
Escaneo de Vulnerabilidades.
Sniffers.
Entre las actividades previas para la realización de un ataque se encuentran las siguientes:
Herramientas de Recolección de Información.
a.
b.
c.
d.
Ping.
Traceroute.
nslookup.
Finger
Es un servicio Internet que muestra información sobre un usuario o grupo de usuarios de una máquina conectada a
la Red. Generalmente se usa para saber si una persona determinada tiene cuenta en un sitio determinado de
Internet, ya que muestra información acerca de un usuario, o de todos los usuarios, que han iniciado una sesión en
el sistema local o en un sistema remoto.
Normalmente muestra el nombre completo, la última vez que se conectó el usuario, el tiempo de inactividad, la línea
del terminal y la ubicación del terminal (cuando sea aplicable). Por defecto utiliza el puerto 79.
e. Escaneo de Puertos
Sirve para identificar los servicios que ofrecen los sistemas de destino y luego se pueden buscar las
vulnerabilidades asociadas a los puertos abiertos.
Entre las técnicas más conocidas están:
1. TCP connect-scan: Hace una conexión completa.
2. TCP SYN scan: Solo se envían paquetes de Sincronización SYN,
a. Si ningún servicio escucha en el puerto se recibe un RST-ACK.
b. Si se recibe un SYN-ACK el puerto está abierto, y luego se envía un RST-ACK para cerrar la
conexión y asi el sistema no registra la conexión.
3. TCP Fin scan: Se envía un paquete FIN, se debería recibir un RST
4. Escaneo de Puertos UDP:
a. Envió de Datagramas a puertos, si el puerto está cerrado, se recibe un mensaje ICMP*
(port Unreachable).
Listado de Posibles Ataques
a. Escuchas en la Red(Sniffers por ejemplo WireShark, TcpDump, Afecta la Confidencialidad)
Su principal objetivo es interceptar información que circula en la red. Se les conoce normalmente a esta
técnica como sniffing. Existen 2 formas de sniffing entre las cuales están.
o Eavesdropping (Escuchar secretamente): Es una forma pasiva sin modificar la información.
o Snooping: Almacena la información capturada en el ordenador del atacante.
Normalmente para hacer este tipo de ataques se pone la tarjeta de red en modo promiscuo.
b. Suplantación de ARP (Interceptación y Posible Modificación,
Afecta la Confidencialidad y la integridad).
Afecta al protocolo ARP. Existen un intermediario que se hace
pasar por otra persona. A esta técnica se le conoce como Man
in the Middle.
Posibles soluciones a este problema son:
o Dynamic ARP inspection de Cisco.
o
ARPON: Arpón es un demonio de red basada en el sistema de ARP
subyacente de gestión que ofrece el kernel que puede correr.
Basically, ArpON uses custom criteria/policies to make secure the ARP protocol, and these criteria/policies are realized through the
DARPI and SARPI protocols. Básicamente, Arpon utiliza criterios personalizados o políticas para asegurar el protocolo ARP, y estos
criterios y políticas se realizan a través de la DARPI y protocolos de Sarpi.
o
Uso de tablas MAC Estaticas.
c. Ataque de Fragmentación IP
La Fragmentación es necesaria debido a los diferentes MTU de las distintas redes.
Nota: MTU significa La unidad máxima de transferencia (Maximum Transfer Unit - MTU) es un término
de redes de computadoras que expresa el tamaño en bytes de la unidad de datos más grande que puede
enviarse usando un Protocolo de Internet.
Cuando la capa IP obtiene un datagrama para enviar, si el tamaño del datagrama es más grande que la
MTU por esta capa, la capa IP divide el datagrama disponible en varios datagramas más pequeños. Este
proceso es denotado como fragmentación. La fragmentación puede tener lugar en el emisor inicial o en
los routers que están entre el emisor y el receptor.
Si un datagrama es fragmentado, no será ensamblado (desfragmentado) de nuevo hasta llegar al receptor.
(Excepción: Un reassembly de Cortafuegos intercalados antes de transmitir los datos) Si es necesario, un
paquete ya fragmentado puede ser fragmentado otra vez (por ejemplo durante un cambio de método de
transmisión).
Entonces esta fragmentación puede aprovecharse para burlar las técnicas básicas de inspección de
datagramas Ip. Debido a que algunos dispositivos intermedios no implementan reensamblaje de
datagramas Ip cuando se han fragmentado, por lo tanto no pueden analizar bien el contenido del paquete.
Para Saber cuál es el PMTU ¿Path MTU? Se envía un datagrama con la bandera DON’T FRAGMENT. Donde
el paquete sobrepase el MTU del router y devolverá un mensaje ICMP de error con el MTU.
d. Denegación de Servicio (Afecta la Disponibilidad, Interrupción)
Interrumpir un recurso o servicio para su uso a un usuario legitimo. Puede darse por un ataque interno o
externo.
Ejemplo:
Interno --> Borrar Archivos del Sistema.
Externo --> Ataques por paquete ICMP desde fuera de la organización.
El objetivo de este ataque es sobrepasar los límites de capacidad de servicio. Un ejemplo de esto es lo
siguiente:
Imagínate que estás en un Bar junto a un amigo, bebiendo unas cervezas, aparte de ti y tu amigo hay dos personas más, un empleado público con
su amante. La persona que atiende el Bar es un tipo fortachón llamado Hugo. De pronto tú y tu amigo quieren más cerveza, y llaman a Hugo, les
sirven otra corrida, al mismo tiempo el empleado fiscal y su amante también piden otra corrida de cervezas heladas.
Todo sigue tranquilo, cada 15 minutos aproximadamente llega una persona más al Bar y Hugo le sirve una cerveza. ¡De pronto!, aumenta la
frecuencia de clientes al Bar, ya no son los 4 iniciales, ahora son 15. Hugo comienza a transpirar por tanta demanda. A poco andar, la cantidad se
duplica y en el Bar sólo se escucha: "Hugo…otra corrida", “Hugo…por acá por favor", "Más Hugo", "Hugo", "Hugo por favor","che flaco” (ese era
argentino).
Hugo comienza a sentirse apremiado de tanta solicitud de cerveza pero atiende sin mayores problemas. El Bar tiene a esas alturas 55 personas.
¡De pronto!… llega todo un equipo de fútbol amateur a celebrar la obtención del campeonato y la misma canción: "Hugo", "hey hugo, por acá",
"hugo", "hey amigo", "hugooooo", "huguitoooo".
Ahora sí, Hugo comienza a dar signos de colapso. De pronto llega otro equipo más (el que perdió el campeonato) y luego los árbitros y luego todo
el público que había en el estadio. Resultado: Hugo colapsado, ahora yace desmayado en una esquina del Bar, ya no puede atender a tanta gente.
En eso, tú pides una cerveza pero el pobre Hugo no responde, a ti se te ha denegado el servicio a la cerveza.
Hugo→ El Servidor, las 55 personas del bar → los usuarios. Los árbitros, los equipos de fúlbol y el público → falsos usuarios. Hubo alguien, mal
intencionado por cierto, que envío a toda esa gente (falsos usuarios) al Bar de Hugo, sabiendo que no sería capaz, éste despreciable personaje es
el atacante del Bar de Hugo, es decir, un Hacker o varios de ellos.
Este tipo de Hacker tiene bastante mala fama entre sus pares, ya que es la forma más simple de echar abajo un servidor. Ahora bien, los ataques
de denegación pueden ser enviados desde un PC o por varios, pero también existe la posibilidad de que potentes servidores actúen de la misma
forma, a esto se le llama un ataques distribuidos. Estos servidores se les llaman zombies, ya que actúan a la orden del Hacker, el cual con antelación
intervino aquella máquina sin que el administrador se diera cuenta por supuesto.
Existen Diferentes Tipos de ataques de denegación de servicio entre estos están.
o Flooding: Inundación de paquetes hacia una red. Ataque masivo de paquetes, estos pueden ser
Ip, ICMP, TCP, Udp.
o Ip Spoofing: Enviar Datagramas Ip con direcciones falsas.
o Smurf: Es un ataque de denegación de servicio que utiliza mensajes de ping al broadcast con
spoofing para inundar (flood) un objetivo (sistema atacado).
o Tcp Syn Flood: Envió masivo de paquetes de establecimiento de conexión.
▪ Envió de varios paquetes con SYn.
▪ El destino contestara con un SYN-ACK.
▪ El atacante nunca responderá el ACK para completar el 3-way handshake.
▪ El buffer de la víctima se llena y ya no puede atender más peticiones.
o
o
o
Connection Flood: El atacante si establece la conexión.
▪ El Objetivo es mantener las conexiones abiertas y consumir recursos del servidor para que
los usuarios validos no utilicen el servicio.
TearDrop: Creacion de Paquetes Ip Incorrectamente fragmentados para confundir al sistema
destino y hacerlo colapsar. Los sistemas más modernos ya no son vulnerables a este tipo de
ataques.
Ping of the death: Es de lo más conocidos, se envía un mensaje ICMP con una longitud máxima
que sobrepasa lo establecido.
e. Ataques Distribuidos: un grupo de sistemas bajo el control del
atacante cooperan para atacar un objetivo
f.
Ataques de Programas Inseguros: Errores en programas como
los buffers Overflows, condiciones de carrera. Un ataque de tipo
Buffer Overflow es corromper la fila de ejecución de un
programa para modificar el valor de retorno de una llamada a
función y provocar ejecución de código arbitrario.
g. Ataques Password Cracker
Entre estos ataques se encuentran los siguientes:
1. Guessing (Tratar de Adivinar Passwords).
2. Ataques de Diccionario.
3. Ataques de fuerza Bruta.
h. Ataques de Sql (SQL Injection)
Mejor conocido como SQL Injection el cual significa insertar SQL dentro de una consulta o comando SQL
previamente establecido, con el objetivo de manipular de una forma el sistema.
i.
Ataques de Ingeniería Social (Phishing,Pretexting)
Su principal objetivo es obtener información a través de usuarios legítimos. Estas técnicas han surgido
debido a que en la actualidad los usuarios han mejorado mucho en la parte de la tecnología.
Entre los principales ataques de la Ingeniería Social se encuentran:
1. Phishing: Es una técnica en la cual las víctimas son engañadas por medio de un email o algún otro
tipo de técnica, la cual los invita a ir a una página que no es la genuina aunque tiene el mismo
look de la original, con el principal objetivo de robar información.
2. Pretexting: Llamar a alguien por teléfono para obtener información bajo un falso pretexto.
j.
Ataques Sistemas DNS
Este tipo de ataque es una amenaza a la confidencialidad, debido a que un DNS es comprometido un
atacante puede realizar un ataque Man in the Middle. Si un servidor ofrece otro servicio adicional al DNS
y el servidor es comprometido, todo el tráfico que pasa por el servidor puede ser visto por el atacante.
También este tipo de ataques es una amenaza a la integridad, debido a que el atacante puede realizar las
siguientes acciones:
1. Alteración de los registros.
2. Redirección Web.
3. Redirección Ecommerce.
También este tipo de ataque es una amenaza a la disponibilidad si el servicio DNs es comprometido. Por
ejemplo se pueden dar los siguientes casos,
1. No se pueden enviar correos a las empresas.
2. No se puede acceder a sus páginas.
3. No se puede redireccionar.
4. Eliminación de Registros Mx, AX.
k. Ataques SMTP
Se pueden dar los siguientes Ataques:
1. Harvesting Attacks: Los ataques de recolección del directorio ocurren cuando un spammer utiliza
direcciones de correo conocidas para generar otras direcciones de correo válidas de servidores de
correo empresariales o de ISPs. Esta técnica permite al spammer enviar correo a direcciones
generadas aleatoriamente. Algunas de estas direcciones de correo son usuarios reales de la
organización, sin embargo muchas de ellas son direcciones falsas que inundan el servidor de
correo de la víctima.
2. Spam.
TEORIA DE REDES Y CONECTIVIDAD
FUNDAMENTOS Y DEFINICIONES GENERALES DE REDES
Red. Cuando dos o más dispositivos conectados por un medio de transmisión y coordinados por uno o más
protocolos comparten información y recursos.
Protocolos: conjunto de reglas que deben seguir los involucrados en una conversación.
TCP/IP: es un conjunto de protocolos encaminados que pueden ejecutarse en distintas plataformas de software
(Windows, UNIX, etc.).
Protocolo IP: es un protocolo no orientado a conexión usado tanto por el origen como por el destino para la
comunicación de datos a través de una red de paquetes conmutados.
Dirección IP: es un número que identifica de manera lógica y jerárquicamente a una interfaz de un dispositivo
(habitualmente una computadora) dentro de una red que utilice el protocolo de internet.
DHCP: (Dynamic Host Configuration Protocol): es un protocolo de red que permite a los nodos de una red IP
obtener sus parámetros de configuración automáticamente. Se trata de un protocolo de tipo cliente/servidor en
el que generalmente un servidor posee una lista de direcciones IP dinámicas y las va asignando a los clientes
conforme estas van estando libres, sabiendo en todo momento quien ha estado en posesión de esa IP, cuanto
tiempo la ha tenido y a quien se la ha asignado antes.
Puertos: es un numero de 16 bits, empleado por un protocolo host a host para identificar a que protocolo del
nivel superior o programas de aplicación se deben entregar los mensajes recibidos.
Zócalos: es un tipo especial de descriptor de ficheros que un proceso usa para solicitar servicios de red al
sistema operativo.
Dominios. Es la parte principal de una dirección en la web que indica la organización o compañía que administra
dicha página
Subnetting: división de redes en subredes.
Dirección de red: es una manera estándar de hacer referencia a una red.
Dirección de broadcast: dirección especial para cada red que permite la comunicación a todos los host de esa
red.
TIPOS DE REDES
LAN significa Red de área local. Es un conjunto de equipos que pertenecen a la misma organización y están
conectados dentro de un área geográfica pequeña mediante una red, generalmente con la misma tecnología (la
más utilizada es Ethernet).
Una red de área local es una red en su versión más simple. La velocidad de transferencia de datos en una red de
área local puede alcanzar hasta 10 Mbps (por ejemplo, en una red Ethernet) y 1 Gbps (por ejemplo,
en FDDI o Gigabit Ethernet). Una red de área local puede contener 100, o incluso 1000, usuarios.
Al extender la definición de una LAN con los servicios que proporciona, se pueden definir dos modos operativos
diferentes:
•
En una red "de igual a igual", la comunicación se lleva a cabo de un equipo a otro sin un equipo central y
cada equipo tiene la misma función.
•
En un entorno "cliente/servidor", un equipo central brinda servicios de red para los usuarios.
MAN (Red de área metropolitana) conecta diversas LAN cercanas geográficamente (en un área de alrededor de
cincuenta kilómetros) entre sí a alta velocidad. Por lo tanto, una MAN permite que dos nodos remotos se
comuniquen como si fueran parte de la misma red de área local.
Una MAN está compuesta por conmutadores o routers conectados entre sí mediante conexiones de alta
velocidad (generalmente cables de fibra óptica).
WAN Una WAN (Red de área extensa) conecta múltiples LAN entre sí a través de grandes distancias geográficas.
La velocidad disponible en una WAN varía según el costo de las conexiones (que aumenta con la distancia) y
puede ser baja.
Las WAN funcionan con routers, que pueden "elegir" la ruta más apropiada para que los datos lleguen a un nodo
de la red.
La WAN más conocida es Internet.
MEDIOS DE TRANSMISIÓN DE DATOS
•
•
•
•
•
UTP
STP
CABLE COAXIAL
FIBRA OPTICA
ONDAS DE RADIO
•
COMUNICACIÓN SATELITAL
PROTOCOLOS
ARP (del inglés Address Resolution Protocol o, en español, Protocolo de resolución de direcciones) es
un protocolo de la capa de enlace de datos responsable de encontrar la dirección hardware (Ethernet MAC) que
corresponde a una determinada dirección IP. Para ello se envía un paquete (ARP request) a la dirección de
difusión de la red (broadcast (MAC = FF FF FF FF FF FF)) que contiene la dirección IP por la que se pregunta, y se
espera a que esa máquina (u otra) responda (ARP reply) con la dirección Ethernet que le corresponde. Cada
máquina mantiene una caché con las direcciones traducidas para reducir el retardo y la carga. ARP permite a la
dirección de Internet ser independiente de la dirección Ethernet, pero esto sólo funciona si todas las máquinas
lo soportan.
Ethernet (pronunciado /ˈiːθərnɛt/ en inglés) es un estándar de redes de área local para computadores con
acceso al medio por detección de la onda portadora y con detección de colisiones (CSMA/CD). Su nombre viene
del concepto físico de ether. Ethernet define las características de cableado y señalización de nivel físico y los
formatos de tramas de datos del nivel de enlace de datos del modelo OSI.
Internet Protocol (en español 'Protocolo de Internet') o IP es un protocolo de comunicación de datos digitales
clasificado funcionalmente en la Capa de Red según el modelo internacional OSI.
Su función principal es el uso bidireccional en origen o destino de comunicación para transmitir datos
mediante un protocolo no orientado a conexión que transfiere paquetes conmutados a través de distintas redes
físicas previamente enlazadas según la norma OSI de enlace de datos.
Transmission Control Protocol (en español 'Protocolo de Control de Transmisión') o TCP, es uno de los
protocolos fundamentales en Internet. Fue creado entre los años 1973 y 1974 por Vint Cerf y Robert Kahn.
Muchos programas dentro de una red de datos compuesta por computadoras, pueden usar TCP para
crear conexiones entre sí a través de las cuales puede enviarse un flujo de datos. El protocolo garantiza que los
datos serán entregados en su destino sin errores y en el mismo orden en que se transmitieron. También
proporciona un mecanismo para distinguir distintas aplicaciones dentro de una misma máquina, a través del
concepto de puerto.
TCP da soporte a muchas de las aplicaciones más populares de Internet (navegadores, intercambio de ficheros,
clientes FTP, etc.) y protocolos de aplicación HTTP, SMTP, SSH y FTP.
Hypertext Transfer Protocol o HTTP (en español protocolo de transferencia de hipertexto) es el protocolo usado
en cada transacción de la World Wide Web. HTTP fue desarrollado por el World Wide Web Consortium y
la Internet Engineering Task Force, colaboración que culminó en 1999 con la publicación de una serie de RFC, el
más importante de ellos es el RFC 2616que especifica la versión 1.1. HTTP define la sintaxis y la semántica que
utilizan los elementos de software de la arquitectura web (clientes, servidores, proxies) para comunicarse. Es un
protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor. Al
cliente que efectúa la petición (un navegador web o un spider) se lo conoce como "user agent" (agente del
usuario). A la información transmitida se la llama recurso y se la identifica mediante un localizador uniforme de
recursos (URL). Los recursos pueden ser archivos, el resultado de la ejecución de un programa, una consulta a
una base de datos, la traducción automática de un documento, etc.
CABLEADO ESTRUCTURADO
Consiste en el tendido de cables de par trenzado UTP/STP en el interior de un edificio con el propósito de
implantar una red de área local. Suele tratarse de cable de par trenzado de cobre, para redes de tipo IEEE 802.3.
No obstante, también puede tratarse de fibra óptica o cable coaxial.
HORIZONTAL La norma EIA/TIA 568A define el cableado horizontal de la siguiente forma: El sistema de cableado
horizontal es la porción del sistema de cableado de telecomunicaciones que se extiende del área de trabajo al
cuarto de telecomunicaciones o viceversa. El cableado horizontal consiste de dos elementos básicos:
•
Rutas y Espacios Horizontales (también llamado "sistemas de distribución horizontal"). Las rutas y espacios
horizontales son utilizados para distribuir y soportar cable horizontal y conectar hardware entre la salida del
área de trabajo y el cuarto de telecomunicaciones. Estas rutas y espacios son los "contenedores" del
cableado Horizontal.
El cableado horizontal incluye:
•
Las salidas (cajas/placas/conectores) de telecomunicaciones en el área de trabajo (work area outlets
(WAO), en inglés).
•
Cables y conectores de transición instalados entre las salidas del área de trabajo y el cuarto de
telecomunicaciones.
•
Paneles de empalme (patch panels) y cables de empalme utilizados para configurar las conexiones de
cableado horizontal en el cuarto de telecomunicaciones.
Se deben hacer ciertas consideraciones a la hora de seleccionar el cableado horizontal: contiene la mayor
cantidad de cables individuales en el edificio.
VERTICAL El sistema de cableado vertical proporciona interconexiones entre cuartos de entrada de servicios de
edificio, cuartos de equipo y cuartos de telecomunicaciones. El cableado del backbone incluye la conexión
vertical entre pisos en edificios de varios pisos. El cableado del backbone incluye medios de transmisión (cable),
puntos principales e intermedios de conexión cruzada y terminaciones mecánicas. El cableado vertical realiza la
interconexión entre los diferentes gabinetes de telecomunicaciones y entre estos y la sala de equipamiento. En
este componente del sistema de cableado ya no resulta económico mantener la estructura general utilizada en
el cableado horizontal, sino que es conveniente realizar instalaciones independientes para la telefonía y datos.
Esto se ve reforzado por el hecho de que, si fuera necesario sustituir el backbone, ello se realiza con un coste
relativamente bajo, y causando muy pocas molestias a los ocupantes del edificio. El backbone telefónico se
realiza habitualmente con cable telefónico multipar. Para definir elbackbone de datos es necesario tener en
cuenta cuál será la disposición física del equipamiento. Normalmente, el tendido físico del backbone se realiza
en forma de estrella, es decir, se interconectan los gabinetes con uno que se define como centro de la estrella,
en donde se ubica el equipamiento electrónico más complejo.
El backbone de datos se puede implementar con cables UTP y/o con fibra óptica. En el caso de decidir utilizar
UTP, el mismo será de categoría 5e, 6 o 6A y se dispondrá un número de cables desde cada gabinete al gabinete
seleccionado como centro de estrella.
MODELOS POR CAPAS, MODELO OSI Y TCP/IP
MODELO OSI
Se divide en 7 capas el proceso de trasmisión de la información entre equipos informáticos, donde cada capa se
encarga de ejecutar una determinada parte del proceso global.
•
•
•
•
•
•
•
Capa de aplicación.
Proporciona la interfaz y servicios que soportan las aplicaciones de usuario. También se encarga de ofrecer
acceso general a la red. Esta capa suministra herramientas que el usuario, de hecho ve. Utiliza los protocolos,
SMTP, telnet, ftp, http.
Capa de presentación.
Considerado el traductor del modelo OSI, convierte los paquetes de la capa de aplicación a un formato
genérico para que pueda ser leído por todas las computadoras.
Capa de sesión.
Encargada de iniciar y finalizar la comunicación o sesión entre las computadoras emisora y receptora.
Capa de transporte.
Controla el flujo de datos, entre los nodos que establecen una comunicación; los datos no solo deben
entregarse sin errores, sino además en la secuencia que proceda. Los protocolos que trabajan en esta capa
son los TCP y UDP.
Capa de red.
Encamina los paquetes además de ocuparse de entregarlos. La determinación de la ruta que deben seguir los
datos se produce en esta capa, lo mismo que el intercambio efectivo de los mismos dentro de dicha ruta. Los
routers operan en esta capa.
Capa de enlace.
Cuando los paquetes de datos llegan a la capa de enlace de datos, estas pasan a ubicarse en tramas (unidades
de datos, que viene definidas por la arquitectura de red que se esta utilizando.
Capa física.
Las tramas se convierten en una secuencia única de bits que puede trasmitirse por el entorno físico de la red.
La capa física también determina los aspectos físicos sobre la forma en que el cableado está enganchado a la
NIC de la computadora.
MODELO TCP/IP.
Basado en los protocolos TCP e IP los cuales permiten poder encaminar la información de una manera segura hacia el
destino asignado.
•
•
•
•
•
Capa física.
Relacionado con la trasmisión de bits en forma física, ya sea electricidad, luz, ondas electromagnéticas, etc.
En esta capa se maneja los voltajes necesarios para la transmisión o le tiempo que será utilizado para
representar un bit.
Capa de enlace de datos.
Su función principal es tomar un medio de transmisión en bruto y transformarlo en una línea que parezca
libre de errores de transmisión no detectados a la capa de red. La función la cumple debido a que divide los
datos de entrada en marcos de datos. Identificador la dirección MAC (20:57:10:2A:7E:32)
Capa de red.
Contrala el funcionamiento de la subred. Resuelve los problemas de rutas en redes heterogéneas.
Identificador la dirección IP (192.168.1.7)
Capa de transporte. Identificador los puertos (:80)
Capa de Aplicación. Identificador los dominios (www.pagina.com)
IMPLEMENTACION FUNCIONAL DE SERVICIOS DE RED
Servido de correos: Gestiona el envío y recepción de correo de un grupo de usuarios (el servidor no necesita ser
muy potente). El servidor solo debe utilizar un protocolo de correo.
Servidor de impresoras: Gestionan las solicitudes de impresión de los clientes. El cliente envía la solicitud de
impresión, el servidor recibe la solicitud y la ubica en la cola de impresión, ordena a la impresora que lleve a cabo
las operaciones y luego avisa a la computadora cliente que ya acabo su respectiva impresión.
Servicio de directorio: Active Directory De forma sencilla se puede decir que es un servicio establecido en uno o
varios servidores en donde se crean objetos tales como usuarios, equipos o grupos, con el objetivo de administrar
los inicios de sesión en los equipos conectados a la red, así como también la administración de políticas en toda
la red.
Su estructura jerárquica permite mantener una serie de objetos relacionados con componentes de una red, como
usuarios, grupos de usuarios, permisos y asignación de recursos y políticas de acceso.
WDS: Servidor de instalación remota
WSUS: Servidor de actualizaciones para los clientes
Servidor web: IIS Este servicio convierte a una PC en un servidor web para Internet o una intranet, es decir que
en las computadoras que tienen este servicio instalado se pueden publicar páginas web tanto local como
remotamente.
DNS: es un sistema de nomenclatura jerárquica para computadoras, servicios o cualquier recurso conectado
a Internet o a una red privada. Este sistema asocia información variada con nombres de dominios asignado a cada
uno de los participantes. Su función más importante, es traducir (resolver) nombres inteligibles para las personas
en identificadores binarios asociados con los equipos conectados a la red, esto con el propósito de poder localizar
y direccionar estos equipos mundialmente.
DHCP: es un protocolo de red que permite a los clientes de una red IP obtener sus parámetros de configuración
automáticamente. Se trata de un protocolo de tipo cliente/servidor en el que generalmente un servidor posee
una lista de direcciones IP dinámicas y las va asignando a los clientes conforme éstas van quedando libres,
sabiendo en todo momento quién ha estado en posesión de esa IP, cuánto tiempo la ha tenido y a quién se la ha
asignado después.
FTP servidor de archivos: Proporciona archivos para clientes. Si los archivos no fueran tan grandes y los usuarios
que comparten esos archivos no fueran muchos, esto sería una gran opción de almacenamiento y procesamiento
de archivos. El cliente solicita los archivos y el servidor los ubica y se los envía.
HARDWARE Y SOFTWARE DE REDES.
SERVIDORES.
Servidor: es una aplicación en ejecución (software) capaz de atender las peticiones de un cliente y devolverle una
respuesta en concordancia.
En el sentido del hardware el servidor es el equipo dedica para realizar varias funciones, su uso se debe a que nos
brinda mayor seguridad, y también que permite poder tener varios aplicaciones como el servidor web, servidor de
archivos, etc.
ESTACIONES DE TRABAJO.
Son equipos dedicados a ser clientes dentro de un sistema de redes, las estaciones de trabajo permite el acceso a los
servidores y periféricos de una red.
IMPRESORAS DE RED.
Son aquellas impresoras que pueden ser utilizadas por cualquier cliente dentro de un sistema de red, para su
administración se utiliza un servidores de impresoras (en este caso el sistema operativos es de tipo server), para por
ser usada, su uso presenta ventajas como la de utilizar solo una por varios lo cual presenta un ahorro económico,
aunque la desventaja seria que si hay alguien que imprime demasiado, crear una cola lo cual desperdiciaría tiempo.
INTERFACES DE CONEXIÓN DE RED.
La tarjeta de red también conocida como placa de red es el periférico que actúa de interfaz de conexión entre
aparatos o dispositivos y también posibilita compartir recursos entre dos o más computadoras
Esta contiene un número de 48 bits el cual es llamado dirección Mac, la cual es única.
CONCENTRADORES (HUB).
Es el dispositivo que permite centralizar el cableado de una red de computadoras, trabaja en la capa 1 del modelo OSI
Una solicitud destinada a una determinada PC de la red será enviada a todas las PC por lo cual reduce el ancho de
banda.
CONMUTADORES (SWITCH).
Trabaja en las primeras capas del modelo OSI, distribuye los datos a cada máquina de destino, y soluciona el
problema del HUB, además de eliminar los problemas de colisiones.
REPETIDORES.
Retrasmiten la señal digital bit a bit, utilizado para distancias largas.
PUENTE.
Son dispositivos que analizan la trama a nivel de enlace, permiten una cierta optimización del trafico y la
interconexión de LANs de diferentes tipos. Además de interconectar redes a nivel de enlaces, es decir trabaja en la
capa de enlace y para la interconexión de redes utiliza las direcciones y no las ip como el router.
ENRUTADOR (ROUTER)
Interconecta redes, y busca el camino más adecuado para enviar paquetes, además de tener la funcione de filtrado de
protocolos con lo que lo hace una candidato para ser firewall. Trabajan en la capa 3 del modelo OSI
PASARELA (GATEWAY, PUERTA DE ENLACE).
Conecta dos redes entre si y para que funcionen como una interfaz entre diferentes protocolos de red, trabaja en los
niveles superiores a la capa de red. Su propósitos es la de traducir la información del protocolo utilizado al protocolo
usado en la red de destino.
MODEM
Es un periférico utilizado para transferir información entre varios equipos a través de un medio de transmisión por
cable. Su funcione es la de convertir la señal telefónica en digital.
CORTA FUEGOS:
Es un sistema que protege a un ordenador o a una red de ordenadores contra intrusiones provenientes de redes de
terceros (generalmente desde internet).
SEGURIDAD EN UNA RED
La Seguridad de redes consiste en las políticas adoptadas para prevenir y monitorear el acceso no autorizado, el
mal uso, la modificación o la denegación de una red de computadoras y recursos de acceso de red. La seguridad
de redes involucra la autorización del acceso a datos en la red, que es controlado por el administrador de red.
Los usuarios escogen o son asignados con un ID y una contraseña u otra información de autenticación que les dé
acceso a la información y programas dentro de su autoridad.
•
Firewall: Por medio de hardware o software y también puede ser mixto.
•
Control a acceso a internet: Que usuarios tienen acceso a internet y a qué tipo de información se tiene
acceso.
•
Colocar todos los archivos posibles en solo lectura: Para evitar que las amenazas se propaguen e
infecten más estaciones de trabajo.
•
Filtros:
o
Anti phishing.
•
Antivirus: Control de correo electrónico, acceso a internet y los puertos USB.
•
Desactivar puertos: Que no estén en uso para evitar ataques por esos medios.
Tipos de ataques
Las redes son objeto de ataques por parte de fuentes malignas. Estos ataques se pueden clasificar de dos
formas: "pasivos" cuando un intruso intercepta datos que están viajando a través la red y "activos" cuando el
intruso ejecuta comandos para alterar el funcionamiento normal de la red.
Tipos de ataque:
•
Pasivos
•
Red
•
•
•
•
Escucha telefónica: o pinchazo telefónico o intervención telefónica es el monitoreo de una
conversación telefónica por parte de una tercera persona, usualmente en forma encubierta.
Escáner de puertos: Se utiliza para detectar qué servicios comunes está ofreciendo la máquina y
posibles vulnerabilidades de seguridad según los puertos abiertos. También puede llegar a
detectar el sistema operativo que está ejecutando la máquina según los puertos que tiene
abiertos.
Escaneo libre: Es un método de escaneo de puertos TCP que consiste en enviar paquetes
falsos para encontrar que servicios esta habilitados. Esto se logra mediante la suplantación
de otro equipo llamado zombie (que no envía ni recibe información) y observando el
comportamiento del sistema zombie.
Activos
•
•
•
•
Ataque de denegación de servicio: también llamado ataque DoS (de las siglas
en inglés Denial of Service) o DDoS (de Distributed Denial of Service), es un ataque a un sistema
de computadoras o red que causa que un servicio o recurso sea inaccesible a los usuarios legítimos.
Normalmente provoca la pérdida de la conectividad de la red por el consumo del ancho de banda de la
red de la víctima o sobrecarga de los recursos computacionales del sistema de la víctima.
DNS spoofing: DNS cache poisoning (o DNS Poisoning) es una situación creada de manera maliciosa o
no deseada que provee datos de un Servidor de Nombres de Dominio (DNS) que no se origina de fuentes
autoritativas DNS. Esto puede pasar debido a diseño inapropiado de software, falta de configuración de
nombres de servidores y escenarios maliciosamente diseñados que explotan la arquitectura
tradicionalmente abierta de un sistema DNS. Una vez que un servidor DNS ha recibido aquellos datos no
autentificados y los almacena temporalmente para futuros incrementos de desempeño, es considerado
envenenado, extendiendo el efecto de la situación a los clientes del servidor.
Ataque Man-in-the-middle: o JANUS (MitM o intermediario, en español) es un ataque en el que se
adquiere la capacidad de leer, insertar y modificar a voluntad, los mensajes entre dos partes sin que
ninguna de ellas conozca que el enlace entre ellos ha sido violado. El atacante debe ser capaz de
observar e interceptar mensajes entre las dos víctimas. El ataque MitM es particularmente
significativo en el protocolo original de intercambio de claves de Diffie-Hellman, cuando éste se
emplea sin autenticación. Hay ciertas situaciones donde es bastante simple, por ejemplo, un
atacante dentro del alcance de un punto de acceso wi-fi sin cifrar, donde éste se puede insertar
como man-in-the-middle.
ARP Spoofing: El principio del ARP Spoofing es enviar mensajes ARP falsos (falsificados, o spoofed) a
la Ethernet. Normalmente la finalidad es asociar la dirección MAC del atacante con la dirección IP de
otro nodo (el nodo atacado), como por ejemplo la puerta de enlace predeterminada (gateway).
•
•
•
•
•
•
Cualquier tráfico dirigido a la dirección IP de ese nodo, será erróneamente enviado al atacante, en
lugar de a su destino real. El atacante, puede entonces elegir, entre reenviar el tráfico a la puerta de
enlace predeterminada real (ataque pasivo o escucha), o modificar los datos antes de reenviarlos
(ataque activo).
Ataque por salteo de VLAN: es un abuso de la seguridad computacional, un método de atacar a los
recursos de una red LAN Virtual. El concepto básico detrás de todos los ataques de salto de VLAN es,
para que un host atacante en una VLAN gane acceso al tráfico de otras VLANs que normalmente no
serían accesibles.
o
Hay dos métodos principales de salto de VLAN:
▪ Interruptor Spoofing el cual es un ataque de suplantación de conmutación en el que un host
atacante imita a un switch interconectado utilizando los protocolos de interconexión y
etiquetado utilizados en el mantenimiento de una VLAN. Entonces el tráfico para múltiples
VLANs es accesible para el host atacante.
▪ Doble etiquetado en el cual el host atacante se conecta a la interfaz 802.1q (estándar en la red
que soporta las VLANs en una red Ethernet.) antepone dos etiquetas a los paquetes VLAN que
transmite. El paquete (que corresponde a la VLAN del atacante) se reenvia sin la primera
etiqueta, porque es la de la VLAN nativa. La segunda etiqueta es visible para el segundo switch
que el paquete encuentre. Esta etiqueta le indica al switch que el paquete está destinado a un
host marcado en el segundo switch. El paquete se envía luego a la host de destino como si se
originó en la VLAN de destino sin pasar por los mecanismos de red que lógicamente VLANs aíslan el
uno del otro. Sin embargo, este ataque permite enviar paquetes hacia el segundo interruptor, pero
posibles respuestas no se envían al host atacante.
Ataque smurf: es un ataque de denegación de servicio que utiliza mensajes de ping al broadcast con
spoofing para inundar (flood) un objetivo (sistema atacado). El perpetrador envía grandes
cantidades de tráfico ICMP (ping) a la dirección de broadcast, todos ellos teniendo la dirección de
origen cambiada (spoofing) a la dirección de la víctima. Si el dispositivo de ruteo envía el tráfico a
esas direcciones de broadcast lo hace en capa 2 donde está la función de broadcast, y la mayoría de
los host tomarán los mensajes ICMP de echo request y lo responderán, multiplicando el tráfico por
cada host de la subred
Desbordamiento de búfer: (del inglés buffer overflow o buffer overrun) es un error de software que
se produce cuando un programa no controla adecuadamente la cantidad de datos que se copian
sobre un área de memoria reservada a tal efecto (buffer): Si dicha cantidad es superior a la
capacidad preasignada, los bytes sobrantes se almacenan en zonas de memoria adyacentes,
sobrescribiendo su contenido original, que probablemente pertenecían a datos o código
almacenados en memoria. Esto constituye un fallo de programación.
Desbordamiento de montículo: (heap overflow/overrun) es un problema aritmético que hace
referencia al exceso de flujo de datos sobre un montículo, esto permite un acceso no autorizado a la
memoria por parte de un comando o de un programa o script denominado shellcode.
Ataque de formato String: descubierto alrededor de 1989; puede ser usado para colgar un programa
o ejecutar un código maligno.
Inyección SQL: es un método de infiltración de código intruso que se vale de una vulnerabilidad
informática presente en una aplicación en el nivel de validación de las entradas para realizar
operaciones sobre una base de datos. El origen de la vulnerabilidad radica en el incorrecto chequeo
o filtrado de las variables utilizadas en un programa que contiene, o bien genera, código SQL. Es, de
hecho, un error de una clase más general de vulnerabilidades que puede ocurrir en
•
•
•
•
cualquier lenguaje de programación o script que esté embebido dentro de otro. Se conoce como
Inyección SQL, indistintamente, al tipo de vulnerabilidad, al método de infiltración, al hecho de
incrustar código SQL intruso y a la porción de código incrustado.
Phishing: o suplantación de identidad es un término informático que denomina un modelo de abuso
informático y que se comete mediante el uso de un tipo de ingeniería social, caracterizado por
intentar adquirir información confidencial de forma fraudulenta (como puede ser una contraseña o
información detallada sobre tarjetas de crédito otra información bancaria).
Cross-site scripting: es un tipo de inseguridad informática o agujero de seguridad típico de las
aplicaciones Web, que permite a una tercera persona inyectar en páginas web visitadas por el
usuario código JavaScript o en otro lenguaje similar (ej: VBScript), evitando medidas de control como
la Política del mismo origen. Este tipo de vulnerabilidad se conoce en español con el nombre
de Secuencias de órdenes en sitios cruzados. Esta vulnerabilidad puede estar presente de las
siguientes formas:
o Directa (también llamada Persistente): este tipo de XSS comúnmente filtrado, y consiste en
insertar código HTML peligroso en sitios que lo permitan; incluyendo así etiquetas como <script> o
<iframe>.
o Indirecta (también llamada Reflejada): este tipo de XSS consiste en modificar valores que
la aplicación web utiliza para pasar variables entre dos páginas, sin usar sesiones y sucede cuando
hay un mensaje o una ruta en la URL del navegador, en una cookie, o cualquier otra cabecera
HTTP (en algunos navegadores y aplicaciones web, esto podría extenderse al DOM del navegador).
CSRF: (del inglés Cross-site request forgery o falsificación de petición en sitios cruzados) es un tipo
de exploit (fragmento de software, fragmento de datos o secuencia de comandos y/o acciones,
utilizada con el fin de aprovechar una vulnerabilidad de seguridad de un sistema de información
para conseguir un comportamiento no deseado del mismo) malicioso de un sitio web en el
que comandos no autorizados son transmitidos por un usuario en el cual el sitio web confía.
Esta vulnerabilidad es conocida también por otros nombres como XSRF, enlace hostil, ataque de un
click, cabalgamiento de sesión, y ataque automático.
Ataque informático: es un método por el cual un individuo, mediante un sistema informático,
intenta tomar el control, desestabilizar o dañar otro sistema informático (ordenador, red privada,
etcétera).
AREA PROFESIONAL
CONCEPTOS DE ARQUITECTURA DEL COMPUTADOR.
•
Es el diseño conceptual y la estructura operacional fundamental de un sistema de computadora.
MODELO DE NEUMANN Y SU IMPLEMENTACION.
Es una arquitectura de computadoras, la cual indica que un computador debe tener:
Memoria: almacena datos e instrucciones.
Unidad de control: interpreta las instrucciones en memoria para su ejecución.
Unidad aritmética lógica: operación de datos binarios
Unidades de entrada/salida: administra las operaciones de la unidad de control.
•
•
•
•
Memoria: Constaba de 4096 palabras, cada una con 40 bits. Cada palabra podía contener dos instrucciones de
20 bits o un número entero de 39 bits y su signo. Las instrucciones tenían 8 bits dedicados a señalar el tipo de
la misma y 12 bits para especificar alguna de las 4096 palabras de la memoria.
Unidad de Control: Es la que supervisaba la transferencia de información y la indicaba a la unidad aritmética
lógica cual operación debía ejecutar.
Unidad Aritmética Lógica: Es aquella que se encarga de realizar las operaciones aritméticas y lógicas necesarias
para la ejecución de una instrucción.
Acumulador: 40 bits llamado en acumulador que sirven para:
o Recibir datos de entrada.
o Enviar datos a la salida.
o Guardar el resultado de la última operación.
o Una instrucción típica era sumar una palabra de la memoria al acumulador o almacenar este en la
memoria.
Fue utilizado en computadoras de distintas universidades como:
•
ILLIAC en la Universidad de Illinois, (septiembre de 1952)
•
AVIDAC en Laboratorios Argonne National (1953)
•
ORACLE en Laboratorio Nacional de Oak Ridge (junio de 1953)
•
JOHNNIAC en RAND Corporation (enero de 1954)
•
BESK en Estocolmo (1953)
EVOLUCION HISTORICA DE LOS COMPUTADORES.
•
•
•
•
•
•
Primera Generación.
Periodo: 1944 – 1956. Primera computadora mark I.
Uso de tubos de vacio, aparición de ibm.
Segunda Generación.
Periodo: 1959 - 1964.
Uso de transistores, computadora más pequeñas y rápidas.
Uso de cintas magnéticas. Uso de lenguajes de alto nivel como cobol y fortran
Tercera Generación.
Periodo: 1964 – 1971.
Uso de circuitos integrados. Computadoras más pequeñas y rápidas, uso menos de energía.
Surgen los programas o software.
Sistemas operativos a multitarea.
Cuarta Generación.
Periodo: 1971 – 1981. Microprocesador, computadoras personales o PC,
Revolución del desarrollo de software.
INTEL crea el primer chip de 4bits, inicio de MS-DOS.
Quinta Generación.
Periodo: 1982 – 1989. Surgimiento de internet.
Computadoras portátiles, mayor almacenamiento, CD para almacenar música y video.
Sexta Generación.
Periodo: 1990 a la actualidad.
Arquitecturas paralelas, vectoriales
EVALUACION DE LA EFICIENCIA EN EQUIPOS DE CÓMPUTO Y LA LEY DE AHMDAHL.
Para la verificación de la eficiencia, es necesario la utilización de herramientas que nos ayuden a realizar esta tarea.
Las áreas a evaluar son:
•
•
•
•
•
•
•
•
Prueba global, es decir todo el computador.
Rendimiento del microprocesador.
Memoria Ram.
Aceleración 3D y motor gráfico.
Sonido.
Almacenamiento.
Calidad de imagen.
Batería (Para las portátiles.)
Ley de Amdhal.
Es un modelo matemático que describe la relación entre la aceleración esperada de la implementación paralela de un
algoritmo y la implementación serial del mismo algoritmo.
Evalúa como cambia el rendimiento al mejorar una parte de la computadora.
Técnicamente la ley de amdahl trata sobre la aceleración S que se puede alcanzar a partir de las modificaciones
(mejoras) de una porción P de un cálculo.
Define el speedup (aceleración) que se puede alcanzar al utilizar cierta mejora
𝑆𝑝𝑒𝑒𝑑𝑢𝑝 =
𝑅𝑒𝑛𝑑𝑖𝑚𝑖𝑒𝑛𝑡𝑜 𝑎𝑙 𝑢𝑠𝑎𝑟 𝑙𝑎 𝑚𝑒𝑗𝑜𝑟𝑎
𝑅𝑒𝑛𝑑𝑖𝑚𝑖𝑒𝑛𝑡𝑜 sin 𝑢𝑠𝑎𝑟 𝑙𝑎 𝑚𝑒𝑗𝑜𝑟𝑎
Alternativamente
𝑆𝑝𝑒𝑒𝑑𝑢𝑝 =
𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑗𝑒𝑐𝑢𝑐𝑖ó𝑛 𝑠𝑖 𝑙𝑎 𝑚𝑒𝑗𝑜𝑟𝑎
𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑗𝑒𝑐𝑢𝑐𝑖ó𝑛 𝑐𝑜𝑛 𝑙𝑎 𝑚𝑒𝑗𝑜𝑟𝑎
Depende de dos factores:
1. La fracción del proceso original que puede ser mejorado. Si la mejora afecta 20 segundos de un proceso que
tarda 60 segundos, entonces Fracción mejora = 20/60
2. Aceleración de la fracción que puede ser mejorada. Si la mejora hace que la parte que tardaba 20 segundos
ahora es 12, Speedup mejora = 20/12
El tiempo de ejecución mejorado es igual al tiempo que no se usa la mejora más el tiempo que si usa la mejora.
𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑗𝑒𝑐𝑢𝑐𝑖ó𝑛𝑛𝑢𝑒𝑣𝑜 = (𝑇𝑖𝑒𝑚𝑝𝑜 𝑑𝑒 𝑒𝑗𝑒𝑐𝑢𝑐𝑖ó𝑛𝑣𝑖𝑒𝑗𝑜 ) ∗ ((1 − 𝐹𝑟𝑎𝑐𝑐𝑖ó𝑛𝑚𝑒𝑗𝑜𝑟𝑎 ) + (
𝐹𝑟𝑎𝑐𝑐𝑖ó𝑛𝑚𝑒𝑗𝑜𝑟𝑎
))
𝑆𝑝𝑒𝑒𝑑𝑢𝑝𝑚𝑒𝑗𝑜𝑟𝑎
ARQUITECTURA CISC Y RISC
Arquitectura RISC
En la arquitectura computacional, RISC (del inglés Reduced Instruction Set Computer) es un tipo de
microprocesador con las siguientes características fundamentales:
• Instrucciones de tamaños fijos y presentados en un reducido número de formatos.
• Sólo las instrucciones de carga y almacenamiento acceden a la memoria de datos.
El objetivo de diseñar máquinas con esta arquitectura es posibilitar la segmentación y el paralelismo en la
ejecución de instrucciones y reducir los accesos a memoria.
Características:
En pocas palabras esto significa que para cualquier nivel de desempeño dado, un chip RISC típicamente tendrá
menos transistores dedicados a la lógica principal. Esto permite a los diseñadores una flexibilidad considerable;
así pueden, por ejemplo:
•
•
•
•
Incrementar el tamaño del conjunto de registros.
Mayor velocidad en la ejecución de instrucciones.
Implementar medidas para aumentar el paralelismo interno.
Añadir cachés enormes.
•
•
•
Añadir otras funcionalidades, como E/S y relojes para minicontroladores.
Construir los chips en líneas de producción antiguas que de otra manera no serían utilizables.
No ampliar las funcionalidades, y por lo tanto ofrecer el chip para aplicaciones de bajo consumo de
energía o de tamaño limitado.
Las características que generalmente son encontradas en los diseños RISC son:
• Codificación uniforme de instrucciones, lo que permite una de codificación más rápida.
• Un conjunto de registros homogéneo, permitiendo que cualquier registro sea utilizado en cualquier
contexto y así simplificar el diseño del compilador.
• Modos de direccionamiento simple con modos más complejos reemplazados por secuencias de
instrucciones aritméticas simples.
• Los tipos de datos soportados en el hardware no se encuentran en una máquina RISC.
• Los diseños RISC también prefieren utilizar como característica un modelo de memoria Harvard, donde
los conjuntos de instrucciones y los conjuntos de datos están conceptualmente separados.
Entre las ventajas de RISC tenemos las siguientes:
•
•
•
La CPU trabaja más rápido al utilizar menos ciclos de reloj para ejecutar instrucciones.
Utiliza un sistema de direcciones no destructivas en RAM. Eso significa que a diferencia de CISC, RISC
conserva después de realizar sus operaciones en memoria los dos operandos y su resultado, reduciendo
la ejecución de nuevas operaciones.
Cada instrucción puede ser ejecutada en un solo ciclo del CPU
Arquitectura CISC
En la arquitectura computacional, CISC (Complex Instruction Set Computer) es un modelo de arquitectura de
computadora.
Los microprocesadores CISC tienen un conjunto de instrucciones que se caracteriza por ser muy amplio y
permitir operaciones complejas entre operandos situados en la memoria o en los registros internos, en
contraposición a la arquitectura RISC.
Este tipo de arquitectura dificulta el paralelismo entre instrucciones, por lo que, en la actualidad, la mayoría de
los sistemas CISC de alto rendimiento implementan un sistema que convierte dichas instrucciones complejas en
varias instrucciones simples del tipo RISC, llamadas generalmente microinstrucciones.
Para realizar una sola instrucción un chip CISC requiere de cuatro a diez ciclos de reloj.
Entre las ventajas de CISC destacan las siguientes:
•
•
•
•
•
Reduce la dificultad de crear compiladores.
Permite reducir el costo total del sistema.
Reduce los costos de creación de software.
Mejora la compactación de código.
Facilita la depuración de errores.
HARDWARE EMPRESARIAL
Clasificación de las computadoras.
• Supercomputadores.
• Mainframes.
• Computadores medianas.
• Microcomputadores.
• Computadores portátiles.
Dispositivos de entrada.
• Teclado.
• Ratón, TrackBall
• Pantalla sensible al tacto (touch).
• Captación de imágenes.
• Reconocimiento de voz.
Dispositivos de salida.
• Monitores.
• Impresoras.
• Bocinas.
Medios de almacenamiento.
• Cintas magnéticas.
• Discos magnéticos.
• Cinta óptica.
• Memoria flash.
• Discos.
El hardware tiene que ser escalable al momento de alguna actualización.
SOFTWARE EMPRESARIAL
Por software empresarial se entiende generalmente cualquier tipo de soporte lógico (software) que está
orientado a ayudar a una empresa o a una organización a mejorar su productividad y/o a medirla.
El término engloba una amplia variedad de aplicaciones informáticas que incluyen desde programas de
contabilidad y de ofimática, hasta sistemas de planificación de recursos empresariales (ERP), pasando por
programas de gestión de clientes (CRM) y de recursos humanos, así como programas de administración de la
cadena de suministros (SCM), etc.
Corresponde señalar que el software empresarial no siempre es un progicial (contracción de producto y logicial,
logicial es un soporte lógico), si bien es cierto que una buena parte del software empresarial es progicial
empresarial; en efecto, es claro que en el primero de estos conceptos también tiene cabida el logicial a medida.
MAQUINAS MULTI-NIVEL
NIVEL 0: Nivel de lógica digital
Su objeto de estudio es el hardware
•
•
•
Puertas lógicas
Circuitos Integrados
Circuitos combinacionales
•
•
•
•
•
Circuitos aritméticos
Relojes
Memorias
Microprocesadores
Buses
NIVEL 1: Nivel de microprogramación
• Conforma el verdadero nivel de lenguaje de máquina.
• Aparece el concepto de MICROPROGRAMA, cuya función es interpretar las instrucciones del nivel 2
• El número de microinstrucciones es REDUCIDO, unas 20, dependiendo del procesador que sea objeto de
estudio.- (instrucciones de operaciones matemáticas sencillas, lógicas y desplazamiento de datos)
NIVEL 2: Nivel de máquina convencional
• Cada máquina de nivel 1, tiene uno o más microprogramas que pueden ejecutarse en ella
• Cada microprograma, define IMPLICITAMENTE un lenguaje de nivel 2.
• Cada fabricante publica un manual para cada procesador. Este manual recibe el nombre de Manual de
Referencia del lenguaje de Máquina del Procesador XXXX
NIVEL 3: Nivel del sistema operativo
• Añade nuevas posibilidades al nivel 2.
• Estas tareas las lleva a cabo un intérprete, llamado SO
• Existen instrucciones que las ejecuta directamente el nivel 2.
• Este nivel, es a veces, llamado nivel híbrido
Nota: estos niveles (0 al 3), no están diseñados para que los usen los programadores corrientes en la resolución
de problemas (Programadores de Aplicaciones). Estas concebidos para personas llamadas Programadores de
Sistema, que son especialistas en diseñar y construir máquinas virtuales.
NIVEL 4: Nivel ensamblador
• Los lenguajes contienen palabras y abreviaturas, a diferencia de los niveles anteriores, que solo toleran
números.
• El lenguaje ensamblador, es una forma SIMBOLICA de los lenguajes subyacentes (o que están por
debajo)
• El programa que realiza la traducción se llama ENSAMBLADOR.
NIVEL 5: Nivel de lenguajes de alto nivel
• Nivel orientado a los programadores de aplicaciones.
• Estos lenguajes, se denominan, lenguajes de Alto Nivel(C, Pascal, Visuales, etc)
Estos lenguajes se traducen por interpretación o compilación
PARALELISMO
Es una función que realiza el procesador para ejecutar varias tareas al mismo tiempo. Es decir, puede realizar
varios cálculos simultáneamente, basado en el principio de dividir los problemas grandes para obtener varios
problemas pequeños, que son posteriormente solucionados en paralelo.
Tipos de paralelismo informática
1. Nivel de bit.
2. Nivel de instrucción.
3. Nivel de datos.
4. Nivel de tarea.
El paralelismo o procesamiento paralelo ha sido empleado durante muchos años, sobre todo para la computación
de alto rendimiento, teniendo en cuenta las generaciones de procesadores y sus características.
Desventajas
1. Requieren de un gran número de ciclos de procesamiento o acceso a una gran cantidad de datos.
2. Encontrar un hardware y un software que permitan brindar estas utilidades comúnmente proporciona
inconvenientes de costos, seguridad y disponibilidad.
Ventajas
1. Brinda a las empresas, instituciones y usuarios en general el beneficio de la velocidad.
2. Ventaja competitiva, provee una mejora de los tiempos para la producción de nuevos productos y
servicios.
3. Colaboración y flexibilidad operacional.
MULTIPROCESAMIENTO SIMETRICO (SMP)
La arquitectura SMP (también llamada UMA, del inglés Uniform Memory Access, en español "acceso uniforme a
memoria") se caracteriza por el hecho de que varias unidades de procesamiento comparten el acceso a la
memoria, compitiendo en igualdad de condiciones por dicho acceso, de ahí la denominación "simétrico".
Los sistemas SMP permiten que cualquier procesador trabaje en cualquier tarea sin importar su localización en
memoria; con un propicio soporte del sistema operativo, estos sistemas pueden mover fácilmente tareas entre
los procesadores para garantizar eficientemente el trabajo.
Una computadora SMP se compone de microprocesadores independientes que se comunican con la memoria a
través de un bus compartido. Dicho bus es un recurso de uso común. Por tanto, debe ser arbitrado para que
solamente un microprocesador lo use en cada instante de tiempo. Si las computadoras con un único
microprocesador tienden a gastar considerable tiempo esperando a que lleguen los datos desde la memoria, SMP
empeora esta situación, ya que hay varios parados en espera de datos.
Ventajas con respecto a la arquitectura monoprocesador
• Prestaciones: proporciona mejor desempeño si el trabajo puede organizarse de forma que partes de este
se puedan ejecutar en paralelo.
• Disponibilidad: Un fallo en un procesador no hará que el computador se detenga.
• Crecimiento Incremental: se pueden aumentar las prestaciones del sistema añadiendo más procesadores.
• Escalado: los fabricantes pueden ofrecer una gama de productos con precios y prestaciones diferentes en
función del número de procesadores que configuran el sistema.
Desventajas: La principal son las prestaciones, puesto que todas las referencias a memoria pasan por el bus, en
consecuencia la velocidad del sistema está limitada por el tiempo de ciclo. Para mejorar las prestaciones se equipa
a cada procesador con una memoria cache, que reduce drásticamente el número de accesos. Aunque esto
involucra una serie de procedimientos para asegurar la coherencia de las cache.
COMPUTACIÓN VECTORIAL Y CLUSTER
CLUSTER
Son conjuntos o conglomerados de computadoras mediante la utilización de hardwares comunes y que se
comportan como si fuesen una única computadora.
La tecnología de clústeres ha evolucionado en apoyo de actividades que van desde aplicaciones de súper cómputo
y software de misiones críticas, servidores web y comercio electrónico, hasta bases de datos de alto rendimiento,
entre otros usos.
El cómputo con clústeres surge como resultado de la convergencia de varias tendencias actuales que incluyen la
disponibilidad de microprocesadores económicos de alto rendimiento y redes de alta velocidad, el desarrollo de
herramientas de software para cómputo distribuido de alto rendimiento, así como la creciente necesidad de
potencia computacional para aplicaciones que la requieran.
Simplemente, un clúster es un grupo de múltiples ordenadores unidos mediante una red de alta velocidad, de tal
forma que el conjunto es visto como un único ordenador, más potente que los comunes de escritorio.
Los clústeres son usualmente empleados para mejorar el rendimiento y/o la disponibilidad por encima de la que
es provista por un solo computador típicamente siendo más económico que computadores individuales de rapidez
y disponibilidad comparables.
De un clúster se espera que presente combinaciones de los siguientes servicios:
1. Alto rendimiento
2. Alta disponibilidad
3. Balanceo de carga
4. Escalabilidad
La construcción de los ordenadores del clúster es más fácil y económica debido a su flexibilidad: todos pueden
tener la misma configuración de hardware y sistema operativo (clúster homogéneo), diferente rendimiento pero
con arquitecturas y sistemas operativos similares (clúster semihomogéneo), o tener diferente hardware y sistema
operativo (clúster heterogéneo), lo que hace más fácil y económica su construcción.
Para que un clúster funcione como tal, no basta solo con conectar entre sí los ordenadores, sino que es necesario
proveer un sistema de manejo del clúster, el cual se encargue de interactuar con el usuario y los procesos que
corren en él para optimizar el funcionamiento.
COMPUTACIÓN VECTORIAL
A inicios de los 50', comenzó la necesidad de crear computadoras que resuelvan problemas matemáticos de
procesos reales, tales como los que aparecen en disciplinas como la aerodinámica, sismología, meteorología, física
atómica, nuclear y de plasmas. Estos problemas se caracterizan por necesitar una precisión elevada y programas
que realicen de forma repetitiva operaciones aritméticas en coma flotante con grandes matrices de números.
Para manejar este tipo de problemas se han desarrollado supercomputadoras, capaces de realizar cientos de
millones de operaciones en como flotante por segundo, pero estas máquinas tienen un uso limitado y debido a su
precio un mercado limitado. Otro tipo de sistema diseñado para las necesidades de la computación vectorial se
trata de los computadores matriciales, estos no realizan procesamiento escalar y están configurados como
dispositivos periféricos para que los usuarios de grandes computadoras y minicomputadoras puedan ejecutar
partes vectorizadas de sus programas.
¿Cuál es la principal tarea de estos computadores?
Es realizar operaciones sobre matrices o vectores numéricos en como flotante. Estas operaciones consistirán en
funciones aritméticas y lógicas aplicadas sobre las componentes de los vectores. La diferencia entre un procesador
vectorial y uno escalar estriba en que el procesador vectorial puede decodificar instrucciones cuyos operandos
son vectores completos.
Organización de los procesadores vectoriales
ALU segmentada: puesto que las operaciones en coma flotante son bastante complejas, existe la posibilidad de
descomponer una operación en coma flotante en etapas (comparar, desplazar, sumar, normalizar), de manera
que las diferentes etapas puedan operar concurrentemente sobre conjunto de datos distintos. Debe de quedar
claro que esta organización es adecuada para el procesamiento vectorial, ya que una ALU segmentada ganara
tiempo solo si se alimenta con una secuencia de datos de posiciones consecutivas. La ejecución de una única
operación en coma flotante aislada no se acelera con un cauce. El aumento de velocidad se consigue cuando se
presenta a la ALU hasta que se ha procesado el vector completo. La operación del cauce se puede mejorar si los
elementos del vector están disponibles en registros en lugar de la memoria principal.
Una aproximación es el encadenamiento que nos dice que una operación vectorial puede empezar tan pronto
como el primer elemento del operando vectorial esté disponible y la unidad funcional (suma, resta, multiplicación,
división) esté libre. El encadenamiento hace que los resultados generados por una unidad funcional pasen
inmediatamente a alimentar otra unidad funcional, y así sucesivamente.
ALU paralelas: otra forma de conseguir el procesamiento vectorial es con el uso de varias ALU en un
solo procesador, bajo el control de una única unidad de control. En este caso, la unidad de control en ruta los
datos hacia la ALU para que puedan funcionar en paralelo. Es también posible utilizar segmentación de cauce en
cada una de las ALU paralelas.
Procesadores paralelos: es necesario dividir la tarea en múltiples procesos que se ejecutan en paralelo. Esta
organización es eficiente solo si se dispone de software y hardware para la coordinación efectiva de los
procesadores paralelos. Múltiples unidades de control implican múltiples procesadores, por lo tanto si múltiples
procesadores pueden cooperar en la ejecución de una tarea dada, se denominan procesadores paralelos.
APLICACION ELECTRONICAS EN OS SISTEMAS DE INFORMACION.
Subsistema fisico de un sistema de informatico.
Cuando estamos utilizando un Ordenador, no solo debemos pensar en la parte física, los componentes
electrónicos y todo lo relativo a la Tecnología, sino que debemos considerar a ello como una parte de un todo, y
esta generalidad que abarca al resto es justamente un concepto que es definido como Sistema Informático,
contemplando distintos sectores.
Es por ello que debemos pensar en el establecimiento de un Sistema como el conjunto de las distintas partes
relacionadas entre sí, considerándose por un lado a las partes físicas, definidas bajo el concepto de Hardware,
mientras que por otro lado tenemos las otras partes lógicas interactuando con ellas (Software) que a su vez
interaccionan entre sí en todo momento.
La interacción de las mismas con el Usuario es definida entonces bajo el concepto de Humanware, un término
algo controvertido, y que estaría ligado al uso y provecho que pueda hacerse del equipo, siendo relativo entonces
a los Recursos Humanos y a la productividad que encuentra el usuario cuando utiliza un Sistema Informático.
Entonces, debemos definir a este último punto también considerándose no solo al equipo, sino a su interacción
con el Sistema Operativo, las herramientas que ofrece, el mayor provecho que se le pueda sacar a los Dispositivos
Físicos del sistema, y claro está, las Aplicaciones que allí estén instaladas y el rendimiento que un usuario puede
obtener de su utilización.
En lo que respecta al Sistema Informático, debemos pensar en su eficacia no solo en lo que respecta a su uso
cotidiano, sino también en lo que es el Soporte Técnico, y las necesidades que posee su Mantenimiento para tener
siempre el mismo rendimiento, o bien la eficiencia que se emplea para poder alcanzar un objetivo o una meta
determinada con dicho sistema en particular.
SUBSISTEMA
Es por ello que dentro de un Sistema Informático debemos también analizar en particular los distintos Subsistemas
que nos permitirán elaborar un análisis del rendimiento y eficacia del mismo:
Subsistema Físico: Relativo a lo que es la parte física del equipo, contemplando el Hardware no solo en sus partes
fijas, sino también los Periféricos (Dispositivos de Entrada y Salida) y su relación con el usuario
Subsistema Lógico: Además de analizar cómo funcionan los componentes físicos del equipo, debemos pensar en
las Aplicaciones y los Programas que están instalados en el sistema, considerándose justamente al Sistema
Operativo, pero también contemplando las Aplicaciones que ofrece, la productividad que se alcanza con ella, las
Bases de Datos que se pueden obtener y el uso de los mismos.
Medios o canales de transmisión de información
Los medios de transmisión son las vías por las cuales se comunican los datos. Dependiendo de la forma de
conducir la señal a través del medio o soporte físico, se pueden clasificar en dos grandes grupos:
• medios de transmisión guiados o alámbricos.
• medios de transmisión no guiados o inalámbricos.
En ambos casos las tecnologías actuales de transmisión usan ondas electromagnéticas. En el caso de los medios
guiados estas ondas se conducen a través de cables o “alambres”. En los medios inalámbricos, se utiliza el aire
como medio de transmisión, a través de radiofrecuencias, microondas y luz (infrarrojos, láser); por ejemplo:
puerto IrDA (Infrared Data Association), Bluetooth o Wi-Fi.
Según el sentido de la transmisión, existen tres tipos diferentes de medios de transmisión:
• símplex.
• semi-dúplex (half-duplex).
• dúplex o dúplex completo (full-duplex).
También los medios de transmisión se caracterizan por utilizarse en rangos de frecuencia de trabajo diferentes.
Medios de transmisión guiados
Los medios de transmisión guiados están constituidos por cables que se encargan de la conducción (o guiado) de
las señales desde un extremo al otro. Las principales características de los medios guiados son el tipo de conductor
utilizado, la velocidad máxima de transmisión, las distancias máximas que puede ofrecer entre repetidores, la
inmunidad frente a interferencias electromagnéticas, la facilidad de instalación y la capacidad de soportar
diferentes tecnologías de nivel de enlace. La velocidad de transmisión depende directamente de la distancia entre
los terminales, y de si el medio se utiliza para realizar un enlace punto a punto o un enlace multipunto. Debido a
esto, los diferentes medios de transmisión tendrán diferentes velocidades de conexión que se adaptarán a
utilizaciones dispares.
Dentro de los medios de transmisión guiados, los más utilizados en el campo de las telecomunicaciones y la
interconexión de computadoras son tres:
• cable de par trenzado
• cable coaxial
• fibra óptica
Medio de transmisión Razón de datos total Ancho de banda Separación entre repetidores (km)
Cable de par trenzado 4 Mbps
3 MHz
2 a 10
Cable coaxial
10 Mbps
350 MHz
1 a 10
Cable de fibra óptica
2 Gbps
2 GHz
10 a 100
El cable de par trenzado consiste en un conjunto de pares de hilos de cobre, conductores cruzados entre sí, con
el objetivo de reducir el ruido de diafonía. A mayor número de cruces por unidad de longitud, mejor
comportamiento ante el problema de diafonía
El cable coaxial Conductor central rodeado por una capa conductora cilíndrica. Se emplea en sistemas troncales
o de largo alcance que portan señales múltiplex con gran número de canales.
La fibra óptica es un enlace hecho con un hilo muy fino de material transparente de pequeño diámetro y
recubierto de un material opaco que evita que la luz se disipe. Por el núcleo, generalmente de vidrio o plásticos,
se envían pulsos de luz, no eléctricos. Hay dos tipos de fibra óptica: la multimodo y la monomodo. En la fibra
multimodo la luz puede circular por más de un camino pues el diámetro del núcleo es de aproximadamente 50 µm.
Por el contrario, en la fibra monomodo sólo se propaga un modo de luz, la luz sólo viaja por un camino. El diámetro
del núcleo es más pequeño (menos de 5 µm).
Medios No guiados
En este tipo de medios, la transmisión y la recepción de información se lleva a cabo mediante antenas. A la hora
de transmitir, la antena irradia energía electromagnética en el medio. Por el contrario, en la recepción la antena
capta las ondas electromagnéticas del medio que la rodea.
Para las transmisiones no guiadas, la configuración puede ser:
• direccional, en la que la antena transmisora emite la energía electromagnética concentrándola en un haz,
por lo que las antenas emisora y receptora deben estar alineadas; y
• omnidireccional, en la que la radiación se hace de manera dispersa, emitiendo en todas direcciones,
pudiendo la señal ser recibida por varias antenas.
Generalmente, cuanto mayor es la frecuencia de la señal transmitida es más factible confinar la energía en un haz
direccional.
La transmisión de datos a través de medios no guiados añade problemas adicionales, provocados por la reflexión
que sufre la señal en los distintos obstáculos existentes en el medio. Resultando más importante el espectro de
frecuencias de la señal transmitida que el propio medio de transmisión en sí mismo.
Según el rango de frecuencias de trabajo, las transmisiones no guiadas se pueden clasificar en tres tipos:
• Radiofrecuencia u ondas de radio;
• microondas
o terrestres
o satelitales;
• luz
o infrarroja y
o láser.
Banda de
Nombre de frecuencia
Modulación Razón de datos Aplicaciones principales
frecuencia
ASK
30-300
LF
0,1-100
FSK
Navegación
kHz
(low frecuency)
bps
MSK
ASK
300-3000 MF
10-1000
FSK
Radio AM comercial
kHz
(medium frecuency)
bps
MSK
ASK
3-30
HF
10-3000
FSK
Radio de onda corta
MHz
(high frecuency)
bps
MSK
30-300
VHF
FSK
Hasta 100
* Televisión VHF
MHz
(very high frecuency)
PSK
kbps
* Radio FM
300-3000 UHF
Hasta 10
* Televisión UHF
PSK
MHz
(ultra high frecuency)
Mbps
* Microondas terrestres
3-30
SHF
Hasta 100
* Microondas terrestres
PSK
GHz
(super high frecuency)
Mbps
* Microondas satelitales
30-300
EHF
Hasta 750
Enlaces cercanos con punto a
PSK
GHz
(extremely high frecuency)
Mbps
punto experimentales
Radiofrecuencias
En radiocomunicaciones, aunque se emplea la palabra “radio”, las transmisiones de televisión, radio (radiofonía o
radiodifusión), radar y telefonía móvil están incluidas en esta clase de emisiones de radiofrecuencia. Otros usos
son audio, video, radionavegación, servicios de emergencia y transmisión de datos por radio digital; tanto en el
ámbito civil como militar. También son usadas por los radioaficionados.
Microondas
Además de su aplicación en hornos microondas, las microondas permiten transmisiones tanto con antenas
terrestres como con satélites. Dada sus frecuencias, del orden de 1 a 10 Ghz, las microondas son muy direccionales
y sólo se pueden emplear en situaciones en que existe una línea visual entre emisor y receptor. Los enlaces de
microondas permiten grandes velocidades de transmisión, del orden de 10 Mbps.
Infrarrojos
Esta tecnología está basada en rayos luminosos que se mueven en el espectro infrarrojo. Los estándares IrDA
soportan una amplia gama de dispositivos eléctricos, informáticos y de comunicaciones; permiten la comunicación
bidireccional entre dos extremos a velocidades que oscilan entre los 9600 bit/s y los 4 Mbit/s. Esta tecnología se
encontraba en muchas computadoras portátiles y en teléfonos móviles de finales de los años 1990 y principios de
los 2000, sobre todo en los dispositivos de fabricantes líderes de ese momento, como Nokia y Ericsson; fue
gradualmente desplazada por tecnologías como Wi-Fi y Bluetooth.
Modo de transmisión según su sentido (señales)
Símplex
Este modo de transmisión permite que la información discurra en un solo sentido y de forma permanente. Con
esta fórmula es difícil la corrección de errores causados por deficiencias de línea (por ejemplo, la señal de
televisión).
Semi-dúplex
En este modo la transmisión fluye en los dos sentidos, pero no simultáneamente, solo una de las dos estaciones
del enlace punto a punto puede transmitir. Este método también se denomina en dos sentidos alternos o símplex
alternativo (p. ej., el walkie-talkie).
Dúplex (completo)
Es el método de comunicación más aconsejable puesto que en todo momento la comunicación puede ser en dos
sentidos posibles, es decir, que las dos estaciones simultáneamente pueden enviar y recibir datos y así pueden
corregir los errores de manera instantánea y permanente (p. ej., el teléfono).
ELECTRONICA DE RED.
Conmutador (switch) es el dispositivo digital lógico de interconexión de equipos que opera en la capa de enlace
de datos del modelo OSI. Su función es interconectar dos o más segmentos de red, de manera similar a los puentes
de red, pasando datos de un segmento a otro de acuerdo con la dirección MAC de destino de las tramas en la red
y eliminando la conexión una vez finalizada esta.
Los conmutadores se utilizan cuando se desea conectar múltiples tramos de una red, fusionándolos en una sola
red. Al igual que los puentes, dado que funcionan como un filtro en la red y solo retransmiten la información hacia
los tramos en los que hay el destinatario de la trama de red, mejoran el rendimiento y la seguridad de las redes
de área local (LAN).
Concentrador (hub) es el dispositivo que permite centralizar el cableado de una red de computadoras, para luego
poder ampliarla.
Trabaja en la capa física (capa 1) del modelo OSI o la capa de acceso al medio en el modelo TCP/IP. Esto significa
que dicho dispositivo recibe una señal y repite esta señal emitiéndola por sus diferentes puertos (repetidor).
En la actualidad, la tarea de los concentradores la realizan, con frecuencia, los conmutadores (switches).
Un router —también conocido como enrutador o encaminador de paquetes— es un dispositivo que proporciona
conectividad a nivel de red o nivel tres en el modelo OSI. Su función principal consiste en enviar o encaminar
paquetes de datos de una red a otra, es decir, interconectar subredes, entendiendo por subred un conjunto de
máquinas IP que se pueden comunicar sin la intervención de un encaminador (mediante puentes de red), y que
por tanto tienen prefijos de red distintos.
SISTEMAS DE PROTECCÍON ELECTRONICAS EN LOS SITEMAS DE INFORMACIÓN
INFRAESTRUCTURA DE UN LABORATORIO DE COMPUTACION.
•
•
•
•
•
•
•
Piso falso: debe ser robusto, in deforme, resistencia a la humedad, debe tener una altura de 0.05 a
0.075.
Controlar el ruido: para ello solo basta con colocar de manera estratégica los equipos con las
impresoras, los teléfonos y el papeleo. También se puede con insonoracion del techo, suelo y paredes,
uso de mobiliario de madera, insonoracion de las máquinas.
Instalación eléctrica, se distribuye la carga, distribución de energía, uso de ups.
Temperatura. De estar entre los 23 a 26 grados.
Buena iluminación. No debe haber mucho polvo.
Restringir la entrada de comida y bebida, debe haber espacio.
Aire acondicionado.
INFRAESTRUCTURA DE UN CUARTO DE SERVIDORES Y TELECOMUNICACIONES.
•
•
•
Ubicación y características generales.
a) Piso falso, hecho de madera o metal recubierto por plástico, es anti polvo, resiste a la humedad y
corrosión, es semiaislante.
b) Ruido. Insonoracion del techo, suelo y paredes. No techos de vidrio. Uso de mobiliario de madera,
insonoracion de las máquinas.
c) Se debe contar, alarmas, monitoreo, ventanas a prueba de rotura.
Instalaciones eléctricas y temperatura.
a) Toma a tierra,
b) Generadores de energía
c) UPS.
d) Aire acondicionado, nos ayuda con la temperatura, la humedad y el polvo. (se debe tener al menos
dos).
Seguridad.
a) Riesgos naturales.
Procedentes del entorno natural
•
Uso de UPS, detectores de incendios, de humedad y agua, generadores de electricidad y
resguardo del equipo tecnológico.
b) Riesgos de vecindad.
Procedentes del entorno creado por el hombre.
Aislamiento físico, colocar cables dentro de las paredes o bajo el suelo y techo, tecnología para
restringir la entrada a la sala.
Controles de acceso.
a) Uso de candado y cerrojos convencionales.
b) Control de acceso por código, por tarjetas, por detectores biométricos (detectores de huellas
dactilares, la mano o retina).
c) Control de acceso físico, de acuerdo a las normas de la empresa,
d) Uso de guardias, detectores de metales, sistema biométricos, seguridad con animales, Protección
electrónica (Cercas Electrificadas).
SISTEMAS DE PROTECCION ELECTRICA.
Lo primero que hay que tomar en cuenta al instalar un cuarto de servidor o de computadores es su ubicación,
tener idea del lugar nos da la posibilidad de saber si estamos propenso a rayos o no.
Si el lugar es propenso a rayos, es necesario contar con un pararrayos, como su nombre lo indica evitan que los
rayos dañen el equipos
• Tierra Física. Se usa debido a cualquier derivación indebida de la corriente eléctrica.
• UPS: nos ayudan en la caída y subida de tensión, además funcionan como baterías, las cuales le dan
alimentación a lo que esté conectado (servidores, PC) en un tiempo determinado.
• Generadores Eléctricos. Utilizados mayormente cuando el sistema eléctrico se corta por más tiempo.
Funcionan generalmente por diésel.
• Líneas Independientes de suministros.
• Energía Estática: se combate con espray antiestáticos
PLAN DE CONTINGENCIA
Ciclo de PDCA
El plan de contingencias sigue el conocido ciclo de vida iterativo PDCA (plan-do-check-act, es decir, planificarhacer-comprobar-actuar). Nace de un análisis de riesgo donde, entre muchas amenazas, se identifican aquellas
que afectan a la continuidad del negocio.
Sobre dicha base se seleccionan las contramedidas más adecuadas entre diferentes alternativas, siendo plasmadas
en el plan de contingencias junto con los recursos necesarios para ponerlo en marcha.
El plan debe ser revisado periódicamente. Generalmente, la revisión será consecuencia de un nuevo análisis de
riesgo. En cualquier caso, el plan de contingencias siempre es cuestionado cuando se materializa una amenaza,
actuando de la siguiente manera:
• Si la amenaza estaba prevista y las contramedidas fueron eficaces: se corrigen solamente aspectos
menores del plan para mejorar la eficiencia.
• Si la amenaza estaba prevista pero las contramedidas fueron ineficaces: debe analizarse la causa del fallo
y proponer nuevas contramedidas.
• Si la amenaza no estaba prevista: debe promoverse un nuevo análisis de riesgos. Es posible que las
contramedidas adoptadas fueran eficaces para una amenaza no prevista. No obstante, esto no es excusa
para evitar el análisis de lo ocurrido en una vaca.
Contenido
El plan de contingencias comprende tres subplanes. Cada plan determina las contramedidas necesarias en cada
momento del tiempo respecto a la materialización de cualquier amenaza:
• El plan de respaldo. Contempla las contramedidas preventivas antes de que se materialice una amenaza.
Su finalidad es evitar dicha materialización.
• El plan de emergencia. Contempla las contramedidas necesarias durante la materialización de una
amenaza, o inmediatamente después. Su finalidad es paliar los efectos adversos de la amenaza.
• El plan de recuperación. Contempla las medidas necesarias después de materializada y controlada la
amenaza. Su finalidad es restaurar el estado de las cosas tal y como se encontraban antes de la
materialización de la amenaza.
Por otra parte, el plan de contingencias no debe limitarse a estas medidas organizativas. También debe expresar
claramente:
• Qué recursos materiales son necesarios.
• Qué personas están implicadas en el cumplimiento del plan.
• Cuáles son las responsabilidades concretas de esas personas y su rol dentro del plan.
• Qué protocolos de actuación deben seguir y cómo son.
Ejemplo
Este ejemplo no es ni mucho menos exhaustivo. Supongamos una pequeña compañía que se dedica a la
producción de prendas textiles. Un análisis de riesgos identificaría (entre otras cosas) lo siguiente:
Activos e interdependencias: Oficinas centrales → Centro de proceso de datos → Computadoras y
almacenamiento → Información de pedidos y facturación → Proceso de negocio de ventas → Imagen corporativa
Este análisis demuestra que una amenaza materializada en las oficinas centrales podría llegar a afectar al proceso
de negocio dedicado a la venta. Aunque esto no impida a la compañía seguir comercializando productos,
supondría una interrupción temporal de las ventas. Además afectaría negativamente a la imagen corporativa
provocando la pérdida de clientes. Así, se evaluaría la siguiente amenaza y su impacto:
Amenaza: Incendio. (Los activos afectados son los anteriores y los futuros).
Impacto: (es un ejemplo ficticio)
• Perdida de un 10% de clientes.
• Imposibilidad de facturar durante un mes.
• Imposibilidad de admitir pedidos durante un mes.
• Reconstrucción manual de pedidos y facturas a partir de otras fuentes.
• Sanciones por accidente laboral.
• Inversiones en equipamiento y mobiliario.
• Rehabilitación del local.
Todas estas consecuencias pueden valorarse en términos monetarios, que junto a la probabilidad de
materialización ofrecen una estimación del riesgo.
El plan de contingencias contendría someramente las siguientes contramedidas:
• Medidas técnicas:
o Extintores contra incendios.
o Detectores de humo.
o Salidas de emergencia.
o Equipos informáticos de respaldo.
• Medidas organizativas:
o Seguro de incendios.
o Precontrato de alquiler de equipos informáticos y ubicación alternativa.
o Procedimiento de copia de respaldo.
o Procedimiento de actuación en caso de incendio.
o Contratación de un servicio de auditoría de riesgos laborales.
•
Medidas humanas:
o Formación para actuar en caso de incendio.
o Designación de un responsable de sala.
o Asignación de roles y responsabilidades para la copia de respaldo.
(Etc.)
Los subplanes contendrían las siguientes previsiones:
• Plan de respaldo:
o Revisión de extintores.
o Simulacros de incendio.
o Realización de copias de respaldo.
o Custodia de las copias de respaldo (por ejemplo, en la caja fuerte de un banco).
o Revisión de las copias de respaldo.
• Plan de emergencia:
o Activación del precontrato de alquiler de equipos informáticos.
o Restauración de las copias de respaldo.
o Reanudación de la actividad.
• Plan de recuperación:
o Evaluación de daños.
o Traslado de datos desde la ubicación de emergencia a la habitual.
o Reanudación de la actividad.
o Desactivación del precontrato de alquiler.
o Reclamaciones a la compañía de seguros.
AUDITORIA DE SISTEMAS
CONCEPTOS DE AUDITORÍAS DE SISTEMAS.
Auditor: persona que audita o realiza auditoria.
Auditoria: Revisión de las cuentas de una empresa, hecha por decisión de un tribunal o a instancias de particular.
• La verificación de controles en el procesamiento de la información, desarrollo de sistemas e instalación con el
objetivo de evaluar su efectividad y presentar recomendaciones a la Gerencia.
• La actividad dirigida a verificar y juzgar información.
• El examen y evaluación de los procesos del Area de Procesamiento automático de Datos (PAD) y de la
utilización de los recursos que en ellos intervienen, para llegar a establecer el grado de eficiencia, efectividad
y economía de los sistemas computarizados en una empresa y presentar conclusiones y recomendaciones
encaminadas a corregir las deficiencias existentes y mejorarlas.
• El proceso de recolección y evaluación de evidencia para determinar si un sistema automatizado:
•
La auditoria en informática es la revisión y la evaluación de los controles, sistemas, procedimientos de
informática; de los equipos de cómputo, su utilización, eficiencia y seguridad, de la organización que
participan en el procesamiento de la información, a fin de que por medio del señalamiento de cursos
alternativos se logre una utilización más eficiente y segura de la información que servirá para una adecuada
toma de decisiones.
PLANEACION DE LA AUDITORIA DE SISTEMAS.
Antes de la ejecución de la auditoria, se debe terminar el objeto de esta, así como el diseño de los métodos,
técnicas y procedimientos necesarios para llevarlas a cabo y para preparar los documentos que servirán de
apoyo para su ejecución.
•
•
•
•
•
•
•
Identificar el Origen de la Auditoria.
a) Interna. (a petición de accionistas, socios, dirección general, gerencias)
b) Externa. (autoridades judiciales, autoridades fiscales)
c) Por emergencia.
d) Por riesgo y contingencias informáticas. (riesgo del personal, físico, software)
e) Por planes de contingencia. (por la carencia, elaboración o aplicación de planes de contingencia)
f) Por otras auditorias
g) Por parte del plan de auditorias
Realizar una vista preliminar al área que será evaluada.
a) Vista preliminar de arranque
b) Contacto con el personal del área.
c) Identificación del problema del área.
d) Objetivos iniciales de la auditoria.
e) Calculo de recursos y personas necesarias para la auditoria.
Establecer los objetivos de la auditoria.
a) Objetivo general
b) Objetivos particulares.
c) Objetivos específicos de la auditoria.
Determinar los puntos que serán evaluados en la auditoria.
a) Evaluación de las funciones y actividades del personal del área de sistemas.
b) Evaluación de las áreas y unidades administrativas del centro de cómputo.
c) Evaluación de la seguridad de los sistemas de información.
d) Evaluación de la información, documentación y registros de lo sistemas.
e) Evaluación de los sistemas, equipos, instalación y componentes.
1- Evaluación de los recursos humanos del área de sistemas.
2- Evaluación del hardware.
3- Evaluación del software.
4- Evaluación de la información y las bases de datos.
5- Evaluación de otros recursos informáticos.
6- Evaluación de equipos, instalaciones y demás componentes.
f) Elegir los tipos de auditorías que serán utilizados.
g) Determinar los recursos que serán evaluados en la auditoria.
h)
Elaborar planes, programas y presupuestos para realizar la auditoria.
Identificar y seleccionar los métodos, procedimientos, instrumentos y herramientas necesarios para la
auditoria.
Asignar los recursos y sistemas computacionales para la auditoria.
FASES DE LA AUDITORIA
•
•
Planeación.
Esta fase nos permite saber el porqué de la auditoria, donde y con quienes se trabajara la auditoria, que
trata de cumplir la auditoria, que evaluara, en qué forma se realizara y con qué recursos se contara
además también nos permite saber con qué se realizara.
Ejecución.
Se lleva a cabo todo lo establecido en la etapa de la planeación.
Lo que se realiza en esta fase es:
a)
b)
c)
d)
e)
•
Realizar las acciones programadas para la auditoria.
Aplicar los instrumentos y herramientas para la auditoria.
Identificar y elaborar los documentos de desviaciones.
Elaborar el dictamen preliminar y presentarlo a discusión.
Integrar el legajo de papeles de trabajo de la auditoria.
Dictamen.
Es la última fase de la auditoria, en el cual se le presenta de una manera detallado las desviaciones
encontradas.
a) Analizar la información y elaborar un informe de situaciones detectadas.
b) Elaborar el dictamen.
c) Presentar el informe de auditoría.
AUDITORIA DE LA FUNCION INFORMATICA
Funciones de la auditoría en informática: En cualquiera de las estructuras mencionadas hay que asegurar al
negocio un conjunto de acciones mínimas que vuelvan rentable la auditoría en informática.
Funciones mínimas.
Evaluación y verificación de los controles y procedimientos relacionados con la función de informática dentro de
la organización.
La validación de los controles y procedimientos utilizados para el aseguramiento permanente del uso eficiente de
los sistemas de información computarizados y de los recursos de informática dentro de la organización.
a) Evaluación, verificación e implantación oportuna de los controles y procedimientos que se requieren para el
aseguramiento del buen uso y aprovechamiento de la función de informática.
b) Aseguramiento permanente de la existencia y cumplimiento de los controles y procedimientos que regulan
las actividades y utilización de los recursos de informática de acuerdo con las políticas de la organización.
c) Desarrollar la auditoría en informática conforme normas y políticas estandarizadas a nivel nacional e
internacional.
d) Evaluar las áreas de riesgo de la función de informática y justificar su evaluación con la alta dirección del
negocio.
e) Elaborar un plan de auditoria en informática en los plazos determinados por el responsable de la función.
f) Obtener la aprobación formal de los proyectos del plan y difundidos entre los involucrados para su
compromiso.
g) Administrar o ejecutar de manera eficiente los proyectos contemplados en el plan de la auditoría en
informática.
Nota: Se debe aclarar que las estructuras y funciones mencionadas sólo son sugerencias ilustrativas y
enunciativas, no limitativas.
Una vez formalizada la función en cualquiera de las situaciones organizacionales señaladas, se define un
mecanismo de administración y control de la función. Dicho mecanismo garantizará que todos los recursos y
proyectos involucrados en el proceso de desempeño y gestión de la auditoría en informática, obedezcan los
principios básicos de un proceso administrativo. Entre otros, los elementos más importantes e indispensables son
la planeación, el personal, el control y el seguimiento del desempeño.
Objetivos principales de la administración de la auditoría en informática:
• Asegurar que la función de auditoría cubra y proteja los mayores riesgos y exposiciones existentes en el
medio informático en el negocio.
• Asegurar que los recursos de informática (hardware, software, telecomunicaciones, servicios, personal,
etc.) sean orientados al logro de los objetivos y las estrategias de las organizaciones.
• Asegurar la formulación, elaboración y difusión formal de las políticas, controles y procedimientos
inherentes a la auditoría en informática que garanticen el uso y aprovechamiento óptimo y eficiente de
cada uno de los recursos de informática en el negocio.
• Asegurar el cumplimiento formal de las políticas, controles y procedimientos definidos en cada proyecto
de auditoría en informática mediante un seguimiento oportuno.
• Asegurar que se den los resultados esperados por el negocio mediante la coordinación y apoyo reciproco
con:
1. Auditoría.
2. Asesores externos.
3. Informática.
4. Alta dirección.
Con el fin de que los objetivos y metas de la función de auditoría en informática se lleven a cabo con éxito, es
necesario considerar lo siguiente:
• Elaborar y formalizar los planes de auditoría en informática.
• Organizar y administrar la función de manera eficiente.
• Dirigir y controlar los proyectos de auditoría en informática con oportunidad.
• Revisar y evaluar de manera periódica el desempeño de los auditores en informática.
• Evaluar el desempeño de la función de informática.
• Otros.
Resumidamente, las funciones del Departamento de Auditoria Informática serán:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Evaluar los sistemas que aseguran el cumplimiento de las políticas, planes, procedimientos, normas y
reglamentos, emitiendo sugerencias de mejora en los controles internos establecidos.
Vigilar el cumplimiento de las normas e instrucciones establecidas por la Dirección de la Sociedad, realizando
el seguimiento de las recomendaciones emitidas.
Revisar y evaluar la fiabilidad del sistema contable establecido y que éste responde a la normativa legal e
interna.
Evaluar, asimismo, a través de la auditoria informática, la adecuación, utilidad, eficiencia, fiabilidad y
salvaguarda de la información mecanizada de la Sociedad así como la organización de los servicios que la
elaboran y procesan.
Verificar la existencia de los activos y revisar los medios de salvaguarda de los mismos.
Colaborar con los auditores externos, integrando su labor con los objetivos del Departamento de Auditoria
Interna.
El auditor externo debe tener acceso a los informes de auditoría interna y debe ser informado de cualquier
asunto que, estando en conocimiento de los auditores internos, pueda afectar a su trabajo. De igual manera,
los auditores externos deberán comunicarles cualquier asunto que pudiera afectar a la auditoría interna.
Deberán estar coordinados para evitar duplicidades en el trabajo a realizar, por medio de reuniones periódicas
y la puesta en común de técnicas de auditoria, métodos y terminología. Asistir a los miembros de la
organización, proporcionándoles análisis, recomendaciones, consejo e información concerniente a las
actividades revisadas.
Evaluar la posibilidad de establecer (y en caso afirmativo, implantarlo) un sistema de control a distancia para
asegurar el mantenimiento de un seguimiento permanente, por medios informáticos, de operaciones
anómalas, al objeto de prevenir y detectar rápidamente incidencias de normativa, mediante un modelo de
indicadores ponderado que permita ejercer un seguimiento permanente sobre determinadas situaciones que
por su gravedad pueden perjudicar sustancialmente a la organización o pueden provocar pérdidas de
rentabilidad o de negocio.
Sugerir las medidas de control interno necesarias para garantizar el cumplimiento de la normativa en la
elaboración y publicación de la información financiera, proporcionando un grado razonable de control en el
cumplimiento de fechas y plazos legales de la documentación a entregar por parte de Sociedad al Organismo
Supervisor.
Proporcionar un grado razonable de seguridad acerca del cumplimiento de las leyes y normativa en vigor
aplicable.
Informar a la Dirección de cuantas anomalías o irregularidades se detecten, recomendando las mejores
acciones correctoras.
Evaluar que la organización cuenta con los medios humanos y materiales que garanticen la adecuada gestión
del negocio, a través de la oportuna segregación de funciones.
Elaborar un Código de Conducta a nivel corporativo, que sea aprobado por el Consejo de Administración de
la Sociedad y evaluar periódicamente el cumplimiento del mismo. En caso preciso, la ejecución de
investigaciones especiales.
EVALUACION DE LOS SISTEMAS DE INFORMACION.
Qué es la evaluación
¿Qué es evaluar?
• Evaluación es señalar o estimar el valor de una cosa. Tratar la evaluación, supone utilizar la medición
para ponderar una cosa.
• La evaluación es aquel proceso mediante el cual se intenta obtener un juicio de valor o una preciación
de la bondad de un objeto de una actividad, de un proceso o de sus resultados. (Swanson, 1975)
Qué se persigue con la evaluación: Objetivos
• Medir la consecución de los objetivos previamente establecidos: Se determina si se cumple la
evaluación con los factores de eficacia, eficiencia o factor de impacto de un servicio o sistema de
información.
o Concordancia con los objetivos operativos
o Coste del sistema de información
o Consecución de los objetivos planteados
o Logra mejorar servicios o sistemas precedentes
o Qué impacto tiene en la organización y sus usuarios
• Disponer de un instrumento para diagnosticar los puntos débiles en el funcionamiento: El instrumento
puede ser el propio sistema de información o metodología específica para la medición de factores o
indicadores de actividad, calidad, servicio, producción, etc.
o Se obtienen resultados de calidad y por lo tanto los resultados deseados
o Se llevan a cabo correctamente las operaciones y actividades documentales
o Puede el sistema de información o servicio ofrecer soluciones y respuestas a las necesidades de
los usuarios
• Facilitar el proceso de la toma de decisiones: Utilizando información objetiva, no basadas en opiniones o
suposiciones.
o Mantener o eliminar un servicio que se ha evaluado
o Optar por el uso de un procedimiento u otro en función de su rendimiento y beneficios
o Modificar estrategias
o Establecer nuevos sistemas de información.
o Introducir nuevas técnicas o procedimientos para mejorar el funcionamiento de los servicios y
unidades de información y documentación.
• Permitir la comparación entre sistemas mediante la construcción de estándares de referencia: Evaluar
la unidad de información y documentación en función de trabajos de evaluación de otras bibliotecas,
centros de documentación o archivos. Por lo tanto se fijan unos indicadores comunes por los que
determinar la eficiencia y eficacia de los servicios y procesos de la UID. Éste método también ha sido
denominado evaluación exógena (Manuela de la Mano, 1998).
• Justificar la existencia de los sercicios y sistemas de información: Evaluar para justificar el buen
funcionamiento y mantenimiento de un servicio en función de su rendimiento económico, difusión o
alcance, resultados operativos, calidad de servicio y respuesta al usuario. Todo ello implica como
resultado la satisfacción del usuario.
Tipos de evaluación
Además de la concepción general de la evaluación que aquí se expone, hay que considerar otros tipos de
evaluación que si bien comparten el mismo origen y finalidad, tienen objetivos más especializados. De hecho no
es lo mismo evaluar la UID desde un punto de vista económico, que efectuar un estudio cualitativo de sus
servicios o procesos. Teniendo en cuenta esta consideración, definimos los siguientes tipos de evaluación
especializada:
•
•
•
•
•
•
•
Evaluación económica de la UID: Consiste en la definición de indicadores en los que se mide el coste, la
inversión, los beneficios o el balance de los servicios, actividades y productos que se llevan a cabo en la
UID. El objetivo de la evaluación económica es mejorar el rendimiento económico de la UID, recortando
costes sin perjudicar la eficiencia de los servicios de información o la calidad de los productos
resultantes, de tal forma que los beneficios resultantes puedan ser reinvertidos en la mejora y
eliminación de las debilidades del centro, definidas en los análisis DAFO.
Evaluación de servicios de la UID: Consiste en la definición de indicadores que miden la eficacia,
eficiencia, capacidad de respuesta, satisfacción y calidad de los servicios activos de la UID. El objetivo es
obtener datos cuantitativos del funcionamiento de los servicios, satisfacción de las necesidades de
información del usuario, tiempo de respuesta, pertinencia y exhaustividad de los resultados. Dichos
datos permiten diagnosticar si el PNT (Procedimiento Normalizado de Trabajo) es el adecuado, qué
mejoras y rutinas hay que incluir para mejorar el resultado final del servicio, de cara a cumplir con los
objetivos del plan estratégico-operativo.
Evaluación de PNTs en la UID: Implica la evaluación de los pasos y rutinas del PNT, comprobando si se
cumplen en la actividad habitual de los miembros de la UID. Durante la comprobación de los pasos del
PNT puede detectarse su ejecución o no. Este fenómeno puede deberse a múltiples circunstancias y
factores como una mala redacción del PNT o la existencia de algún paso susceptible de ser eliminado o
bien por simplicidad del proceso o inutilidad en la consecución final de los objetivos. Por otro lado
también pueden detectarse problemas de formación o falta de comunicación con los miembros de la
UID.
Evaluación de sistemas informáticos para la gestión de contenidos e información: Es la evaluación de
los programas informáticos, procesos de automatización y sistemas de gestión integral de bibliotecas,
centros de documentación, archivos y museos. Desde el funcionamiento del OPAC, hasta la página web
de la UID, se pueden enmarcar dentro de este apartado. Estos sistemas exigen modelos de evaluación
adaptados que sean capaces de medir su adaptación al entorno de la UID, detección de errores de
ejecución,
Evaluación de usuarios de información y documentación: Consiste en la obtención de información
sobre los usuarios potenciales y reales de la UID, conociendo sus opiniones, comportamiento,
necesidades de información y consideraciones con respecto a los servicios y sistemas de información y
documentación proporcionados.
Evaluación de recursos y fuentes de información: La evaluación de recursos y fuentes de información
en red constituyen un apartado unívoco correspondiente al servicio de información y referencia de la
UID. Evaluar tales contenidos permite conocer qué fuentes preferentes se deben consultar en primer
lugar para resolver una demanda informativa. Determinar la disposición de metadatos Dublin Core, Web
Semántica RDF, Ontologías OWL, la accesibilidad del recurso, la extensión y cantidad de información, la
aplicación de procesos de steaming y análisis de frecuencias, así como la organización de los contenidos
publicados con una estructura clasificatoria normalizada constituyen algunos de los factores estudiados
en este apartado.
Evaluación de la interacción usuario y recuperación de información: Es la evaluación de la satisfacción
de las necesidades de información del usuario, dicho de otra forma, que la información obtenida por el
IRS (Information Retrieval System) sea pertinente y realmente útil ante las consultas planteadas al
sistema. Son objeto de medición el número de respuestas útiles o pertinentes, el número total de
respuestas del sistema, el comportamiento del usuario, tiempo medio de permanencia en páginas de
resultados, contabilización de backspaces o retornos de página, perseverancia de las consultas, número
de veces que se reformuló una consulta, capacidad de recuperación del sistema de información, etc.
De todos los enfoques de la evaluación, serán objeto de estudio en esta asignatura los siguientes:
• Evaluación mediante estudios de usuarios
•
•
•
Evaluación de procesos y servicios de la UID: Estudio de indicadores, INPUT y OUTPUT
Evaluación de recursos y fuentes de información
Evaluación de los sistemas de recuperación y el comportamiento de los usuarios
EVALUACIÓN DEL PROCESO DE DATOS Y DE LOS EQUIPOS DE CÓMPUTO
¿QUE ES AUDITORIA DE SISTEMAS?
La auditoría en informática es la revisión y la evaluación de los controles, sistemas, procedimientos de informática; de los
equipos de cómputo, su utilización, eficiencia y seguridad, de la organización que participan en el procesamiento de la
información, a fin de que por medio del señalamiento de cursos alternativos se logre una utilización más eficiente y segura
de la información que servirá para una adecuada toma de decisiones.
La auditoría en informática deberá comprender no sólo la evaluación de los equipos de cómputo, de un sistema o
procedimiento específico, sino que además habrá de evaluar los sistemas de información en general desde sus entradas,
procedimientos, controles, archivos, seguridad y obtención de información.
La auditoría en informática es de vital importancia para el buen desempeño de los sistemas de información, ya que
proporciona los controles necesarios para que los sistemas sean confiables y con un buen nivel de seguridad. Además debe
evaluar todo (informática, organización de centros de información, hardware y software).
PLANEACIÓN DE LA AUDITORÍA EN INFORMÁTICA
Para hacer una adecuada planeación de la auditoria en informática, hay que seguir una serie de pasos previos que
permitirán dimensionar el tamaño y características de área dentro del organismo a auditar, sus sistemas, organización y
equipo.
En el caso de la auditoria en informática, la planeación es fundamental, pues habrá que hacerla desde el punto de vista de
los dos objetivos:
•
•
Evaluación de los sistemas y procedimientos.
Evaluación de los equipos de cómputo.
Para hacer una planeación eficaz, lo primero que se requiere es obtener información general sobre la organización y sobre
la función de informática a evaluar. Para ello es preciso hacer una investigación preliminar y algunas entrevistas previas,
con base en esto planear el programa de trabajo, el cual deberá incluir tiempo, costo, personal necesario y documentos
auxiliares a solicitar o formular durante el desarrollo de la misma.
INVESTIGACIÓN PRELIMINAR
Se deberá observar el estado general del área, su situación dentro de la organización, si existe la información solicitada, si
es o no necesaria y la fecha de su última actualización.
Se debe hacer la investigación preliminar solicitando y revisando la información de cada una de las áreas basándose en los
siguientes puntos:
ADMINISTRACIÓN
Se recopila la información para obtener una visión general del departamento por medio de observaciones, entrevistas
preliminares y solicitud de documentos para poder definir el objetivo y alcances del departamento.
Para analizar y dimensionar la estructura por auditar se debe solicitar a nivel del área de informática
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Objetivos a corto y largo plazo.
Recursos materiales y técnicos
Solicitar documentos sobre los equipos, número de ellos, localización y características.
Estudios de viabilidad.
Número de equipos, localización y las características (de los equipos instalados y por instalar y programados)
Fechas de instalación de los equipos y planes de instalación.
Contratos vigentes de compra, renta y servicio de mantenimiento.
Contratos de seguros.
Convenios que se tienen con otras instalaciones.
Configuración de los equipos y capacidades actuales y máximas.
Planes de expansión.
Ubicación general de los equipos.
Políticas de operación.
Políticas de uso de los equipos.
SISTEMAS
Descripción general de los sistemas instalados y de los que estén por instalarse que contengan volúmenes de información.
•
•
•
•
•
•
•
Manual de formas.
Manual de procedimientos de los sistemas.
Descripción genérica.
Diagramas de entrada, archivos, salida.
Salidas.
Fecha de instalación de los sistemas.
Proyecto de instalación de nuevos sistemas.
En el momento de hacer la planeación de la auditoria o bien su realización, debemos evaluar que pueden presentarse las
siguientes situaciones.
•
•
•
•
•
•
•
•
•
Se solicita la información y se ve que:
No tiene y se necesita.
No se tiene y no se necesita.
Se tiene la información pero:
No se usa.
Es incompleta.
No está actualizada.
No es la adecuada.
Se usa, está actualizada, es la adecuada y está completa.
En el caso de No se tiene y no se necesita, se debe evaluar la causa por la que no es necesaria. En el caso de No se tiene
pero es necesaria, se debe recomendar que se elabore de acuerdo con las necesidades y con el uso que se le va a dar. En el
caso de que se tenga la información pero no se utilice, se debe analizar por qué no se usa. En caso de que se tenga la
información, se debe analizar si se usa, si está actualizada, si es la adecuada y si está completa.
El éxito del análisis crítico depende de las consideraciones siguientes:
•
•
•
•
Estudiar hechos y no opiniones (no se toman en cuenta los rumores ni la información sin fundamento)
Investigar las causas, no los efectos.
Atender razones, no excusas.
No confiar en la memoria, preguntar constantemente.
•
Criticar objetivamente y a fondo todos los informes y los datos recabados.
PERSONAL PARTICIPANTE
Una de las partes más importantes dentro de la planeación de la auditoria en informática es el personal que deberá
participar y sus características.
Uno de los esquemas generalmente aceptados para tener un adecuado control es que el personal que intervengan esté
debidamente capacitado, con alto sentido de moralidad, al cual se le exija la optimización de recursos (eficiencia) y se le
retribuya o compense justamente por su trabajo.
Con estas bases se debe considerar las características de conocimientos, práctica profesional y capacitación que debe tener
el personal que intervendrá en la auditoria. En primer lugar se debe pensar que hay personal asignado por la organización,
con el suficiente nivel para poder coordinar el desarrollo de la auditoria, proporcionar toda la información que se solicite y
programar las reuniones y entrevistas requeridas.
Éste es un punto muy importante ya que, de no tener el apoyo de la alta dirección, ni contar con un grupo multidisciplinario
en el cual estén presentes una o varias personas del área a auditar, sería casi imposible obtener información en el momento
y con las características deseadas.
También se debe contar con personas asignadas por los usuarios para que en el momento que se solicite información o bien
se efectúe alguna entrevista de comprobación de hipótesis, nos proporcionen aquello que se está solicitando, y
complementen el grupo multidisciplinario, ya que se debe analizar no sólo el punto de vista de la dirección de informática,
sino también el del usuario del sistema.
Para completar el grupo, como colaboradores directos en la realización de la auditoria se deben tener personas con las
siguientes características:
•
•
•
•
Técnico en informática.
Experiencia en el área de informática.
Experiencia en operación y análisis de sistemas.
Conocimientos de los sistemas más importantes.
En caso de sistemas complejos se deberá contar con personal con conocimientos y experiencia en áreas específicas como
base de datos, redes, etc. Lo anterior no significa que una sola persona tenga los conocimientos y experiencias señaladas,
pero si deben intervenir una o varias personas con las características apuntadas.
Una vez que se ha hecho la planeación, se puede utilizar el formato señalado en el anexo 1, el figura el organismo, las fases
y subfases que comprenden la descripción de la actividad, el número de personas participantes, las fechas estimadas de
inicio y terminación, el número de días hábiles y el número de días/hombre estimado. El control del avance de la auditoria
lo podemos llevar mediante el anexo 2, el cual nos permite cumplir con los procedimientos de control y asegurarnos que el
trabajo se está llevando a cabo de acuerdo con el programa de auditoria, con los recursos estimados y en el tiempo
señalado en la planeación.
El hecho de contar con la información del avance nos permite revisar el trabajo elaborado por cualquiera de los asistentes.
PASOS A SEGUIR
Se requieren varios pasos para realizar una auditoría. El auditor de sistemas debe evaluar los riesgos globales y luego
desarrollar un programa de auditoria que consta de objetivos de control y procedimientos de auditoria que deben satisfacer
esos objetivos. El proceso de auditoria exige que el auditor de sistemas reúna evidencia, evalúe fortalezas y debilidades de
los controles existentes basado en la evidencia recopilada, y que prepare un informe de auditoría que presente esos temas
en forma objetiva a la gerencia. Asimismo, la gerencia de auditoria debe garantizar una disponibilidad y asignación
adecuada de recursos para realizar el trabajo de auditoria además de las revisiones de seguimiento sobre las acciones
correctivas emprendidas por la gerencia.
INFORME
En si todos los encuestados respondieron la totalidad de las preguntas. Todos tienen la misma respuesta en la pregunta
sobre la inteligencia artificial, todos dicen prácticamente lo mismo acerca de lo que es la auditoria de sistemas en que es un
sistema de revisión, evaluación, verificación y evalúa la eficiencia y eficacia con que se está operando los sistemas y corregir
los errores de dicho sistema. Todos los encuestados mostraron una características muy similares de las personas que van a
realizan la auditoria; debe haber un contador, un ingeniero de sistemas, un técnico y que debe tener conocimientos,
práctica profesional y capacitación para poder realizar la auditoria.
Todos los encuestados conocen los mismos tipos de auditoria, Económica, Sistemas, Fiscal, Administrativa.
Para los encuestados el principal objetivo de la auditoria de sistemas es Asegurar una mayor integridad, confidencialidad y
confiabilidad de la información mediante la recomendación de seguridades y controles.
Mirando en general a todos los encuestados se puede ver que para ellos la auditoria de sistemas es muy importante porque
en los sistemas esta toda la información de la empresa y del buen funcionamiento de esta depende gran parte del
funcionamiento de una empresa y que no solo se debe comprender los equipos de cómputo sino también todos los
sistemas de información desde sus entradas, procedimientos, controles, archivos, seguridad y obtención de información.
La auditoría de los sistemas de informática es de mucha importancia ya que para el buen desempeño de los sistemas de
información, ya que proporciona los controles necesarios para que los sistemas sean confiables y con un buen nivel de
seguridad.
CONTROLES
Los datos son uno de los recursos más valiosos de las organizaciones y aunque son intangibles, necesitan ser controlados y
auditados con el mismo cuidado que los demás inventarios de la organización.
Se debe tener presente:
a) La responsabilidad de los datos es compartida conjuntamente por alguna función determinada de la organización y
la dirección de informática.
b) Un problema que se debe considerar es el que se origina por la duplicidad de los datos y consiste en determinar los
propietarios o usuarios posibles (en el caso de redes y banco de datos) y la responsabilidad de su actualización y
consistencia.
c) Los datos deberán tener una clasificación estándar y un mecanismo de identificación que permita detectar
publicidad y redundancia dentro de una aplicación.
d) Se deben relacionar los elementos de los datos con las bases de datos donde estén almacenados, así como los
reportes y grupos de procesos donde son generados.
CONTROL DE LOS DATOS FUENTES Y MANEJO DE CIFRAS DE CONTROL
La mayoría de los delitos por computadora son cometidos por modificaciones de datos fuente al:
• Suprimir u omitir datos
• Adicionar datos
• Alterar datos
• Duplicar procesos
Esto es de suma importancia en caso de equipos de cómputo que cuentan con sistemas en línea, en los que los usuarios son
los responsables de la captura y modificación de la información al tener un adecuado control con señalamiento de
responsables de los datos, con clave de acceso de acuerdo a niveles
EVALUACIÓN DE LA SEGURIDAD
En el momento de evaluar la seguridad de los sistemas informáticos (SI) de una organización, o de proceder a la
implementación de las políticas de seguridad sobre estos SI, conviene conocer cuál es la terminología que se
emplea, cuáles son las áreas en las que se puede aplicar y cuál es el entorno normativo y legislativo en el que nos
podemos mover. El objetivo de este artículo es precisamente la aclaración de estos puntos.
En primer lugar se repasan los principales estándares (ISO 27000) y legislaciones, que nos ayudarán a tener una
visión global de los elementos que intervienen en la infraestructura de seguridad y los controles que pueden
establecerse.
Con todo lo anterior podemos pasar a evaluar nuestra infraestructura de seguridad para detectar y clasificar
nuestros activos de información y verificar el grado de cumplimiento de los requisitos de seguridad o el grado de
madurez de la organización respecto a la seguridad de los SI.
Como resumen del modo en que la organización gestiona la seguridad de sus SI, que es a la vez un elemento
normativo consensuado y de obligado cumplimiento para los integrantes de la organización, tenemos la Política
de seguridad, tratada en el último apartado de este artículo.
Conceptos principales en Seguridad de la Información
•
•
•
•
•
•
•
•
•
•
Activo (Asset). Algo que tiene valor para una organización. Recurso del sistema de información necesario
para el funcionamiento apropiado de la organización y la consecución de los objetivos previstos. Los
activos de información pueden estar sujetos a amenazas tanto internas como externas. Estos riesgos
pueden afectar a uno o más de los tres atributos fundamentales de un activo: disponibilidad (availability),
confidencialidad e integridad.
Amenaza (threat). Evento que puede desencadenar un incidente en la organización, produciendo daños
o pérdidas materiales o inmateriales en sus activos.
Confidencialidad (reliability). Hace referencia a la habilidad para proteger, haciéndolos no visibles o no
disponibles, los datos de aquellos que no están autorizados a acceder a ellos.
Disponibilidad (availability). Es la capacidad de poder acceder a los activos informativos en el momento
en que se necesiten y de poder usarlos correctamente (aquellos debidamente autorizados).
Gestión de la seguridad de la información (Information security management) es la parte de la gestión de
IT (IT gobernance) encargada de la protección y la seguridad de los activos informativos de una
organización (information assets).
Impacto. Consecuencia para un activo de la materialización de una amenaza.
Integridad. Es la habilidad de prevenir la modificación de los activos por aquellos que no están autorizados
o que estándolo los modifican de forma incorrecta. Esta habilidad implica la posibilidad de revertir o
deshacer los cambios realizados.
ISMS. Information Security Management System. Es la parte de la gestión de un sistema, basada en un
análisis de riesgos, encargada de establecer, implementar, operar, monitorizar, revisar, mantener y
mejorar la seguridad de la información. Un ISMS sirve para asegurar la confidencialidad, disponibilidad e
integridad de la información de la organización
Riesgo. Es la posibilidad de que se produzca un impacto determinado en un activo.
Salvaguarda (countermeasure). Acción, procedimiento o dispositivo físico o lógico que reduce el riesgo.
•
•
•
Seguridad de la Información (information security), según el estándar ISO 27001 es la preservación de la
confidencialidad, integridad y disponibilidad (availability) de la información. Otras propiedades implicadas
son la autenticidad, responsabilidad (accountability), no-repudiación y confiabilidad (reliability).
Seguridad, en su sentido más general quiere decir proteger nuestros activos, lo que implica preservarlos
de atacantes, de desastres naturales, de condiciones ambientales adversas, de interrupción del suministro
eléctrico, del robo o el vandalismo, etc. La seguridad es al mismo tiempo el conjunto de medidas tomadas
contra posibles ataques, espionaje, sabotaje, etc.
Vulnerabilidad. Debilidad de un activo que puede ser explotada por una amenaza para materializar una
agresión sobre dicho activo.
Conceptos principales en seguridad y sus relaciones, según ISO 15408.
Principales organismos dedicados a la seguridad en las Tecnologías de la Información
COBIT (Control Objectives for Information and related Technology). Conjunto de Mejores Prácticas para el manejo
de información, creado por Information Systems Audit and Control Association (ISACA) y el IT Governance Institute
(ITGI) en 1992 que contiene un conjunto de 34 objetivos de algo nivel, uno para cada uno de los procesos de IT.
La seguridad de los sistemas se divide en objetivos de control, como identificación, autenticación, gestión de
cuentas, clasificación de datos, etc. COBIT especifica el examen de la efectividad, eficiencia, confidencialidad,
integridad, disponibilidad, cumplimiento y confiabilidad de los objetivos de control. En el modelo se definen cuatro
dominios: planificación y organización, adquisición e implementación, entrega y soporte, y monitorización. Cada
uno de estos dominios tiene definidos procesos, actividades y tareas.
National Institute of Standards and Technology (NIST, http://csrc.nist.gov). Este instituto gubernamental de USA
emite una serie de publicaciones a modo de guías (NIST Guidelines), entre las cuales las más destacadas en relación
con la seguridad son las de la serie 800, como: Information Security Handbook: A Guide for Managers (800-100),
Recommended Security Controls for Federal Information Systems (800-53), Guide to Information Technology
Security Services (800-35), Risk Management Guide for Information Technology Systems (800-30), Engineering
Principles for Information Technology Security (800-27), Guide for Developing Security Plans for Federal
Information Systems (800-18), Generally Accepted Principles and Practices for Securing Information Technology
Systems (800-14), and An Introduction to Computer Security: The NISTHandbook (800-12).
La titulada Security Self-Assessment Guide for Information Technology Systems (800-26), publicada desde el 2001,
es una checklist de 137 preguntas para examinar un sistema.
La Recommended Security Controls for Federal Information Systems (800-53) mapea estas cuestiones con los
controles de seguridad más útiles. Describe 17 familias de controles, como controles de acceso, sensibilización y
formación, auditoría, evaluación de riesgos, seguridad del personal, etc. Cada familia se subdivide en controles
específicos que normalmente hacen referencia a otros documentos más específicos del NIST.
Guías de la ENISA. Conjunto de guías generadas por la European Network of Information Security Agency, que
busca establecer estándares y difundir Mejores Prácticas para el mejoramiento de las redes y la seguridad de la
información en la Unión Europea (Enisa, 2011).
Top 20 de las fallas de seguridad. Presentación anual de los fallos de seguridad informática más críticas hecha por
el SysAdmin Audit, Networking and Security (SANS) de los Estados Unidos (SANS, 2011).
OSSTMM (Open Standard Security Testing Model). Manual de la Metodología Abierta de Testeo de Seguridad
desarrollado por ISECOM (Institute for Security and Open Methodologies), que brinda una referencia para realizar
análisis de seguridad informática en diferentes niveles.
ISM3 (Information Security Management Maturity Model). Estándar para la creación de sistemas de gestión de la
seguridad de la información basados en ITIL, ISO27001 o Cobit, a través de metodologías de análisis de riesgo que
tienen como objetivo garantizar la consecución de los objetivos del negocio.
ITIL (Information Technology Infrastructure Library). Conjunto de conceptos y buenas prácticas para la gestión de
servicios, el desarrollo y/o las operaciones relacionadas con las tecnologías de la información (APM Group, 2007).
El conjunto lo constituyen 44 libros. No se dedica exclusivamente a temas de seguridad pero hay una sección
dedicada a ellos e indica cómo implementar controles sobre los procesos de gestión de servicios de IT.
Information Security Forum (ISF) Standard of Good Practice for information Security. Es una guía que contiene un
checklist de las políticas que las compañías y empleados deben implementar. Se divide la gestión de la seguridad
en 5 partes: aplicaciones críticas para el negocio, instalaciones de computadores, redes, sistemas, y desarrollo.
Estas partes se subdividen a su vez en 30 áreas y las áreas en 135 secciones.
Basel II. Es una compilación del Second Report from the Basel Committee on Banking Supervision, Risk
Management Principles for Electronic Banking. Estudia y detalla los riesgos de seguridad relacionados con el
negocio bancario.
Con objeto de armonizar los diferentes marcos y estándares se elaboró el Calder—Moir IT Governance Framework
como una clasificación gráfica que relaciona los principales tópicos como estrategia de negocio, riesgos, estrategia
de IT, operaciones, capacidades y gestión de cambios
Principios y Requisitos de la infraestructura de seguridad
Infraestructura de Seguridad
El conjunto de elementos normativos, procedimentales, físicos, lógicos, etc., que conforman la infraestructura de
seguridad de una organización se pueden situar en una pirámide en la que los elementos superiores determinan
y conforman los inferiores. De este modo los elementos tácticos (políticas de seguridad) determinan los
estratégicos (clasificación y organización de los activos de seguridad, conformidad con normativas y legislaciones)
y éstos sirven para definir los elementos operativos (gestión de la seguridad del entorno, de los sistemas, de las
operaciones,…; gestión de incidencias y continuidad), como se ve en la imagen siguiente:
Las regulaciones o reglamentos (Regulations) son mandatos o normas de obligado cumplimiento que deben ser
implementadas, de lo contrario pueden dar lugar a multas, cierre del negocio o incluso encarcelamiento. Ejemplos
de reglamentos son la Sarbanes–Oxley Act (SOX), la Gramm–Leach–Bliley Act (GLBA), o la Health Insurance
Portability and Accountability Act (HIPAA).
Las políticas (policies) son declaraciones documentadas de requerimientos de alto nivel (high-level requirements)
e intenciones de gestión.
Los estándares proporcionan instrucciones o indicaciones basadas en las políticas o en otros estándares, de
manera que enlazan las políticas con los procedimientos. Un ejemplo es el estándar ISO 27001, dedicado a la
seguridad de la información.
Los procedimientos (procedures) son instrucciones para la ejecución paso a paso de procesos. Son más detallados
que las políticas e indican la forma concreta de implementarlas.
Las directrices (Guidelines) son ejemplos de implementación para casos concretos de ciertos procedimientos.
Constituyen un conjunto de buenas prácticas que se recomienda seguir en determinadas circunstancias.
Requisitos Básicos de Seguridad de la Información (Infosec Basics)
Requisitos mínimos de seguridad que deben implementarse en organizaciones de cualquier tamaño:
• Disponer de una política de seguridad.
• Establecimiento de responsabilidades y procedimientos.
• Clasificación de la información e identificación de los propietarios.
• Los contratos y los acuerdos con terceros deben incluir la seguridad de la información.
• Proporcionar seguridad física a los sistemas de información.
• Mantener actualizado el software antivirus.
• Implementar y hacer cumplir los controles de acceso físicos.
• Implementar y hacer cumplir los controles de acceso a los sistemas.
•
•
•
•
•
•
Gestionar las vulnerabilidades.
Disponer de un procedimiento de respuesta a las incidencias.
Disponer de un plan de continuidad del negocio y de un plan de recuperación de desastres.
Monitorizar el cumplimiento.
Documentar las políticas, procesos y procedimientos.
Asegurarse de que los usuarios son entrenados y conscientes de sus responsabilidades.
Principios Generales de Seguridad de la Información (Generally Accepted Information Security Principles, GAISP)
• Principio de penetración (The pervasive principle): ha de existir un conjunto claramente definido de
responsabilidades en materia de seguridad de la información.
• Principio de concienciación (The awareness principle): todos los empleados tienen que tener un
conocimiento adecuado de las políticas de seguridad de la información. También deben ser informados
de las amenazas que puedan existir sobre la seguridad de los dato.
• Principio ético (The ethics principle): usuarios y administradores deben usar la información de forma
éticamente responsable.
• Principio multidisciplinario (The multidisciplinary principle): todo el personal esencial de las diferentes
unidades de negocio debe ser implicado en el programa de seguridad de la información.
• Principio de proporcionalidad (The proportionality principle): los análisis de riesgos son esenciales para
determinar la protección más adecuada para los activos de información y la porción de recursos apropiada
que se ha de dedicar a estos activos.
• Principio de integración (The integration principle): debe haber un programa de seguridad de la
información que abarque toda la organización, coordinado e integrado con cada unidad de negocio.
• Principio de puntualidad (The timeliness principle): los agujeros de seguridad deben manejarse de una
forma eficiente y en un tiempo razonable.
• Principio de valoración (The assessment principle): deben evaluarse los riesgos periódicamente y cuando
ocurran cambios en los sistemas o en la tecnología aplicada.
• Principio de equidad (The equity principle): los sentimientos personales no deben interferir en el manejo
de la seguridad de la información
INTERPRETACIÓN DE LA INFORMACIÓN y SELECCIÓN DE LA ESTRATEGIA
Técnicas para la interpretación de la información
El análisis crítico de los hechos sirve para discriminar y evaluar la información, se basa en las siguientes preguntas:
Pregunta finalidad que determina
Que
Donde
Cuando
Quien
Como
Cuanto
Pregunta finalidad que determina
el propósito
el lugar
el orden y el momento
la persona responsable
los medios
la cantidad
Las respuestas deben ser sometidas a la pregunta "Por qué” para justificar la información obtenida, cada
interrogante debe ser debe descomponer de la siguiente manera:
1. Propósito
a) Que se hace
b) Por qué se hace
c) Que otra cosa podría hacerse
d) Que debería hacerse
2. Lugar
a) Donde se hace
b) Por qué se hace ahí
c) En que otro lugar podría hacerse
d) Donde debería hacerse
3. Sucesión
a) Cuando se hace
b) Por qué se hace entonces
c) Cuando podría hacerse
d) Cuando debería hacerse
4. Persona
a) Quien lo hace
b) Por qué lo hace esa persona
c) Que otra persona podría hacerlo
d) Quien debería hacerlo
5. Medios
a) Como se hace
b) Por qué se hace de ese modo
c) De que otro modo podría hacerse
d) Como debería hacerse
6. Cantidad
e) Cuanto se hace
f) Por qué se hace esa cantidad (volumen)
g) Cuanto podría hacerse
h) Cuanto debería hacerse
EVALUACIÓN DE LOS SISTEMAS
Se debe evaluar la información obtenida en los sistemas para poder:
• Determinar el objetivo y compararlo con lo obtenido
• Buscar la interrelación con otros sistemas
• Evaluar la secuencia y flujo de las interacciones
Para esto se debe:
1. Evalúe el objetivo: Evalué el objetivo general y el alcance del sistema funcional en forma clara y precisa.
2. Evalué la interacción con otros sistemas: Se debió analizar la información con el propósito de encontrar las
interacciones y sus contactos con otros sistemas a fin de determinar si existe un sistema integral de
información, sistemas asilados, o simplemente programas o si existe redundancia o ruido y si existen controles.
3. Evalúe si se obtiene la secuencia y flujo de las interacciones: Es necesario establecer el flujo de información a
través del sistema graficándolo de tal manera que refleje un periodo de tiempo así como el orden de
ocurrencia.
4. Evalué el sistema funcional: Verificar la congruencia del objetivo.
5. Evalúe la modularidad del sistema: Ver que el objetivo particular de cada módulo es buscar el objetivo general
del sistema.
6. Evalué la segmentación del sistema: Deben evaluarse aquellas funciones que son realizadas para distintos
módulos, cada función extraída del módulo debió ser consistente y validad con el usuario.
7. Evalué la fragmentación del sistema: Se deben evaluar las funciones haciendo énfasis en “que hace" y no en
como lo hace.
8. Evalué el flujo de información del sistema funcional: Identifique en cada documento su origen y su
seguimiento a través de las diferentes entidades o departamentos por donde transita.
9. Evalúe los documentos de entrada y el contenido de los reportes: Verificar que los reportes o pantallas de
salida contengan todos los datos necesarios sin importar de donde provienen.
10. Evalúe los controles de operación del sistema: Ver en el proceso operacional si se llevan a cabo controles, es
decir se evalúa su razón de ser, su método y su grado de sensibilidad.
11. Cuantifique el volumen de información que se manejara: Debe tener una idea en la aproximación de los
recursos que se necesitan si están siendo usados correctamente.
12. Evaluación de los archivos Señalar los atributos, propiedades, estructura, clasificación, organización, factor de
bloque, frecuencia de uso, campos, códigos, tamaños de los archivos.
13. Evaluación de reportes: Se evaluaran la infraestructura de salida de reportes, por ejemplo los programas que
lo generan, los archivos usados, frecuencia. Usuario y contenido.
EVALUACION DE LOS SISTEMAS DE INFORMACION
Busca comprobar que la aplicación cumpla las especiaciones requeridas por el usuario, que se haya desarrollado
dentro de lo presupuestado y que efectivamente cumpla con los objetivos y beneficios esperados.
1. Evaluación en la ejecución: Se refiere al uso de cuestionarios para recabar datos acerca de la actuación de la
aplicación en la computadora, con objeto de conocer que tan bien o que tan mal está siendo usada y opera
eficientemente.
2. Evaluación en el impacto: Se hace sobre la manera en que afecta a la gente que interviene en la aplicación,
para determinar como la implementación y el uso afecta a la organización.
Controles
Se dividen en generales, operativos y técnicos.
Los controles generales se aplican a todo el procesamiento de la información y son independientes de las
aplicaciones, incluyen:
•
•
Planeación
Organización
•
•
•
•
•
Políticas y Procedimientos
Estándares
Administración de recursos
Seguridad
Confidencialidad.
Los controles operativos comprenden cada uno de los sistemas en forma individual y constan de:
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Control y flujo de la información y tabla de decisiones
Control de Proyectos
Organización del proyecto
Reporte de avances
Revisiones del diseño del sistema
Control de cambios a programa
Requisición de cambio
Bitácora de cambios
Mantenimiento y documentación
Producción
Controles de documentación
Documentación
Mantenimiento y acceso a la documentación
Control de sistemas y programas
Sistemas en lote
Sistemas en línea
Controles de entrada
Control de programa
Controles de salida.
Los controles técnicos son:
•
•
•
•
•
•
•
Controles de operación y uso de la computadora
Supervisor
Capturistas
Bibliotecario
Operadores
Mesa de control
Controles de entrada y salida
Descargar