domingo, diciembre 04, 2011

Mantenimiento de Software

El mantenimiento de software nos permite darle una vida nueva a nuestro computador, el optimizar los recursos y aprovecharlos al máximo es una de las tareas más importantes, ya que así nuestro PC trabajara mucho mejor, mas rápido y sin problema alguno
Mantenimiento Correctivo:
Mantenimiento correctivo de software, como la palabra lo indica, es corregir un problema que tiene un software, ya sea de programas o del sistema operativo.
Si es software de base de datos, también depende cuál base de datos. Incluso si se trata de un juego o el mismo internet Explorer, al que es necesario borrar registros viejos de páginas viejas, etc.
Otra opción de mantenimiento correctivo y puede ser la más eficiente de todas el formateo del disco duro y la instalación de una copia de Windows nueva, esto se hace cuando el problema que pudiera tener el sistema es muy grande y que no se puede resolver con software de prevencion.
Mantenimiento sistema operativo
Para no llegar hasta ese punto trágico para todo sistema, es necesario realizar tareas periódicas de mantenimiento, que permitan reparar los errores que contengan el disco duro, el sector de arranque o cualquier clase de falla que cause una falla o pérdida de velocidad en el sistema operativo.
Una herramienta muy completa, y que será un gran aliado a la hora de proteger los datos contenidos en el sistema es AdvancedSystemOptimizer, que nos permite en muy poco tiempo obtener un diagnóstico con todas las fallos del ordenador.
Esta aplicación cuenta con funciones tales como el análisis y reparación del sector deregistro del sistema operativo, optimizar la velocidad del disco duro (desfragmentando y eliminando archivos temporales e innecesarios) y el optimizador de memoria que permite liberar la memoria RAM cuando un proceso deja de ser utilizado.

Windows Update

Corresponde a la actualización del Sistema Operativo y parches de seguridad. Manteniendo nuestro equipo actualizado mejoraremos su rendimiento y su seguridad.
Las actualizaciones de Windows Update pueden realizarse aunque estemos usando el ordenador para otras tareas ya que apenas consume recursos. Una vez instaladas podemos posponer el reinicio del equipo (si se requiere), para completarlas.
Desfragmentador de archivos
Esta útil herramienta, permite una reestructuración de los datos almacenados en el disco duro, mejorando considerablemente su rendimiento.
Las opciones para el desfragmentador de archivos las encontraremos acudiendo a Inicio – > Todos los programas -> Accesorios – > Herramientas del sistema – >Desfragmentador de disco.
En la ventana que se abrirá, haremos clic sobre el botón Modificar la programación.
La frecuencia para el desfragmentador de disco, será suficiente con una frecuencia semanal.
El día y la hora, la fijaremos teniendo en cuenta que a la hora y día elegido debe encontrarse el PC encendido. Además tendremos en cuenta que el desfragmentador de disco ralentiza el sistema durante su funcionamiento y se puede prolongar durante bastantes minutos.
Por último debemos tener activada la casilla Ejecución programada.
Copias de Seguridad de Archivos
Es una de las tareas que menos se suele hacer por su complejidad y duración.Aunque se trate de una tarea un tanto tediosa, es la más eficaz en caso de pérdida total de los datos almacenados en el PC.
La solución que recomendamos es crear la copia de seguridad de archivos en un disco duro USB que tengamos conectado normalmente.
Para comenzar a realizar copias de seguridad de nuestros archivos, acudimos a Panel de Control (Vista clásica)> Centro de copias de seguridad.
En la ventana que se abre, seleccionamos el botón Copias de Seguridad de Archivos.Se abrirá una ventana en la que seleccionaremos el disco duro o partición donde se guardará la futura copia de seguridad.
Si no disponemos de disco duro adicional o partición distinta de la disponible para el sistema operativo, podremos crear la copia de seguridad en un DVD regrabable, con las consiguientes limitaciones de espacio que conlleva el DVD, además de estar pendientes de introducir el DVD regrabable cada vez que el sistema nos lo pida.
Una vez seleccionado el soporte, hacemos clic sobe siguiente para seleccionar las particiones y discos duros de las que deseamos crear copia de seguridad, en ningún caso podremos seleccionar la partición o disco duro donde va a ser guardada la copia de seguridad.
Así mismo en el paso anterior, no podemos guardar la copia de seguridad en la partición donde está instalado Windows Vista. Haciendo clic sobre Siguiente, elegiremos los tipos de archivos que queremos que sean guardados.
Se excluyen los archivos de Sistema, Archivos de programa, Archivos cifrados EFS, papelera de reciclaje, Archivos temporales, perfiles de usuario y archivos almacenados en particiones FAT.
Clicando sobre siguiente, elegiremos la frecuencia, que conviene que sea semanal.
El día y la hora a la que se haga debe ser una hora en la que el PC se encuentre encendido y ejecutando tareas que consuman pocos recursos, (navegar, multimedia, correo, etc.).
Para terminar hacemos clic sobre Guardar configuración e iniciar copia de seguridad. Esto hará guardar los cambios y se creará la primera copia de seguridad, algo que puede durar bastante.
De esta manera, si sucediese una catástrofe en nuestro PC, bastará con reinstalar Windows Vista de nuevo, acudir a Panel de Control (Vista clásica)> Centro de copias de seguridad y restauración y hacer clic sobre restaurar archivos.
De este modo recuperaremos el sistema y todos nuestros documentos y archivos importantes.




