viernes, 10 de septiembre de 2010

Historia del Computador

Durante siglos la gente vivió sobre la tierra sin llevar registros ni archivos. Pero en la medida en que se formaron las organizaciones sociales y se tornó más complejo el tejido social, se fueron haciendo necesarias adaptaciones e innovaciones de diversa índole.

- Cronología.

Año 4000 a 3000 a.C. Invención del Ábaco, en China, instrumento formado por un conjunto de cuerdas paralelas, cada de las cuales sostiene varias cuentas móviles, usadas para contar, se desarrollo, hasta reflejar el sistema decimal, con diez cuentas en cada cuerda.

Año 1300 a 1500 d.C. En el imperio Inca es usado el sistema de cuentas, mediante nudos en cuerdas de colores, para mantener un registro y cálculo de los inventarios de granos y ganado.

1617 John Napier desarrolla los vástagos de Napier, formados por un conjunto de piezas con números grabados en ellas, que podían ser usadas para multiplicar, dividir y extraer raíces.

1642 Blaise Pascal construye el primer calculador mecánico, que consistía en un conjunto de ruedas, cada una de las cuales registraba un dígito decimal, y al girarse en diez pasos producía un paso de rotación en la siguiente.

1662 William Oughtred inventa la regla de cálculo.

1871 Gottfried Wilheim Von Leibnitz mejora el diseño de Pascal.

1801 Joseph Marie Jackard perfecciona la primera máquina que utiliza tarjetas perforadas; ésta era un telar, que podía tejer automáticamente diseños complejos, de acuerdo a un conjunto de instrucciones codificadas en las tarjetas perforada.

1822 Charles Babbage construye un pequeño modelo operativo de un calculador llamado “Máquina de Diferencias”

1829 Charles Xavier Thomas, construye el primer calculador que ejecuta las cuatro operaciones aritméticas en forma exacta.

1872 Frank Stephen Baldwin inventa una calculadora con teclas, basada en los principios de la máquina de Charles Thomas.

1887 Hernan Hollerith, un estadista, hizo realidad su idea de la tarjeta de lectura mecánica, y diseñó un aparato que se llamo “Máquina de Censos”. Después del censo de 1890, Hollerith trasformó su equipo para uso comercial y estableció sistemas de estadísticas de carga para los ferrocarriles. En 1896, fundó la Compañía de Máquinas de Tabulación, para hacer y vender su invento. Posteriormente esta empresa se fusionó con otras para formar lo que hoy se conoce como IBM.

El procesamiento de tarjetas perforadas se basa en una idea simple: los datos de entrada se registran inicialmente en una forma codificada, perforando huecos en las tarjetas, y estas luego alimentan a las máquinas, las cuales realizan las diferentes etapas del proceso.

1925 Vennevar Bush y sus colaboradores construyen el primer Computador analógico de gran escala.

1937 Howard Aiken de la Universidad de Harvard en Massachussetts comienza a construir una máquina calculadora automática, el Mark I, que pudiera combinar las capacidades técnicas de la época con los conceptos de tarjetas perforadas desarrolladas por Hollerith. En 1944 el proyecto fue culminado.

El Mark I es considerado el primer Computador digital de proceso general. La máquina se basaba en el concepto de aceptar datos por medio de tarjetas perforadas utilizada como entrada de datos (INPUT), realizaban cálculos controlados por un relex electromagnético y contadores aritméticos mecánicos y perforaba los resultados en tarjetas como salidas (OUTPUT).

1943 - 1946 J. Presper Ecker y John Mauchly construyen el primer Computador completamente electrónico, el E.N.I.A.C. (Electronic Numerical Integrator And Calculator), pesaba aproximadamente 30 toneladas, ocupaba un espacio aproximado de 1.500 pies cuadrados y usaba 18.000 tubos. ENIAC podía resolver en un día lo que manualmente tardaría 300 días.

