Segundo Ejercicio Cosecha Propia

43
Segundo Ejercicio. Cosecha propia Criptografía. Definiciones Confusión, Difusión, Cifrador de flujo, Cifrador de bloque, Criptografía simétrica, asimétrica, Sobre digital ¿y Huella digital? Confusión : Técnica de criptografía por la cual existe una relación lo más compleja posible entre la clave y el texto cifrado Difusión : Técnica de criptografía basada en la distribución estadística de caracteres por la cual cada caracter del texto cifrado depende del mayor número posible de caracteres del texto original Cifrador de flujo : Cifran caracter a caracter. Son muy rápidos y basados sólo en técnicas de confusión. Ejemplos son RC4, RC5, A52. Uso mayoritario en Wifi sobre WEP y GSM. Cifrador de bloque : Cifran descomponiendo el texto original en bloques de igual longitud. Son lentos y basados en técnicas de confusión y difusión. Los sistemas actuales usan cifrado en bloque. Ejemplos son DES, TDES, AES. Uso mayoritario en WIMAX y Wifi sobre WPA Criptografía simétrica : Utilizan la misma clave para cifrar y descifrar. La distribución de claves exige un canal seguro. El número de claves implicadas es muy grande según aumenta el número de participantes. Ejemplos, los nombrados en cifrador de flujo y bloque. Criptografía asimétrica : Cada participante usa una clave privada y una clave pública. El emisor cifra el mensaje con la clave pública del receptor. El receptor descifra con su clave privada. También se usa como medio de autenticación cuando el emisor cifra un resumen del mensaje con su clave privada. Esto se conoce como firma digital cuando se añade al mensaje original. Ejemplos son RSA y DSA. Sobre digital : Es la combinación de criptografía simétrica para cifrar un mensaje y criptografía asimétrica para transmitir la clave simétrica que descifra el mensaje. Esta técnica es utilizada en SSL. ¿Huella digital: Dependiendo de los autores se asocia a la firma electrónica (con criptografía asimétrica o simétrica) y al hash resumen de un mensaje.? Métrica3. Perfil Jefe de Proyecto En Métrica v3 se definen 5 perfiles de participantes: Directivo, Jefe de Proyecto, Consultor, Analista y Programador. El Jefe de Proyecto es el encargado de dirigir y coordinar a los recursos humanos que se encargan del desarrollo del SW. Además es responsable de alcanzar los objetivos de costes, plazos y especificaciones de calidad del producto software. En esta tarea, el jefe de Proyecto realiza funciones como la elección del modelo de ciclo de vida, determinar las procesos, fases y tareas de que consta el proyecto, realizar la estimación de esfuerzo, elaborar la planificación del proyecto, tareas de seguimiento y control y coordinar la documentación final del proyecto. Este perfil se divide en los siguientes participantes: Jefe de Proyecto, Responsable de operación, Responsable de implantación, Responsable de mantenimiento, Responsable de sistemas, Responsable de calidad y Responsable de seguridad. Métrica3. Interfaz de Gestión de la Configuración Es una de las 4 interfaces de Métrica 3. Su objetivo es triple: 1. Mantener la integridad del producto a lo largo de todo el proceso de desarrollo 2. Asegurar que no se producen cambios incontrolados sobre el producto 3. Garantizar que cada integrante del equipo de desarrollo está en disposición de obtener una versión actualizada de los productos que manejan La interfaz de Gestión de la Configuración abarca tanto a productos ejecutables como a modelos de análisis y diseño, documentación, etc. La interfaz de Gestión de la Configuración facilita el mantenimiento y permite tener una visión global de los cambios producidos en el producto y las diferentes versiones por las que pasa. Todo ello se traduce en un incremento de calidad sobre el desarrollo del software. La interfaz de Gestión de la Configuración se realiza en paralelo sobre los procesos de desarrollo del Software (EVS-MSI)

Transcript of Segundo Ejercicio Cosecha Propia

Page 1: Segundo Ejercicio Cosecha Propia

Segundo Ejercicio. Cosecha propia

Criptografía. Definiciones Confusión, Difusión, Cifrador de flujo, Cifrador de bloque, Criptografía simétrica, asimétrica, Sobre digital ¿y Huella digital?Confusión: Técnica de criptografía por la cual existe una relación lo más compleja posible entre la clave y el texto cifradoDifusión: Técnica de criptografía basada en la distribución estadística de caracteres por la cual cada caracter del texto cifrado depende del mayor número posible de caracteres del texto originalCifrador de flujo: Cifran caracter a caracter. Son muy rápidos y basados sólo en técnicas de confusión. Ejemplos son RC4, RC5, A52. Uso mayoritario en Wifi sobre WEP y GSM.Cifrador de bloque: Cifran descomponiendo el texto original en bloques de igual longitud. Son lentos y basados en técnicas de confusión y difusión. Los sistemas actuales usan cifrado en bloque. Ejemplos son DES, TDES, AES. Uso mayoritario en WIMAX y Wifi sobre WPACriptografía simétrica: Utilizan la misma clave para cifrar y descifrar. La distribución de claves exige un canal seguro. El número de claves implicadas es muy grande según aumenta el número de participantes. Ejemplos, los nombrados en cifrador de flujo y bloque.Criptografía asimétrica: Cada participante usa una clave privada y una clave pública. El emisor cifra el mensaje con la clave pública del receptor. El receptor descifra con su clave privada. También se usa como medio de autenticación cuando el emisor cifra un resumen del mensaje con su clave privada. Esto se conoce como firma digital cuando se añade al mensaje original. Ejemplos son RSA y DSA.Sobre digital: Es la combinación de criptografía simétrica para cifrar un mensaje y criptografía asimétrica para transmitir la clave simétrica que descifra el mensaje. Esta técnica es utilizada en SSL.¿Huella digital: Dependiendo de los autores se asocia a la firma electrónica (con criptografía asimétrica o simétrica) y al hash resumen de un mensaje.?

Métrica3. Perfil Jefe de ProyectoEn Métrica v3 se definen 5 perfiles de participantes: Directivo, Jefe de Proyecto, Consultor, Analista y Programador.El Jefe de Proyecto es el encargado de dirigir y coordinar a los recursos humanos que se encargan del desarrollo del SW. Además es responsable de alcanzar los objetivos de costes, plazos y especificaciones de calidad del producto software.En esta tarea, el jefe de Proyecto realiza funciones como la elección del modelo de ciclo de vida, determinar las procesos, fases y tareas de que consta el proyecto, realizar la estimación de esfuerzo, elaborar la planificación del proyecto, tareas de seguimiento y control y coordinar la documentación final del proyecto.Este perfil se divide en los siguientes participantes:Jefe de Proyecto, Responsable de operación, Responsable de implantación, Responsable de mantenimiento, Responsable de sistemas, Responsable de calidad y Responsable de seguridad.

Métrica3. Interfaz de Gestión de la ConfiguraciónEs una de las 4 interfaces de Métrica 3. Su objetivo es triple:

1. Mantener la integridad del producto a lo largo de todo el proceso de desarrollo 2. Asegurar que no se producen cambios incontrolados sobre el producto 3. Garantizar que cada integrante del equipo de desarrollo está en disposición de obtener una

versión actualizada de los productos que manejan

La interfaz de Gestión de la Configuración abarca tanto a productos ejecutables como a modelos de análisis y diseño, documentación, etc.La interfaz de Gestión de la Configuración facilita el mantenimiento y permite tener una visión global de los cambios producidos en el producto y las diferentes versiones por las que pasa.Todo ello se traduce en un incremento de calidad sobre el desarrollo del software.La interfaz de Gestión de la Configuración se realiza en paralelo sobre los procesos de desarrollo del Software (EVS-MSI)

Page 2: Segundo Ejercicio Cosecha Propia

Métrica3. Interfaz de Gestión del proyectoEs una de las 4 interfaces de Métrica 3. Su objetivo es la planificación del proyecto, estimación de recursos y seguimiento y control del proyecto. Métrica tiene como referencia el EUROMÉTODO.La gestión del proyecto mantiene 3 procesos:

1. Inicio del Proyecto: Incluye las tareas de estimación de esfuerzo y planificación. Utiliza técnicas de estimación como Albretch, Mark2 o Staffing Size. Además hace uso de WBS (Work Breakdown Structure), PERT, GANTT y diagramas de extrapolación. El inicio del proyecto se realiza al concluir el proceso EVS y antes de comenzar ASI.

2. Seguimiento del Proyecto: En este proceso se realiza desde la asignación de recursos a las tareas, hasta su aceptación. Además se ocupa de la gestión de incidencias que surgen durante el desarrollo, así como la petición de cambios de requisitos del cliente. El seguimiento del proyecto usa técnicas como diagramas de GANTT, Historial de Recursos y patrón de límites.

3. Finalización del Proyecto. Tras la fase de MSI, la finalización del proyecto se ocupa de recopilar la documentación final del proyecto y cerrar el proyecto.

Métrica3. Caminos y Cálculos de accesoAmbos son prácticas de Métrica 3 que se usan en los procesos de Análisis y Diseño del Sistema de Información.Los caminos de acceso se usan para determinar las secuencias de acceso a datos que realizan los módulos funcionales sobre el modelo de datos. También puede usarse esta práctica sobre estructuras de ficheros.Cuando se usa en el Análisis permiten verificar que el modelo lógico normalizado cumple los requisitos. Cuando se usa en el Diseño, permite verificar el modelo físico en cuanto a actualizaciones y consultas. El proceso que se sigue es identificar las tablas que deben ser accedidas por los módulos y crear vistas con ellas. Se indica el tipo de acceso a cada una de las vistas y se detectan posibles accesos redundantes o excesivamente complejos.Los cálculos de acceso tienen por objetivo estimar el número de accesos sobre el modelo de datos al realizar una consulta determinada. Hacen uso de los resultados del camino de accesos.Cuando se usa en el análisis permite determinar en el acceso lógico, la viabilidad de las consultas. Cuando se usa en el diseño, permite optimizar del modelo físico de datos.En esta práctica se usa notación matricial.

Métrica3. JAD y JRPAmbas son prácticas de Métrica 3 sobre sesiones de trabajo.El objetivo de JAD (Joint Application Design) es minimizar el tiempo de desarrollo manteniendo la calidad del producto.El objetivo de JRP (Joint Requirements Planning) es obtener los mejores resultados, en el menor tiempo posible e incrementando la calidad. Para ello potencian la participación activa de los altos cargos.En ambos casos se realizan pocas reuniones de larga duración. Se diferencian en los participantes y en los productos finales.En las reuniones de ambas prácticas existirá un moderador, el promotor del proyecto y un modelador de diagramas. Además en una sesión JAD participan el equipo de desarrollo, jefe de proyecto y usuarios. Mientras, en una sesión JRP participan consultores, director de proyecto y usuarios de alto nivel.Los productos de salida en una sesión JAD son diagramas realizados con herramientas CASE y validados por los integrantes de la sesión. En una sesión JRP, el resultado son modelos de procesos de la organización, modelos de sistemas de información, etc

Page 3: Segundo Ejercicio Cosecha Propia

Métrica3. Análisis de impacto e Impacto en la sociedadAmbos son prácticas de Métrica 3, pero son bastante diferentes.El análisis de impacto se usa en fases tardías del desarrollo, como el Mantenimiento de Sistemas de Información. Su objetivo es determinar de manera cuantitativa qué elemntos están realmente implicados en la petición de cambio propuesta por el usuario y su viabilidad. Se realiza sobre sistemas que se encuentran en producción. Se realiza sobre un inventario de componentes en el que se localizarán los componentes afectados. En ese momento, se aplicarán indicadores sobre cada componente y se cuantifica el coste. Gracias a esta práctica se puede evaluar la viabilidad del cambio, su correcta planificación y recursos necesarios para abordarla.El impacto en la sociedad se usa en fases tempranas del desarrollo como la Planificación y el Estudio de Viabilidad del Sistema. Consiste en analizar, anticipadamente, las consecuencias para la organización de una acción relacionada con un cambio de los Sistemas y Tecnologías de la Información y Comunicaciones. Se analizarán factores como la dificultad de la nueva tecnología, el rechazo cultural, coste de la adquisición, tiempo de adaptación, etc.

Sistemas Operativos. Diferencias entre estructura monolítica y microkernelSistemas monolíticos. El sistema operativo funciona como un único programa cargado en memoria. Esto implica un gran acoplamiento entre sus módulos. La estructura monolítica tiene como ventajas la robustez del sistema ya que está hecho a medida y la velocidad de ejecución. Como inconvenientes tiene la falta de flexibilidad, ausencia de controles de protección y privilegio al acceder a rutinas que manejan distintos recursos. Para pasar de modo usuario a modo kernel se ejecutan los llamados TRAPS. UNIX adopta esta estructura, sin embargo versiones posteriores y los sistemas Linux implementan una estructura monolítica modular más flexible y manejable.Sistemas microkernel. También llamados Cliente/Servidor. Están basados en un kernel que implementa las funcionalidades mínimas y fundamentales de un Sistema Operativo. Las demás funcionalidades como sistema de archivos, entrada salida, etc. se implementan por separado como procesos servidores. El kernel se encarga de comunicar los procesos entre ellos. Los procesos clientes y servidores se ejecutan en modo usuario, mientras que el microkernel lo hace en modo protegido. Sus principales ventajas son la flexibilidad, pudiendo cambiar y elegir los procesos servidores, bajo acoplamiento, microkernel ligero y seguridad.

Sistemas Operativos. Memoria virtual. Paginación por demandaTradicionalmente, para ejecutar un programa en memoria principal (RAM), éste debía cargarse íntegramente en memoria. Esto no es viable en sistemas multiprogramados y programas cuyo tamaño es superior al de la memoria real.La paginación es la técnica que divide los programas en bloques indivisibles de memoria llamados páginas, generalmente del tamaño de bloque de disco para optimizar las operaciones de lectura y escritura. A su vez, la memoria se divide en bloques de idéntico tamaño llamados marcos. Algunos sistemas, para optimizar más el uso de la paginación, reservan áreas de memoria diferentes paginadas con tamaños de marco distintos, eso sí, cada área de memoria respeta el mismo tamaño de marco entre si. De cualquier manera, con la paginación se evita la fragmentación externa, ya que las páginas siempre caben en los marcos de memoria. Sin embargo no se puede evitar la fragmentación interna en la última página que puede ocupar menos de una página. La paginación maneja dos tipos de direcciones: las direcciones físicas del marco correspondiente de la memoria real y las direcciones lógicas o virtuales de la memoria virtual. Una dirección virtual estará formada por la dirección de página más el offset o desplazamiento que ocupa la misma.El Gestor de memoria del Sistema Operativo se encarga de manejar estas páginas haciendo uso de : Una tabla de páginas en que se divide un programa Una tabla de correspondencia de direcciones de página con direcciones de marcos en memoria Una tabla de páginas cargadas en memoria con los marcos libres y ocupadosLa paginación por demanda se ayuda de un espacio de 'memoria virtual' establecido sobre memoria secundaria. En sistemas como Linux el área de Swap o intercambio se reserva explícitamente al instalar el sistema. La paginación por demanda provoca fallos de página cuando la CPU va a buscar la página en la memoria y no se encuentra cargada. Cuando se produce un fallo de página, ésta se carga en memoria principal utilizando para ello una política de reemplazo de páginas (FRU, LRU, FNU, LNU o FIFO). Para facilitar esta tarea, en la tabla de páginas cargadas en memoria se guarda información sobre si ha sido recientemente usada o si ha sido modificada.También se da en este sistema el principio de localidad, que dice que las páginas más recientemente utilizadas deben ser las últimas en sustituirse porque tienen un alto índice de ser utilizadas de

Page 4: Segundo Ejercicio Cosecha Propia

nuevo. Algunos sistemas como Windows, aprovechan éste fenómeno y realizan carga anticipada de páginas para evitar el trasiego de swapping constante.Actualmente, Linux y Windows manejas paginación pura con direccionamiento múltiple.

Sistemas Operativos. Memoria virtual. SegmentaciónTradicionalmente, para ejecutar un programa en memoria principal (RAM), éste debía cargarse íntegramente en memoria. Esto no es viable en sistemas multiprogramados y programas cuyo tamaño es superior al de la memoria real. La paginación fué la primera técnica en solucionar este problema. Un intento de evitar la fragmentación interna de la paginación y el trasiego de swapping provocado por los fallos de página fué la segmentación.La segmentación es la técnica que propone cargar los programas en memoria divididos en segmentos de tamaño variable. La segmentación evita los fallos de página, puesto que el programa completo o subprogramas se corresponden con un segmento que está cargado en memoria real. El gestor de memoria asigna dinámicamente porciones de memoria de igual tamaño que un segmento. Esta técnica provoca fragmentación externa, ya que no siempre es posible localizar un segmento lo suficientemente grande en memoria de posiciones contiguas libres. Esto hace necesario recompactar la memoria cada cierto tiempo. Posteriormente, para evitar fragmentación externa, se combinó la segmentación de los programas con paginación dentro de cada segmento. A su vez, la memoria reserva marcos del tamaño de las páginas permitiendo que todas las páginas de un segmento encuentren huecos de memoria adyacentes o no. Sin embargo, esto no evita la fragmentación interna que tenemos en la última página de cada segmento.El Gestor de memoria del Sistema Operativo se encarga de manejar estos segmentos haciendo uso de : Una tabla de segmentos en que se divide un programa (cada segmento puede corresponderse con un subprograma) Una tabla de correspondencia de segmentos con su dirección en memoria principal y tamañoActualmente, UNIX usa segmentación paginada.

Sistemas Operativos. Planificación de procesosLos procesos, también llamados programas en ejecución, es la forma que el SO tiene para realizar varias tareas concurrentemente. A su vez, los subprocesos es la forma que tienen los procesos de dividir sus tareas en subtareas que pueden realizarse en paralelo. Todos los procesos necesitan ejecutarse en la CPU para cumplir su cometido. Esto requiere una planificación por parte del SO. La planificación se realiza principalmente a dos niveles: La selección de un proceso para pasar a estado 'preparado' la realiza el Scheduler, también llamado planificador a largo plazo. Por otro lado, el paso de un proceso de estado 'preparado' a estado 'en ejecución' la realiza el Dispatcher, también llamdo planificador a corto plazo. Por ejemplo en sistemas Windows, el dispatcher planifica sólo los hilos o subprocesos, mientras que el dispatcher de Linux no distinque entre procesos y subprocesos a la hora de planificar. Los objetivos de la planificación son los siguientes:

• Justicia e imparcialidad para que todos lo procesos reciban su tiempo de ejecución • Maximizar la producción o Throughput para que la CPU esté continuamente trabajando • Minimizar el tiempo de respuesta o Turnaround para que el usuario o proceso tenga la

sensación de trabajo continuo • Evitar el aplazamiento indefinido de los procesos y que estos puedan terminar

Sobre estos objetivos clasificamos los planificadores como apropiativos, en los que el planificador realiza su trabajo periódicamente y no apropiativos, cuando a un proceso no se le puede arrebatar la CPU. Ejemplos de los primeros, llamados preemptive, son Round Robin o el de 'menor tiempo restante', denominado SRT. Otros algoritmos, de tipo non-preemptive son FCFS o FIFO, la planificación de 'el más corto primero', denominado JSF, SPN o SPF, el de 'la tasa de respuesta más alta', por políticas y multi-colas o colas de múltiples niveles.También es necesario llevar un buen control de concurrencia entre procesos ya que si no podemos derivar en problemas de concurrencia como la espera circular, la no apropiación, exclusión mutua y la condición de ocupar y esperar que provocan deadlock.

Page 5: Segundo Ejercicio Cosecha Propia

Sistemas Operativos. Sistemas de Ficheros en UNIX/LINUXPara hacer frente al surtido número de sistemas de ficheros existentes, el sistema operativo implementa, en una capa por encima del sistema de ficheros el llamado Sistema de Ficheros Virtual. El VFS de LINUX y por extensión, UNIX, permite más de 20 sistemas de ficheros diferentes. El sistema de ficheros por excelencia de estos sistemas operativos es ext2 (NOTA: Ya van por el ext 5) y su estructura es la siguiente:Comineza con un bloque de arranque, que no se usa, el bloque 0.Seguidamente, se repiten varios grupos de bloques con el siguiente contenido:

1. Superbloque: se repite en cada grupo de bloques, contiene información crucial sobre el sistema de archivos como: número de i-nodos, número de bloques, comienzo de listado de bloques libres...