GNU-Linux

Es uno de los términos empleados para referirse a la combinación del núcleo o kermel  libre similar a Unix denominado Linux, que es usado con herramientas de un sistema GNU. Su desarrollo es uno de los ejemplos más prominentes de software libre; todo su código fuente puede ser utilizado, modificado y redistribuido libremente por cualquiera bajo los términos de la GPL (Licensia Publica General del GNU, en inglés: General Public License) y otra serie de licencias libres.
A pesar de que Linux es, en sentido estricto, el sistema operativo, parte fundamental de la interacción entre el núcleo y el usuario (o los programas de aplicación) se maneja usualmente con las herramientas del proyecto GNU o de otros proyectos como GHOME. Sin embargo, una parte significativa de la comunidad, así como muchos medios generales y especializados, prefieren utilizar el término Linuxpara referirse a la unión de ambos proyectos. Para más información consulte la sección "Denominación GNU/linux" o el artículo"Controversia por la denominación de GNU/Linux.
A las variantes de esta unión de programas y tecnologías, a las que se les adicionan diversos programas de aplicación de propósitos específicos o generales se las denomina distribuciones. Su objetivo consiste en ofrecer ediciones que cumplan con las necesidades de un determinado grupo de usuarios. Algunas de ellas son especialmente conocidas por su uso en servidores y supercomputadoras. donde tiene la cuota más importante del mercado. Según un informe de IDC, GNU/Linux es utilizado por el 78% de los principales 500 servidores del mundo, otro informe le da una cuota de mercado de 89% en los 500 mayores supercomputadores. Con menor cuota de mercado el sistema GNU/Linux también es usado en el segmento de las computadora de escritorio, portales,computadora de bolsillos, teléfonos móviles, sistemas enbebidores, videoconsola y otros dispositivos.

sábado, diciembre 03, 2011

SOFTWARE


Software
El Software es el soporte lógico e inmaterial que permite que la computadora pueda desempeñar tareas inteligentes, dirigiendo a los componentes físicos o hardware con instrucciones y datos a través de diferentes tipos de programas.
El Software son los programas de aplicación y los sistemas operativos, que según las funciones que realizan pueden ser clasificados en:
·         Software de Sistema
·         Software de Aplicación
·         Software de Programación
Software de Sistema
Se llama Software de Sistema o Software de Base al conjunto de programas que sirven para interactuar con el sistema, confiriendo control sobre el hardware, además de dar soporte a otros programas.
El Software de Sistema se divide en:
·         Sistema Operativo
·         Programas Utilitarios
Sistema operativo
El Sistema Operativo es un conjunto de programas que administran los recursos de la computadora y controlan su funcionamiento.
Un Sistema Operativo realiza cinco funciones básicas: Suministro de Interfaz al Usuario, Administración de Recursos, Administración de Archivos, Administración de Tareas y Servicio de Soporte.
1.       Suministro de interfaz al usuario: Permite al usuario comunicarse con la computadora por medio de interfaces que se basan en comandos, interfaces que utilizan menús, e interfaces gráficas de usuario.
2.       Administración de recursos: Administran los recursos del hardware como la CPU, memoria, dispositivos de almacenamiento secundario y periféricos de entrada y de salida.
3.       Administración de archivos: Controla la creación, borrado, copiado y acceso de archivos de datos y de programas.
4.       Administración de tareas: Administra la información sobre los programas y procesos que se están ejecutando en la computadora. Puede cambiar la prioridad entre procesos, concluirlos y comprobar el uso de estos en la CPU, así como terminar programas.
5.       Servicio de soporte: Los Servicios de Soporte de cada sistema operativo dependen de las implementaciones añadidas a este, y pueden consistir en inclusión de utilidades nuevas, actualización de versiones, mejoras de seguridad, controladores de nuevos periféricos, o corrección de errores de software.

