CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO...

30
CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO 9001:2000 1.1.1 ¿Qué es ISO? La Organización Internacional para la Normalización (ISO) es la entidad responsable para la normalización a escala mundial con una agrupación hasta la fecha de 91 países. ISO está formado por comités técnicos, cada uno de los cuales es responsable de la normalización para cada área de especialidad desde, por ejemplo, asbestos hasta el zinc. El propósito de ISO es promover el desarrollo de la normalización para fomentar a nivel internacional el intercambio de bienes y servicios y para el desarrollo de la cooperación en actividades económicas, intelectuales, científicas y tecnológicas. El resultado del trabajo técnico dentro de ISO se publica en forma final como normas internacionales. 1 1.1.2 ¿Quién desarrolló la serie ISO 9000? El Comité Técnico 176 (ISO/TC 176) se formó en 1979 para armonizar la creciente actividad a nivel mundial en administración y aseguramiento de calidad. La nueva familia ISO 9000 se volvió vigente a partir del 15 de diciembre del 2000 y sustituye a la versión 1994, cuya vigencia es hasta el 14 de diciembre del 2003. 1.1.3 ¿En qué consiste la serie ISO 9000? La versión 1994 de ISO 9000 es una serie de normas que principalmente se dividen en normas de guía y normas contractuales. Las normas de guía sirven para aclarar algunos requisitos contenidos en las normas contractuales, que son aquellas normas que están sujetas a certificación y que se aplican especialmente cuando existe una relación entre dos partes, cliente y proveedor, mediados por un contrato. La nueva familia versión 2000 se ha simplificado con el objetivo de evitar la proliferación de normas. En qué consiste entonces la versión actual de la norma ISO 9001:2000: 1 Manual de Reglas de Certificación ISO 9001:2000

Transcript of CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO...

Page 1: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

CAPITULO I.- MARCO TEORICO

1. DEFINICIONES

1.1 NORMA ISO 9001:2000

1.1.1 ¿Qué es ISO?

La Organización Internacional para la Normalización (ISO) es la entidad responsable para la

normalización a escala mundial con una agrupación hasta la fecha de 91 países. ISO está formado

por comités técnicos, cada uno de los cuales es responsable de la normalización para cada área de

especialidad desde, por ejemplo, asbestos hasta el zinc. El propósito de ISO es promover el

desarrollo de la normalización para fomentar a nivel internacional el intercambio de bienes y

servicios y para el desarrollo de la cooperación en actividades económicas, intelectuales,

científicas y tecnológicas. El resultado del trabajo técnico dentro de ISO se publica en forma final

como normas internacionales.1

1.1.2 ¿Quién desarrolló la serie ISO 9000?

El Comité Técnico 176 (ISO/TC 176) se formó en 1979 para armonizar la creciente actividad a

nivel mundial en administración y aseguramiento de calidad. La nueva familia ISO 9000 se

volvió vigente a partir del 15 de diciembre del 2000 y sustituye a la versión 1994, cuya vigencia

es hasta el 14 de diciembre del 2003.

1.1.3 ¿En qué consiste la serie ISO 9000?

La versión 1994 de ISO 9000 es una serie de normas que principalmente se dividen en normas de

guía y normas contractuales. Las normas de guía sirven para aclarar algunos requisitos

contenidos en las normas contractuales, que son aquellas normas que están sujetas a certificación

y que se aplican especialmente cuando existe una relación entre dos partes, cliente y proveedor,

mediados por un contrato. La nueva familia versión 2000 se ha simplificado con el objetivo de

evitar la proliferación de normas.

En qué consiste entonces la versión actual de la norma ISO 9001:2000:

1 Manual de Reglas de Certificación ISO 9001:2000

Page 2: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

• Mejora los aspectos organizativos de una empresa

• Aumenta la calidad del producto o servicio

• Describe los principios y terminología de los sistemas de gestión de calidad.

• ISO 9001:2000 especifica los requisitos para los sistemas de gestión aplicables a toda

organización que necesite demostrar su capacidad para proporcionar productos que cumplan

los requisitos de sus clientes y los reglamentarios.

• Su fin es la satisfacción del cliente.

• Es la única norma sujeta a certificación.

Desaparecen ISO 9002:1994 e ISO 9003:1994. ISO 9004:2000 proporciona directrices que

consideran tanto la eficacia como la eficiencia del sistema de gestión de la calidad. Su objetivo es

la mejora en el desempeño de la organización. ISO 19011 proporciona orientación relativa a las

auditorias a sistemas de gestión de la calidad y de gestión ambiental.

1.1.4 Sistema de Gestión de la Calidad

Es la Forma como la organización realiza la gestión empresarial asociada con la calidad. (Es un

sistema administrativo empresarial dedicado a lograr la calidad en lo que se hace).

Es un documento con validez legal expedido por una entidad certificadora que acredita que una

empresa cumple las más estrictas normas de calidad. Las certificaciones son concedidas si se

cumplen los requisitos determinados por la empresa y la compañía de certificación.

1.1.4.1 Proceso para conseguir una certificación:

CERTIFICACIÓN EN GESTIÓN DE LA CALIDAD ISO 9001:2000

Requisitos de la Documentación :

Procedimientos e instrucciones

Declaraciones de la Política de la Calidad y Objetivos de la Calidad

Manual de la Calidad

Los Procedimientos requeridos en esta Norma

Los documentos necesarios para asegurar la planificación, operación y control de procesos

Los Registros requeridos por esta Norma

Page 3: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

Requisitos Generales:

Identificar los procesos necesarios para el Sistema de Gestión de la Calidad

Determinar la secuencia e interacción de estos procesos

Determinar los criterios y métodos para asegurar que la operación y control de estos procesos

sea eficaz.

Asegurarse de la disponibilidad de recursos e información necesarios para apoyar la

operación y el seguimiento de estos procesos

Realizar el seguimiento, la medición y análisis de estos procesos

Realizar lo necesario para alcanzar los resultados planificados y la mejora continua de éstos

Temporalmente, en principio cada año, las empresas se ven sometidas a una auditoria por

parte de la empresa certificadora

Es requisito indispensable para renovar la certificación haber mejorado la calidad del

producto. Si no se supera la auditoria en determinados plazos e intentos, se pierde la

certificación.

1.1.4.2 Ventajas de la instalación de un Sistema de Calidad :

• Organización del trabajo

• Aumento de beneficios

• Aumento de clientes

• Motivación del personal

• Fidelidad de los Clientes

• Buena relación con los clientes

• Otros

1.1.5 ¿Cómo desarrolla la ISO sus estándares?

La Organización Internacional para la Estandarización estipula que sus estándares son producidos

de acuerdo a los siguientes principios:

1) Consenso: Son tenidos en cuenta los puntos de vistas de todos los interesados: fabricantes,

vendedores, usuarios, grupos de consumidores, laboratorios de análisis, gobiernos,

especialistas y organizaciones de investigación.

Page 4: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

2) Aplicación Industrial Global: Soluciones globales para satisfacer a las industrias, empresas de

servicios y a los clientes mundiales.

