Download CopiaD08 - GEOCITIES.ws
Document related concepts
Transcript
Software La definición más formal de software es la atribuida a la IEEE (The Institute of Electrical and Electronics Engineers) en su estándar 729: “la suma total de los programas de cómputo, procedimientos, reglas documentación y datos asociados que forman parte de las operaciones de un sistema de cómputo”. Bajo esta definición, el concepto de software va más allá de los programas de cómputo en sus distintas formas: código fuente, binario o ejecutable, además de su documentación: es decir, todo lo intangible. Si bien esta distinción es, en cierto modo, arbitraria, y, a veces, difusa y confusa, se puede distinguir al software de la siguiente forma: • Software de sistema • Software de programación • Software de aplicación Software de sistema Software de sistema, es la parte que permite funcionar al hardware. Su objetivo es aislar tanto como sea posible al programador de aplicaciones de los detalles del computador particular que se use, especialmente de las características físicas de la memoria, dispositivos de comunicaciones, impresoras, pantallas, teclados, etcétera. Incluye entre otros: • Sistemas operativos • Controladores de dispositivo • Herramientas de diagnóstico • Servidores • Sistemas de ventanas • Utilidades Sistemas Operativos Actualmente el concepto de computadora esta intrínsecamente relacionado al de sistema operativo, aunque éste existe en más aparatos electrónicos aparte de en los ordenadores. En las primeras generación de computadoras sólo se realizaba proceso en serie, no existían los sistemas operativos, y los programadores debían interactuar con el hardware del computador sin ayuda externa. La Edvac: Electronic Discrete Variable Automatic Computer (1952) se programaba enchufando centenares de clavijas y activando un pequeño número de interruptores. Cuando había que resolver un problema distinto era necesario cambiar todas las conexiones. Para utilizar la computadora debía hacerse por turnos. Todo se hacia en lenguaje de máquina Sistemas Operativos La comunicación entre la Computadora (máquina basada en la electrónica) y el ser humano no ha sido fácil. Los primeros diseñadores y creadores de las computadoras se dieron cuenta que necesitaban algo que permitiera la fácil comunicación de las instrucciones, y la comprensión de los resultados obtenidos. Así nació el Sistema Operativo: programa básico que se carga al momento de encender la máquina y sirve de intérprete entre el frío lenguaje de la maquina electrónica y el complejo idioma humano. Los sistemas operativos hacen una aparición discreta y bastante simple, con conceptos tales como el monitor residente, el proceso por lotes y el almacenamiento temporal . • Monitor residente, se limitaba a cargar los programas a memoria, leyéndolos de una cinta o de tarjetas perforadas, y ejecutarlos. Sistemas Operativos • Procesamiento por lotes, para optimizar el tiempo de cargas surgió la idea de agrupar los trabajos en lotes, en una misma cinta o conjunto de tarjetas, de forma que se ejecutaran uno a continuación de otro sin perder apenas tiempo en la transición. • Almacenamiento temporal, Su objetivo era disminuir el tiempo de carga de los programas, haciendo simultánea la carga del programa o la salida de datos con la ejecución de la siguiente tarea. Para ello se utilizaban dos técnicas, el buffering y el spooling. En la actualidad existen varios sistemas operativos para diferentes necesidades y tipos de computadoras, entre los más conocidos y utilizados actualmente se encuentran los siguientes: • MS-DOS (Microsoft - Disk Operating System). El sistema operativo con cual hemos estado más familiarizados desde la aparición de las Computadoras Personales y sobre el cuál trabajan o trabajaban la mayoría de los programas. Sistemas Operativos • OS/2 WARP (Diseñado por IBM), es el competidor más cercano de MS-DOS sobre todo por sus grandes capacidades de interconexión de equipos y facilidad de uso bajo ambiente gráfico. • NETWARE (Diseñado por Novell), líder mundial en sistemas operativos para redes de computadoras por su extremada capacidad de interconectar computadoras y recursos de muy variadas capacidades y marcas. • UNIX, sistema operativo de alto rendimiento utilizado actualmente en grandes proyectos y para necesidades de intercomunicación a nivel internacional y de gran volumen de operaciones diarias. En resumen, podemos afirmar que ninguna computadora obedecerá las instrucciones de ningún programa independientemente de su utilidad sin haber cargado en su memoria dicho intérprete al momento de encenderse, ya que de esto dependerá su funcionamiento y eficiencia. Software de programación En sus orígenes la programación de las computadoras era hecha sólo, para y por los mismos científicos que las construían con propósitos específicos: El cálculo de la trayectoria de los proyectiles usados en la II Guerra Mundial, y posteriormente, para usos muy parecidos, Mucho después, la computadora fue utilizada, con éxito, en el Censo de los Estados Unidos, reconociéndose así su valor en el campo administrativo Con la aparición de la Computadora Personal el uso pasó al dominio público, donde, con tantas necesidades, fueron surgiendo las aplicaciones diversas para cada oficio. Software de programación Software de programación, que proporciona herramientas para ayudar al programador a escribir programas informáticos y a usar diferentes lenguajes de programación de forma práctica. Incluye entre otros: • Editores de texto • Compiladores • Intérpretes • Enlazadores • Depuradores Los entornos integrados de desarrollo (IDE) agrupan estas herramientas de forma que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etcétera, gracias a que habitualmente cuentan con una interfaz gráfica de usuario (GUI) avanzada. Software de aplicación Software de aplicación, que permite a los usuarios llevar a cabo una o varias tareas más específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre otros: • Aplicaciones de automatización industrial • Aplicaciones ofimáticas • Software educativo • Software médico • Bases de datos • Videojuegos ¿PARA TU CARRERA CUALES SE USAN? Formas del software El software adopta varias formas en distintos momentos de su ciclo de vida: Código fuente: escrito por programadores. Contiene el conjunto de instrucciones destinadas a la computadora. Código objeto: resultado del uso de un compilador sobre el código fuente. Consiste en una traducción de éste último. • El código objeto no es directamente inteligible por el ser humano, pero tampoco es directamente entendible por la computadora. Se trata de una representación intermedia del código fuente. Código ejecutable: resultado de enlazar uno o varios fragmentos de código objeto. Constituye un archivo binario con un formato tal que el sistema operativo es capaz de cargarlo en la memoria de una computadora, y proceder a su ejecución. • El código ejecutable es directamente inteligible por la computadora Lenguaje de Programación Un lenguaje de programación es utilizado para controlar el comportamiento de una máquina, particularmente una computadora. Consiste en un conjunto de reglas que definen su estructura y el significado de sus elementos Un lenguaje de programación permite a un programador especificar de manera precisa: sobre qué datos una computadora debe operar, cómo deben ser estos almacenados y transmitidos y qué acciones debe tomar bajo una variada gama de circunstancias. Los procesadores usados en las computadoras son capaces de entender y actuar según lo indican programas escritos en un lenguaje fijo llamado lenguaje de máquina. LENGUAJE DE PROGRAMACIÓN Todo programa escrito en otro lenguaje puede ser ejecutado de dos maneras: • Mediante un programa que va adaptando las instrucciones conforme son encontradas. A este proceso se lo llama interpetar y a los programas que lo hacen se los conoce como intérpretes. • Traduciendo este programa al programa equivalente escrito en lenguaje de máquina. A ese proceso se lo llama compilar y al traductor se lo conoce como compilador. Algunos lenguajes de programación ABAP ABC Ada ActionScript Afnix ALGOL APL ASP ASP.NET AWK B BASIC BCPL Befunge Boo C C++ C# Caml Clipper CLIPS CLU COBOL CORAL D Delphi DIV Dylan Eiffel Erlang Ensamblador Extended ML Euphoria Fénix Flow-Matic Forth FORTRAN Gambas GML GRAFCET FP Haskell Icon Inform INTERCAL ISWIM J Java JavaScript Joy KWC LADDER Letra Lexico Lingo Lisp Logo Lua MAGIC Mainsail Mesa Miranda ML Modula Modula-2 Modula-3 Natural NetREXX Oberon Object REXX Objective-C Ocaml Occam Oz Pascal Parlog Perl PHP PL/1 Plankalkül PostScript PowerBuilder Prolog Python Rapid REXX RPN RPG Ruby Sail Sather Scheme Scriptol Seed7 Self Sh Simula Smalltalk Snobol SPARK Squeak SR Standard ML TI-Basic TCL VBA Visual Basic Visual C++ Visual DialogScript Visual Foxpro Yurix ZPL Algunos libros de lenguajes de programación Entorno de Desarrollo Integrado (IDE) Un entorno de desarrollo integrado o en inglés Integrated Development Environment ('IDE') es un programa compuesto por un conjunto de herramientas para un programador. Un IDE es un entorno de programación que ha sido empaquetado como un programa de aplicación, es decir, consiste en un editor de código, un compilador, un depurador y un constructor de interfaz gráfica GUI. Los IDEs pueden ser aplicaciones por si solas o pueden ser parte de aplicaciones existentes. Puede dedicarse en exclusiva a un sólo lenguaje de programación o bien, poder utilizarse para varios. El lenguaje Visual Basic por ejemplo puede ser usado dentro de las aplicaciones de Microsoft Office, lo que hace posible escribir sentencias Visual Basic en forma de macros para Microsoft Word. Entorno de Desarrollo Integrado (IDE) Componentes: • Un compilador. • Un intérprete. • Herramientas de automatización. • Un depurador. • Posibilidad de ofrecer un sistema de control de versiones. • Factibilidad para ayudar en la construcción de interfaces gráficas de usuarios. Dev C++, un IDE para el lenguaje de programación C++. Ejemplos DE IDEs Emacs Anjuta (GTK, pensado para escritorio GNOME) C++Builder y TurboC++ Explorer de Borland (ahora de CodeGear) Clarion Code::Blocks CodeWarrior Delphi y Turbo Delphi de Borland(ahora de CodeGear) DevCpp y wxDev-C++ Dr.Java e-Des Eclipse GPS para Ada IntelliJ IDEA JBuilder de Borland (ahora de CodeGear) JDeveloper de Oracle_Corporation JCreator KDevelop (QT, pensado para escritorio KDE) Lazarus MPLAB de Microchip MS Visual Studio .NET y Visual Studio Express de Microsoft MonoDevelop NetBeans PowerBuilder de Sybase RadRails para Ruby on Rails RHIDE para DJGPP #develop Turbo C y Turbo C++ de Borland Turbo Pascal de Borland Watcom C/C++ Compiler y OpenWatcom Xcode de Apple WinDev de PC SOFT