Controladores de Dispositivos
Los Controladores de Dispositivos son programas que permiten a otros programa de mayor nivel como un sistema operativo interactuar con un dispositivo de hardware.
Programas Utilitarios
Los Programas Utilitarios realizan diversas funciones para resolver problemas específicos, además de realizar tareas en general y de mantenimiento. Algunos se incluyen en el sistema operativo.
Software de Aplicación
El Software de Aplicación son los programas diseñados para o por los usuarios para facilitar la realización de tareas específicas en la computadora, como pueden ser las aplicaciones ofimáticas (procesador de texto, hoja de cálculo, programa de presentación, sistema de gestión de base de datos...), u otros tipos de software especializados como software médico, software educativo, editores de música, programas de contabilidad, etc.
Software de Programación
El Software de Programación es el conjunto de herramientas que permiten al desarrollador informático escribir programas usando diferentes alternativas y lenguajes de programación.
Este tipo de software incluye principalmente compiladores, intérpretes, ensambladores, enlazadores, depuradores, editores de texto y un entorno de desarrollo integrado que contiene las herramientas anteriores, y normalmente cuenta una avanzada interfaz gráfica de usuario (GUI).











Carácter evolutivo del software

El software (como programa) es un producto desarrollado (no fabricado), y es el derivado del "proceso" desarrollado según la ingeniería de software. Este producto es intrínsecamente evolutivo durante su ciclo de vida. El software evoluciona, en general, generando versiones cada vez más completas, complejas, mejoradas, optimizadas en algún aspecto, adecuadas a nuevas plataformas (sean de hardware o sistemas operativos), etc.
Cuando un sistema deja de evolucionar, eventualmente cumplirá con su ciclo de vida, entrará en obsolescencia e inevitablemente, tarde o temprano, será reemplazado por un producto nuevo.
El software evoluciona sencillamente por que se debe adaptar a los cambios del entorno, sean funcionales (exigencias de usuarios), operativos, de plataforma o arquitectura hardware.
La dinámica de evolución del software es el estudio de los cambios del sistema. La mayor contribución en esta área fue realizada por Meir  M. Lehman y Belady, comenzando en los años 70 y 80. Su trabajo continuó en la década de 1990 cuando Lehman y otros investigadores de relevancia en la realimentación en los procesos de evolución (Lehman, 1996; Lehman et al., 1998; lehman et al., 2001). A partir de estos estudios propusieron un conjunto de leyes (conocidas como Leyes de Lehman) respecto de los cambios de los sistemas. Estas leyes (en realidad son hipótesis) son invariantes y ampliamente aplicables.
Lehman y Belady analizaron el crecimiento y la evolución de varios sistemas software de gran porte; derivando finalmente, según sus medidas, las siguientes ocho leyes:
  1. Cambio continuo: Un programa que se usa en un entorno real necesariamente debe cambiar o se volverá progresivamente menos útil en ese entorno.
  2. Complejidad creciente: A medida que un programa en evolución cambia, su estructura tiende a ser cada vez más compleja. Se deben dedicar recuersos extras para preservar y simplificar la estrucutura.
  3. Evolución prolongada del programa: La evoluvión de los programas es un proceso autoregulativo. Los atributos de los sistemas, tales como tamaño, tiempo entre entregas y la cantidad de errores documentados son aproximadamente invariantes para cada entrega del sistema.
  4. Estabilidad organizacional: Durante el tiempo de vida de un programa, su velocidad de desarrollo es aproximadamente constante e independiente de los recursos dedicados al desarrollo del sistema.
  5. Conservación de la familiaridad: Durante el tiempo de vida de un sistema, el cambio incremental en cada entrega es aproximadamente constante.
  6. Crecimiento continuado: La funcionalidad ofrecida por los sistemas tiene que crecer continuamente para mantener la satisfacción de los usuarios.
  7. Decremento de la calidad: La calidad de los sistemas software comenzará a disminuir a menos que dichos sistemas se adapten a los cambios de su entorno de funcionamiento.
  8. Realimentación del sistema: Los procesos de evolución incorporan sistemas de realimentación multiagente y multibucle y estos deben ser tratados como sistemas de realimentación para lograr una mejora significativa del producto.

Instalación y paso a producción

