jueves, 10 de febrero de 2011

CRISIS DEL SOFTWARE


La crisis del software se fundamentó en el tiempo de creación de software, ya que en la creación del mismo no se obtenían los resultados deseados, además de un gran costo y poca flexibilidad.

Básicamente, la crisis del software se refiere a la dificultad en escribir programas libres, la complejidad que supone la tarea de programar, y los cambios a los que se tiene que ver sometido un programa para ser continuamente adaptado a las necesidades de los usuarios.

Además, no existen todavía herramientas que permitan estimar de una manera exacta, antes de comenzar el proyecto, cuál es el esfuerzo que se necesitará para desarrollar un programa. Este hecho provoca que la mayoría de las veces no sea posible estimar cuánto tiempo llevará un proyecto, ni cuánto personal será necesario. Cuando se fijan plazos normalmente no se cumplen por este hecho. Del mismo modo, en muchas ocasiones el personal asignado a un proyecto se incrementa con la esperanza de disminuir el plazo de ejecución.

Por último, las aplicaciones de hoy en día son programas muy complejos, inabordables por una sola persona. En sus comienzos se valoró como causa también la inmadurez de la ingeniería de software, aunque todavía hoy en día no es posible realizar estimaciones precisas del coste y tiempo que necesitará un proyecto de software.

Englobó a una serie de sucesos que se venían observando en los proyectos de desarrollo de software:

- Los proyectos no terminaban en plazo.

-Los proyectos no se ajustaban al presupuesto inicial.

- Baja calidad del software generado.

- Software que no cumplía las especificaciones.

- Código inmantenible que dificultaba la gestión y evolución del proyecto.

Aunque se han propuesto diversas metodologías para intentar subsanar los problemas mencionados, lo cierto es que todavía hoy no existe ningún método que haya permitido estimar de manera fiable el coste y duración de un proyecto antes de sus comienzos.

viernes, 4 de febrero de 2011

MITOS DEL SOFTWARE

Los mitos del software-creencias acerca del software y de los procesos empleados para construirlo- se pueden rastrear hasta los primeros días de la computación. Los mitos tienen ciertos atributos que los convierten en insidiosos.

Mitos de la administración:

Los gestores con responsabilidad sobre el software, como los gestores en la mayoría de las disciplinas, están normalmente bajo la presión de cumplir las propuestas, hacer que no se retrase el proyecto y mejorar la calidad. Un gestor de software se agarra frecuentemente a un mito del software.

Mito: Si se falla en la planificación, se puede añadir mas programadores y adelantar el tiempo perdido.

Mitos del cliente:

En muchos casos, el cliente cree en los mitos que existen sobre el software, debido a que los gestores y desarrolladores de software hacen muy poco para corregir la mala información. Los mitos conducen a que el cliente se cree una falsa expectativa y, finalmente, quede insatisfecho con el desarrollador del software.

Mito: Si los requisitos del proyecto cambian continuamente, los cambios pueden acomodarse fácilmente, ya que el software es flexible.

Mitos de los desarrolladores:

Los mitos en los que aun creen muchos desarrolladores se han ido fomentando durante 50 años de cultura informática. Durante los primeros días del desarrollo del software, la programación se veía como un arte. Las viejas formas y actitudes tardan en morir.

Mito: Una vez que escribimos el programa y hacemos que funcione, nuestro trabajo ha terminado.

EVOLUCIÓN DEL SOFTWARE


Historia de la evolución del software

Durante los primeros años de la era de la computadora, el software se contemplaba como un añadido. La programación de computadoras era un "arte de andar por casa" para el que existían pocos métodos sistemáticos. El desarrollo del software se realizaba virtualmente sin ninguna planificación, hasta que los planes comenzaron a descalabrarse y los costes a correr. Los programadores trataban de hacer las cosas bien, y con un esfuerzo heroico, a menudo salían con éxito. El software se diseñaba a medida para cada aplicación y tenia una distribución relativamente pequeña.

La mayoría del software se desarrollaba y era utilizado por la misma persona u organización. La misma persona lo escribía, lo ejecutaba y, si fallaba, lo depuraba. El diseño era un proceso implícito, realizado en la mente de alguien y, la documentación normalmente no existía.