1944 John Von Neumann desarrolla el concepto de los programas almacenados, es decir, un conjunto de instrucciones guardadas en una unidad de almacenamiento, que luego son ejecutadas en forma secuencial. Basándose en este concepto, Ecker y Mauchly diseñan el ENIVAC, que fue terminado en 1952.

- Generaciones.

El avance de la tecnología empleada en la construcción de los Computadores y los métodos de explotación de los mismos ha variado notablemente. Esto ha dado lugar a que podamos distinguir hasta ahora cinco generaciones distintas. El paso de una generación a otra siempre ha venido marcado por las siguientes características:

*Miniaturización del tamaño.
*Fiabilidad.
*Capacidad para resolver problemas complicados.
*Velocidad de cálculo.

PRIMERA GENERACION

Comprende desde 1951 hasta 1959. La compañía Sperry Rand Corporation construye la UNIVAC I, el primer Computador comercialmente disponible. Los componentes electrónicos usados fueron válvulas electrónicas, por este motivo su tamaño era muy grande y su mantenimiento complicado. Se calentaban rápidamente y esto obligaba a utilizar costosos sistemas de refrigeración. Eran de escasa fiabilidad, los tiempos de computación de los circuitos fundamentales eran de varios microsegundos, con lo que la ejecución de los programas largos implicaba espera, incluso de varios días. La forma de ejecutar los trabajos en los Computadores de esta generación era estrictamente a modo de secuencia.





SEGUNDA GENERACION

Comprende desde 1959 a 1964. Fueron diseñadas con orientación científico - administrativa. Las compañías NCR y RCA introducen las primeras computadoras construidas completamente a base de componentes denominados transistores que adoptan la forma de paralelepípedos de silicio, la velocidad de cálculo aumentó considerablemente. Los Computadores más populares de esta generación fueron el IBM-1401, IBM-1620, IBM-7090, IBM-7094.



TERCERA GENERACION

Comprende desde 1965. La compañía IBM produce las series 360 y 370, construidas con circuitos integrados de pequeña escala y de gran escala respectivamente, los cuales sustituyen, cada uno de ellos, a varios transistores, ocupando menor espacio y a menor costo. Estas series poseen memoria virtual que permite optimizar la memoria principal.

Las computadoras de esta generación se caracterizan por:
Uso de circuitos integrados: lo cual hizo posible la reducción del tamaño físico del Computador, y aumentó la velocidad de procesamiento, confiabilidad y precisión.
Multiprogramación: que es la ejecución de varios programas simultáneamente.



CUARTA GENERACION

Comprende desde 1970. Basados en circuitos integrados de alta y media escala de integración con la que se van consiguiendo mejoras en el tamaño físico, llegando a tener Computadores de bolsillo, aparecen los minicomputadores y los microcomputadores.

Desde 1982 Sun Microsystem ha resuelto los problemas que conllevan mantener un ambiente de computación heterogéneo, a través del empleo de NFS (Network File System o Sistema de Archivos para Red de Trabajo).

Este producto permite la interconexión de computadores de los principales proveedores de equipos, tales como: IBM, DEC, SUN, Unisys, Hewlett Packard, AT&T y más de 200 otros fabricantes. NFS, puede emplear el medio de comunicación que resulte más conveniente para el usuario: Ethernet, Token Ring, FDDI, y es totalmente independiente del sistema operativo que esté instalado en un equipo determinado. A través de NFS:Se puede compartir archivos que residan en cualquier equipo conectado a la red, sin que el usuario tenga que conocer su procedencia (acceso transparente de la información).

Ejecutar programas en distintas máquinas, dependiendo de las ventajas comparativas que tiene un equipo sobre otro en una función específica.
Compartir recursos de almacenamiento y periféricos.
Administrar la red y en general, obtener la funcionalidad y seguridad de un sistema de computación distribuida.



QUINTA GENERACION

Para algunos especialistas ya se inicio la quinta generación, en la cual se busca hacer más poderoso el Computador en el sentido que sea capaz de hacer inferencias sobre un problema específico. Se basa en la inteligencia artificial.

