miércoles, 14 de diciembre de 2016

Tipos de programas


TIPOS DE PROGRAMAS

Un programa es una serie de órdenes o instrucciones que están basadas en un lenguaje de programación que pueden ser interpretados por un ordenador para la realización de alguna función o la resolución de algún problema.
Existen distintos tipos de programas, entre ellos:
Programas de contabilidad: estos les facilitan al usuario el análisis y la compilación de información financiera, ya sea para el ámbito doméstico o para alguna empresa. Los primeros generalmente cuentan con una base de datos para actualizar los gastos realizados y también utilidades para las chequeras, que sirven para conciliarlas e imprimir cheques. También se utilizan para planear balances, saber cuáles son los impuestos que faltan pagar y cuáles no, también pueden incluir calculadora y utilidades para la tarjeta de crédito. Los programas de contabilidad destinados a las empresas cuentan con todas las funciones mencionadas y además con un módulo para realizar nómina, facturación e inventarios.
Programas financieros: estos contienen utilidades financieras que no incluyen los anteriores. Por medio de estos programas se pueden generar estrategias financieras ya que educan a sus usuarios sobre consideraciones prácticas, regulaciones y leyes. Además, pueden utilizarse para realizar préstamos o analizarlos, y para hacer seguimientos contables.
Un programa es una serie de órdenes o instrucciones que están basadas en un lenguaje de programación que pueden ser interpretados por un ordenador para la realización de alguna función o la resolución de algún problema.
Existen distintos tipos de programas, entre ellos:
Programas de contabilidad: estos les facilitan al usuario el análisis y la compilación de información financiera, ya sea para el ámbito doméstico o para alguna empresa. Los primeros generalmente cuentan con una base de datos para actualizar los gastos realizados y también utilidades para las chequeras, que sirven para conciliarlas e imprimir cheques. También se utilizan para planear balances, saber cuáles son los impuestos que faltan pagar y cuáles no, también pueden incluir calculadora y utilidades para la tarjeta de crédito. Los programas de contabilidad destinados a las empresas cuentan con todas las funciones mencionadas y además con un módulo para realizar nómina, facturación e inventarios.
Programas financieros: estos contienen utilidades financieras que no incluyen los anteriores. Por medio de estos programas se pueden generar estrategias financieras ya que educan a sus usuarios sobre consideraciones prácticas, regulaciones y leyes. Además, pueden utilizarse para realizar préstamos o analizarlos, y para hacer seguimientos contables.
Programas educativos: estos cuentan con paquetes que enseñan, por medio de guías, sobre una técnica o tópico. Estos pueden estar orientados a adultos, que abarcan temáticas como física, química, astronomía o que  enseñen a tipear o a hablar algún idioma, entre otras. Por otro lado hay programas orientados a niños, que, por ejemplo, enseñan sobre gramática, historia o matemáticas.
Programas de juegos: estos programas siempre vienen incluidos en la computadora y son de las más diversas temáticas. Existen con fines educativos o bien, como mero entretenimiento y los hay para adultos y niños.
Programas de producción: estos son destinados a las compañías, para que sus usuarios puedan adquirir información integrada. Los programas de este tipo contienen aplicaciones para la recolección de información estratégica de mercado, del perfil de los usuarios y consumidores. También se los utiliza para manejar agendas y correo, realizar presentaciones e informes así como también directorio de compañías y manuales de seguro.
Programas procesadores de texto: por medio de estos los usuarios logran manipular y producir textos de cualquier índole. Los procesadores de texto permiten modificar el formato de un documento, ya sea sus márgenes, la forma de la página, los espacios, el color y tamaño de fuente, alineación, etcétera. Además de esto, la mayoría permite realizar notas al pie, búsquedas, reemplazos y también cuentan con diccionario, correctores ortográficos y gramaticales. 
Bases de datos: estas son paquetes de programas por medio de los cuales los usuarios logran almacenar, retirar y manipular enormes volúmenes de información. En la mayoría de los casos, la información se guarda en registros y se la ordena y busca por medio de palabras claves. Las bases de datos permiten la realización de reportes utilizando distintos criterios y la manipulación de listas simples. Además, permiten realizar cruces de información y la automatización de diversas funciones.
Programas de publicación: en estos se combinan diseñadores gráficos con procesadores de texto que permiten la confección de revistas, catálogos, pancartas, folletos y demás. Para esto incluye funciones que permiten alterar imágenes, modificar las fuentes, gráficos para incluir en el archivo y opciones de impresión.
Programas gráficos: por medio de ellos se pueden transferir, manipular e incluso crear imágenes. Existen gráficos de dos tipos: de mapas de bits y por vector. Estos últimos guardan la imagen en cajas, líneas u otros objetos. Cada una de estas posee propiedades como tamaño, color y relleno. Además, permiten manipular a cada objeto individualmente. Por otro lado, los gráficos de mapas de bits utilizan recortes de píxel de la imagen.
Programas de sistemas operativos: es por medio de los sistemas operativos que el usuario logra utilizar la computadora ya que es el nexo entre el hardware de la PC y el usuario. (Ver: Tipos de sistemas operativos)
Programas de utilidad: estos permiten al usuario realizar un mantenimiento de su computadora y pueden incluir análisis de problemas, copia de seguridad, protector de virus, soporte de periféricos, administrador de memoria y muchas otras funciones.
Programas de redes y comunicación: estos permiten conectar distintas computadoras entre sí, por medio de conexión de redes o un módem, para buscar o trasferir información. Estos programas permiten el uso de impresoras o bases de datos remotas, transferencia de archivos, envío de e-mails, entre otras cosas.
Lenguaje de programación: estos ofrecen herramientas que permiten la creación de diversos programas para computadoras. Algunos de los lenguajes más utilizados son: Visual Basic, FoxPro, C, Pascal, etcétera.
Programas de hoja de cálculo: estos programas facilitan la manipulación e introducción de información numérica. Los formatos de las hojas de cálculo son de celdas que almacenan números, texto e incluso información computacional. Ofrecen numerosas fórmulas que permiten relacionar y manipular la información de diversas maneras.
Programas educativos: estos cuentan con paquetes que enseñan, por medio de guías, sobre una técnica o tópico. Estos pueden estar orientados a adultos, que abarcan temáticas como física, química, astronomía o que  enseñen a tipear o a hablar algún idioma, entre otras. Por otro lado hay programas orientados a niños, que, por ejemplo, enseñan sobre gramática, historia o matemáticas.
Programas de juegos: estos programas siempre vienen incluidos en la computadora y son de las más diversas temáticas. Existen con fines educativos o bien, como mero entretenimiento y los hay para adultos y niños.
Programas de producción: estos son destinados a las compañías, para que sus usuarios puedan adquirir información integrada. Los programas de este tipo contienen aplicaciones para la recolección de información estratégica de mercado, del perfil de los usuarios y consumidores. También se los utiliza para manejar agendas y correo, realizar presentaciones e informes así como también directorio de compañías y manuales de seguro.
Programas procesadores de texto: por medio de estos los usuarios logran manipular y producir textos de cualquier índole. Los procesadores de texto permiten modificar el formato de un documento, ya sea sus márgenes, la forma de la página, los espacios, el color y tamaño de fuente, alineación, etcétera. Además de esto, la mayoría permite realizar notas al pie, búsquedas, reemplazos y también cuentan con diccionario, correctores ortográficos y gramaticales. 
Bases de datos: estas son paquetes de programas por medio de los cuales los usuarios logran almacenar, retirar y manipular enormes volúmenes de información. En la mayoría de los casos, la información se guarda en registros y se la ordena y busca por medio de palabras claves. Las bases de datos permiten la realización de reportes utilizando distintos criterios y la manipulación de listas simples. Además, permiten realizar cruces de información y la automatización de diversas funciones.
Programas de publicación: en estos se combinan diseñadores gráficos con procesadores de texto que permiten la confección de revistas, catálogos, pancartas, folletos y demás. Para esto incluye funciones que permiten alterar imágenes, modificar las fuentes, gráficos para incluir en el archivo y opciones de impresión.
Programas gráficos: por medio de ellos se pueden transferir, manipular e incluso crear imágenes. Existen gráficos de dos tipos: de mapas de bits y por vector. Estos últimos guardan la imagen en cajas, líneas u otros objetos. Cada una de estas posee propiedades como tamaño, color y relleno. Además, permiten manipular a cada objeto individualmente. Por otro lado, los gráficos de mapas de bits utilizan recortes de píxel de la imagen.
Programas de sistemas operativos: es por medio de los sistemas operativos que el usuario logra utilizar la computadora ya que es el nexo entre el hardware de la PC y el usuario. (Ver: Tipos de sistemas operativos)
Programas de utilidad: estos permiten al usuario realizar un mantenimiento de su computadora y pueden incluir análisis de problemas, copia de seguridad, protector de virus, soporte de periféricos, administrador de memoria y muchas otras funciones.
Programas de redes y comunicación: estos permiten conectar distintas computadoras entre sí, por medio de conexión de redes o un módem, para buscar o trasferir información. Estos programas permiten el uso de impresoras o bases de datos remotas, transferencia de archivos, envío de e-mails, entre otras cosas.
Lenguaje de programación: estos ofrecen herramientas que permiten la creación de diversos programas para computadoras. Algunos de los lenguajes más utilizados son: Visual Basic, FoxPro, C, Pascal, etcétera.
Programas de hoja de cálculo: estos programas facilitan la manipulación e introducción de información numérica. Los formatos de las hojas de cálculo son de celdas que almacenan números, texto e incluso información computacional. Ofrecen numerosas fórmulas que permiten relacionar y manipular la información de diversas maneras.