La instalación del software es el proceso por el cual los programas desarrollados son transferidos apropiadamente al computador destino, inicializados, y, eventualmente, configurados; todo ello con el propósito de ser ya utilizados por el usuario final. Constituye la etapa final en el desarrollo propiamente dicho del software. Luego de ésta el producto entrará en la fase de funcionamiento y producción, para el que fuera diseñado.
La instalación, dependiendo del sistema desarrollado, puede consistir en una simple copia al disco regido destino (casos raros actualmente); o bien, más comúnmente, con una de complejidad intermedia en la que los distintos archivos componentes del software (ejecutables, biblioteca, datos propios, etc.) son descomprimido y copiados a lugares específicos preestablecidos del disco; incluso se crean vínculos con otros productos, además del propio sistema operativo Este último caso, comúnmente es un proceso bastante automático que es creado y guiado con heramientas software específicas (empaquetado y distribución,instaladores).
En productos de mayor complejidad, la segunda alternativa es la utilizada, pero es realizada o guiada por especialistas; puede incluso requerirse la instalación en varios y distintos computadores (instalación distribuida).
También, en software de mediana y alta complejidad normalmente es requerido un proceso de configuracion y chequeo, por el cual se asignan adecuados parámetros de funcionamiento y se testea la operatividad funcional del producto.
En productos de venta masiva las instalaciones completas, si son relativamente simples, suelen ser realizadas por los propios usuarios finales (tales como sistemas operativos, paquetes de oficina, utilitarios, etc.) con herramientas propias de instalación guiada; incluso la configuración suele ser automática. En productos de diseño específico o «a medida» la instalación queda restringida, normalmente, a personas especialistas involucradas en el desarrollo del software en cuestión.
Una vez realizada exitosamente la instalación del software, el mismo pasa a la fase de producción (operatividad), durante la cual cumple las funciones para las que fue desarrollado, es decir, es finalmente utilizado por el (o los) usuario final, produciendo los resultados esperados.

jueves, diciembre 01, 2011

Proceso de creación

Se define como Proceso al conjunto ordenado de pasos a seguir para llegar a la solución de un problema u obtención de un producto, en este caso particular, para lograr la obtención de un producto software que resuelva un problema.
El proceso de creación de software puede llegar a ser muy complejo, dependiendo de su porte, características y criticidad del mismo. Por ejemplo la creación de un sistema operativo es una tarea que requiere proyecto, gestión, numerosos recursos y todo un equipo disciplinado de trabajo. En el otro extremo, si se trata de un sencillo programa (por ejemplo, la resolución de una ecuación de segundo orden), éste puede ser realizado por un solo programador (incluso aficionado) fácilmente. Es así que normalmente se dividen en tres categorías según su tamaño (lineas de código) o costo: de Pequeño, Mediano y Gran porte. Existen varias metodologías para estimarlo, una de las más populares es el sistema COCOMO que provee métodos y un software (programa) que calcula y provee una estimación de todos los costos de producción en un «proyecto software» (relación horas/hombre, costo monetario, cantidad de líneas fuente de acuerdo a lenguaje usado, etc.).
Considerando los de gran porte, es necesario realizar complejas tareas, tanto técnicas como de gerencia, una fuerte gestión y análisis diversos (entre otras cosas), por lo cual se ha desarrollado una ingeniería para su estudio y realización: es conocida como Ingeniera de Software
En tanto que en los de mediano porte, pequeños equipos de trabajo (incluso un avezado analista-   programador solitario) pueden realizar la tarea. Aunque, siempre en casos de mediano y gran porte (y a veces también en algunos de pequeño porte, según su complejidad), se deben seguir ciertas etapas que son necesarias para la construcción del software. Tales etapas, si bien deben existir, son flexibles en su forma de aplicación, de acuerdo a la metodología o  Proceso desarrollado escogido y utilizado por el equipo de desarrollo o por el analista-programador solitario (si fuere el caso).
Los «procesos de desarrollo de software» poseen reglas preestablecidas, y deben ser aplicados en la creación del software de mediano y gran porte, ya que en caso contrario lo más seguro es que el proyecto o no logre concluir o termine sin cumplir los objetivos previstos, y con variedad de fallos inaceptables (fracasan, en pocas palabras). Entre tales «procesos» los hay ágiles o livianos (ejemplo XP), pesados y lentos (ejemplo RUP) y variantes intermedias; y normalmente se aplican de acuerdo al tipo y porte del software a desarrollar, a criterio del líder (si lo hay) del equipo de desarrollo. Algunos de esos procesos son Programación Externa (en inglés eXtreme Programming o XP), Proceso Unificado de Rational (en inglés Rational Unified Process o RUP), Feature Driven Development (FDD), etc.
Cualquiera sea el «proceso» utilizado y aplicado al desarrollo del software (RUP, FDD, etc), y casi independientemente de él, siempre se debe aplicar un «modelo de ciclo de vida».
Se estima que, del total de proyectos software grandes emprendidos, un 28% fracasan, un 46% caen en severas modificaciones que lo retrasan y un 26% son totalmente exitosos. 
Cuando un proyecto fracasa, rara vez es debido a fallas técnicas, la principal causa de fallos y fracasos es la falta de aplicación de una buena metodología o proceso de desarrollo. Entre otras, una fuerte tendencia, desde hace pocas décadas, es mejorar las metodologías o procesos de desarrollo, o crear nuevas y concientizar a los profesionales en su utilización adecuada. Normalmente los especialistas en el estudio y desarrollo de estas áreas (metodologías) y afines (tales como modelos y hasta la gestión misma de los proyectos) son los Ingenieros en Software, es su orientación. Los especialistas en cualquier otra área de desarrollo informático (analista, programador, Lic. en Informática, Ingeniero en Informática, Ingeniero de Sistemas, etc.) normalmente aplican sus conocimientos especializados pero utilizando modelos, paradigmas y procesos ya elaborados.
Es común para el desarrollo de software de mediano porte que los equipos humanos involucrados apliquen sus propias metodologías, normalmente un híbrido de los procesos anteriores y a veces con criterios propios.
El proceso de desarrollo puede involucrar numerosas y variadas tareas , desde lo administrativo, pasando por lo técnico y hasta la gestión y el gerenciamiento. Pero casi rigurosamente siempre se cumplen ciertas etapas mínimas; las que se pueden resumir como sigue:
  • Captura, Elicitación , Especificación y Análisis de requisitos (ERS)
  • Diseño
  • Codificación
  • Pruebas (unitarias y de integración)
  • Instalación y paso a Producción
  • Mantenimiento