El Hardware de esta generación se debe caracterizar por circuitos de fibra óptica que le permita mayor rapidez e independencia de procesos, arquitectura de microcanal para mayor fluidez a los sistemas, esto provee mayor número de vías para ayudar a manejar rápido y efectivamente el flujo de información. Además se están buscando soluciones para resolver los problemas de la independencia de las soluciones y los procesos basándose para ello en Sistemas Expertos (de inteligencia artificial) capaces de resolver múltiples problemas no estructurados y en Computadores que puedan simular correctamente la forma de pensar del ser humano.

El Hardware


En computación, término inglés que hace referencia a cualquier componente físico tecnológico, que trabaja o interactúa de algún modo con la computadora. No sólo incluye elementos internos como el disco duro, CD-ROM, disquetera, sino que también hace referencia al cableado, circuitos, gabinete, etc. E incluso hace referencia a elementos externos como la impresora, el mouse, el teclado, el monitor y demás periféricos.

El hardware contrasta con el software, que es intangible y le da lógica al hardware (además de ejecutarse dentro de éste).

El hardware no es frecuentemente cambiado, en tanto el software puede ser creado, borrado y modificado sencillamente. (Excepto el firmware, que es un tipo de software que raramente es alterado).

Hardware típico de una computadora

El típico hardware que compone una computadora personal es el siguiente:

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

El hardware también puede incluir componentes externos como:

• Teclado
• Mouse, trackballs
• Joystick, gamepad, volante
• Escáner, webcam
• Micrófono, parlante
• Monitor (LCD, o CRT)
• Impresora



Distintas clasificaciones del hardware

Clasificación por la funcionalidad del hardware

* Hardware básico: dispositivos necesarios para iniciar la computadora. Los más básicos son la placa madre, la fuente de alimentación, el microprocesador y la memoria. Se podrían incluir componentes como monitor y teclado, aunque no son estrictamente básicos.

* Hardware complementario: aquellos dispositivos que complementan a la computadora, pero que no son fundamentales para su funcionamiento, como ser, impresora, unidades de almacenamiento, etc.

Clasificación por la ubicación del hardware

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

Clasificación por el flujo de información del hardware

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



El Software


En computación, el software -en sentido estricto- es todo programa o aplicación programado para realizar tareas específicas. El término "software" fue usado por primera vez por John W. Tukey en 1957.

Algunos autores prefieren ampliar la definición de software e incluir también en la definición todo lo que es producido en el desarrollo del mismo.

La palabra "software" es un contraste de "hardware"; el software se ejecuta dentro del hardware.



El "software" como programa

El software, como programa, consiste en un código en un lenguaje máquina específico para un procesador individual. El código es una secuencia de instrucciones ordenadas que cambian el estado del hardware de una computadora.

El software se suele escribir en un lenguaje de programación de alto nivel, que es más sencillo de escribir (pues es más cercano al lenguaje natural humano), pero debe convertirse a lenguaje máquina para ser ejecutado.

El software puede distinguirse en tres categorías: software de sistema, software de programación y aplicación de software. De todas maneras esta distinción es arbitraria y muchas veces un software puede caer un varias categorías.

- Software de sistema: ayuda a funcionar al hardware y a la computadora. Incluye el sistema operativo, controladores de dispositivos, herramientas de diagnóstico, servidores, sistema de ventanas, utilidades y más. Su propósito es evitar lo más posible los detalles complejos de la computación, especialmente la memoria y el hardware.

- Software de programación: provee herramientas de asistencia al programador. Incluye editores de texto, compiladores, intérprete de instrucciones, enlazadores, debuggers, etc.

- Software de aplicación: permite a los usuarios finales hacer determinadas tareas. Algunos software de aplicación son los navegadores, editores de texto, editores gráficos, antivirus, mensajeros, etc.



El software puede clasificarse según su licencia y/o forma de distribución

Formas o licencias de distribución de software:

Adware • Beerware • Careware • Crippleware • Código abierto • Donationware • Donateware • Freeware • Greenware • Nagware • Postcardware • Ransomware • Registerware • Shareware • Software de distribución libre • Software libre • Software propietario • Trialware (Demoware)