3) Voluntario: La estandarización internacional es conducida por el mercado y por consiguiente

basada en el compromiso voluntario de todos los interesados del mercado.

Básicamente, la Norma ISO 9001:2000, son un conjunto de reglas de carácter social y

organizativo para mejorar y potenciar las relaciones entre los miembros de una organización.

Cuyo último resultado, es mejorar las capacidades y rendimiento de la organización, y conseguir

un aumento por este procedimiento de la calidad final del producto.

Para lograr esto, la Norma sigue una serie de principios básicos que son los siguientes :

Que toda Organización sea enfocada a los clientes

Liderazgo

Compromiso de todo el personal

Enfoque a procesos

Enfoque del sistema hacia la gestión

La mejora continua

Enfoque objetivo hacia la toma de decisiones

Relaciones mutuamente beneficiosas con los proveedores

ICACIÓN EN GESTIÓN DE LA CALIDAD ISO 9001:2000

Implantación

Auditoría Interna del sistema

Revisión y ajuste

Proceso de

Certificación DESARROLLO DEL PROCESO

Creación de la base

experimental y documental

Diseño

?

Page 5: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

1.2 MODELADO DE SISTEMAS

Qué es un modelo? Un modelo es una abstracción de la realidad que captura la esencia funcional

del sistema, con los detalles suficientes como para que pueda utilizarse en la investigación y la

experimentación en lugar del sistema real, con menos riesgos, costo y tiempo. Este a su vez está

formado por dos sub-conjuntos:

Variables

Relaciones entre variables

Variables : representan habitualmente magnitudes físicas del sistema que se modela.

Relaciones : son las que describen el comportamiento de variables dentro del modelo.

Existen diferentes clasificaciones de modelos, de los cuales se mencionan: el Mental, Físico,

Gráfico, Matemático y Computarizado. Al igual, también existen diferentes técnicas de

modelado, que hacen posibles construir una gran cantidad de modelos para un sistema dado.

1.3 MODELO DE CONSTRUCCION DE PROTOTIPOS

La mayoría de desarrolladores de sistemas cuando inician un nuevo proyecto, siempre se

encuentran en la mayoría de las veces que “el primer sistema construido no se puede utilizar; ya

que puede ser demasiado lento, grande o torpe en su uso o los tres a la vez. No hay alternativas

sino comenzar de nuevo y construir una versión rediseñada en la que se resuelven esos

problemas….”.2

Entonces aparece un <<diseño rápido>> el cual se centra en la representación de esos aspectos

del software que serán visibles para el usuario; esto nos lleva a la construcción de un prototipo.

Un prototipo es una versión preliminar de un sistema de información o software con fines de

demostración o evaluación3; puede servir como un primer ensayo del producto final; el cual, es

evaluado en una primera etapa y se utiliza para refinar los requisitos del software a desarrollar.

2 Pressman, Roger S. Ingeniería de Software. Un enfoque práctico. Quinta Edición pág. 24 3 Pressman, Roger S. Ingeniería de Software. Un enfoque práctico. Quinta Edición pág. 24

Page 6: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

Como analista de sistemas que presenta un prototipo del sistema de información, nos interesa las

reacciones de los usuarios y los directivos de la organización hacia el prototipo. La interacción

ocurre cuando el prototipo satisface las necesidades del usuario a la vez que permite que el

desarrollador comprenda mejor lo que necesita hacer. Las reacciones se recopilan a través de la

observación, las entrevistas y las hojas de retroalimentación diseñados para obtener la opinión de

cada persona sobre el prototipo después de que interactúa con el, esto sirve como un mecanismo

para identificar los requisitos.4

La construcción de prototipos puede ser un paradigma efectivo para la ingeniería de software; la

clave es definir las reglas del juego al comienza; es decir, el usuario y el desarrollador se deben

poner de acuerdo en que el prototipo se construya para servir como un mecanismo de definición

de requerimientos, esto con la visión hacia la calidad y la facilidad de mantenimiento.

“Un prototipo en Sistemas de Información es un modelo operable que tiene todas las

características necesarias para que el usuario pueda interactuar, pero que es ineficiente. Tiene

todas las características propuestas; pero es realmente un modelo básico que eventualmente será

mejorado…”.5

Cuando un analista de sistemas usa prototipos está buscando reacciones, sugerencias,

innovaciones y planes de revisión del usuario para hacer mejoras al prototipo y, por lo tanto,

modificar los planes del sistema con un mínimo de gastos y trastornos 6.

1.3.1 ENFOQUE A LOS PROTOTIPOS

La palabra prototipo se usa de muchas formas diferentes. En lugar de intentar sintetizar todos

estos usos en una sola definición o de tratar de convenir en un enfoque correcto al tema un tanto

polémico de la elaboración de prototipos se describen varias concepciones de la elaboración de

prototipos que se pueden aplicar convenientemente en una situación particular.

4 Pressman, Roger S. Ingeniería de Software. Un enfoque práctico. Quinta Edición pág. 24 5 Kendall, Kenneth E.; Kendall, Julie E. [1997] Análisis ÿ Diseño de Sistemas. Editorial Prentice Hall. Tercera

Edición pág. 199 6 Kendall, Kenneth E.; Kendall, Julie E. [1997] Análisis ÿ Diseño de Sistemas. Editorial Prentice Hall. Tercera

Edición pág. 213.

Page 7: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

Tipos de Prototipos

Comúnmente son usados cuatro de ellos:

Prototipo Corregido o Parchado: Es un sistema que funciona, pero se corrige

simultáneamente (trabaja, pero es parchado), es un modelo básico. En ingeniería, a este

enfoque se le llama elaboración de una tabla experimental. Los usuarios pueden interactuar

con el sistema, acostumbrándose a la interfaz y los tipos de salidas disponibles. Sin embargo

la recuperación y almacenamiento de información podrían ser ineficientes, debido a que los

programas se escribieron rápidamente con el objetivo de ser funcionales en lugar de eficaces.

Prototipo no Operacional: Es usado para probar determinadas características del diseño. Es

un modelo a escala no funcional.

Prototipo Primero de la Serie: Completamente operacional, es útil cuando están planeadas

muchas instalaciones del mismo sistema de información (bajo condiciones similares). El

modelo funcional a escala completa permite a los usuarios la interacción real con el nuevo

sistema, pero minimiza el costo de superar cualquier problema que se presente.

Prototipo de Características Seleccionadas : que tiene algunas, pero no todas las

características esenciales del sistema. Usa módulos autocontenidos como bloques de

construcción, para que si las características prototípicas son satisfactorias puedan ser

conservadas e incorporadas en el sistema terminado mucho más grande.7

Algunos analistas argumentan que la elaboración de prototipos se debe considerar como una

alternativa para el ciclo de vida del desarrollo de sistemas (SDLC), ya que cuando la elaboración

de prototipos de usa de esta forma, el analista reduce efectivamente el tiempo entre la

determinación de los requerimientos de información y la entrega de un sistema funcional.

7 Kendall, Kenneth E.; Kendall, Julie E. [1997] Análisis ÿ Diseño de Sistemas. Editorial Prentice Hall. Tercera

