jueves, 31 de marzo de 2016

CICLO DE VIDA DEL SOFTWARE


El desarrollo de un programa o de un conjunto de aplicaciones se basa en un concepto llamado ciclo de vida. Son una serie de etapas o fases que hay que seguir secuencialmente. 

Las fases o etapas son: 

    • Análisis. 
    • Diseño. 
    • Codificación o construcción. 
    • Implantación o explotación. 
    • Mantenimiento.
Paso a explicar las fases: 




ANÁLISIS 


En esta fase se establece el producto a desarrollar, siendo necesario especificar los procesos y estructuras de datos que se van a emplear. Debe existir una gran comunicación entre el usuario y el analista para poder conocer todas las necesidades que precisa la aplicación. En el caso de falta de información por parte del usuario se puede recurrir al desarrollo de prototipos para saber con más precisión sus requerimientos. 

En el análisis estructurado se pueden emplear varias técnicas como: 


Diagramas de flujo de datos: Sirven para conocer el comportamiento del sistema mediante representaciones gráficas. 


Modelos de datos: Sirven para conocer las estructuras de datos y sus características. (Entidad relación y formas normales) 


Diccionario de datos: Sirven para describir todos los objetos utilizados en los gráficos, así como las estructuras de datos. 


Definición de los interfaces de usuario: Sirven para determinar la información de entrada y salida de datos. 


Al final de esta fase tenemos que tener claro las especificaciones de la aplicación. 


DISEÑO 



En esta fase se alcanza con mayor precisión una solución optima de la aplicación, teniendo en cuenta los recursos físicos del sistema (tipo de ordenador, periféricos, comunicaciones, etc…) y los recursos lógicos. (sistema operativo., programas de utilidad, bases de datos, etc…) 

En el diseño estructurado se pueden definir estas etapas: 


Diseño externo: Se especifican los formatos de información de entrada y salida. (pantalla y listados) 

Diseño de datos: Establece las estructuras de datos de acuerdo con su soporte físico y lógico. (estructuras en memoria, ficheros y hojas de datos) 



Diseño modular: Es una técnica de representación en la que se refleja de forma descendente la división de la aplicación en módulos. Está basado en diagramas de flujo de datos obtenidos en el análisis. 


Diseño procedimental: Establece las especificaciones para cada modulo, escribiendo el algoritmo necesario que permita posteriormente una rápida codificación. Se emplean técnicas de programación estructurada, normalmente ordinogramas y pseudocódigo. 


Al final de esta etapa se obtiene el denominado cuaderno de carga. 


CODIFICACIÓN 



Consiste en traducir los resultados obtenidos a un determinado lenguaje de programación, teniendo en cuenta las especificaciones obtenidas en el cuaderno de carga. Se deben de realizar las pruebas necesarias para comprobar la calidad y estabilidad del programa. 

Las pruebas se pueden clasificar en: 


Pruebas unitarias: Sirven para comprobar que cada módulo realice bien su tarea. 


Pruebas de interconexión: Sirven para comprobar en el programa el buen funcionamiento en conjunto de todos sus módulos. 


Pruebas de integración: Sirven para comprobar el funcionamiento correcto del conjunto de programas que forman la aplicación. (el funcionamiento de todo el sistema) 


EXPLOTACIÓN 



En esta fase se realiza la implantación de la aplicación en el sistema o sistemas físicos donde van a funcionar habitualmente y su puesta en marcha para comprobar el buen funcionamiento. 


Actividades a tener en cuenta o realizar: 

    • Instalación del/los programa/s. 
    • Pruebas de aceptación al nuevo sistema. 
    • Conversión de la información del antiguo sistema al nuevo (si hay una aplicación antigua) 
    • Eliminación del sistema anterior.
Al final de esta fase se debe de completar la información al usuario respecto al nuevo sistema y su uso. Así como facilitarle toda la documentación necesaria para una correcta explotación del sistema (manual de ayuda, manual de uso, guía de la aplicación, etc.) 



MANTENIMIENTO 

Esta es la fase que completa el ciclo de vida y en ella nos encargaremos de solventar los posibles errores o deficiencias de la aplicación. Existe la posibilidad de que ciertas aplicaciones necesiten reiniciar el ciclo de vida. 

Tipos de mantenimiento: 

Mantenimiento correctivo: Consiste en corregir errores no detectados en pruebas anteriores y que aparezcan con el uso normal de la aplicación. Este mantenimiento puede estar incluido en la garantía o mantenimiento de la aplicación. 

Mantenimiento adaptativo: Consiste en modificar el programa a causa de cambio de entorno gráfico y lógico en el que estén implantados. (nuevas generaciones de ordenadores, nuevas versiones del sistema operativo, etc.) 

Mantenimiento perfectivo: Consiste en una mejora sustancial de la aplicación al recibir por parte de los usuarios propuestas sobre nuevas posibilidades y modificaciones de las existentes. 

Los tipos de mantenimiento adaptativo y perfectivo reinician el ciclo de vida, debiendo proceder de nuevo al desarrollo de cada una de sus fases para obtener un nuevo producto. 



miércoles, 30 de marzo de 2016