Sistemas operativos


El sistema operativo es el programa (o software) más importante de un ordenador. Para que funcionen los otros programas, cada ordenador de uso general debe tener un sistema operativo. Los sistemas operativos realizan tareas básicas, tales como reconocimiento de la conexión del teclado, enviar la información a la pantalla, no perder de vista archivos y directorios en el disco, y controlar los dispositivos periféricos tales como impresoras, escáner, etc.

En sistemas grandes, el sistema operativo tiene incluso mayor responsabilidad y poder, es como un policía de tráfico, se asegura de que los programas y usuarios que están funcionando al mismo tiempo no interfieran entre ellos. El sistema operativo también es responsable de la seguridad, asegurándose de que los usuarios no autorizados no tengan acceso al sistema.



Clasificación de los Sistemas Operativos

Los sistemas operativos pueden ser clasificados de la siguiente forma:
• Multiusuario: Permite que dos o más usuarios utilicen sus programas al mismo tiempo. Algunos sistemas operativos permiten a centenares o millares de usuarios al mismo tiempo.

• Multiprocesador: soporta el abrir un mismo programa en más de una CPU.

• Multitarea: Permite que varios programas se ejecuten al mismo tiempo.

• Multitramo: Permite que diversas partes de un solo programa funcionen al mismo tiempo.

• Tiempo Real: Responde a las entradas inmediatamente. Los sistemas operativos como DOS y UNIX, no funcionan en tiempo real.

Cómo funciona un Sistema Operativo

Los sistemas operativos proporcionan una plataforma de software encima de la cual otros programas, llamados aplicaciones, puedan funcionar. Las aplicaciones se programan para que funcionen encima de un sistema operativo particular, por tanto, la elección del sistema operativo determina en gran medida las aplicaciones que puedes utilizar.

Los sistemas operativos más utilizados en los PC son DOS, OS/2, y Windows, pero hay otros que también se utilizan, como por ejemplo Linux.

Cómo se utiliza un Sistema Operativo

Un usuario normalmente interactúa con el sistema operativo a través de un sistema de comandos, por ejemplo, el sistema operativo DOS contiene comandos como copiar y pegar para copiar y pegar archivos respectivamente. Los comandos son aceptados y ejecutados por una parte del sistema operativo llamada procesador de comandos o intérprete de la línea de comandos. Las interfaces gráficas permiten que utilices los comandos señalando y pinchando en objetos que aparecen en la pantalla.

Ejemplos de Sistema Operativo

A continuación detallamos algunos ejemplos de sistemas operativos:

Familia Windows
• Windows 95
• Windows 98
• Windows ME
• Windows NT
• Windows 2000
• Windows 2000 server
• Windows XP
• Windows Server 2003
• Windows CE
• Windows Mobile
• Windows XP 64 bits
• Windows Vista (Longhorn)

Familia Macintosh

• Mac OS 7
• Mac OS 8
• Mac OS 9
• Mac OS X

Familia UNIX

• AIX
• AMIX
• GNU/Linux
• GNU / Hurd
• HP-UX
• Irix
• Minix
• System V
• Solaris
• UnixWare



Lenguaje de programacion.


Un lenguaje de programación es aquel elemento dentro de la informática que nos permite crear programas mediante un conjunto de instrucciones, operadores y reglas de sintaxis; que pone a disposición del programador para que este pueda comunicarse con los dispositivos hardware y software existentes.

Debe distinguirse de “lenguaje informático”, que es una definición más amplia, puesto estos incluyen otros lenguajes como son el HTML o PDF que dan formato a un texto y no es programación en sí misma.

El programador es el encargado de utilizar un lenguaje de programación para crear un conjunto de instrucciones que, al final, constituirá un programa o subprograma informático.

Los lenguajes de programación pueden clasificarse según el paradigma que usan en: procedimentales, orientados a objetos, funcionales, lógicos, híbridos, etc.