Edición pág. 213.

Page 8: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

1.3.2 LINEAMIENTOS PARA EL DESARROLLO DE UN PROTOTIPO

Los lineamientos principales que se realizan en el desarrollo de un prototipo, cuando éste se

integra, en la fase de determinación de requerimientos del ciclo de vida de desarrollo de sistemas

son los siguientes:8

• Trabajar en módulos manejables : Que son aquellos que permiten la interacción de sus

características principales, pudiendo ser construido por separado de otros módulos.

• Construir el prototipo rápidamente: Después de un breve análisis de los requerimientos de

información usando métodos tradicionales, se construye el modelo funcional para el prototipo

en el menor tiempo.

Es importante enfatizar que en esta etapa del ciclo de vida, todavía se está recolectando

información acerca de lo que necesitan y quieren los usuarios del sistema de información: El

prototipo se convierte en una extensión valiosa a la determinación tradicional de

requerimientos, ya que existe una retroalimentación que puede mostrar un mejor panorama de

las necesidades generales de la información.

• Modificar el prototipo en iteraciones sucesivas: La construcción del prototipo debe dar

soporte a las modificaciones, esto con el objetivo que el sistema se vaya acercando cada vez

mas a lo que los usuarios necesitan.

• Enfatizar el interfaz de usuario: Su principal objetivo es lograr que el usuario sea capaz de

interactuar fácilmente con el prototipo del sistema.

1.3.3 DESVENTAJAS DE LA ELABORACION DE PROTOTIPOS

Tal como pasa con cualquier técnica de recopilación de información, hay varias desventajas en la

elaboración de prototipos. La primera es que puede ser bastante difícil el manejar el prototipo

como un proyecto dentro de un esfuerzo par un sistema más grande. La segunda es que los

8 Kendall, Kenneth E.; Kendall, Julie E. [1997] Análisis ÿ Diseño de Sistemas. Editorial Prentice Hall. Tercera

Edición pág. 204-206.

Page 9: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

usuarios y analistas pueden adoptar al prototipo como un sistema completo cuando es, de hecho,

inadecuado y nunca se pretendió que sirviera como un sistema terminado.

1.3.4 VENTAJAS DE LA ELABORACION DE PROTOTIPOS

La elaboración de prototipos no es necesaria o apropiada en todos los proyectos de sistemas, pero

se deben considerar las ventajas al momento de decidir si se hace el prototipo. Las tres ventajas

principales son:

a) La posibilidad de modificar el sistema en las primeras etapas de desarrollo

b) La oportunidad de suspender el desarrollo de un sistema que no sea funcional

c) La posibilidad de desarrollar un sistema que se acerque más a satisfacer las necesidades y

expectativas de los usuarios.

1.4 CICLO DE VIDA DE SISTEMAS

Es un enfoque por fases del análisis y diseño que sostiene, que los sistemas son desarrollados de

mejor manera mediante el uso de un ciclo específico de actividades del analista y del usuario.

Los analistas no están de acuerdo con qué tantas fases exactas hay en el ciclo de vida del

desarrollo de sistemas, pero, por lo general, alaban su enfoque organizado. Por lo general este se

divide en 7 fases las cuales son:

Identificación de los requerimientos: fase en la cual se identifica el problema, oportunidades y

objetivos del proyecto.

Determinación de los requerimientos: en esta fase se comprenden las los requerimientos de

información que tiene los usuarios.

Análisis de las necesidades del sistema: Analiza las necesidades del sistema.

Diseño Lógico: En esta fase se utiliza la información recolectada para realizar el diseño

lógico del sistema de información.

Programación del Software: En esta fase se desarrolla cualquier software original que se

necesite.

Page 10: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

Prueba y verificación del Sistema: En esta fase se prueba y documenta el sistema de

información.

Implementación: aquí el analista implementa el sistema. Esto incluye entrenamiento de los

usuarios para que manejen el sistema.9

1.5 HERRAMIENTAS DE DESARROLLO

Hoy en día existen muchas herramientas que se utilizan para el desarrollo de sistemas y de las

cuales se puede mencionar:

VISUAL BASIC10

Visual Basic es uno de los tantos lenguajes de programación que podemos encontrar hoy en día.

Dicho lenguaje nace del BASIC (Beginner´s All-purpose Symbolic Instruction Code) que fue

creado en su versión original en el Dartmouth College, con el propósito de servir a aquellas

personas que estaban interesadas en iniciarse en algún lenguaje de programación. Luego de sufrir

varias modificaciones, en el año 1978 se estableció el BASIC estándar. La sencillez del lenguaje

ganó el desprecio de los programadores avanzados por considerarlo "un lenguaje para

principiantes".

Primero fue GW-BASIC, luego se transformó en QuickBASIC y actualmente se lo conoce como

Visual Basic y la versión más reciente es la 6. Esta versión combina la sencillez del BASIC con

un poderoso lenguaje de programación Visual que juntos permiten desarrollar robustos

programas de 32 bits para Windows.

¿Qué es Visual Basic?

Es un lenguaje de programación que se ha diseñado para facilitar el desarrollo de aplicaciones en

un entorno grafico (GUI-GRAPHICAL USER INTERFACE) Como Windows 98, Windows NT

o superior.

9 Kendall, Kenneth E.; Kendall, Julie E. [1997] Análisis ÿ Diseño de Sistemas. Editorial Prentice Hall. Tercera

Edición págs. 8-12. 10 http:// www.monografias.com/computa/programacion

Page 11: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

Características de Visual Basic.

Diseñador de entorno de datos: Es posible generar, de manera automática, conectividad entre

controles y datos mediante la acción de arrastrar y colocar sobre formularios o informes.

Los Objetos Actives son una nueva tecnología de acceso a datos mediante la acción de arrastrar y

colocar sobre formularios o informes.

Asistente para formularios: Sirve para generar de manera automática formularios que

administran registros de tablas o consultas pertenecientes a una base de datos, hoja de calculo u

objeto (ADO-ACTIVE DATA OBJECT)

Asistente para barras de herramientas es factible incluir barras de herramientas es factible incluir

barra de herramientas personalizada, donde el usuario selecciona los botones que desea visualizar

durante la ejecución.

En las aplicaciones HTML: Se combinan instrucciones de Visual Basic con código HTML para

controlar los eventos que se realizan con frecuencia en una pagina web.

JAVA11

A) Origen de Java

Sun Microsystems, líder en servidores para Internet, uno de cuyos lemas desde hace mucho

tiempo es "the network is the computer" (lo que quiere dar a entender que el verdadero ordenador

es la red en su conjunto y no cada máquina individual), es quien ha desarrollado el lenguaje Java,

en un intento de resolver simultáneamente todos los problemas que se le plantean a los

desarrolladores de software por la proliferación de arquitecturas incompatibles, tanto entre las

diferentes máquinas como entre los diversos sistemas operativos y sistemas de ventanas que

funcionaban sobre una misma máquina, añadiendo la dificultad de crear aplicaciones distribuidas

en una red como Internet.

11 http:// www.monografias.com/computa/programacion

Page 12: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