La segunda era en la evolución de los sistemas de computadora se extienden desde la mitad de la década de los sesenta hasta finales de los setenta. La multiprogramación y los sistemas multiusuario introdujeron nuevos conceptos de interacción hombre - maquina. También se caracterizo por el establecimiento del software como producto y la llegada de las "casas del software". Los patronos de la industria, del gobierno y de la universidad se aprestaban a "desarrollar el mejor paquete de software" y ganar así mucho dinero.

La tercera era en la evolución de los sistemas de computadora comenzó a mediados de los años setenta y continúo más allá de una década. El sistema distribuido, múltiples computadoras, cada una ejecutando funciones concurrentes y comunicándose con alguna otra, incrementó notablemente la complejidad de los sistemas informáticos. Las redes de área local y de área global, las comunicaciones digitales de alto ancho de banda y la creciente demanda de acceso "instantáneo" a los datos, supusieron una fuerte presión sobre los desarrolladores del software. La conclusión de la tercera era se caracterizo por la llegada y amplio uso de los microprocesadores. El microprocesador ha producido un extenso grupo de productos inteligentes, desde automóviles hasta hornos microondas, desde robots industriales a equipos de diagnósticos de suero sanguíneo.

La cuarta era de la evolución de los sistemas informáticos se aleja de las computadoras individuales y de los programas de computadoras, dirigiéndose al impacto colectivo de las computadoras y del software. Potentes máquinas personales controladas por sistemas operativos sofisticados, en redes globales y locales, acompañadas por aplicaciones de software avanzadas se han convertido en la norma.

La industria del software ya es la cuna de la economía del mundo. Las técnicas de la cuarta generación para el desarrollo del software están cambiando en la forma en que la comunidad del software construye programas informáticos. Las tecnologías orientadas a objetos están desplazando rápidamente los enfoques de desarrollo de software más convencionales en muchas áreas de aplicaciones.

Sin embargo, un conjunto de problemas relacionados con el software ha persistido a través de la evolución de los sistemas basados en computadora, y estos problemas continúan aumentando:

  1. Los avances del software continúan dejando atrás nuestra habilidad de construir software para alcanzar el potencial del hardware.
  2. Nuestra habilidad de construir nuevos programas no pueden ir al mismo ritmo de la demanda de nuevos programas, ni podemos construir programas lo suficientemente rápido como para cumplir las necesidades del mercado y de los negocios.
  3. El uso extenso de computadoras ha hecho de la sociedad cada vez más dependiente de la operación fiable del software. Cuando el software falla, pueden ocurrir daños económicos enormes y ocasionar sufrimiento humano.
  4. Luchamos por construir software informático que tengan fiabilidad y alta calidad.
  5. Nuestra habilidad de soportar y mejorar los programas existentes se ve amenazada por diseños pobres y recursos inadecuados.

CATEGORÍAS DE UN SOFTWARE

1.Sistemas operativos:
Estos programas son considerados como los principales de una computadora. Debido a que si la computadora no tiene un sistema operativo esta no funciona.
los hay de dos monoususario y multiusuario.

2. De aplicación:
estos estan diseñados para realizar una tarea en especifico, la mayoia de programas son de este tipo

3. Lenguajes de programación
estos son utilizados para crear otros programas
los hay en tres niveles
alto (pascal, c++, java, visual studio, etc.)
medio(interprete, compilador)
bajo(ensamblador)

4. Software de servidor
En el centro de iQ-SYSTEM PACS está iQ-WEBX el cual garantiza un flujo de trabajo de alto rendimiento. Este sistema combina un almacenamiento central, un archivo, un sistema de administración central así como una distribución de imágenes basada en la red. La integración del servidor en otros HIS, RIS o EMR puede realizarse más rápido debido a la herramienta de integración incluída – iQ-WEBX WADO. Opcionalmente están disponibles herramientas para la grabación y etiquetación automática de CDs y DVDs, impresión en papel, o proporcionar listas de trabajo a las modalidades