Son ejemplos de lenguajes de programación: php, prolog, ASP, Action Script, ada, python, pascal, c, basic, JAVA, Java Script?, etc.



Los lenguajes de programación pueden ser clasificados de acuerdo a diversos criterios:

1.Lenguajes interpretados (Interpretes) como Basic, Dbase.

2.Lenguajes compilados (Compiladores) como C, C++, Clipper.

3.Lenguajes interpretados con recolectores de basura (Maquina Virtual) como Smalltalk, Java, Ocaml.

4.Lenguajes Scripts (Motor de ejecución) como Perl, PhP.


Clasificación de los Lenguajes de Programación

Declarativos:

Se les conoce como lenguajes declarativos en ciencias computacionales aquellos lenguajes de programación en los cuales se le indica a la computadora que es lo que se desea obtener o que es lo que se esta buscando.
Algunos ejemplos de lenguajes declarativos son el Datatrieve, SQL y las expresiones regulares.

Imperativos:

En ciencias de la computación se llama lenguajes imperativos a aquellos en los cuales se le ordena a la computadora cómo realizar una tarea siguiendo una serie de pasos o instrucciones, por ejemplo:

Paso 1. solicitar número.
Paso 2. multiplicar número por dos.
Paso 3. imprimir resultado de la operación.
Paso 4. etc.

Algunos ejemplos de lenguajes imperativos son: BASIC, C, C++, Java, Clipper, Dbase, C# y Perl.


Tipos de lenguaje de programacion.

1.Lenguajes de bajo nivel

Son lenguajes totalmente dependientes de la máquina, es decir que el programa que se realiza con este tipo de lenguajes no se pueden migrar o utilizar en otras maquinas.

Al estar prácticamente diseñados a medida del hardware, aprovechan al máximo las características del mismo.

Dentro de este grupo se encuentran:

•El lenguaje maquina: este lenguaje ordena a la máquina las operaciones fundamentales para su funcionamiento. Cnsiste en la combinación de 0's y 1's para formar las ordenes entendibles por el hardware de la maquina.
Este lenguaje es mucho más rápido que los lenguajes de alto nivel.
La desventaja es que son bastantes difíciles de manejar y usar, además de tener códigos fuente enormes donde encontrar un fallo es casi imposible.

•El lenguaje ensamblador es un derivado del lenguaje maquina y esta formado por abreviaturas de letras y números llamadas mnemotécnicos. Con la aparición de este lenguaje se crearon los programas traductores para poder pasar los programas escritos en lenguaje ensamblador a lenguaje máquina. Como ventaja con respecto al código máquina es que los códigos fuentes eran más cortos y los programas creados ocupaban menos memoria. Las desventajas de este lenguaje siguen siendo prácticamente las mismas que las del lenguaje ensamblador, ñadiendo la dificultad de tener que aprender un nuevo lenguaje difícil de probar y mantener.





2.Lenguajes de alto nivel

Son aquellos que se encuentran más cercanos al lenguaje natural que al lenguaje máquina. Están dirigidos a solucionar problemas mediante el uso de EDD's.

Se tratan de lenguajes independientes de la arquitectura del ordenador. Por lo que, en principio, un programa escrito en un lenguaje de alto nivel, lo puedes migrar de una máquina a otra sin ningún tipo de problema.

Estos lenguajes permiten al programador olvidarse por completo del funcionamiento interno de la maquina/s para la que están diseñando el programa. Tan solo necesitan un traductor que entiendan el código fuente como las características de la maquina.

Suelen usar tipos de datos para la programación y hay lenguajes de propósito general (cualquier tipo de aplicación) y de propósito especifico (como FORTRAN para trabajos científicos).



Lenguajes de Medio nivel

Se trata de un termino no aceptado por todos, pero q seguramente habrás oído. Estos lenguajes se encuentran en un punto medio entre los dos anteriores. Dentro de estos lenguajes podría situarse C ya que puede acceder a los registros del sistema, trabajar con direcciones de memoria, todas ellas características de lenguajes de bajo nivel y a la vez realizar operaciones de alto nivel.