En las anteriores etapas pueden variar ligeramente sus nombres, o ser más globales, o contrariamente, ser más refinadas; por ejemplo indicar como una única fase (a los fines documentales e interpretativos) de «análisis y diseño»; o indicar como «implementación» lo que está dicho como «codificación»; pero en rigor, todas existen e incluyen, básicamente, las mismas tareas específicas.
En el apartado 4 del presente artículo se brindan mayores detalles de cada una de las listadas etapas.

lunes, noviembre 28, 2011

Clasificacion

Si bien esta distinción es, en cierto modo, arbitraria, y a veces confusa, a los fines prácticos se puede clasificar al software en tres grandes tipos:
  • Software de Sistema: Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles del sistema informático en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento. Incluye entre otros:

    • Sistema operativos
    • Controladores de dispositivos 
    • Herramientas de diagnostico 
    • Herramientas de Corrección y Optimización
    • Servidores
    • Utilidades
  • Software de programación: Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas y Lenguaje de programación, de una manera práctica. Incluye entre otros:
    • Editores de texto
    • Compiladores
    • Interpretes 
    • Enlazadores
    • Depuradores
    • Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir múltiples comando para compilar, interpretar,depurar, etc. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).
  • Software de aplicaciones: Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre otros:
    • Aplicaciones para Control de sistema y autorización industrial
    • Aplicaciones ofimáticas 
    • Software educativo
    • Software empresarial
    • Bases de datos
    • Telecomunicaciones (por ejemplo Internet y toda su estructura lógica)
    • Videosjuegos
    • Software medico 
    • Software de Cálculo Numérico y simbólico.
    • Software de Diseño Asistido (CAD)
    • Software de Control Numérico (CAM)

Definición del Software

Existen varias definiciones similares aceptadas para software, pero probablemente la más formal sea la siguiente:
Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados que forman parte de las operaciones de un sistema de computación.
Considerando esta definición, el concepto de software va más allá de los programas de computación en sus distintos estados: código fuente ,binario o ejecutable; también su documentación, los datos a procesar e incluso la información de usuario forman parte del software: es decir, abarca todo lo intangible, todo lo «no físico» relacionado.
El término «software» fue usado por primera vez en este sentido por 
John W. Tukey  en 1957 . En la ingeniería de software y las ciencia de la computación, el software es toda la información procesada por los sistemas informativos: programas y datos.
El concepto de leer diferentes secuencias de instrucciones ( programa) desde la memoria de un dispositivo para controlar los cálculos fue introducido por  Chales Babagge como parte de su  maquina diferencial. La teoría que forma la base de la mayor parte del software moderno fue propuesta por Alan Turig en su ensayo de 1936, «Los números computables», con una aplicación al problema de decisión.

Software


Se conoce como software al equipamiento lógico o soporte lógico de un sistema informativo; 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 hadware.
Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informativas; tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el 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.