Ventajas
Las Pymes en este contexto encuentran su razón de ser, ya que constituyen las organizaciones mas capaces de adaptarse a los cambios tecnológicos y de generar empleo, con lo que representan un importante factor de política de distribución de ingresos a las clases media y baja, con lo cual fomentan el desarrollo económico de toda una Nación.
Es sabido que en Venezuela las Pymes aportan más del 13% del PTB, y dan empleo al 55% de toda la población activa, quedando el 17% empleado en la gran empresa, el 16% ocupado en el sector público y el 12% desempleado (aunque actualmente por la situación política y crítica del país, esto ha aumentado). Tomando pos base el sector privado solamente, es sabido , que las pymes generan el 77% del empleo de ese sector. Lo cierto, que en Venezuela hay alrededor de 1,300.000 microempresas y unas 68.000 pequeñas y medianas empresas, de las cuales 56.000 activas en comercio y servicio y 12.000 en manufacturas.
El proceso de adaptación al cambio del nuevo paradigma económico mundial ha sido muy lento y con un poco de resistencia contribuyendo de esta forma a la falta de utilización y mejora de las tecnologías y ser más competitivo. Es necesario de que la gerencia asuma y aplique las estrategias acompañada de los nuevos tópicos gerenciales, nuevas herramientas organizativas para enfrentar as la competencia, a la demanda de las necesidades que los mercados actuales requieren, para ello actualmente se cuentan con muchas aplicaciones en materia de planificacion, recursos humanos, marketing, sistemas entre otros, todo con el fin de brindar el mayor soporte y generar una mayor productividad en estas empresas.
La licencias de uso de software generalmente caen en alguno de estos tipos: Licencia propietaria. Uso en una computadora por el pago de un precio. Shareware. Uso limitado en tiempoo capacidades, después pagar un precio. Freeware. Usar y copiar ilimitado, precio es cero. Software libre. Usar, copiar, estudiar, modificar, redistribuir. Código fuente incluído.
El debate sobre la protección legal que merece el software nació en el momento en que se comenzó a distinguir entre el software y el hardware. Como resultado de la creciente demanda de los programas de aplicación, el software comenzó a adquirir un valor económico independiente que se fue incrementando a medida que transcurría el tiempo. Un programa de computación puede ser considerado, por un lado como una obra científico-técnica, mientras que por el otro como un componente de una máquina, como un programa que la controla e indica que tareas realizar y en qué forma.
Dada su particular naturaleza, el software siempre fue reacio a dejarse encasillar en las tradicionales categorías jurídicas, siendo complicado encontrar la rama del derecho que lo proteja en forma acabada. Es por ello que tanto el régimen del derecho de autor como el de marcas y patentes son susceptibles de ser utilizados para proteger distintos aspectos de un mismo software, existiendo algunas zonas en las que la aplicación de los mencionados troncos se superponen y otras que parecen estar desprotegidas. El régimen de marcas proporciona un medio relativamente económico y eficaz de proteger al software en el ámbito internacional. Es difícil para los piratas vender ilegalmente copias de software y acceder a un público masivo sin usar su palabra distintiva, frase, logo o símbolo gráfico utilizado para identificar la fuente del producto y distinguir al fabricante. Las patentes, por su lado, tienen por objeto la tutela de invenciones que arrojen como resultado un nuevo producto o procedimiento de aplicación industrial. Este régimen tradicionalmente encontró obstáculos para proteger al software dada su peculiar naturaleza, como veremos más adelante. Fue el derecho de autor el que supo brindar la protección más idónea en los últimos años en el ámbito internacional, básicamente a partir de la década del 80´.
La protección del software conforme a las leyes del copyright se debió al hecho de que sus normas y principios subyacentes eran bien conocidas a escala mundial en virtud de la existencia de convenios internacionales. Conforme al Convenio Universal o al Convenio de Berna, toda obra creada en un país es susceptible de recibir automáticamente idéntica protección en casi todos los países del mundo. El hecho de que exista en principio un consenso internacional entre la mayoría de los países en clasificar al software como una obra literaria no hace sino justificar a priori la decisión de utilizar al copyright como medio principal de protección.
Se denominan lenguajes de programación al conjunto de reglas, instrucciones y normas necesarias por medio de las cuales el ser humano puede transmitir órdenes a la computadora. Con los lenguajes de programación se preparan los programas (software) para que el hardware realice una serie de tareas previamente predeterminadas. El desarrollo de los lenguajes de programación dio Origen a la siguiente clasificación:
a) Lenguajes de Alto Nivel
b) Lenguaje de Nivel Medio
c) Lenguajes de Bajo Nivel
Las instrucciones definidas por un lenguaje de alto nivel tienen un cierto parecido a la forma escrita en que nos comunicamos los seres humanos. En consecuencia, los lenguajes de alto nivel acercan a la computadora al ser humano. En el otro extremo de la escala se encuentran los lenguajes de bajo nivel, que son, en esencia, muy parecidos al código binario que maneja la computadora, los cuales, son una secuencia de unos y ceros que se convierten en impulsos eléctricos. La programación realizada usando lenguajes de bajo nivel, requiere del programador unos excelentes conocimientos de la codificación basada en el sistema binario, además de un profundo conocimiento del hardware para el cual se prepare el programa, lo cual preemitirá controlar más directamente el hardware y obtener una mayor velocidad y control de su funcionamiento. Para tratar de obtener lo mejor de ambos niveles se recurre a los lenguajes de nivel medio, los cuales están formados por una sintaxis parecida a la de los lenguajes de alto nivel que le hace de fácil comprensión para el programador, a la vez, incorpora funciones e instrucciones de bajo nivel que le permite el control directo del hardware.
En resumen, cualquiera de los diferentes lenguajes es simplemente un medio para crear un programa que permita llevar a cabo una tarea específica o la resolución de un problema por medio del uso de una computadora. Entre los lenguajes, cabe destacar los denominados: Cobol, Fortran, Basic, Dbase, Clipper, Lenguaje C, Visual Basic, Access y Fox Pro.
Se conoce como programación de computadores a la implementación de un algoritmo en un determinado lenguaje de programación, conformando un programa. Mientras que un algoritmo se ejecuta en una maquina abstracta que no tiene limitaciones de memoria o tiempo, un programa se ejecuta en una maquina real, que si tiene esas limitaciones.
Un algoritmo; es una secuencia no ambigua, finita y ordenada de instrucciones que han de seguirse para resolver un problema.
Un programa; normalmente implementa (traduce a un lenguaje de programación concreto) algoritmo; los programas suelen subdividirse en partes menores (módulos), de modo que la complejidad algorítmica de cada una de las partes sea menor que la del programa completo, lo cual ayuda al desarrollo del programa.
Ciclo de vida del software
El propósito de este programa es definir las distintas fases intermedias que se requieren para validar el desarrollo de la aplicación, es decir, para garantizar que el software cumpla los requisitos para la aplicación y verificación de los procedimientos de desarrollo: se asegura de que los métodos utilizados son apropiados.
El ciclo de vida básico consta de los siguientes procedimientos:
1.- Definición de objetivos: definir el resultado del proyecto y su papel en la estrategia global.
2.- Análisis de los requisitos y su viabilidad: recopilar, examinar y formular los requisitos del cliente y examinar cualquier restricción que se pueda aplicar.
3.- Diseño general: requisitos generales de la arquitectura de la aplicación.
4.- Diseño en detalle: Definición precisa de cada subconjunto de la aplicación.
5.- Programación (programación e implementación): es la implementación de un lenguaje de programación para crear las funciones definidas durante la etapa de diseño.
6.- Prueba de unidad: prueba individual de cada subconjunto de la aplicación para garantizar que se implementaron de acuerdo con las especificaciones.
7.- Integración: para garantizar que los diferentes módulos se integren con la aplicación. Este es el propósito de la prueba de integración que está cuidadosamente documentada.
8.- Prueba beta (o validación): para garantizar que el software cumple con las especificaciones originales.
9.- Documentación: sirve para documentar información necesaria para los usuarios del software y para desarrollos futuros.
10.- Mantenimiento: para todos los procedimientos correctivos (mantenimiento correctivo) y las actualizaciones secundarias del software (mantenimiento continuo).
El orden y la presencia de cada uno de estos procedimientos en el ciclo de vida de una aplicación dependen del tipo del modelo del ciclo de vida acordado entre el cliente y el equipo de desarrolladores.
COMPILADORES
En la primera fase, el programa fuente y el compilador sirven como entrada. La salida incluye el programa objeto que está almacenado en un dispositivo de disco magnético o cinta magnética y un listado del programa fuente en la impresora (o pantalla), así como también un diagnostico de mensajes de error. Si no se detectan errores serios, el programa objeto se introduce automáticamente al computador. Basado en las instrucciones del programa, los datos de entrada son leídos y analizados, culminando así con la salida requerida . Un compilador es un programa que traduce los programas fuentes escritos en lenguaje de alto nivel a lenguaje de maquina. Los programas escritos en lenguaje de alto nivel se llaman programas fuentes y el programa traducido programa objeto o código objeto. El proceso de ejecución de un programa escrito es cuando un compilador consta de los siguientes pasos :
1. Escritura del programa fuente con un editor y almacenado en un dispositivo de almacenamiento externo

