Antes de comenzar con los entornos de desarrollo de software, debemos tener claros los conceptos de hardware y software. Como dijimos en este enlace, el hardware son los componentes físicos del ordenador. Por otro lado, el software son los programas que instalamos en el.
Definición del software o programa informático.
Un programa informático es un grupo de instrucciones, escritas en un lenguaje de programación concreto sobre el que se aplican una serie de datos para resolver un problema.
Para que el ordenador entienda las instrucciones, es necesario el uso de un compilador. Este compilador, traducirá esas instrucciones en lenguaje máquina (código binario). Una vez traducidas las instrucciones, pasarán a la memoria RAM del sistema informático donde se procesará la información.
Por último, antes de definir lo que es un entorno de desarrollo, vamos a ver su clasificación de los programas informáticos.
Un software puede clasificarse según diferentes criterios.
Clasificación o tipos de software.
Según el trabajo que realiza.
Software de sistema.
En este grupo, encontramos el más importante y que, es indispensable para que el ordenador funcione, el sistema operativo. También podemos encontrar programas que interactúan entre el usuario y el hardware y administran el mismo. Algunos ejemplos son, el ya mencionado sistema operativo, los controladores o las herramientas de diagnóstico.
De aplicación.
Son programas informáticos que realizan tareas concretas como Microsoft Office, programas médicos, programas de diseño gráfico, etc. Además, las aplicaciones, pueden ser de diferentes tipos.
- Locales. Se almacenan el el disco duro del ordenador y sólo el ordenador en el que está instalado ese disco duro tiene acceso a ellas. Por ejemplo el bloc de notas.
- De red. Se ejecutan en un entorno de red local. Este tipo de aplicaciones tienen dos partes. La primera se ejecuta de manera local y la segunda de manera remota. Por ejemplo un chat o las redes sociales.
- Aplicaciones web o en la nube. Son aplicaciones que se ejecutan en un servidor remoto y se puede acceder a ellas a través de la web. Por ejemplo GoogleDocs.
Software de programación.
Son programas que proporcionan a un programador las herramientas necesarias para escribir los programas informáticos o software. Podemos destacar los IDE (Entorno de desarrollo integrado). Estos son los conocidos entornos de desarrollo de software. Algunos ejemplos pueden ser eclipse o netbeans que nos sirven para realizar programas en lenguaje java.
Software según su licencia.
Una licencia es un contrato entre el desarrollador de un software y el usuario final. En él se especifican los derechos y deberes de ambas partes. Se debe tener en cuenta que es el desarrollador el que especifica qué tipo de licencia distribuye.
Software libre.
El propietario de programas con este tipo de licencia permite al usuario:
- Usarlo con cualquier fin.
- Adaptar su código fuente a nuestras necesidades.
- Compartir copias, mejorarlo y publicar las modificaciones realizadas.
- La más usada es la denominada licencia GPL, cuyo requisito es que si modificamos el programa, debemos hacer públicas dichas modificaciones.
Propietario.
Si el programa contiene este tipo de licencia, el usuario no podrá:
- Acceder al código fuente.
- No se puede distribuir, ni modificar.
- No se puede usar en varios sistemas informáticos a la vez.
Software de dominio público.
Los software con este tipo de licencia:
- No pertenecen a ningún propietario.
- No tiene licencia.
- Podemos realizar una oferta para ser propietarios pero su código fuente será de dominio público.
Software según su distribución.
En esta clasificación, podemos distinguir el shareware y el friware.
Shareware.
- Poseen un tiempo limitado para poder probar el software gratuitamente, es decir, un período de evaluación.
- Para adquirir la versión completa del software, se debe realizar un pago para adquirir la licencia.
- Algunos ejemplos pueden ser programas como photoshop, dreaweaver, ilustrator, etc.
Freeware.
- Son gratuitos y pueden incorporar el código fuente.
- Se permite su uso sin ánimo de lucro siempre que no se modifique la aplicación.
Para finalizar con este apartado del software, tenemos que tener en cuenta los siguientes aspectos.
Ya hemos dicho que un programa, una vez traducidas sus instrucciones a código binario, pasan a la memoria principal para ser procesadas. Sin embargo la encargada de ejecutar el programa el la CPU.
Por otro lado, la CPU cuenta con la UC, la ALU, y los registros que forman parte de la UC. Estos registros, son los siguientes.
Los registros de la Unidad de Control.
El contador del programa (CP).
Contiene la dirección de la memoria donde se almacena la siguiente instrucción que debe realizar el programa. La CPU actualiza su valor una vez que captura dicha instrucción.
Registro de instrucción (RI).
Contiene tanto el código de la instrucción a ejecutar como la dirección de memoria en la que opera.
Registro de Dirección de Memoria (RDM).
Tiene asignada una dirección que corresponde a una posición de memoria que va a almacenar la información mediante un bus de direcciones.
Registro de Intercambio de Memoria (RIM).
Recibe o envía, la información o dato contenido en la posición indicada por el Registro de Dirección de Memoria (RDM).
- Recibe, si es una operación de lectura.
- Envía, si es una operación de escritura.
Decodificador de instrucción (DI).
Extrae y analiza el código de la instrucción contenida en el Registro de Instrucción (RI) y genera señales para que se ejecute la acción correctamente.
Reloj.
Marca el ritmo al Decodificador de Instrucción (DI), proporciona impulsos eléctricos constantes y marca los tiempos para ejecutar instrucciones.
Secuenciador.
Son órdenes que se sincronizan con el reloj para que se ejecute la instrucción de forma ordenada y correctamente.
Además, ya a la hora de ejecutar una instrucción, podemos distinguir dos fases.