Arquitectura del computador.


De una forma simple podemos decir que un Computador consta de dos zonas fundamentales, a saber:

- UNIDAD CENTRAL DE PROCESO (CPU)

Generalmente, la CPU es un microprocesador fabricado en un chip, un único trozo de silicio que contiene millones de componentes electrónicos. Es la encargada de la ejecución de los programas y de varias unidades periféricas que permiten al Computador comunicarse con el exterior, bien sea para capturar datos o mostrar resultados, o bien para almacenar la información.

El auténtico cerebro del Computador es la Unidad Central de Proceso, en torno a ella se organiza el resto de los elementos del sistema. En la Unidad Central de Proceso de los Computadores convencionales suelen distinguirse tres zonas básicas:

1.MEMORIA PRINCIPAL

En ella se almacenan dos tipos de información: el programa o conjunto de instrucciones a ejecutar, y los datos que manejarán dichas instrucciones. La memoria está constituida por un conjunto de células capaces de almacenar un dato o una instrucción. Con el fin de que la Unidad de control pueda diferenciar a cada una de las células, éstas van numeradas; al número que identifica a una célula, se le llama dirección.

Una vez determinada la dirección de una célula, se puede leer la información que contiene o escribir una nueva información en su interior. Para poder realizar estas operaciones la memoria dispone de dos registros especiales: el registro de dirección (MAR) y el registro de intercambio de datos (MBR).

2.UNIDAD DE CONTROL

Esta Unidad es la que se ocupa de coordinar y controlar el conjunto de operaciones que hay que realizar para dar el oportuno tratamiento a la información.


3.UNIDAD ARITMETICA LOGICA

La misión de la Unidad Aritmética Lógica es operar los datos que recibe siguiendo las indicaciones dadas por la Unidad de Control.
Dichas operaciones son como lo indica el nombre de la Unidad, operaciones aritméticas (matemáticas) o lógicas siguiendo las leyes booleanas.

- UNIDADES PERIFERICAS

Podemos distinguir dos grandes grupos de unidades periféricas. Las unidades de comunicación que permiten el diálogo con el exterior (entrada/salida) y las memorias auxiliares que sirven para almacenar grandes volúmenes de datos en forma permanente. Como ejemplo de periféricos de comunicación podemos citar: el teclado, la impresora, la pantalla de operador, y como ejemplo de memorias auxiliares: unidades de disco (Disquete flexible, Disco compacto), cintas magnéticas, etc.


Ciclo de vida del software


Un modelo de ciclo de vida de software es una vista de las actividades que ocurren durante el desarrollo de software, intenta determinar el orden de las etapas involucradas y los criterios de transición asociadas entre estas etapas.

Un modelo de ciclo de vida del software:


• Describe las fases principales de desarrollo de software.
• Define las fases primarias esperadas de ser ejecutadas durante esas fases.
• Ayuda a administrar el progreso del desarrollo del software
• Provee un espacio de trabajo para la definición de un detallado proceso de desarrollo de software.

Así, los modelos por una parte suministran una guía para los ingenieros de software con el fin de ordenar las diversas actividades técnicas en el proyecto, por otra parte suministran un marco para la administración del desarrollo y el mantenimiento, en el sentido en que permiten estimar recursos, definir puntos de control intermedios, monitorear el avance,etc.
Modelos de ciclo de vida.
Modelo en cascada

Este es el más básico de todos los modelos, y sirve como bloque de construcción para los demás modelos de ciclo de vida. La visión del modelo cascada del desarrollo de software es muy simple; dice que el desarrollo de software puede ser a través de una secuencia simple de fases. Cada fase tiene un conjunto de metas bien definidas, y las actividades dentro de una fase contribuyen a la satisfacción de metas de esa fase o quizás a una subsecuencia de metas de la fase.

El modelo de ciclo de vida cascada, captura algunos principios básicos:

• Planear un proyecto antes de embarcarse en él.
• Definir el comportamiento externo deseado del sistema antes de diseñar su arquitectura interna.
• Documentar los resultados de cada actividad.
• Diseñar un sistema antes de codificarlo.
• Testear un sistema después de construirlo.

Una de las contribuciones más importantes del modelo cascada es para los administradores, posibilitándoles avanzar en el desarrollo, aunque en una escala muy bruta.



Modelo V

El modelo de ciclo de vida V proviene del principio que establece que los procedimientos utilizados para probar si la aplicación cumple las especificaciones, ya deben haberse creado en la fase de diseño.






Modelo De Desarrollo Incremental

El desarrollo incremental es el proceso de construcción siempre incrementando subconjuntos de requerimientos del sistema. Típicamente, un documento de requerimientos es escrito al capturar todos los requerimientos para el sistema completo.

El modelo de desarrollo incremental provee algunos beneficios significativos para los proyectos:

• Construir un sistema pequeño es siempre menos riesgoso que construir un sistema grande.
• Al ir desarrollando parte de las funcionalidades, es más fácil determinar si los requerimientos planeados para los niveles subsiguientes son correctos.
• Si un error importante es realizado, sólo la última iteración necesita ser descartada.
• Reduciendo el tiempo de desarrollo de un sistema (en este caso en incremento del sistema) decrecen las probabilidades que esos requerimientos de usuarios puedan cambiar durante el desarrollo.
• Si un error importante es realizado, el incremento previo puede ser usado.
• Los errores de desarrollo realizados en un incremento, pueden ser arreglados antes del comienzo del próximo incremento.

Modelo De Desarrollo Evolutivo

Como el modelo de desarrollo incremental, el modelo de desarrollo evolutivo (algunas veces denominado como prototipado evolutivo) construye una serie de grandes versiones sucesivas de un producto. Sin embargo, mientras que la aproximación incremental presupone que el conjunto completo de requerimientos es conocido al comenzar, el modelo evolutivo asume que los requerimientos no son completamente conocidos al inicio del proyecto.

Modelo Espiral

El modelo espiral de los procesos software es un modelo del ciclo de meta-vida. En este modelo, el esfuerzo de desarrollo es iterativo. Tan pronto como uno completa un esfuerzo de desarrollo, otro comienza. Además, en cada desarrollo ejecutado, puedes seguir estos cuatros pasos:

• Establecer qué tienes terminado.
• Determinar qué quieres lograr.
• Determinar las rutas alternativas que puedes tomar para lograr estas metas. Por cada una, analizar los riesgos y resultados finales, y seleccionar la mejor.
• Seguir la alternativa seleccionada en el paso 2.


El modelo espiral captura algunos principios básicos:

• Decidir qué problema se quiere resolver antes de viajar a resolverlo.
• Examinar tus múltiples alternativas de acción y elegir una de las más convenientes.
• Evaluar qué tienes hecho y qué tienes que haber aprendido después de hacer algo.
• No ser tan ingenuo para pensar que el sistema que estás construyendo será "EL" sistema que el cliente necesita, y
• Conocer (comprender) los niveles de riesgo, que tendrás que tolerar.

El modelo espiral no es una alternativa del modelo cascada, ellos son completamente compatibles.




Modelo Concurrente

Como el modelo espiral, el modelo concurrente provee una meta-descripción del proceso software. Mientras que la contribución primaria del modelo espiral es en realidad que esas actividades del software ocurran repetidamente, la contribución del modelo concurrente es su capacidad de describir las múltiples actividades del software ocurriendo simultáneamente.

Esto no sorprende a nadie que ha estado involucrado con las diversas actividades que ocurren en algún tiempo del proceso de desarrollo de software.