Hace algunos años, Sun Microsystems decidió intentar introducirse en el mercado de la

electrónica de consumo y desarrollar programas para pequeños dispositivos electrónicos. Tras

unos comienzos dudosos, Sun decidió crear una filial, denominada FirstPerson Inc., para dar

margen de maniobra al equipo responsable del proyecto.

El mercado inicialmente previsto para los programas de FirstPerson eran los equipos domésticos:

microondas, tostadoras y, fundamentalmente, televisión interactiva. Este mercado, dada la falta

de pericia de los usuarios para el manejo de estos dispositivos, requería unos interfaces mucho

más cómodos e intuitivos que los sistemas de ventanas que proliferaban en el momento.

Otros requisitos importantes a tener en cuenta eran la fiabilidad del código y la facilidad de

desarrollo. James Gosling, el miembro del equipo con más experiencia en lenguajes de

programación, decidió que las ventajas aportadas por la eficiencia de C++ no compensaban el

gran coste de pruebas y depuración. Gosling había estado trabajando en su tiempo libre en un

lenguaje de programación que él había llamado Oak, el cual, aún partiendo de la sintaxis de C++,

intentaba remediar las deficiencias que iba observando.

Los lenguajes al uso, como C o C++, deben ser compilados para un chip, y si se cambia el chip,

todo el software debe compilarse de nuevo. Esto encarece mucho los desarrollos y el problema es

especialmente acusado en el campo de la electrónica de consumo. La aparición de un chip más

barato y, generalmente, más eficiente, conduce inmediatamente a los fabricantes a incluirlo en las

nuevas series de sus cadenas de producción, por pequeña que sea la diferencia en precio ya que,

multiplicada por la tirada masiva de los aparatos, supone un ahorro considerable. Por tanto,

Gosling decidió mejorar las características de Oak y utilizarlo.

El primer proyecto en que se aplicó este lenguaje recibió el nombre de proyecto Green y consistía

en un sistema de control completo de los aparatos electrónicos y el entorno de un hogar. Para ello

se construyó un ordenador experimental denominado *7 (Star Seven). El sistema presentaba una

interfaz basada en la representación de la casa de forma animada y el control se llevaba a cabo

mediante una pantalla sensible al tacto. En el sistema aparecía Duke, la actual mascota de Java.

Posteriormente se aplicó a otro proyecto denominado VOD (Video On Demand) en el que se

empleaba como interfaz para la televisión interactiva. Ninguno de estos proyectos se convirtió

Page 13: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

nunca en un sistema comercial, pero fueron desarrollados enteramente en un Java primitivo y

fueron como su bautismo de fuego.

B) Características de Java

Las características principales que nos ofrece Java respecto a cualquier otro lenguaje de

programación, son:

Simple

Java ofrece toda la funcionalidad de un lenguaje potente, pero sin las características menos

usadas y más confusas de éstos. C++ es un lenguaje que adolece de falta de seguridad, pero C y

C++ son lenguajes más difundidos, por ello Java se diseñó para ser parecido a C++ y así facilitar

un rápido y fácil aprendizaje.

Java elimina muchas de las características de otros lenguajes como C++, para mantener reducidas

las especificaciones del lenguaje y añadir características muy útiles como el garbage collector

(reciclador de memoria dinámica). No es necesario preocuparse de liberar memoria, el reciclador

se encarga de ello y como es un thread de baja prioridad, cuando entra en acción, permite liberar

bloques de memoria muy grandes, lo que reduce la fragmentación de la memoria. Además, el

intérprete completo de Java que hay en este momento es muy pequeño, solamente ocupa 215 Kb

de RAM.

Orientado a objetos

Java implementa la tecnología básica de C++ con algunas mejoras y elimina algunas cosas para

mantener el objetivo de la simplicidad del lenguaje. Java trabaja con sus datos como objetos y

con interfaces a esos objetos. Soporta las tres características propias del paradigma de la

orientación a objetos: encapsulación, herencia y polimorfismo. Las plantillas de objetos son

llamadas, como en C++, clases y sus copias, instancias. Estas instancias, como en C++, necesitan

ser construidas y destruidas en espacios de memoria.

Java incorpora funcionalidades inexistentes en C++ como por ejemplo, la resolución dinámica de

métodos. Esta característica deriva del lenguaje Objective C, propietario del sistema operativo

Next. En C++ se suele trabajar con librerías dinámicas (DLLs) que obligan a recompilar la

aplicación cuando se retocan las funciones que se encuentran en su interior. Este inconveniente es

Page 14: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

resuelto por Java mediante una interfaz específica llamada RTTI (RunTime Type Identification)

que define la interacción entre objetos excluyendo variables de instancias o implementación de

métodos. Las clases en Java tienen una representación en el runtime que permite a los

programadores interrogar por el tipo de clase y enlazar dinámicamente la clase con el resultado

de la búsqueda.

Distribuido

Java se ha construido con extensas capacidades de interconexión TCP/IP. Existen librerías de

rutinas para acceder e interactuar con protocolos como http y ftp. Esto permite a los

programadores acceder a la información a través de la red con tanta facilidad como a los ficheros

locales.

La verdad es que Java en sí no es distribuido, sino que proporciona las librerías y herramientas

para que los programas puedan ser distribuidos, es decir, que se corran en varias máquinas,

interactuando.

Robusto

Java realiza verificaciones en busca de problemas tanto en tiempo de compilación como en

tiempo de ejecución. La comprobación de tipos en Java ayuda a detectar errores, lo antes posible,

en el ciclo de desarrollo. Java obliga a la declaración explícita de métodos, reduciendo así las

posibilidades de error. Maneja la memoria para eliminar las preocupaciones por parte del

programador de la liberación o corrupción de memoria.

También implementa los arrays auténticos, en vez de listas enlazadas de punteros, con

comprobación de límites, para evitar la posibilidad de sobreescribir o corromper memoria

resultado de punteros que señalan a zonas equivocadas. Estas características reducen

drásticamente el tiempo de desarrollo de aplicaciones en Java.

Además, para asegurar el funcionamiento de la aplicación, realiza una verificación de los byte-

codes, que son el resultado de la compilación de un programa Java. Es un código de máquina

virtual que es interpretado por el intérprete Java. No es el código máquina directamente

Page 15: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

entendible por el hardware, pero ya ha pasado todas las fases del compilador: análisis de

instrucciones, orden de operadores, etc., y ya tiene generada la pila de ejecución de órdenes.

Arquitectura neutral

Para establecer Java como parte integral de la red, el compilador Java compila su código a un

fichero objeto de formato independiente de la arquitectura de la máquina en que se ejecutará.

Cualquier máquina que tenga el sistema de ejecución (run-time) puede ejecutar ese código objeto,

sin importar en modo alguno la máquina en que ha sido generado. Actualmente existen sistemas

run-time para Solaris 2.x, SunOs 4.1.x, Windows 95, Windows NT, Linux, Irix, Aix, Mac, Apple

y probablemente haya grupos de desarrollo trabajando en el porting a otras plataformas.

El código fuente Java se "compila" a un código de bytes de alto nivel independiente de la