LENGUAJE DE ALTO NIVEL




Un lenguaje de alto nivel permite al programador escribir las instrucciones de un programautilizando palabras o expresiones sintácticas muy similares al inglés. Por ejemplo, en C se pueden usar palabras tales como: caseifforwhile, etc. para construir con ellas instrucciones como:
if( numero > 0 ) printf( "El número es positivo" )

que traducido al castellano viene a decir que: si numero es mayor que cero, entonces, escribir por pantalla el mensaje: "El número es positivo".

Ésta es la razón por la que a estos lenguajes se les considera de alto nivel, porque se pueden utilizar palabras de muy fácil comprensión para el programador. En contraposición, los lenguajes de bajo nivel son aquellos que están más cerca del "entendimiento" de la máquina. Otros lenguajes de alto nivel son: Ada, BASIC, COBOL, FORTRAN, Pascal, etc.

Otra carácterística importante de los lenguajes de alto nivel es que, para la mayoría de las instrucciones de estos lenguajes, se necesitarían varias instrucciones en un lenguaje ensamblador para indicar lo mismo. De igual forma que, la mayoría de las instrucciones de un lenguaje ensamblador, también agrupa a varias instrucciones de un lenguaje máquina.




LENGUAJE DE BAJO NIVEL


Los lenguajes de bajo nivel, también llamados lenguajes ensambladores, permiten al programadorescribir instrucciones de un programa usando abreviaturas del inglés, también llamadas palabras nemotécnicas, tales como: ADD, DIV, SUB, etc. Un programa escrito en un lenguaje ensamblador tiene el inconveniente de que no es comprensible para la computadora, ya que, no está compuesto por ceros y unos. Para traducir las instrucciones de un programa escrito en un lenguaje ensamblador a instrucciones de un lenguaje máquina hay que utilizar un programa llamado ensamblador, como se muestra en la siguiente figura:






ALGORITMO

En matemáticaslógicaciencias de la computación y disciplinas relacionadas, un algoritmo (del griego y latín, dixit algorithmus y este a su vez del matemático persa Al-Juarismi)1 es un conjunto prescrito de instrucciones o reglas bien definidas, ordenadas y finitas que permite llevar a cabo una actividad mediante pasos sucesivos que no generen dudas a quien deba hacer dicha actividad.2 Dados un estado inicial y una entrada, siguiendo los pasos sucesivos se llega a un estado final y se obtiene una solución. Los algoritmos son el objeto de estudio de la algoritmia.

LENGUAJE DE MAQUINA


Fue el primer lenguaje utilizado en la programación para las primeras computadoras, pero dejó de utilizarse por su dificultad y complicación, siendo sustituido por otros lenguajes más fáciles de aprender y utilizar, y que además reducen la posibilidad de cometer errores.
La información que hace que el hardware de la computadora realice una determinada actividad de llama instrucción, por consiguiente una instrucción es un conjunto de unos y ceros, las instrucciones así formadas equivalen a acciones elementales de la máquina, por lo que al conjunto de dichas instrucciones que son interpretadas directamente por la máquina se denomina lenguaje máquina.
El lenguaje máquina es el único lenguaje que puede ejecutar una computadora, es específico en cada arquitectura, es un código que es interpretado directamente por el microprocesador, está compuesto por un conjunto de instrucciones ejecutadas en secuencia que representan acciones que la máquina podrá tomar.

El lenguaje máquina es el único que entiende directamente la computadora, utiliza el alfabeto binario que consta de los dos únicos símbolos 0 y 1, denominados bits; físicamente, se materializan con tensiones comprendidas entre 0 y 4.0 voltios y entre 4 y 5 voltios, respectivamente. Para representar datos que contengan una información se utilizan una serie de unos y ceros cuyo conjunto indica dicha información.

Todo código fuente en última instancia debe llevarse a un lenguaje máquina mediante el proceso de compilación o interpretación para que la computadora pueda ejecutarlo.
Las instrucciones preparadas en cualquier lenguaje de máquina tienen por lo menos dos partes, el comando u operación, que dice a la computadora cuál es la función que va a realizar y la instrucción es el operando, que indica a la computadora donde hallar o almacenar los datos y otras instrucciones que se van a manipular; el número de operandos de una instrucción varía en las distintas computadoras, una instrucción en lenguaje máquina puede, por ejemplo, representarse de la siguiente forma:

011011001010010011110110

PASOS PARA ELABORAR UN PROGRAMA

He decidido crear este documento para que todos tengamos claros las fases que tiene la creación de una aplicación, así que sin más voy al grano. 

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.