CLASIFICACION DEL SOFTWARE
este se divide en dos que son:
software de sistemas y software de aplicacion

SOFTWARE DE SISTEMAS
Son aquellos programas que permiten la administracion de la parte fisica o los recursos de la computadora, es la que interactua entre el usuario y los componentes hardware del ordenador. Se clasifican el Sistemas Operativos Monousuarios y Multiusuarios.

SOFTWARE DE APLICACION
Son aquellos programas que nos ayudan a tareas especificas como edicion de textos, imagenes, etc.los cuales son conocidos como aplicaciones.
software de uso generalsu estructura ofrece un gran número de aplicaciones empresariales, científicas y personales. El software de hoja de cálculo, de diseño asistido por computadoras (CAD), de procesamiento de texto, de manejo de Bases de Datos, pertenece a esta categoría. La mayoría de software para uso general se vende como paquete.
software de aplicaciones
es un programa informático diseñado para facilitar al usuario la realización de un determinado tipo de trabajo. Posee ciertas características que le diferencia de un sistema operativo (que hace funcionar al ordenador), de una utilidad (que realiza tareas de mantenimiento o de uso general) y de un lenguaje (con el cual se crean los programas informáticos). Suele resultar una solución informática para la automatización de ciertas tareas complicadas como puede ser la contabilidad o la gestión de un almacén. Ciertas aplicaciones desarrolladas ‘a medida’ suelen ofrecer una gran potencia ya que están exclusivamente diseñadas para resolver un problema específico. Otros, llamados paquetes integrados de software, ofrecen menos potencia pero a cambio incluyen varias aplicaciones, como un programa procesador de textos, de hoja de cálculo y de base de datos.


SOFTWARE DE ROGRAMACION



Los lenguajes de programación o software de programación son herramientas que nos permiten crear programas y software. Entre ellos tenemos Delphi, Visual Basic, Pascal, Java, etc…Una computadora funciona bajo control de un programa el cual debe estar almacenado en la unidad de memoria; tales como el disco duro.Los lenguajes de programación de una computadora en particular se conocen como un código de máquinas o lenguaje de máquinas. Estos lenguajes codificados en una computadora específica no podrán ser ejecutados en otra computadora diferente.Para que estos programas funcionen para diferentes computadoras.

-Los lenguajes de programación facilitan la tarea de programación, ya que disponen de formas adecuadas que permiten ser leidas y escritas por personas, a su vez resultan independientes del modelo de computador a utilizar.

-Los lenguajes de programación representan en forma simbólica y en manera de un texto los códigos que podrán ser leidos por una persona.

-Los lenguajes de programación son independientes de las computadoras a utilizar. Existen estrategias que permiten ejecutar en una computadora un programa realizado en un lenguaje de programación simbólico. Los procesadores del lenguaje son los programas que permiten el tratamiento de la información en forma de texto, representada en los lenguajes de programación simbólicos.

Hay lenguajes de programación que utilizan compilador.

La ejecución de un programa con compilador requiere de dos etapas:

1) Traducir el programa simbólico a código máquina

2) Ejecución y procesamiento de los datos.

Otros lenguajes de programación utilizan un programa intérprete o traductor, el cual analiza directamente la descripción simbólica del programa fuente y realiza las instrucciones dadas.

El intérprete en los lenguajes de programación simula una máquina virtual, donde el lenguaje de máquina es similar al lenguaje fuente. La ventaja del proceso interprete es que no necesita de dos fases para ejecutar el programa, sin embargo su inconveniente es que la velocidad de ejecución es más lenta ya que debe analizar e interpretar las instrucciones contenidas en el programa fuente.

FUNCIONES DE UN SOFTWARE

· - Administrar los recursos de cómputo

· - Proporcionar las herramientas para optimizar estos recursos.

· - Actuar como intermediario entre el usuario y la información almacenada.

CONCEPTOS BÁSICOS DEL SOFTWARE

Software

El software es un ingrediente indispensable para el funcionamiento del computador. Está formado por una serie de instrucciones y datos, que permiten aprovechar todos los recursos que el computador tiene, de manera que pueda resolver gran cantidad de problemas. Un computador en si, es sólo un conglomerado de componentes electrónicos; el software le da vida al computador, haciendo que sus componentes funcionen de forma ordenada.