máquina. Este código (byte-codes) está diseñado para ejecutarse en una máquina hipotética que

es implementada por un sistema run-time, que sí es dependiente de la máquina. Además, habrá

APIs de Java que también entren en contacto directo con el hardware y serán dependientes de la

máquina, como ejemplo de este tipo de APIs podemos citar:

Java 2D: gráficos 2D y manipulación de imágenes

Java Media Framework : Elementos críticos en el tiempo: audio, video...

Java Animation: Animación de objetos en 2D

Java Telephony: Integración con telefonía

Java Share: Interacción entre aplicaciones multiusuario

Java 3D: Gráficos 3D y su manipulación

Seguro

La seguridad en Java tiene dos facetas. En el lenguaje, características como los punteros o el

casting implícito que hacen los compiladores de C y C++ se eliminan para prevenir el acceso

ilegal a la memoria. Cuando se usa Java para crear un navegador, se combinan las características

del lenguaje con protecciones de sentido común aplicadas al propio navegador.

El código Java pasa muchos tests antes de ejecutarse en una máquina. El código se pasa a través

de un verificador de byte-codes que comprueba el formato de los fragmentos de código y aplica

Page 16: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

un probador de teoremas para detectar fragmentos de código ilegal -código que falsea punteros,

viola derechos de acceso sobre objetos o intenta cambiar el tipo o clase de un objeto-.

Si los byte-codes pasan la verificación sin generar ningún mensaje de error, entonces sabemos

que:

. El código no produce desbordamiento de operandos en la pila

. El tipo de los parámetros de todos los códigos de operación son conocidos y correctos.

. No ha ocurrido ninguna conversión ilegal de datos, tal como convertir enteros en punteros.

. El acceso a los campos de un objeto se sabe que es legal: public, private, protected.

. No hay ningún intento de violar las reglas de acceso y seguridad establecidas

El Cargador de Clases también ayuda a Java a mantener su seguridad, separando el espacio de

nombres del sistema de ficheros local, del de los recursos procedentes de la red. Esto limita

cualquier aplicación del tipo Caballo de Troya, ya que las clases se buscan primero entre las

locales y luego entre las procedentes del exterior.

En resumen, las aplicaciones de Java resultan extremadamente seguras, ya que no acceden a

zonas delicadas de memoria o de sistema, con lo cual evitan la interacción de ciertos virus. Java

no posee una semántica específica para modificar la pila de programa, la memoria libre o utilizar

objetos y métodos de un programa sin los privilegios del kernel del sistema operativo. Además,

para evitar modificaciones por parte de los crackers de la red, implementa un método ultraseguro

de autentificación por clave pública. El Cargador de Clases puede verificar una firma digital antes

de realizar una instancia de un objeto. Por tanto, ningún objeto se crea y almacena en memoria,

sin que se validen los privilegios de acceso. Es decir, la seguridad se integra en el momento de

compilación, con el nivel de detalle y de privilegio que sea necesario.

Respecto a la seguridad del código fuente, no ya del lenguaje, JDK proporciona un

desensamblador de byte-code, que permite que cualquier programa pueda ser convertido a código

fuente, lo que para el programador significa una vulnerabilidad total a su código.

Page 17: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

Portable

Más allá de la portabilidad básica por ser de arquitectura independiente, Java implementa otros

estándares de portabilidad para facilitar el desarrollo. Los enteros son siempre enteros y además,

enteros de 32 bits en complemento a 2. Además, Java construye sus interfaces de usuario a través

de un sistema abstracto de ventanas de forma que las ventanas puedan ser implantadas en

entornos Unix, Pc o Mac.

Interpretado

El intérprete Java (sistema run-time) puede ejecutar directamente el código objeto. Enlazar

(linkiar) un programa, normalmente, consume menos recursos que compilarlo, por lo que los

desarrolladores con Java pasarán más tiempo desarrollando y menos esperando por el ordenador.

No obstante, el compilador actual del JDK es bastante lento. Por ahora, que todavía no hay

compiladores específicos de Java para las diversas plataformas, Java es más lento que otros

lenguajes de programación, como C++, ya que debe ser interpretado y no ejecutado como sucede

en cualquier programa tradicional.

Multithreaded

Al ser multithreaded (multihilvanado, en mala traducción), Java permite muchas actividades

simultáneas en un programa. Los threads (a veces llamados, procesos ligeros), son básicamente

pequeños procesos o piezas independientes de un gran proceso. Al estar los threads contruidos en

el lenguaje, son más fáciles de usar y más robustos que sus homólogos en C o C++.

El beneficio de ser multithreaded consiste en un mejor rendimiento interactivo y mejor

comportamiento en tiempo real. Aunque el comportamiento en tiempo real está limitado a las

capacidades del sistema operativo subyacente (Unix, Windows, etc.), aún supera a los entornos

de flujo único de programa (single-threaded) tanto en facilidad de desarrollo como en

rendimiento.

Dinámico

Java se beneficia todo lo posible de la tecnología orientada a objetos. Java no intenta conectar

todos los módulos que comprenden una aplicación hasta el tiempo de ejecución. Las librería

Page 18: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

nuevas o actualizadas no paralizarán las aplicaciones actuales (siempre que mantengan el API

anterior).

Algunas Limitantes en Java:

La velocidad.

Los programas hechos en Java no tienden a ser muy rápidos, supuestamente se está

trabajando en mejorar esto. Como los programas de Java son interpretados nunca alcanzan la

velocidad de un verdadero ejecutable.

Java es un lenguaje de programación. Esta es otra gran limitante, por más que digan que es

orientado a objetos y que es muy fácil de aprender sigue siendo un lenguaje y por lo tanto

aprenderlo no es cosa fácil. Especialmente para los no programadores.

Java es nuevo. En pocas palabras todavía no se conocen bien todas sus capacidades.

JAVASCRIPT12

¿Qué es JavaScript? Es un nuevo lenguaje escrito; al igual que Java o VRML, es una de las

múltiples maneras que han surgido para extender las capacidades del lenguaje HTML. Se trata de

un lenguaje de tipo script compacto, basado en objetos y guiado por eventos diseñado

específicamente para el desarrollo de aplicaciones cliente-servidor dentro del ámbito de Internet.

Los programas JavaScript van incrustados en los documentos HMTL, y se encargan de realizar

acciones en el cliente, como pueden ser pedir datos, confirmaciones, mostrar mensajes, crear

animaciones, comprobar campos, etc.

Con JavaScript se puede dar respuesta a eventos iniciados por el usuario, eventos tales como la

entrada de una forma o algún enlace. Esto sucede sin ningún tipo de transmisión. De tal forma

que cuando un usuario escribe algo en una forma, no es necesario que sea transmitido hacia el

servidor, verificado y devuelto. Las entradas son verificadas por la aplicación cliente y pueden

ser transmitidas después de esto.

Aunque, realmente JavaScript no es un lenguaje de programación propiamente dicho, es un

lenguaje script u orientado a documentos como pueden ser, los lenguajes de macros que tienen

12 http:// www.monografias.com/computa/programacion/javascript.html

Page 19: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

