El Ábaco

El Ábaco:

Los dispositivos para ayudarnos a contar y calcular aparecieron a medida que se desarrollaban los sistemas numéricos en distintas partes del mundo. Alrededor del año 3,000 a.c., mercaderes y traficantes en el Medio Oriente y a lo largo de la ruta de tráfico del mediterráneo comenzaron a utilizar el ábaco, este simple marco de madera con bolas ensartadas por alambres es aun hoy utilizado en muchas partes del mundo para realizar cálculos contables y comerciales.

Japanese style abacus with bicone beads 1/5 bead soroban from China 1/4 bead soroban by Tomoe


abacus (gif ©ejm) Abacus and Soroban soroban (gif ©ejm)

abacus (gif ©ejm)

abacus (transparent background)

how to use an abacus 

soroban (gif ©ejm)

soroban transparent background)

lee abacus (gif ©ejm)

lee abacus (transparent background)

Lee’s abacus demonstration

abacus (gif ©ejm)     soroban (gif ©ejm)     abacus (gif ©ejm)     soroban (gif ©ejm)     abacus (gif ©ejm)

attempts at making abacus and soroban icons (they don’t really work when they are tiny)

rod 0 - no dot (gif ©ejm)   1 rod 1 - no dot (gif ©ejm)   2 rod 2 - no dot (gif ©ejm)   3 rod 3 - no dot (gif ©ejm)   4 rod 4 - no dot (gif ©ejm)   5 rod 5 - no dot (gif ©ejm)   6 rod 6 - no dot (gif ©ejm)   7 rod 7 - no dot (gif ©ejm)   8 rod 8 - no dot (gif ©ejm)   9 rod 9 - no dot (gif ©ejm) 

rod 0 - dot (gif ©ejm)   1 rod 1 - dot (gif ©ejm)   2 rod 2 - dot (gif ©ejm)   3 rod 3 - dot (gif ©ejm)   4 rod 4 - dot (gif ©ejm)   5 rod 5 - dot (gif ©ejm)   6 rod 6 - dot (gif ©ejm)   7 rod 7 - dot (gif ©ejm)   8 rod 8 - dot (gif ©ejm)   9 rod 9 - dot (gif ©ejm) 

single rods for soroban instruction page (transparent background)

13 reel soroban (gif ©ejm) 

13 reel soroban for abacus instruction page (transparent background)

15 reel soroban (gif ©ejm) 

15 reel soroban for abacus instruction page (transparent background)

soroban (animated gif ©ejm)

soroban gif animation (white background) 



Dilson abacus

Dilson Abacus: This is the abacus that accompanies the Jesse Dilson book. It measures 5.5 inches by 3.5 inches, has 9 columns and is made of a soft wood (possibly white pine) and finished with a glossy transparent laquer. The workmanship is fairly good considering the cost and volume.

Lee abacus standing, oblique view

Lee Abacus:This is the Lee Kai-chen abacus, it measures 13 inches wide and 8 inches high. The design consists of 2 abaci stacked one on top of the other. The top abacus is a 1/4 abacus with 18 columns having small pale green beads on the left half (9 columns) and white beads on the right half (9 columns). The bottom abacus is a 2/5 abacus with 13 columns having larger black beads. Note that the top frame is slightly warped and that the abacus is standing vertically– not a natural position for use (it just photographs better this way).

Lee abacus top-left detail 

Lee Abacus, Detail 1: This is the top-left corner of the Lee abacus.
On the lower abacus, note the white plastic ribbon with red-dots that indicate decimal places. This ribbon slides left-right along the groove between the upper and lower decks via the «roller» (called the «Place Setting Vernier», by the inventor) on the outside of the frame between the two decks of the lower abacus. There is also a decimal place ribbon on the top abacus with green and white markers that slide on the transparent ribbon.

Lee abacus bottom-right detail

Lee Abacus, Detail 2: This is the bottom-left corner of the Lee abacus. Note the corner joint is a simple 45° with a metal re-inforcement nailed to the outside. The decimal place «roller» mounted on the outside of the frame is better visible from this angle.


Tomoe Soroban and box

Tomoe Soroban: The abacus is wrapped in a heavy plastic bag and comes in a box. It has 23 rows; being a Japanese soroban, it is a 1/4 abacus (a single bead in the upper deck and four in the lower deck). It is about 14 inches long and about 2 inches high. This abacus was a gift from the Tomoe Soroban Company.


Tomoe Closeup

Tomoe Soroban Detail: A close-up view of the Tomoe soroban. Every sixth column is marked with a white dot on both the upper and lower frame members. A black dot appears every third column on the beam (the horizontal piece that separates the upper and lower decks).


Three Abaci

Three Abaci: Compare the relative sizes of the Dilson abacus, left, the Tomoe soroban, right-foreground, and the Lee abacus, background.



El rol del analista de sistemas

OBJETIVOS DE APRENDIZAJE

Una vez que haya dominado el material de este capitulo, podrá:

  • 1. Recordar los tipos básicos de sistemas de cómputo con los que debe trabajar un analista de sistemas.
  • 2. Entender la manera en que las nuevas tecnologías influyen en la dinámica de unsistema.
  • 3. Reconocer los diversos roles de un analista de sistemas.
  • 4. Conocer los pasos del SDLC y saber como aplicarlos a un sistema real.
  • 5. Comprender la función de las herramientas CASE y como ayudan a un analista de sistemas.
  • 6. Explorar otras metodologías como el diseño de sistemas orientados a objetos y la elaboración de prototipos.

Desde hace mucho tiempo, las organizaciones han reconocido la importancia de administrarrecursos claro como la mano de obra y las materias primas. En la actualidad, la información se ha ganado el legítimo derecho de ser considerada como un recurso clave. Los encargados de latoma de decisiones por fin han comprendido que la información no es tan solo un productoderivado de la conducción de los negocios, sino un impulsor de los mismos y que puede constituir un factor crucial en el éxito o fracaso de una empresa.

Para maximizar la utilidad de la información, una empresa debe administrarla de manera eficiente, como lo hace con los demás recursos. Los administradores deben comprender que loscostos tienen una estrecha relación con la produccióndistribuciónseguridadalmacenamientoy recuperación de toda la información. A pesar de que la información está en todas partes, no es gratuita, y no se debe asumir que se podrá usar estratégicamente para aumentar la competitividad de una empresa.

La amplia disponibilidad de computadora en red, junto con el acceso a Internet y la World Wide Web, han propiciado una explosión de la información en la sociedad en general y en los negocios en particular. La administración de la información generada por computadora difiere en aspectos importantes del manejo de los datos producidos por medios manuales. Por lo general hay una mayor cantidad de información de computadora por manejar. Los costos de organizarla y darle mantenimiento se puede incrementar a niveles alarmantes, y con frecuencia los usuarios la consideran más precisa que la información obtenida por otros medios. En este capitulo se examinan los aspectos básicos de los diferentes tipos de sistemas de información, los diversos roles de los analistas de sistemas las fases del ciclo de vida del desarrollo de sistemas (SDLC, Systems Development Life Cycle) y se presentan las herramientas de Ingeniería de Software Asistida por Computadora (CASE, Competer-Aided Software Enginering).

TIPOS DE SISTEMAS

Los sistemas se desarrollan con diversos propósitos, según las necesidades de la empresa. Los sistemas de procesamiento de transacciones ( TPS,Transaction Prosesing Systems)funcionan al nivel operativo de una organización, los sistemas de automatización de la oficina ( OAS, Office Automation Systems) y los sistemas de trabajo del conocimiento (KWS, Knowledge Work Systems) apoyan el trabajo al nivel del conocimiento. Lossistemas de información gerencial (MIS, Management Information Systems) y los sistemas de apoyo a la toma de decisiones (DSS, Decision Support Systems) se encuentran entre sistemas de alto nivel. Los sistemas expertos aplican el conocimiento de los encargados de la toma de decisiones para solucionar problemas estructurados específicos. Los sistemas de apoyo a ejecutivos (ESS, Executive Support Systems) se encuentran en el nivel estratégico de la administración. Los sistemas de apoyo a la tomas de decisiones en grupo (GDSS, Competer-Supported Collaborative Work Systems),descritos de manera mas general, auxilian la toma de decisiones semiestructuradas o no estructuradas a nivel de grupo.

En la figura 1.1 se muestra la diversidad de sistemas de información que podrían desarrollar los analistas. Observe que en la figura estos sistemas se representan de abajo hacia arriba, indicando que los TPS apoyan el nivel operativo, o más bajo, de la organización, mientras que los ESS, GDSS y CSCWS soportan el nivel estratégico, o mas alto, apoyando la toma de decisiones semiestructuradas o las no estructuradas. En este libro se emplean de manera indistinta los términos sistemas de información gerencial, sistema de información (IS, Information Systems), sistemas de información computarizados y sistemas información de negocios computarizados, para denotar sistemas de información computarizados que apoyan el rango de actividades de negocios más amplio mediante la información que producen.

SISTEMA DE PROCESAMIENTO DE TRANSACCIONES

Los sistemas de procesamiento de transacciones (TPS, Transaction Processig Systems) sonsistema de información computarizada creado para procesar grandes cantidades de datosrelacionadas con transacciones rutinarias de negocios, como las nominas y los inventarios. Un TPS elimina el fastidio que representa la realización de transacciones operativas necesarias y reduce el tiempo que una vez fue requerido para llevarlas a cabo de manera manual, aunque los usuarios aun tienen que capturar datos en los sistemas com
putarizados.

Los sistemas de procesamiento de transacciones expanden los límites de la organización dado que le permiten interactuar con externos. Es importante para las operaciones cotidianas de un negocio, que estos sistemas funcionen si ningún tipo de interrupción, puesto que los administradores recurren a los datos producidos por los TPS con el propósito de obtenerinformación actualizada sobre el funcionamiento de sus empresas.

SISTEMAS DE AUTOMATIZACION DE LA OFICINA Y SISTEMA DE TRABAJO DEL CONOCIMIENTO

Existen dos clases de sistemas en el nivel del conocimientote una organización. Los sistemas de automatización de la oficina (OAS, Office Automation Systems) apoya a los trabaja-dores de datos, quienes por lo general no generan conocimientos nuevos, sino mas bien analizan la información con el propósito de transformar los datos o manipularlos de alguna manera antes de compartirlos o, en su caso, distribuirlos formalmente con resto de la organización y en ocasiones más allá de ésta. Entre los componentes mas comunes de un OAS están el procesamiento de texto, las hojas de cálculo, la autoedición, la calendarización electrónica y las comunicaciones mediante correo de voz, correo electrónico y videoconferencia.

Los sistemas de trabajo del conocimiento (KWS, Knowledge Work Systems) sirven de apoyo a los trabajadores profesionales, como los científicos, ingenieros y médicos, en sus esfuerzos, de creación de nuevo conocimiento y dan a éstos la posibilidad de compartirlo con sus organizaciones o con lasociedad.

SISTEMA DE INFORMACION GERENCIAL

Los sistemas de información general (MIS, Management Information Systems) no reemplazan a los sistemas de procesamientote transacciones, mas bien, incluyen el procesamiento de transacciones. Los MIS son sistemas de información computarizados cuyo propósitos es contribuir a la correctainteracción entre los usuarios y las computadoras. Debido a que re-quieren que los usuarios, el software (los programas de cómputo) y el hardware(las computadoras, impresoras, etc.), funcionen de manera coordinada, los sistema de información gerencial dan apoyo a un espectro de tareas organizacionales mucho más amplio que los sistemas de procesamiento de transacciones, como el análisis y la toma de decisiones.

Para acceder a la información, los usuarios de un sistema de información general comparten una base de datos común. Esta almacena datos y modelosque ayudan al usuario a interpretar y aplicar los datos. Los sistemas de información gerencial producen información que se emplea en la toma de decisiones. Un sistema de información gerencial también puede contribuir a unificar algunas de las funciones de individual computarizadas de una empresa, a pesar de que no existe como una estructura individual en ninguna parte de esta.

SISTEMAS DE APOYO A LA TOMA DE DECESIONES

Los sistemas de apoyo a la de decisiones (DSS, Decisión Support Systems) constituyen una clase de alto nivel de sistemas de información computarizada. Los DSS coinciden con los sistemas de información gerencial en que ambos dependen de una base de datos para abastecerse de datos. Sin embargo, difieren en que el DSS pone énfasis en el apoyo a la toma de decisiones en todas sus fases, aunque la decisión definitiva esresponsabilidad exclusiva del encargado de tomarla. Los sistemas de apoyo a la toma de decisiones se ajustan más al gusto de la personas o grupos que lo utilizan que a los sistemas de información gerencial tradicionales. En ocasiones se hace referencia a ellos como sistema que se enfocan en lainteligencia de negocios.

SISTEMAS EXPERTOS E INTELIGENCIA ARTIFICIAL

La inteligencia artificial (AI, Artificial Inteligente) se puede considerar como el campo general para los sistemas expertosLa motivación provincial de la AI ha sido desarrollar máquina que tenga un comportamiento inteligente. Dos de las líneas de investigación de la AI son la comprensión del leguaje natural y el análisis de la capacidad para razonar un problema hasta su conclusión lógica. Los sistemas que le plantean los usuarios de negocios (y de otras áreas).

Los sistemas expertos conforman una clase muy especial de sistema de información que se ha puesto a disposición de usuarios de negocios gracias a la amplia disponibilidad de hardware y software como computadoras personales (PCS) y generadores de sistemas expertos. Un sistema experto (también conocido como sistema basado en el conocimiento) captura y utiliza el conocimientote un experto para solucionar un problema específico en una organización. Observe que a diferencia de un DSS, que sede al responsable de toma de la decisión definitiva, un sistema experto selecciona la mejor solución para un problema o una clase especifica de problemas.

Los componentes básicos de un sistema experto son la base de conocimientos, un motor de inferencia que conecta al usuario con el sistema mediante el procesamiento de consultas realizadas con lenguajes como SQL (Structured Quero Language, lenguaje de consultas estructurado) y la interfaz de usuario. Profesionales conocidos como ingenieros de conocimiento capturan la pericia de los expertos y lo implementan. En muy factible que laconstrucción e implementación de sistemas expertos se constituya en el futuro de muchos analistas de sistemas.

SISTEMAS DE APOYO A LA TOMA DE DECIONES EN GRUPO Y SISTEMAS

DE TRABAJO COLABORATIVO APOYADOS POR COMPUTADORA

Cuando los grupos requieren trabajar en conjunto para tomar decisiones semiestructuradas

o no estructuradas, un sistema de apoyo a la toma de decisiones en grupo (GDSS, Group Decisión Support Systems ) podría ser la solución. Este tipo de sistemas, que se utilizan en salones especiales equipados con diversas configuraciones, faculta a los miembros del grupo a interactuar con apoyo electrónico –casi siempre software especializado- y la asistencia de un facilitador especial. Los sistemas de apoyo ala toma de decisiones en grupo tienen el propósito de unir a un grupo en la búsqueda de la solución a un problema con la ayuda de diversas herramientas como los sondeos, los cuestionarios, la lluvia de ideas y la creación de escenarios. El software GDSS puede diseñarse con el fin de minimizar las conductas negativas de grupos comunes, como la falta de participación originada por el miedo a la represalias si se expresa un punto vista impopular o contrario, el controlpor parte de miembros elocuentes del grupo y la toma de decisiones conformista. En ocasiones se hace referencia a los GDSS con el término más general sistemas de trabajo colaborativo apoyados por computadora (CSCWS, Competer-Supported Collaborative Work Systems), que pueden contener el respaldo de un tipo de software denominado groupware para la colaboración en equipo a través de computadoras conectadas en red.

SISTEMAS DE APOYO A EJECUTIVOS

Cuando los ejecutivos recurren ala computadora, por lo general lo hacen de métodos que los auxilien en la toma de decisiones de nivel estratégicos. Los sistemas de apoyo a ejecutivos (ESS, Executive Support Sistems) ayudan a estos últimos a organizar sus actividades relacionadas con el entorno externo mediante herramientas graficas y de comunicaciones, que por lo general se encuentra en sala de juntas o en oficinas corporativas personales. A pesar de que lo ESS dependen de la afirmación producida por lo TPS y los MIS, ayudan a los usuarios a resolver problemas de toma de decisiones no estructuradas, que no tienen una aplicación especifica, mediante la creación de un entorno que contribuye a pensar en problemas estratégicos de una manera bien informada. Los ESS amplían y apoyan las capacidades de los ejecutivos al darles la posibilidad de comprender sus entornos.

INTEGRACION DE LAS TECNOLOGIAS DE SISTEMAS

Como se aparecía en la figura 1.2, a medida que se adopten y difundan las nuevas tecnologías, parte del trabajo de los analistas de sistemas se dedicará a la integración de los sistemas tradicionales con los nuevos. En esta sección se describen algunas de las nuevas tecnologías de información que los analistas de sistemas utilizaran para empresas que buscan integrar sus aplicaciones de comercio electrónico con sus negocios tradicionales, o bien, iniciar negocios electrónicos completamente nuevos.


APLICACIONES DE COMERCIO ELECTRONICO Y SISTEMAS WEB

Muchos de los sistemas que se describen en este libro pueden dotarse de una mayor funcionalidad si se migran a la Word Wide Web o si desde su concepción se implementar como tecnologías basadas en la Web. En una encuesta reciente la mitad de todas las empresas pequeñas y medianas respondieron que Internet fue su estrategia preferida para buscar el crecimiento de sus negocios. Esta respuesta duplico a la de aquellos que manifestaron su inclinación por realizar alianzas estratégicas como medio para crecer. Hay muchos beneficios derivados de la implementación de una aplicación en la Web:

1. Una creciente difusión de la disponibilidad de un servicioproductoindustriapersona o

grupo.

2. La posibilidad de que los usuarios accedan las 24 horas.

3. La estandarización del diseño de la interfaz.

4. La creación de un sistema que se puede extender a nivel mundial y llegar a gente en lugares

remotos sin preocuparse por la zona horaria en que se encuentren.

SISTEMAS DE PLANEACION DE RECURSOS EMPRESARIALES

Muchas organizaciones consideran los beneficios potenciales que se derivan de la integración de los diversos sistemas de información que existen en los diferentes niveles administrativos, con funciones dispares. Esta integración es precisamente el propósito de los sistemas de planeación de recursos empresariales (ERP, Enterprise Resource Planning). El establecimiento de los sistemas ERP implica un enorme compromiso y cambio por parte de la organización. Es común que los analistas de sistemas desempeñan el papel de asesores en los proyectos de ERP que utilizan software patentado. Entre el software mas conocido de ERP se encuentran SAP, Peoplesoft y paquetes de Oracle y J.D. Edwards. Algunos de estos paquetes untan diseñados para migrar a las empresas a la Web. Por lo general, los analistas y algunos usuarios requieren capacitación, apoyo técnico y mantenimiento por parte del fabricante para diseñar, instalar, dar mantenimiento, actualizar y utilizar de manera apropiada un paquete de ERP en particular.

SISTEMAS PARA DISPOSITIVOS INALAMBRICOS Y PORTATILES

Los analistas tienen la exigencia de diseñar una gran cantidad de nuevos sistemas y aplicaciones, muchos de ellos para dispositivos inalámbricos y computadoras portátiles como la popular serie de computadoras Palm y otros asistentes personales digitales (PDAs, Personal Digital Assitants).Además los analistas podrían llegar a diseñar redes de comunicaciones estándar o inalámbricas que integren voz, video y correo electrónicos en intranets para una organización o extranets para la industria. El comercio electrónico inalámbrico se conoce como comercio móvil o m-commerce.

Las redes inalámbricas del área local (WLANs, Wireless Local Área Network), las redes de fidelidad inalámbrica, conocida como WF-FI, y las redes inalámbricas personales que agrupan a muchos tipos de dispositivos dentro del estándar conocido como el Bluetooth, constituyen sistemas cuyo diseño podría solicitarle a usted en su función de analista. (Para ahondar en las redes inalámbricas, véase el capitulo 17.)

En un contesto más avanzado, al analista podría solicitárseles el diseño de agentes inteligentes, software que puede ayudar a los usuarios a ejecutar tareas médiate el aprendizaje de las preferencias del usuario a través del tiempo y, continuación, realizando alguna acción sobre esta. Por ejemplo, en la tecnología de recepción automática, un agente inteligente podría buscar temas de interés para el usuario en la Web, sin necesidad de que esté lo solicite, después de observar durante algún tiempo los patrones de comportamiento del usuario en relación con la información.

Un ejemplo de este tipo software es el que desarrolla Microsoft con base en la estadista bayesiana (donde se utilizan estadísticas para inferir probabilidades) y la teoría de toma de decisiones, en conjunto con el monitoreo del comportamiento de un usuario que maneja información entrante (como un mensaje de su casa, una llamada telefónica de un cliente, una llamada de celular o el análisis actualizado de su cartera de acciones). El resultado es software de manejo de notificaciones que da un valor monetario a cada pieza de información proveniente de diversas fuentes y también determina la mejor manera de desplegarla. Por ejemplo, con base en la teoría de la toma de dediciones, la probabilidad, la estadística y el propio comportamiento del usuario, a una llamada telefónica proveniente e la casa del usuario se le podría dar el valor de un peso y se desplegaría en la pantalla de la computadora, en tanto que a una llamada cuyo propósito es la venta de algún producto o servicio se le podrid asignar el valor de 20 centavos (es decir, un valor inferior) y podría desplegarse como nota en radiolocalizador.

SOFTWARE DE CODIGO ABIERTO

El software de código abierto es una alternativa al desarrollo de software tradicional cuyo código patentado se oculta a los usuarios. Representa unmodelo de desarrollo y filosofía de distribución de software gratuito y publicación de su código (las instrucciones para la computadora) se puede estudiar y compartir, y muchos usuarios y programadores tienen la posibilidad de modificarlo. Las convenciones que rigen a esta comunidad incluyen que todas las modificaciones que se hagan a un programa deben compartirse con todos aquellos que participan en el proyecto. Entre los ejemplos se encuentran el sistema operativo Linux y el software Apache empleado en servidores que alojan sitios Web.

Si el software es de distribución gratuita, ¿Cómo ganan dinero las compañías? Para ello, tienen que proporcionar un servidor un servicio, personalizar programas para los usuarios y darle seguimiento con un soporte continuo. En un mundo de software de código abierto, el desarrollo de sistemas continuaría su evolución hacia una industria de servicios. Se apartaría del modelo de manufacturación en el que los productos se licencian y empacan en cajas vistosas y se envían hasta nuestras puertas, al igual que cualquier otro producto manufacturado.

El desarrollo de código abierto es útil para los dispositivos portátiles y el equipo de comunicaciones. Su uso podría estimular el progreso en la creación de estándares para que los dispositivos se comunicaran con más facilidad. El uso generalizado del software de código abierto podría solucionar problemas que pudiera causar la escasez de programadores y algunos problemas complejos podrían resolverse mediante la colaboración de muchos especialistas.

LA NECESIDAD DEL ANALISIS Y DISEÑO DE SISTEMAS

El análisis y diseño de sistema, tal como lo realizan los analistas de sistemas, tiene el propósito de analizar sistemáticamente la entrada o el flujo de datos, procesar o transformar datos, el almacenamiento de datos y la salida de información en el contexto de una empresa en particular. Mas aun, elanálisis de sistemas se emplea para analizar, diseñar e implementar mejoras en el funcionamiento de las empresas, a través de sistemas de información computarizados.

Y ésta es la razón por la cual necesitamos una computadora

La instalación de un sistema sin una plantación adecuada conduce a una gran decepción y con frecuencia provoca que el sistema deje de utilizarse. El análisis y diseño de sistem
a da forma al análisis y diseños de sistema de información, un esfuerzo muy valioso que de otra manera podría haberse realizado fortuita. Se le puede considerar como una serie de proceso sistemáticamente emprendido con el propósito de mejorar un negocio con ayuda de sistema de información computarizado. Gran parte del análisis y diseño de sistema implica trabajar con usuarios actuales y ocasionales de lo sistema de información.

Es impórtate que los usuarios intervengan de alguna manera durante el proyecto para completar con éxito los sistemas de información computarizados. Los analistas de sistemas, cuyo roles en la organización se describen a continuación, constituyen el otro componente esencial en el desarrollo de sistemas de información útiles.

ROLES DEL ANALISTA DE SISTEMAS

El analista de sistemas evalúa de manera sistemática el funcionamiento de un negocio mediante el examen de la entrada y el procesamiento de datos y su consiguiente producción de información, con el propósito de mejorar los procesos de una organización. Muchas mejoras incluyen un mejor apoyo a las funciones de negocios a través del uso de sistemas de información computarizados. Esta definición pone énfasis en un enfoque sistemático y metódico para analizar- y en consecuencia mejorar- lo que sucede en el contexto específico creado por un negocio.

Nuestra definición de analista de sistema es amplia. El analista debe tener la capacidad de trabajar con todo tipo de gente y contar con suficiente experiencia en computadora. El analista desempeña diversos roles, en ocasiones varios de ellos al mismo tiempo. Los tres roles principales del analista de sistemas son el de consultor, experto en soporte técnico y agente de cambio.

OPORTUNIDAD DE CONSULTORIA 1.1

PARA COMERCIO ELECTRONICO CONTRATACION SANA: SE SOLICITA AYUDA

«Estarán felices de enterarse que logramos convencer a la administración de que debemos contratar un nuevo analista de sistemas que se especialice en el desarrollo de comercio electrónico», comento AL Falfa, analista de sistemas de la cadena internacional de tiendas Marathon Vitamin Shops. Actualmente se reúne con su numeroso equipo de analista de sistemas para determinar las cualidades con que debe contar el nuevo miembro de su equipo. Al continua: «De hecho, mostraron tanto interés por la posibilidad de que nuestro equipo colabore en la estrategia de comercio electrónico de Marathon que me indicaron que comencemos de inmediato nuestra búsqueda por el especialista y no esperemos hasta el otoño».