2. Descriptores del sistema de ficheros: También se repite en cada grupo de bloques, cada descriptor del sistema de ficheros contiene punteros a los mapas de bits de los i-nodos.

3. Mapa de bits de bloques, Mapa de bits de i-nodos, i-nodos, Bloques: Cada grupo de bloques contiene estos cuatro elementos correspondientes al grupo.

Los i-nodos describen un archivo y dependiendo de los sistemas suelen tener entre 64 bytes en UNIX, 128 bytes en LINUX o incluso más. En la descripción del archivo entran campos como el tipo de archivo, el tamaño, propietario, permisos, fechas de acceso y modificación y otros campos más específicos como el número de links del archivo o la tabla de direcciones con los bloques directos e indirectos. Hasta completar el tamaño de un fichero, el i-nodo apuntará a 12 bloques directos (10 en el caso de UNIX), 1 bloque indirecto simple, 1 bloque indirecto doble y 1 bloque indirecto triple.Los directorios en ext2 se representan como una colección no ordenada de entradas de 16 bytes. Cada entrada contiene el número de i-nodo del archivo de 2 bytes y el nombre de archivo de 14 bytes. También hay otras implementaciones con longitudes variables donde admás se especifica el tipo de archivo, tamaño y longitud del nombre.

Tecnología de Computadores. Sistemas MultiprocesadorLa taxonomía de Flynn es una clasificación de computadores en función del número de buses de instrucción que procesan y el número de buses de datos que manejan:SISD: Single Data, Single Instruction (Arquitectura Von Newman)MISD: Simple Data, Multiple Instruction (Arquitecturas sitólicas o desacopladas)SIMD: Multiple Data, Simple Instructión (Sistemas vectoriales. Las instrucciones de INTEL SSE lo utilizan. SSE son las siglas de SIMD Single Extensión)MIMD: Múltilpe Data, Múltiple InstructionSobre éste último modelo se sustentan los sistemas de memoria compartida o sistemas de multiprocesamiento simétrico (MMC y SMP) y los sistemas de memoria distribuida o sistemas de multiprocesamiento paralelo (MMD y MMP). Además existe una tercera combinación de ambos que son los sistemas con memoria compartida y distribuida (SDM)Los sistemas de memoria compartida se clasifican según sea el acceso a memoria principal en UMA (Acceso a Memoria Uniforme) y NUMA (Acceso No Uniforme a Memoria). En los primeros, UMA, todos los procesos acceden a memoria de forma uniforme pudiendo utilizar memoria cache cada procesador. Estos, Sistemas de Memoria Compartida con acceso Uniforme a Memoria son el modelo de arquitectura de los microprocesadores multinúcleo actuales con caches de nivel 1 y nivel 2. Hay que matizar que el acceso es realizado sobre el mismo bus de comunicaciones por lo que para más de 10 CPU´s, el sistema puede llegar a saturarse. Para evitar esto, las arquitecturas NUMA reservan parcelas de memoria para cada CPU (o grupos de CPU´s llamados NODOS) y además se utilizan diferentes buses de alta velocidad. A NUMA se le puede añadir memorias caches de nivel 3 para cada nodo (es decir, que se comparten entre varias CPU´s) pasando a denominarse esta arquitectura Cached Coherent NUMA o ccNUMA. Además, dentro de NUMA hay un modelo llamado COMA (Cache Only Memory Access).Los sistemas de memoria distribuida se suelen utilizar en aplicaciones cluster y sistemas grid-computing. Los sistemas cluster son una serie de pc´s, estaciones de trabajo, multiprocesadores... llamados nodos heterogéneos, interconexionados en una red de altas prestaciones y un SSI de Cluster (Single System Image) que coordina el cluster. El SSI puede ser HW o SW y ofrece al usuario una visión unificada de todos los recursos del sistema. Un SSI se puede implementar a tres niveles: nivel Kernel, a través del SO, nivel SW de planificación y nivel HW o balanceo de carga, éste último es el más utilizado en las granjas de servidores. Actualmente, los cluster más destacados son los sistemas Blade de Sun.

Page 6: Segundo Ejercicio Cosecha Propia

Tecnología de Computadores. Sistemas MulticomputadorSon un tipo especial de sistemas con múltiples procesadores. Se llaman sistemas escalables ya que pueden aumentar sus recursos para alcanzar un alto grado de computación en conjunto.Sus principales características son:

• Memoria privada para cada procesador • Los procesadores se comunican mediante la red de comunicaciones • Cada nodo del sistema es una máquina independiente que tiene autonomía propia

Los grandes sistemas multicomputador son el clustering y el grid computing.Las principales características del clustering son:

1. Los nodos son máquinas dedicadas, conectadas normalmente en una LAN, que realizan una tarea como si de una única máquina se tratase.

2. Uniformes en cuanto a su arquitectura lógico-física para cada nodo 3. Balanceo de carga 4. Procesamiento paralelo 5. Tolerancia a fallos 6. Están gobernadas por un administrador común que se encarga de repartir la carga y de

mostrar al usuario la visión unificada de los recursos del sistema. Este administrador, llamado SSI (Single System Image) puede ser implementado por Hardware, Software o desde el kernel del Sistema Operativo.

7. Usadas para servidores de aplicaciones y bases de datos.

Los sistemas grig-computing se caracterizan por:

1. Los nodos son máquinas independientes, repartidas geográficamente, que se comunican para lograr una tarea común.

2. Heterogeneidad en cuanto a su arquitectura lógico-física para cada nodo 3. Uso de ciclos de computación no usados por los nodos, para el procesamiento común u

objetivo. 4. Requiere de un software instalado en el sistema, que se encarga de las tareas comunes de

grid computing. 5. Usados para resolver grandes problemas de computación

Tecnología de Computadores. PipelingEl pipeling o segmentación de instrucciones es un técnica que permite simular el paralelismo de instrucciones ejecutadas por la CPU. Para realizar esto, se ayuda de una característica de las instrucciones. Éstas estan formadas por fases independientes que realizan funciones diferenciadas y atómicas. Una instrucción se puede dividir en, al menos 5 de estas microinstrucciones, que son:

1. Lectura de instrucción 2. Decodificación de la instrucción 3. Generación de la dirección 4. Ejecución de la instrucción 5. Obtención del resultado

Una ejecución secuencia de 4 instrucciones requieren 20 ciclos de reloj, en cualquier caso, para ejecutar todas las fases de cada una de las 4 instrucciones. Con pipeling, solapamos las microinstrucciones de manera que el resultado de la ejecución es de 8 ciclos de reloj en el mejor de los casos.Las ventajas son el incremento del throughput de las instrucciones y la velocidad de ejecución de todas las instrucciones. El inconveniente que tiene pipeling es que requiere la organización de las microinstrucciones y que se puede dar el caso de que varias instrucciones compartan variables. Esto puede provocar inconsistencia de datos.

Page 7: Segundo Ejercicio Cosecha Propia

Base de datos. Modelo relacionalEl modelo relacional es uno de los modelos de representación de datos más extendidos. A partir de los años 60, las bases de datos se expandieron gracias a los modelos de red (basados en grafos) y el modelo jerárquico (basado en árboles). En 1975, Codd enunció el modelo relacional que poco a poco a desbancado a sus antecesores. Es un modelo matemático está basado en la teoría de conjuntos y el álgebra relacional. Se fundamenta en dos conceptos principales: Esquemas relacionales y reglas de integridad.Esquemas relacionales o intensión de relación. Define una relación como un conjunto de atributos. Para ello crea los conceptos de dominio (conjunto de valores homogéneos que puede tomar un atributo con existencia propia), grado (número de atributos de una relación) y cardinalidad (número de tuplas recuperables de una relación).El segundo concepto son las reglas de integridad. Integridad de entidad (basada en el concepto de clave primaria, básicamente enuncia que una clave privada identifica de modo único las tuplas y no puede ser nula) e Integridad referencial (basada en el concepto de clave foránea, que dice que una clave foránea hace referencia a otra entidad mediante un atributo con un valor de dominio perteneciente en la entidad referenciada o un valor nulo)El modelo relacional puede ser manipulado a través de dos lenguajes: Álgebra relacional y Cálculo relacionalÁlgebra relacional: Basado en la teoría de conjuntos. Es un lenguaje procedural, es decir, que indica al sistema cómo manipular los datos. Sus operadores fundamentales son selección, proyección, unión, diferencia y producto cartesiano.Cálculo relacional: Basado en la lógica de predicados. Es un lenguaje no procedural del que surge entre otros SQL. Sus operadores fundamentales son existe, para todo, and, or y not.

Base de datos. Drivers de conectividadPara comunicar aplicaciones con diferentes bases de datos y así, hacerlas más portables se utilizan los drivers de conectividad. Los más utilizados son ODBC y JDBC (Las aplicaciones .NET utilizan ADO.NET que está integrado en el framework de .NET)ODBC (Open Database Connectivity): Es un estándar abierto cuyas características más ventajosas son que es independiente del lenguaje y de la base de datos a utilizar. Está basado en el estándar CLI (Call Level Interface) de X/Open, hoy en día Open Group. Como desventajas podemos citar que, al ser tan independiente, no consigue aprovechar al 100% los motores de bases de datos y lenguajes de programación. Además el uso de ODBC requiere de una capa más tipo Middleware de comunicación entre la base de datos y la aplicación, el administrador de drivers ODBC que suele estar integrado en el propio sistema operativo. Los componentes implicados en esta tecnología son la propia aplicación y base de datos, el gestor de DataSource, el driver ODBC y el citado administrador de drivers ODBC.JDBC (Java Database Connectivity): Es una API de Java y como tal, hace que su uso dependa del lenguaje Java. Como ventaja tenemos la velocidad de trabajo. JDBC puede trabajar en cuatro niveles diferentes:Tipo 1. Puente JDBC-ODBC. El resultado es que tras la aplicación y su gestor de DataSource nos encontramos con un módulo puente que traduce las instrucciones Java a ODBC. Tras este módulo tenemos el driver ODBC que se comunicaría con las Bases de datos. No hay driver JDBC aquí.Tipo 2. Driver JDBC con llamadas a la API nativa de Base de datos. El resultado es que tras la aplicación y su gestor de DataSource nos encontramos con el driver JDBC que hace llamadas directas a la API de la Base de Datos correspondiente. El driver JDBC tiene parte escrita en Java y parte nativa de la Base de Datos correspondiente.Tipo 3. Driver puro Java que accede al Middleware. El resultado es que tras la aplicación y su gestor de DataSource nos encontramos con el driver JDBC. Este se comunica con un módulo middleware que se encarga de traducir las llamadas del driver en llamadas al API de la Base de Datos correspondiente. El driver JDBC es genérico para cualquier Base de datos y nativo Java.Tipo 4. Driver puro Java directo a Base de datos. El resultado es que tras la aplicación y su gestor de DataSource nos encontramos con un driver nativo Java escrito para una base de datos concreta. El driver se comunica directamente con la Base de Datos optimizando el acceso. Necesita un driver para cada Base de Datos diferente.

Page 8: Segundo Ejercicio Cosecha Propia

Bases de datos. NormalizaciónLa normalización es un proceso que permite reducir las inconsistencias y redundancias en las relaciones de un modelo de datos. Además facilita el mantenimiento y previene los errores en las operaciones de manipulación de datos. En el proceso de Normalización Boyce Codd enunció 3 Formas Normales que deben aplicarse en orden para conseguir un modelo normalizado. Además de estas 3 formas normales existen, opcionalmente, la Forma Normal de Boyce Codd, la cuarta forma normal y la quinta forma normal. Para entender el proceso de normalización hay que definir 3 conceptos:

1. Dependencia funcional. Sea una relación R{A,B,C}, se dice que B depende funcionalmente de A o A determina funcionalmente a B (A->B) si para cada valor de A, existe un único valor de B.

2. Dependencia funcional completa. Sea una relación R{A,B,C}, se dice que B tiene dependencia funcional completa de A, si B depende funcionalmente de A, pero no de ningún subconjunto de A.

3. Dependencia funcional transitiva. Sea una relación R{A,B,C}, si B depende funcionalmente de A (A->B), C depende funcionalmente de B (B->C) y A no depende funcionalmente de B, entonces, C depende funcionalmente de A (A->C)

Normalización:

1. Primera forma normal. Una relación está en 1FN si no existen conjuntos repetitivos y todos los atributos dependen funcionalmente de la clave.

2. Segunda forma normal. Una relación está en 2FN si, está en 1FN, y los atributos que no pertenecen a la clave tienen dependencia funcional completa de la clave.

3. Tercera forma normal. Una relación está en 3FN si, está en 2FN, y los atributos que no forman parte de la clave no tienen dependencia funcional transitiva de la clave.

4. Forma Normal de BoyceCodd. Una relación está en FNBC si cada atributo determinante es clave candidata.

Bases de datos. 12 reglas de CoodCodd enuncia 12 reglas que debe cumplir todo sistema gestor de bases de datos para que se considere relacional. Al menos deben cumplirse 6:

• Regla 0: Un SGBDR debe ser capaz de manejar la información con capacidades exclusivamente relacionales

• Regla de la información • Regla del acceso garantizado • Regla del tratamiento de los valores nulos • Regla de la independencia lógica de datos • Regla de la independencia física de datos • Regla de la actualización de vistas • Regla de la independencia de distribución • Regla de la independencia de integridad • Regla de la no subversión o la no inversión • Catálogo en línea dinámico basado en el modelo relacional • Regla del sublenguaje completo de datos • Regla de actualización, supresión e inserción de alto nivel

Page 9: Segundo Ejercicio Cosecha Propia

Bases de datos. Técnicas de Minería de datosEn la Minería de datos, a la hora de realizar la búsqueda de patrones se utilizan técnicas basadas en algorítmos de inteligencia artificial y estadística como:

1. Redes neuronales: Conexiones de elementos de aprendizaje mediante entradas y salidas. 2. Modelos estadísticos 3. Árboles de decisión: Representan la jerarquía de condiciones para alcanzar una respuesta 4. Regresión lineal o reglas de inducción: Relaciones entre dos variables. 5. Agrupamiento o clustering: Basado en vectores de distancia y el vecino más próximo.

Estas técnicas se clasifican, según el objetivo, en aprendizajes supervisados (modelo predictivo y de verificación) y no supervisados (modelo de descubrimiento)

Bases de datos. Problemas de concurrencia en las transaccionesLas transacciones son conjunto de órdenes que se ejecutan de forma atómica, como una unidad. Las transacciones deben cumplir las propiedades ACID (Atomicidad, Consistencia, Isolatión o Aislamiento y Durabilidad). El problema de las transacciones surge cuando éstas se realizan concurrentemente en los sistemas gestores de bases de datos. Los problemas que se pueden dar en la concurrencia de transacciones son:

1. Lectura sucia. Cuando una transacción lee datos que no han sido comprometidos. 2. Lectura no repetible. Cuando la repetición de la misma transacción devuelve resultados

diferentes. 3. Lectura fantasma. Cuando una transacción lee datos que antes de iniciarse la misma, no

existían.

Los problemas de concurrencia de transacciones se solucionan con el aislamiento de las transacciones. Los diferentes niveles de aislamientos son:

1. Transacciones no comprometidas o Lectura no comprometida. Se pueden dar los tres problemas de concurrencia mencionados.

2. Transacciones comprometidas o Lectura comprometida. Al hacer COMMIT sobre la transacción evitamos el problema de la lectura sucia.

3. Transacciones repetibles o Lectura repetible. Soluciona el problema de la lectura sucia y de la lectura no repetible.

4. Transacciones secuenciables o serializables. Es el mayor nivel de aislamiento, soluciona los tres problemas de concurrencia. Tenemos un control total sobre el sistema transaccional mediante la reorganización de las operaciones indivisibles que forman parte de las transacciones concurrentes.

SQL Server permite todos estos niveles, Oracle sólo permite la lectura comprometida y secuenciableLa serialización de transacciones puede provocar exclusión mútua (también llamado interbloqueo o deadlock), por lo que la transacción entra en un bucle de espera infinito, del que ninguna otra transacción podrá liberar. Este problema sólo puede solucionarse, una vez detectado y puede dejar la base de datos inconsistente.

Page 10: Segundo Ejercicio Cosecha Propia

Bases de datos. Clasificación de BD en las organizaciones

1. Nivel operacional o transaccional. OLTP (OnLine Transactional Processing) o TPS (Transaccional Processing System) es el nivel en que se organizan las herramientas cuyo único objetivo es la inserción y actualización de la información diaria. Estos sistemas no están orientados a la toma de decisiones pero sirven de apoyo y de provisión de datos a los sistemas posteriores. Son sistemas rápidos en las transacciones y lentos y poco eficientes en la interacción con el usuario. En este nivel también se encuentran herramientas como CRM, ERP o SCM.

2. Nivel de conocimiento. MIS (Management Information Sistems) son sistemas que se encargan de recopilar la información de diferentes fuentes y generar informes para la dirección. Este nivel es gerencial medio y es un complemento a la toma de decisiones.

3. Nivel táctico. DSS (Decision Suport System) es un nivel gerencial que recopila la información en sistemas especializados como Bases de datos de conocimiento o Datawarehose y mediante herramientas tipo OLAP (OnLine Analitics Processing) obtienen evidencias difíciles de encontrar, mediante la búsqueda de patrones.

4. Nivel estratégico. EIS (Excecutive Information System) o ESS (Executive Support System) es el nivel más alto de la organización quien toma las decisiones relativas a la misma en función de herramientas de inteligencia artificial y sistemas expertos como cuadros de mando. Utilizan los niveles anteriores para recopilar información valiosa. El objetivo es obtener la visión de futuro necesaria para crecer.

Bases de datos. Sistemas Multidimensionales.Los sistemas multidimensionales son sistemas de información basados en dimensiones, jerarquías y series temporales. Mientras que los sistemas relacionales están pensados para la optimización de los datos, consultas sobre datos concretos y operaciones de inserción o actualización, los sistemas multidimensionales son ideados para obtener resultados totales, sumatorios, series temporales y para navegar entre distintos niveles de granularidad (dimensiones y jerarquías).Las bases de datos multidimensionales o cubos están formados por:

• Dimensiones. Colecciones de datos que guardan relación. Podemos presentar vistas con Slice-Dice o reorganizar las dimensiones con Pivoting. No es recomendable hace más de 10 dimensiones.

• Jerarquías. Sobre una dimensión, las jerarquías permiten aumentar el grado de especialización. Las operaciones de escavación sobre jerarquía son Drill-down y Roll-up.

• Series temporales. El tiempo es un factor fundamental en los sistemas multidimensionales, ya que la información almacenada es no volatil. El tiempo se puede implementar como una dimensión, como una jerarquía o dejar que lo adminsitre el propio sistema gestos de bases de datos.

La explotación de sistemas multidimensionales se hace mediante herramientas tipo OLAP (OnLine Analitics Processing)Los sistemas multidimensionales pueden realizarse sobre sistemas relacionales ROLAP, sistemas híbridos HOLAP, vía web WOLAP.

Page 11: Segundo Ejercicio Cosecha Propia

Bases de Datos. Definiciones.Business Intelligence: Combinación de técnicas de almacenamiento y tratamiento de la información orientadas a la toma de decisiones sobre el negocio. Business Intelligence se aprovecha de la información estratégica repartida en cualquier punto de la organización. Business Intelligence utiliza tecnologías y técnicas como OLTP, TPS, OLAP, Sistemas de Soporte a la Decisión, Minería de datos, Bases de datos relacionales, sistemas Datawarehouse, etc..DataWarehouse: Conjunto de datos orientados al negocio, integrados, no volátiles, dependientes del tiempo, que provienen de fuentes heterogéneas cuyo objetivo es el soporte a la toma de decisiones. Sus características más importantes son:

1. Orientados a la consulta, con carencia en las operaciones de inserción y actualización 2. Construidos sobre sistemas multidimensionales optimizados a las consultas 3. Se construyen según las fases de extracción, transformación y carga 4. Se hace necesario un buen diccionario de datos 5. Son buenos para trabajar con datos agregados, totales, subtotales y series temporales

DataMart: Son un tipo especial de Datawarehouse orientados a componentes departamentales específicos. En ocasiones se provisionan de datos almacenados en grandes Datawarehouse.DataMining: La minería de datos es una técnica cuyo objetivo es obtener información no explícita de un sistema de almacenamiento de datos mediante la búsqueda de patrones y evaluación de sus resultados. Se realiza principalmente en tres fases:

1. Selección y preprocesado de datos. Se recogen los datos de fuentes heterogéneas y se almacenan en base a una estructura definida. No es necesaria si contamos con un sistema Datawarehouse.

2. Búsqueda de patrones. Mediante técnicas basadas en la estadística, inteligencia artificial, procesamiento OLAP, se interroga al sistema para extraer información útil.

3. Interpretación y Evaluación de los resultados. Estudio de los resultados y traducción en información útil para el negocio.

Indices Bitmap: Índices utilizados mayormente en sistemas multidimensionales para acelerar las consultas. Se definen sobre atributos cuyo dominio es muy pequeño.Hipercubos: Sistema multidimensional de más de 3 dimensiones.

Estructura de datos. Complejidades de los algoritmosMayor complejidad O(n²) -> Algoritmos de ordenación clásicos de intercambio, selección e inserciónComplejidad O(n*log(n)) -> Algoritmos de ordenación Mergesort y Quicksort (divide y vencerás)Complejidad media O(n) -> Algoritmos de búsqueda secuencial y árboles binariosComplejidad O(log(n)) -> Algoritmos de búsqueda binaria (divide y vencerás) y árboles binarios de búsquedaMejor complejidad O(log (log (n))) -> Algoritmos de búsqueda por interpolación

Estructura de datos. Organización de ficherosUn fichero está formado por una serie de registros que contienen información. Según como estén organizados estos registros tenemos organización secuencial, directa e indexada.Organización secuencial: La secuencia física de los registros coincide con la secuencia lógica. Para acceder a un registro hay que pasar por los anteriores. Optimiza la lectura del fichero completo, y el aprovechamiento de memoria del fichero. Es ineficiente a la hora de buscar un registro concreto y de modificar el fichero (borrar e insertar registros)Organización directa: Podemos acceder directamente a un registro. Mediante claves, o hashing. El uso de claves hace que la secuencia física de los registros sea igual a la secuencia lógica. El uso de hashing requiere de un algoritmo de transformación de clave y hace que la secuencia física de los registros no sea igual a la secuencia lógica. Optimiza las modificaciones del fichero y la búsqueda de un registro concreto. Penaliza la lectura completa del mismo y el aprovechamiento de memoria del fichero. Justo al revés que la organización secuencial.Organización indexada: Es una variante de la organización secuencial que aprovecha lo mejor de las organizaciones anteriores. La secuencia física de los registros no coincide con la secuencia lógica. Hay dos variantes:

Page 12: Segundo Ejercicio Cosecha Propia

• ISAM (Método de acceso secuencial indexado) : Existe una tabla de índices con la secuencia de registros y la clave de registro.

• C-ISAM (Método de acceso secuencial indexado encadenado) : Es igual que el secuencial puro, añadiendo a cada registro un puntero señalando el siguiente registro y un puntero señalando el registro anterior.

Software Libre. Libertades del SoftwareSon 4: Libertad 1. La libertad de usar el programa, con cualquier propósito Libertad 2. La libertad de estudiar cómo funciona el programa, y adaptarlo a sus necesidades. Libertad 3. Distribuir copias Libertad 4. La libertad de mejorar el programa y hacer públicas las mejoras a los demás.

Software Libre. Licencias libresDebemos distinguir entre software libre (FSF, Free Software Foundation y GPL, General Public License) y software de código abierto (OSI, Open Software Iniciative, BSD o Apache License).Copyleft en contraposición con las licencias propietarias aseguran las cuatro libertades mientras protege la reputación del autor. Hay dos tipos de Copyleft:Copyleft robusto o licencias persistentes (GPL y LGPL). Sus características son: - Distribución de las fuentes durante 3 años - Cobro sólo por los gastos de distribución - Avisar de los cambios a los destinatarios (no siendo necesario avisar a los autores originales) - Acompañar las obras de autoria y licencia - Exencción de garantías y responsabililidades (se pueden ofrecer a cambio de un cobro) - Aceptación de la licencia sólo si se quiere modificar el SWCopyleft no robusto o licencia no persistente (BSD 1.1). Sus características son: - Mencionar al autor en obras derivadas si no se modifica el código - No es necesario proveer fuentes - Exencción de garantías y responsabililidades (se pueden ofrecer a cambio de un cobro) - Permite mezclar con SW propietarioLicencias sin Copyleft (BSD 1.0, Apache, MPL Mozilla Public License, NPL Netscape Public License)Licencia recomendada en el esquema nacional de interoperabilidad EUPL (European Union Public License), con copyleft robusto. Sus características son: - Cesión de los derechos morales y patrimoniales siempre que la ley lo permita. - Poner a disposición de manera indeterminada, fácil y gratuita las fuentes y la licencia (Incluir la licencia en un archivo LICENSE o COPYING) - Reconocimiento del autor - Compatibilidad con licencias GPL2, OSL, CPL, EPL y Cecill (en estos casos prevalecerá la licencia compatible) - Exencción de garantías y responsabililidades (se pueden ofrecer a cambio de un cobro) - Aceptación de manera inequívoca de la licencia (pinchando Aceptar o de alguna manera similar)

Software Libre. Protección de los programas de ordenadorSegún la ley refundida 1/1996, Libro 1, Título 7 un programa de ordenador es una secuencia de instrucciones destinada a ser utilizadas, directa o indirectamente, en un sistema informático para realizar una tarea. También entra en esta definición la documentación preparatoria (documentación técnica y manuales) y un programa objeto.Serán protegidos, si son originales, los programas de ordenador y las versiones sucesivas o programas derivados, salvo que sean destinadas a provocar efectos nocivos. La ley no protegerá las ideas y principios.Al hablar de derechos de autor podemos distinguir entre derechos morales y derechos patrimoniales. Los derechos morales son irrenunciables, inalienables, no pueden ser cedidos y tienen, en general, carácter perpetuo. Estos derechos son el reconocimiento del autor, la divulgación y la integridad de la obra. Los derechos patrimoniales son los relativos a la reproducción, distribución y transformación.Las obras se clasifican en obras colectivas (donde el autor es el que la edita y publica), obras unitarias o en colaboración (todos los participantes son autores) y obras creadas por trabajador asalariado (en las que los derechos patrimoniales son del empresario).

Page 13: Segundo Ejercicio Cosecha Propia

La duración de los derechos de autor es de toda la vida y 70 años tras la muerte del autor (para personas físicas) o 70 años desde la publicación (para personas jurídicas). Siempre a contar desde el 1 de enero del año siguiente.Los derechos de explotación de un programa de ordenador son, EL TITULAR PODRÁ REALIZAR O AUTORIZAR:

• La reproducción, total o parcial, incluso para uso personal • La traducción, adaptación, arreglo y cualquier transformación del programa • Cualquier forma de distribución pública

Los límites de los derechos de explotación son NO ES NECESARIA LA AUTORIZACIÓN DEL TITULAR AL USUARIO PARA:

• Copia privada (sólo se permite una) • Estudiar, observar o verificar su funcionamiento con objeto de determinar las ideas y

principios en que se basa • Reproducción y transformación cuando dicho cambio sea necesario para la utilización del

mismo u obtener interoperabilidad, salvo disposición contractual en contrario • Realizar versiones sucesivas, salvo pacto en contrario • Reproducción del código o traducción del programa cuando sea necesario para alcanzar su

interoperabilidad con otros sistemas

Software Libre. DRM (Digital Rights Management)Los sistemas DRM (Digital Right Management) son la agrupación de tecnologías, procesos y herramientas destinados a proteger la propiedad intelectual en las operaciones comerciales realizadas con contenidos digitales. Permiten la distribución controlada de contenidos y evitan el uso fraudulento del mismo.Ciclo de vida: 1. Empaquetado (realizado por los autores). Los autores deciden los derechos y condiciones de la obra o contenido. 2. Protección y venta (realizado por los proveedores). Los proveedores empaquetan el contenido con técnicas que restringen el consumo del producto. 3. Consumo (realizado por el usuario). Los usuarios adquieren la licencia de uso y realizan el consumo controlado.Hay dos modelos, el modelo Servidor y el modelo Cliente/Servidor. En el modelo Cliente/Servidor el agente DRM se instala en el cliente y utiliza técnicas criptográficas para recuperar y transferir el contenido digital del servidor. Éste empaqueta los contenidos con sus licencias y restricciones correspondientes. En el modelo Servidor se usan marcas de agua en los contenidos y firmas digitales que son reproducidas al mismo tiempo que el contenido.El lenguaje de expresión de contenidos más utilizado es XrML (eXtensible Rights Markup Language). XrML pertenece a la compañia ContentGuard y ha sido estandarizado por la ISO como MPEG REL (MPEG Right Expresion Language). Este lenguaje estructura los elementos en Principal, Right, Resource y Condition. MPEG REL es usado, entre otros, con MPEG 21 y Windows Media Player.Otros lenguajes REL (Right Expresion Language) son:

• ODRL (Usada por la Open Movile Alliance). ODRL estructura los elementos en Asset, Rights y Parties.

• XMCL (que usa Real Player) • ccREL (Creative Commons Right Expresion Language). Para proteger contenidos bajo licencia

Creative Commons.

Ejemplos de uso de DRM son los sistemas anticopia de algunos discos de música, la protección de la música adquirida con iTunes, las copias digitales de películas y el alquiler de películas bajo demanda, los libros que se consumen en eBook´s.

Page 14: Segundo Ejercicio Cosecha Propia

Estudio de viabilidad de sistemas. Decisión Multicriterio DiscretaLa Decisión Multicriterio Discreta es un método de selección de alternativas multicriterio que sustituye al tradicional método de Análisis de Coste Beneficio. El método multicriterio aporta la posibilidad de valorar múltiples características distintas entre las diferentes alternativas al mismo tiempo. En la Administración pública, la antigua CIABSI patrocina la herramienta SSD-AAPP para realizar la decisión multicriterio discreta. La DMD consta de 5 fases secuenciales:

1. Identificación de alternativas de selección y criterios a valorar. 2. Asignación de pesos a los criterios. 3. Puntuación de los criterios para cada alternativa. Ajustando por abajo con niveles de

satisfacción y por arriba con el umbral de saciedad. 4. Normalización de las puntuaciones. A través de los métodos de la fracción del ideal, fracción

del máximo y fracción de la suma. Tras finalizar la fase obtenemos la Matriz de Decisión. 5. Decisión entre alternativas. Utilizando la Matriz de Decisión obtenida en la fase anterior.

En la fase de asignación de pesos se utilizan los métodos de asignación directa como Delphi o métodos de asignación indirecta donde encontramos los basados en comparaciones binarias de criterios como son el método de las utilidades relativas, en el que se comparan grupos de criterios y el método SAATY también llamado método AHP donde se comparan criterios uno a uno utilizando para ello una escala verbal de 1 a 9. Otro método de asignación indirecta es el método de la entropía que complementa a los anteriores mencionados y que se realiza a posteriori de la normalización por la fracción de la suma.En la fase de decisión entre alternativas se puede utilizar el Método lexicográfico, de poco valor, ya que se basa en elegir la alternativa cuyo criterio de mayor peso ha obtenido mejor puntuación, los métodos basados en relaciones de superación como ELECTRE o PROMETHEE. También tenemos métodos de ponderación lineal y utilidad multiatributo más fáciles de usar y que exigen una buena precisión a la hora de valorar los criterios. Los métodos de ponderación lineal favorecen a las medianías ya que se produce como el sumatorio de las puntuaciones por el valor de su criterio. Por último, el método de decisión entre alternativas TOPSIS se basa en la distancia más corta de la solución ideal y más lejos de la solución negativa.

Análisis de requisitos. Características de los requisitosUn requisito debe ser: Completo: Debe expresarse en su totalidad y por sí mismo Medible, Probable, Verificable: Que se puede probar Correcto: Lo contrario sería un absurdo No ambiguo: Evitando términos del tipo mucho, poco... De bajo riesgo: Que se puede implementar con éxito Clasificable: Se puede categorizar y clasificar Consistente: No entra en conflictos con otros requisitos Sencillo, Conciso, Comprensible: Que se entiende Trazable, Referenciable: Puede ir de delante hacia atrás y viceversa