muchos procesadores de texto. Nunca se podrá hacer un programa con JavaScript, tan sólo se

podrá mejorar una página Web con algunas cosas sencillas (revisión de formularios, efectos en la

barra de estado, etc...) y, ahora, no tan sencillas (animaciones usando HTML dinámico, por

ejemplo).

Aunque JavaScript se parece a Java son dos cosas distintas. Principalmente porque Java sí que es

un lenguaje de programación completo y mucho más complejo. Lo único que comparten es la

misma sintaxis. JavaScript está hecho para ser un lenguaje bastante fácil de entender, por esta

razón, algunos elementos de Java no son aceptados en JavaScript.

Versiones

El programa que va a interpretar los programas JavaScript es el propio navegador, lo que

significa que si el nuestro no soporta JavaScript, no podremos ejecutar las funciones que

programemos.

Desde luego, Netscape y Explorer lo soportan, el primero desde la versión 2 y el segundo desde

la versión 3.

Navegador Versión de JavaScript Soporte ECMA

Nestcape 2 Javascript 1.0 --

Internet Explorer 2 No soporta JavaScript --

Nestcape 3 Javascript 1.1 --

Internet Explorer 3 Javascript 1.0 --

Nestcape 4 Javascript 1.2 - 1.3 incompleta ECMA-262-compliant hasta la versión 4.5

Internet Explorer 4 Javascript 1.2 ECMA-262-compliant

Nestcape 6 ECMA compliant Javascript 1.4 Full ECMAScript-262

Internet Explorer 5 ECMA compliant Javascript 1.3 Full ECMAScript-262

Page 20: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

Las diferentes versiones de JavaScript han sido finalmente integradas en un estándar denominado

ECMAScript-262. Dicho estándar ha sido realizado por la organización ECMA dedicada a la

estandarización de información y sistemas de comunicación. Las versiones actuales de los

navegadores soportan este estándar, así que basaremos el curso sobre él.

Lo que se resume en la tabla siguiente son los elementos principales de la gramática de

JavaScript. Es sensible a mayúsculas y minúsculas, todos los elementos de JavaScript deben

referenciarse como se definieron, no es lo mismo "Salto" que "salto".

Variables Etiquetas que se refieren a un valor cambiante.

Operadores Pueden usarse para calcular o comparar valores.

Ejemplo: pueden sumarse dos valores, pueden compararse dos valores...

Expresiones Cualquier combinación de variables, operadores, y declaraciones que evalúan a

algún resultado.

Ejemplo: intTotal=100; intTotal > 100

Sentencias Una sentencia puede incluir cualquier elemento de la gramática de JavaScript.

Las sentencias de JavaScript pueden tomar la forma de condicional, bucle, o

manipulaciones del objeto. La forma correcta para separarlas es por punto y

coma, esto sólo es obligatorio si las declaraciones múltiples residen en la misma

línea. Aunque es recomendable que se acostumbre a terminar cada instrucción

con un punto y coma, se ahorrará problemas.

Objetos Estructura "contenedora" de valores, procedimientos y funciones, cada valor

refleja una propiedad individual de ese objeto.

Funciones y

Métodos

Una función de JavaScript es bastante similar a un" procedimiento" o"

subprograma" en otro lenguaje de programación. Una función es un conjunto

que realizan alguna acción. Puede aceptar los valores entrantes (los parámetros),

y puede devolver un valor saliente. Un método simplemente es una función

contenida en un objeto.

Page 21: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

PHP13

Para un desarrollador de aplicaciones web, PHP ha significado junto al servidor de web Apache,

las dos herramientas claves para la creación de aplicaciones. PHP es un lenguaje sencillo, de

sintaxis cómoda y similar a la de otros lenguajes como C o C++, es rápido a pesar de ser

interpretado, multiplataforma y dispone de una gran cantidad de librerías que facilitan muchísimo

el desarrollo de las aplicaciones.

El código generado es mantenible, se lee muy bien y se puede programar utilizando objetos. PHP

es un lenguaje ideal tanto para el que comienza a desarrollar aplicaciones web como para el

desarrollador experimentado, y está alcanzando unos niveles de uso (más de 1 millón de webs lo

utilizan ya) que convierten su conocimiento en algo indispensable para los profesionales del

desarrollo en Internet. Y, además, PHP es un lenguaje basado en herramientas con licencia de

software libre, es decir, no hay que pagar ni licencias, ni estamos limitados en su distribución y,

podemos ampliarlo con nuevas funcionalidades si así lo quisiéramos. Respecto a su licencia, en la

versión PHP 3.0 era GPL, pasando a ser modificada en su versión 4.0, por la incorporación de

Zend, un nuevo interprete de PHP mucho más rápido que el anterior de PHP. Este interprete Zend

tiene asociado un optimizador opcional, el cual ya está más dentro del mundo comercial que del

software libre, tema que ha levantado algunas suspicacias dentro de la comunidad de

desarrolladores de software libre.

Aquí se muestra el lenguaje, como se instala y configura, como se desarrolla con él, las librerías

fundamentales y como no, su excelente forma de trabajar con casi todas las bases de datos, y en

especial, con MySQL, con la que forma un equipo estrella dentro del mundo de desarrollo

software.

No olvidaremos por otro lado a PostgreSQL, la base de datos que es realmente software libre, y

que avanza con paso firme para convertirse en la base de datos de referencia dentro de cualquier

proyecto libre, sobre todo tras la publicación de la versión 7.0.

13 http://www.programatium.net/cursos/php/2.htm

Page 22: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

Uso del conjunto de Apache y PHP.

Aunque todo se oriente al conjunto Apache y PHP, PHP se puede compilar como un ejecutable

que puede ser utilizado como cgi-bin. De esta forma, cualquier servidor de web que soporte cgi

podría ejecutar las páginas PHP. La ventaja que tiene Apache frente a estos es que podemos

compilar el interprete PHP como un módulo de Apache, por lo que la velocidad de ejecución de

estas páginas PHP es muy superior, así como el consumo de recursos al cargarse el interprete de

PHP una sola vez en memoria.

¿Qué es PHP?

Con estas siglas se hace referencia a un lenguaje de programación que está muy orientado al

desarrollo de aplicaciones web. Cuando pedimos a un servidor de web una página PHP, que no es

más que un programa PHP que genera HTML, antes de enviar dicha página al cliente se la pasa al

interprete de PHP. Este la interpreta y es el resultado de esta interpretación del programa PHP,

contenido en la página PHP, lo que termina llegando al cliente.

Supongamos que el contenido de una página web que reside en el servidor, y cuyo nombre es

"intro.php", tiene el siguiente contenido: <? echo "<h1>Mensaje desde PHP</h1>";?>

Cuando un navegador le pida al servidor de web la página "intro.php", el servidor de web va a

darse cuenta, por la extensión ".php", de que esta página ha de enviarse primero al intérprete de

PHP. Este recibe el contenido de la página y como resultado de esta ejecución (interpretación)

genera una página HTML, que es la que envía al cliente a través de Apache. Como veremos en

una página PHP se puede mezclar HTML y PHP, algo muy flexible pero que hay que manejar