Ginger Rute, otra analista, muestra su aprobación: «Cuando la economía es saludable, la demanda de desarrolladores de sitios Web rebasa con mucho a la oferta. Debemos actuar con rapidez. Creo que el nuevo analista debe tener conocimientos en herramientas CASEVisual Basic y Java Script, por mencionar algunos».

Al se sorprende al escuchar la larga de lenguajes que enumera Ginger y replica: «Tienes razón, esa es una de nuestras opciones. Sin embargo, también me gustaría que el nuevo mimbro tuviera algo de experiencia en negocios. La mayoría de los egresados de las escuelas tienen sólidos conocimientos deprogramación, pero también deberían saber sobre contabilidad inventarios y distribución de bienes y servicios».

La mas nueva en el grupo de analistas de sistemas, Vita Minn, se incorpora al debate: «Una de las razones por las cuales me incline a trabajar con todos ustedes fue porque considero que nos llevamos bastante bien unos con otros. Como tenia otras opciones, tuve cuidado de ver como era el ambienteaquí. Por lo que he visto, conformamos un grupo amistoso. Así que asegurémonos de contratar a alguien que cuente con una personalidad adecuada que se acople al equipo».

Al esta de acuerdo y continua: «Vita tiene razón. El nuevo analista debe ser alguien que se comunique bien con nosotros, lo mismo que con los clientesde negocios.

Siempre nos estamos comunicando de alguna manera, ya sea mediante presentaciones formales, dibujando diagramas o entrevistando a los usuarios. Si entienden por que se toman las decisiones, su trabajo también se facilitara. Asimismo, Maratón tiene interés en integrar el comercio electrónico en toda la empresa. Requerimos alguien que comprenda al menos la importancia estratégica de la Web. El diseño de paginas es solo una pequeña parte de esto».

Ginger interviene nuevamente con una buena dosis de sentido practico: «Deja eso en manos de la administración. Sigo creyendo que la nueva persona debe ser un buen programador». Luego reflexiona en voz alta: «¿Me pregunto que tan importante será saber UML para el puesto?»

Después de escuchar con paciencia los argumentos de todos, uno de los analistas veteranos, Cal Siem, interviene, bromeando: «¡Mejor beberíamos ver si Superman esta disponible!»

Mientras todos ríen, AL vislumbra la oportunidad de lograr el consenso y dice: «Hemos tenido la oportunidad de escuchar diferentes cualidades. Tomemos un momento y cada quien haga una lista de las cualidades que considere esenciales en la persona que se encargara del desarrollo del comercio electrónico. Las expondremos y continuaremos el debate hasta que definamos a la persona con suficiente detalle y podamos elaborar un perfil para que el departamento de recursos humanos le de seguimiento».

¿Qué cualidades debe buscar el equipo de analistas de sistemas al contratar l nuevo miembro del equipo de desarrollo de comercio electrónico? ¿Es más importante el conocimiento de lenguajes específicos o contar con habilidad para aprender con rapidez lenguajes y paquetes de software? ¿Qué tan importante es que la persona que se contrate tenga algunos conocimientos básicos de negocios? ¿Deberían todos los miembros del equipo contar con habilidades y conocimientos idénticos? ¿Qué rasgos personales y carácter debe tener un analista de sistemas que trabaje en el desarrollo de comercio electrónico?

EL ROL DE CONSULTOR DEL ANALISTA DE SISTEMAS

Con frecuencia, el analista de sistemas desempeña el rol de consultor para un negocio y, por tanto, podría ser contratado de manera específica para enfrentar los problemas de sistemas de información de una empresa. Esta contratación se puede traducir en una ventaja porque los consultores externos tienen una perspectiva fresca de la cual carecen los demás miembros de una organización. También se puede traducir en una desventaja porque alguien externo nunca conocerá la verdadera cultura organizacional. En su función de consultor externo, usted dependerá en gran medida de los métodos sistemáticos que se explican en este libro para analizar y diseñar sistemas de información apropiados para una empresa en particular. Además, tendrá que apoyarse en los usuarios de los sistemas de información para entender la cultura organizacional desde la perspectiva que tienen ellos.

EL ROL DE EXPERTO EN SOPORTE TECNICO DEL ANALISTA DE SISTEMAS

Otro rol que tendrá que desempeñar es el de experto en soporte técnico dentro de la empresa en la cual labora de manera regular. En este rol el analista recurre a su experiencia profesional con el hardware y software de c
ómputo y al uso que se le da en el negocio. Con frecuencia, este trabajo no implica un proyecto completo de sistemas, sino más bien la realización de pequeñas modificaciones o la toma de decisiones que se circunscriben a un solo departamento.

Como experto de soporte técnico, usted no esta a cargo del proyecto; tan solo actúa como recurso para aquellos que si lo están. Si usted es un analista de sistemas contratado por una empresa de manufactura o servicios, gran parte de sus actividades podrían ajustarse a este rol.

EL ROL DE AGENTE DE CAMBIO DEL ANALISTA DE SISTEMAS

El rol más completo y de mayor responsabilidad que asume el analista de sistemas es el de agente de cambio, ya sea interno o externo para la empresa. Como analista, usted es un ajen te de cambio si desempeña cualquiera de las actividades relacionadas con el ciclo de vida del desarrollo de sistemas (que se explicara en la siguiente sección) y está presente en la empresa durante un largo periodo (de dos semanas a mas de un año). Un agente de cambio se puede definir como alguien que sirve de catalizador para el cambio, desarrolla un plan para el cambio y coopera con los demás para facilitar el cambio.

Su presencia en el negocio inicia el cambio. Como analista de datos, usted debe estar consciente de este hacho y utilizarlo como punto de partida para su análisis. De ahí que tenga que interactuar con los usuarios y la administración (sino son un o solo y el mismo) desde el principio de su proyecto. Sin su colaboración usted no podría entender lo que ocurre en una organización y el cambio real nunca se daría.

Si el cambio (es decir, la mejora al negocio que se pueden concretar mediante los sistemas de información) parece factible después de efectuar el análisis, el siguiente paso es desarrollar un plan para el cambio de manera conjunta con quienes tienen la facultad de autorizarlo. Una vez que se haya alcanzado el consejo acerca de los cambios por realizar, usted tendrá que interactuar constantemente con quienes hayan a cambiar.

En su calidad de analista de sistema desempeñando la función de agente de cambio, debe promover un cambio que involucre el uso de los sistemas de información. También es parte de su tarea enseñar a los usuarios el proceso del cambio, ya que las modificaciones a un sistema de información no sólo afectan a éste sino que provocan cambios en el resto de la organización.

CUALIDADES DEL ANALISTA DE SISTEMAS

De la descripciones anteriores sobre los roles que desempeña el analista de sistemas, se deduce fácilmente que el analista exitoso debe contar con una amplia gama de cualidades. Hay una gran diversidad de personas trabajando como analistas de sistemas, por lo que cualquier descripción que intente ser general está destinada a quedarse corta en algún sentido. No obstante, la mayoría de los analistas de sistemas tienen algunas cualidades comunes

En primer lugar, el analista es un solucionador de problemas. Es una persona que aborda como un reto el análisis de problemas y que disfruta al diseñar soluciones factibles. Cuando es necesario, el analista debe contar con la capacidad de afrontar sistemáticamente cualquier situación mediante la correcta aplicación de herramientas, técnicas y su experiencia. El analista también debe ser un comunicador con capacidad para relacionarse con los demás durante extensos periodos. Necesita suficiente experiencia en computación para programar, entender las capacidades de las computaras, recabar los requisitos de información de los usuarios y comunicarlos a losa programadores. Asimismo, debe tener una ética personal y profesional firme que le ayude a moldear las relaciones con sus clientes.

El analista de sistemas debe ser una persona autodisciplinada y auto motivada, con la capacidad de administrar y coordinar los innumerables recursos de un proyecto, incluyendo a otras personas. La profesión de analista de sistemas es muy exigente; pero es una profesión en constante evolución que siempre trae nuevos reto
s.

EL CICLO DE VIDA DEL DESARROLLO DE SISTEMAS

A lo largo de este capitulo, nos hemos referido al enfoque sistemático que el analista toma en relación con el análisis y diseño de sistemas de información. Gran parte de este enfoque se incluye en el ciclo de vida del desarrollo de sistemas (SDLC, Systems Development Life Cycle). El SDLC es un enfoque por fases para el análisis y el diseño cuya premisa principal consiste en que los sistemas se desarrollan mejor utilizando un ciclo especifico de actividades del analista y el usuario.

Los analistas no se ponen de acuerdo en la cantidad de fases que incluye el ciclo de vida del desarrollo de sistemas, pero en general alaban su enfoque organizado. Aquí hemos dividido el ciclo en siete fases, como se aprecia en la figura 1.3. A pesar de que cada fase se explica por separado, nunca se realiza como un paso aislado. Más bien, es posible que varias actividades ocurran de manera simultánea, y algunas de ellas podrían repetirse. Es mas practico considerar que el SDLC se realiza por fases (con actividades en pleno apogeo que se traslapan con otras hasta terminarse por completo) y no en pasos aislados.

IDENTIFICACION DE PROBLEMAS, OPORTUNIDADES Y OBJETIVOS

En esta primera fase del ciclo de vida del desarrollo de sistemas, el analista se ocupa de identificar problemas, oportunidades y objetivos. Esta etapa escrítica para el éxito del resto del proyecto, pues a nadie le agrada desperdiciar tiempo trabajando en un problema que no era el que se debía resolver.

La primera fase requiere que el analista observe objetivamente lo que sucede en un negocio. A continuación, en conjunto con otros miembros de la organización, el analista determina con precisión cuales son los problemas. Con frecuencia los problemas son detectados por alguien más, y esta es la razón de la llamada inicial al analista. Las oportunidades son situaciones que el analista considera susceptibles de mejorar utilizando sistemas de información computarizados. El aprovechamiento de las oportunidades podría permitir a la empresa obtener una ventaja competitiva o establecer un estándar para la industria.

La identificación de objetivos también es una parte importante de la primera fase. En primer lugar, el analista debe averiguar lo que la empresa trata de conseguir. A continuación, podrá determinar si algunas funciones de las aplicaciones de los sistemas de información pueden contribuir a que el negocio alcance sus objetivos aplicándolas a problemas u oportunidades específicos.

Los usuarios, los analistas y los administradores de sistemas que coordinar el proyecto son los involucrados en la primera fase. Las actividades de esta fase consisten en entrevistar a los encargados de coordinar a los usuarios, sintetizar el conocimiento obtenido, estimar el alcance del proyecto y documentar los resultados. El resultado de esta fase es un informe de viabilidad que incluye una definición del problema y un resumen de los objetivos. A continuación, la administración debe decidir si se sigue adelante con el proyecto propuesto.

Si el grupo de usuarios no cuenta con fondos suficientes, si desea atacar problemas distintos, o si la solución a estos problemas no amerita un sistema de cómputo, se podría sugerir una solución diferente y el proyecto de sistemas se cancelaría.

DETERMINACION DE LOS REQUERIMIENTOS DE INFORMACION

La siguiente fase que enfrenta el analista es la determinación de los requerimientos de información de los usuarios. Entre las herramientas que se utilizan y son para determinar los requerimientos de información de un negocio se encuentran métodos interactivos como las entrevistas, los muestreos, la investigación de datos impresos y la aplicación de cuestionarios; métodos que no interfieren con el usuario como la observación del comportamiento de los encargados de tomar las decisiones y sus entornos de oficina, al igual que métodos de amplio alcance como la elaboración de prototipos

El desarrollo rápido de aplicaciones (RAD, Rapad Application Development) es un enfoque orientado a objetos para el desarrollo de sistemas que incluye un método de desarrollo (que abarca la generación de requerimientos de información) y herramientas de software. En este libro se aborda en el capitulo 6, en conjunto con la elaboración de prototipos, porque su enfoque filosófico es similar, aunque su método para crear un diseño con rapidez y obtener una pronta retroalimentación por parte de los usuarios es un poco diferente. (En el capitulo 18 se abunda en los enfoques orientados a objetos.)

En la fase de determinación de los requerimientos de información del SDLC, el analista se esfuerza por comprender la información que necesita los usuarios para llevar a cabo sus actividades. Como puede ver, varios de los métodos para determinar los requerimientos de información implican interactuar directamente con los usuarios. Esta fase es útil para que el analista confirme la idea que tiene de la organización y sus objetivos. En ocasiones sólo realizan las dos primeras fases del ciclo de vida del desarrollo de sistemas. Esta clase de estudio podría tener un propósito distinto y por lo general lo lleva a la práctica un especialista conocido como analista de información (IA, Información Analista).