El software es un conjunto de instrucciones detalladas que controlan la operación de un sistema computacional.

Software de aplicación

El software de Aplicación es aquel que hace que el computador coopere con el usuario en la realización de tareas típicamente humanas, tales como gestionar una contabilidad o escribir un texto.

La diferencia entre los programas de aplicación y los de sistema estriba en que los de sistema suponen ayuda al usuario para relacionarse con el computador y hacer un uso más cómo del mismo, mientras los de aplicación son programas que cooperan con el usuario para la realización de las actividades mencionadas

Los programadores de aplicaciones, a diferencia de los programadores de sistemas, no necesitan conocer a fondo el modo de funcionamiento interno del hardware.

Basta con que conozcan las necesidades de información de sus aplicaciones y cómo usar elsistema operativo, para conseguir satisfacer estas necesidades.

Sus programas deben ser independientes del hardware específico que se utilice y deben ser transportados sin grandes problemas de adaptación a otras computadoras y otros entornos operativos.

Dentro de los programas de aplicación, puede ser útil una distinción entre aplicaciones verticales, de finalidad específica para un tipo muy delimitado de usuarios (médicos, abogados, arquitectos…), y aplicaciones horizontales, de utilidad para una amplísima gama de usuarios de cualquier tipo.

Algunos ejemplos de software aplicaciones son:

> Procesadores de texto. (Bloc de Notas)
> Editores. (PhotoShop para el Diseño Gráfico)
> Hojas de Cálculo. (MS Excel)
> Sistemas gestores de bases de datos. (MySQL)
> Programas de comunicaciones. (MSN Messenger)
> Paquetes integrados. (Ofimática: Word, Excel, PowerPoint…)
> Programas de diseño asistido por computador. (AutoCAD)

miércoles, 2 de febrero de 2011

MASCARAS DE SUBRED

Una máscara se genera con números uno en la ubicación de los bits que usted quiera conservar y ceros en aquellos que quiera cancelar. Una vez que se crea una máscara, simplemente coloque un Y lógico entre el valor que quiere enmascarar y las máscara, a fin de mantener intacta la parte deseada y cancelar el resto.

Por lo tanto una máscara de red se presenta bajo la forma de 4 bytes separados por puntos (como una dirección IP), y está compuesta (en su notación binaria) por ceros en lugar de los bits de la dirección IP que se desea cancelar (y por unos en lugar de aquellos que se quiera conservar).

Usos interesantes de las máscaras de subred

El interés principal de una máscara de subred reside en que permite la identificación de la red asociada con una dirección IP.

Efectivamente, la red está determinada por un número de bytes en la dirección IP (1 byte por las direcciones de clase A, 2 por las de clase B y 3 bytes para la clase C). Sin embargo, una red se escribe tomando el número de bytes que la caracterizan y completándolo después con ceros. Por ejemplo, la red vinculada con la dirección 34.56.123.12 es 34.0.0.0 , porque es una dirección IP de clase A.

Para averiguar la dirección de red vinculada con la dirección IP 34.56.123.12, simplemente se debe aplicar una máscara cuyo primer byte esté solamente compuesto por números uno (o sea 255 en decimal), y los siguientes bytes compuestos por ceros.
La máscara es: 11111111.00000000.00000000.00000000
La máscara asociada con la dirección IP34.208.123.12 es, por lo tanto, 255.0.0.0.
El valor binario de 34.208.123.12 es: 00100010.11010000.01111011.00001100
De este modo, una operación lógica de AND entre la dirección IP y la máscara da el siguiente resultado:

00100010.11010000.01111011.00001100

AND

11111111.00000000.00000000.00000000

=

00100010.00000000.00000000.00000000

O sea 34.0.0.0 Esta es la red vinculada a la dirección 34.208.123.12