con cuidado ya que puede llevar a confusiones y, sobretodo, a que el equipo que diseñe las

páginas web y el que programe la aplicación no puedan ser independientes.

Instalación de PHP

Uno de los mayores quebraderos de cabeza de PHP en sus comienzos era que obligaba a tener

Apache en código fuente y compilarlo. Por fin la instalación de PHP se puede hacer de forma

sencilla y sin tener que modificar en casi nada a nuestro servidor de web. Tan sólo necesitamos

tener una versión de Apache con soporte DSO para la carga dinámica de objetos.

Page 23: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

1.6 BASES DE DATOS

Una Base de Datos es un conjunto de informacion estructurada en registros y almacenada en un

soporte electronico legible desde un computador. Cada registro constituye una unidad autónoma

de información, que puede estar a su vez estructurada en diferentes campos o tipos de datos que

se recogen en dicha Base de Datos.

Una parte muy importante de las aplicaciones que se desarrollan actualmente hacen uso extensivo

de las Bases de Datos (arquitecturas cliente/servidor, Servicios Web, etc.). Comprender la

arquitectura interna de una Base de Datos es una ayuda muy importante de cara al diseño y la

construcción de Bases de Datos relacionales.

MySQL14

Es un gestor de base de datos sencillo de usar y increíblemente rápido. También es uno de los

motores de base de datos más usados en Internet, la principal razón de esto es que es gratis para

aplicaciones no comerciales.

Las características principales de MySQL son:

Es un gestor de base de datos. Una base de datos es un conjunto de datos y un gestor de base

de datos es una aplicación capaz de manejar este conjunto de datos de manera eficiente y

cómoda.

Es una base de datos relacional. Una base de datos relacional es un conjunto de datos que

están almacenados en tablas entre las cuales se establecen unas relaciones para manejar los

datos de una forma eficiente y segura. Para usar y gestionar una base de datos relacional se

usa el lenguaje estándar de programación SQL.

Es Open Source. El código fuente de MySQL se puede descargar y está accesible a

cualquiera, por otra parte, usa la licencia GPL para aplicaciones no comerciales.

Es una base de datos muy rápida, segura y fácil de usar. Gracias a la colaboración de muchos

usuarios, la base de datos se ha ido mejorando optimizándose en velocidad. Por eso es una de

las bases de datos más usadas en Internet.

Existe una gran cantidad de software que la usa.

14 http:// www.webestilo.com/mysql/usar-base-datos.phtml

Page 24: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

WINDOWS SQL SERVER 200015

Es un sistema de administración de bases de datos relacionales cliente/servidor de alto

rendimiento.

Se ha diseñado para admitir un elevado volumen de procesamiento de transacciones (como las de

la entrada de pedidos en línea, inventario, contabilidad o facturación), además de aplicaciones de

almacén de datos y de ayuda en la toma de decisiones. Es un sistema operativo completo,

integrado y más confiable, hace más por menos, al reducir los costos e incrementar la efectividad

de las operaciones.

Windows SQL Server 2000 es una plataforma poderosa para infraestructuras de trabajadores

profesionales (archivo/impresión y colaboración) infraestructura de informática

(almacenamiento, administración, seguridad y redes) y aplicaciones (Microsoft. Net Framework e

Internet).

Las ventajas que se obtiene al utilizar esta plataforma son las siguientes:

• Operar su infraestructura de sistemas más eficientemente

• Construir, implementar y operar aplicaciones en menos tiempo

• Crear una estructura de servidor robusta que ayude a mejorar la productividad de los

trabajadores de la información y reducir los costos de soporte.

1.7 SISTEMA OPERATIVO

LINUX

Es un sistema operativo, compatible Unix. Dos características muy peculiares lo diferencian del

resto de los sistemas que podemos encontrar en el mercado, la primera, es que es libre, esto

significa que no tenemos que pagar ningún tipo de licencia a ninguna casa desarrolladora de

software por el uso del mismo, la segunda, es que el sistema viene acompañado del código fuente.

El sistema lo forman el núcleo del sistema (kernel) mas un gran numero de programas / librerías

que hacen posible su utilización.

15 Manual de Microsoft Corporation

Page 25: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

LINUX se distribuye bajo la GNU Public License: Ingles , por lo tanto, el código fuente tiene que

estar siempre accesible.

El sistema ha sido diseñado y programado por multitud de programadores alrededor del mundo.

El núcleo del sistema sigue en continuo desarrollo bajo la coordinación de Linus Torvalds, la

persona de la que partió la idea de este proyecto, a principios de la década de los noventa.

Día a día, más y más programas / aplicaciones están disponibles para este sistema, y la calidad de

los mismos aumenta de versión a versión. La gran mayoría de los mismos vienen acompañados

del código fuente y se distribuyen gratuitamente bajo los términos de licencia de la GNU Public

License.

En los últimos tiempos, ciertas casas de software comercial han empezado a distribuir sus

productos para Linux y la presencia del mismo en empresas aumenta rápidamente por la

excelente relación calidad-precio que se consigue con Linux.

Las plataformas en las que en un principio se puede utilizar Linux son 386-, 486-. Pentium,

Pentium Pro, Pentium II/III/IV, Amiga y Atari, también existen versiones para su utilización en

otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.

Historia

LINUX hace su aparición a principios de la década de los noventa, era el año 1991 y por aquel

entonces un estudiante de informática de la Universidad de Helsinki, llamado Linus Torvalds

empezó, -como una afición y sin poderse imaginar a lo que llegaría este proyecto, a programar las

primeras líneas de código de este sistema operativo llamado LINUX.

Linux

Este comienzo estuvo inspirado en MINIX, un pequeño sistema Unix desarrollado por Andy

Tanenbaum. Las primeras discusiones sobre Linux fueron en el grupo de noticias comp.os.minix,

en estas discusiones se hablaba sobre todo del desarrollo de un pequeño sistema Unix para

usuarios de Minix que querían mas.

Linux nunca anunció la versión 0.01 de Linux (agosto 1991), esta versión no era ni siquiera

ejecutable, solamente incluía los principios del núcleo del sistema, estaba escrita en lenguaje

ensamblador y asumía que uno tenia acceso a un sistema Minix para su compilación.

Page 26: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

El 5 de octubre de 1991, Linus anuncio la primera versión "Oficial" de Linux, -versión 0.02. Con

esta versión Linux pudo ejecutar Bash (GNU Bourne Again Shell) y gcc (El compilador GNU de

C) pero no mucho mas funcionaba. En este estado de desarrollo ni se pensaba en los términos

soporte, documentación, distribución.

Después de la versión 0.03, Linux saltó en la numeración hasta la 0.10, más y más programadores

a lo largo y ancho de Internet empezaron a trabajar en el proyecto y después de sucesivas

revisiones, Linux incrementó el número de versión hasta la 0.95 (Marzo 1992). Más de un año

después (diciembre 1993) el núcleo del sistema estaba en la versión 0.99 y la versión 1.0 no llegó

hasta el 14 de marzo de 1994.

La serie actual del núcleo es la 2.4.x y sigue avanzando día a día con la meta de perfeccionar y