Los implicados en esta fase son el analista y los usuarios, por lo general trabajadores y gerentes del área de operaciones. El analista de sistema necesita conocer los detalles de las funciones del sistema actual: el quien (la gente involucra), el qué (la actividad del negocio), el dónde (el entorno donde se desarrollan las actividades), el cuando (el momento oportuno y el cómo (la manera en que se realizan los procedimientos actuales) del negocio que se estudia. A continuación el analista debe preguntar la razón por la cual se utiliza el sistema actual. Podría haber buenas razones para realizar los negocios con los métodos actuales, y es importante tomarlas en cuenta al diseño de un nuevo sistema.

Sin embargo, si la razón de ser de las operaciones actuales es que «siempre se han hecho de esta manera», quizá será necesario que el analista mejore los procedimientos. La reingeniería de procesos de negocios podría ser útil para conceptualizar el negocio de una manera creativa. Al término de esta fase, el analista debe conocer el funcionamiento del negocio y poseer información muy completa acerca de la gente, los objetivos, los datos y los procedimientos implicados.

ANALISIS DE LAS NECESIDADES DEL SISTEMA

La siguiente fase que debe enfrentar el analista tiene que ver con el análisis de las necesidades del sistema. De nueva cuenta, herramientas y técnicas especiales auxilian al analista en la determinación de los requerimientos. Una de estas herramientas es el uso de diagramas de flujo de datos para graficar las entradas, los procesos y las salidas de las funciones del negocio en una forma grafica estructurada. A partir de los diagramas de flujote datos se desarrolla un diccionario de datos que enlista todos los datos utilizados en el sistema, así como sus respectivas especificaciones.

Durante esta fase el analista de sistemas analiza también las decisiones estructuradas que se hayan tomado. Las decisiones estructuradas son aquellas en las cuales se pueden determinar las condiciones, las alternativas de condición, las acciones y las reglas de acción. Existen tres métodos principales para el análisis de decisiones estructuradas: español estructurado, tablas y árboles de decisión.

En este puno del ciclo de vida del desarrollo de sistemas, el analista el prepara una propuesta de sistemas que sintetizar sus hallazgos, proporciona un análisis de costo/ beneficio de las alternativas y ofrece, en su caso, recomendaciones sobre lo que debe hacer. Si la administración de la empresa considera factibles algunas de las recomendaciones, el analista sigue adelante. Cada problemas de sistemas es único, y nunca existe solo una solución correcta. La manera de formular una recomendación o solución depende de las cualidades y la preparación profesional de cada analista.

DISEÑO DEL SISTEMA RECOMENDADO

En la fase de diseño del ciclo de vida del desarrollo de sistemas, el analista utiliza la información recopilada en las primeras fases para realizar el diseño lógico del s
istema de información. El analista diseña procedimientos precisos para la captura de datos que asegurar que los datos que ingresen al sistema de información sean correctos. Además, el analista facilita la entrada eficiente de datos al sistema de información mediante técnicas adecuadas de diseño de formularios y pantallas.

La concepción de la interfaz d usuarios forma parte del diseño lógico del sistema de información. La interfaz conecta al usuario con el sistema y por tanto es sumamente importante. Entre los ejemplos de interfaces de usuarios se encuentran el teclado (para teclear preguntas y respuestas), los menús en pantalla (para obtener los comandos de usuarios) y diversas interfaces graficas de usuarios (GUIs, Graphical User Interfaces) que se manejan a través de un ratón o una pantalla sensible al tacto.

La fase de diseño también incluye el diseño de archivos o bases de datos que almacenaran gran parte de los datos indispensables para los encargados de tomar las decisiones en la organización. Una base de datos bien organizada es el cimiento de cualquier sistema de información. En esta fase el analista también interactúa con los usuarios para diseñar la salida (en pantalla o impresa) que satisfaga las necesidades de información de estos últimos.

Finalmente, el analista debe diseñar controles y procedimientos de respaldo que protejan al sistema y a los datos, y producir paquetes de especificaciones de programa para los programadores. Cada paquete debe contener esquemas para la entrada y la salida, especificaciones de archivos y detalles del procesamiento; también podrían incluir árboles o tablas de decisión, diagramas de flujos de datos, un diagrama de flujo del sistema, y los nombres y funciones de cualquier rutina de código previamente escrita.

DESARROLLO Y DOCUMENTACION DEL SOFTWARE

En la quinta fase del ciclo de vida del desarrollo de sistemas, el analista trabaja de manera conjunta con los programadores para desarrollar cualquier software original necesario. Entre las técnicas estructuradas para diseñar y documentar software se encuentran los diagramas de estructura, los diagramas de Nassi-Shneiderman y el pseudocodigo. El analista se vale de una mas de estas herramientas para comunicar al programador lo que se requiere programar.

Durante esta fase el analista también trabaja con los usuarios para desarrollar documentación efectiva para el software, como manuales de procedimientos, ayuda en línea y sitios Web que incluyan respuestas a preguntas frecuentes (FAQ, Frequently Asked Questions) en archivos «Léame» que se integran en el nuevo software. La documentación indica a los usuarios como utilizar el software y lo deben hacer en caso de que surjan problemas derivados de este uso.

Los programadores desempeñar un rol clave en esta fase porque diseñan, codifican y eliminan errores sintácticos de los programas de computo. Si el programa se ejecutara en un entorno de mainframe, se debe crear un lenguaje de control de trabajos (JCL, Job Control Language). Para garantizar la calidad, un programador podría efectuar un repaso estructurado del diseño o del código con el propósito de explicar las partes complejas del programa a otro equipo de programadores.

PRUEBA Y MANTENIMIENTO DEL SISTEMA

Antes de poner el sistema en funcionamiento es necesario probarlo. Es mucho menos costoso encontrar los problemas antes que el sistema se entregue a los usuarios. Una parte de las pruebas las realizan los programadores solo, y la otra la lleva a cabo de manera conjunta con los analistas de sistemas. Primero se realiza una seria de pruebas con datos de muestra para determinar con precisión cuales son los problemas y posteriormente se realiza otra con datos reales del sistema actual.

El mantenimiento del sistema de información y su documentación empieza en esta fase y se lleva a cabo de manera rutinaria durante toda su vida útil. Gran parte del trabajo habitual del programador cosiste en el mantenimiento, y las empresas invierten enormes sumas de dinero en esta actividad. Parte del mantenimiento, como las actualizaciones de programas, se pu
eden realizar de manera automática a través de un sitio Web. Muchos de los procedimientos sistemáticos que el analista emplea durante el ciclo de vida del desarrollo de sistemas pueden contribuir a garantizar que el mantenimiento se mantendrá al mínimo.

IMPLEMENTACION Y EVALUACION DEL SISTEMA

Esta es la ultima fase del desarrollo de sistemas, y aquí el analista participa en la implementación del sistema de información. En esta fase se capacita a los usuarios en el manejo del sistema. Parte de la capacitación la imparten los fabricantes, pero la supervisión de esta es responsabilidad del analista de sistemas. Además, el analista tiene que planear una conversión gradual del sistema anterior al actual. Este proceso incluye la conversión de archivos formatos anteriores a los nuevos, o la construcción de una base de datos, la instalación de equipo y la puesta en producción del nuevo sistema.

Se menciona la evaluación como la fase final del ciclo de vida del desarrollo de sistemas principalmente en aras del debate. En realidad, la evaluación se lleva a cabo durante cada una de las fases. Un criterio clave que se debe cumplir es si los usuarios a quienes va dirigido el sistema lo están utilizando realmente. Debe hacerse hincapié en que, con frecuencia, el trabajo de sistemas es cíclico. Cuando un analista termina una fase del desarrollo de sistemas y pasa a la siguiente, el surgimiento de un problema podría obligar al analista a regresar a la fase previa y modificar el trabajo realizado.

IMPACTO DEL MANTENIMIENTO

Después de instalar un sistema, se le debe dar mantenimiento, es decir, los programas d computo tienen que ser modificados y actualizados cuando lo requieran. En la figura 1.4 se ilustra el tiempo promedio que se invierte en darle mantenimiento un MIS típico. Según estimaciones, los departamentos invierten en mantenimiento de 48 a 60 por ciento del tiempo total del desarrollo de sistemas. Queda muy poco tiempo para el desarrollo de nuevos sistemas. Conforme se incrementa el número el número de programas escritos, también lo hace la cantidad d mantenimiento que requieren.

El mantenimiento se realiza por dos razones. La primera es la corrección de errores del software. No importa cuan exhaustivamente se pruebe el sistema, los errores se cuelan en los programas de computo. Los errores en el software comercial para PC se documentan como «anomalías conocidas», y se corrigen en el lanzamiento de nuevas versiones del software o en revisiones intermedias. En el software hecho a l medida, los errores se deben corregir e el momento que se detectan.

La otra razón para el mantenimiento del sistema es la mejora de las capacidades del software en respuesta a las cambiantes necesidades de una organización, que por lo general tienen que ver con alguna de las siguientes tres situaciones:

1. Con frecuencia, después de familiarizarse con el sistema de cómputo y sus capacidades, los usuarios requieren características adicionales.

2. El negocio cambia con el tiempo.

3. El hardware y el software cambian a un ritmo acelerado.

La figura 1.5 ilustra la cantidad de recursos-por lo general tiempo y dinero-que se invierte en el desarrollo y mantenimiento de sistemas. El área bajo la curva representa la cantidad total invertida. Como puede apreciar, es probable que con el paso del tiempo el costo total del mantenimiento rebase el costo de desarrollar el sistema. Pasado un cierto tiempo es más factible realizar un nuevo estudio de sistemas, debido a que, evidentemente, el costo del mantenimiento continuo es mayor que el de la creación de un sistema de información completamente nuevo.

En síntesis, el mantenimiento es un proceso continuo durante el ciclo de vida de un sistema de información. Después de instalar el sistema de información, por lo general el mantenimiento consiste en corregir los errores de programación que previamente no se detectaron. Una vez corregidos estos errores, el sistema alcanza un estado estable en el cual ofrece un nuevo servicio confiable a sus usuarios. El mantenimiento durante este periodo podría consistir en eliminar algunos errores previamente no detectados y en actualizar el sistema con algunos cambios menores. Sin embargo, conforme pasa el tiempo y los negocios y la tecnología cambian, los esfuerzos de mantenimiento se incrementan de manera considerable.

 

USO DE HERRAMIENTAS CASE

A lo largo de este libro hacemos énfasis en la necesidad de un enfoque sistemático e integrar para el análisis, diseño e implementación de sistemas de información. Reconocemos para ser productivos, los analistas de sistemas deben realizar sus tareas de una manera organizada, precisa y minuciosa. Desde principios de la década de 1990, los analistas empezaron a beneficiarse de las herramientas de productividad, denominadas herramientas deingeniería de Software Asistida por Computadora (CASE, Competer-Aided Software Engineering), que se crearon explícitamente para mejorar su trabajo rutinario mediante apoyo automatizado. De acuerdo con un estudio resiente, era mas probable que los departamentos de sistemas de información con mas de 10 empleados adoptaran las herramientas CASE que los departamentos con menos empleados. Los sistemas, procedimientos y practicas administrativas de las organizaciones podrían restringir la difusión de las herramientas CASE. Los analistas de sistemas se apoyan en estas herramientas, desde el principio hasta el fin del ciclo de vida, para incrementar la productividad, comunicarse de manera más eficiente con los usuarios e integrar el trabajo que desempeñan en el sistema.

RAZONES PARA EL USO DE LAS HERRAMIENTAS CASE

Aumento en la productividad del analista: Visible Analyst (VA) es una herramienta CASE que da al analista de sistemas la posibilidad de realizar plantación, análisis y diseño por medios gráficos, con el propósitos de construir aplicaciones cliente-servidor y bases de datos complejas. Esta herramienta permite modelar los datos, procesos y objetos en diferentes formatos. Visible Analyst genera información sobre el modelo en muchas formas distintas, incluyendo COBOL, C, Visual Basic, SQL y XML. (En el sitio Web de este libro encontrara ejercicios de VA parcialmente terminados para las Experiencias con HyperCase y el Caso de la CPU que se sigue en los capítulos de este libro.)

Visible Analyst permite que sus usuarios dibujen y modifiquen diagramas con facilidad. De esta manera, el analista en mas productivo tan solo con la reducción del tiempo considerable que se invierten en dibujar y corregir manualmente diagramas de flujos de datos hasta que tengan una apariencia aceptable.

Un paquete de herramientas como Visible Anilyst también mejora la productividad de grupos al dar a los analistas la posibilidad de compartir fácilmente el trabajo con otros miembros del equipo, quienes solo tienen que abrir el archivo en sus PCs y revisar o modificar lo que se haya hecho. Esta facilidad de compartir el trabajo reduce el tiempo necesario para reproducir diagramas de flujo de datos y distribuirlos entre los miembros del equipo. Por tanto, en vez de requerir una distribución rigurosa y un calendario de respuestas con fines de retroalimentación, un paquete de herramientas permite a los miembros del equipo de análisis de sistemas trabajar con los diagramas siempre que lo necesiten.

Las herramientas CASE también facilitan la interacción entre miembros de un equipo al hacer que la diagramación sea un proceso iterativo y dinámico mas que uno en el cual los cambios causen molestia y se conviertan en un freno para la productividad. En este caso la herramienta CASE para dibujar y grabar diagramas de flujos de datos ofrece un registro de la evolución de las ideas del equipo en lo concerniente a los flujos e datos.

Mejora de la comunicación analista-usuario: Para que el sistema propuesto se concrete y sea útil en la práctica, es esencial una excelentecomunicación entre analista y usuarios durante todo el ciclo de vida del desarrollo de sistemas. El
éxito de la fruta implementación del sistema depende de la capacidad de analistas y usuarios para comunicarse de una manera eficiente. Hasta el momento, de las experiencias de analistas que utilizan herramientas CASE se desprende que su uso fomenta una mayor y mas eficiente comunicación entre usuarios y analistas.

Analistas y usuarios por igual informan que las herramientas CASE ponen a su alcance un medio para comunicar aspectos del sistema durante su conceptualizacion. A través de apoyo automatizado que incluye salida en pantalla, los clientes pueden apreciar de inmediato como están representados los flujos de datos y otros conceptos del sistema, y pueden solicitar correcciones o cambios que hubieran tomado demasiado tiempo con herramientas anteriores.

El hecho de que un diagrama en particular sea considerado como útil por los usuarios o los analistas al final del proyecto es cuestionable. Lo importante es que este apoyo automatizado para muchas actividades de diseño del ciclo de vida es un medio para llegar a un fin al fungir como catalizador de la interacción analista-usuario. Los mismos argumentos que se utilizan para apoyar el rol de las herramientas CASE en el incremento de la productividad son igualmente validos en este escenario; es decir, las tareas de dibujoreproducción y distribución toman mucho menos tiempo, de tal forma que es más sencillo compartir el trabajo en progreso con los demás usuarios.

Integración de las actividades del ciclo de vida: La tercera razón para el uso de la herramientas CASE es integrar las actividades y proporcionar continuidad de una fase a la siguiente durante el ciclo de desarrollo de sistemas.

Las herramienta CASE son especialmente útiles cuando una fase en particular del ciclo de vida requiere varias iteraciones de retroalimentación y modificaciones. Recuerde que la intervención de los usuarios puede ser importante en cada una de las fases. La integración de actividades mediante el uso subyacente de tecnologías facilita a los usuarios la comprensión de la manera en que se relacionan y dependen entre si todas las fases del ciclo de vida.

Evaluar de manera precisa los cambios en el mantenimiento: La cuarta, y probablemente una de la razones mas importantes para el uso de herramientas CASE, es que permiten a los usuarios analizar y evaluar el impacto de los cambios en el mantenimiento. Por ejemplo, el tamaño de un elemento como un número de cliente podría requerir a largarse. La herramienta CASE pueden generar referencias cruzadas de cada pantalla, informe y archivo en el cual sea utilizado el elemento, dando lugar a un plan de mantenimiento integral.

HERRAMIENTA CASE DE BAJO Y ALTO NIVEL

Las herramientas CASE se clasifican como bajo nivel, de alto e integradas, estas ultimas combinando las de alto y bajo nivel en un solo conjunto. A pesar de que los expertos difieren en los criterios que definen con precisión cuales son herramientas CASE de alto nivel y cuales las de bajo nivel, podría ser útil clasificarlas con base en los usuarios a los que dan apoyo. Las herramientas CASE de alto nivel ayudan principalmente a los analistas y diseñadores, en tanto que la de bajo nivel son utilizadas con mas frecuencia por programadores y trabajadores que deben implementar los sistemas diseñados con herramientas CASE de alto nivel.

HERRAMIENTAS CASE DE ALTO NIVEL

Una herramienta CASE de alto nivel da al analista la posibilidad de crear y modificar el diseño del sistema. Toda la información relacionada con el proyecto se almacena en una enciclopedia denominada deposito CASE, una enorme colección de registros, elementos, diagramas, pantallas, informese información diversa (véase la figura 1.6). Con la información del deposito se podrían generar informes que muestren donde esta incompleto el diseño o donde contiene errores.

Las herramientas CASE de alto nivel también pueden apoyar la modelación de los requerimientos funcionales de una organización, ayudar a los analistas y usuarios a definir el alcance de un proyecto determinado y a visualizar la forma en que el proyecto se combina con otras partes de la organización. Además, algunas herramientas CASE de alto nivel pueden ayudar en la creación de prototipos de diseños de pantallas e informes.

HERRAMIENTAS CASE DE BAJO NIVEL

Las herramientas CASE de bajo nivel se utilizan para generar código fuerte de computadora, eliminando así la necesidad de programar el sistema. La generación de código tiene varias ventajas.

  1. El sistema se puede generar más rápido que si tuviera que escribir todos los programas. No obstante, con frecuencia el periodo para familiarizarse con la metodología utilizada por el generador de código es muy largo, por lo que la generación del programa podría ser más lenta al principio. Además, es necesario ingresar por completo el diseño en el conjunto de herramientas, tarea que po
    dría tomar un tiempo considerable.
  2. La generación de código reduce el tiempo invertido en el mantenimiento. No hay necesidad de modificar, probar y depurar los programas de computadora. En lugar de eso, al modificador el diseño CASE se vuelve a generar el código. Si se invierte menos tiempo en el mantenimiento, se tiene mas tiempo para desarrollar nuevos sistemas y aligerar la acumulación de proyectos en espera de desarrollo.
  3. Más de un lenguaje de computadora, de tal manera que se facilita la migración de sistemas de una plataforma, digamos de mainframe, a otra, como una PC. Por ejemplo, la edición de VA para corporaciones puede generar código fuente en lenguajes de tercera generación como ANSI, COBOL o C.
  4. La generación de código ofrece una forma económica de ajustar los sistemas comerciales de fabricantes de sistemas a las necesidades de la organización. Con frecuencia, la modificación de esta clase de software implica un esfuerzo tan grande que su costo es mayor al de la compra del mismo. Con el software de generación de código, la compra de un diseño CASE y un deposito CASE para la aplicación permite al analista modificar el diseño y generar el sistema de computo modificado.
  5. El código generado esta libre de errores de programación. Los únicos errores potenciales son los de diseño, los cuales se pueden minimizar produciendo informes de análisis CASE para garantizar que el diseño del sistema este completo y correcto.

La figura 1.7 ilustra los ciclos de vida del desarrollo de sistemas tradicionales y CASE. Observe que las partes de codificación, prueba y depuración del programa se han eliminado en el ciclo de vida CASE.

INGENIERIA INVERSA Y REINGENIERIA DE SOFTWARE

La ingeniería inversa y la reingeniería de software son métodos para alargar la vida de programas anteriores, conocidos como software de reingeniería asistida por computadora (CARE, Competer–Assisted Reengineering) para analizar y reestructurar el código de computadora existente. En el mercado hay varios conjuntos de herramientas de ingeniería inversa.

Observe en el termino reingeniería se utiliza en numerosos contextos diferentes de ingeniería, programación y negocios. Con frecuencia se emplea para denotar «reingeniería de procesos de negocios,» que es una forma de darle una nueva orientación a los procesos clave de una organización. Los analistas de sistemas pueden desempeñar un rol importante en la reingeniería de procesos de negocios, puesto que muchos de los cambios requeridos sólo se pueden lograr mediante el uso de tecnología de información novedosa.

La ingeniería inversa es lo opuesto a la generación de código. Como se ilustra en la figura 1.8, el código fuente de la computadora es examinado, analizado y convertido en actualidades para el depósito. El primer paso de la ingeniería inversa de software es cargar, en el conjunto de herramientas el código de programa existe (tal como se haya escrito en COBOL, C o cualquier otro lenguaje de alto nivel). Según el conjunto de herramientas producen algunos o todos los elementos siguientes:

1. Estructuras de datos y elementos que describen los archivos y registro almacenados

Por el sistema.

2. Diseños de pantallas, si el programas es en línea.

3. Esquema de informes para programas por lotes.

4. Un diagrama de estructura que muestra la jerarquía de los módulos del programa.

5. Diseño y relaciones de bases de datos.

El diseño de almacenado en el deposito podría modificarse o incorporarse en información de otro proyecto CASE. Cuando se terminan todas las modificaciones, el nuevo código del sistema puede volver a generarse. La reingeniería se refiere al proceso completo de convertir el código del programa al diseño CASE, modificar el diseño y volver a generar el nuevo código de programa.

Son varias las ventajas que se consiguen al utilizar un conjunto de herramientas de ingeniería inversa:

1. Reducción de tiempo requerido para el mantenimiento del sistema, con lo cual queda más tiempo para nuevos desarrollos.

2. Se genera documentación, que podría haber sido inexistente o mínima en los programas anteriores.

3. Se crean programas estructurados a partir de código de computadora no estructurado o pobremente estructurado.

4. Los cambios futuros al almacenamiento son más sencillos, porque se pueden realizar al nivel del diseño más que al nivel del código.

5. Es posible analizar el sistema con el fin de eliminar porciones, sin utilizar de código de computadora, el cual aun podría estar presente en programas anteriores a pesar de que las revisiones hechas al programa a lo largo de los años lo hayan vuelto obsoleto.

ANALISIS Y DISEÑO DE SISTEMAS ORIENTADO A OBJETOS

El análisis y diseño orientado a objetos es un enfoque cuyo propósito es facilitar el desarrollo de sistemas que deben cambiar con rapidez en respuestas a entornos de negocios dinámicos. El capitulo 19 le ayuda a entender el análisis y diseño de sistema orientados a objetos, en que difiere del enfoque estructurado del SDLC y bajo que circunstancias es apropiado utilizar un enfoque orientado a objetos.

Es difícil trabajar bien con técnicas orientadas a objetos en situaciones en la cuales sistemas de información complicados requieren mantenimiento, adaptación y rediseño de manera continua. Los enfoques orientados a objetos utilizan el estándar de la industria para la modelación de sistemas orientaos a objetos, el lenguaje unificado de modelación

(UML, Unified Modeling Language), para analizar un sistema en forma de modelo de casos de uso.

La programación orientada a objetos difiere de la programación tradicional de procedimientos en que la primera examina los objetos que conforman un sistema. Cada objeto es una representación en computadora de alguna cosa o suceso real. Los objetos pueden ser clientes, artículos, pedidos, etc. los objetos se representan y agrupan en clase, que no optimas para su reutilización y mantenimiento. Una clase define el conjunto de atributos y comportamiento que comparten los objetos que esta contiene

PROGRAMACION EXTREMA Y OTRAS METODOLOGIAS ALTERNAS


Aunque este libro se enfoca en la metodología que actualmente se utiliza de manera más amplia, en ocasiones el analista tendrá que reconocer que la organización se podría beneficial de una metodología alterna. Quizás un proyecto de sistema con un enfoque estructurado haya fallado, o quizás las subcultura que existe en la organización, compuesta, por diferentes tipos de grupos de usuarios, parezcan mas proclives a utilizar un método alterno. Que merecen y han sido explicados en sus propios libros e investigaciones. Sin embargo, al mencionarlo aquí esperamos que usted tome conciencia de que, bajo ciertas circunstancias, su organización podría requerir una alternativa o complemento para un análisis y diseño estructurado y para el ciclo de vida del desarrollo de sistemas.

La programación externa (XP, Extreme Programmig) es un enfoque para el desarrollo de software que utiliza buena práctica de desarrollo y las lleva a los extremos. Se basa en valores, principios y prácticas esenciales los cuatros valores son la comunicación, la simplicidad, la retroalimentación y la valentía. Recomendamos a los analistas de sistemas que adopten estos valores en todos los proyectos que emprendan, no solo cuando recurran a medidas de programación externa.

Durante la fase de terminación del mismo de un proyecto, con frecuencia es necesario realizar ajustes en la administración del mismo. En el capitulo 3 veremos que XP puede garantizar la terminación exitosa de un proyecto ajustando recursos importantes con el tiempo, el costo, la cualidad y el alcance. Cuando estas cuatro variables de control se incluyen adecuadamente la planeación, se propicia un equilibrio entre los recursos y las actividades requeridas para completar el proyecto.

El llevar las prácticas de desarrollo al extremo es más recomendable cuando se siguen prácticas propias de XP. En el capitulo 6 descubrimos cuatro prácticas esenciales de XP: la liberación limitada, la semana de trabajo de 40 horas, alojar a un cliente en el sitio y el uso de la programación en parejas. A primera vista estas prácticas parecen extremas, pero como observara, podemos aprender algunas lecciones valiosas al incorporar muchos de estos valores y practicas de XP en los proyectos de análisis y diseños de sistemas.

La creación de prototipos (que es diferente ala creación de prototipos que veremos en el capítulo 6) es uno de los métodos alternos más populares, junto con ETHICS, el enfoque de usar un campeón del proyecto, la Metodología Sofá Systemsy Multiview. La creación de prototipo, concebida originalmente en otras disciplinas y aplicadas a los sistemas de información, surgió como respuesta a los extensos de desarrollo asociados con el enfoque del ciclo de vida del desarrollo de sistemas y a la incertidumbre que existen con frecuencia en relación con los requerimientos de los usuarios. ETHICS, por su parte, se presento como una metodología socio-técnica que combina soluciones sociales y técnicas. El enfoque de usar un campeón del proyecto, un concepto tomado de la mercadotecnia, adopta la estrategia de involucrar a una persona clave de cada área donde tiene influencia el sistema para garantizar el éxito del mismo. La Metodología Sofá Systems fue concebida como una manera de modelar un mundo muchas veces caótico mediante el uso de «imágenes ricas», ideogramas que captan los relatos característicos de una organiz
ación. Multiview se propuso como una forma de organizar y utilizar elementos de diversas metodologías encompetencia.

RESUMEN

La información se puede considerar como un recurso organizacional. Como tal, se debe manejar con cuidado, al igual que los demás recursos. La disponibilidad de gran poder de cómputo en las organizaciones ha propiciado una explosión de información y, en consecuencia, se debe prestar mayor atención al manejo de la información generada.

EXPERIENCIA CON HYPERCASE®

«Bienvenido a Maple Ridge Engineering, al que en adelante llamaremos MRE. Esperamos que disfrute su trabajo de consultor de sistemas para nosotros. A pesar de que he trabajador aquí durante cinco años en diferentes actividades, recién fui asignado para fungir como apoyo administrativo para Snowden Evans, el jefe de nuevo Departamento de Capacitacion y Administración de Sistemas. Ciertamente somos un grupo heterogéneo. Conforme se familiarice con la compañía, asefurece de aprovechar todos sus conocimientos, tanto técnicos como relativos a las personas, para entender como somos e identificar los problemas y conflictos relacionados con nuestros sistemas de información que usted considere susceptibles de arreglar».

«Para ponerlo al tanto, le diré que Maple Ridge Engineering es una compañía de ingeniería medica de mediano tamaño. El año pasado nuestrosingresos rebasaron 287 millones de dólares. Empleamos alrededor 335 personas. Hay cerca 150 empleados administrativos, así como personal directivo de oficinas, como yo, y aproximadamente 75 profesionalitas, como ingenieros, médicos y analistas de sistemas, y cerca de 110 empleados como dibujantes y técnicos».

«Hay cuatro oficinas a través de HyperCase, usted no visitará en nuestras oficinas centrales en Maple Ridge, Tennessee. Tenemos otras tres sucursales al sur de Estados Unidos: Atlanta, Georgia, Charlotte, Carolina del Norte; y Nueva Orleáns, Luisiana. Nos dará gusto que nos visite».

«Por el momento, explore HyperCase.con Nestcape Navigator o Microsoft Internet Explorer«.

«Para aprender mas sobre Maple Ridge Engineering como compañía, para saber como entrevistar a nuestro empleados, quien utilizara los sistemas que usted diseñe y como son sus oficinas dentro de nuestra compañía, visite el sitio Wed de este libro y seleccione el vinculo HyperCase. Al desplegarse la pantalla de HyperCase, elija Stara e ingresara a la recepción de Maple Ridge Engineering. A partir de aquí puede empezar de inmediato su trabajo de consultaría».

Este sitio Wed contiene información útil para el proyecto de archivos que usted puede bajar a su computadora. Uno de los archivos contiene una serie de archivos de datos de visible Analyst para utilizarse en HyperCase. Estos archivos incluyen una serie parcialmente construidas de diagramas de flujo de datos, diagrama de entidad-relación y el deposito CASE. El sitio Wed de HyperCase también contiene ejercicios adicionales. HyperCase esta diseñado para facilitar su exploración, así que no ignore cualquier objeto o pista que encuentre en la página Web.

Los analistas de sistemas recomiendan, diseñan y dan mantenimiento a diversos tipos de sistemas, como los sistemas de procesamiento de transacciones (TPS), sistemas de automatización de la oficina (OAS), sistemas de trabajo del conocimiento (KWS) y sistemas de información gerencial (MIS). También crean sistemas orientados a la toma de decisiones, como los sistemas de apoyo a la toma de decisiones (DSS), sistemas expertos (ES), sistemas de apoyo a la toma de decisiones en grupo (GDSS), sistemas de trabajo colaborativo apoyados por computadoras (CSCWS) y sistemas de apoyo a ejecutivos (ESS). Muchas aplicaciones se conciben originalmente para, o se migran a, la Web para apoyar el comercio electrónico.

El diseño y análisis de sistemas es un enfoque sistemático para identificar problemas, oportunidades y objetivos; para analizar los flujos de información de las organizaciones, y para diseñar sistemas de información computarizados destinados a solucionar problemas. Los analistas de sistemas se ven precisados a desempeñar diversos roles durante le transcurso de su trabajo. Algunos de estos roles son: 1) consultor externo para el negocio 2) experto en apoyo dentro de un negocio y 3) agente de cambio en situaciones tanto internas como externas.

Los analistas poseen un amplio rango de habilidades. En primer lugar, y mas importante, el analista es un solucionador de problemas; alguien que disfruta el reto de analizar un problema e idear soluciones factibles. El analista de sistemas requiere habilidades de comunicación que le permitan relacionarse de manera significativa con diversas clases de gente diariamente, así como habilidades de computación. El involucramiento del usuario del usuario final es crítico para el éxito del proyecto.

Los analistas actúan de manera sistemática. El marco para este enfoque sistemático lo ofrece el ciclo de vida del desarrollo de sistemas (SDLC). Este ciclo de vida se puede dividir en siete fases secuenciales, aunque en realidad las fases s interrelacionan y con frecuencias se llevan a cabo de manera simultanea. Las siete fases son: identificación de problemas, oportunidades y objetivos; determinación de los requerimientos de información; análisis de las necesidades del sistema; diseño del sistema recomendado; desarrollo y documentación del software; prueba y mantenimiento del sistema, e implementación y evaluación del sistema.

Los paquetes de software automatizados, basado en el PC, para el análisis y diseños de sistemas se reconocen como herramientas de ingeniería de software asistida por computadora (CASE). Las cuatros razones para adoptar las herramientas CASE son: incrementar la productividad del analista, mejorar la comunicación entre analistas y usuarios, integrar las actividades las actividades del ciclo de vida, y analizar y valorar el impacto de los cambios en el mantenimiento. Los analistas también emplean enfoques de reingeniería inversa de software y reingeniería con el propósito de extender la vida útil del software heredado.

El análisis orientado a objetos (OOA) y el diseño orientado a objetos (OOD) constituyen un enfoque distinto de desarrollo de sistema. Estas técnicas se basan en los aspectos de la programación orientada a objetos que hayan sido codificados en UML, un lenguaje estandarizado de modelación en el cual los objetos generados no solo incluyen código referente a los datos sino también instrucciones acerca de las operaciones que se realizaran sobre los datos.

Cuando la situación particular de una organización así lo requiera, el analista podría dejar el SDLC y probar una metodología alterna. Un enfoque

, denominado programación externas (XP), lleva al límite las prácticas de análisis y diseño. La creación de prototipos, ETHICS, el uso de un campeón del proyecto, la metodología Soft Systems y Multiview son enfoques de desarrollo que ofrecen perspectivas diferentes.

PALABRAS Y FRASES CLAVE

Agente de cambio

Análisis orientado a objetos (OOA)

Análisis y diseño de sistemas

Análisis y diseño de sistemas orientado a objetos (O-O)

Analista de sistemas

Aplicaciones de comercio electrónico

Asistente digital personal (PDA)

CARE (reingeniería asistida por computadora)

Ciclo de vida del desarrollo de sistemas (SDLC)

Comercio móvil

Consultor de sistemas

Creación de prototipos

Deposito CASE

Desarrollo rápido de aplicaciones (RDA) Diseño orientado a objetos (OOD) Enfoque de uso de un campeón del proyecto

ETHICS

Sistemas de automatización de la oficina (OAS)

Sistemas de información gerencial (MIS)

Sistemas de plantación de recursos empresariales (ERP)

Sistemas de procesamiento de transacciones (TPS)

Experto en soporte técnico

Gorupware

Herramientas CASE

Información generada por computadora

Ingeniería de software Asistida por

Computadora (CASE)

Ingeniería inversa de software

Inteligencia artificial (AL)

Lenguaje unificado de modelación (UML)

Mantenimiento de generación de código

Metodología Soft Systems

Migración de sistemas

Multiview

Programación externa (XP)

Reingeniería

Sistemas de apoyo a ejecutivos (ESS)

Sistemas de apoyo a la toma de decisiones (DSS)

Sistemas de apoyo a la toma de decisiones en grupo (GDSS)

Sistemas de trabajo colaborativo

Apoyo por computadora (CSCWS)

Sistemas de trabajo del conocimiento (KWS)

Sistemas expertos

Sistemas Web

Software de código abierto

Software heredado

PREGUNTAS DE REPASO

    1. Describa por qué es mejor la información como un recurso de la organización más que como un subproducto derivado de los negocios.
    2. Defina lo que significa un sistema de procesamiento de transacciones.
    3. Explique la diferencia entre los sistemas de automatización de la oficina (OAS) y los sistemas de trabajo del conocimiento (KWS).
    4. Compare la definición de sistemas de información gerencial (MIS) y la de sistemas de apoyo a la toma de decisiones (DSS).
    5. Defina el concepto sistemas expertos. ¿En que son diferentes los sistemas expertos y los sistemas de apoyo a la toma de decisiones?
    6. Enumere los problemas de interacción grupal que están destinados a resolver los sistema de apoyo a la toma de decisiones en grupo (GDSS) y los sistemas de tr
      abajo colaborativo apoyados por computadora (CSCWS).
    7. ¿Cuál es el término más común, CSCWS o GDSS? Explique su respuesta.
    8. Defina el concepto comercio móvil (m-commerce).
    9. Enumere las ventajas de implementar aplicaciones en la Web.
    10. ¿Cuál es la razón preponderante para diseñar sistemas ERP?
    11. Defina el significado de software de código abierto.
    12. Enumere las ventajas de utilizar técnicas de análisis y diseño de sistemas al desarrollar sistemas de información computarizados para negocios.
    13. Mencione tres roles que debe desempeñar un analista de sistemas. De una definición de cada rol.
    14. ¿Qué cualidades personales so de utilidad para el analista de sistemas? Enumérelas.
    15. Mencione y describa brevemente las siete fases del ciclo de vida del desarrollo de sistemas (SDLC).
    16. ¿En qué consiste el desarrollo rápido de aplicaciones (RAD)?
    17. Defina ingeniería inversa de software y reingeniería en el contexto de reingeniería asistida por computadora (CARE).
    18. Menciones las cuatro razones para adoptar herramientas CASE.
    19. ¿Cuáles son los cuatro valores de la programación extrema?
    20. Defina los conceptos análisis orientado a objetos y diseño orientado a objetos.
    21. ¿Qué es el UML?

CASO DE LA CPU

ALLEN SCHIMIDT, JULIE E. KNDALL Y KENNTH E. KENDALL

EMPIEZA EL CASO

Un día soleado y caluroso de fines d octubre, Chip Puller estaciono su automóvil y su encamino a su oficina en la Central Pacific University. Era agradable la cesación de comenzar como analista de sistemas, y esperaba con ansias el momento de conocer a sus compañeros.

En la oficina, Anna Liszt se presenta a su misma. «Nos han asignado para trabajar como equipo en un nuevo proyecto. Puedo ponerte al tanto de los detalles y después hacemos un recorrido por la instalaciones.»

«Me parece bien», contesta Chip «¿Cuánto tiempo llevas trabajando Aquí?»

«Alrededor de cinco años», responde Anna. «Empecé como analista programador, pero en los últimos años me he dedicado al análisis y el diseño. Espero que encontremos algunos métodos para incrementar nuestra productividad.

«Hábleme acerca del nuevo proyecto», dice Chip.

«Bueno», contesta Anna, «al igual que muchas organizaciones, tenemos un gran numero de microcomputadoras con diferentes paquetes de software instalados. En 1980 había pocas microcomputadoras y una colección dispersa de software, pero se han incrementado rápidamente en los últimos años. El sistema actual utilizado para mantener el software y el hardware ha sido sobrepasado.»

«¿Qué hay de los usuarios? ¿A quien debo conocer? ¿Quién cree que sea importante que nos ayude con el nuevo sistema?», pregunta Chip.

«Conocerás a todos, pero recientemente conocí a algunas personas importantes, y te diré lo que comprendí de ellas para que las recuerdes cuando te reúnas con ellas.

«Dot matrices es gerente de todos los sistemas de microcomputadoras de la Central Pacific. AL parecer podemos trabajar bien en conjunto. Ella es muy competente. Realmente le agrada mejorar la comunicación entre usuarios y analistas.

«Será un placer conocerla» especula Chip.

