CLASIFICACION DE SOFTWARE
YOHON JAIRO BRAVO BRAVO CASTRO
CORPORACION UNIVERSITARIA UNIVERSITARIA REMINGTON- CAT PALMIRA 2011
CLASIFICACION DE SOFTWARE
YOHON JAIRO BRAVO BRAVO CASTRO
INGENIERIA DE SOFTWARE I
ANGELICA ANGELICA MARIA OSPINA OSPINA Tutor
CORPORACION UNIVERSITARIA UNIVERSITARIA REMINGTON- CAT PALMIRA
2011
CONTENIDO
1. Intr Introd oduc ucci ción ón 2. Defin Definici ición ón de softw software are 3. Clasi Clasific ficac ación ión de de softw software are 3.1. Software de sistema 3.1.1. Sistemas operativos 3.1.2. Controladores de dispositivos 3.1.3.Herramientas de diagnostico 3.1.4. Servidores 3.1.5. utilidades 3.2. Software de programación programación 3.2.1. Editores de texto 3.2.2. Compiladores 3.2.3. Intérpretes 3.2.4. Enlazadores 3.2.5. Depuradores 3.2.6. Entornos de Desarrollo Integrados 3.3. Software de aplicación 4. Ejemplos 5. Infografía
1. INTRODUCCION
Como pilares para el funcionamiento de un equipo de computo se conoce como software al equipamiento lógico o soporte lógico de una computadora digital; comprende comprende el conjunto conjunto de los componentes componentes lógicos necesarios necesarios que que hacen posible la realización de tareas especificas, en contraposición a los componentes físicos, que son llamados hardware. Los compon componente entes s lógicos lógicos incluyen incluyen,, entre entre muchos muchos otros, otros, las aplicac aplicacione iones s inform informát ática icas; s; tales tales como como el proce procesa sador dor de texto texto,, que que permit permite e al usua usuario rio 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 tre los los com componen nentes tes físico sicos s y el resto sto de las aplicac icacio ione nes s, y proporcionando una interfaz con el usuario.
2. Definición de software
Es el conj conjun unto to de prog progrramas amas de comp comput uto, o, proc proced edim imie ient ntos os,, regl reglas as,, 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 mas allá de los programas programas de computación 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 termino “software” fue usado por primera vez en este sentido por John W. Tukey en 1957. En la ingeniería de software y las ciencias de la computación, el software es toda la información procesada por los sistemas informáticos: programas y datos.
3. Clasificación de software
Si bien esta distinción es, en un cierto modo, arbitraria, y a veces confusa, los fines prácticos se puede clasificar al software en tres grandes tipos. 3.1. Software de sistema: Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles de la computadora en particular que se use, use, aisl aislán ándo dolo lo espe especi cial alme ment nte e del del proc proces esam amie ient nto o refe referi rido do a las las carac caracter teríst ística icas s intern internas as de: de: memor memoria, ia, discos discos,, puer puertos tos y dispo disposit sitivo ivos s de comunicaciones, comunicaciones, impresoras, impresoras, pantallas, pantallas, teclados, teclados, etc. el software de sistema le procura procura al usuario usuario y programa programador dor adecuad adecuadas as interfac interfaces es de alto nivel, herramientas y utilidades de apoyo que permiten su mantenimiento. Incluye entre otros: 3.1.1. Sistemas operativos Un sistema operativo (SO) es el programa o conjunto de programas que efectúan la gestión de los procesos básicos de un sistema informático, y permite la normal ejecución del resto de las operaciones.
Note Notese se que que es un erro errorr comú común n muy muy exte extend ndid ido o deno denomi mina narr el conj conjun unto to completo completo de herramie herramientas ntas sistema operativo, operativo, es decir decir,, la inclusió inclusión n en el mismo termino de programas como explorador de ficheros, el navegador y todo todo tipo tipo de herr herram amie ient ntas as que que perm permit iten en la inte intera racc cció ión n con con el sist sistem ema a operativo, también llamado núcleo o kernel. Uno de los mas prominentes ejemplos de esta diferencia, es el núcleo Linux, que es el núcleo del sistema
operativo GNU, del cual existen las llamadas distribuciones GNU. Este error de precisión, se debe a la modernización de la información de la informática llevada a cabo a fines de los 80, cuando la filosofía de estructura básica de funcionamiento de los grandes computadores se rediseño a fin de llevarla a los los hoga hogare res s y faci facili lita tarr el uso, uso, camb cambia iand ndo o el conc concep epto to de comp comput utad ador or multiusuario, por un sistema monousuario mas sencillo de gestionar. Uno Uno de los los prop propós ósit itos os del del sist sistem ema a oper operat ativ ivo o que que gest gestio iona na el núcl núcleo eo intermediario consiste en gestionar los recursos de localización y protección de acce acceso so del hard hardw ware, are, hech hecho o que que aliv alivia ia a los los prog progra rama mado dore res s de aplicaciones de tener que tratar con estos detalles. La mayoría de aparatos elec electr trón ónic icos os que que util utiliz izan an micr microp opro roce cesa sado dore res s para para func funcio iona narr, llev llevan an incorporado un sistema operativo. (teléfonos móviles, reproductores de DVD, computadoras, radios, enrutadores, etc.):
3.1.2. Controladores de dispositivos
Un control controlado adorr de disposit dispositivo, ivo, llamado llamado normalme normalmente nte controla controlador dor (device program rama a inform informáti ático co que que permi permite te al siste sistema ma oper operati ativo vo drive driverr ) es un prog interact interactuar uar con un perifér periférico, ico, haciend haciendo o una abstracc abstracción ión del hardware hardware y proporcionando una interfaz -posiblemente estandarizada- para usarlo. Se pued puede e esqu esquema ematiz tizar ar como como un manu manual al de instr instrucc uccio iones nes que que le indica indica al sistema operativo, operativo, como debe controlar y comunicarse comunicarse con un dispositivo en particular. Por lo tanto, es una pieza esencial, sin la cual no se podría usar el hardware. Existen tantos tipos de controladores como tipos de periféricos, y es común encontrar mas de un controlador posible para el mismo dispositivo, cada uno ofreciendo un nivel distinto de funcionalidades. Por ejemplo, aparte de los oficiale oficiales s (normalm (normalmente ente disponible disponibles s en la pagina pagina web del fabrica fabricante) nte),, se pueden encontrar también los proporcionados por el sistema operativo, o también versiones no oficiales hechas por terceros.
Debido a que el software de controladores de dispositivos se ejecuta como parte del sistema operativo, con acceso sin restricciones a todo el equipo, resulta resulta esencia esenciall que solo solo se permita permitan n los control controlador adores es de disposit dispositivos ivos autorizados. La firma y el almacenamiento provisional de los paquetes de controladores controladores de dispositivos dispositivos en los equipos cliente, cliente, mediante mediante las técnicas descritas en esta guía, proporcionan las ventajas siguientes:
•
•
•
Seguridad mejorada. Puesto que los usuarios estándar no pueden instalar controlado controladores res de dispositivos dispositivos que no estén estén firmados o que que estén firmados por el editor que no es de confianza, los admi admini nist stra rad dores ores tend tendrá rán n un cont contro roll rigu riguro roso so resp respec ecto to a los los controladores de dispositivos que pueden usarse en una organización. Podrán impedirse los controladores de dispositivos desconocidos, así como cualqui cualquier er control controlado adorr de disposit dispositivo ivo que el adminis administrad trador or no permita expresamente. Mediante el uso de directivas de grupo, un administrador puede proporcionar a todos los equipos cliente de una organización los certificados de los editores que se consideren de conf confia ianz nza, a, perm permit itie iend ndo o la inst instal alac ació ión n de los los cont contro rola lado dore res s sin sin intervención del usuario, para probar que se trata de una firma digital de confianza. Reducción de los costes de soporte técnico. Los usuarios solo podrán instalar los dispositivos que hayan sido probados y admitidos por la organ organiza izació ción. n. En conse consecu cuen encia cia,, el sistem sistema a permi permite te manten mantener er la seguridad del equipo, al tiempo que se reducen las solicitudes del departamento de soporte técnico. Exper Experien ienci cia a de usuar usuario io mejor mejorad ada. a. Un paque paquete te de cont control rolad ador ores es firmado por un editor de confianza y almacenado almacenado provisionalmente provisionalmente en el almacenen de controladores controladores funciona de modo automático, cuando el usuario usuario conecta conecta el disposit dispositivo ivo el equipo. equipo. No se requier requiere e acción acción alguna pro parte del usuario.
En esta sección se incluyen las tareas principales para la seguridad de los paquetes de controladores de dispositivos: los controladores de dispositivo (device drivers ) son programas añadidos al núcle núcleo o del del siste sistema ma opera operativ tivo, o, conse consevid vidos os inici inicial almen mente te para para gesti gestiona onar r periféricos y dispositivos especiales. Pueden ser de dos tipos: orientados a caracteres (tales como los dispositivos NUL, AUX, PRN, del sistema) o bien orientados orientados a bloques, bloques, constituyendo constituyendo las conocidas conocidas unidades unidades de disco. La difere diferenc ncia ia funda fundamen mental tal entre entre ambo ambos s tipos tipos de contr controla olado dore res s es que que los primeros reciben o envían la información carácter a carácter, en cambio, los controladores de dispositivo de bloques procesan, como su propio nombre indica, bloques de cierta longitud en bytes (sectores). Los controladores de dis disposi positi tivo vo,, apar aparec ecid idos os con con el DOS DOS 2,0, 2,0, perm permit iten en añad añadir ir nuev nuevos os componentes al ordenador sin necesidad de rediseñar el sistema operativo. Tradicionalmente han sido programas binarios puros, similares a los COM aunque ensamblados ensamblados en un ORG 0, a los que se les colocaba una extensión SYS. Sin embargo no hay razón para que ello sea así, ya que un controlador de dispos dispositi itivo vo puede puede estar estar inclui incluido do dentr dentro o de un progr program ama a EXE, EXE, con la
condición de que el código del controlador sea el primer segmento de dicho programa. programa. El EMM386.EXE EMM386.EXE del MS-DOS MS-DOS 5.0 sorprendió sorprendió a mas de uno den den su día, ya que llamaba la atención como se podía cargar con DEVICE: lo cierto es que esto es factible incluso desde el DOS 2.0 (pese a lo que pueda indicar algún libro), pero ha sido mantenido casi en secreto. Actualmente es relativamente frecuente encontrar programas de este tipo. La ventaja de un controlador de dispositivo de tipo EXE es que puede ser ejecutado desde el DOS para modificar sus condiciones de operación, sin compilar su uso por parte del usuario con otro programa adicional. Además, un controlador controlador de dispositivo dispositivo EXE puede superar el limite de los 64 Kb, ya que el DOS se encarga de relocalizar las diferencias absolutas a segmentos como en cualquier programa EXE ordinario.
3.1.3. Herramientas de diagnostico: Una herramienta de diagnostico es un software que permite monitorizar y en algunos casos controlar la funcionalidad del hardware, como: computadoras, servidores y periféricos, según el tipo y sus funciones. Estos dispositivos pueden ser, la memoria RAM, el procesador,los discos duros, ruteadores, tarj tarjet etas as de red, red, entr entre e much muchos os disp dispos osit itiv ivos os mas. mas. El soft softwa ware re perm permit ite e monitorizar temperatura, rendimiento, transferencia de datos, etc.
3.1.4. Servidores Un servidor servidor es una computadora computadora que, que, formando parte parte de una red, provee provee servicios a otras computadores denominadas clientes.
Tambié ambién n se suele suele deno denomin minar ar con con la palab palabra ra serv servido idorr a una aplic aplicaci ación ón informát informática ica o program programa a que realiza algunas algunas tareas tareas en benefic beneficio io de otras otras aplicaciones llamadas clientes. Algunos servicios habituales son los servicios de archivos, que permiten a los usuarios almacenar y acceder a los archivos de una computadora y los servicios de aplicaciones, que realizan tareas en beneficio beneficio directo del usuario final. final. Este es el significado original del termino. termino. Es posible posible que un ordenad ordenador or cumpla cumpla simultán simultáneame eamente nte las funcion funciones es de cliente y de servidor. 3.1.5. Utilidades: Una Una utili utilida dad d es una una herra herramie mient nta a que que realiz realiza a tarea tareas s de manten mantenimi imien ento to,, soporte para la construcción y ejecución de programas, tareas en general; en donde se incluyen las bibliotecas de sistema, middleware, herramientas de desarrollo, etc. Entre ellas podemos nombrar cifrado y descifrado de archivos, comprensión
de archivos, desfragmentadores de disco, editores de texto, respaldo, etc.
conjunto nto de herra herramie mienta ntas s que que 3.2. 3.2. Softwa Software re de progra programaci mación: ón: Es el conju permi permite ten n al progr programa amado dorr desarr desarroll ollar ar progr programa amas s inform informát ático icos, s, usando usando diferentes alternativas y lenguajes de programación, de una manera practica. Incluye entre otros:
3.2.1. Editores de texto: Un editor de texto es un programa que permite crear y modificar archivos digi digita tale les s comp compue uest stos os únic únicam amen ente te por por text texto o sin sin form format ato, o, cono conoci cido dos s común comúnme ment nte e como como arch archivo ivos s de texto texto o texto texto plano. plano. El progr programa ama lee lee el archivo e interpreta los bytes leídos según el código de caracteres que usa el editor. Hoy en día es comúnmente de 7- ó 8- bits en ASCII o UTF-8, rara vez EBCDIC.
Por ejemplo, un editor ASCII de 8 bits que lee el numero binario 0110 0001 (decimal 97 ó hexadecimal 61) en el archivo lo representará en la pantalla por la figura “ a” que el el usuario usuario reconoce reconoce como como la letra letra “a” y ofrec ofrecerá erá al al usuar usuario io las funci funcione ones s necesa necesaria rias s para para cambi cambiar ar el numer numero o binar binario io en el archivo. Los editores de texto son incluidos en el sistema operativo o en algún paqu paquete ete de softw software are instal instalado ado y se usan usan cuan cuando do se debe deben n de crear crear o modifica modificarr archivo archivos s de texto texto como archivos archivos de configur configuració ación, n, scripts scripts o el código fuente de algún programa. El archivo creado por el editor de texto incluye por convención en DOS y Micro Microso soft ft Windo Windows ws la exten extensió sión n “.txt” “.txt”,, aunqu aunque e pueda pueda ser ser camb cambiad iada a a cualquier otra con posterioridad. Tanto Unix como Linux dan al usuario total libertad en la denominación de sus archivos. Al tratar archivos de texto texto de un sistema operativo a otro se debe considerar considerar
que existen al menos dos convenciones diferentes para señalar al termino de una linea: Unix y Linux usan solo retorno de carro en cambio Microsoft Windows usan al termino de cada linea retorno de carro y salto de linea.
3.2.2. Compiladores: Un compilador es un programa informático que traduce un programa escrito en un leng lengua uaje je de prog progra rama maci ción ón a otro otro leng lengua uaje je de prog progra rama maci ción ón,, gene genera rand ndo o un prog progra rama ma equi equiva vale lent nte e que que la maqu maquin ina a será será capa capaz z de interpretar. Usualmente el segundo lenguaje es lenguaje de maquina, pero también puede ser simplemente texto.
Este proceso de traducción se conoce como compilación. Un compilador es un programa que permite traducir el código fuente de un programa en lenguaje de alto nivel, a otro lenguaje de nivel inferior. De esta manera un programador puede diseñar un programa en un lenguaje mucho mas cercano a como piensa un ser humano, para luego compilarlo a un programa mas manejable por una computadora. 3.2.3. Interpretes: En ciencias de la computación, interprete o interpretador es un programa informático capaz de analizar y ejecutar otros programas, escritos en un lenguaje de alto nivel. Los interpretes se diferencian de los compi compilad ladore ores s en que que mient mientras ras estos estos tradu traduce cen n un progr programa ama desd desde e su
descr descripc ipció ión n en un lengu lenguaje aje de progr programa amació ción n al códig código o de maquin maquina a del del sistem sistema, a, los los inter interpre pretes tes solo solo realiz realizan an la tradu traducci cción ón a medid medida a que que sea neces necesari aria, a, típica típicamen mente, te, instru instrucc cción ión por por instru instrucc cción ión,, y norma normalme lmente nte no guardan el resultado de dicha traducción. Usando Usando un interpr interprete, ete, un solo archivo fuente puede puede producir producir resultados resultados iguales incluso en sistemas sumamente diferentes (una PC y un PlayStation 3). usando un compilador, un solo archivo fuente puede producir resultados igual iguales es solo solo si es compi compilad lado o a distin distinto tos s ejecu ejecutab tables les espe específ cífic icos os a cada cada sistema. Los programa programas s interpre interpretado tados s suelen suelen ser mas lentos lentos que los compilad compilados os debido a la necesidad necesidad de traducir el programa programa mientras se se ejecuta, pero a cambio son mas flexibles flexibles como entornos de de programación programación y depuración depuración (lo que se traduce, por ejemplo, en una mayor facilidad para reemplazar partes enteras del programa o añadir módulos completamente nuevos), y permite ofrecer al programa interpretado un entorno no dependiente de la maquina donde se ejecuta el interprete, si no del propio interprete (lo que se conoce comúnmente como maquina virtual). Par mejorar el desempeño, algunas implementaciones de programación de lenguajes de programación puede interpretar o compilar el código fuente original en una más compacta forma intermedia y después traducir eso al código de maquina (Perl, Python, MATLAB y Ruby). Algunos aceptan los archivos fuente guardados en esta representación intermedia (Python, UCSD Pascal y Java). Comparando Comparando su actuación con la de un ser humano, un compilador equivale equivale a un trad traduc ucto torr prof profes esio iona nall que, que, a parti artirr de un text texto, o, prep prepar ara a otro otro inde indepe pend ndie ient nte e trad traduc ucid ido o a otra otra leng lengua ua,, mien mientr tras as que que un inte interp rpre rete te corresponde corresponde al interprete interprete humano, que traduce de viva voz las palabras palabras que oye, sin dejar constancia por escrito. En la actualidad, uno de los entornos más comunes de uso de los interpretes info inform rmát átic icos os es Inte Intern rnet et,, debi debido do a la posi posibi bili lida dad d que que esto estos s tien tienen en de ejecutarse independientemente de la plataforma. 3.2.4. Enlazadores: es un programa que toma los ficheros de cogido objeto generado en los primeros pasos del proceso de compilación, la información de todos los recursos necesarios (biblioteca), quita aquellos recursos que no neces necesita ita,, y enlaz enlaza a el códig código o obje objeto to con con su(s) su(s) biblio bibliotec teca(s a(s)) con con lo que que finalmente produce un fichero ejecutable o una biblioteca. En el caso de los programas enlazados dinámicamente, el enlace entre el programa ejecutable y las bibliotecas se realizan en tiempo de carga o ejecución del programa.
depurad rador or es un progr programa ama usado usado para para prob probar ar y 3.2.5. 3.2.5. Depurador: Depurador: Un depu depurar (eliminar errores) de otros programas (el programa “objetivo”). El códig código o a ser exam examina inado do puede puede alter alternat nativ ivame amente nte esta estarr corrie corriendo ndo en un simulador de conjunto de instrucciones (ISS), una técnica que permite gran potencia en su capacidad de detenerse cuando son encontradas condiciones especificas pero será típicamente algo más lento que ejecutando el código directamente en el apropiado (o el mismo) procesador. Algunos depuradores depuradores ofrecen ofrecen dos modos de operaciónoperación- la simulación parcial parcial o completa, para limitar este impacto. Si es un depurador de nivel de fuente o depurador simbólico, comúnmente ahora visto en entornos de desarrollo integrados, cuando el programa se estrella estrella o alcanz alcanza a una condici condición ón predefi predefinida nida,, la depurac depuración ión típicame típicamente nte muestra la posición en el código original. Si es un depurador de bajo nivel por por un depur depurad ador or de lengu lenguaje aje maqu maquina ina,, muest muestra ra la linea linea en el fuen fuente te desensam desensambla blado do (a menos menos que también también tenga tenga acceso acceso en linea linea al código código fuen fuente te orig origin inal al y pued puede e exhi exhibi birr la secc secció ión n apro apropi piad ada a del del códi código go del del ensam ensambla blado dorr o el comp compila ilado dor). r). Un “estre “estrella llamie miento nto”” suced sucede e cuan cuando do el prog progra rama ma no pued puede e cont contin inua uarr norm norma almen lmente te debid ebido o a un err error de programa programación ción.. Por ejemplo ejemplo el programa programa pudo haber intentad intentado o usar una instrucción no disponible en la versión actual del CPU o haber intentado tener acceso a memoria protegida o no disponible. Típicamente Típicamente los depuradores depuradores también también ofrecen funciones funciones mas mas sofisticadas sofisticadas tales como correr un programa paso a paso (un paso o animación del programa), para el programa(breacking), es decir, pausar el programa para examinar el estad actual en cierto evento o instrucción especificada por medio de un breakpoint, y el seguimiento de valores de algunas variables. Algunos depuradores depuradores tienen la capacidad capacidad de modificar el estado del programa mientas que esta corriendo, en vez de simplemente observarlo. También es posible continuar la ejecución en una posición diferente en el programa bypaseando un estrellamiento o error lógico. 3.2.6. 3.2.6. Entornos Entornos de Desarrollo Desarrollo Integrados (IDE): Agrupan las anteriores herr herram amie ient ntas as,, usua usualm lmen ente te en un ento entorn rno o visu visual al,, de form forma a tal tal que que el progr programa amador dor no nece necesit site e intro introdu ducir cir múlti múltiple ples s coman comandos dos para para compi compilar lar,, interpretar interpretar,, depurar, depurar, etc. Habitualmente Habitualmente cuentan con una avanzada avanzada interfaz gráfica de usuario (GUI).
3.3. Software de aplicación: Es aquel que permite a los usuarios llevar a cabo una o varias especificas, en cualquier campo de actividad susceptible
de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre otros: •
•
•
•
•
• •
•
•
•
•
Aplicaciones Aplicaciones para control de sistemas y automatización automatización industrial Aplicaciones Aplicaciones ofimáticas ofimáticas Software educativo Software empresarial Bases de datos Telecomunicaciones Videojuegos Software médico Software de calculo numérico y simbólico. Software de Diseño Asistido(CAD) Software de Control Numérico (CAM).
4. Ejemplos: Software de sistema:
Ordenadores Windows •
•
•
•
Mac OS Linux AmigaOS
Dispositivos móviles •
•
•
•
•
•
Symbian Android iOS Windows Mobile BlackBerry OS Palm OS
Software de programación: •
•
•
•
•
C. Delphi Visual Basic Pascal Java
Software de aplicación: •
•
• •
•
•
•
Procesadores de texto. (Bloc de Notas) Editores. (PhotoShop para el Diseño Gráfico Hojas de Cálculo. (MS Excel) Sistemas gestores de bases de datos. (MySQL) Programas de comunicaciones. (MSN Messenger) Paquetes integrados. (Ofimática: Word, Excel, PowerPoint…) Programas de diseño asistido por computador. (AutoCAD)
5. Infografia: Wikipedia: http://es.wikipedia.org