mejorar el sistema.

Características:

• Multitarea: La palabra multitarea describe la habilidad de ejecutar varios programas al mismo

tiempo. LINUX utiliza la llamada multitarea preventiva, la cual asegura que todos los

programas que se están utilizando en un momento dado serán ejecutados, siendo el sistema

operativo el encargado de ceder tiempo de microprocesador a cada programa.

• Multiusuario: Muchos usuarios usando la misma maquina al mismo tiempo.

• Multiplataforma: Las plataformas en las que en un principio se puede utilizar Linux son 386-,

486-. Pentium, Pentium Pro, Pentium II, Amiga y Atari, también existen versiones para su

utilización en otras plataformas, como Alpha, ARM, MIPS, PowerPC y SPARC.

• Multiprocesador: Soporte para sistemas con mas de un procesador esta disponible para Intel y

SPARC.

• Funciona en modo protegido 386.

Page 27: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

• Protección de la memoria entre procesos, de manera que uno de ellos no pueda colgar el

sistema.

• Carga de ejecutables por demanda: Linux sólo lee del disco aquellas partes de un programa

que están siendo usadas actualmente.

• Política de copia en escritura para la compartición de páginas entre ejecutables: esto significa

que varios procesos pueden usar la misma zona de memoria para ejecutarse. Cuando alguno

intenta escribir en esa memoria, la página (4Kb de memoria) se copia a otro lugar. Esta

política de copia en escritura tiene dos beneficios: aumenta la velocidad y reduce el uso de

memoria.

• Memoria virtual usando paginación (sin intercambio de procesos completos) a disco: A una

partición o un archivo en el sistema de archivos, o ambos, con la posibilidad de añadir más

áreas de intercambio sobre la marcha Un total de 16 zonas de intercambio de 128Mb de

tamaño máximo pueden ser usadas en un momento dado con un límite teórico de 2Gb para

intercambio. Este límite se puede aumentar fácilmente con el cambio de unas cuantas líneas en

el código fuente.

• La memoria se gestiona como un recurso unificado para los programas de usuario y para el

caché de disco, de tal forma que toda la memoria libre puede ser usada para caché y ésta puede

a su vez ser reducida cuando se ejecuten grandes programas.

• Librerías compartidas de carga dinámica (DLL's) y librerías estáticas.

• Se realizan volcados de estado (core dumps) para posibilitar los análisis post-mortem,

permitiendo el uso de depuradores sobre los programas no sólo en ejecución sino también tras

abortar éstos por cualquier motivo.

• Compatible con POSIX, System V y BSD a nivel fuente.

Page 28: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

• Emulación de iBCS2, casi completamente compatible con SCO, SVR3 y SVR4 a nivel

binario.

• Todo el código fuente está disponible, incluyendo el núcleo completo y todos los drivers, las

herramientas de desarrollo y todos los programas de usuario; además todo ello se puede

distribuir libremente. Hay algunos programas comerciales que están siendo ofrecidos para

Linux actualmente sin código fuente, pero todo lo que ha sido gratuito sigue siendo gratuito.

• Control de tareas POSIX.

• Pseudo-terminales (pty's).

• Emulación de 387 en el núcleo, de tal forma que los programas no tengan que hacer su propia

emulación matemática. Cualquier máquina que ejecute Linux parecerá dotada de coprocesador

matemático. Por supuesto, si el ordenador ya tiene una FPU (unidad de coma flotante), esta

será usada en lugar de la emulación, pudiendo incluso compilar tu propio kernel sin la

emulación matemática y conseguir un pequeño ahorro de memoria.

• Soporte para muchos teclados nacionales o adaptados y es bastante fácil añadir nuevos

dinámicamente.

• Consolas virtuales múltiples: varias sesiones de login a través de la consola entre las que se

puede cambiar con las combinaciones adecuadas de teclas (totalmente independiente del

hardware de video). Se crean dinámicamente y puedes tener hasta 64.

• Soporte para varios sistemas de archivo comunes, incluyendo minix-1, Xenix y todos los

sistemas de archivo típicos de System V, y tiene un avanzado sistema de archivos propio con

una capacidad de hasta 4 Tb y nombres de archivos de hasta 255 caracteres de longitud.

• Acceso transparente a particiones MS-DOS (o a particiones OS/2 FAT) mediante un sistema

de archivos especial: no es necesario ningún comando especial para usar la partición MS-

DOS, esta parece un sistema de archivos normal de Unix (excepto por algunas restricciones en

Page 29: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

los nombres de archivo, permisos, y esas cosas). Las particiones comprimidas de MS-DOS 6

no son accesibles en este momento, y no se espera que lo sean en el futuro. El soporte para

VFAT, FAT32 (WNT, Windows 95/98) se encuentra soportado desde la versión 2.0 del

núcleo y el NTFS de WNT desde la versión 2.2 (Este ultimo solo en modo lectura).

• Un sistema de archivos especial llamado UMSDOS que permite que Linux sea instalado en un

sistema de archivos DOS.

• Soporte en sólo lectura de HPFS-2 del OS/2 2.1

• Sistema de archivos de CD-ROM que lee todos los formatos estándar de CD-ROM.

• TCP/IP, incluyendo ftp, telnet, NFS, etc.

• Appletalk.

• Software cliente y servidor Netware.

• Lan Manager / Windows Native (SMB), software cliente y servidor.

• Diversos protocolos de red incluidos en el kernel: TCP, IPv4, IPv6, AX.25, X.25, IPX, DDP,

Netrom, etc.

ORACLE

Es un manejador de base de datos relacional que hace uso de los recursos del sistema informático

en todas las arquitecturas de hardware, para garantizar su aprovechamiento al máximo en

ambientes de grandes volúmenes de información.

Es el manejador de base de datos relacional (RDBMS) mas usado en el mundo. Oracle corre en

computadoras personales (PC), mainframes y computadoras con procesamiento paralelo masivo.

Corre automáticamente en más de 80 arquitecturas de hardware y software distintos, sin cambiar

Page 30: CAPITULO I.- MARCO TEORICO 1. DEFINICIONES 1.1 NORMA ISO ...ri.ufg.edu.sv/jspui/bitstream/11592/6773/2/006-R696d-Capitulo I.pdf · Un prototipo es una versión preliminar de un sistema

una sola línea de código; y se debe a que más de un 80% de los códigos internos de Oracle son

iguales a los establecidos en todas las plataformas de sistemas operativos.

Características:

• Alta disponibilidad y capacidad de gestión contable e índices divididos en particiones.

• Mayor rendimiento y mejor gestión de aplicaciones de data Warehouse.

• Procesamiento de transacciones on-line a un nivel comparable al ofrecido por una mainframe.

• Administración de la seguridad

HERRAMIENTAS DE APOYO

En el proceso de asesoría, las herramientas de apoyo constituyen un factor clave dentro del

proceso de inscripción de asignaturas en todas las facultades. Estas asesorías favorecen en parte a

los estudiantes, pues no se tienen permanentes. Si existieran, esto favorecería al alumnado pues

habría una comunicación más directa que sería efectiva para el estudiante.