«Luego esta Mike Crowe, el experto en mantenimiento de las microcomputadoras. El es el más amable, pero esta demasiado ocupado. Necesitamos ayudarle a aligerar su carga. Cher Ware es compañera de Mike. Ella es muy liberal, pero no me malinterpretes, ella conoce su trabajo», dice Anna.

«Debe ser divertido trabajar con ella», comenta Chip

«Es probable», coincide Anna. «También conocerás a la analista financiera, Paige Prynter. Aun no los conozco.

«Tal vez yo pueda ayudarte», dice Chip.

«Por ultimo, deberías. A el le encantaría que lográramos integrar las actividades de nuestro ciclo de vida.»

«Suena prometedor», dice Chi. «Creo que la voy a pasar bien aquí.»

EJERCICIO

E-1. De la conversación preliminar que sostuvieron Chip y Anna, ¿en cuales de los elementos que mencionaron se podrirán aplicar las herramientas CASE?

 

Autor:

Filianny Alcántara Corcino

profesorpepelo[arroba]hotmail.com

Felianny 17[arroba]hotmail.com

Del: Instituto Politécnico de Azua (IPA)

Paradigmas de la Inteligencia Artificial

  1. Antecedentes
  2. Introducción
  3. Desarrollo
  4. Definiciones
  5. Referencias Bibliográficas

Antecedentes

Aunque desde muy atrás en la historia personalidades como DescartesHobbes y Leibniz comenzaban a desarrollar la concepción de que la inteligencia humana funciona como un mecanismo y Von Kempelen y Charles Babbage desarrollaron maquinarias que eran capaces de jugar ajedrez y calcular logaritmos respectivamente, no es hasta  1943 que se perfila de una forma concreta la Inteligencia Artificial con la propuesta de  Warren McCulloch y Walter Pitts de un modelo de neurona de cerebro humano y animal que brindaba una representación simbólica de la actividad cerebral. Norbert Wiener retomando esta idea y fusionándola con otras dentro del mismo campo dio origen a la «cibernética«; naciendo de esta en los años 50 la Inteligencia Artificial (IA).

Uno de los primeros postulados, basándose en la propuesta de la neurona de McCulloch planteaba que: «El cerebro es un solucionador inteligente de problemas, de modo que imitemos al cerebro». Analizando la complejidad del cerebro y el hardware tan primitivo que existía era casi imposible realizar estos sueños.

En la propia década del 50 se desarrolla con cierto éxito un sistema visual de reconocimiento depatrones llamado Perceptrón de Rossenblatt. Todos los esfuerzos en la construcción de esta aplicación estuvieron concentrados en lograr resolver una amplia gama de problemas.

Ya en los 60 a partir de trabajos realizados en demostraciones de teoremas y el ajedrez porcomputador de  Alan Newell y Herbert Simon se logra crear el GPS (General Problem Solver; sp: Solucionador General de Problemas). Este programa era capaz de resolver problemas como los de las Torres de Hanoi, trabajar con criptoaritmética y otros similares. Su limitación fundamental es que operaba con microcosmos formaliza
dos que representaban parámetros dentro de los que se podían resolver las problemáticas. Además no podía resolver situaciones del mundo real, ni médicas, ni tomar decisiones importantes. 

Al girar un poco las primeras ideas de crear un sistema que fuera capaz de resolver todos los problemas que se plantearan, hacia la idea de darle solución a problemas que se centraran en ámbitos específicos, surgen los Sistemas Expertos. En 1967 sale a la luz el Dendral y en 1974 elMycin que realizaba diagnósticos de sangre y recetaba los medicamentos necesarios.

A partir de la década de los 80 se comienzan a desarrollar lenguajes especiales para programar descriptivamente, basados fundamentalmente en predicados, sobresalen el Prolog y el Lisp.

La IA se ha desarrollado vertiginosamente en las últimas dos décadas surgiendo sistemas cada vez más potentes y aplicables en una amplia gama de esferas, sociales, económicas, industriales y médicas por solo citar algunas.

Introducción

La Inteligencia Artificial consiste en crear teorías y algoritmos encaminados a la simulación de la inteligencia, para intentar representar de forma virtual a través de las máquinas el comportamiento de sistemas naturales y fundamentalmente el comportamiento humano. Los sistemas que se desarrollan  basados en esta ciencia responden a: principios de aprendizajetoma de decisiones, reconocimiento de patrones, búsquedas heurísticas,computación evolutiva, e inferencia difusa. Las ramas de la IA son diversas, Programación Simbólica, Computación EvolutivaRedes Neuronales,RobóticaMétodos de Solución de Problemas (MSP), Minería de DatosMinería de Textos, Sistemas Basados en el Conocimiento (SBC), Agentes Inteligentes, Aprendizaje Automático, Reconocimiento de Voz y Reconocimiento de Patrones. Todas estas ramas son aplicables en la sociedad, pero, ¿qué modelos o patrones definen el desarrollo de la IA?, ¿hacia que dirección se dirige ésta? Dar respuestas a las interrogantes anteriores es el principal objetivo de este artículo.

Desarrollo

El surgimiento y desarrollo de la Inteligencia Artificial  ha sido condicionado por metas ambiciosas que se han perfeccionado y ampliado con el de cursar de los años. El primer paradigma en la historia de la IA fue sin dudas el de simular el funcionamiento del cerebro humano, postulado sobre la idea de que nuestro pensamiento es como una coordinación de tareas simples relacionadas entre sí mediante mensajes, en esos momentos en que el hardware era precario y el desarrollo de esta ciencia muy incipiente parecía imposible  de alcanzar este objetivo, no obstante se lograron resultados discretos en el trabajo con neuronas artificiales. En 1958 surgió la primera Red Neuronal compuesta por la asombrosa cantidad de una neurona, veía la luz el Perceptrón de Rossenblatt.

Poco después se trazó la meta de crear un sistema que fuera capaz de resolver cualquier situación, pero los conjuntos problemas solución eran muy abarcadores y no tardó mucho que esta idea se abandonara o mejor dicho, se perfeccionara. El giro de este paradigma representó el surgimiento de otro que hasta la actualidad se mantiene con metas cada vez más ambiciosas. Un Sistema Basado en el Conocimiento es la idea refinada de tener un Solucionador General de Problemas con la diferencia que se centra en un microcosmos definido por reglas de conocimientos específicas, obtenidas de las experiencias de los expertos humanos. Nacido en 1967, Dendral fue el primero de los Sistemas Expertos, marcando el inicio de innumerables aplicaciones basadas en el conocimiento. Actualmente estos sistemas constituyen uno de los modelos más importantes para el avance de la Inteligencia Artificial.

Con cierto paralelismo fueron surgiendo otros campos de la IA que hoy, ya bien elaborados  toman fuerza y definen el desarrollo de esta. Principalmente se identifican como los tresparadigmas del desarrollo de la IA: Redes NeuronalesAlgoritmos Genéticos y Sistemas de Lógica Difusa.

Las Redes Neuronales simulan ciertas características de los humanos como la capacidad de asociar hechos, de memorizar, de aprender y porque no también, de olvidar. Una red neuronal es «un nuevo sistema para el tratamiento de la información, cuya unidad básica de procesamiento está inspirada en la célula fundamental del sistema nervioso humano: laneurona» [1].

La capacidad de aprendizaje adaptativo de estas redes condiciona la realización de tareas a partir de modelos creados mediante entrenamientos supervisados o no supervisados. Auto-adaptarse para poder encontrar soluciones hasta el momento no conocidas, es parte de sus características de aprendizaje, lo logran gracias a que son muy dinámicas y se auto-ajustan con facilidad. Por lo general una red después de su entrenamiento puede continuar aprendiendo durante toda su vida sin la necesidad de la creación por parte se su diseñador de algún algoritmo para resolver el problema, pues ellas generan sus propias distribuciones de los pesos en los enlaces.

Tienen gran tolerancia a los fallos en cuanto a la entrada de datos como la integridad de la red, son capaces de aprender a reconocer patrones con diferentes interferencias y aunque parte del sistema esté dañado pueden seguir realizando sus funciones hasta cierto punto.

Auto-organizan la información de manera tal que si alguna entrada no esta clara o completa puedan dar una solución o aun cuando no habían sido expuestas a esas situaciones.

Los campos en los que se pueden aplicar las Redes Neuronales son amplios, entre ellos resaltan:Maximización de solución, Reconocimiento de patrones, Aprendizaje supervisado y no supervisado y en Autómatas.

Los Algoritmos Genéticos maximizan soluciones para ello imitan la evolución biológica para resolver problemas, seleccionando de un grupo de soluciones generadas aleatoriamente las que mas se puedan acercar a posibles soluciones de la situación planteada permitiéndoseles vivir y reproducirse con técnicas de cruzamientos o introduciéndole mutaciones para producir pequeñas variaciones en su constitución. Los nuevos individuos se someten a otra iteración en la cual los que han empeorado o no han mejorado se desechan y se vuelven a reproducir los vencedores. Se espera que los resultados mejoren sustancialmente con el transcurso de las generaciones llegando a obtener resultados muy precisos.

El objetivo de los AG es buscar dentro de varias hipótesis la mejor de ellas, que en este caso es la que optimiza el resultado del problema dado, es decir, la que más se aproxima a dicho valor numérico una vez evaluada por la función de evaluación.

Entre las principales funciones de selección de individuos que se convertirán en padres se encuentran: Función de Selección Proporcional a la Función Objetivo, donde cada individuo tiene una probabilidad de ser seleccionado como padre que es proporcional al valor de su función objetivo; Selección Elitista, intenta escoger el mejor individuo de la población; Selección por Torneo, la idea principal consiste en escoger al azar un grupo de individuos de la población.

Una vez seleccionados los individuos padres deberán ser cruzados por medio de la selección de un punto de corte para posteriormente intercambiar las secciones. Se puede introducir un operador de mutación para generar pequeñas variaciones en el código genético de los individuos.

Los Algoritmos Genéticos son aplicables a la Ingeniería Aeroespacial; a la Astronomía y Astrofísica para obtener la curva de rotación de una galaxia, determinar el periodo de pulsación de una estrella variable; a la Química; a la Ingeniería Eléctrica; a las Matemáticas y algoritmia para resolverecuaciones de derivadas parciales no lineales de alto orden; la Biología Molecular; Reconocimiento de Patrones y Explotación de Datos y la Robóticapara controlar y decidir que acciones realizar en diferentes situaciones.

Los Sistemas de Lógica Difusa manejan y trabajan la certidumbre de datos difusos, permiten representar de forma matemática conceptos oconjuntos borrosos en los cuales no se pueden determinar soluciones exactas a partir de datos umbrales. En contraposición con la Lógica Clásica, esta trabaja con valores entre cero (0) y uno (1) donde pueden existir varios resultados verdaderos con diferentes grados de precisión. Si usted necesita determinar si una persona es alta con la ayuda de la Lógica Clásica, normalmente lo haría comparando con un valor numérico para obtener un resultado booleano de verdadero o falso, pero, ¿Cómo saber cuan alta es una persona? Con la ayuda de la Lógica Difusa es muy fácil resolver esta dificultad, solo hay que trabajar con grados y a estos asignarles valores de cuantificación, así si una persona mide 1.85 metros podemos decir que en una escala de cero a uno [0,1] tiene un valor de 0.92 al cual puede estar asignado el valor cuantificador de «bastante alto».       

Esta lógica se adapta mucho mejor a la vida cotidiana y es capaz de interpretar expresiones como: «hace poco frío» o «estoy muy cansado«.esto se logra al  adaptar el lenguaje para que comprenda nuestros cuantificadores.

Para los conjuntos difusos se definen también las operaciones de unión, intersección, diferencia, negación o complemento. Cada conjunto difuso tiene una función de pertenencia para sus elementos que indican en que medida el elemento forma parte de ese conjunto. Algunas de las formas de funciones de pertenencia más típicas son lineales, trapezoidales y curvas.

Su basamento está sustentado por reglas heurísticas de la forma SI(expresión)ENTONCES(acción) donde la expresión – que es un antecedente – y la acción –que es el consecuente – son conjuntos difusos.

Ej.: SI hace muchísimo frió ENTONCES aumento considerablemente la temperatura.

La Lógica Difusa se usa cuando los problemas a resolver poseen una amplia complejidad o no existen modelos matemáticos precisos, para procesosaltamente no lineales y cuando se envuelven definiciones y conocimiento no estrictamente definido,para tratar variables lingüísticas, con grados de partencia a diferentes conjuntos o términos de variables lingüísticas. Algunos ejemplos de aplicación de la Lógica Difusa tienen pie en: Sistemas de Control de Acondicionadores de aire; Electrodomésticos familiares; Optimización de Sistemas Industriales; Sistemas Expertos; Bases de DatosDifusas para almacenar y consultar información imprecisa; en la Inteligencia Artificial para la resolución de problemas relacionados con el controlindustrial y sistemas de decisión en general.

Conclusiones

La Inteligencia Artificial como ciencia, promete la solución a diferentes dificultades de la vida humana, exploraciones en lugares donde los humanos no pueden acceder, realización de trabajos con riesgos para la vida, toma de decisiones que impliquen pensamientos sentimentales y reconocimiento de patrones.

Gracias a los paradigmas o modelos de la IA que son sin dudas los motores que la impulsan hacia el desarrollo continuo de nuevos procedimientos y técnicas, los sistemas son cada vez mas especializados, más robustos y confiables demuestran sin lugar a dudas que esta ciencia avanza con paso firme hacia el futuro y que es un hecho la solución de muchas problemáticas.          

Definiciones

Patrones: Un diseño mecánico o artístico que revela trazos constantes o características replicables.(www.udesarrollo.cl/udd/CDD/charlas/files/B4-Glosario_Terminos.doc)