Los requerimientos son usualmente "líneas de base", cuando una mayoría de los requerimientos comienzan a ser bien entendidos, en este tiempo se dedica un esfuerzo considerable al diseño. Sin embargo, una vez que comienza el diseño, cambios a los requerimientos son comunes y frecuentes (después de todo, los problemas reales cambian, y nuestro entendimiento de los problemas desarrollados también). Es desaconsejado detener el diseño en este camino cuando los requerimientos cambian; en su lugar, existe una necesidad de modificar y rehacer líneas de base de los requerimientos mientras progresa el diseño. Por supuesto, dependiendo del impacto de los cambios de los requerimientos el diseño puede no ser afectado, medianamente afectado o se requerirá comenzar todo de nuevo.

MODELO DE PROTOTIPOS

Este modelo es básicamente prueba y error ya que si al usuario no le gusta una parte del prototipo significa que la prueba fallo por lo cual se debe corregir el error que se tenga hasta que el usuario quede satisfecho.

Además el prototipo debe ser construido en poco tiempo, usando los programas adecuados y no se debe utilizar mucho dinero pues a partir de que este sea aprobado nosotros podemos iniciar el verdadero desarrollo del software. Pero eso si al construir el prototipo nos asegura que nuestro software sea de mejor calidad, además de que su interfaz sea de agrado para el usuario. Un prototipo podrá ser construido solo si con el software es posible experimentar.

Sus desventajas son que debido a que el usuario ve que el prototipo funciona piensa que este es el producto terminado y no entienden que recién se va a desarrollar el software. Otro problema es que el prototipo deber ir acompañado de otro modelo pasa su desarrollo

Hay dos clases de prototipos el desechable y el evolucionario.
El desechable nos sirve para eliminar dudas sobre lo que realmente quiere el cliente además para desarrollar la interfaz que más le convenga al cliente
El evolucionario es un modelo parcialmente construido que puede pasar de ser prototipo a ser software pero no tiene una buena documentación y calidad.



jueves, 9 de septiembre de 2010

Bases de Datos



















Una base de datos es un “almacén” que nos permite guardar grandes cantidades de información de forma organizada para que luego podamos encontrar y utilizar fácilmente.
El término de bases de datos fue escuchado por primera vez en 1963, en un simposio celebrado en California, USA. Una base de datos se puede definir como un conjunto de información relacionada que se encuentra agrupada ó estructurada.
Desde el punto de vista informático, la base de datos es un sistema formado por un conjunto de datos almacenados en discos que permiten el acceso directo a ellos y un conjunto de programas que manipulen ese conjunto de datos.


Cada base de datos se compone de una o más tablas que guarda un conjunto de datos. Cada tabla tiene una o más columnas y filas. Las columnas guardan una parte de la información sobre cada elemento que queramos guardar en la tabla, cada fila de la tabla conforma un registro.


Se define una base de datos como una serie de datos organizados y relacionados entre sí, los cuales son recolectados y explotados por los sistemas de información de una empresa o negocio en particular.

Visual Basic
















Visual Basic es un lenguaje de programación desarrollado para Microsoft. El lenguaje de programación es un idioma de BASIC, con importantes agregados. Su primera edición fue presentada en 1991, con la intención de simplificar la programación utilizando un ambiente de desarrollo completamente gráfico que facilitara la creación de interfaces gráficas y, en cierta medida, también la programación misma. Desde el 2001 Microsoft ha propuesto abandonar el desarrollo basado en la API Win32 y pasar a trabajar sobre un framework o marco común de librerías independiente de la versión del sistema operativo.

La versión original del lenguaje Basic fue creada en el año 1964, ganándose una enorme popularidad gracias sobre todo a dos implementaciones, Tiny BASIC y Microsoft BASIC, que convirtieron a este lenguaje en la primera lengua franca de los microordenadores.

Visual Basic (Visual Studio) constituye un IDE (entorno de desarrollo integrado, que ha sido empaquetado como un programa de aplicación; es decir, consiste en un editor de código (programa donde se escribe el código fuente), un depurador (programa que corrige errores en el código fuente para que pueda ser bien compilado), un compilador (programa que traduce el código fuente a lenguaje de máquina), y un constructor de interfaz gráfica o GUI (es una forma de programar en la que no es necesario escribir el código para la parte gráfica del programa, sino que se puede hacer de forma visual).