Generalizando, es posible obtener máscaras relacionadas con cada clase de dirección:

  • Para una dirección de Clase A, se debe conservar sólo el primer byte. La máscara tiene el siguiente formato 11111111.00000000.00000000.00000000, es decir, 255.0.0.0 en decimales;
  • Para una dirección de Clase B, se deben retener los primeros dos bytes y esto da la siguiente máscara 11111111.11111111.00000000.00000000, que corresponde a 255.255.0.0en decimales;
  • Para una dirección de Clase C, siguiendo el mismo razonamiento, la máscara tendrá el siguiente formato 11111111.11111111.11111111.00000000, es decir, 255.255.255.0 en decimales;

COMO DESCIFRAR UNA DIRECCIÓN IP


Una dirección IP es una dirección de 32 bits, escrita generalmente con el formato de 4 números enteros separados por puntos. Una dirección IP tiene dos partes diferenciadas:

  • los números de la izquierda indican la red y se les denomina netID (identificador de red).
  • los números de la derecha indican los equipos dentro de esta red y se les denomina host-ID (identificador de host).

Clases de redes

Las direcciones de IP se dividen en clases, de acuerdo a la cantidad de bytes que representan a la red.

Clase A

En una dirección IP de clase A, el primer byte representa la red.

El bit más importante (el primer bit a la izquierda) está en cero, lo que significa que hay 2 7 (00000000 a 01111111) posibilidades de red, que son 128 posibilidades. Sin embargo, la red 0 (bits con valores 00000000) no existe y el número 127 está reservado para indicar su equipo.

Las redes disponibles de clase A son, por lo tanto, redes que van desde 1.0.0.0 a 126.0.0.0 (los últimos bytes son ceros que indican que se trata seguramente de una red y no de equipos).

Los tres bytes de la izquierda representan los equipos de la red. Por lo tanto, la red puede contener una cantidad de equipos igual a:
224-2 = 16.777.214 equipos.

En binario, una dirección IP de clase A luce así:

0

Xxxxxxx

Xxxxxxxx

Xxxxxxxx

Xxxxxxxx

Red

Equipos

Clase B

En una dirección IP de clase B, los primeros dos bytes representan la red.

Los primeros dos bits son 1 y 0; esto significa que existen 214 (10 000000 00000000 a 10 111111 11111111) posibilidades de red, es decir, 16.384 redes posibles. Las redes disponibles de la clase B son, por lo tanto, redes que van de 128.0.0.0 a 191.255.0.0.

Los dos bytes de la izquierda representan los equipos de la red. La red puede entonces contener una cantidad de equipos equivalente a: Por lo tanto, la red puede contener una cantidad de equipos igual a:
216-21 = 65.534 equipos.

En binario, una dirección IP de clase B luce así:

10

Xxxxxx

Xxxxxxxx

Xxxxxxxx

Xxxxxxxx

Red

Ordenadores

Clase C

En una dirección IP de clase C, los primeros tres bytes representan la red. Los primeros tres bits son 1,1 y 0; esto significa que hay 221 posibilidades de red, es decir, 2.097.152. Las redes disponibles de la clases C son, por lo tanto, redes que van desde 192.0.0.0 a 223.255.255.0.

El byte de la derecha representa los equipos de la red, por lo que la red puede contener:
28-21 = 254 equipos.

En binario, una dirección IP de clase C luce así:

110

Xxxxx

Xxxxxxxx

Xxxxxxxx

Xxxxxxxx

Red

Ordenadores

¿Qué es una dirección IP?



Los equipos comunican a través de Internet mediante el protocolo IP (Protocolo de Internet). Este protocolo utiliza direcciones numéricas denominadas direcciones IP compuestas por cuatro números enteros (4 bytes) entre 0 y 255, y escritos en el formato xxx.xxx.xxx.xxx. Por ejemplo, 194.153.205.26 es una dirección IP en formato técnico.

Los equipos de una red utilizan estas direcciones para comunicarse, de manera que cada equipo de la red tiene una dirección IP exclusiva.

El organismo a cargo de asignar direcciones públicas de IP, es decir, direcciones IP para los equipos conectados directamente a la red pública de Internet, es el ICANN (Internet Corporation for Assigned Names and Numbers) que remplaza el IANA desde 1998 (Internet Assigned Numbers Agency).