Torres de Hanoi: Es un rompecabezas o juego matemático inventado en 1883 por el matemático francés éduard Lucas. (http://es.wikipedia.org/)

Criptoaritmética: Consiste en sustituir cada letra por un dígito, de modo que las cuentas (operaciones) sean correctas. A igual letra, igual dígito, y a distinta letra, distinto dígito. Como es habitual, los números no pueden tener ceros a izquierda. (http://www-2.dc.uba.ar/charlas/lud/criptoar.htm)

Microcosmos: Pequeño espacio de un sistema ordenado o armonioso.

Sistema Experto: Sistema basado en Inteligencia Artificial que mediante una base de conocimientos obtenida de la experiencia de diferentes expertos (personas) es capaz de resolver problemas en un campo específico. 

Programación descriptiva: Es la programación que se preocupa fundamentalmente por el QUé  voy ha hacer y no por el CÓMO, se auxilia de una base de hechos y reglas proposicionales.

Algoritmo: Conjunto de reglas para efectuar algún cálculo, bien sea a mano o (más frecuentemente) a máquina. No debe implicar ninguna decisión subjetiva, ni requerir intuición o creatividad. (www.nachocabanes.com/diccio/ndic.php)

Heurísticas: Regla que permite orientar un algoritmo hacia la solución de un problema. Técnica de programación que permite a un sistema la creación gradual de un valor óptimo para una variable específica por medio del registro de los valores obtenidos en operaciones anteriores.(www.euromaya.com/glosario/H_GLOSARIO.htm)

Computación evolutiva: Está basada fundamentalmente en la evolución de las especies. Se apoya en las teorías evolutivas de Charles Darwin y en lasLeyes de Mendel.    

ParadigmaModelo, patrón, objetivo a seguir para cumplir con una meta. 

Referencias Bibliográficas

[1] Bollilla, Ana. «Redes Neuronales« en http://www.monografias.com.          

Monografías.com. 03 mayo 2003.

Bibliografía

David Santiago, Pablo. «Inteligencia Artificial» en http://www.monografias.com.          

Monografías.com. 18 enero 2005.

Bollilla, Ana. «Redes Neuronales« en http://www.monografias.com.          

Monografías.com. 03 mayo 2003.

Patricia Daza, Sandra. «Redes neuronales artificiales Fundamentos, modelos y aplicaciones» en http://www.monografias.com. Monografías.com  

Manuel Castillejos Reyes, Juan. «Inteligencia Artificial» (2004) en http://www.enterate.unam.mx/Articulos/2004/junio/artificial.htm. Entérate en línea. Num. 64. 29 noviembre 2007.  

Marczyk, Adam. «Algoritmos Genéticos y Computación Evolutiva» (2004) en http://the-geek.org/docs/algen/

Elguea, Javier. «Inteligencia artificial y psicología: la concepción contemporánea de la mente humana» (1987) en http://biblioteca.itam.mx/estudios/estudio/estudio10/sec_13.html

El perceptrón de Rossenblatt en http://www.cinefantastico.com/nexus7/ia/neurocomp5.htm

Antecedentes de la computadora

Antecedentes de la computadora

Indice
1. El Abaco
2. La Pascalina 
3. Historia de la computadora
4. La máquina analítica 
5. Primeros ordenadores 
6. Circuitos integrados 
7. Generaciones De La Computadora
8. Pioneros de la computación

1. El Abaco

Quizás fue el primer dispositivo mecánico de contabilidad que existió. Se ha calculado que tuvo su origen hace al menos 5000 años y su efectividad ha soportado la prueba del tiempo.

2. La Pascalina

El inventor y pintor Leonardo Da Vinci (1452-1519) trazó las ideas para una sumadora mecánica. Siglo y medio después, el filósofo y matemático francés Blas Pascal (1623-1662) inventó y construyó la primera sumadora mecánica. Se le llamo Pascalina y funcionaba como maquinaria a base de engranes y ruedas. A pesar de que Pascal fue enaltecido por toda Europa debido a sus logros, la Pascalina, resultó un desconsolador fallo financiero, pues para esos momentos, resultaba más costosa que la labor humana para los cálculos aritméticos.

3. Historia de la computadora

La primera máquina de calcular mecánica, un precursor del ordenador digital, fue inventada en 1642 por el matemático francés Blaise Pascal. Aquel dispositivo utilizaba una serie de ruedas de diez dientes en Las que cada uno de los dientes representaba un dígito del 0 al 9. Las ruedas estaban conectadas de tal manera que podían sumarse números haciéndolas avanzar el número de dientes correcto. En 1670 el filósofo y matemático alemán Gottfried Wilhelm Leibniz perfeccionó esta máquina e inventó una que también podía multiplicar.

El inventor francés Joseph Marie Jacquard, al diseñar un telar automático, utilizó delgadas placas de madera perforadas para controlar el tejido utilizado en los diseños complejos. Durante la década de 1880 el estadístico estadounidense Herman Hollerith concibió la idea de utilizar tarjetasperforadas, similares a las placas de Jacquard, para procesar datos. Hollerith consiguió compilar la información estadística destinada al censo depoblación de 1890 de Estados Unidos mediante la utilización de un sistema que hacía pasar tarjetas perforadas sobre contactos eléctricos.

4. La máquina analítica

También en el siglo XIX el matemático e inventor británico Charles Babbage elaboró los principios de la computadora digital moderna. Inventó una serie de máquinas, como la máquina diferencial, diseñadas para solucionar problemas matemáticos complejos. Muchos historiadores consideran a Babbage y a su socia, la matemática británica Augusta Ada Byron (1815-1852), hija del poeta inglés Lord Byron, como a los verdaderos inventores de la computadora digital moderna. La tecnología de aquella época no era capaz de trasladar a la práctica sus acertados conceptos; pero una de sus invenciones, la máquina analítica, ya tenía muchas de las características de un ordenador moderno. Incluía una corriente, o flujo de entrada en forma de paquete de tarjetas perforadas, una memoria para guardar los datos, un procesador para las operaciones matemáticas y una impresora para hacer permanente el registro.

5. Primeros ordenadores

Los ordenadores analógicos comenzaron a construirse a principios del siglo XX. Los primeros modelos realizaban los cálculos mediante ejes y engranajes giratorios. Con estas máquinas se evaluaban las aproximaciones numéricas de ecuaciones demasiado difíciles como para poder ser resueltas mediante otros métodos. Durante las dos guerras mundiales se utilizaron sistemas informáticos analógicos, primero mecánicos y más tarde eléctricos, para predecir la trayectoria de los torpedos en los submarinos y para el manejo a distancia de las bombas en la aviación.

Ordenadores electrónicos 
Durante la II Guerra Mundial (1939-1945), un equipo de científicos y matemáticos que trabajaban en Bletchley Park, al norte de Londres, crearon lo que se consideró el primer ordenador digital totalmente electrónico: el Colossus. Hacia diciembre de 1943 el Colossus, que incorporaba 1.500válvulas o tubos de vacío, era ya operativo. Fue utilizado por el equipo dirigido por Alan Turing para descodificar los mensajes de radio cifrados de los alemanes. En 1939 y con independencia de este proyecto, John Atanasoff y Clifford Berry ya habían construido un prototipo de máquinaelectrónica en el Iowa State College (EEUU) Este prototipo y las investigaciones posteriores se realizaron en el anonimato, y más tarde quedaron eclipsadas por el desarrollo del Calculador e integrador numérico digital electrónico (ENIAC) en 1945. El ENIAC, que según mostró la evidencia se basaba en gran medida en el ‘ordenador’ Atanasoff-Berry (ABC, acrónimo de Electronic Numerical Integrator and Computer), obtuvo una patente que caducó en 1973, varias décadas más tarde.

El ENIAC contenía 18.000 válvulas de vacío y tenía una velocidad de varios cientos de multiplicaciones por minuto, pero su programa estaba conectado al procesador y debía ser modificado manualmente. Se construyó un sucesor del ENIAC con un almacenamiento de programa que estaba basado en los conceptos del matemático húngaro-estadounidense John von Neumann. Las instrucciones se almacenaban dentro de una llamadamemoria, lo que liberaba al ordenador de las limitaciones de velocidad del lector de cinta de papel durante la ejecución y permitía resolver problemassin necesidad de volver a conectarse al ordenador.

A finales de la década de 1950 el uso del transistor en los ordenadores marcó el advenimiento de elementos lógicos más pequeños, rápidos y versátiles de lo que permitían las máquinas con válvulas. Como los transistores utilizan mucha menos energía y tienen una vida útil más prolongada, a sudesarrollo se debió el nacimiento de máquinas más perfeccionadas, que fueron llamadas ordenadores o computadoras de segunda generación. Los componentes se hicieron más pequeños, así como los espacios entre ellos, por lo que la fabricación del sistema resultaba más barata.

6. Circuitos integrados

A finales de la década de 1960 apareció el circuito integrado (CI), que posibilitó la fabricación de varios transistores en un único sustrato de silicio en el que los cables de interconexión iban soldados. El circuito integrado permitió una posterior reducción del precio, el tamaño y los porcentajes de error. El microprocesador se convirtió en una realidad a mediados de la década de 1970, con la introducción del circuito de integración a gran escala(LSI, acrónimo de Large Scale Integrated) y, más tarde, con el circuito de integración a mayor escala (VLSI, acrónimo de Very Large Scale Integrated), con varios miles de transistores interconectados soldados sobre un único sustrato de silicio.

7. Generaciones De La Computadora

Teniendo en cuenta las diferentes etapas de desarrollo que tuvieron las computadoras, se consideran las siguientes divisiones como generaciones aisladas con características propias de cada una, las cuáles se enuncian a continuación.

Primera Generación
Sistemas constituidos por tubos de vacío, desprendían bastante calor y tenían una vida relativamente corta. Máquinas grandes y pesadas. Se construye el ordenador ENIAC de grandes dimensiones (30 toneladas)

Almacenamiento de la información en tambor magnético interior. 
Un tambor magnético disponía de su interior del ordenador, recogía y memorizaba los datos y los programas que se le suministraban. 
Programación en lenguaje máquina, consistía en largas cadenas de bits, de ceros y unos, por lo que la programación resultaba larga y compleja.

Alto costo
Uso de tarjetas perforadas para suministrar datos y los programas.

Segunda Generación
Transistores
Cuando los tubos de vacío eran sustituidos por los transistores, estas últimas eran más económicas, más pequeñas que las válvulas miniaturizadas consumían menos y producían menos calor. Por todos estos motivos, la densidad del circuito podía ser aumentada sensiblemente, lo que quería decir que los componentes podían colocarse mucho más cerca unos a otros y ahorrar mucho más espacio.

Tercera Generación
Circuito integrado (chips)
Aumenta la capacidad de almacenamiento y se reduce el tiempo de respuesta.
Generalización de lenguajes de programación de alto nivel. Compatibilidad para compartir software entre diversos equipos.

Cuarta Generación
Microcircuito integrado
El microprocesador: el proceso de reducción del tamaño de los componentes llega a operar a escalas microscópicas. La microminiaturización permite construir el microprocesador, circuito integrado que rige las funciones fundamentales del ordenador.

Quinta Generación Y La Inteligencia Artificial
El propósito de la Inteligencia Artificial es equipar a las Computadoras con «Inteligencia Humana» y con la capacidad de razonar para encontrarsoluciones. Otro factor fundamental del diseño, la capacidad de la Computadora para reconocer patrones y secuencias de procesamiento que haya encontrado previamente, (programación Heurística) que permita a la Computadora recordar resultados previos e incluirlos en el procesamiento, en esencia, la Computadora aprenderá a partir de sus propias experiencias usará sus Datos originales para obtener la respuesta por medio del razonamiento y conservará esos resultados para posteriores tareas de procesamiento y toma de decisionesEl conocimiento recién adquirido le servirá como base para la próxima serie de soluciones.

8. Pioneros de la computación

Atanasoff Y Berry
Una antigua patente de un dispositivo que mucha gente creyó que era la primera computadora digital electrónica, se invalidó en 1973 por orden de un tribunal federal, y oficialmente se le dio el crédito a John V. Atanasoff como el inventor de la computadora digital electrónica. El Dr. Atanasoff, catedrático de la Universidad Estatal de Iowa, desarrolló la primera computadora digital electrónica entre los años de 1937 a 1942. Llamó a su invento la computadora Atanasoff-Berry, ó solo ABC (Atanasoff Berry Computer) Un estudiante graduado, Clifford Berry, fue una útil ayuda en laconstrucción de la computadora ABC.

Algunos autores consideran que no hay una sola persona a la que se le pueda atribuir el haber inventado la computadora, sino que fue el esfuerzo de muchas personas. Sin embargo en el antiguo edificio de Física de la Universidad de Iowa aparece una placa con la siguiente leyenda: «La primera computadora digital electrónica de operación automática del mundo, fue construida en este edificio en 1939 por John Vincent Atanasoff, matemático y físico de la Facultad de la Universidad, quien concibió la idea, y por Clifford Edward Berry, estudiante graduado de física

Pascal
Fue el primero en diseñar y construir una máquina sumadora. Quería ayudar a su padre, quien era cobrador de impuestos, con los cálculos aritméticos. La máquina era mecánica y tenía un sistema de engranes cada uno con 10 dientes; en cada diente había grabado un dígito entre el 0 y el 9. Así para representar un número, el engrane del extremo derecho se movía hasta tener el dígito de las unidades, el engrane que le seguía a la izquierda tenía el dígito de las decenas, el siguiente el de las centenas y así sucesivamente. Los números se representaban en la máquina como nosotros lo hacemos en notación decimal.

Para realizar una suma o una resta, se activaba el sistema de engranes que hacía girar cada uno de ellos. Comenzaba por el extremo derecho y seguía, uno por uno, hacia la izquierda. Cuando la suma en un engrane excedía el número 9, automáticamente el engrane inmediato a la izquierda se movía un décimo de vuelta aumentando en 1 la cantidad que representaba. Así Blaise Pascal logró resolver el problema del acarreo de dígitos para las máquinas sumadoras y obtuvo una máquina que podía sumar cualquier par de números.

Charles Babagge
Sus máquinas y su legado
El Babbage del que todo mundo ha leído es, sin embargo, el inventor fracasado que se pasó toda su vida intentando construir la primera computadora de uso general de la historia y que, pese a haber fracasado, hizo aportaciones muy significativas al desarrollo de la informática.

Muchas son las visiones románticas y hasta un tanto fantasiosas que se han escrito sobre la vida de Babbage. Mucho es lo que se ha dicho sobre sus «maravillosas máquinas», pero también mucha es la confusión que se ha desarrollado en torno a sus verdaderas aportaciones y a las razones por las que nunca pudo completar la construcción de las mismas.

Wilkes nos ofrece quizá una de las visiones menos apasionadas del genio de Babbage, y nos hace ver que realmente la primera máquina que Babbage intentaba construir, llamada Máquina Diferencial (Difference Engine) sólo era capaz de tabular polinomios, y que requería, de cualquier manera, bastante trabajo con lápiz y papel. La idea no era realmente tan buena como Babbage pensaba, pero él nunca lo hubiera admitido. Sin embargo, esteproyecto tuvo un impacto muy importante en la investigación aplicada en Inglaterra, pues el gobierno británico decidió financiarlo con una fuerte suma de dinero, en su afán de perfeccionar la impresión de las tablas de navegación, tan comunes en aquella época. Joseph Clement, tal vez el mejor fabricante de herramientas del Reino Unido, fue asignado para trabajar con Babbage en el diseño de esta máquina. Sin embargo, tras una fuerte disputa Babbage acabó quedándose solo y sin un centavo de las £34,000 que invirtió en el proyecto después de 10 años de intenso trabajo. Se ha especulado que la máquina nunca se construyó porque todavía no se contaba con la tecnología necesaria, pero eso no parece ser cierto, dado que Georg y Edvard Scheutz, dos ingenieros Suecos que leyeron un artículo sobre la máquina de Babbage, fueron capaces de construir una Máquina Diferencial unos 10 años después de que el proyecto original se abandonara. La máquina funcionó y fue vendida al Observatorio Dudley en Nueva York, aunque se dice que nunca lo hizo muy bien y por ello pronto cayó en desuso. Una réplica de esta máquina se conserva en la oficina del Censo de Londres.

Realmente, la aportación clave de Babbage a la computación moderna vino con su siguiente máquina: La Máquina Analítica (Analytical Engine), el cual, de haberse construido, habría sido efectivamente la primera computadora de uso general de la historia. Babbage empezó a trabajar en este nuevo proyecto en 1834, pese a su fracaso con su máquina anterior, y continuó haciéndolo durante toda su vida. Su modelo fue refinado muchas veces, y a lo largo de este proceso, Babbage tuvo muchas ideas visionarias sobre las computadoras. Por ejemplo, sugirió el uso de tarjetas perforadas para controlar su máquina, y anticipó el uso de las mismas para representar un algoritmo e incluso inventó el concepto de bucles o ciclos en programación. También anticipó el uso de microprogramación, aunque dejó huecos importantes en su trabajo, y falló en anticipar cuestiones tan obvias hoy en día como es el uso de variables en un programa. Todo este trabajo, habría permanecido prácticamente desconocido por años de no haber sido por Ada, Condesa de Lovelace, la hija del famoso poeta Lord Byron, de quien hablaremos la próxima ocasión, que se dio a la tarea de difundir las ideas de Babbage sobre su máquina. Se ha llegado a decir sobre la Máquina Analítica, que sería injusto afirmar que Babbage fracasó también en su intento por construirla, pues nunca intentó realmente hacerlo, sabedor de que resultaría prácticamente imposible volver a conseguir fondos para financiar tal proyecto. Sin embargo, sus planos y notas fueron tan detallados que en 1991 el Museo Nacional de Ciencia y Tecnología de Londres construyó una máquina basándose en ellos y usando sólo materiales y herramientas disponibles en la época de Babbage. La máquina ha funcionado desde entonces, sin ningún problema. ¿Por qué no pudo entonces Babbage lograr fructificar su sueño? La respuesta sigue siendo un misterio. Hay quienes dicen que le faltó habilidad política para negociar con el gobierno, pero la verdad es que después de haberse gastado una fortuna y no recibir nada a cambio, creo que el gobierno de cualquier país se mostraría reacio a seguir invirtiendo en el mismo proyecto. Tal vez la verdadera razón haya sido la naturalezaidealista de Babbage que le impedía materializar muchas de sus maravillosas visiones, a la luz de su obsesión por lo perfecto.

Babbage nunca tuvo miedo a ser olvidado ni se sintió decepcionado por la indiferencia que sus contemporáneos mostraron por su trabajo. Cerca del final de su vida escribió: «No tengo miedo de dejar mi reputación a cargo de aquel que tenga éxito construyendo mi Máquina Analítica, porque él y sólo él será capaz de apreciar totalmente la naturaleza de mi esfuerzo y el valor de sus resultados». Nada más cierto que eso, puesto que a pesar de que Charles Babbage murió en total soledad la mañana del 18 de octubre de 1871 a sólo 2 meses de volverse un octogenario, sus aportaciones serían realmente apreciadas sólo hasta que las primeras computadoras digitales fueron construidas, a mediados del presente siglo. Sus experimentosdejarían huella profunda en el trabajo sobre autómatas del español Leonardo Torres de Quevedo a principios de este siglo; posiblemente la idea de Herman Hollerith de usar tarjetas perforadas fue derivada por la sugerencia de Babbage, y se ha llegado a especular que la Máquina Analítica pudo haber sido incluso la fuente principal de inspiración del modelo teórico de la computadora moderna desarrollado por el matemático Alan Turing y que hoy se conoce como «máquina de Turing». Con tan convincente evidencia de la importancia de sus
ideas tal vez no importe tanto que Babbage no haya logrado construir sus máquinas después de todo, pues sus aportaciones resultaron igualmente significativas de cualquier forma.

Se sabe que Babbage nunca recibió remuneración alguna por su trabajo de 10 años en la Máquina Diferencial, por lo que el Parlamento Inglés decidió ofrecerle un título de nobleza a cambio (le ofrecieron el título de Barón) Babbage rehusó aceptarlo, pidiendo mejor una pensión vitalicia que nunca le fue concedida. ¿Un error de apreciación? No realmente, si consideramos que lo que realmente recibió a cambió del trabajo de toda una vida fue algo más valioso que cualquier título de nobleza: un sitio privilegiado en la historia de la informática, el de padre de la computación moderna.

Gottfried Wihelm Leibniz
Demostró las ventajas de utilizar el sistema binario en lugar del decimal en las computadoras mecánicas. 
Inventó y construyó una máquina aritmética que realizaba las cuatro operaciones básicas y calculaba raíces cuadradas.
Nació el 1 de julio de 1646 en Leipzig, Sajonia (ahora Alemania)
Murió el 14 de noviembre de 1716 en Hannover, Hannover (ahora Alemania
Leibniz ha sido uno de los más grandes matemáticos de la historia, se le reconoce como uno de los creadores del Cálculo Diferencial e Integral; pero fue un hombre universal que trabajó en varias disciplinas: lógica, mecánica, geologíajurisprudencia, historia, lingüística y teología.

Inventó una máquina aritmética que empezó a diseñar en 1671 y terminó de construir en 1694; era una máquina mucho más avanzada que la que había inventado Pascal y a la que llamó «calculadora secuencial o por pasos», en alemán: «dice Getrocknetsrechenmaschine». La máquina no sólo sumaba y restaba, sino que además podía multiplicar, dividir y sacar raíz cuadrada. Sin embargo, en esa época el desarrollo de la técnica no se encontraba en condiciones de producir en serie las piezas de gran precisión indispensables para el funcionamiento de la máquina.

El modelo que construyó Leibniz nunca funcionó correctamente; sin embargo, en 1794 se construyó un modelo funcional de la calculadora de Leibniz que actualmente se exhibe en la Real Sociedad de Londres. Esta última máquina tampoco resultó confiable y no fue sino hasta 1820 cuando se fabricó un aparato infalible y comercial capaz de realizar las cuatro operaciones aritméticas fundamentales.

John Von Neumann : un genio incomparable
Su interés por la computación
Con el advenimiento de la Segunda Guerra Mundial, von Neumann hubo de abandonar sus estudios en matemáticas puras, y concentrarse en problemas más prácticos para servir al Gobierno del que ahora era nacional. Fue consultor en proyectos de balística, en ondas de detonación, y eventualmente, se involucró en el desarrollo de la bomba atómica, en donde demostró la factibilidad de la técnica de implosión que más tarde se usaría en la bomba que detonó en Nagasaki. Sin embargo, debido a su valía como consultor en otras agencias gubernamentales ligadas a la guerra, von Neumann fue uno de los pocos científicos a quien no se le requirió permanecer de tiempo completo en Los Álamos. Fue precisamente durante la primera mitad de 1943, en plena guerra, que se interesó por primera vez en la computación. Tras un viaje a Inglaterra, le dijo a Voblen que creía sumamente importante que se utilizaran máquinas para acelerar los complejos cálculos involucrados con su trabajo. Aunque comenzaron a utilizar equipo de IBM, éste no satisfizo las necesidades del Proyecto Manhattan, y von Neumann empezó pronto a buscar opciones en otros lados. En 1944 sólo había unos pocos proyectos para desarrollar computadoras en los Estados Unidos: Howard Aiken en Harvard, George Stibitz en Laboratorios Bell, Jan Schilt en la Universidad Columbia, y Presper Eckert y John W. Mauchly, en la Universidad de Pennsylvania. Aunque von Neumann contactó a los 3 primeros científicos y estuvo en contacto con sus máquinas, la única computadora con la que realmente se involucró a fondo fue la última, llamada ENIAC (Electronic Numerical Integrator and Computer), que durante mucho tiempo fue ignorada por la comunidad científica, y que con el apoyo de von Neumann fue finalmente tomada en serio hasta convertirse en un proyecto de primera línea. Curiosamente, la ENIAC tenía unaarquitectura en paralelo, aunque casi carecía de memoria (sólo podía almacenar 20 palabras), y otra máquina más ambiciosa, llamada EDVAC (Electronic Discrete Variable Arithmetic Computer) nació del deseo de sus diseñadores de construir una máquina «más útil» que operara en serie. Desgraciadamente, la reputación de von Neumann tenía también su lado negativo, y debido a una indiscreción a la prensa y al hecho de que firmó como autor único un borrador del EDVAC, el proyecto no sólo perdió su status de secreto, sino que se volvió objeto de una enorme controversia, pues Mauchly y Eckert no sólo se disgustaron mucho por no haber recibido el crédito debido, sino que fueron despedidos de la Universidad de Pennsylvania ante su negativa de ceder a la institución los derechos del ENIAC. Este error le costó a la Universidad de Pennsylvania el perder su status de universidad de primer nivel en los Estados Unidos, y todavía hoy se recuerda a éste como uno de sus peores momentos históricos. Eventualmente, la guerra terminó, el EDVAC se volvió del dominio público, Mauchly y Eckert fundaron su propia empresa y von Neumann regresó a Princeton con el sueño de construir su propia máquina.

Sus Últimos Años
Debido a los tropiezos que tuvo inicialmente para conseguir dinero para construir su computadora, varias universidades le ofrecieron trabajo a von Neumann después de la guerra, y aunque estuvo cerca de aceptar al menos una de estas ofertas, fue leal al IEA, y finalmente logró conseguir los fondos que necesitaba para su proyecto con ayuda de Princeton y la RCA. Su idea era construir una máquina similar a EDVAC pero más poderosa y más rápida. La computadora IAS fue eventualmente construida en los 50s, y su diseño ha servido como inspiración para la mayoría de las computadoras modernas, si bien la arquitectura que hoy recibe su nombre no fue realmente producto de su inventiva. Sus principales contribuciones en computación fueron: la noción del uso de monitores para visualizar datos, la invención del diagrama de flujo, la teoría de los autómatas celulares, incontables técnicas de cómputo matemático, fue co-autor de la teoría de juegos que dio pie al famoso método de Montecarlo, y fue co-autor del otrora famoso libro: «Cybernetics: Or Control and Communication in the Animal and the Machine» en el que explicaba junto con Norbert Wiener la manera en que los cerebros electrónicos podrían efectuar tareas humanas de diferentes grados de dificultad.

En octubre de 1954 se volvió miembro de la Comisión de Energía Atómica, por lo que se tuvo que mudar junto con su esposa a Georgetown, en Washington, D.C. A la vez, sirvió como consultor para la IBM, en donde conoció a John Backus mientras desarrollaba el FORTRAN. Curiosamente, von Neumann desdeñó el trabajo de Backus pensando que nadie requeriría jamás usar un lenguaje de programación de más alto nivel que el lenguajebinario que él tan bien conocía. En el verano de ese mismo año, se lastimó el hombro izquierdo en una caída, y en la cirugía posterior se descubrió que tenía cáncer en los huesos. Pese a saberse cerca de la muerte, continuó con su tremendo ritmo de trabajo, y en sus últimos días el secretario de defensa, y los secretarios del ejército, la marina y la fuerza aérea norteamericanas, se daban cita alrededor de la cama de von Neumann en el hospital Water Reed en Washington, D.C. Sólo médicos y personal con autorización militar podían verlo, ante el temor que revelara secretos importantes mientras estaba sedado. Para ese entonces, von Neumann había recibido un sinnúmero de doctorados Honoris Causa, la medalla presidencial al mérito, el premio Enrico Fermi y el premio Albert Einstein. Aunque nunca practicó en vida la religión Católica, bajo la cual fue bautizado por sus padres, al sentir cerca su fin pidió que un sacerdote le diera los sacramentos. Sus planes de irse a trabajar como profesor a la Universidad de California en Los Ángeles nunca se volverían realidad, porque el «mejor matemático del mundo», como lo llamara Herman H. Goldstine, falleció el 8 de febrero de 1957. Su leyenda, sin embargo, sigue viva hasta nuestros días en los corredores de Princeton y en una pléyade de libros alrededor del mundo.

Ada Byron
Ada Byron conoció a Charles Babbage en 1833, cuando ella tenía 18 años y el 42. Quedó tan impresionada por las ideas sobre las máquinas que Babbage inventaba que decidió estudiar matemáticas para poder ayudar a su amigo en lo que se refería a la rama teórica de sus inventos. Se convirtió, con el paso de los años, en una gran matemática y científica. Trabajó siempre muy cerca de Babbage en el diseño de máquinas computadoras y muy en particular en el diseño de la «máquina analítica». A propósito escribió:

«La característica que distingue a la máquina analítica, es la inclusión en ella del principio que Jacquard concibió para regular la fabricación, mediante tarjetas perforadas, de los más complicados modelos de brocados. Al capacitar a los mecanismos para combinar entre sí símbolos generales ensucesiones de variedad y extensión ilimitadas, se establece un eslabón entre las operaciones materiales y los procesos mentales abstractos de la rama más teórica de la ciencia matemática. Se desarrolla un lenguaje nuevo, amplio y poderoso, para su empleo futuro en el análisis, cuyas verdades se podrán manejar de modo que su aplicación sea más práct
ica y precisa para la humanidad de lo que hasta ahora han hecho las medidas a nuestro alcance…»

Ada Byron desarrolló de manera teórica el primer programa que la máquina analítica utilizó, pero su trabajo no se limitó a la parte científica; cuando el gobierno les retiro el apoyo financiero, Ada apostó en las carreras de caballos y empeñó todas sus joyas para obtener el dinero que se necesitaba en la construcción de la máquina.

Herman Hollerith
A los 19 años se graduó en la escuela de minería de la Universidad de Columbia y empezó a trabajar en la Oficina de Censos de los Estados Unidos. En 1880 se realizó el primer gran censo de ese país y la información se escribió en tarjetas extremadamente largas que debían acomodarse y contarse manualmente en las clasificaciones deseadas: edad, sexo, ocupación, etcétera, lo cual obligaba a que se reacomodaran y contaran varias veces.
Hollerith se propuso desarrollar un método más práctico para manejar estos datos. En 1889 termino su «máquina tabuladora eléctrica» que lograba registrar datos en tarjetas perforadas. Gracias a este invento se lograban tabular de 50 a 75 tarjetas por minuto y conteos que manualmente se hubieran terminado en años, podían lograrse en pocos meses.
Herman Hollerith fundó en 1896 la Compañía de Máquinas Tabuladoras para promover el uso comercial de su invento. Más tarde la compañía cambió al nombre de International Business Machine (IBM).

Howard H. Aiken
Construyó una computadora electromecánica programable siguiendo las ideas introducidas por Babbage
A partir de 1939 Howard Aiken, de la Universidad de Harvard, en asociación con ingenieros de la compañía IBM, trabajó durante 5 años en la construcción de una computadora totalmente automática, la «Harvard Mark I» que medía 15 metros de largo por 2.4 de altura.
Esta máquina se controlaba con tarjetas perforadas, podía realizar cinco operaciones fundamentales: suma, resta,
multiplicación, división y consulta de tablas de referencia. Los datos entraban mediante tarjetas perforadas y salían a través de una máquina electrónica.

Konrad Zuse
Introdujo interruptores magnéticos, llamados relevadores eléctricos en las computadoras. 
Introdujo el control programado mediante cinta perforada lo que permitió automatizar el proceso de cálculo
Construyó la primera computadora electromecánica programable.
Zuse continuó perfeccionando la computadora y en 1939 terminó una segunda versión a la que llamó Z2, dos años más tarde presentó la Z3, considerada por los expertos como la primera computadora totalmente programable. Esta computadora contenía en su procesador y en su memoria cerca de 2,600 relevadores que eran interruptores magnéticos que permitían introducir en las máquinas la representación binaria de los números.

En 1941 Zuse y un amigo solicitaron al gobierno alemán un patrocinio para construir una computadora electrónica más rápida que utilizara tubos de vacío. Sin embargo la ayuda no les fue otorgada y la máquina se quedó en proyecto.

Alan Mathison Turing
Diseñó la primera computadora electrónica digital de bulbos.
Turing fue un gran matemático, lógico y teórico de la computación. Cundo era estudiante de postgrado en la universidad de Princeton en 1936, publicó el artículo «On computable numbers», que estableció las bases teóricas para la computación moderna. En él describió lo que después se llamó la «Máquina de Turing»: un dispositivo teórico que leía instrucciones de una cinta de papel perforada y ejecutaba todas las operaciones de una computadora. El artículo también fijó los límites de las ciencias de la computación al demostrar que existen problemas que ningún tipo de computadora podrá resolver.

Después de doctorarse en 1938, Turing tuvo la oportunidad de poner sus teorías en práctica. Bajo su dirección se construyó «Colossus», una máquina cuyo propósito era descifrar el código secreto militar alemán y que fue terminada en 1943. En la actualidad se le considera la primera computadora digital electrónica.

J. Presper Eckert y John W. Mauchly
 Construyeron la computadora electrónica más grande del mundo y utilizaron para ello 18,000 bulbos.
J. Presper Eckert y John W. Mauchly, de la Universidad de Pennsylvania, inventaron y desarrollaron en 1946 la ENIAC, acrónimo de Electronic Numerical Integrator and Calculator. Fue la mayor computadora de bulbos construida para uso general. Cuando ENIAC funcionaba correctamente, la velocidad de cálculo era entre 500 y 1000 veces superior a las calculadoras electromecánicas de su tiempo, casi la velocidad de las calculadoras de bolsillo de hoy.
Años más tarde Eckert y Mauchly construyeron la UNIVAC, la primera computadora que manejó información alfabética y numérica con igual facilidad.

Trabajo enviado por:
Luis Alberto Meneses Espinoza
becu211284[arroba]hotmail.com


Sistemas y Niveles RAID

Sistemas RAID, Redundant Array of Inexpensive Disks

1. Introduccion

Gracias a la uní versificación de la informática, más personas están en contacto con el mundo de los ordenadores, ya sea para uso personal o profesional. Todo ha servido para una evoluciónmás rápida de los diferentes componentes de los ordenadores. Desde hace 20 años la capacidad de proceso de los procesadores ha aumentado un 40 % cada año. En el mismo periodo detiempo, los discos han doblado su capacidad cada año, mientras que su costo se ha reducido a la mitad. Desgraciadamente, el aumento del rendimiento de los discos duros ha sido menos importante en comparación con el rendimiento del sistema, ya que tan solo ha mejorado un 50 % durante la última década.

Por lo que teníamos y tenemos un problema con los discos duros, que son menos eficaces que el redimiendo general del sistema, provocando una descompensación entre el tratamiento de lainformación del sistema (muy rápido) y la lectura – grabación de datos en el disco duro(muy lenta). Para ello se invento un sistema para guardar información en varios discos duros a la vez por lo que acceso se hacia más rápido ya que la carga se distribuía entre los diferentes discos duros, a esto se le llamo cadenas redundantes de discos de bajo costo (RAID). Pero a la hora de saber como podemos optimizar nuestro
RAID nos encontrábamos con algunos 
problemas, como puede ser encontrar la perfecta relación calidadprecio 

En este Trabajo se intentará explicar que es RAID que tipos existen y que modelo es el que mejor se ajusta a las necesidades de cada usuario.

2. ¿Que es RAID?

RAID es una forma de almacenar los mismos datos en distintos lugares (por tanto de modo redundante) en múltiples discos duros. Al colocar los datos en discos múltiples, las operaciones I/O (input/output, de entrada y salida) pueden superponerse de un modo equilibrado, mejorando el rendimiento del sistema. Dado que los discos múltiples incrementan el tiempo medio entre errores (mean time between failure, MTBF), el almacenamiento redundante de datos incrementa latolerancia a fallos.

Un RAID, para el sistema operativo, aparenta ser un sólo disco duro lógico. El RAID emplea la técnica conocida como «striping» (bandeado o creación de bandas), que incluye la partición del espacio de almacenamiento de cada disco en unidades que van de un sector (512 bytes) hasta varios megabytes. Las bandas de todos los discos están interpaginadas (interleaved) y se accede a ellas en orden.

En un sistema de un solo usuario donde se almacenan grandes registros (como imágenes médicas o de otro tipo), las bandas generalmente se establecen para ser muy pequeñas (quizá de 512 bytes) de modo que un solo registro esté ubicado en todos los discos y se pueda acceder a él rápidamente leyendo todos los discos a la vez.

En un sistema multiusuario, un mejor rendimiento demanda que se establezca una banda lo suficientemente ancha para contener el registro de tamaño típico o el de
mayor tamaño. Esto permite 
acciones I/O superpuestas en los distintos discos.

3. Funcionamiento del RAID

Básicamente el RAID es un sistema el cual permite almacenar información en una cantidad de discos (n), de tal forma que agilice el proceso maquina-disco.

El sistema RAID evitará en lo más posible la pérdida de data de la siguiente manera:

Los discos optimizados para RAID poseen circuitos integrados que detecta si el disco está fallando, de ser así este circuito se encargará por encima del tiempo real de sacar la información y almacenarla en los otros discos, o si es el caso en el «hot spare».

Un hot spare es un disco que permanece siempre en el sistema esperando a que otro se estropee y él entre directamente en funcionamiento.

Una de las ventajas del sistema RAID es la posibilidad, con los discos hot swap, de conectarlos y desconectarlos en «caliente», es decir, que si un disco falla no hará falta el apagar el sistema para remplazarlo.

Otras de las ventajas de RAID:

  1. Reconstrucción y Regeneración Cuando un disco falla la información redundante en los discos y los datos en los discos buenos son usados para regenerar la información de disco averiado.

Striping Es el acto de unir dos o más discos físicos en un solo disco lógico con el fin de dividir los datos entre los diferente discos para ofrecer una significativa mejora en el rendimiento del conjunto de los discos.

Los datos son divididos a través de los discos. La lectura y escritura es compartida

La búsqueda de datos clásica fuerza a la lectura y escritura a no recordar su posición

resultando más movimientos de cabezas y peor eficiencia

La lectura de datos es etiquetada y reordenada. Los movimientos de las cabezas de lectura – escritura se realizan mas eficientemente cuando se buscan datos.

Historia del RAID

El término RAID hizo su debut oficial en 1989 en forma de un paper publicado por David Paterson, Garth Gibson y Randy Katz, todos ellos de la Universidad de California. El paper se titulaba «A case for Redundant Array of Inexpensive Disks».

En dicho trabajo el equipo definió cinco niveles para arreglos de discos cuyas funciones eran ofrecer mejoras en el rendimiento, confiabilidad, tasa de transferencia y tasas de lectura/escritura. Cada nivel tiene sus propias ventajas y desventajas, las cuales iremos revisando en el transcurso de la lectura.

Desde entonces, múltiples fabricantes han introducido y/o desarrollado variaciones a estos cinco niveles originales y las han bautizado en acuerdo a las genialidades de sus respectivos Departamentos de Marketing. Para propósitos de esta lectura usaremos las definiciones especificadas por el RAID Advisory Board, que es una institución conformada por un grupo de 40 empresas entre fabricantes y desarrolladores interesados en el tema de RAID y en su estandarización.

En el trabajo original el término RAID se refería a Redundant Array of Inexpensive Disks como una contraposición directa a los SLED (Single Large Expensive Disks). Sin embargo, las increíbles bajas en los precios de los discos duros han ocasionado que los SLED prácticamente desaparezcan, por lo tanto, el significado de la sigla ha cambiado y en la actualidad se la traduce como Redundant Array of Independent Disks.

4. Ventajas de los discos RAID

El rendimiento general del sistema aumenta ya que pueden funcionar de forma paralela con los diferentes discos del conjunto.

Dependiendo del nivel de RAID que escojamos, si uno de los discos del conjunto falla, la unidad continúa funcionando, sin pérdida de tiempo ni de datos. La reconstrucción de los datos del disco que ha fallado se hace de forma automática sin intervención humana. En el caso de algunos sistemas operativos la regeneración de datos se hace desde software por ejemplo en el Windows NT, aunque en estos sistemas se pueden usar controladoras RAID q
ue sí regenerarían los datos automáticamente.

La capacidad global del disco aumentará, ya que se suman las capacidades de los diferentes discos que componen el conjunto.

¿Porqué usar RAID?

Las operaciones de I/O a disco son relativamente lentas, primordialmente debido a su carácter mecánico. Una lectura o una escritura involucra, normalmente, dos operaciones. La primera es el posicionamiento de la cabeza lecto/grabadora y la segunda es la transferencia desde o hacia el propio disco.

El posicionamiento de la cabeza está limitado por dos factores: el tiempo de búsqueda (seek time) y el retardo por el giro del disco hasta la posición de inicio de los datos (latencia rotacional). La transferencia de datos, por su parte, ocurre de a un bit por vez y se ve limitada por la velocidadde rotación y por la densidad de grabación del medio

Una forma de mejorar el rendimiento de la transferencia es el uso de varios discos en paralelo; esto se basa en el hecho de que si un disco solitario es capaz de entregar una tasa de transferencia dada, entonces dos discos serían capaces, teóricamente, de ofrecer el doble de la tasa anterior; lo mismo sucedería con cualquier operación.

La adición de varios discos debería extender el fenómeno hasta un punto a partir del cual algún otro componente empezará a ser el factor limitante.

Muchos administradores o encargados de sistemas intentan llevar a cabo esta solución en forma básicamente manual, distribuyendo la información entre varios discos de tal forma de intentar asegurar una carga de trabajo similar para cada uno de ellos. Este proceso de «sintonía» podría dar buenos resultados de no ser por dos factores principales:

No consigue mejorar las velocidades de transferencia de archivos individuales, sólo mejora la cantidad de archivos accesados en forma concurrente.
Es obvio que el balance no es posible de mantener en el tiempo debido a la 
naturaleza eminentemente dinámica de la información.

Una forma bastante más efectiva de conseguir el objetivo es el uso de un arreglo de discos, el cual según la definición del RAID Consultory Board es «una colección de discos que integran uno o más subsistemas combinados con un software de control el cual se encarga de controlar la operación del mismo y de presentarlo al Sistema Operativo como un sólo gran dispositivo de almacenamiento». Dicha pieza de software puede ser integrada directamente al Sistema Operativo o residir en el propio arreglo; así como el arreglo puede ser interno o externo. 

Novell Netware incluye, desde hace algún tiempo, soporte para arreglos de discos. El espejado y la duplicación de discos son ejemplos de arreglos basados en software. Más recientemente fabricantes independientes han ofrecido al mercado arreglos de discos basados en software que pueden correr en formato NLM (Netware Loadable Module) sobre un Servidor Netware.

Las soluciones de arreglos basadas en hardware son principalmente implementadas mediante el uso de controladoras SCSI (Small Computer System Interface) especializadas, las cuales a menudo están dotadas de procesadores propios para liberar a la CPU del sistema de la tarea de control y de cachés para mejorar aún más el desempeño.
Para Netware cualquiera de las dos 
soluciones, software o hardware, será visualizada como un único y gran disco virtual.

Así pues un arreglo de discos ofrecerá un mejor desempeño debido a que dividirá en forma automática los requerimientos de lectura/escritura entre los discos que lo conforman. Por ejemplo, si una operación de lectura/escritura involucra a cuatro bloques de 4 Kb cada uno, entonces un arreglo de 4 discos podría, teóricamente, entregar cuatro veces la tasa de operación de un disco único, esto debido a que el disco único sólo podría atender a un bloque en forma simultánea, mientras que en el arreglo cada disco podría manejar un sólo bloque cada uno y como operan al mismo tiempo

En la práctica, sin embargo, dichos niveles no se obtienen debido, principalmente, a la carga de trabajo inherente al control del propio arreglo. Además el uso de varios discos se emplea para construir cierto nivel de redundancia de los datos y es este nivel de redundancia y la forma de implementarlo lo que crea los niveles de RAID.

Arreglos paralelos vs. independientes

Arreglos paralelos: éstos son aquellos en que cada disco participa en todas las operaciones de entrada/salida. Este tipo de arreglo ofrece tasas altísimas de transferencia debido a que las operaciones son distribuidas a través de todos los discos del arreglo y ocurren en forma prácticamente simultánea. La tasa de transferencia será muy cercana, 95%, a la suma de las tasas de los discos miembros, mientras que los índices de operaciones de entrada/salida serán similares a las alcanzadas por un disco individual. En españolun arreglo paralelo accesará sólo un archivo a la vez pero lo hará a muy alta velocidad. Algunas implementaciones requieren de actividades adicionales como la sincronización de discos.

Los RAID de niveles 2 y 3 se implementan con arreglos paralelos.
Arreglos independientes: son denominados así aquellos arreglos en los cuales cada disco integrante opera en forma independiente, aún en el caso de que le sea solicitado atender varios requerimientos en forma concurrente. Este 
modelo ofrece operaciones de entrada/salida sumamente rápidas debido a que cada disco está en posición de atender un requerimiento por separado. De esta forma las operaciones de entrada/salida serán atendidas a una velocidad cercana, 95%, a la suma de las capacidades de los discos presentes, mientras que la tasa de transferencia será similar a la de un disco individual debido a que cada archivo está almacenado en sólo un disco. Los niveles 4 y 5 de RAID se implementan con arreglos independientes, mientras que los niveles 0 y 1 pueden ser implementados por cualquiera de las categorías, sin perjuicio de suelan ser implementados en forma de arreglos independientes.
Stripping y mirroring 
RAID a niveles 0, 1 y 0 & 1 puede ser implementado, tanto en forma de arreglos independientes o paralelos. Netware lo implementa como arreglos independientes a nivel del propio Sistema Operativo y, por lo tanto, no precisa de hardware o software adicional.


Niveles de RAID
 
La elección de los diferentes niveles de RAID va a depender de las necesidades del usuario en lo que respecta a factores como seguridad, velocidad, capacidad, coste, etc.
 Cada nivel de RAID ofrece una combinación específica de tolerancia a fallos (redundancia), rendimiento y coste, diseñadas para satisfacer las diferentes necesidades de almacenamiento. La mayoría de los niveles RAID pueden satisfacer de manera efectiva sólo uno o dos de estos criterios. No hay un nivel de RAID mejor que otro; cada uno es apropiado para determinadas aplicaciones y entornos informáticos. De hecho, resulta frecuente el uso de varios niveles RAID para distintas aplicaciones del mismo servidor. Oficialmente existen siete niveles diferentes de RAID (0-6), definidos y aprobados por el el RAID Advisory Board (RAB). Luego existen las posibles combinaciones de estos niveles (10, 50, …). Los niveles RAID 0, 1, 0+1 y 5 son los más populares.


RAID 0: Disk Striping «La más alta transferencia, pero sin tolerancia a fallos».

También conocido como «separación ó fraccionamiento/ Striping«. Los datos se desglosan en pequeños segmentos y se distribuyen entre varias unidades. Este nivel de «array» o matrizno ofrece tolerancia al fallo. Al no existir redundancia, RAID 0 no ofrece ninguna protección de los datos. El fallo de cualquier disco de la matriz tendría como resultado la pérdida de los datos y sería necesario restaurarlos desde una copia de seguridad. Por lo tanto, RAID 0 no se ajusta realmente al acrónimo RAID. Consiste en una serie de unidades de disco conectadas en paralelo que permiten una transferencia simultánea de datos a todos ellos, con lo que se obtiene una gran velocidad en las operaciones de lectura y escritura. La velocidad de transferencia de datos aumenta en relación al número de discos que forman el conjunto. Esto representa una gran ventaja en operaciones secuenciales con ficheros de gran tamaño. Por lo tanto, este array es aconsejable en aplicaciones de tratamiento de imágenes, audio, video o CAD/CAM, es decir, es una buena solución para cualquier aplicación que necesite un almacenamiento a gran velocidad pero que no requiera tolerancia a fallos. Se necesita un mínimo de dos unidades de disco para implementar una solución RAID 0.


< img src="http://2.bp.blogspot.com/_4xfX48NAgYs/SYV2hfsxh-I/AAAAAAAABnQ/f1wu1Zv9BU8/s200/raid0.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5297770854488311778" style="display: block; margin-top: 0px; margin-right: auto; margin-bottom: 10px; margin-left: auto; text-align: center; cursor: pointer; width: 199px; height: 200px; " />

JBOD: Just a Buch Or Drives

Al igual que RAID 0, JBOD (Just a Buch ODrives, o solo un montón de discos) no es un RAID en el puro sentido. JBOD nos crea una sola partición en varios discos (o una sola partición a partir de varias particiones), comportándose como si fuera una sola partición. Al contrario que RAID 0 los datos no se dividen entre los discos, sino que se comporta exactamente igual que si de un solo disco se tratara, siendo el tamaño de éste el resultado de la suma de los tamaños de los discos. 
Una ventaja de JBOD sobre RAID 0 es que si falla un disco, sólo se pierde la información que contenga este, mientras que con RAID 0 el fallo en un disco supone la perdida total de datos. Al contrario que RAID 0, JBOD no aporta ninguna mejora en el rendimiento del sistema, siendo el rendimiento del conjunto igual al del componente más lento. 

Tanto RAID 0 como JBOD se pueden hacer con un solo disco duro o con varios, siendo una solución muy interesante cuando tenemos varios discos de poca capacidad y queremos hacer con ellos un solo disco de gran capacidad o bien cuando el sistema operativo no soporta gestionar discos de gran capacidad. En cuanto a obtener una mejora significativa en el rendimiento con los discos duros actuales, tendríamos que montar un RAID por Hardware, a ser posible con una tarjeta para cada disco, por lo que el costo de esto se dispararía, a igual que las posibilidades de errores, que se multiplicarían por el número de elementos que integren el RAID. 
Hay que aclarar que en un RAID 0 montado en un sólo disco duro NO tenemos ningún incremento en el rendimiento, ya que este siempre será el del disco sobre el que se monta. 


RAID 1: Mirroring «Redundancia. Más rápido que un disco y más seguro»

También llamado «Mirroring» «Duplicación» (Creación de discos en espejo). Se basa en la utilización de discos adicionales sobre los que se realiza una copia en todo momento de los datos que se están modificando. RAID 1 ofrece una excelente disponibilidad de los datos mediante la redundancia total de los mismos. Para ello, se duplican todos los datos de una unidad o matriz en otra. De esta manera se asegura la integridad de los datos y la tolerancia al fallo, pues en caso de avería, la controladora sigue trabajando con los discos no dañados sin detener el sistema. Los datos se pueden leer desde la unidad o matriz duplicada sin que se produzcan interrupciones. RAID 1 es una alternativa costosa para los grandes sistemas, ya que las unidades se deben añadir en pares para aumentar la capacidad de almacenamiento. Sin embargo, RAID 1 es una buena solución para las aplicaciones que requieren redundancia cuando hay sólo dos unidades disponibles. Los servidores de archivos pequeños son un buen ejemplo. Se necesita un mínimo de dos unidades para implementar una solución RAID 1.


RAID 0+1/ RAID 0/1 ó RAID 10: «Ambos mundos»

Combinación de los arrays anteriores que proporciona velocidad y tolerancia al fallosimultáneamente. El nivel de RAID 0+1 fracciona los datos para mejorar el rendimiento, pero también utiliza un conjunto de discos duplicados para conseguir redundancia de datos. Al ser una variedad de RAID híbrida, RAID 0+1 combina las ventajas de rendimiento de RAID 0 con la redundancia que aporta RAID 1. Sin embargo, la principal desventaja es que requiere un mínimo de cuatro unidades y sólo dos de ellas se utilizan para el almacenamiento de datos. Las u
nidades se deben añadir en pares cuando se aumenta la capacidad, lo que multiplica por dos los costes de almacenamiento. El RAID 0+1 tiene un rendimiento similar al RAID 0 y puede tolerar el fallo de varias unidades de disco. 
Una configuración RAID 0+1 utiliza un número par de discos (4, 6, 8) creando dos bloques. Cada bloque es una copia exacta del otro, de ahí RAID 1, y dentro de cada bloque la escritura de datos se realiza en modo de bloques alternos, el sistema RAID 0. RAID 0+1 es una excelente solución para cualquier uso que requiera gran rendimiento y tolerancia a fallos, pero no una gran capacidad. Se utiliza normalmente en entornos como servidores de aplicaciones, que permiten a los usuarios acceder a una aplicación en el servidor y almacenar datos en sus discos duros locales, o como los servidores web, que permiten a los usuarios entrar en el sistema para localizar y consultar información. Este nivel de RAID es el más rápido, el más seguro, pero por contra el más costoso de implementar.

RAID 2: «Acceso paralelo con discos especializados. Redundancia a través del código Hamming»

El RAID nivel 2 adapta la técnica comúnmente usada para detectar y corregir errores en memorias de estado sólido. En un RAID de nivel 2, el código ECC (Error Correction Code) se intercala a través de varios discos a nivel de bit. El método empleado es el Hamming. Puesto que el código Hamming se usa tanto para detección como para corrección de errores (Error Detection and Correction), RAID 2 no hace uso completo de las amplias capacidades de detección de errores contenidas en los discos. Las propiedades del código Hamming también restringen las configuraciones posibles de matrices para RAID 2, particularmente el cálculo de paridad de los discos. Por lo tanto, RAID 2 no ha sido apenas implementado en productos comerciales, lo que también es debido a que requiere características especiales en los discos y no usa discos estándares.
Debido a que es esencialmente una tecnología de acceso paralelo, RAID 2 está más indicado para aplicaciones que requieran una alta tasa de transferencia y menos conveniente para aquellas otras que requieran una alta tasa de demanda I/O.

RAID 3: «Acceso síncrono con un disco dedicado a paridad»

Dedica un único disco al almacenamiento de información de paridad. La información de ECC (Error Checking and Correction) se usa para detectar errores. La recuperación de datos se consigue calculando el O exclusivo (XOR) de la información registrada en los otros discos. La operación I/O accede a todos los discos al mismo tiempo, por lo cual el RAID 3 es mejor para sistemas de un sólo usuario con aplicaciones que contengan grandes registros.
RAID 3 ofrece altas tasas de transferencia, alta fiabilidad y alta disponibilidad, a un coste intrínsicamente inferior que un Mirroring (RAID 1). Sin embargo, su rendimiento de transacción es pobre porque todos los discos del conjunto operan al unísono.
Se necesita un mínimo de tres unidades para implementar una solución RAID 3.


RAID 4: «Acceso Independiente con un disco dedicado a paridad.»

Basa su tolerancia al fallo en la utilización de un disco dedicado a guardar la información de paridad calculada a partir de los datos guardados en los otros discos. En caso de avería de cualquiera de las unidades de disco, la información se puede reconstruir en tiempo real mediante la realización de una operación lógica de O exclusivo. Debido a su organización interna, este RAID es especialmente indicado para el almacenamiento de ficheros de gran tamaño, lo cual lo hace ideal para aplicaciones gráficas donde se requiera, además, fiabilidad de los datos. Se necesita un mínimo de tres unidades para implementar una solución RAID 4. La ventaja con el RAID 3 está en que se puede acceder a los discos de forma individual.

RAID 5: «Acceso independiente con paridad distribuida.»

Este array ofrece tolerancia al fallo, pero además, optimiza la capacidad del sistemapermitiendo una utilización de hasta el 80% de la capacidad del conjunto de discos. Esto lo consigue mediante el cálculo de información de paridad y su almacenamiento alternativo por bloques en todos los discos del conjunto. La información del usuario se graba por bloques y de forma alternativa en todos ellos. De esta manera, si cualquiera de las unidades de disco falla, se puede recuperar la información en tiempo real, sobre la marcha, mediante una simple operación de lógica de O exclusivo, sin que el servidor deje de funcionar. 
Así pues, para evitar el problema de cuello de botella que plantea el RAID 4 con el disco de comprobación, el RAID 5 no asigna un disco específico a esta misión sino que asigna un bloque alternativo de cada disco a esta misión de escritura. Al distribuir la función de comprobación entre todos los discos, se disminuye el cuello de botella y con una cantidad suficiente de discos puede llegar a eliminarse completamente, proporcionando una velocidad equivalente a un RAID 0.
RAID 5 es el nivel de RAID más eficaz y el de uso preferente para las aplicaciones de servidor básicas para la empresa. Comparado con otros niveles RAID con tolerancia a fallos, RAID 5 ofrece la 
mejor relación rendimiento-coste en un entorno con varias unidades. Gracias a la combinación del fraccionamiento de datos y la paridad como método para recuperar los datos en caso de fallo, constituye una solución ideal para los entornos de servidores en los que gran parte del E/S es aleatoria, la protección y disponibilidad de los datos es fundamental y el coste es un factor importante. Este nivel de array es especialmente indicado para trabajar con sistemas operativos multiusuarios.
Se necesita un mínimo de tres unidades para implementar una solución RAID 5.
Los niveles 4 y 5 de RAID pueden utilizarse si se disponen de tres o más unidades de disco en la configuración, aunque su resultado óptimo de capacidad se obtiene con siete o más unidades. RAID 5 es la solución más económica por megabyte, que ofrece la mejor relación de precio, rendimiento y disponibilidad para la mayoría de los servidores.


RAID 6: «Acceso independiente con doble paridad»

Similar al RAID 5, pero incluye un segundo esquema de paridad distribuido por los distintos discos y por tanto ofrece tolerancia extremadamente alta a los fallos y a las caídas de disco, ofreciendo dos niveles de redundancia. Hay pocos ejemplos comerciales en la actualidad, ya que su coste de implementación es mayor al de otros niveles RAID, ya que las controladoras requeridas que soporten esta doble paridad son más complejas y caras que las de otros niveles RAID. Así pues, comercialmente no se implementa.


Niveles RAID anidados 

Muchas controladoras permiten anidar niveles RAID, es decir, que un RAID pueda usarse como elemento básico de otro en lugar de discos físicos. Resulta instructivo pensar en estos conjuntos como capas dispuestas unas sobre otras, con los discos físicos en la inferior.

Los RAIDs anidados se indican normalmente uniendo en un solo número los correspondientes a los niveles RAID usados, añadiendo a veces un «+» entre ellos. Por ejemplo, el RAID 10 (o RAID 1+0) consiste conceptualmente en múltiples conjuntos de nivel 1 almacenados en discos físicos con un nivel 0 encima, agrupando los anteriores niveles 1. En el caso del RAID 0+1 se usa más esta forma que RAID 01 para evitar la confusión con el RAID 1. Sin embargo, cuando el conjunto de más alto nivel es un RAID 0 (como en el RAID 10 y en el RAID 50), la mayoría de los vendedores eligen omitir el «+», a pesar de que RAID 5+0 sea más informativo.

Al anidar niveles RAID, se suele combinar un nivel RAID que proporcione redundancia con un RAID 0 que aumenta el rendimiento. Con estas configuraciones es preferible tener el RAID 0 como nivel más alto y los conjuntos redundantes debajo, porque así será necesario reconstruir menos discos cuando uno falle. (Así, el RAID 10 es preferible al RAID 0+1 aunque las ventajas administrativas de «dividir el espejo» del RAID 1 se perderían.)

Los niveles RAID anidados más comúnmente usados son:

  • RAID 0+1: Un espejo de divisiones
  • RAID 1+0: Una división de espejos
  • RAID 30: Una división de niveles RAID con paridad dedicada
  • RAID 100: Una división de una división de espejos


RAID 0+1 [editar]

Diagrama de una configuración RAID 0+1.

Un RAID 0+1 (también llamado RAID 01, que no debe confundirse con RAID 1) es un RAID usado para replicar y compartir datos entre varios discos. La diferencia entre un RAID 0+1 y un RAID 1+0 es la localización de cada nivel RAID dentro del conjunto final: un RAID 0+1 es un espejo de divisiones.

Como puede verse en el diagrama, primero se crean dos conjuntos RAID 0 (dividiendo los datos en discos) y luego, sobre los anteriores, se crea un conjunto RAID 1 (realizando un espejo de los anteriores). La ventaja de un RAID 0+1 es que cuando un disco duro falla, los datos perdidos pueden ser copiados del otro conjunto de nivel 0 para reconstruir el conjunto global. Sin embargo, añadir un disco duro adicional en una división, es obligatorio añadir otro al de la otra división para equilibrar el tamaño del conjunto.

Además, el RAID 0+1 no es tan robusto como un RAID 1+0, no pudiendo tolerar dos fallos simultáneos de discos salvo que sean en la misma división. Es decir, cuando un disco falla, la otra división se convierte en un punto de fallo único. Además, cuando se sustituye el disco que falló, se necesita que todos los discos del conjunto participen en la reconstrucción de los datos.

Con la cada vez mayor capacidad de las unidades de discos (liderada por las unidades serial ATA), el riesgo de fallo de los discos es cada vez mayor. Además, las tecnologías de corrección de errores de bit no han sido capaces de mantener el ritmo de rápido incremento de las capacidades de los discos, provocando un mayor riesgo de hallar errores físicos irrecuperables.

Dados estos cada vez mayores riesgos del RAID 0+1 (y su vulnerabilidad ante los fallos dobles simultáneos), muchos entornos empresariales críticos están empezando a evaluar configuraciones RAID más tolerantes a fallos que añaden un mecanismo de paridad subyacente. Entre los más prometedores están los enfoques híbridos como el RAID 0+1+5 (espejo sobre paridad única) o RAID 0+1+6 (espejo sobre paridad dual). Son los más habituales por las empresas.


RAID 1+0 [editar]

Diagrama de una configuración RAID 10.

Un RAID 1+0, a veces llamado RAID 10, es parecido a un RAID 0+1 con la excepción de que los niveles RAID que lo forman se invierte: el RAID 10 es una división de espejos.

En cada división RAID 1 pueden fallar todos los discos salvo uno sin que se pierdan datos. Sin embargo, si los discos que han fallado no se reemplazan, el restante pasa a ser un punto único de fallo para
todo el conjunto. Si ese disco falla entonces, se perderán todos los datos del conjunto completo. Como en el caso del RAID 0+1, si un disco que ha fallado no se reemplaza, entonces un solo error de medio irrecuperable que ocurra en el disco espejado resultaría en pérdida de datos.

Debido a estos mayores riesgos del RAID 1+0, muchos entornos empresariales críticos están empezando a evaluar configuraciones RAID más tolerantes a fallos que añaden un mecanismo de paridad subyacente. Entre los más prometedores están los enfoques híbridos como el RAID 0+1+5 (espejo sobre paridad única) o RAID 0+1+6 (espejo sobre paridad dual).

El RAID 10 es a menudo la mejor elección para bases de datos de altas prestaciones, debido a que la ausencia de cálculos de paridad proporciona mayor velocidad de escritura.


RAID 30 [editar]

Diagrama de una configuración RAID 30.

El RAID 30 o división con conjunto de paridad dedicado es una combinación de un RAID 3 y un RAID 0. El RAID 30 proporciona tasas de transferencia elevadas combinadas con una alta fiabilidad a cambio de un coste de implementación muy alto. La mejor forma de construir un RAID 30 es combinar dos conjuntos RAID 3 con los datos divididos en ambos conjuntos. El RAID 30 trocea los datos en bloque más pequeños y los divide en cada conjunto RAID 3, que a su vez lo divide en trozos aún menores, calcula la paridad aplicando un XOR a cada uno y los escriben en todos los discos del conjunto salvo en uno, donde se almacena la información de paridad. El tamaño de cada bloque se decide en el momento de construir el RAID.Etc…

El RAID 30 permite que falle un disco de cada conjunto RAID 3. Hasta que estos discos que fallaron sean reemplazados, los otros discos de cada conjunto que sufrió el fallo son puntos únicos de fallo para el conjunto RAID 30 completo. En otras palabras, si alguno de ellos falla se perderán todos los datos del conjunto. El tiempo de recuperación necesario (detectar y responder al fallo del disco y reconstruir el conjunto sobre el disco nuevo) representa un periodo de vulnerabilidad para el RAID.


RAID 100 [editar]

Un RAID 100, a veces llamado también RAID 10+0, es una división de conjuntos RAID 10. El RAID 100 es un ejemplo de «RAID cuadriculado», un RAID en el que conjuntos divididos son a su vez divididos conjuntamente de nuevo.

Todos los discos menos unos podrían fallar en cada RAID 1 sin perder datos. Sin embargo, el disco restante de un RAID 1 se convierte así en un punto único de fallo para el conjunto degradado. A menudo el nivel superior de división se hace por software. Algunos vendedores llaman a este nivel más alto un MetaLun o Soft Stripe..

Los principales beneficios de un RAID 100 (y de los RAIDs cuadriculados en general) sobre un único nivel RAID son mejor rendimiento para lecturas aleatorias y la mitigación de los puntos calientes de riesgo en el conjunto. Por estas razones, el RAID 100 es a menudo la mejor elección para bases de datos muy grandes, donde el conjunto software subyacente limita la cantidad de discos físicos permitidos en cada conjunto estándar. Implementar niveles RAID anidados permite eliminar virtualmente el límite de unidades físicas en un único volumen lógico.


RAID 50 [editar]

Un RAID 50, a veces llamado también RAID 5+0, combina la división a nivel de bloques de un RAID 0 con la paridad distribuida de un RAID 5, siendo pues un conjunto RAID 0 dividido de elementos RAID 5.

Un disco de cada conjunto RAID 5 puede fallar sin que se pierdan datos. Sin embargo, si el disco que falla no se reemplaza, los discos restantes de dicho conjunto se convierten en un punto único de fallo para todo el conjunto. Si uno falla, todos los datos del conjunto global se pierden. El tiempo necesario para recuperar (detectar y responder al fallo de disco y reconstruir el conjunto sobre el nuevo disco) representa un periodo de vulnerabilidad del conjunto RAID.

La configuración de los conjuntos RAID repercute sobre la tolerancia a fallos general. Una configuración de tres conjuntos RAID 5 de siete discos cada uno tiene la mayor capacidad y eficiencia de almacenamiento, pero sólo puede tolerar un máximo de tres fallos potenciales de disco. Debido a que la fiabilidad del sistema depende del rápido reemplazo de los discos averiados para que e
l conjunto pueda reconstruirse, es común construir conjuntos RAID 5 de seis discos con un disco de reserva en línea (
hot spare) que permite empezar de inmediato la reconstrucción en caso de fallo del conjunto. Esto no soluciona el problema de que el conjunto sufre un estrés máximo durante la reconstrucción dado que es necesario leer cada bit, justo cuando es más vulnerable. Una configuración de siete conjuntos RAID 5 de tres discos cada uno puede tolerar hasta siete fallos de disco pero tiene menor capacidad y eficiencia de almacenamiento.

El RAID 50 mejora el rendimiento del RAID 5, especialmente en escritura, y proporciona mejor tolerancia a fallos que un nivel RAID único. Este nivel se recomienda para aplicaciones que necesitan gran tolerancia a fallos, capacidad y rendimiento de búsqueda aleatoria.

A medida que el número de unidades del conjunto RAID 50 crece y la capacidad de los discos aumenta, el tiempo de recuperación lo hace también.


Niveles RAID propietarios 

Aunque todas las implementaciones de RAID difieren en algún grado de la especificación idealizada, algunas compañías han desarrollado implementaciones RAID completamente propietarias que difieren sustancialmente de todas las demás.


Paridad doble 

Diagrama una configuración RAID de doble paridad.

Una adición frecuente a los niveles RAID existentes es la paridad doble, a veces implementada y conocida como paridad diagonal.2 Como en el RAID 6, hay dos conjuntos de información de chequeo deparidad, pero a diferencia de aquél, el segundo conjunto no es otro conjunto de puntos calculado sobre un síndrome polinomial diferente para los mismos grupos de bloques de datos, sino que se calcula la paridad extra a partir de un grupo diferente de bloques de datos. Por ejemplo, sobre el gráfico tanto el RAID 5 como el RAID 6 calcularían la paridad sobre todos los bloques de la letra A para generar uno o dos bloques de paridad. Sin embargo, es bastante fácil calcular la paridad contra múltiples grupos de bloques, en lugar de sólo sobre los bloques de la letra A: puede calcularse la paridad sobre los bloques de la letra A y un grupo permutado de bloques.

De nuevo sobre el ejemplo, los bloques Q son los de la paridad doble. El bloque Q2 se calcularía como A2 xor B3 ‘xor P3, mientras el bloque Q3 se calcularía como A3 xor P2 xor C1 y el Q1 sería A1 xor B2xor C3. Debido a que los bloques de paridad doble se distribuyen correctamente, es posible reconstruir dos discos de datos que fallen mediante recuperación iterativa. Por ejemplo, B2 podría recuperarse sin usar ninguno de los bloque x1 ni x2 mediante el cálculo de B3 xor P3 xor Q2 = A2, luego A2 xor A3 xor P1 = A1, y finalmente A1 xor C3 xor Q1 = B2.

No es recomendable que el sistema de paridad doble funcione en modo degradado debido a su bajo rendimiento.


RAID 1.5 

RAID 1.5 es un nivel RAID propietario de HighPoint a veces incorrectamente denominado RAID 15. Por la poca información disponible, parece ser una implementación correcta de un RAID 1. Cuando se lee, los datos se recuperan de ambos discos simultáneamente y la mayoría del trabajo se hace en hardware en lugar de en el controlador software.


RAID 7 

RAID 7 es una marca registrada de Storage Computer Corporation, que añade cachés a un RAID 3 o RAID 4 para mejorar el rendimiento.


RAID S o RAID de paridad 

RAID S es un sistema RAID de paridad distribuida propietario de EMC Corporation usado en sus sistemas de almacenamiento Symmetrix. Cada volumen reside en un único disco físico, y se combinan arbitrariamente varios volúmenes para el cálculo de paridad. EMC llamaba originalmente a esta característica RAID S y luego la rebautizó RAID de paridad (Parity RAID) para su plataforma Symmetrix DMX. EMC ofrece también actualmente un RAID 5 estándar para el Symmetrix DMX.


Matrix RAID 

Diagrama una configuración Matriz RAID.

Matrix RAID (‘matriz RAID’) es una característica que apareció por vez primera en la BIOS RAID Intel ICH6R. No es un nuevo nivel RAID.

El Matrix RAID utiliza dos o más discos físicos, asignando partes de idéntico tamaño de cada uno de ellos diferentes niveles de RAID. Así, por ejemplo, sobre 4 discos de un total de 600GB, se pueden usar 200 en raid 0, 200 en raid 10 y 200 en raid 5. Actualmente, la mayoría de los otros productos RAID BIOS de gama baja sólo permiten que un disco participen en un único conjunto.

Este producto está dirigido a los usuarios domésticos, proporcionando una zona segura (la sección RAID 1) para documentos y otros ficheros que se desean almacenar redundantemente y una zona más rápida (la sección RAID 0) para el sistema operativo, aplicaciones, etcétera.


Linux MD RAID 10 

La controladora RAID software del kernel de Linux (llamada md, de multiple disk, ‘disco múltiple’) puede ser usada para construir un conjunto RAID 1+0 clásico, pero también permite un único nivel RAID 10 con algunas extensiones interesantes.

En particular, soporta un espejado de k bloques en n unidades cuando k no es divisible por n. Esto se hace repitiendo cada bloque k veces al escribirlo en un conjunto RAID 0 subyacente de n unidades. Evidentemente esto equivale a la configuración RAID 10 estándar.

Linux también permite crear otras configuraciones RAID usando la controladora md (niveles 0, 1, 4, 5 y 6) además de otros usos no RAID como almacenamiento multirruta y LVM2.


IBM ServeRAID 1E [editar]

Diagrama una configuración RAID 1E.

La serie de adaptadores IBM ServeRAID soportan un espejado doble de un número arbitrario de discos, como se ilustra en el gráfico.

Esta configuración es tolerante a fallos de unidades no adyacentes. Otros sistemas de almacenamiento como el StorEdge T3 de Sun soportan también este modo.


RAID Z [editar]

El sistema de ficheros ZFS de Sun Microsystems implementa un esquema de redundancia integrado parecido al RAID 5 que se denomina RAID Z. Esta configuración evita el «agujero de escritura» del RAID 5[1] y la necesidad de la secuencia leer-modificar-escribir para operaciones de escrituras pequeñas efectuando sólo escrituras de divisiones (stripes) completas, espejando los bloques pequeños en lugar de protegerlos con el cálculo de paridad, lo que resulta posible gracias a que el sistema de ficheros conoce la estructura de almacenamiento subyacente y puede gestionar el espacio adicional cuando lo necesita.


Posibilidades de RAID 


Lo que RAID puede hacer 

  • RAID puede mejorar el uptime. Los niveles RAID 1, 0+1 o 10, 5 y 6 (sus variantes, como el 50) permiten que un disco falle mecánicamente y que aun así los datos del conjunto sigan siendo acce
    sibles para los usuarios. En lugar de exigir que se realice una restauración costosa en tiempo desde una cinta, DVD o algún otro medio de respaldo lento, un RAID permite que los datos se recuperen en un disco de reemplazo a partir de los restantes discos del conjunto, mientras al mismo tiempo permanece disponible para los usuarios en un 
    modo degradado. Esto es muy valorado por las empresas, ya que el tiempo de no disponibilidad suele tener graves repercusiones. Para usuarios domésticos, puede permitir el ahorro del tiempo de restauración de volúmenes grandes, que requerirían varios DVD o cintas para las copias de seguridad.
  • RAID puede mejorar el rendimiento de ciertas aplicaciones. Los niveles RAID 0, 5 y 6 usan variantes de división (striping) de datos, lo que permite que varios discos atiendan simultáneamente las operaciones de lectura lineales, aumentando la tasa de transferencia sostenida. Las aplicaciones de escritorio que trabajan con ficheros grandes, como la edición de vídeo e imágenes, se benefician de esta mejora. También es útil para las operaciones de copia de respaldo de disco a disco. Además, si se usa un RAID 1 o un RAID basado en división con un tamaño de bloque lo suficientemente grande se logran mejoras de rendimiento para patrones de acceso que implique múltiples lecturas simultáneas (por ejemplo, bases de datos multiusuario).

Lo que RAID no puede hacer 

  • RAID no protege los datos. Un conjunto RAID tiene un sistema de ficheros, lo que supone un punto único de fallo al ser vulnerable a una amplia variedad de riesgos aparte del fallo físico de disco, por lo que RAID no evita la pérdida de datos por estas causas. RAID no impedirá que un virus destruya los datos, que éstos se corrompan, que sufran la modificación o borrado accidental por parte del usuario ni que un fallo físico en otro componente del sistema afecten a los datos. RAID tampoco supone protección alguna frente a desastres naturales o provocados por el hombre como incendios o inundaciones. Para proteger los datos, deben realizarse copias de seguridad en medios tales como DVD, cintas o discos duros externos, y almacenarlas en lugares geográficos distantes.
  • RAID no simplifica la recuperación de un desastre. Cuando se trabaja con un solo disco, éste es accesible normalmente mediante un controlador ATA o SCSI incluido en la mayoría de los sistemas operativos. Sin embargo, las controladoras RAID necesitan controladores software específicos. Las herramientas de recuperación que trabajan con discos simples en controladoras genéricas necesitarán controladores especiales para acceder a los datos de los conjuntos RAID. Si estas herramientas no los soportan, los datos serán inaccesibles para ellas.
  • RAID no mejora el rendimiento de las aplicaciones. Esto resulta especialmente cierto en las configuraciones típicas de escritorio. La mayoría de aplicaciones de escritorio y videojuegos hacen énfasis en la estrategia de buffering y lostiempos de búsqueda de los discos. Una mayor tasa de transferencia sostenida supone poco beneficio para los usuarios de estas aplicaciones, al ser la mayoría de los ficheros a los que se accede muy pequeños. La división de discos de un RAID 0 mejora el rendimiento de transferencia lineal pero no lo demás, lo que hace que la mayoría de las aplicaciones de escritorio y juegos no muestren mejora alguna, salvo excepciones. Para estos usos, lo mejor es comprar un disco más grande, rápido y caro en lugar de dos discos más lentos y pequeños en una configuración RAID 0.
  • RAID no facilita el traslado a un sistema nuevo. Cuando se usa un solo disco, es relativamente fácil trasladar el disco a un sistema nuevo: basta con conectarlo, si cuenta con la misma interfaz. Con un RAID no es tan sencillo: la BIOS RAID debe ser capaz de leer los metadatos de los miembros del conjunto para reconocerlo adecuadamente y hacerlo disponible al sistema operativo. Dado que los distintos fabricantes de controladoras RAID usan diferentes formatos de metadatos (incluso controladoras de un mismo fabricante son incompatibles si corresponden a series diferentes) es virtualmente imposible mover un conjunto RAID a una controladora diferente, por lo que suele ser necesario mover también la controladora. Esto resulta imposible en aquellos sistemas donde está integrada en la placa base. Esta limitación puede obviarse con el uso de RAIDs por software, que a su vez añaden otras diferentes (especialmente relacionadas con el rendimiento).

Historia de la computadora

Sepa más sobre la Historia de la computadora, la evolución de la informatica, el desarrollo de la tecnologia con el pasar de los años, las primeras computadoras de la historia. 

Pero antes, es bueno empezar por saber … 
Que es una computadora? 

En el diccionario, la palabra Computadora dice algo como: «aquel que hace cómputos, que calcula» 

También podemos encontrar una definición como: 
«Aparato concebido para desempeñar cálculos y operaciones lógicas con facilidad y rapidez, siguiendo instrucciones (programas) introducidas, constituido, de un modo general, por unidad(es) de entrada (input), unidad de procesamiento central (C.P.U. ), unidad de almacenamiento principal permanente, memoria temporal y unidad(es) de salida (output); 

ó una definición para una computadora … 
… personal: tipo de computadora concebida para ser usada por un usuario a la vez, basado en un microprocesador (pequeño circuito integrado) que desempeña funciones de unidad de procesamiento central: microcomputador. 

Las Primeras Máquinas de Calcular 

Hace mucho tiempo atrás el hombre descubrió que podría hacer cuentas con los dedos, o con otros objetos, tales como piedras o pedazos de madera, en esa misma época el hombre se dio cuenta que ya no podría usar solamente las manos o los objetos para calcular. 

Hace aproximadamente 4.000 a.C fue creado un aparato muy simple, llamado Ábaco, en los comienzos el Ábaco era fabricado de placas de arcilla. 

Cerca de año 200 a.C., el Ábaco era fabricado con pequeñas varillas de madera todas paralelas y piedras con un agujero en el centro que se deslizaban en esas varillas, hasta hoy el Ábaco aún es utilizado en el aprendizaje de cálculos matemáticos, para deficientes visuales. 

Podríamos decir que, en una línea del tiempo, la historia de la computadora comienza en ..



Historia de la computadora – 1600 y …


1614.
Scotsman John Napier (1550-1617) publicó un texto sobre el descubrimiento del logaritimo. Napier también inventó el sistema de Rods ( referido como Rods de Napier o los huesos de Napier). Esto hizo que fuera posible multiplicar, dividir, calcular la raíz cuadrada y cubica girándo los rods, y colocándolos en placas especiales. 

1623. 
Wilhel Schickard (1592-1635), en Tuebingen, Wuerttemberg (ahora Alemania), Creó el «Reloj Calculador». Este instrumento era capaz de sumar y restar 6 digitos, y en el caso de que el resultado sea mayor que 6 digitos, tocaba una campana. Las operaciones eran hechas mediante una manivela, que giraba y los números cambiaban, como en el contador K7 de los nuestro días. 

Historia de la computadora - Pascalina
Pascalina

1642. 
Francés matemático, Blaise Pascal construyó la máquina que sumaba ( la » Pascalina») A pesar de ser inferior al «Reloj Calculador» del Schickard (ver 1623), la máquina de Pascal se hizo más famosa. Él vendió docenas de ejemplares de la máquina en varias formas, logrando procesar hasta 8 dígitos. 

1672. 
Después de muchas tentativas, finalmente es inventada en 1672 la primera máquina de calcular capaz de desarrollar las cuatro operaciones matemáticas (suma, resta, división y multiplicación) y además la raíz cuadrada. Esa gran conquista fue atribuida al matemático Gottfried Wilhelm Von Leibnitz que mejoró la máquina de Pascal y obtuvo la calculadora universal. 



Historia de la computadora – 1800

Historia de la computadora - Telar Automatico deJackuard
Telar Automatico 
de Jackuard

1801. 
El telar automático era un telar con entrada de datos por medio de tarjetas perforadas para controlar la confección de tejidos y sus respectivos dibujos. Fue creado en 1801 por Joseph Marie Jackuard y puede ser considerada la primera máquina mecánica programable de la historia. 

 

 

 

 

Historia de la computadora - Maquina Diferencia de Babbage
Maquina Diferencial

1822. 
La Máquina Diferencial fue idealizada por el profesor y matemático de la Universidad de Cambridge, Charles Babbage, en 1822. Era un dispositivo mecánico basado en ruedas dentadas capaz de computar e imprimir extensas tablas científicas. A pesar de tantas ventajas, esta máquina nunca llegó a ser construida a causa de las limitaciones tecnológicas de la época. 

1834. 
George Scheutx, de Estocolmo, produjo una pequeña máquina de madera, después de leer una pequeña descripción del proyecto de Babbage. 

1848. 
El Inglés Matemático George Boole inventa el álgebra binaria booleana, abriendo el camino para el desarrollo de computadoras casi 100 años después 

Historia de la computadora - Maquina Diferencia de Babbage
Maquina Calculadora

1878. 
Ramon Verea, viviendo en Nueva York, inventa una calculadora con una tabla de multiplicación interna; es decir mas fácil que girar engranajes u otros métodos. El no estaba interesado en producirla, sólo quiso mostrar que los españoles podían inventar como los Americanos 

1885. 
Una calculadora de multiplicación más compacta entra en producción masiva . La producción es más o menos simultánea con la invención de Frank S. Baldwin, de Estados Unidos, y T. Odhner, suizo viviendo en Rusia, : 

Historia de la computadora - Censo de 1890
Censo de 1890

1890. 
El censo de los Estados unidos. 
En 1880 el censo llevó siete años para ser completado , ya que todos los cálculos fueron hechos la mano en papel de periódico. Por el aumento de la población se imaginó que el censo de 1890 llevaría más de 10 años – entonces fue realizado un concurso para hallar el mejor método. Este concurso fue ganado por un empleado del Censo, Herman Hollerith, quien fundaría la Tabulating Machine Company, que luego se transformó en IBM. Herman tomó prestada la idea de Babbage de usar tarjetas perforadas (vea 1801) para hacer el sistema de memoria. Con este método usado en 1890, el resultado (62,622,250 personas) estuvo listo en sólo 6 semanas. Con el sistema de memoria el análisis de los resultados fue muy fácil pero, a pesar de ser más eficiente, el costo del Censo de 1890 fue un 198% mas costoso que el de 1880. 

Historia de la computadora – 1900

1941. 
Resultado de la 2la Guerra Mundial, la computadora Z3, construido por los alemanes, tenía como principal función la codificación de mensajes. Sin embargo fue destruida en Berlín dejándonos muy poca información sobre esta computadora. 

Historia de la computadora - Colossus
Colossus

1943. 
Así como los alemanes, los ingleses también fueron en búsqueda de tecnologías para descifrar códigos secretos construyendo entonces el Colossus (Servicio de Inteligencia Británico). Poseyendo dimensiones gigantescas, el Colossus funcionaba por medio de válvulas llegando a procesar cerca de 5 mil caracteres por segundo. Fue inventado por Alan Turing. 

 

Historia de la computadora - Mark I
Mark I

1944. 
Mark I (Howard Aiken) fue la primer computadora eletromecnica construida. Bastante diferente de las computadoras actuales, Mark I medía 18 metros de largo, dos metros de ancho y pesaba 70 toneladas. Estaba constituida por 7 millones de piezas móviles y su cableado alcanzaba los 800 Km. Con la llegada de las computadoras electrónicas Mark I fue inmediatamente sustituida. 

1945. 
John von Neumann, ingeniero matemático húngaro y naturalizado americano desarrolló un proyecto de computadora basado en la lógica, con almacenamiento electrónico de la información y de datos de programación. La computadora procesaría los datos de acuerdo con las necesidades del usuario, o sea, las instrucciones no vendrían predeterminadas. Más tarde esa computadora fue construida recibiendo el nombre de Edvac. 
El primer BUG de computadora fue relatado por la Oficial Naval y Matematica Grace Murray Hopper, el BUG era una polilla dentro de la computadora, la cual hizo que la computadora tuviera un desperfecto en sus cálculos. 

Historia de la computadora - ENIAC
ENIAC

1946. 
John W. Mauchly y J. Prester Eckert Jr., junto con científicos de la Universidad de la Pensilvania, construyeron la primera computadora electrónica, conocido como ENIAC (Eletronic Numerical Integrator and Calculator). La ENIAC tenía aproximadamente 18 mil válvulas, pesaba 30 toneladas y llegaba a consumir 150 KW. En contrapartida superaba mil veces la velocidad de las otras computadoras, llegando a realizar 5 mil operaciones por segundo. 

1947. 
Presper Eckert y John Mauchly, pioneros en la historia de la computadora, fundaron la Cía. Eckert-Mauchly Computer Corporation, con el objetivo de fabricar máquinas basadas en sus experiencias como el ENIAC y el EDVAC. 

Historia de la computadora - UNIVAC
UNIVAC

1948. 
La primera computadora comercial es inventada, llamada UNIVAC.
John Bardeen, Walter Brattain y William Shockley de Bell Labs patentarían el primer transistor. 

1949. 
Thomas Watson Jr. en una charla en un encuentro de ventas de IBM preanunció que todas las partes móviles en las computadoras serían sustituidas por componentes electrónicos en una década. 

1951. 
El Univac fue la primera computadora comercializada. Proyectada por J. Presper Ecker y John Mauchly, ejecutaba 1905 operaciones por segundo y su precio llegó a US$ 1.000.000. 

1952. 
Heinz Nixdorf fundó la Cía. Nixdorf Computer Corporation, en Alemania. Esta permaneció como una corporación independiente hasta su unión con Siemens, en 1990. 

Historia de la computadora - IBM 701
IBM 701

1953. 
La Internation Business Machines IBM lanza su primera computadora digital, la IBM 701. Como primera computadora de la marca comercializada, fueron vendidas 19 máquinas en tres años.

1954. 
El genio de la matemática Alan Turing publicó el libro «On Computable Numbers» proponiendo cuestiones significativas sobre programación e inteligencia humana. Utilizó sus aplicaciones de lógica en el desarrollo del concepto de máquina Universal. 
Texas Instruments anunció el inicio de la producción de los transistores. 

Historia de la computadora - TRADIC
Tradic de AT&T Bell

1955. 
Anunciado por los laboratorios AT&T Bell, la Tradic fue la primera computadora transistorizada, teniendo aproximadamente 800 transistores en el lugar de los antiguos tubos de vacío, lo que le permitía trabajar con menos de 100 Watts de consumo de energía. 

1956. 
En el MIT (Massachussets Institute of Technology) investigadores comenzaron a probar la entrada de datos en teclados de computadoras 
En el mismo lugar comenzaron las pruebas con la primera computadora con transistores (Transistorized Experimental computer).

1957. 
Un grupo de ingenieros liderados por Ken Olsen dejaron el laboratorio Lincon del MIT y fundaron la Digital Equipment Corporation DEC. Este año también fue creado un nuevo lenguaje: el Fortran, que permitía a la computadora ejecutar tareas repetidas a partir de un conjunto de instrucciones. 

1958. 
Jack Kilby creó el primer circuito integrado en Texas Instruments para probar que resistores y capacitores podían existir en un mismo pedazo de material semiconductor. Su circuito era formado por una astilla de germanio y cinco componentes conectados por cables. La NEC de Japón construyó la primera computadora electrónica, el NEAC. 

Historia de la computadora - IBM 7000
IBM 7000

1959. 
La serie 7000 de mainframes IBM fue la primera de las computadoras transistorizadas de la compañía. En el tope de la línea de computadoras estaba el 7030, también conocido como STRETCH. Siete computadoras, las cuales usaban palabras de 64 bits y otras innovaciones, fueron vendidas a laboratorios nacionales y otros usuarios científicos. L.R. Johnson fue el primero a usar el término «arquitectura» para describir el STRETCH. 

1960. 
Fue diseñado el Dataphone, el primer módem comercial, específicamente para convertir señales digitales de computadora en señales analógicas para la transmisión a través de sus redes de larga distancia. Un equipo liderado por varios fabricantes de computadoras y el Pentágono desarrollaron el COBOL, Common Business Oriented Language, el primer lenguaje volcado hacia el uso en programación de computadoras. IBM crea la primera fábrica masiva de transistores en Nueva York . 

Historia de la computadora - UNIMATE
UNIMATE

1961. 
Se crea el UNIMATE, primer robot industrial que entró en operación en la GM. Su función era apilar pedazos de metales calientes, labor que era ejecutada sin problemas. 

1962. 
Los estudiantes del MIT Slug Russel, Shag Graetz y Alan Kotok escribieron el SpaceWar!, considerado el primer juego interactivo de computadora. El juego ofrecía gráficos interactivos que inspiraron los vídeos games futuros. 

1963. 
ASCII – American Standard Code Information Interchange – permitió que máquinas de diferentes fabricantes intercambiaran datos entre sí. 
La Digital Equipament vende la primera mini computadora. 
Douglas Engelbart recibe la patente del primer mouse para computadora. 

Historia de la computadora - CDC 6600
CDC 6600

1964. 
Thomas Kurtz y John Kemeny, profesores del DartMouth College, crearon el BASIC, un lenguaje de programación de fácil aprendizaje. 
La computadora CDC 6600, diseñada por Seymour Cray, ejecutaba hasta 3 millones de operaciones por segundo y tenía velocidad de procesamiento tres veces mayor que la de su competidora. Fue la más rápida hasta la llegada de su sucesora, en 1968, el CDC 7600 . 

1965. 
Gordon Moore dice que los circuitos integrados se van a duplicar en complejidad cada año. 

1965. 
La DEC introdujo el PDP-8, la primer mini computadora comercializada con éxito. Era vendida a US$ 18 mil. 

Historia de la computadora - CDC 6600
HP 2115

1966. 
Hewlett-Packard entró en el negocio de computadora para uso general con su HP-2115 ofreciendo un alto poder de procesamiento encontrado solamente en computadoras de gran porte. Ella soportaba una gran variedad de lenguajes, entre ellas BASIC, ALGOL y FORTRAN 
IBM presenta el primer disco de almacenamiento, el IBM RAMAC 305.Tenía la capacidad de 5 MB. 

1967. 
Seymour Papert diseñó el LOGO como un lenguaje de computación para niños. Inicialmente como un programa de dibujo, el LOGO controlaba las acciones de una ‘tortuga’ mecánica, que trazaba su rastro en un papel. 
IBM construyó el primer floppy disk. 

1968. 
Data General Corporation, compania creada por un grupo de ingenieros que dejaron DEC, introdujeron la computadora NOVA. Con 32 KB de memoria, era vendida a US$ 8 mil. La arquitectura simple del conjunto de instrucciones inspiraron la Apple I, de Steve Wozniak, ocho años más tarde. 
Robert Noyce, Andy Grove y Gordon Moore fundan Intel. 

1969. 
Programadores de los laboratorios AT&T Bell, Ken Thompson y Denis Richie desarrollan el UNIX, primer sistema operativo que podría ser aplicado en cualquier máquina. Ese año, el ejército americano conectó las máquinas de Arpanet, formando la red que originaría internet. 

Historia de la computadora - CDC 6600
SRI Shakey «The Robot»

1970. 
El SRI Shakey fue el primer robot móvil internacional controlado por inteligencia artificial. 
Las protestas contra la guerra del Vietnam alcanzaron centros de computadoras de universidades y en la Universidad de Wisconsin, hirieron un hombre y dañaron cuatro computadora. 
El Banco Nacional del Sur, en Valdosta, instaló la primera máquina de cajero automático para sus ciudadanos. 
La primer comunicación computadora – hasta – computadora se expandió cuando el Departamento de Defensa Americano estableció cuatro puntos de comunicación en el ARPANET: Universidad de California-Santa Barbara, UCLA, SRI internacional, y Universidad de Utah. 

Historia de la computadora - Kenbak 1
Kenbak 1

1971. 
La Kenbak-1 fue la primera computadora personal anunciada por un científico americano, por 750 dólares. 
La primer propaganda de un microprocesador, el Intel 4004. 
Un equipo de IBM conducida por Alan Shugart inventó el disco flexible de 8″. 

1972. 
Lanzamiento del microprocesador Intel 8008. 
Hewlett-Packard, HP, anunció la HP-35 como «la más rápida y precisa calculadora electrónica» con una memoria solid-state similar a la de una computadora. 
Steve Wozniak construy
ó el «Blue Box», un generador de tonos para atenciones de teléfono. 
Nolan Bushnell introdujo Pong y su nueva compañía, Atari vídeo games. 

1973. 
Robert Metcalfe diseño Ethernet, método para la conexión en red, en el centro de investigación de Xerox en Palo Alto, California. 
El TV Typewriter, desarrollado por Don Lancaster, proyectó el primer display de información alfanumérico en un estudio de TV común. 
La Micral fue la primera computadora comercial basada en un microprocesador, el Intel 8008. 

Historia de la computadora - Kenbak 1
Scelbi 8H

1974. 
Los investigadores de Xerox, en el centro de investigación en Palo Alto, proyectaron el ALTO, la primera estación de trabajo con una entrada interna para mouse. 
Intel y Zilog introdujeron nuevos microprocesadores. 
David Silver, del MIT, proyectó el brazo de plata, un brazo mecánico para hacer ensamble de pequeñas piezas por medio del feedback de los sensores de toque y de presión presentes en el robot. 
Scelbi anunció la computadora 8H, la primer computadora comercial anunciado en Estados Unidos basada en el microprocesador Intel 8008. 

1975. 
La edición de enero del The Popular Electronics anunció la computadora Altair 8800, basada en un microprocesador Intel 8080. 
Telenet, la primera red comercial, equivalente a ARPANET, fue instalada. 
El prototipo del módulo de indicador visual (VDM), proyectado por Lee Felsenstein, marcó la primera ejecución de un indicador de video alfanumérico memory-mapped para computadoras personales. 
La Tandem Computers lanzó la Tandem-16, la primer computadora fault-tolerant para transacción on-line de procesos. 
Es lanzada también la Imsai 8080 producida por IMS Associates, una computadora hecha con la misma estructura de BUS de la Altair 8800. 

1976. 
Steve Wozniak proyectó la Apple I, la primer computadora single-board. 
Gary Kildall desarrolló el CP/M, un sistema operativo para computadoras personales. 

Historia de la computadora - Kenbak 1
Commodore PET

1977. 
La Commodore PET (Personal Eletronic Transactor) fue la primera de muchas computadoras personales que surgieron este año. 
Apple II se hizo un éxito en su lanzamiento, en 1977, por sus características: circuito impreso en su placa-madre, fuente de alimentación, teclado y cartuchos para juegos. 
El primer mes después de su lanzamiento, la computadora personal Tandy Radio Shack’s, la TRS-80, vendió el primer año 10 mil unidades, más que las 3 mil proyectadas por la compañía. 
El gobierno de Estados Unidos adoptó el Standard de encriptografia de datos de IBM, la llave para destrabar mensajes codificados, que sirven para proteger los datos confidenciales dentro de sus agencias. 
También ese año fue lanzada la SOL una computadora de facil uso que sólo necesitaba de un monitor y eso atrajo mucha gente. 

1978. 
La VAX 11/780, de la Digital Equipment Corporation, se caracterizó por ser una máquina capaz de procesar hasta 4.3 gigabytes de memoria virtual, probando ser la más rápida de las mini computadores de la época. 
El disco flexible de 5 » se transformó en la medida standard de software para computadoras personales, inmediatamente después de que Apple y Tandy Radio Shack’s introdujeran sus softwares para este formato. 

1979. 
El microprocesador 68000, de Motorola, se mostró mucho más veloz que los microprocesadores de la época. 
Los programadores Daniel Bricklin y Robert Frankston, de la Universidad Harvard, desarrollaron el VisiCalc, programa que transformó a las computadoras comerciales en computadoras personales. 
Carver Mead, profesor del Instituto de Tecnología de California, y Lynn Conway, científica de Xerox Corporation, escribieron un manual sobre el proyecto de un chip, llamado «Introduction to VLSI Systems.» 

1980. 
Seagate Technology desarrolló el primer Hard Disk Drive para micro computadoras. 
El disco almacenó 5 megabytes de datos, cinco veces más que la mayoría de los discos comunes de la época. 
Desarrollado por Philips, el primer disco óptico de almacenamiento de datos tenía una capacidad de almacenamiento 60 veces mayor que un disco flexible de 5 «. 
John Shoch, del centro de investigación de Xerox, en Palo Alto, inventó la computadora «Worm» la cual traía un programa de alto desempeño para la búsqueda de información. 

1981. 
IBM introdujo su PC, proporcionando rápido crecimiento del mercado de computadoras personales. 
El MS-DOS (Microsoft Disk Operating System) fue el software básico o sistema operativo lanzado para la PC de IBM, estableciendo una larga asociación entre IBM y Microsoft. 
Adam Osborne desarrolló la primer computadora portátil, el Osborne I. 
Apollo Computer desarrolló la primera estación de trabajo, la DN100, con capacidad superior a la de muchos mini computadoras de precios similares.

1982. 

Mitch Kapor desarrolló el Lotus 1-2-3, software desarrollado para la computadora personal de IBM. 
La revista Time provocó euforia en su tradicional elección del «Hombre del Año» al seleccionar una COMPUTADORA como la «Máquina del Año». 
El uso de gráficos generados por computadoras para películas dio un gran paso a través de la realización de la película «Tron», lanzado por Disney. 

1983. 
La primer computadora personal con interfaz gráfica es desarrollada por Apple. 
Compaq Computer Corporation introdujo su primer computadora personal (PC), que usaba el mismo software que la PC de IBM. 
Microsoft anunció el procesador de textos Word, llamado anteriormente Multi-Tool Word. Ademas anunció el lanzamiento del sistema operativo Windows. 
El MIDI (Musical Instrument Digital Interfaz) es mostrado en la primera muestra North American Music Manufactures, en Los Angeles . 

Historia de la computadora - IBM PC AT
IBM PC AT

1984. 
Apple Computer Corporation lanzó el Macintosh, la primer computadora con mouse e interfaz gráfica, con un valor de US$ 1,5 millones de dólares. 
El diskette de 3 «, o » floppy», fue ampliamente aceptado por el mercado, ayudado por la decisión de Apple Computer de integrarlo en el nuevo Macintosh. 
IBM lanzó la PC Jr y la PC-AT. La PC Jr. fracasó, pero la PC-AT, varias veces más rápido que la PC original y basado en la plataforma Intel 80-286, se fue un éxito debido a su óptima performance y gran capacidad de almacenamiento, todos esos recursos por aproximadamente US$ 4 mil. 
William Gibson, en su libro Neuromancer, inventó el término Cybersp
ace ó Ciber espacio 

1985. 
Internet avanzó otro gran paso cuando el National Science Foundation estructuró el NSFNET conectando cinco supercomputadores en las Universidades de Princeton, Pittsburgh, California, Illinois y Cornell. 
Con capacidad para almacenar 550Mb de informacion, los nuevos CD- ROMs expandieron el mercado de CDS de música. 
Aldus lanzó el programa PageMaker para el uso en computadoras Macintosh, mostrando su interés en Desktop Publishing. 
Dos años más tarde, Aldus desarrolló la versión para IBMs y computadoras compatibles. 
El lenguaje de programación C++ surgió y dominó la industria de computadoras cuando Bjarne Stroustrup publicó el libro «The C++ Programming Language.» 

Historia de la computadora - IBM Deskpro 386
Compaq Deskpro 386

1986. 
David Miller, de AT&T Bell Labs, patentó el transitor óptico SEED (Self-ElectroOptic-Effect Device), un componente digital para computadoras. 
Daniel Hillis, de la Thinking Machines Corporation, impulsó la inteligencia artificial cuando desarrolló el concepto compacto de conexión paralela. 
IBM y MIPS desarrollaron las primeras estaciones de trabajo PC/RT y R2000 basadas en RISC. 
Compaq desbancó a IBM en el mercado cuando anunció el Deskpro 386, ls primer computadora en el mercado a usar el nuevo procesador Intel 386. 

1987. 
Motorola desarrolló el microprocesador 68030. 
IBM introdujo al mercado las computadoras PS/2, fabricadas con drives de 3 «. 
William Atkinson, ingeniero de Apple, proyectó HyperCard, un software que simplificaba el desarrollo de aplicaciones domésticas. 

1988. 
El Co-fundador de Apple, Steve Jobs, dejó Apple para fundar su propia compañía, NeXT. 
Compaq y otros fabricantes de PC desarrollaron EISA (Enhanced Industry Standart Architecture), una arquitectura standard. 
Pixar’s «Tin Toy» hizo la primera película realizada en computadoras que posteriormente ganara un premio Oscar de la Academia por mejor dibujo animado en cortometraje. 
Robert Morris envió un virus a través de Internet, que causó problemas a aproximadamente un 10% de los 60 mil usuarios de la red. 

Historia de la computadora - IBM Deskpro 386
Procesador Intel 80486

1989. 
Intel lanzó el microprocesador 80486 y el i860 chip RISC/coprocesador, cada uno contiendo más de 1 millón de transistores. 
Motorola anunció el microprocesador 68040, con aproximadamente 1,2 millón transistores. 
Maxis lanzó el SimCity, un juego de video game que utilizaba una serie de simuladores. La ciudad era usada frecuentemente en ambientes educativos. 
El concepto de la realidad virtual fue el tema principal en la convención de Siggraph’s, realizada en Boston, Massachussets. 

Historia de la computadora - IBM Deskpro 386
Windows 3.0

1990. 
Microsoft anunció el Windows 3.0, el día 22 de mayo. 
Compatible con DOS, la primera versión del Windows ofrecía satisfacción y performance a los usuarios de PC. 
La World Wide Web nació cuando Tim Berners-Lee, un investigador del CERN, desarrolló el HTML (HiperText Markup Language). 

1991. 
La Power PC de la alianza IBM, Motorola, y Apple es presentado en Julio. 
Investigaciones de Cray revelan el Cray Y-MP C90 con 16 procesadores y una velocidad de 16 Gflops. 

1992. 
DEC presenta el primer chip a implementar la arquitectura RISC Alpha 64-bit. 
En marzo de 1992, el primer audio multicast M-bone es transmitido por Internet. 
Después de generar una enorme preocupación en todos los usuarios de computadoras, el virus Michelangelo realiza un estrago de pequeñas proporciones. 

1993. 
Apple presenta Newton, el primer PDA (personal digital assistant). 
El Pentium de Intel es presentado en marzo. 
La Universidad de Illinois desarrolla una interfaz gráfica para navegación por Internet llamada NCSA Mosaic. 

Historia de la computadora - IBM Deskpro 386
Netscape Navigator 1

1994. 
Leonard Adleman de la University of Southern California demuestra que el ADN puede ser un medio computacional. 
Jim Clark y Marc Andreesen fundan Netscape Communications (originalmente Mosaic Communications). 
El primer navegador (browser) de Netscape se lanza y genera un rapido crecimiento de navegantes de la Web. 

1995. 
Toy Story es el primer largometraje enteramente generado por computadora. Windows 95 es lanzado el 24 de agosto con una gran campaña de marketing. El lenguaje de programación Java , lanzado en mayo, permite el desarrollo de aplicaciones independientes de plataformas. «Duke» es el primer applet. 

1996. 
Es presentado el Pentium Pro de Intel. 
La IEEE Computer Society celebra sus 50 años. 

1997. 
El Netscape Navigator 2.0 es lanzado.Fue el primer navegador (browser) con soporte para Javascript. 
Intel lanza el procesador Pentium de 150,166 & 200 MHz. Ellos tiene el equivalente a 3.3 millones de transistors. 
La IBM Deep Blue, fue la primer computadora en ganarle al campeón mundial de ajedrez Gary Kasparov en un juego. 

1998. 
Es lanzado el procesador Pentium II 333 MHz, más rapido que el antiguo. 
Microsoft lanza el Windows 98. 

Historia de la computadora - IBM Deskpro 386
Linux

1999. 
Linux es lanzado.El número de personas que usan LINUX es estimado en más de 10 millones . 

2000. 
AMD lanza el AMD de 1GHz. Intel lanza una cantidad limitada del Pentium III. 
Es decretado el fin del TELEX. 

2001. 
Es lanzado el Linux Kernel. 
Se lanza al mercado de computadoras el Windows XP.

Los logaritmos

Los logaritmos se inventaron alrededor de 1590 por John Napier (1550-1617) y Jobst Bürgi (1552-1632) de manera independiente. Napier, cuyo trabajo tuvo  mayor influencia, era un lord escocés, de carácter muy reservado cuyos vecinos pensaban que tenía un pacto con el diablo. Su enfoque de los logaritmos era muy diferente al nuestro; se basaba en la relación entre secuencias aritméticas y geométricas y no en la actual como función inversa (recíproca) de las funciones exponenciales. La tablas de Napier, publicadas en 1614, contenían los llamados logaritmos naturales y eran algo difíciles de usar. Un profesor londinense, Henry  Briggs, se interesó en las tablas y visitó a Napier. En sus conversaciones, ambos desarrollaron la idea de los logaritmos comunes y Briggs convirtió las tablas de Napier en las tablas de logaritmos comunes que fueron publicadas en 1617. Su importancia para el cálculo fue inmediatamente reconocida y alrededor de 1650 se imprimían en lugares tan lejanos como China. Dichas tablas siguieron siendo una poderosa herramienta de cálculo hasta el advenimiento de las calculadoras manuales de bajo precio alrededor de 1972, lo que ha disminuido su importancia como instrumento de cálculo, pero no su importancia teórica. Un efecto colateral de la invención de los logaritmos fue la popularización de la notación del sistema decimal  para los números reales.

JOOST BÜRGI

JOOST BÜRGI

Nació el 28 de febrero de 1552 en Lichtensteig (Suiza) y murió el 31 de junio de 1632 en Hesse-Kassel (hoy Alemania).

Joost Bürgi fué el más hábil y más famoso, relojero de su tiempo. También construyó importantes instrumentos científicos sobre todo para el Landgraf de Hesse-Kassel que estaba interesado  en la astronomía.

Posteriormente trabajó para el emperador Rodolfo II y su sucesor Matías (en Praga). Bürgi tenía un gran interés por las matemáticas (otro con el mismo hobby que Napier) y sus contribuciones a esta ciencia fueron importantes ya que como reconoció Johannes Kepler, entonces Matemático Imperial, su introducción al álgebra había sido inspirada por los trabajos de Bürgi. Precisamente Kepler, fue el que le sugirió que escribiera su original e interesante trabajo sobre los logaritmos, publicado en 1620. El método de los logaritmos de Bürgi es completamente diferente al  de Napier y  ambos los descubrieron por caminos completamente independientes.

Ingeniería social

Ingeniería social (seguridad informática)



En el campo de la seguridad informática, ingeniería social es la práctica de obtener información confidencial a través de la manipulación de usuarios legítimos. Es una técnica que pueden usar ciertas personas, tales como investigadores privados, criminales, o delincuentes computacionales (mejor conocidos como hackers, aunque el termino correcto es cracker) para obtener información, acceso o privilegios en sistemas de información que les permitan realizar algún acto que perjudique o exponga la persona u organismo comprometido a riesgo o abusos.

El principio que sustenta la ingeniería social es el que en cualquier sistema «los usuarios son el eslabón débil». En la practica, un ingeniero social usará comúnmente el teléfono o Internet para engañar a la gente, pretendiendo, por ejemplo, ser un empleado de algún banco o alguna otra empresa, un compañero de trabajo, un técnico o un cliente. Vía la internet o la web se usa, adicionalmente, el envío de solicitudes de renovar permisos de acceso a páginas web o memos falsos que solicitan respuestas e incluso las famosas «cadenas». llevando así a revelar información sensible, o a violar las políticas de seguridad típicas. Con este método, los ingenieros sociales aprovechan la tendencia natural de la gente a reaccionar de manera predecible en ciertas situaciones, -por ejemplo proporcionando detalles financieros a un aparente funcionario de un banco- en lugar de tener que encontrar agujeros de seguridad en los sistemas informáticos.

Quizá el ataque más simple pero muy efectivo sea engañar a un usuario llevándolo a pensar que un administrador del sistema esta solicitando una contraseña para varios propósitos legítimos. Los usuarios de sistemas de Internet frecuentemente reciben mensajes que solicitan contraseñas o información de tarjeta de crédito, con el motivo de «crear una cuenta», «reactivar una configuración», u otra operación benigna; a este tipo de ataques se los llama phishing (pesca). Los usuarios de estos sistemas deberían ser advertidos temprana y frecuentemente para que no divulguen contraseñas u otra información sensible a personas que dicen ser administradores. En realidad, los administradores de sistemas informáticos raramente (o nunca) necesitan saber la contraseña de los usuarios para llevar a cabo sus tareas. Sin embargo incluso este tipo de ataque podría no ser necesario — en una encuesta realizada por la empresa Boixnet, el 90% de los empleados de oficina de la estación Waterloo de Londres reveló sus contraseñas a cambio de un bolígrafo barato.

Otro ejemplo contemporáneo de un ataque de ingeniería social es el uso de archivos adjuntos en e-mails, ofreciendo, por ejemplo, fotos «intimas» de alguna persona famosa o algún programa «gratis» (a menudo aparentemente provenientes de alguna persona conocida) pero que ejecutan código malicioso (por ejemplo, usar la máquina de la víctima para enviar cantidades masivas de spam). Ahora, luego de que los primeros e-mails maliciosos llevaron a los proveedores de software a deshabilitar la ejecución automática de archivos adjuntos, los usuarios deben activar esos archivos de forma explícita para que ocurra una acción maliciosa. Muchos usuarios, sin embargo, abren casi ciegamente cualquier archivo adjunto recibido, concretando de esta forma el ataque.

La ingeniería social también se aplica al acto de manipulación cara a cara para obtener acceso a los sistemas computacionales.

La principal defensa contra la ingeniería social es educar y entrenar a los usuarios en el uso de políticas de seguridad y asegurarse de que estas sean seguidas.

Uno de los ingenieros sociales más famosos de los últimos tiempos es Kevin Mitnick. Según su opinión, la ingeniería social se basa en estos cuatro principios:

* Todos queremos ayudar.

* El primer movimiento es siempre de confianza hacia el otro.

* No nos gusta decir No.

* A todos nos gusta que nos alaben.

JOHN NAPIER

JOHN NAPIERimagen de Napier

Nació en 1550 en  Marchiston Castle, Edimburgo (Escocia) en el seno de una rica e importante familia, siendo el primer hijo de Archibald Napier que a la sazón contaba dieciséis años (¡qué jóvenes se casaban entonces!). Es curioso que su apellido aparece escrito de varias formas diferentes: Napeir,Nepair, Nepeir, Neper, Napare, Naper, Naipper, aunque la que más veces aparece es Jhon Neper, pero nunca de la forma como hoy se le conoce Napier.

Napier fue educado en la universidad de St. Andrews a la que llegó a la edad de trece años y pronto se apasionó con el estudio de la teología, aunque no se graduó en dicha universidad ya que completó sus estudios en Europa, y muy probablemente sus conocimientos sobre las matemáticas los haya adquirido entonces.

En 1571 regresó a Escocia y en 1574 se instaló con su esposa en el castillo de Gartness propiedad de su familia. Se dedicó al cuidado de sus propiedades con mucho empeño y aplicando sus conocimientos científicos a la agricultura llegando a ser un brillante inventor. Napier también tomó partido en las controversias religiosas de su tiempo y fue un ferviente protestante, publicando lo que él consideraba su obra más importante: Plaine Discovery of de Whole Revelation of St. Jhon en la que prevenía  del peligro que suponían los papistas y que fue traducido a otros idiomas. 

Los estudios de matemáticas  fueron solo un hobby para Napier (¿por qué en España los ricos y nobles no han tenido nunca estos hobbys?)  y a menudo se quejaba de no disponer de tiempo para ellos. Sin embargo, es hoy muy conocido por ser el inventor de los logaritmos pero también hizo otras importantes contribuciones como sus fórmulas para la resolución de triángulos esféricos, dos fórmulas conocidas como las analogías de Napier y una invención llamada «los  huesos de Napier» usado para el cálculo de multiplicaciones, divisiones, raíces cuadradas y cúbicas. También encontró expresiones exponenciales para funciones trigonométricas e introdujo la notación decimal para las fracciones. Sus tablas de logaritmos fueron publicadas en la obra titulada Mirifici logarithmorum canonis descriptio en el año de 1614, inicialmente escrito en latín pero enseguida traducido por Edward Wright. Según nuestra notación de hoy, los logaritmos de Napier serían los logaritmos de base 1/e. Napier no pensaba en los logaritmos como entes algebraícos, ya que en su tiempo el álgebra no estaba suficientemente desarrollada. El mayor inconveniente de los logaritmos de Napier fue que el log1 no era cero. El cambio a los logaritmos con la propiedad log1=0 surgió de las discusiones entre Briggs y Napier en la casa de este último. Briggs en una carta enviada antes de su encuentro también le había sugerido que las tablas de logaritmos deberían ser en base  diez y le comunicaba que había empezado a construir esa nueva tabla.

Sería sorprendente que un hombre de tan grandioso intelecto como Napier no les pareciese extraño a sus contemporáneos y, que habiendo vivido en una época  tan supersticiosa no circularan historias raras sobre   sus supuestos poderes mágicos. Dicha fama fue aprovechada por Napier en la siguiente anécdota que muestra su ingenio. Un día, en su casa se cometió un robo. Según los indicios no podía ser más que uno de sus criados. En secreto, Napier rascó hollín de la chimenea. Encerró a un  gallo, según dijo mágico, en una habitación oscura tras haberlo untado con el hollín. Reunidos los criados, les dijo que tendrían que entrar en la habitación uno después del otro y acariciar al gallo. Cuando el ladrón tocase al ave , ésta se pondría a cantar. El gallo no cantó ni una sola vez, pero al mirarles las manos todos las tenían negras salvo uno ¡ése era el ladrón! . Hoy día Napier es recordado por haber hecho  contribuciones  al desarrollo de la ciencia   que resultaron imprescindibles  para la formulación de las teorías de Kepler y Newton.