Análisis de requisitos. Modelo SWEBOK o Fases de establecimiento de requisitos SWEl análisis de requisitos es una parte de la ingeniería del software cuyo objetivo es elaborar un catálogo de requisitos validados por los usuarios, que serán la base del software a elaborar.Tradicionalmente el análisis de requisitos se puede ver como un ciclo de vida iterativo con cuatro fases secuenciales principales (también llamado Modelo Swebok): 1. Educción de los requisitos (Reuniones, entrevistas o sesiones de trabajo, análisis factores críticos de éxito) 2. Análisis y negociación (Diagramas E/R, Casos de Uso, DFD's, Diagramas de estado) 3. Documentación de requisitos 4. Validación de los requisitos (vuelta a la fase 3)En cada fase se realizan una serie de prácticas y técnicas, y se obtienen diferentes productos.En la educción de requisitos, mediante una serie de reuniones, entrevistas o sesiones de trabajo entre usuarios, clientes, consultores y equipo de desarrollo se deberá elaborar un catálogo de requisitos funcionales y no funcionales.En la fase de análisis y negociación se deberá refinar el catálogo anterior mediante nuevas sesiones

Page 15: Segundo Ejercicio Cosecha Propia

de trabajo y técnicas de modelado o diagramas. Se indexan los requisitos, se clasifican y se verifica su interacción con los demás requisitos. Además, en la negociación se deberá buscar un equilibrio entre lo que el cliente pida y lo que el cliente necesite.Posteriormente, se realiza la documentación de los requisitos elaborando el documento Especificación de Requisitos del Sistema, basado en la norma IEEE 830:1993. Este documento formal puede contener otros como la Diseño Funcional del Sistema o el Documento de Requisitos de Usuario.Finalmente, la validación de los requisitos será la fase que permita al usuario confirmar sus requisitos inciales con los modelos, rectificar, cambiar o eliminar requisitos. Esto hace que volvamos a la fase inicial para mejorar el documento de especificación de requisitos.Estas iteraciones realizadas en distintas fases del ciclo de vida del desarrollo permiten consolidar los requisitos y realizar un documento ERS consistente y robusto.

Análisis estructurado. Modelo conceptual de procesosEl modelo conceptual de procesos (o modelo esencial) en el análisis estructurado lo podemos dividir en el Modelo ambiental y el Modelo de comportamiento.Modelo ambiental: Está formado por el Diagrama de Contexto, el Diccionario de datos y la Lista de Eventos.Comenzamos con la declaración de propósitos que, en unas líneas, describe los objetivos del sistema.El Diagrama de Contexto pretende modelizar el universo del sistema y está formado por las entidades externas, los flujos de entrada y salida y por el proceso principal del sistema.Con el Diccionario de Datos describimos los flujos de procesos y los datos de los almacenes. Pero será en el modelo de comportamiento cuando se complete el DD.Por último, en el Modelo Ambiental tenemos un listado de eventos que se producen en el entorno (no en el sistema a modelar) y a los cuales debe responder el sistema. Los eventos que podemos describir serán eventos de flujos de datos, eventos de control y eventos temporales.Modelo de comportamiento o modelo de procesos: Está formado por el DFD (incluyendo el modelo de subsistemas) y la especificación de pocesos primitivos.Para realizar el Diagrama de Flujo de Datos lo primero que haremos será identificar los Subsistemas y su relación con las entidades descritas en el Diagrama de Contexto. El diagrama de subsistemas compondrá el nivel 1 de un DFD y cada subsistema deberá realizar funciones definidas e independientes. Para identificar los subsistemas utilizaremos las técnicas Matriciales elaborando una matriz de Procesos-Entidad. Esta Matriz relaciona cada proceso con las entidades, en las operaciones de creación y utilización de datos. Después reorganizamos la matriz de tal forma que podamos extraer los subsistemas independientes. Con los subsistemas definidos iremos explotando los mismos para crear los diferentes niveles del DFD.Por último en los niveles del DFD donde no sea posible más explotación, se definen los procesos primitivos para los que se pueden emplear lenguajes de pseudocódigo o descripciones no formales.

Análisis estructurado. Diccionario de datosEs un conjunto de METADATOS que describen los almacenes de datos, flujos de datos, valores o detalles en las relaciones entre entidades de un sistema. Se utiliza en las fases de análisis y diseño para describir el modelo conceptual de datos.A nivel de arquitectura, el DD almacena los esquemas y las reglas de correspondencia entre un esquema y otro (Esquema externo, conceptual e interno o físico).A nivel conceptual, con el diccionario de datos podemos describir flujos de datos, procesos y contenido de los almacenes de datos. Es importante que la descripción sea suficiente y no ambigua. Suele acompañarse en diagramas de flujos de datos (DFD) y diagramas entidad/relación. Esta práctica es imprescindible en desarrollos Datawarehouse.La definición debe incluir:

• El significado del dato en el contexto de la aplicación. Esto se documenta en forma de comentario.

• La composición del dato, si es que está compuesto de otros elementos significativos. • Los valores que el dato puede tomar, si se trata de un dato elemental que ya no puede ser

descompuesto.

Page 16: Segundo Ejercicio Cosecha Propia

Análisis estructurado. Reglas de consistencia de los DFDLas reglas de consistencia de los DFD son tres:

1. No deben faltar flujos de entrada ni de salida en un diagrama resultado de una explosión que correspondan a entradas o salidas de un diagrama de nivel superior.

2. No deben sobrar flujos de entrada ni de salida en un diagrama resultado de una explosión que NO APAREZCAN EN EL nivel superior.

3. Todos los elementos del diagrama de flujo de datos estarán conectados directa o indirectamente con los flujos del proceso origen y diagrama de contexto.

Además según Yourdon:

1. Evitar los llamados agujeros negros o procesos con flujos sólo de entrada. 2. Evitar procesos de generación espontánea o procesos con sólo flujos de salida (sólo

justificado en el caso de generador de números aleatorios). 3. Justificar bien la presencia de almacenes de sólo lectura o sólo escritura.

Diseño estructurado. Propiedades del diseño estructuradoModularidad (Atomicidad): El sistema a desarrollar se podrá separar en módulos independientes y con diferente jerarquía hasta conseguir módulos indivisibles o atómicos que realicen una operación concreta. Esto facilita el mantenimiento, minimiza la duplicidad de código y favorece la comprensión.Jerarquía entre módulos: Los módulos se organizan siguiendo una jerarquía de forma que los módulos superiores coordinen a los inferiores. Esto permite controlar la interacción entre módulos.Independencia modular: Los módulos deberán ser diseñados de forma cumplan una función bien definida y que no dependan de otros en la medida de lo posible. De forma que podemos garantizar la reutilización de los módulos.Modelización conceptual: La descomposición modular debe atender a criterios que reflejen conceptualmente el problema de la organización. No debemos descomponer sin criterios conceptuales por el hecho de descomponer.Principio de caja negra: Los módulos ocultarán su implementación y los detalles de la misma. De esta forma, los trataremos como una caja negra de la que sólo conocemos las entradas y salidas. Esto favorece la abstracción y el mantenimiento.

Diseño estructurado. Tipos de cohesiónLa cohesión es el grado de relación de los elementos de un módulo. Los tipos son:Funcional: Todos los elementos del módulo cumplen una única funciónSecuencial: El modulo es una secuencia de módulos con cohesión funcional.De comunicación: Los elementos utilizan los mimos datos de entrada y salida.Procedimiental: Los elementos están relacionados siguiendo un orden determinado.Temporal: Todos los elementos se realizan en el mismo intervalo de tiempo.Lógica: Existe una relación lógica entre los módulos.Casual: Los elementos realizan funciones que no tienen nada que ver entre sí.

Diseño estructurado. Patrones arquitectónicosUn sistema completo puede mezclar diferentes tipos de arquitectura. Según Pressman, los más comunes son:Arquitectura centrada en los datos: Donde todo gira en torno a un almacén de datos. Por ejemplo sistemas DatawarehouseArquitectura de flujos de datos: Los datos se transforman al pasar de unos componentes a otros.Arquitectura de llamada y retorno: Aquellos programas en que el sistema principal realiza llamadas a subsistemas. Aplicaciones escritorio y websArquitectura de componentes principales: Comunicación entre mensajes.Arquitectura orientada a objetos: Los elementos del sistema son objetos que encapsulan propiedades y operaciones.Arquitecturas de tiempo real: Cuando las necesidades del sistema son críticas.

Page 17: Segundo Ejercicio Cosecha Propia

Documática. Sistemas de Gestión Documental, Sistemas de Gestión de Contenidos y Portales de ContenidosUn portal de contenidos es un sistema integrado que combina la gestión de usuarios y la gestión de contenidos. El portal mantendrá una continua relación con los sistemas ERP, CRM y los dispositivos de almacenamiento de la organización.Un Sistema de Gestión Documental es un sistema que facilita la gestión de documentos entendida como un proceso de captura, indexación, distribución y archivado.

• La captura comprende la digitalización de contenidos, es decir el escaneado de imágenes o de documentos haciendo uso de OCR. También se puede entender la captura como la importación de documentos al sistema y su posterior transformación a un formato que preserve su contenido, como PDF o TIFF.

• El proceso de indexación puede realizarse en tres niveles: a nivel de texto completo del documento, añadiendo palabras clave de búsqueda o indexando la estructura del documento. Este proceso será clave para su posterior recuperación empleando sistemas de recuperación y búsqueda.

• La publicación de documentos se encarga de que éstos estén disponibles en la organización garantizando un cierto nivel de seguridad en cuando a su acceso, por ejemplo con niveles de privilegio.

• El archivado de documentos deberá realizarse en medios y con formatos que preserven su disponibilidad con el paso del tiempo, garanticen su integridad y autenticidad. Se recomienda el uso de estándares abiertos y compatibles.

• Recuperación de contenidos mediante sistemas de búsqueda.

Un Sistema de Gestión de Contenidos es un sistema que amplía las funcionalidades de gestión de contenidos con capacidades como:

• Acceso on-line vía web a los servicios • Edición de contenidos (nuevos contenidos y modificaciones) • Control y gestión de versiones • Incorporación de metadatos • Catalogación de los contenidos • Publicación mediante sindicación de contenidos, XML o WebServices. • Gestión de procesos mediante workflow • Relaciones entre documentos y contenidos del sistema • Personalización de perfiles de usuarios

Ejemplos de CMS populares son Vignette, Microsoft Sharepoint y Coldfusión como sistemas privativos y Alfresco, Liferay, Nuxeo, Drupal, Joomla, OpenCMS como sistemas de fuentes abiertas.Hacen uso de tecnologías como la especificación JSR-168 (portlets de Java), SMB/CIFS (protocolos de compartición de ficheros en red) o WebDav (presentación y edición de documentos via web) entre otros.

Documática. Web SemánticaLa web semántica, o como algunos autores denominan, la web 2.0, es un modelo de internet en el que los contenidos están relacionados siguiendo una taxonomía basada en el significado de las palabras.En la web semántica, los contenidos de las páginas web se relacionan a través de metadatos. Estos metadatos siguen reglas ontológicas que permiten a los buscadores entender el objetivo de la búsqueda y se traduciría en una recuperación óptima de resultados, reduciendo el nivel de ruido aún más. Esto se llevaría a cabo a través de los llamados agentes inteligentes, programas que buscan información sin la intervención humana.Los lenguajes que se usan en la web semántica basados en XML son:

• RDF: Resource Description Framework. Proporciona información descriptiva sobre los recursos que se encuentran en la Web.

• OIL: Ontology Inference Language. Lenguaje de representación de ontologías. • OWL: Ontology Web Language. Lenguaje de definición de ontologías sobre web

Page 18: Segundo Ejercicio Cosecha Propia

Para construir la web semántica, según la ideó Tim Berners-Lee, hay que empezar por separar en cada web el contenido de la presentación e incorporar al contenido metadatos sobre el significado del mismo.

Documática. Recuperación de informaciónEs un campo multidisciplinario relacionado con los Sistemas Gestores de Bases de Datos y la Inteligencia Artificial.Los sistemas de recuperación de la información trabajan con información vasta y no estructurada, basada en fuentes heterogéneas.La recuperación de la información es probabilística y sus medidas son:

• índice de retorno. Porcentaje de documentos relevantes que han sido recuperados. • índice de pertinencia. Porcentaje de documentos recuperados que son relevantes. • ruido. Porcentaje de documentos no relevantes recuperados • silencio. Porcentaje de documentos relevantes que no han sido recuperados

La recuperación de la información utiliza técnicas de inteligencia artificial como modelos booleanos, vectoriales, sistemas expertos, índices invertidos, sistemas de lógica borrosa, normas gamma, etcAdemás se utilizan operaciones como el truncamiento de palabras, stemming, tesauros, etcSu operación inversa es la indexación de la información. La indexación de la información se realiza mediante metadatos asociados a los documentos que son leídos por robots y posteriormente almacenados en una base de datos. Los robots o spiders de la web recorren los documentos a través de sus enlaces localizando los metadatos y recopilando la información en las bases de datos de los buscadores.

Documática. Legislación y normas aplicablesLa ley 11/2007 de acceso electrónico de los ciudadanos a los Servicios públicos recoge como uno de los pilares del Título 2. Régimen Jurídico de la Administración Electrónica, la gestión de los Documentos electrónicos y su archivado. Hace referencia a:

• Documento administrativo electrónico • Archivo electrónico • Expediente electrónico • Copias electrónicas

El RD 1671/2009 que desarrolla parcialmente la Ley 11/2007, en su título 6 hace referencia a

• Documentos electrónicos y sus copias

El RD 3/2010 que desarrolla el Esquema Nacional de Seguridad junto con la Ley Orgánica de Protección de Datos y su normativa, el RD 1720/2007, hacen referencia a

• Garantizar la calidad, el acceso, disponibilidad, conservación, integridad, autenticidad y confidencialidad de los datos en el archivado de documentos electrónicos

El RD 4/2010 que desarrolla el Esquema Nacional de Interoperabilidad, hace referencia en el capítulo 10 a las Condiciones para la recuperación y conservación de documentos electrónicos

• A través de una serie de medidas organizativas y técnicas o Políticas de gestión de documentos (NTI) o Inclusión de un índice electrónico en los expedientes (NTI) o Identificación única e inequívoca de cada documento o Asociación de metadatos mínimos obligatorios (NTI) o Clasificación de documentos o Periodo de conservación del documento o Acceso a los documentos a través de métodos de consulta online, descarga de

documentos e impresión de documentos o Procedimientos de borrado y destrucción física de documentos

Page 19: Segundo Ejercicio Cosecha Propia

o Documentación de los procedimientos • Creación de repositorios electrónicos para la gestión del contenido • Medidas de seguridad (garantizadas mediante los citados ENS y LOPD junto con la Ley

59/2003 de Firma Electrónica) • Formatos de los documentos (NTI)

o Estandar abierto o Cuando exista riesgo de obsolencia en el formato, realizar copiado auténtico con

cambio de formato • Digitalización de los documentos (NTI)

o Resolución del escaneado o Formato de salida o Metadatos a incluir en el documento electrónico

• Normas técnicas de interoperabilidad (NTI) sobre los aspectos mencionados

Normas ATRIO (Almacenamiento, Transformación, Recuperación de información en las ofcinas) que se compone de SICRES y ESTROFASICRES (Sistema de Información Común para Registros de Entrada y Salida)ESTROFA (Especificaciones para el Tratamientos de los Flujos Administrativos Automátizados)

Documática. Sindicación de contenidosSus principales características son la recuperación de información, recopilación de noticias, actualización automática.Los contenidos son publicados de fuentes heterogéneas siguiendo un estándar para su formato. Mediante suscriptores o agregadores (que pueden ser aplicaciones de escritorio, pluggins en el navegador o webs), los contenidos son suscritos por el cliente y actualizados automáticamente de forma periódica.RSS (Rich Site Summary o RDF Site Summary o Really Simple Syndication) y ATOM, ambos basados en XML son la tecnología más utilizada para escribir los contenidos y realizar las suscripciones.El estándar que utilizan los agregadores para realizar las suscripciones y listar las fuentes RSS se denomina OPML.

Accesibilidad. Legislación y obligaciones de las AAPPLa Constitución. Art.9 y Art.49 (participación de todos los ciudadanos en las tecnologías, incluidos los disminuidos)La primera Ley que recoge la obligación de cumplir medidas de accesibilidad fue la Ley 34/2002, que en su disposición adicional quinta obligaba a adaptarse a las páginas Web oficiales pero sin especificar niveles ni normativas. Esta disposición se modificó con la entrada en vigor de la Ley 56/2007 de medidas de impulso de la Sociedad de la Información, concretando que las páginas web de la Administración o con financiación pública deberan ser razonablemente accesibles, y para ello, antes del 31 de diciembre safisfacer, como mínimo el nivel medio de los criterios de accesibilidad reconocidos. Finalmente, el RD 1494/2007 establece que las citadas Webs deberán cumplir la prioridad 2 de la norma UNE 139.803 de AENOR a partir del 31 de diciembre del 2008. Además este Real Decreto también establece las condiciones básicas en las aplicaciones software y los equipos informáticos con las normas UNE 139.801 y UNE 139.802 de AENOR.Además se hace mención a la accesibilidad en otras leyes como:Ley 51/2003 (LIONDAU)RD 209/2003 de registros y notificaciones telemáticasLey 59/2003 de firma electrónicaLey 27/2007. Lengua de signos en páginas de internet.Ley 11/2007 de acceso a los ciudadanos a la administración electrónica

Accesibilidad. Pautas de accesibilidad webWAI (Iniciativa de Accesibilidad Web) es la inicial¡tiva del W3C en materia de accesibilidad web. Sus 5 líneas de trabajo son:

1. Aseguramiento de la accesibilidad web 2. Guias de accesibilidad (ATAG, UAAG, WCAG) 3. Herramientas libres (TAW y HERA)

Page 20: Segundo Ejercicio Cosecha Propia

4. Material de educación 5. Coordinación I+D

WCAG 1.0. Las pautas de accesibilidad WEB son WCAG 1.0 formado 14 pautas (agrupadas en 11 pautas de transformación y 3 pautas relacionadas con el contenido y navegación). Cada una de estas pautas se evaluan en un total de 65 puntos de verificación cuyo objetivo es alcanzar un determinado nivel de conformidad.Se manejan 3 prioridades P1, P2, P3. El cumplimiento de las 3 prioridades se certifican con los equivalentes niveles de conformidad A, AA, AAA.WCAG 2.0. Recientemente, el 11 de diciembre de 2008 aparece WCAG 2.0 con 4 principios (perceptible, operable, comprensible y robusto). Cada uno de estos principios está formado por un total de 12 pautas (4 en el primero y segundo, 3 en el tercero y una en el cuarto). Cada una de estas pautas se evaluan con un total de 61 criterios de éxito que permiten definir los distintos niveles de conformidad. Las pautas por sí solas no son verificables, para ello están los criterios de éxito.Como novedad en la guia WCAG 2.0, han sido documentadas para cada criterio de éxito una serie de técnicas que se puden catalogar en técnicas suficientes y técnicas aconsejables o consultivas. Son tres los documentos no normativos que ha publicado el W3C para WCAG 2.0: Comprender las Pautas 2.0, Técnicas para las Pautas 2.0 y Guía rápida de las Pautas 2.0.En cuanto a la conformidad, las pautas 2.0 definen 4 requisitos de conformidad obligados:

• Nivel de conformidad (como en las WCAG 1.0) A, AA, AAA, y además • Páginas completas: El nivel de conformidad debe alcanzarse de la página completa. • Procesos completos: Si varias páginas forman parte de un proceso secuencial, la totalidad del

proceso debe cumplir el nivel de conformidad. • Empleo de tecnologías accesibles: Si la página emplea tecnologías distintas, estas deberán

cumplir el mismo nivel de conformidad.

Accesibilidad. Norma UNE 139.803 de AENOR. 10 Requisitos de cada prioridadPrioridad 1, debe satisfacer:

1. Conservar el significado sin el uso de hojas de estilo ni colores. 2. Las páginas deben poder utilizarse aún con los objetos scripts deshabilitados. 3. Scripts con funcionalidad importante serán accesibles con ayudas técnicas. 4. Evitar parpadeos en la pantalla (epilepsia). 5. Los marcos deben tener nombres significativos (no incluir más de 3). 6. Utilizar tablas correctamente (marcas de encabezado th). 7. Sincronización de contenido dinámico y sus equivalentes. 8. Presentar los equivalentes alternativos de una presentación multimedia (audio-descripción y

subtítulos sincronizados). 9. Utilizar lenguaje claro y sencillo. 10. Identificar el idioma principal de la página (<html lang=”es”>). 11. Proporcionar texto a todo contenido no textual. 12.Cuidar lo mapas de imagen proporcionando texto redundante como alternativa. 13. El texto de los enlaces debe indicar claramente su destino. 14.Si no se consigue la página accesible, proporcionar una alternativa a otra web.

Prioridad 2. debería satisfacer:

1. DOCTYPE al principio del documento. 2. Correcta utilización de XHTML, rechazando elementos desaconsejados por W3C. 3. Incluir METADATOS en la web para facilitar los motores de búsqueda y la web semántica

(title, meta, link, address, del, ins). 4. Usar unidades relativas en lugar de las medidas absolutas. 5. Usar elementos de encabezado o título (h1, h2, h3…, h6). 6. Describir el contenido de los marcos si no resulta claro con los nombres (longdesc). 7. Uso correcto de las listas y elementos de listas y citas (ol, li, blockquote). 8. Utilizar resúmenes de tablas (summary). 9. CSS para disposición (no usar tablas, con excepciones) y apariencia de los elementos.

Page 21: Segundo Ejercicio Cosecha Propia

10.Utilizar marcadores o tags y css en lugar de imágenes cuando sea posible. 11. El color de fondo y primer plano de imágenes deben contrastar (un valor de 125 para brillo y

500 para color). 12. Los elementos no deben parpadear (para evitar dificultades en la navegación). 13. Posibilidad de detener los elementos con movimiento. 14. En las páginas con auto-refresco, proporcionar al usuario la forma de evitarlo. 15. Evitar pop-up sin aviso previo. 16. Evitar las redirecciones mediante marcadores. 17.Contenidos dinámicos accesibles. 18.Asociación (explícita e implícita) de las etiquetas a los controles de formularios (uso de label). 19. Proporcionar mapa del sitio y mantener la coherencia de la navegación (tabindex). 20.Scripts con funcionalidad no importante serán accesibles con ayudas técnicas. 21. La ejecución de los scripts debe ser independiente del dispositivo utilizado.

Prioridad 3, puede satisfacer:

1. Estilo de presentación homogéneo en todo el sitio. 2. Proporcionar barras de navegación y buscadores del sitio. 3. Organizar los enlaces y proporcionar atajos de teclado (accesskey). 4. El color de fondo y primer plano de texto deben contrastar (un valor de 125 para brillo y 500

para color). 5. Utilizar abreviaturas de encabezados de tablas (abbr). 6. Uso de marcadores adecuados para acrónimos y abreviaturas (acronym, abbr). 7. No usar presentaciones gráficas y sonoras innecesarias. 8. Proporcionar alternativas a las tablas cuyo texto sea muy grande. 9. Incluir valores por omisión campos vacíos para los formularios. 10. Proporcionar información para que los usuarios reciban los documentos según preferencias

(doc, rtf, pdf…). 11. Proporcionar información sobre los elementos que pertenecen a una colección.

Accesibilidad. WCAG 2.0. Principios y PautasLa guía WCAG 2.0 está formada por cuatro principios fundamentales que albergan un total de 12 pautas de accesibilidad. A su vez, las pautas de accesibilidad se componen de un total de 61 criterios de éxito, independientes de cualquier tecnología, que deberán cumplirse para alcanzar el grado de conformidad de cada prioridad. Los principios y las pautas son los siguientes:Principio Perceptible: Relativo al contenido de la web. Contiene 4 pautas:

• Alternativas textuales al contenido no textual • Contenido multimedia dependiente del tiempo, presentando alternativas no visuales

sincronizadas • Adaptable al entorno , presentando el contenido de formas diferentes • Contenido principal distinguible del contenido secundario

Principio Operable: Relativo a la interacción de los elementos en la web. Contiene 4 pautas:

• Funcionalidad accesible a través del teclado • Tiempo suficiente para leer y usar el contenido • Prevención de ataques epilépticos • Contenido navegable

Principio Comprensible: Relativo al contenido y los controles de la web. Contiene 3 pautas:

• Contenido legible • Contenido perceptible • Ayuda a la entrada de datos

Principio Robusto. Relativo a la compatibilidad con tecnología futura. Contiene 1 pauta:

• Compatible con agentes actuales y futuros

Page 22: Segundo Ejercicio Cosecha Propia

Accesibilidad. Normas AENOR UNE de AccesibilidadSon normas creadas entre los años 2003 y 2004 por AENOR para dar respuesta a los requisitos de la legislación en materia de Accesibilidad de aplicaciones informáticas.UNE 139.801: Aplicaciones informáticas para personas con discapacidad. Requisitos de Accesibilidad al ordenador. Soporte físico.UNE 139.802: Aplicaciones informáticas para personas con discapacidad. Requisitos de Accesibilidad al ordenador. Software.UNE 139.803: Aplicaciones informáticas para personas con discapacidad. Requisitos de Accesibilidad para contenidos Web.Las normas UNE 139.803 están basadas en WCAG 1.0 y se describen 7 apartados: Principios generales, Presentación, Estructura, Contenido, Navegación, Scripts y objetos de programación y Situaciones excepcionales.A su vez, mediante un sistema de prioridades podemos clasificar las páginas web de:

• Inaccesibles, cuando no cumplen prioridad 1, • Su acceso presenta muchas dificultades, cuando no cumple la prioridad 2, • Su acceso presenta alguna dificultad, cuando no cumple la prioridad 3, • Accesible, cuando cumple todas las prioridades

Existen unas tablas de correspondecnia entre estos 7 apartados y las 14 pautas de WCAG 1.0AENOR certifica sólo para prioridades 1,2 y 1,2,3 mediante dos tipos de certificado: Certificado de conformidad Web y Certificado de accesibilidad TIC (este último con control de auditorias).La primera Ley que recoge la obligación de cumplir medidas de accesibilidad fue la Ley 34/2002, que en su disposición adicional quinta obligaba a adaptarse a las páginas Web oficiales pero sin especificar niveles ni normativas. Esta disposición se modificó con la entrada en vigor de la Ley 56/2007 de medidas de impulso de la Sociedad de la Información, concretando que las páginas web de la Administración o con financiación pública deberan ser razonablemente accesibles, y para ello, antes del 31 de diciembre safisfacer, como mínimo el nivel medio de los criterios de accesibilidad reconocidos. Finalmente, el RD 1494/2007 establece que las citadas Webs deberán cumplir la prioridad 2 de la norma UNE 139.803 de AENOR a partir del 31 de diciembre del 2008. Además este Real Decreto también establece las condiciones básicas en las aplicaciones software y los equipos informáticos con las normas UNE 139.801 y UNE 139.802 de AENOR.

Cliente/Servidor. CaracterísticasLa arquitectura cliente servidor o sistemas distribuidos se basa en un conjunto de ordenadores autónomos enlazados en una red de comunicación. Los elementos básicos de los sistemas distribuidos son la red, los clientes y los servidores.Las características son las siguientes:

• Compartición: Los servidores exponen recursos y los clientes solicitan recursos. • Concurrencia: No sólo de usuarios, también de recursos. • Arquitectura abierta: Medida en que pueden añadirse servicios de compartición de recursos

sin que ello afecte a la integridad del sistema distribuido y sus usuarios. Hay que destacar el estándar de facto, la DCE (Distributed Computing Enviroment) del Open Group con servicios como directorio distribuido (DDS y LDAP), llamada a procedimientos (RPC), Call Level Interface, esto es, llamadas a gestores de bases de datos mediante SQL (CLI), sincronización horaria (NTP) y autenticación Kerberos.

• Escalabilidad: Vertical, migración a servidores mayores y Horizontal, añadiendo y suprimiendo servidores.

• Tolerancia a fallos: Redundancia de equipos y disponibilidad. • Transparencia de red: Percepción de usuario como un todo, no como un conjunto de nodos.

Hay dos tipos de transparencia: o Transparencia de acceso: Se pueden realizar el mismo acceso a operaciones tanto

locales como remotas. Un ejemplo de esto son los servicios web y SOA o Transparencia de ubicación: Se pueden realizar accesos a un recurso sin conocer en

qué parte de la red está el mismo. Un ejemplo de esto el el protocolo SMB (Server Message Block) y CIFS (Common Internet File System)

Page 23: Segundo Ejercicio Cosecha Propia

Cliente/Servidor. DefinicionesESB: Enterprise Service Bus o Bus SOA es la infraestructura que permite la comunicación y gestión de los servicios en una arquitectura BPM-SOA. Surge como alternativa a la anterior EAI (Enterprise Application Integration). En la antigua integración de aplicaciones de empresa, los datos y objetos están distribuidos y requieren tantas conexiones como nodos quieran comunicarse, además de sincronización entre nodos. ESB, por su parte requiere una sola conexión de cada nodo y se encarga de la sincronización.ESB proporciona gestión, encolado de mensajes, encaminamiento.Aporta orquestación y coreografía.Aporta monitorización de los servicios.Aporta seguridad y confidencialidad a los servicios.BPM-SOA se puede implantar sin ESB, pero es recomendable su uso. En el mercado existen alternativas libres como la de Sun y propietarias de IBM, Oracle, BEA.Coreografía: Es un método de colaboración entre servicios que se implementa en arquitecturas BPM-SOA. En la coreografía cada nodo realiza parte de una 'visión global del sistema' de manera independiente pero coordinada con los demás servicios. No existe un módulo centralizado que dirija la actividad, es un sistema distribuido en que cada servicio debe conocer qué hacer en cada momento para bien común y global de la arquitectura. Existen implementaciones de coreografía como WSCDL.Orquestación: Es un método de colaboración entre servicios que se implementa en arquitecturas BPM-SOA. Los servicios están dirigidos por un módulo director que toma la decisiones sobre el orden en que colaboran los servicios en un determinado proceso. Es un sistema centralizado orientado a la vista de un participante en particular, no tiene la visión global del sistema. Implementaciones de orquestación son Biztalk de Microsoft o WS-BPEL de OASIS. Lenguajes como BPMN, notación estandar para gestión de procesos de negocios, podemos representar WS-BPEL.

Cliente/Servidor. Deficionones 2COMET: También llamado AJAX inverso o tecnología Push. Es una tecnología, adaptada de AJAX, que consiste en el mantenimiento de una conexión permanente entre cliente y servidor sobre la cual:- El cliente no realiza peticiones al servidor. En su lugar, el cliente manda mensajes al servidor- El servidor no responde a peticiones del cliente. En su lugar, el servidor envía mensajes al cliente en base a eventos ocurridos en el propio servidor.Esta tecnología es hoy día utilizada en aplicaciones web como Google Talk, FacebookMashup: Mashup es un concepto de desarrollo de sitios web, cuyo contenido está formado por aplicaciones o servicios de terceros. Estos servicios se incrustan en la web por medio de API's o agregadores RSS de sindicación de forma que enriquecen al sitio web. Un sitio web puede estar compuesto enteramente de estos 'mashup'. Mashup es una aplicación de la reutilización de servicios y arquitectura SOA. Estos sitios web hacen uso intensivo de AJAX y COMET.

Cliente/Servidor. MiddlewareEl las arquitecturas cliente/servidor hay 3 elementos (red, cliente y servidor). El middleware sería un cuarto elemento. Este componente permite la interoperabilidad de las aplicaciones distribuidas aislando al desarrollador de la complejidad de las interconexiones en el sistema de comunicación y permitiendo acceso transparente a los recursos. Está entre la aplicación y la red (como un pegamento)Ejemplos de ellos son: - MoM (Middleware orientado a Mensajes). Asíncrono. Requiere que el sistema servidor mantenga una cola de mensajes. - P2P (Peer to peer). Conversación. Establecimiento de conexión único. - RPC (Remote Procedure Call). Síncrono, Stub en el cliente y servidor. Open Group tiene DCE-RPC. También existe el XML-RPC. - RMI (Remote Method Invocation). Síncrono o asíncrono. Entorno Java. Stub en el cliente y en el servidor - DCOM/COM+ (Distributed Component Object Model). Entorno Microsoft. Está en desuso en favor del Framework .NET - CORBA (Common Object Request Broker Architecture). Síncrono o asíncrono. Es multilenguaje. Pertenece al Open Management Group. Necesita IDL en cliente y servidor - SOAP (Simple Object Access Protocol). Síncrono o asíncrono. Alto nivel de abstracción. Pertenece a W3C y OASIS (Open Source). Es una evolución del XML-RPC

Page 24: Segundo Ejercicio Cosecha Propia

Cliente/Servidor. RMI, CORBA y SOAPRMI (Remote Method Invocation): Invocación Remota de métodos sólo bajo tecnología Java. Es orientado a objetos y está formado por la interfaz de los métodos que se exportan, la capa stub-skeleton de interacción con la aplicación y el transporte. Es incompatible con CORBA (sin embargo existe la interfaz RMI sobre IIOP, Internet Inter-ORB Protocol, que permite hacerlos trabajar juntos). Síncrono o asíncrono. Las principales ventajas son la facilidad de implementación (JAVA) y la eficacia debido al bajo nivel en que se implementa. Las desventajas son que dependen de puertos de comunicaciones que deben ser abiertos por los routers.CORBA (Common Object Request Broker Architecture): Del Open Management Group. Estándar orientado a objetos que permite interoperar entre sistemas heterogéneos con independencia del lenguaje utilizado en ambos extremos. Envuelve el código en un objeto ORB que puede ser invocado mediante IDL (Interface Definition Languaje). IDL es un lenguaje común que genera el código necesario para realizar la comunicación entre ORB's; esto es, que describe las interfaces para que ambos objetos puedan comunicarse. La comunicación entre los ORB's se realiza a través del protocolo abstracto GIOP (General Inter-ORB Protocol) o IIOP (Internet Inter-ORB Protocol), la implementación sobre TCP-IP de GIOP. Aporta seguridad en las comunicaciones basada en encriptación. Síncrono o asíncrono. Las principales ventajas son el multilenguaje y la eficacia debido al bajo nivel en que se implementa. Las desventajas son que dependen de puertos de comunicaciones que deben abrirse por los routers.SOAP (Simple Object Access Protocol) (1.2): Evolución de XML-RPC. Pertenece a W3C. Es un protocolo de alto nivel basado en XML para realizar servicios web. Puede ser transportado por HTTP, SMTP, ... Su estructura es [Envelope(Header+Body)]. Se usa junto a WSDL, el lenguaje para describir el servicio y UDDI para publicar los servicios web. Síncrono o asíncrono. Las ventajas son la facilidad de implementación, multilenguaje (XML) y que trabaja sobre puertos estándares de comunicación. Las desventajas son que es menos eficiente que RMI o CORBA por que trabaja a un nivel más alto en la pila de protocolos.

Cliente/Servidor. SOA o WebServicesLas Arquitecturas Orientadas a Servicios son un modelo orientado a la reutilización de los servicios en entornos de sistemas distribuidos. SOA es una evolución de la Programación Orientada a Objetos en las arquitecturas cliente/servidor que 've' las aplicaciones como un conjunto de servicios sin estado, independientes y atómicos. Describe la utilización de servicios web debilmente acoplados y altamente interoperables. SOA puede implementarse con SOAP y WSDL pero no es la única forma de hacerlo. Utiliza protocolos de transporte transparente (p.ej HTTP)Se basa en estándares abiertos y tecnología de fácil adopción (HTTP, XML). Los servicios deben ser independientes de los sistemas y lenguajes de programación. La colaboración entre los servicios se realiza siguiendo el concepto de orquestación, mecanismo centralizado que dirige las interacciones entre los elementos y, coreografía, que describe el comportamiento de cada una de las actividades.Los elementos son: - Proveedor de servicios. Ofrece los servicios, y los publica junto con el contrato de interfaz (Ej. mediante SOAP y WSDL). - Consumidor de servicios. Sistema que utiliza los servicios de acuerdo a un contrato de interfaz (Ej. mediante SOAP y WSDL). - Servicio de publicación. Sistema que recopila y publica los diferentes servicios disponibles y sus interfaces. Hace posible el descubrimiento de los servicios. (Ej. UDDI)

Calidad. DefinicionesCalidad: Grado en que un conjunto de características inherentes satisface unos requisitos establecidos.Calidad Total: Modelo de gestión empresarial orientado a la calidad, que persigue alcanzar la satisfacción de todos aquellos entes (personal, clientes, sociedad) relacionados con la empresa u organización. El objetivo último es alcanzar la excelencia a través de un proceso de mejora continua.Gestión de Calidad del SW: ¿? Conjunto de actividades paralelas al desarrollo orientadas a garantizar la adecuación del desarrollo a estándares y normas establecidas por la organización.Control de Calidad del SW: Conjunto de actividades destinadas a comprobar si un producto posee determinadas características de calidad. Ejemplo: Pruebas, Revisiones y Auditorías.Garantía de Calidad del SW: Conjunto de actividades paralelas al desarrollo que es necesario realizar para asegurar que un producto responde a las necesidades del usuario.

Page 25: Segundo Ejercicio Cosecha Propia

Calidad. Diferencia entre Revisiones Formales y Revisiones TécnicasLas revisiones formales son una práctica de Métrica 3 cuyo objetivo es detectar y registrar defectos en un producto intermedio y sus posibles desviaciones con respecto a las especificaciones y estándares establecidos.Las revisiones formales son un proceso riguroso y poco flexible realizado por el equipo de desarrollo, el grupo de aseguramiento de calidad y, en ocasiones, los usuarios.Las revisiones formales se realizan sobre los productos intermedios de especial importancia.Las revisiones formales dan como resultado un informe de revisión y lista de acciones correctoras con caracter formal y vinculante.Las revisiones técnicas son una práctica de Métrica 3 cuyo objetivo es evaluar un producto intermedio para verificar que satisface una serie de normas, estándares y guías establecidos en el proyecto con el fin de asegurar la calidad del producto final.Las revisiones técnicas son realizadas por el Jefe de Proyecto y el Responsable de Aseguramiento de calidad.Las revisiones técnicas dan como resultado un informe que formará parte de la documentación final del proyecto.

Calidad. Interfaz de Aseguramiento de CalidadLa Interfaz de Aseguramiento de calidad (IAC) es una de las 4 interfaces definidas en Métrica v3. Su objetivo es verificar la calidad de los productos desarrollados a través de una serie de Revisiones realizadas en paralelo a las diferentes actividades de los procesos de Métrica v3. Estas actividades permiten reducir, eliminar y prevenir las deficiencias del producto y aumentar la confianza esperada por el cliente. La IAC define y pone en marcha un Plan específico para cada proyecto concreto.La IAC cubre los procesos desde Estudio de Viabilidad del Sistema al Mantenimiento del Sistema y es realizada por el Grupo de Aseguramiento de Calidad, independiente del equipo de desarrollo y supervisadas por el Responsable de Calidad.La IAC se basa en los estándares de calidad ISO 9000:2000, ISO 9001:2000 e ISO 15504/SPICE.El Plan de Aseguramiento de la Calidad se establece en la actividad paralela al Estudio de Viabilidad del Sistema y se especifica en la actividad paralela al Análisis de Sistemas de Información. Este plan es específico para cada proyecto concreto y se realizará de acuerdo a los estándares aplicables a la organización si existen, o a normas ISO 9000:2000 e ISO 9001:2000, en su defecto. El Plan de Aseguramiento de calidad refleja actividades de calidad (como revisiones, pruebas, auditorias), establece los estándares a aplicar, los productos a revisar, procedimientos a seguir, normativa para informar de defectos detectados y método para realizar el seguimiento del proyecto hasta su mantenimiento.

Calidad. Modelos de calidad actuales (evaluación de procesos)Podemos definir la calidad total como el modelo de gestión enfocado a los procesos, basado en sistemas empresariales cuyo objetivo es la satisfacción de todos los entes implicados. Se caracteriza por la búsqueda de la excelencia a través de la mejora continúa. Hay varios modelos:Modelo de calidad de la norma ISO/IEC 9126. Es un estándar certificable. Clasifica la calidad del software en un modelo estructurado de seis características (parecido a los factores del modelo de McCall) y subcaracterísticas (como los criterios del modelo de McCall). Las seis características son Funcionalidad, Fiabilidad, Usabilidad, Eficiencia, Mantenibilidad y Portabilidad.CCM (Capability Maturity Model). Es un modelo de evaluación de los procesos que permite definir el grado de madurez de las organizaciones. Hay 5 niveles de madurez (INICIAL, REPETIBLE, DEFINIDO, GESTIONADO y OPTIMIZADO). Para cada nivel se definen un conjunto de áreas clave de proceso organizadas en 5 características comunes que contienen prácticas clave. Para pasar al siguiente nivel se deben realizar todas las áreas clave de proceso. El nivel 3 es el objetivo de la mayoría de las organizaciones.CMMI 1.2. Sucesor de SW-CMM. Cumple con la Norma SPICE. Integra varios modelos de evaluación de procesos en un sólo marco. Estos modelos son el desarrollo, la adquisición y los servicios. Hay dos formas de representarlo: Primero, el modelo escalonado, para software, con los cinco niveles de madurez tradicionales de CMM. Segundo, el modelo continuo, para sistemas, con 6 niveles (INCOMPLETO, INICIAL, GESTIONADO, DEFINIDO, CUANTITATIVAMENTE GESTIONADO y OPTIMIZADO) que se pueden corresponder con los niveles del estándar 15504.EFQM. Modelo de autoevaluación europeo. El objetivo es el Resultado del negocio dividido en Satisfacción del cliente, Satisfacción del personal e Impacto en la sociedad. Para conseguirlo necesitamos revisar los 5 agentes facilitadores de éxito (Políticas y Estrategias, Procesos, Gestión de

Page 26: Segundo Ejercicio Cosecha Propia

personal, Alianza y Recursos, Liderazgo). Cada uno de estos 9 criterios se puntúa hasta conseguir un total de 1000 puntos. El modelo de excelencia de EFQM está regido por un proceso de mejora continua basado en PDCA y en las últimas versiones se viene usando el método REDER (Resultado, Enfoque, Despliegue, Evaluación y Revisión) de mejora continua.Otros modelos usados en las Administraciones, a raíz del RD 951/2005, marco general para la mejora de calidad en la AGE y basados en EFQM son EVAM y CAF.

Calidad. Estándares de calidad (procesos)ISO/IEC 9126. Estándar internacional para la evaluación del Software. Consta de un Modelo de calidad, Métricas externas e internas y calidad en métricas de uso. El modelo de calidad que propone es un estándar certificable. Define la usabilidad como la capacidad de un software de ser comprendido, aprendido, usado y ser atractivo para el usuario, en condiciones específicas de uso.ISO 9000 (2000). Son las llamadas normas para Sistemas de gestión de la calidad. El término Aseguramiento de la Calidad utilizado en las antiguas normas ISO 9000 da paso al término Gestión de la Calidad orientados a la Calidad Total. Además se describen 8 principios en que se basan las normas. Algunos de estos principios son Satisfacción del cliente, Mejora continua, Identificación de procesos o responsabilidad de la dirección. Esta formado por tres normas básicas ISO 9000:2000, conceptos y vocabulario de los Sistemas de Gestión de Calidad. ISO 9001:2000 (hoy día 9001:2008), Requisitos de los Sistemas de Gestión de Calidad. ISO 9004:2000 Guía para llevar a cabo los Sistemas de Gestión de Calidad. Los dos primeros son referencias de Métrica 3. En cuanto a la ISO 9004 define 5 niveles de madurez y la evaluación de los criterios que miden cada nivel camino a la excelencia.... sobre procesos SW:ISO/IEC 15504 Spice. Estándar internacional de dominio público para evaluación, determinación de la capacidad y mejora continua de los procesos software. Mediante un modelo de referencia de dos dimensiones (proceso y capacidad) se evaluan los procesos. En cuanto a los procesos, SPICE adopta la norma ISO 12207 de Ingeniería del Software para determinar los procesos de evaluación. A efectos de estudio de la capacidad se describen 6 niveles (0-5): Incompleto, Realizado, Gestionado, Establecido, Predecible y Optimizado. Mediante una serie de atributos de cada nivel se miden los procesos. Éste es un estandar ligado a las normas 9000:2000 y junto con ellas forma parte de las referencias de Métrica 3....sobre servicios IT:ISO/IEC 20000. Estándar internacional de gestión de servicios en las Tecnologías de la Información. Basados en las BS 15000. Está formada por dos documentos. El primero es la especificación que define los requerimientos de las organizaciones, un total de 217, y es certificable. El segundo es el código de prácticas y está basado en el estándar de facto ITIL.ITIL. No es un estándar(, es un estándar de facto). Biblioteca de infraestructuras para las Tecnologías de la información. Marco de buenas prácticas, de dominio público, para la entrega de servicios IT. Entre sus libros destaca la Entrega o Provisión de Servicio, basado en la garantía de disponibilidad de los servicios y Soporte de Servicio, centrado en la resolución de incidencias. Otros libros como Gestión de las aplicaciones, Gestión de la infraestructura, Gestión del negocio, Gestión de la seguridad.

Calidad. UsabilidadLa usabilidad es un concepto que guarda relación con la calidad y con la accesibilidad de los sistemas y productos. Está definida en el estándar ISO 9126 y en el ISO 9241 como la capacidad de un software de ser comprendido, aprendido, usado y ser atractivo para el usuario, en condiciones específicas de uso. Bajo esta definición extraemos las siguientes conclusiones. La usabilidad es una medida empírica y relativa. Es una medida empírica porque se puede verificar mediante test de laboratorios u observadas mediante trabajo de campo. Sin embargo la usabilidad es relativa porque el resultado de esta medida viene condicionado por factores como el usuario a quién va dirigido el sistema o la comparación con otros sistemas similares.En materia de calidad, la usabilidad va ligada a otros factores de calidad como la facilidad de uso, la flexibilidad o la robustez.

Modelos de ciclo de vidaUn modelo de ciclo de vida es un conjunto de etapas por las que pasa el desarrollo de un proyecto software y que abarca desde la concepción del mismo hasta su retirada de servicio. Se diferencia de la metodología en que el modelo de ciclo de vida no se ocupa de cómo realizar el desarrollo (participantes del mismo, técnicas y prácticas a emplear...) En este caso se tiene en cuenta qué

Page 27: Segundo Ejercicio Cosecha Propia

actividades realizar y en que orden o secuencia, hitos a cumplir en cada etapa, objetivos para pasar de una etapa a la siguiente.Entre los modelos de ciclo de vida clásicos podemos citar:Modelo clásico o en cascada: Se definen fases secuenciales y deberán realizarse en el orden estricto de secuencia. Se rige por la documentación en cada fase y un estricto cumplimiento de los requisitos iniciales. Hay una variante con realimentación que permite volver a la fase inmediatamente anterior. Las fáses más típicas son análisis, diseño, construcción y pruebas aunque no es relevante el número de ellas.Modelo de prototipos. Surge como reclamo para solucionar el problema de los requisitos inamovibles del modelo en cascada. Hay tres variantes: Prototipo clásico, Prototipo evolutivo y Prototipo incremental. En el Prototipo clásico se crea una maqueta desechable para confirmar los requisitos que no están del todo claros. El prototipo evolutivo va desarrollando las partes del sistema que tienen claramente definidos sus requisitos. De este modelo ha surgido el Desarrollo Rápido de Aplicaciones (RAD) utilizando lenguajes 4GL. El prototipado incremental realiza versiones sucesivas cerradas con requisitos claros para cada versión. En cada versión se añade a la anterior un conjunto de funcionalidades distinguidas.Los modelos de ciclo de vida modernos son, entre otros:Modelo en espiral. Creado por Boehm, este modelo iterativo e incremental se diferencia de los demás en que añade el análisis y gestión de riesgos al modelo, lo que le caracteriza como un modelo basado en la calidad y de difícil implementación. Se representa como una espiral con cuatro cuadrantes que reflejan actividades por las que deberá pasar cada fase. Estas son Planificación, Análisis y Gestión de Riesgos, Ingeniería y Evaluación. Una fase se define con un ciclo completo de la espiral. El número de fases es irrelevante y se define al inicio de la aplicación del modelo. En este modelo se puede medir en cada momento la evolución del desarrollo con el valor del radio de la espiral y el coste con el valor del ángulo de la espiral.PUDS: Es, en realidad una metodología que impone un ciclo de vida. El Proceso Unificado de Desarrollo del Software nace desde la perspectiva del desarrollo orientado a objetos de Booch, Roumbaugh y Jacobson. Es un modelo basado en la arquitectura y guiado por los casos de uso y los modelos. Este es un modelo iterativo e incremental en que se definen cuatro grandes fases (Concepción, Elaboración, Construcción y Transición) y para cada una de ellas, el desarrollo deberá realizar una o varias iteracciones que se verán afectadas por las siguientes actividades o disciplinas: Modelado de Negocio, Gestión de requisitos, Análisis y Diseño, Implementación, Pruebas, Despliegue, Gestión de la configuración, gestión del proyecto y el entorno de desarrollo. La primera iteración de las cuatro fases se llama desarrollo inicial y da como resultado un producto beta. Las siguientes iteracciones se llaman desarrollo evolutivo.

Modelos de ciclo de vida. Metodologías ágilesLas metodologías ágiles son un modelo de ingeniería del software que surge a principios del año 2000 y basado en las directrices de su manifiesto:Un desarrollo ágil se fundamenta en hacer prevalecer:

1. Personas sobre los Procesos y Herramientas 2. Software que funcione sobre la documentación exhaustiva 3. Colaboración con el cliente sobre la negociación contractual 4. Respuesta al cambio sobre la planificación rígida

Además de estas cuatro directrices, los métodos ágiles proponen 12 principios que se pueden resumir en:

• Satisfacción del cliente aumentando su competitividad mediante entrega continua, y en breves intervalos de tiempo, de software funcional. El software será la medida del progreso del proyecto.

• Son bienvenidos los requisitos cambiantes en cualquier fase del desarrollo. • Búsqueda de la excelencia y el buen diseño. La simplicidad (el arte de maximizar la cantidad

de trabajo no realizado) es esencial. • Comunicación entre el cliente y los desarrolladores a diario, cara a cara formando parte del

mismo equipo de trabajo. • Motivación del personal y aumento de confianza mediante la auto-organización del equipo de

desarrollo.

Page 28: Segundo Ejercicio Cosecha Propia

• Mantener un paso constante de productividad, manteniendo, a intervalos regulares, reuniones de autoevaluación y mejora continua para ajustar los parámetros de trabajo y del proyecto.

Esta metodología contrasta en muchos aspectos con metodologías tradicionales. Como ejemplos podemos citar que su objetivo es realizar entregas continuas de software funcional al cliente pudiendo éste realizar cambios en los requisitos en cualquier momento del desarrollo. Para atender eficazmente las necesidades del cliente y no desmotivar a los analistas y desarrolladores, la metodología ágil propone técnicas como la implicación directa del cliente, trabajando mano a mano y cara a cara con el desarrollador, no afrontar tareas pesadas y largas en el tiempo, primando las pequeñas soluciones rápidas a estos cambios. Es esencial el modelo iterativo de trabajo, realizando frecuentes reuniones para valorar los cambios y el desarrollo entregado y estudiar cómo mejorar la eficiencia.Ejemplos de metodologías ágiles son Scrum, XP, FDD, ASD, Cristal, RUP o PUDS (no en todas las bibliografias considerado como tal)

XML. DTD y Esquemas XMLDTD (Document Type Definition) es un documento de texto que delimita todas las partes de un documento XML: Elementos, número de elementos, orden, relaciones, atributos.SchemaXML es un documento XML que realiza las mismas funciones que un DTD y amplía sus funcionalidades.Ambas tecnologías permiten validar un documento XML pero presentan bastantes diferencias.Las diferencias son las siguientes:

• Un DTD valida un documento completo, mientras que un SchemaXML puede validar partes de un documento.

• El uso del DTD está más extendido que el de los esquemas por lo que se pueden encontrar más facilidades para su implementación.

• Un DTD es más sencillo de escribir pero su sintaxis no es XML como el esquema. • La validación del DTD requiere menos capacidad de computación por su sintaxis más sencilla. • Los elementos de un DTD son globales, esto es que no pueden repetirse, mientras que el

esquema sí lo permite mediante espacios de nombres. • Un SchemaXML permite describir tipos de datos predefinidos como fechas, enteros, cadenas

de texto... mientras que un DTD no. Un DTD solo usa datos #PCDATA. • Un SchemaXML permite crear tipos de datos a medida a través de las restricciones mientras

que un DTD solo usa datos #PCDATA. • Un SchemaXML permite describir elementos complejos como elementos con subelementos y

datos de texto a la vez. • Un SchemaXML puede hacer referencia a otros esquemas mientras que un DTD no.

XML. parsers XMLPara poder trabajar con documentos XML en los entornos de desarrollo actuales como J2EE y .NET se hace necesario una serie de librerías o APIś que nos faciliten la labor de leer los documentos de texto (que al fin y al cabo son los XML). Los parser se encargan, no sólo de validar los documentos si no de proporcionar una serie de operaciones para manipular su información.Los principales parsers son los siguientes:DOM. Estándar de la W3C, el Document Object Model es un parser cuya característica principal es que mantiene todo el árbol del documento XML en memoria. Esto permite leer la información de los nodos, añadir, eliminar y posteriormente salvar los cambios en el mismo XML. El sobreesfuerzo que supone cargar todo el contenido en memoria se compensa con la velocidad de respuesta y la capacidad de modificación frente a SAX. Su especificación más reciente es la 2.0SAX. Simple API for XML es otra forma de manipular un documento XML, pero esta vez sólo parte del mismo. Trabaja en base a eventos, esto es según es presentada. Permite trabajar fácilmente con árboles muy grandes, pero no todo él en memoria. Sin embargo, no permite la manipulación de los nodos. Su versión actual es la 2.0Una de las implementaciones más populares para C++ o Java es Xerces que cumple tanto con las especificaciones para DOM como para SAX.JDOM. Surge como alternativa a DOM y SAX como un parser específico para Java.

Page 29: Segundo Ejercicio Cosecha Propia

JAXP. Java API for XML Processing. No es un parser en si. Es el API oficial de Java para procesamiento de documentos XML. Establece las normas y operaciones comunes que deberán cumplir los parser que quieran ser interoperables en el mundo Java.System.XML Biblioteca de la BCL de .NET para procesar documentos XML en el framework de Microsoft.

XML. Principales tecnologías (XSL, XLL, XForms y XQuery)Las principales tecnologías referidas a XML son:XSL. eXtensible Style Language. Su objetivo es proporcionar un modo de formateo de documentos XML. Está formado por XSLT, XPath y XML-FO.- XSLT. Lenguaje extensible de estilos de transformación. Su principal uso es transformar un documento XML en otro, por ejemplo XHTML. Usa XPath para trabajar sobre el XML.- XPath. Lenguaje de navegación sobre documentos XML. Su sintaxis no es XML, permite posicionarse sobre cualquier objeto de XML e incluso devolver estructuras tipo array del árbol.- XML-FO. Lenguaje de formateo de XML. Describe el formato y los datos a aplicar. Su principal uso es transformar un XML en PDF.XLL. eXtensible Linking Language. Su objetivo es referenciar documentos desde XML. Está formado por XLink y XPath.- XLink. Lenguaje de creación de hiperenlaces en un documento XML. Mediante la definición de un namespace, xlink puede referenciar otros documentos a modo de anclaje (como el ancla de HTML)- XPointer. Su uso junto con XLink, permite referenciar elementos de la estructura interna de un documento XML. Hace, para ello uso de XLink y XPath.XForms. Pretende ser el estandar de creación de formularios. Son los sucesores de los XHTML Forms. Separan la presentación de los datos del formulario, pudiendo éste presentarse embebido en HTML, XML u otros medios que soporten XML. El no depender de la presentación hace que estos formularios sean independientes del dispositivo.XQuery. Es un lenguaje de consulta de documentos XML. Son a los XML lo que SQL a las bases de datos relacionales. Permiten recuperar información estructurada de un XML con datos.XMLEncryption. Permite la encriptación de documentos y datos sean XML o no. Admite algoritmos como TripleDES, AES, o RSA. La codificación de datos se hace en Base64.XMLDSignature. Permite el firmado digital de documentos y datos sean XML o no.XKMS. XML Key Management System. Permite el registro y distribución de claves públicas en el uso de XMLDSig.SOAP. Simple Object Access Protocol, es un protocolo que permite el intercambio de mensajes XML entre sistemas distribuidos. Es unos de los protocolos más utilizados en servicios web. XML es el lenguaje encargado tanto de su distribución (mensajes SOAP) como de la descripción de las interfaces de estos servicios (con WSDL).

XML. XAdESXAdES (XML Advanced Electronic Signature) es un estándar de firmado electrónico basado en XMLDSig de W3C. Ha sido estandarizado por la ETSI (European Telecomunications Standard Institue) como especificación técnica europea en el ámbito de la firma electrónica. En las Administraciones Públicas europeas su uso extendido pretende sustituir al otro estándar de infraestructura de clave pública PKCS#7.Ambos, XAdES y PKCS#7 se basan en criptografía de clave pública para su firmado. Sin embargo, hay algunas características que incluye XAdES que lo hacen destacar:

1. XAdES está escrito en XML, mientras que PKCS#7 en notación ASN1, lo que le confiere al primero alta interoperabilidad con los servicios actuales de comunicación distribuida y permite utilizarse fácilmente con parsers XML actuales.

2. PKCS#7 no almacena el estado de la firma, ni cuándo se realizó, mientras que XAdES incluye marcas y sellado de tiempo junto con la firma

3. XAdES permite realizar múltiples firmas de diferentes partes del documento (uso de Enveloped, Enveloping y Detached), así como firmar ficheros adjuntos.

Por último, XAdES permite realizar la firma con seis perfiles de protección diferentes:

1. XAdES-BES o firma electrónica avanzada, a. XAdES-EPES, es una especialización de XAdES BES, añadiendo políticas de firma,

Page 30: Segundo Ejercicio Cosecha Propia

2. XAdES-T que añade sello de tiempo, 3. XAdES-C añadiendo referencias a los datos de verificación de firma y a los certificados

implicados, 4. XAdES-X que añade sello de tiempo también a las referencias de XAdES-C, 5. XAdES-XL que añade los certificados y las respuestas OCSP o CLR (a diferencia de XAdES-C

que simplemente añadía las referencias). Esto permite verificar en un futuro incluso si las fuentes no están disponibles.

6. XAdES-A que añade la posibilidad de un timestamping periódico de documentos archivados

Sistemas eLearningLos sistemas eLearning combinan los sistemas tradicionales de aprendizaje con la tecnología actual (internet, documentos electrónicos, plataformas web, xml...)En el mundo eLearning podemos hablar de LMS y LCMS.LMS (Learning Management System) son sistemas de gestión para el aprendizaje que consisten en agrupar en una plataforma informática las labores de gestión de alumnos, profesorado, contenidos, acciones formativas, evaluaciones... Normalmente no contienen funciones de autoría (no crean cursos).LCMS (Learning Content Management System) son sistemas de gestión de contenidos para el aprendizaje que combinan las posibilidades de sistemas LMS con la gestión de contenidos (almacenamiento y creación).Los sistemas LMS generalmente se preocupan de cumplir con los estándares y normas aceptadas en el ámbito de eLearning. Las más destacadas son:- AICC (Aviation Industry CBT Comite): Primer estándar para formar aviadores- IMS (Instruction Management System). Consorcio creado para desarrollar y promover especificaciones abiertas en el ámbito de eLearning. Entre otros trabajos se encuentra la empaquetación de contenidos o LOM (Learning Object Metadata), que especifica la sintaxis y la semántica de los metadatos de un objeto educativo.- SCORM. El Modelo de referencia para la compartición de objetos de contenido (Shared Content Object Reference Model) es creado por la organización ADL y proporciona especificaciones sobre los objetos de contenido a compartir (SCO), el entorno de ejecución de estos SCO's y la descripción de los metadatos necesarios para almacenar la estructura de los cursos, participación de los alumnos, evolución del aprendizaje... También se ocupa de la metodología para agregar contenido a las plataformas LMS. Gran parte del trabajo de SCORM hace referencia a los estándares de IMS.Algunos sistemas LMS son WebCT, Catedr@ o eCollege en el ámbito propietario y Moodle, Sakai, Dokeos, Claroline o ATutor en el ámbito del Open Source.

Mantenimiento. Tipos de mantenimientoSolución basada en Métrica v3. El mantenimiento es cualquier tipo de modificación de un programa que está en uso. Realiza una fase de desarrollo posterior al mismo.Hay 4 tipos de mantenimiento definidos en Métrica v3: - Correctivo: Corrige errores, aproximadamente el 15% (Además se usa en Métrica v3) - Evolutivo: Cubrir las necesidades de los usuarios, aproximadamente el 60% (Además se usa en Métrica v3) (Perfectivo según Bennett, Leintz y Swanson) - Perfectivo: Mejorar la calidad interna del software (Preventivo según Bennett, Leintz y Swanson) - Adaptativo: Adaptarse al entornoBennet, Lientz y Swanson definen correctivo, adaptativo, perfectivo (igual que evolutivo de Métrica) y preventivo (para prevenir problemas futuros)Pressman define correctivo, adaptativo y perfectivo (debido a requisitos de usuarios y para crear una base para futuras mejoras) En Métrica v3, el proceso encargado del mantenimiento es MSI y se compone de 4 actividades secuenciales: 1. Registro de la petición 2. Análisis de la petición 3. Preparación e implementación de la modificación 4. Seguimiento, evaluación de los cambios hasta la aceptaciónLas pruebas realizadas en este proceso son pruebas de regresión. Se usa la práctica del Análisis de Impacto. El mantenimiento evolutivo se realiza en la medida que se cumplan los SLA definidos en IAS. El estándar de facto aplicable a las fases de mantenimiento es IEEE 1219-1992

Page 31: Segundo Ejercicio Cosecha Propia

Mantenimiento. DefinicionesIngeniería inversa: Proceso de analizar un sistema para identificar sus componentes y relaciones creando representaciones del sistema en otra forma distinta al original o a un nivel superior de abstracción.Reingeniería: Examen y modificación de un sistema para ser reconstruido de forma nueva e implantar esa nueva forma. Esto se suele hacer para recuperar un sistema heredado (legacy system), problemático u obsoleto proporcionando una base para el mantenimiento y futuros desarrollos. Incluye Ingeniería inversa y va seguida de una ingeniería hacia delante o reestructuración. A la hora de abordar un proceso de reingeniería, Harry Sneed propone un método para justificar el gasto que supone una reingeniería, estudiando la calidad técnica de las aplicaciones frente a su valor de negocio. Una vez que abordamos la tarea de la reingeniería el modelo sistemático OAR (Análisis de Opciones para la Reingeniería) puede ser útil para estudiar los componentes reutilizables y los que no lo son.Se puede hablar del modelo IEEE, cíclico y de herradura como modelos o metodologías de reingeniería (a pesar de que no hay metodologías oficiales para abordarla).Reestructuración: Transformación de una forma de representación del sistema en otra distinta pero del mismo nivel de abstracción, sin modificar el comportamiento externo del sistema.Aplicaciones Heredadas (Legacy Systems): Aplicaciones existentes que sirven para un propósito continuo y no merece la pena modificar.Mantenibilidad. Grado de posibilidad de comprender, corregir, adaptar o mejorar el software. Estudia la facilidad y el esfuerzo del mantenimiento.

Mantenimiento. Reingeniería. ¿Cómo abordar la reingeniería?Plantear una reingeniería sobre un sistema es costoso económica y tecnológicamente hablando. Antes de hacerlo, debemos estudiar el sistema.Nuestro sistema se puede encontrar en cuatro situaciones diferenciadas (realizar cuadrantes con el eje X mostrando el valor del negocio y el eje Y mostrando la calidad tecnológica)

1. (Cuadrante superior derecho) Sistema con alta calidad tecnológica y alto valor de negocio. En este caso, no será necesario aplicar reingeniería ya que el sistema mantiene una alta calidad tecnológica.

2. (Cuadrante superior izquierdo) Sistema con alta calidad tecnológica y escaso valor para el negocio. Por ésto último no es necesario invertir tiempo y dinero en el sistema.

3. (Cuadrante inferior izquierdo) Sistema de baja calidad y escaso valor de negocio. En esta situación se presentará el dilema de abordar la reingeniería. Será una decisión empresarial.

4. (Cuadrante inferior derecho) Sistema de baja calidad y alto valor para el negocio. En este caso, la reingeniería es obligada para seguir manteniendo un alto valor tanto de negocio como de calidad.

Una vez que se decide realizar la reingeniería podemos optar por el método OAR (Opciones de Análisis de Reingeniería) para decidir qué elementos recuperar del sistema actual y los componentes que se desarrollarán desde cero. Las fases del método OAR son: Establecimiento del contexto de extracción, Inventario de componentes, Análisis de los componentes candidatos, Plan de extracción y Selección de opciones de extracción. Están relacionadas con la extracción y los componentes. No confundir con las fases del Modelo cíclico de Pressman.Para la realización de la reingeniería podemos utilizar cualquiera de los modelos diponibles, entre ellos:

1. Modelo de Herradura, que representa tres niveles de abstracción (Nivel de código, Nivel funcional y Nivel conceptual)

2. Modelo IEEE, que define los conceptos de ingeniería inversa, reingeniería, reestructuración y Ingeniería hacia delante

3. Modelo cíclico de Pressman con las siguientes fases: Análisis de inventario, Reestructuración de documentos, Ingeniería inversa, Reestructuración de código, Reestructuración de datos e Ingeniería directa.

Cada uno de los modelos tiene en común la aplicación de algún tipo de ingeniería inversa, seguido de reestructuración para después finalizar con ingeniería hacia delante o ingeniería directa.

Page 32: Segundo Ejercicio Cosecha Propia

Auditorías. Qué es una auditoríaPuede servir como introducción a otras preguntas.Es un proceso o actividad sistemática (implica planificación y metodología) de obtención y evaluación de evidencias en una organización o sistema.Su objetivo es mejorar la eficiencia y eficacia (internas) o alcanzar una certificación SGSI (las auditorias externas). El auditor es siempre externo a la organización.Está formada por tres fases: - Preparación y estudio de la organización (toma de contacto) - Desarrollo. Obtener evidencias y evaluarlas. Implica interacción con RRHH y sistemas - Informe. Diagnóstico de puntos débiles y fuertes. Son conclusiones. La diferencia con la Consultoría es que no dice cómo solucionar las incidencias.Las auditorias se clasifican en: - Auditor de primera parte: Interna. Busca mejorar la eficiencia y la eficacia. - Auditor de segunda parte: Cliente - Auditor de tercera parte. Externo. Su objetivo es lograr la certificación.Funciones de la auditoría informática: - Revisión de instalaciones informáticas - Revisión de sistemas en desarrollo - Revisión de las aplicaciones - Apoyo a auditores no informáticosTambién se pueden comentar los requisitos COBIT (Eficiencia, Eficacia, Confidencialidad, Integridad, Disponibilidad, Fiabilidad y cumplimiento de las normas)

Auditorías. COBITCOBIT (Control OBjectives for Information and related Tecnologies) es una metodología desarrollada por la ISACA (Information System Audit & Control Association) independiente de la plataforma tecnológica. La versión actual es la 4.1COBIT consta de 3 elementos:

• 4 dominios, 34 procesos y 318 objetivos de control destinados a proporcionar una garantía de que los objetivos serán alcanzados (no es necesario cumplir los 318 para que la auditoría se considere completa, pero si pasar por los 4 dominios y 34 procesos). PO-SS-AI-M

o Planificación y Organización o Soporte y Servicio o Adquisición e Implementación o Monitorización

• Requisitos de negocio o Eficiencia, o Eficacia, o Confidencialidad, o Integridad, o Disponibilidad, o Fiabilidad y o Cumplimiento de las normas

• Recursos TIC o Datos, o Aplicaciones, o Infraestructuras (Tecnología, Instalaciones) y o Personas

Page 33: Segundo Ejercicio Cosecha Propia

Auditorías. Normas y estándaresPor la ISACA (Information System Audit & Control Association), de uso obligatorio por sus auditores son las normas 500En las AAPP:

• RD 1720/2007 en el Art.96. Los ficheros de datos a partir del nivel medio deberán auditarse al menos cada 2 años mediante auditorías internas o externas. También, con caracter extraordinario, cuando se realicen modificaciones sustanciales, comenzando a contar los 2 años desde el momento de la auditoría extraordinaria. El resultado de la auditoría se plasmará en un informe que reflejará los puntos débiles y fuertes, las deficiencias, así como las recomendaciones para corregirlas. Este informe se elevará al responsable del fichero o al responsable del tratamiento del fichero.

• RD 3/2010, ENS en el capítulo 5, Art.34. Los sistemas, servicios, datos de las AAPP deberán auditarse al menos cada 2 años mediante Autoevaluaciones o Auditorías. También, con caracter extraordinario, cuando se realicen modificaciones sustanciales, comenzando a contar los 2 años desde el momento de la auditoría extraordinaria. Las Autoevalluaciones serán realizadas por el personal propio de la organización para sistemas de categoría básica y las Auditorias serán realizadas por un auditor externo para sistemas de categoría media y alta. El resultado de la auditoría se plasmará en un informe que reflejará los puntos débiles y fuertes, las deficiencias, así como las recomendaciones para corregirlas. Este informe se elevará al responsable del sistema que, en los casos de sistemas con categoría alta podrá dar de baja el servicio, sistema o información vulnerable.

• ISO 27000. Para los Sistemas de Gestión de Seguridad Información (SGSI)

27000 - Términos y definiciones 27001 - Requisitos de SGSI. Certifica auditores externos 27002 - Reemplaza ISO 17799. Guía de buenas prácticas que describe 11 dominios, 39 objetivos de control y 133 controles. No es certificable. 27003 - Guía de implementación SGSI mediante PDCA 27006 - Requisitos para la acreditación y certificación de entidades auditoría 27007 - Guía de auditoríaSe puede señalar que 27002 se usa en PILAR de MAGERIT v2

Pruebas. DefinicionesPruebas unitarias. Su objetivo es comprobar el correcto funcionamiento de los módulos independientes una vez que han sido desarrollados. Comprueban su estructura interna (en el caso de las pruebas de caja blanca) y las entradas y salidas (en el caso de caja negra). Se realiza en el entorno de desarrollo por los técnicos de sistemas y programadores.Pruebas de integración. Su objetivo es realizar el correcto ensamblaje de los distintos componentes del sistema. Se combinan con las pruebas unitarias en la creación de módulos auxiliares y componentes conductores para llevar a cabo las distintas estrategias de integración. Además las pruebas de regresión también pueden servir de apoyo tras la integración de un componente. Las pruebas de integración pueden ser incrementales o no incrementales y se realizan en el entorno de desarrollo por los analistas, equipo de arquitectura, técnico de comunicaciones y técnicos de sistemas.Pruebas de sistema. Su objetivo es comprobar profundamente el sistema verificando los subsistemas que lo componen. Se realiza en el entorno de desarrollo por los mismos participantes que intervienen en las pruebas de integración más el Jefe de Proyecto.Pruebas de implantación. Su objetivo es comprobar el correcto funcionamiento del sistema integrando SW y HW. Buscan la aceptación del usuario desde el punto de vista operacional. Requisitos no funcionales. Se realizan en el entorno de operación por el equipo de implantación y el jefe de proyecto.Pruebas de aceptación. Su objetivo es comprobar que el sistema cumple con los requisitos funcionales y de rendimiento según las definiciones del usuario en las fases de análisis. Se realizan en el entorno de operación por los directores de usuarios, usuarios expertos y el jefe de proyecto.Pruebas de regresión. Su objetivo es comprobar que los cambios efectuados sobre un componente no producen un funcionamiento erroneo en los demás componentes o en el propio sistema. Se usan en las etapas de mantenimiento y también en las pruebas de integración cuando añadimos nuevos

Page 34: Segundo Ejercicio Cosecha Propia

módulos para comprobar que no se producen errores. Se realiza previamente un análisis de impacto con el inventario de componentes afectados para evaluar la fiabilidad y el cumplimiento de la petición.

Seguridad. Política de Seguridad y Plan de SeguridadPlan de Seguridad. Definido según Magerit, es un conjunto de programas de seguridad. Los programas de seguridad son tareas o proyectos orientados a afrontar el riesgo. El plan de seguridad es uno de los productos de Magerit v2 que se obtienen en el Proceso 3. 'Gestión de Riesgos'. Por lo tanto, el plan de Seguridad es la consecuencia y transcripción de la aplicación de un análisis y gestión de riesgos en una organización. Se puede descomponer en tres niveles de detalle:

• Plan Director, con un alcance de 3 a 5 años. Contiene las directrices de actuación del plan de seguridad

• Plan Anual, con un alcance de 1 a 2 años. Contiene la planificación de los programas de seguridad

• Plan de Proyecto. Contiene los detalles de cada Programa de Seguridad

Política de Seguridad. Definido según el RD 3/2010, ENS, como el documento que contiene las atribuciones de cada responsable y los mecanismos de coordinación y resolución de conflictos.La Política de Seguridad deberá ser coherente con lo dispuesto por el Documento de Seguridad del RD 1720/2007.El documento deberá contener, al menos, lo siguiente:

1. Los objetivos o misión de la organización. 2. El marco legal y regulatorio en el que se desarrollarán las actividades. 3. Los roles o funciones de seguridad, definiendo para cada uno, los deberes y

responsabilidades del cargo, así como el procedimiento para su designación y renovación. 4. La estructura del comité o los comités para la gestión y coordinación de la seguridad,

detallando su ámbito de responsabilidad, los miembros y la relación con otros elementos de la organización.

5. Directrices de estructura, gestión y acceso de la documentación de seguridad del sistema.

Seguridad. Análisis de riesgos aplicando Magerit.MAgerit v2 propone un modelo de mejora continua basado en el círculo de Demming o PDCA para analizar los riesgos de una organización.Hay 5 fases con la siguiente secuencia:Fase 1. Identificar los activos y estudiar las dimensiones afectadas (Autenticación, Confidencialidad, Integridad, Disponibilidad y Trazabilidad). También se estudian las dependencias de los activos clasificándolos en la siguiente jerarquía (Capa1: Entorno, Capa2: Sistemas HW y SW, Capa3: Datos, Capa4: Funciones de la Organización y Capa5: otros elementos). Los activos se clasifican por su valor.Fase 2. Identificar las amenazas para cada activo. Las amenazas son los sucesos que pueden provocar la pérdida de valor en un activo. La valoración de las amenazas estudia la degradación de un activo tras la materialización de una amenaza y la frecuencia de ocurrencia de esa materialziación.OJO. Saltamos el paso 3. En la primera iteración no se contempla. El impacto y el riesgo es potencial, es decir, no se aplican salvaguardas.Fase 4. Estudio del impacto. El impacto es la consecuencia de la ocurrencia de una materialización de una amenaza sobre un activo. Se estudiará el impacto acumulado, que es el valor del impacto sobre un activo más el valor de los impactos sobre los activos que dependen de él. También se estudiará el impacto repercutido, que es el valor del impacto sobre un activo más el valor del impacto sobre los activos de que depende. Y se estudiará la agregación de valores de impacto (ninguno de los anteriores)Fase 5. Estudio del riesgo. El riesgo es la probabilidad de la ocurrencia de materialización de una amenaza sobre un activo. Se esudian el riesgo acumulado, repercutido y la agregación de valores de riesgo que se definen de forma equivalente a los de la Fase 4.Fase 3. Desplegar salvaguardas que protegen los activos. Las salvaguardas se aplicarán sobre la degradación y la frecuencia resultantes del impacto y el riesgo de cada amenaza sobre un activo. La

Page 35: Segundo Ejercicio Cosecha Propia

aplicación de salvaguardas provocarán un impacto y riesgo residual.A partir de aquí se realizan iteraciones de las Fases 4, 5 y 3 hasta que el riesgo y el impacto residual sean despreciable. Al resultado de estas iteraciones se le conoce como la Gestión de Riesgos.

Seguridad. Documentos resultado de un análisis y gestión de riesgos según MageritEn el proceso P2. Análisis de Riesgos:

• Actividad 1. Caracterización de los activos. Se obtiene el modelo de valor. El modelo de valor describe para cada activo, sus dimensiones afectadas, las dependencias sobre los demás activos y el valor en la organización.

• Actividad 2. Caracterización de las amenzazas. Se obtiene el mapa de riesgos. El mapa de riesgos describe las amenzadas que afectan a cada activo indicando la valoración de la degradación y la frecuencia que provocan sobre el activo

• Actividad 3. Caracterización de las salvaguardas. Se obtiene la evaluación de salvaguardas. La evaluación de salvaguardas es un listado con las salvaguardas actuales y su calificación

• Actividad 4. Estimación del estado de riesgo. Se obtienen dos documentos: el estado del riesgo y el informe de insuficiencias. El estado de riesgos propone, para cada activo el impacto y el riesgo residual que provocan sus amenazas. El informe de insuficiencias indica las salvaguardas innecesarias, ausentes o no eficaces.

En el Proceso P3. Gestión de Riesgos se obtiene el Plan de Seguridad como consecuencia de aplicar el proceso de análisis de riesgos hasta conseguir un impacto y riesgo residual despreciable.

Seguridad. Definiciones Certificación, Acreditación, EvaluaciónDefiniciones de la Orden Presidencial OM/PRE 2740/2007Evaluación: Es el análisis, realizado por laboratorios mediante un proceso metodológico, de la capacidad de un producto o sistema para proteger las condiciones de seguridad de acuerdo a unos criterios preestablecidos, con el objeto de determinar si puede ser certificado. Este concepto está muy ligado a las Auditorías. La evaluación es el proceso.Certificación: Es la resolución, obtenida mediante un proceso metodológico de evaluación sobre la conformidad de un producto con unos criterios preestablecidos. En materia de seguridad, un sistema certificado es capaz de proteger unos datos frente a amenazas con una cierta calidad, en base a unas medidas de salvaguardas adoptadas. Las certificaciones son un valor añadido que se realizan a sistemas y productos y tiene caracter voluntario. Para mantener dicha certificación es necesario la realización de auditorias de seguimiento anuales y una extra de renovación a los tres años. El organismo nacional reconocido de certificación es AENOR. En el ámbito de la seguridad de las TI, a partir de la OM/PRE 2740/2007, el CCN es Organismo de Certificación del ENECSTI. La certificación es el resultado del proceso.Declaración de seguridad: Conjunto de requisitos y especificaciones de las propiedades de seguridad de un producto o sistema de las Tecnologías de la Información.Acreditación: Declaración de conformidad de los laboratorios solicitantes, emitida por el Organismo de Certificación, en base al cumplimiento de los requisitos establecidos en el Reglamento. Una acreditación permite legitimar a un sistema para formar parte de otros más amplios. El objeto de la acreditación es generar confianza sobre los Organismos de Evaluación (laboratorios), garantizando la competencia técnica de éstos últimos. La acreditación consiste en un procedimiento de auditoría y seguimiento.La OM/PRE 2740/2007 también define la acreditación de competencia técnica. Mientras que la acreditación supervisa el cumplimiento de los requisitos establecidos en el reglamento, la Acreditación de competencia técnica supervisa los requisitos de la norma UNE 17025. El Organismo nacional reconocido de acreditación y acreditación de competencia técnica es ENAC. ENAC acredita organismos como AENOR, ITV, Prestadores de Servicios de Certificación, laboratorios... El CCN puede acreditar a los laboratorios la evaluación de la seguridad, pero es requisito indispensable una acreditación de competencia técnica previa. La acreditación es la confianza en el resultado del proceso.El esquema nacional de seguridad, en su artículo 18, especifica que se valorará positivamente los productos certificados para su adquisición.La OM/PRE 2740/2007 aprueba el Reglamento de Evaluación y Certificación de las TIC que articula el Organismo de Certificación del Esquema Nacional de Evaluación y Certificación de la Seguridad de

Page 36: Segundo Ejercicio Cosecha Propia

las Tecnologías de la Información (ENECSTI) en el ámbito de actuación del Centro Criptológico Nacional. El Organismo de Cerificación del CCN emite certificados "Common Criterias" reconocidos internacionalmente. Los Common Criterias, definidos en la norma ISO 15408, establecen 8 niveles aseguramiento de la evaluación de seguridad que pretenden convalidar los niveles de otras normas internacionales como TCSEC e ITSEC.

Seguridad. Criterios Comunes (CC)Los Criterios Comunes (Common Criteries) son un conjunto de normas y niveles cuyo objetivo es evaluar y, posteriormente, certificar la seguridad de productos o sistemas. Nacen como una iniacitiva para convalidar los criterios norteamericanos TCSEC y los criterios europeos ITSEC. En 1999 los criterios comunes son estandarizados como ISO/IEC 15408. Los CC permiten definir las funciones de seguridad de los productos o sistemas y evaluar dichas funciones.CC establece 8 niveles de aseguramiento que van de EAL0 a EAL7. Por ejemplo: EAL0 no ofrece garantías, EAL1 ha sido probado funcionalmente, EAL3 ha sido probado y chequeado metódicamente, EAL4 ha sido diseñado, probado y revisado metodicamente y EAL7 ha sido diseñado, probado y verificado formalmente. En el ámbito de los sistemas de firma electrónica, los dispositivos seguros de creación de firma suelen certificarse contra el nivel de aseguramiento EAL4+ (El + significa que está entre 2 niveles, EAL4 y EAL5).CC define TOE (Target of Evaluation) como el objeto a evaluar.CC define los PP (Protection Profile) como el conjunto de requisitos que se le exige a un sistema genérico.Tanto MAGERIT como el Esquema Nacional de Seguridad hacen referencia a los Criterios Comunes para certificar productos en materia de seguridad.Por ejemplo, en España, INTECO, con el apoyo del CCN difunde la certificación de seguridad sobre los perfiles de protección del DNI electrónico. Gracias a estos perfiles, el desarrollador de aplicaciones en materia de DNIe puede optar a una certificación de nivel de aseguramiento EAL1 o EAL3. INTECO expone que el procedimiento operativo para alcanzar la certificación a través de los Criterios Comunes está descrito en la OM/PRE 2740/2007.

Redes. SupernettingLa técnica de SUPERNETTING, también llamada de agregación o reducción de direcciones, basa el encaminamiento en máscaras de red más cortas que la máscara de red natural de la dirección IP, en contraste con el subnetting, donde las máscaras de red son más largas que la máscara natural.La sumarización permite reducir tamaño de tablas de enrutamiento y por tanto, tráfico de intercambio de información de enrutamiento porque posibilita que un router anuncie y tenga una única entrada en la tabla para un conjunto de rutas. Para ello, los routers deben soportar CIDR (Classless Interdomain Routing - Enrutamiento Interdominio sin Clases), basado en el reparto de las redes clase C no asignadas aún en bloques de tamaño variable. De esta forma si una instalación necesita 2000 direcciones se asignan 8 direcciones clase C contiguas en vez de una dirección clase B completa. En CIDR el encaminamiento no se realiza de acuerdo a la clase del número de red (de ahí el término "classless": sin clase) sino sólo según los bits de orden superior de la dirección IP, que se denominan prefijo IP y viene dado por el número de bits a “1” de la máscara.

Redes. Gestión SNMPSNMP (Simple Network Monitoring Protocol) es un protocolo utilizado para monitorizar el tráfico de una conexión TCP-IP. Se ubica en el nivel de aplicación de la torre de protocolos y funciona intercambiando información de administración entre los nodos de red mediante mensajes UDP. Permite realizar análisis de fallos, obtención de estadísticas, supervisión y rendimiento de los elementos de la red... La versión actual de SNMP es la 3.0SNMP trabaja como una arquitectura cliente/servidor donde destacan los siguientes componentes: Gestor SNMP, Agentes y Bases de Información

• Gestor SNMP. Es el nodo cliente. Inicia los comandos de interrogación hacia el agente y recibe información del mismo. Escucha las traps en el puerto 162.

• Agente SNMP. Es el nodo servidor. Hay tantos agentes como dispositivos en la red a monitorizar. Controla el flujo de información entre el gestor y el dispositivo, enviando información periódica del estado del dispositivo al gestor SNMP. Las respuestas son llamadas traps y se envían por el puerto 162. El agente SNMP escucha en el puerto 161.

• Base de información de administración (MIB). Un MIB es como una base de datos donde se almacen la información que recoge el gestor SNMP. Cada elemento tiene una estructura

Page 37: Segundo Ejercicio Cosecha Propia

definida y se describe mediante el lenguaje abstracto ASN1. Existe una variante evolucionada del IETF para sustituir a MIB llamada RMON (Remote Network MONitoring)

Redes. Secure Socket Layer (SSL)SSL (Secure Socket Layer) en su versión 3.0, es un protocolo de comunicación seguro que sustituye al extinto S-HTTP y proporciona autenticación, confidencialidad e integridad en las comunicaciones. Este protocolo, diseñado por Netscape, se ubica entre las capas de transporte y aplicación por lo que puede utilizarse junto con distintos protocolos como http o ftp. Por ejemplo, el puerto en que trabaja SSL con HTTP es el 443, con POP3 es el 995, con FTP es el 990. SSL proporciona sus servicios de criptosistemas combinando cifrado simétrico y cifrado asimétrico. Normalmente, se intercambia una clave de sesión mediante cifrado asimétrico al otro interlocutor y éste, al descifrar el mensaje obtiene la clave simétrica de sesión que utilizarán tanto emisor como receptor para intercambiar los datos del mensaje. Como medida adicional de seguridad, se usa una clave de sesión distinta para cada transacción.SSL utiliza algoritmos de cifrado simétrico como DES de 56 bits, Triple-DES de 112 bits, RC2 y RC4 de 256 bits o IDEA.La autenticación la realiza con cifrado asimétrico usando RSA de 1024 bits.Para la comprobación de integridad, SSL trabaja con funciones Hash SHA.SSL versión 3 trabaja en 4 fases:

1. Client HELLO-Server HELLO. Saludo y negociación de algoritmo simétrico a utilizar. Esto también es llamado Handshake o apretón de manos y se realiza con el subprotocolo que lleva su nombre.

2. Intercambio de certificados x.509v3 para comprobar al autenticidad del servidor. Sólo se intercambian estos certificados si están disponibles. Esta fase se puede ver como parte de la primera fase de Handshake.

3. Generación de clave de sesión (a través de una clave maestra que uno de los dos transmitirá al otro para que ambos puedan generar la clave de sesión). El intercambio se realiza con criptografía asimétrica RSA y se comprobará su integridad mediante tablas Hash. En este momento se cede el control al subprotocolo Change Cipher Spec.

4. INTERCAMBIO DATOS. Verificación de identidades e intercambio de datos mediante criptografía simétrica con la clave de sesión

Redes. IPSecIPSec (Internet Protocol Security). Es un estándar apoyado por el IETF que la aporta seguridad de que carece el protocolo IP. IPSec se ubica en el nivel de Red de la torre de protocolos y va incluido por defecto en IPv6. Entre sus múltiples usos se encuentra el de permitir la creación de infraestructuras de redes privadas sobre redes públicas (Por ejemplo en Redes Privadas Virtuales VPN).IPSec es un conjunto de protocolos agrupados en protocolos de seguridad, protocolos de gestión de claves y algorítmos de cifrado:

• Protocolos de Seguridad en IPSec (spa, que no... ESP-AH) o AH: IP Authentication Header, proporciona integridad y autenticación o ESP: IP Encapsulating Security Payload, proporciona además confidencialidad

• Protocolos de Gestión de Claves en IPSec o IKE, Internet Key Exchange, permite a los nodos negociar protocolos e intercambiar

claves • Algoritmos de cifrado en IPSec

o HASH: MD5 o SHA-1 o Criptografía simétrica: DES de 56 bits, Triple-DES de 112 bits, IDEA y Blowfish o Criptografía asimétrica: RSA o Certificados digitales: x509v3

IPSec puede trabajar en dos modos de operación. Modo transporte y Modo tunel. Tanto AH como ESP proporcionan los dos modos de operación. La diferencia estriba en que en el modo transporte sólo se cifran y autentican los datos, incluyendo en el datagrama IP una cabecera ESP o AH.

Page 38: Segundo Ejercicio Cosecha Propia

Mientras, en el modo tunel, se genera un datagrama completo con cabecera ESP o AH en el que se incluye el datagrama IP original. El modo tunel es empleado por los gateways IPSec y por las redes privadas virtuales VPN (en muchas ocasiones empleado junto con los protocolos de nivel de enlace PPPT y L2TP)

Redes. Opciones de seguridad en VPNLas diferentes opciones de seguridad en su implementación son: PPTP, L2TP, IpSec en modo tunel y SSL:

1. PPTP (Point to Point Tunneling Protocol), de Microsoft es una extensión de PPP. Como ventajas tiene que trabaja a un nivel bajo de la capa OSI, concretamente a nivel de enlace. Como desventajas tiene que sólo trabaja con redes IP y la seguridad se implementa con sistemas de autenticado PAP y CHAP

2. L2TP (Layer to Tunneling Protocol), de Cisco y Microsoft. Trabaja también sobre el nivel de enlace de OSI, pero como ventaja aporta que puede trabajar en redes distintas de IP como ATM y X.25. Además de soportar las autenticaciones de PPP (CHAP y PAP), L2TP incorpora la opción de los certificados digitales y criptografía asimétrica como ventaja sobre PPTP. Como desventajas tiene que sus características de seguridad lo hacen más lento y la autenticación sólo se realiza en los puntos finales del tunel por lo que no podemos comprobar la integridad de la información.

3. IPSec (Internet Protocol Secure), trabajando en modo tunel trabaja en el nivel de red de OSI. En IPv6 va incorporado de serie. Sólo permite trabajar con redes IP, como PPTP. Gracias al Internet Key Exchange, se le permite a los nodos negociar los protocolos y certificados de seguridad, haciendo a IPSec el medio más seguro. Además IPSec maneja métodos de hashing, criptografía simétrica y asimétrica con multitud de algorítmos. Como desventaja, se puede citar que no está implementado en sistemas de Microsoft anteriores a Windows 2000.

4. SSL (Secure Socket Layer). Este método de VPN se realiza via web, por lo que ni el cliente ni el servidor requieren de ningún software vpn instalado en sus sistemas. Como desventaja tenemos que deberemos configurar adecuadamente el navegador para evitar la ejecución de código malicioso.

Redes. Diferencias entre IPv4 y IPv6

Ipv4 Ipv6

Espacio de direcciones límitado a 32 bits (4 octetos)

Espacio de direcciones ampliado a 128 bits (16 octetos repartidos en 8 bloques en hexadecimal)

Confidencialidad y Autenticado añadiendo IPSEC al nivel de red

Confidencialidad y Autenticado con IPSEC implementada de serie (de uso opcional como en IPv4)

Calidad de Servicio con el campo Type Of Service (TOS y también llamado Servicios Diferenciados) para priorizar la entrega

Calidad de Servicio implementada de serie en la cabecera con control de flujo

Cabecera compleja de 20 bytes Cabecera más simple de 40 bytes

Fragmentación de paquetes en Host y Routers

La cabecera incluye una extensión para fragmentación y reensamblado sólo en Host

Realiza Checksum de la cabecera No realiza Checksum (este se comprueba en otras capas)

No escalable Escalable

Organiza las direcciones en clases (A, B, Permite arquitectura jerárquica de

Page 39: Segundo Ejercicio Cosecha Propia

C, ...) direcciones

Usa direcciones multicast y broadcast

Introduce direcciones anycast y mejora los mecanismos multicast, eliminando las direcciones broadcast (el multicast de IPv6, no envía paquetes a toda la red, sólo a nodos predefinidos)

J2EE. Contenedores J2EELos contenedores son módulos software cuya función es prestar diferentes servicios a los componentes J2EE. Recordemos que los componentes J2EE según la especificación de Sun son:Componentes de aplicación de cliente, Componentes applets de cliente, Componentes web de servidor como Servlets, JSP y JSF y Componentes EJB de negocio.Al igual que los componentes, los contenedores definidos por Sun son 4:Contenedor de aplicaciones, Contenedor de applets, Contenedor web y Contenedor de EJB. Los dos primeros están relacionados con la parte cliente de la arquitectura multicapa, mientras que los dos últimos se corresponden con la parte de servidor.Los servicios proporcionados por los contenedores pueden ser de seguridad, gestión de transacciones, servicios de directorios JNDI, invocación remota de métodos entre EJB, control de concurrencia, control de estados, gestión de persistencia, gestión de conexiones, caché, etc...Los servicios impiden que los componentes realicen llamadas directamente a las API, permitiendo la configuración de estos servicios en la instalación a través de ficheros de configuración. Los contenedores arrancan con el servidor. Algunos ejemplos de contenedores son el contenedor de servlets que permite, entre otras cosas, crear el objeto servlet con la llamada al método init y, manejar distintos hilos de ejecución para cada llamada al servlet. También es claro el uso del contenedor de EJB´s de Entidad cuando configuramos la persistencia manejada por el contenedor. De esta forma se instancia el descriptor definido en el constructor y libera al bean el control de la persistencia del objeto. Otro ejemplo de servicio en los contenedores EJB´s es permitir la comunicación de los mismos en entornos distribuidos mediante protocolos de comunicación transparentes a los EJB´s.

J2EE. Componentes EJBLos EJB (Enterprise Java Bean) son componentes de servidor de J2EE que encapsulan la lógica de negocio y pueden ejecutarse en entornos distribuidos. Los EJB se ejecutan en un contenedor de EJB´s que los abstrae de tareas de bajo nivel como comunicaciones, protocolos, persistencia, concurrencia de transacciones, seguridad... Este es el motivo por el cual es beneficioso para el programador usar EJB. Su uso es recomendado en los casos en que la aplicación sea escalable, requiera gran seguridad y persistencia en las transacciones de los datos y en las aplicaciones con una gran concurrencia de clientes.Hay 3 tipos de EJB:

a. Session Bean : Estos componentes llevan a cabo tareas específicas para un cliente. Opcionalmente pueden realizar servicios web. Los Session Bean no guardan persistencia.Dentro de los Session Bean podemos encontrar:

o Stateless Session Bean: Son componentes sin estado que tienen la ventaja del ahorro de recursos de memoria, ya que para todos los clientes se comparte un objeto que no almacena información de la llamada del cliente. Son los más indicados en funcionalidades ligeras.

o Statefull Session Bean: Son componentes que almacenan el estado de la transacción. De esta forma, son necesarios tantos objetos como transacciones se produzcan. En los casos de transacciones de larga duración, la información se almacena temporalmente en disco.

1. Entity Bean : Son componentes que representan entidades de negocio que perduran en el tiempo (como entidades de bases de datos). Mantienen la persistencia que puede ser gestionada por el Bean (BMP o Bean Managed Persistance) o gestionada por el contenedor. Esta última opción es la más recomendable, liberando al programador de esa tarea. La

Page 40: Segundo Ejercicio Cosecha Propia

persistencia queda definida en un descriptor que se carga en el constructor del objeto y se destruye mediante el recolector de basura.

2. Message Driven Bean : Se utilizan para un tipo especial de mensajes en J2EE. Su funcionamiento es parecido al de los sessión bean, pero de manera asíncrona. Se utilizan cunado las tareas son muy costosas en tiempo y no se sabe cuando se obtendrá la respuesta. Su utilización ha facilitado el empleo de API´s como JMS ya que su funcionamiento es similar.

La estructura interna de un EJB se compone de una interfaz llamada Business Interfaz, la implementación de los métodos de esta interfaz en una clase Enterprise Bean Class y las clases necesarias de apoyo al Bean. Además es recomendable incluir el directorio META-INF con el fichero MANIFEST.MF y los XML descriptores de configuración.

J2EE. JAR-EJB, WAR y EARJAR-EJB: Empaqueta componentes EJB. Puede incluir clases de EJB, clases auxiliares. Incluye el descriptor de despliegue ejb-jar.xmlWAR: Empaqueta aplicaciones Web. Puede incluir Servlets, JSP y JavaBeans, clases de negocio, paquetes JAR, Aplets y HTML. Incluye el descriptor de despliegue web.xmlEAR: Empaqueta una o varias aplicaciones empresariales . Puede incluir paquetes WAR y JAR. Incluye el descriptor de despliegue application.xml

Lenguajes de scripting. JSPJava Server Pages es una tecnología para la creación de contenido dinámico en la web. JSP forma parte de la arquitectura J2EE y es un lenguaje de programación basado en etiquetas del lado de servidor que se ejecuta sobre un contenedor web. A nivel de arquitectura, JSP se encuentra en la capa Web de J2EE al mismo nivel que los Servlet, siendo considerado JSP una evolución de estos últimos ya que internamente, el código JSP se traduce en un servlet que genera contenido dinámico.Los componentes de JSP son Scriptlets, variables JSP, directivas JSP y tags JSP:

• Scriptlets: Es código JAVA embebido en las páginas JSP • Variables implícitas JSP: No es necesario declararlas. Son page, pageContext, config,

application, out, exception, session, request y response • Directivas JSP: Se usan para configurar la página JSP. Las más usadas son @page, @include

y @taglib. @page especifica parámetros de la página a procesar como importación de clases, control de sesión, páginas de errores, etc. @include permite incluir contenido de un fichero externo. @taglib permite usar etiquetas personalizadas que aportan funcionalidad extendida. Algunos ejemplos de taglib son JSTL de Sun o las taglib de apache incluidas en Struts.

• Tags JSP: Las etiquetas de jsp permiten, por ejemplo, redireccionar la página web con jsp:forward, incluir ficheros dinámicos con jsp:include. Además los tags JSP pueden invocar métodos de componentes reutilizables JavaBean con jsp:useBean, jsp:getProperty y jsp:setProperty

Las ventajas frente a ASP de Microsoft es que JSP el independiente de la plataforma en que se ejecuta, mientras que ASP depende de Internet Information Server y Sistemas Microsoft. ASP se escribe con lenguajes de programación propietarios de Microsoft como JScript y Visual Basic Script. JSP puede extender las etiquetas y reutilizar tags de otros desarrolladores.Las ventajas de JSP sobre PHP son que está basado en Java que es un lenguaje orientado a objetos y PHP es un lenguaje rápido de Script con extensiones de programación orientada a objetos. Además JSP hace uso mediante los Beans de Java de toda la potencia de los componentes empresariales desarrollados en la arquitectura J2EE.Las ventajas frente a JavaScript son que éste último es un lenguaje de scripting que se ejecuta del lado del cliente y, por lo tanto, no tiene acceso a los recursos del lado de servidor como el modelo de datos o componentes empresariales.

Lenguajes de scripting. JavaScriptJavaScript es un lenguaje interpretado del lado del cliente. Sus características más importantes son:

• Fue creado por Netscape para su navegador y posteriormente, en la versión 1.2, estandarizado como ECMAScript-262

Page 41: Segundo Ejercicio Cosecha Propia

• Hoy en día, la versión 1.5 de JavaScript se encuentra en la totalidad de los navegadores reconocidos

• Es un lenguaje basado en objetos y permite definir pseudoclases • Es un lenguaje orientado a eventos (algunos de los más conocidos onChange, onMouseOver,

onLoad, onClick...) • Es un lenguaje que podemos encontrar embebido en HTML a través de las etiquetas <script>

o importado de ficheros externos con la extensión .js • Es débilmente tipado, de forma que el tipo de datos de una variable depende del contexto y

la asignación de la misma • Hace uso del estándar DOM (Document Object Model) para trabajar con XML y HTML • Es case-sensitive para variables y funciones • Su uso principal es el de proporcionar contenido dinámico a la web y validación de

formularios

Lenguajes de scripting. AJAXAJAX es el acrónimo de Asynchronous JavaScript And XML. AJAX no es un lenguaje de programación, es una tecnología para crear aplicaciones RIA (Rich Internet Applications) que aglutina una serie de técnicas cuyo objetivo es devolver respuestas asíncronas a peticiones http.AJAX trabaja con HTTP para el transporte de la información utilizando los métodos GET y POST para las peticiones y el objeto creado por Microsoft XMLHTTPRequest.Normalmente AJAX hace uso de Javascript para escribir el control de peticiones y respuestas así como procesar estas respuestas a través del uso de DOM (Document Object Model).AJAX puede funcionar en modo síncrono o asíncrono, siendo este último el más atractivo ya que proporciona al usuario la experiencia de actualizar el contenido dinámico de la web sin necesidad de recargas en la página y re-orientando la interfaz en base a los eventos que provoca.Cuando se realiza una petición con el objeto XMLHTTPRequest, el navegador sigue funcionando normalmente y, en segundo plano la petición llega al servidor que la procesa y devuelve una respuesta. Esta respuesta puede ser en forma de texto plano haciendo uso de JSON o mediante XML. Al llegar la respuesta al navegador, éste reacciona de forma transparente al usuario y provoca que, normalmente una función programada en JavaScript, procese la respuesta y se vea reflejada en la página actual.Algunos problemas que presenta AJAX son los siguientes:

• El usuario no es consciente de que se está procesando su petición • El contenido cambia, pero la URL no. Esto puede llevar a confusión y a problemas de

seguimiento y monitorización • El botón 'Atrás' de los navegadores pueden provocar efectos inesperados en las webs con

tecnología AJAX • Es necesario realizar una buena gestión de las excepciones y resultados de error para que el

usuario conozca que ocurre con su petición.

Lenguajes de programación. CompiladoresUn compilador es un software encargado de estudiar el código fuente y transformarlo en código objeto. Posteriormente, un linker o enlazador se encargará de recoger este código objeto y combinarlo con las librerías necesarias y los recursos requeridos para conformar el programa ejecutable. El enlazador puede realizar sus tareas en tiempo de ejecución dando como resultado el llamado enlazador dinamico o compilación just in time. Por ejemplo el just in time de Java, llamado, HOTSPOT utiliza esta técnica.La compilación se realiza principalmente en dos fases, el análisis y la síntesis:La fase de análisis está formada por tres subfases de extracción, construcción y verificación del código, mientras que la fase de sintesis conforma el código objeto y lo optimiza. Veamos las fases detalladas:Análisis o Front-End:

1. Análisis léxico: Donde se realiza la extracción de elementos del código fuente y se separan las palabras reservadas de los operadores, variables y constantes.

2. Análisis sintáctico o parser: Donde se construye el árbol sintáctico a partir de los elementos extraidos en el análisis léxico y con ayuda de estructuras de datos reservadas y tokens.

Page 42: Segundo Ejercicio Cosecha Propia

3. Análisis semántico: En esta fase se estudia el árbol semántico y se verifica su estructura para comprobar que esté libre de errores y los tipos de datos se utilizan correctamente.

Sintesis o Back-End:

1. Generación de código intermedio: Elabora el código objeto del programa para una arquitectura determinada.

2. Optimización de código: Optimiza el código objeto para que se ejecute eficientemente en una arquitectura determinada.

Lenguajes de programación. Lenguajes de cuarta generaciónMientras que en los lenguajes 3GL localizamos la programación estructurada y orientada a objetos, los lenguajes 4GL se usan para automatizar el desarrollo. Inicialmente se usaban para describir los lenguajes no procedurales. Actualmente su uso abarca:

• Generador de Forms • Generador de Reports o aplicaciones interfaz entre usuarios y BBDD • Generador de código desde herramientas CASE • Administradores de datos como SAS, SPSS, SQL, QBE (Query by Example)

Algunos lenguajes y herramientas son Postgree 4GL OpenEdge, SQL for Business Intelligence, WinDev, PowerBuilder, Informix, Clipper, Rational, NATURAL, ...

Gestión proyectos. Definición y fasesUn proyecto es un conjunto de recursos humanos y no humanos (técnicos y financieros) organizados para realizar una serie de tareas dispuestas en una planificación temporal para alcanzar un objetivo.Un proyecto está formado por 4 actividades: Gestión del proyecto, Desarrollo del proyecto, Operación (explotación y mantenimiento) y Control de proyecto (control de versiones y gestión de calidad).Las fases de la gestión del proyecto son (CERPS):

1. Comienzo del proyecto. En el cual se fijan los objetivos y aspectos críticos de un proyecto. Se usan técnicas como Análisis de factores críticos de éxito y SADT (Structured Analysis and Design Technique).

2. Estimación. Estimación aproximada de recursos de personal, económicos, fechas mediante técnicas como los puntos función, staffing size, COCOMO

3. Análisis y Gestión de Riesgos. Se analizan los riesgos del proyecto, riesgos de negocio, económicos, técnicos y de planificación.

4. Planificación. Se identifican y se dividen las tareas detectando sus dependencias, el esfuerzo de cada tarea, asignación de recursos. Esto da como resultado una red de tareas que conforman la agenda del proyecto. Se utilizan técnicas como WBS (Work Breakdown Structure), PERT (Program Evaluation and Review Technique), CPM y GANTT

5. Seguimiento y control. Seguimiento sobre los plazos, realizando análisis de desviaciones en los plazos. Seguimiento de los resultados con técnicas de gestión y garantía de calidad. Seguimiento sobre los costes económicos.

Gestión de proyectos. Asignación de recursosEn la fase de planificación de un proyecto, una de las tareas críticas es la asignación de tareas a recursos. Se deberá tener en cuenta:

1. Descomposición total del proyecto en módulos independientes y descomposición de estos módulos en tareas atómicas abordables por un recurso. Para ello nos podemos ayudar de la técnica WBS (Estructura de descomposición de trabajo)

2. Delimitar el proyecto en el tiempo. 3. Asignar una tarea a un recurso cada vez, buscando la plena ocupación de los recursos. 4. Tener en cuenta la dificultad de las tareas y la experiencia y capacidad de los recursos. De

esta forma asignaremos tareas sencillas a recursos con menos experiencia o capacidad y, a

Page 43: Segundo Ejercicio Cosecha Propia

su vez, asignaremos tareas más complejas a los miembros del equipo más experimentados. Esto previene la desmotivación y el fracaso.

5. Hacer uso de técnicas de planificación como diagrama de Gantt para realizar la asignación de tareas a recursos y tener la visión temporal del proyecto. A su vez, vigilar que no existen vacíos en el diagrama.

6. Realizar un Histograma de recursos, que nos da el número de recursos que necesitamos en cada momento del proyecto.

7. Realizar un patrón de límites de recursos que nos da el estado de cada recurso en función de las fases de arranque, pleno rendimiento y fin del proyecto. Esto nos permite reorganizar la asignación de recursos o conocer el tiempo, en meses, que un recurso participará en el proyecto.

Gestión proyectos. Técnicas de estimación de proyectos: COCOMOLa gestión de un proyecto supone una fase previa de estimación de la duración, coste y recursos necesarios y una fase de planificación. En cuanto a la fase de estimación podemos emplear diferentes técnicas directas como las basadas en Líneas de Código o indirectas como las basadas en Puntos de Función. Métrica hace referencia COCOMO, Staffing Size y Puntos de Función.COCOMO: Es un método de estimación del esfuerzo de los proyectos software. COCOMO es una medida de comparación entre proyectos que pueden clasificarse dependiendo del tamaño y experiencia en: básico, intermedio y avanzado o detallado. Cada uno de estos submodelos es aplicado a tres tipos de software:

• Órgánico: Proyectos pequeños (hasta 50.000 líneas de código) de los que se tiene bastante experiencia

• Semiacoplado: Proyectos intermedios con restricciones intermedias • Empotrado: Proyectos grandes y complejos sin mucha experiencia para afrontarlos.

COCOMO emplea una serie de fórmulas basada en las líneas de código y coeficientes con valores estudiados para cada uno de los casos anteriores con la que se obtiene el esfuerzo medido en persona/mes y el tiempo de duración del proyecto medido en meses. Las líneas de código se miden por millares. La desventaja de este método es su gran dependencia a cada lenguaje de programación.

Gestión proyectos. Técnicas de estimación de proyectos: STAFFING SIZE, PUNTOS FUNCIÓNSTAFFING SIZE: Es una medida de estimación de personas necesarias para afrontar un proyecto orientado a objetos. La medida fundamental de esta técnica es el número de clases de la aplicación. Esto hace que usar la técnica de Staffing Size dependa en gran medida de la tecnología y lenguaje de programación empleado. Se consideran varios tipos de clases.Clases clave, son las clases que se detectan en fase de análisis y tienen un alto valor en el modelo de negocio. Las clases clave suelen representar entre un 20 y un 40% del total de las clases.Las clases de soporte o secundarias, son clases prescindibles en el modelo. Se pueden incluir en las clases secundarias, las relativas a interfaces de usuario y habituales en lenguajes de programación. El número de clases soporte suele ser de uno a tres veces el total de clases clave.Staffing Size considera que, un desarrollador puede tener una clase en producción, en 10 o 15 días incluyendo documentación y pruebas unitarias. También considera que de 6 a 8 días se puede obtener un prototipo de clase.PUNTOS DE FUNCIÓN: Se centra en los valores de dominio de la información (entradas y salidas externas, archivos lógicos internos, archivos de interfaz externos). La ventaja de los puntos de función frente a otras técnicas es que no dependen del entorno tecnológico ni del lenguaje de programación.