HISTORIA DEL SOFTWARE







CONCEPTO, ORIGEN, EVOLUCIÓN, CARACTERÍSTICAS E IMPORTANCIA DEL SOFTWARE


CONCEPTO:  Software es todo el conjunto de programas, procedimientos y rutinas asociadas con el funcionamiento de un sistema informático, incluyendo el sistema operativo. El software es escrito por los programadores en una variedad de lenguajes de programación, esta escritura se conoce como código fuente, el cual debe ser traducido por medio de un compilador a lenguaje de máquina para que la computadora lo pueda entender y ejecutar.
Se conoce como software al equipo lógico o soporte lógico de un sistema informático, que comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentes físicos que son llamados hardware.

Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas; tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el llamado software de sistema, tal como el sistema operativo, que básicamente permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario.

Software es una palabra proveniente del inglés (literalmente: partes blandas o suaves), que en español no posee una traducción adecuada al contexto, por lo cual se la utiliza asiduamente sin traducir y así fue admitida por la Real Academia Española. Aunque puede no ser estrictamente lo mismo, suele sustituirse por expresiones tales como programas (informáticos) o aplicaciones (informáticas) o soportes lógicos.


 

AUDIO


ORIGEN:  Durante la primera generación de computadoras a finales de 1940, los programas se escribían de una manera en la que el concepto de software como una parte "independiente" del hardware se veía todavía muy lejano. En los años 40 y 50, no existían las licencias de software. El software era libre y los programas se intercambiaban como se hace con las recetas de cocina. Con el surgimiento del ARPANET (precursor del Internet) a finales de la década de los 60 empezó el surgimiento de la primera comunidad global que se alzaba sobre los valores y principios del software libre.





EVOLUCIÓNEl término “evolución” del software se utiliza desde los sesenta para denominar la dinámica de crecimiento del software.
Una definición atribuida a Lehman y Ramil dice que la evolución del software son todas las actividades de programación que se orientan a generar una nueva versión de un software a partir de una versión anterior que esté operativa.

Ned Chapin (1999) lo definió como “la aplicación de las actividades y procesos de mantenimiento del software que generan una nueva versión operativa de un software con una funcionalidad de usuario o propiedades cambiadas a partir de una versión anterior junto con los procesos y actividades de garantía de calidad y con la gestión de esos procesos”. De estas definiciones se desprende que la evolución cubre el ajuste a funcionalidades adicionales.

Para dar paso a la evolución de software es necesario dividirlas en cuatro eras que son las siguientes:

  • Durante los primeros años de la era de la computadora, el software se  contemplaba como un añadido. 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.

  • 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 - máquina.

  • 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.

  • 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. 


      CARACTERÍSTICAS: 

1. El software se desarrolla o construye; no se manufactura en el sentido clásico. A pesar de que existen similitudes entre el desarrollo del software y la manufactura del hardware, las dos actividades serian diferentes en lo fundamental. En ambas laalta calidad se alcanza por medio del buen diseño, la fase de manufactura del hardware puede incluir problemas de calidad existentes en el software.



2. El software no se desgasta. El software es inmune a los males ambientales que desgasten el hardware. Por lo tanto la curva de tasas de fallas para el software debería tener la forma de la “curva idealizada”. Los defectos sin descubrir causan tasas de fallas altas en las primeras etapas de vida de un programa. Sin embargo, los errores se corrigen y la curva se aplana: el software no se desgasta, pero si se deteriora.



3. A pesar de que la industria tiene una tendencia hacia la construcción por componentes, la mayoría del software aun se construye a la medida. Un componente de software se debe diseñar e implementar de forma que puede utilizarse en muchos programas diferentes. Los componentes reutilizables modernos encapsulan tanto los datos como el proceso se aplican a estos, lo que permite al ingeniero de software crear nuevas aplicaciones nuevas a partir de partes reutilizables.



4. El software es un elemento del sistema que es lógico, en lugar de físico y puede aplicarse en cualquier situación en la que se haya definido un conjunto específico de pasos procedimentales, es decir, un algoritmo.


IMPORTANCIA: La importancia del software radica también en que permite una comunicación entre el usuario y la máquina, e incluso una interacción entre ambos. Un ejemplo muy sencillo seria, al pulsar un botón del teclado, se activa automáticamente una serie de órdenes, que permiten identificar que botón se ha pulsado, traducirlo a lenguaje de máquina, mostrarlo en pantalla para el usuario y almacenarlo. Así, el software que está instalado en el ordenador se ha ocupado de todo eso ante un simple gesto del usuario. Esta es precisamente otra de sus grandes funciones, facilitar las tareas a los usuarios. 

Gracias al software podemos ejecutar tareas que hace décadas hubiesen llevado años de trabajo, y ello ha supuesto sin lugar a dudas una revolución mundial en la sociedad moderna. Está tan presente en la vida cotidiana, que muchas veces pasa desapercibido que no sólo se tiene programas y aplicaciones en los ordenadores, sino que la mayor parte de los electrodomésticos, coches, mandos llevan su propio software incorporado.




                                                        HISTORIA DEL SOFTWARE



                                                               IMPORTANCIA DEL SOFTWARE