El Software y sus tipos.

31
EL SOFTWARE Concepto y tipos. Materia: Fundamentos del Compuatdor. Nombre: Gabriel Talavera. Matrícula: 2014-2308.

Transcript of El Software y sus tipos.

EL SOFTWARE

Concepto y tipos.

Materia: Fundamentos del Compuatdor.Nombre: Gabriel Talavera.Matrícula: 2014-2308.

Concepto de Software

Se conoce como software al equipamiento lógico o soporte lógico de un sistema informático, que comprende el conjunto de los componentes lógicos necesarios que hacen posible la realización de tareas específicas, en contraposición a los componentesfísicos que son llamados hardware.

Los componentes lógicos incluyen, entre muchos otros, las aplicaciones informáticas; tales como el procesador de texto, que permite al usuario realizar todas las tareas concernientes a la edición de textos; el llamado software de sistema, tal como elsistema operativo, que básicamente permite al resto de los programas funcionar adecuadamente, facilitando también la interacción entre los componentes físicos y el resto de las aplicaciones, y proporcionando una interfaz con el usuario.

Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de las operaciones de un sistema de computación.

SOFTWARE DE SISTEMA

Software de sistema

Su objetivo es desvincular adecuadamente al usuario y al programador de los detalles del sistema informático en particular que se use, aislándolo especialmente del procesamiento referido a las características internas de: memoria, discos, puertos y dispositivos de comunicaciones, impresoras, pantallas, teclados, etc. El software de sistema le procura al usuario y programador adecuadas interfaces de alto nivel, controladores, herramientas y utilidades de apoyo que permiten el mantenimiento del sistema global. Incluye entre otros:

Sistemas operativos

Controladores de dispositivos

Herramientas de diagnóstico

Herramientas de Corrección y Optimización

Servidores

Utilidades

Ejemplos de software de sistema para desktop

Ejemplos de software de sistema para móbiles

SOFTWARE DE APLICACIÓN

Software de aplicación

Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con especial énfasis en los negocios. Incluye entre muchos otros:

Aplicaciones para Control de sistemas y automatización industrial

Aplicaciones ofimáticas

Software educativo

Software empresarial

Bases de datos

Software de aplicación

Telecomunicaciones (por ejemplo Internet y toda su estructura lógica)

Videojuegos

Software médico

Software de cálculo numérico y simbólico.

Software de diseño asistido (CAD)

Software de control numérico (CAM)

Ejemplos de software de aplicación para desktop

Ejemplos de software de aplicación para móbiles

SOFTWARE DE PROGRAMACIÓN

Software de programación

Es el conjunto de herramientas que permiten al programador desarrollar programas informáticos, usando diferentes alternativas ylenguajes de programación, de una manera práctica. Incluyen básicamente:

Editores de texto Compiladores Intérpretes Enlazadores Depuradores

Entornos de Desarrollo Integrados (IDE): Agrupan las anteriores herramientas, usualmente en un entorno visual, de forma tal que el programador no necesite introducir múltiples comandos para compilar, interpretar, depurar, etc. Habitualmente cuentan con una avanzada interfaz gráfica de usuario (GUI).

Ejemplos de software de programación para desktop

Ejemplos de software de programación para móbiles

ETAPAS DEL PROCESO DE DESARROLLO DE SOFTWARE

Etapas del proceso de desarrollo de software

Captura, análisis y especificación de requisitosAl inicio de un desarrollo (no de un proyecto), esta es la primera fase que se realiza, y, según el modelo de proceso adoptado, puede casi terminar para pasar a la próxima etapa (caso de Modelo Cascada Realimentado) o puede hacerse parcialmente para luego retomarla (caso Modelo Iterativo Incremental u otros de carácter evolutivo).

En simple palabras y básicamente, durante esta fase, se adquieren, reúnen y especifican las características funcionales y no funcionales que deberá cumplir el futuro programa o sistema a desarrollar.

Las bondades de las características, tanto del sistema o programa a desarrollar, como de su entorno, parámetros no funcionales y arquitectura dependen enormemente de lo bien lograda que esté esta etapa. Esta es, probablemente, la de mayor importancia y una de las fases más difíciles de lograr certeramente, pues no es automatizable, no es muy técnica y depende en gran medida de la habilidad y experiencia del analista que la realice.

Etapas del proceso de desarrollo de software

Involucra fuertemente al usuario o cliente del sistema, por tanto tiene matices muy subjetivos y es difícil de modelar con certeza o aplicar una técnica que sea «la más cercana a la adecuada» (de hecho no existe «la estrictamente adecuada»). Si bien se han ideado varias metodologías, incluso software de apoyo, para captura, elicitación y registro de requisitos, no existe una forma infalible o absolutamente confiable, y deben aplicarse conjuntamente buenos criterios y mucho sentido común por parte del o los analistas encargados de la tarea; es fundamental también lograr una fluida y adecuada comunicación y comprensión con el usuario final o cliente del sistema.

El artefacto más importante resultado de la culminación de esta etapa es lo que se conoce como especificación de requisitos software o simplemente documento ERS.

Etapas del proceso de desarrollo de software

Las tareas relativas a captura, elicitación, modelado y registro de requisitos, además de ser sumamente importante, puede llegar a ser dificultosa de lograr acertadamente y llevar bastante tiempo relativo al proceso total del desarrollo; al proceso y metodologías para llevar a cabo este conjunto de actividades normalmente se las asume parte propia de la Ingeniería de Software, pero dada la antedicha complejidad, actualmente se habla de una Ingeniería de requisitos , aunque ella aún no existe formalmente.

Hay grupos de estudio e investigación, en todo el mundo, que están exclusivamente abocados a idear modelos, técnicas y procesos para intentar lograr la correcta captura, análisis y registro de requisitos. Estos grupos son los que normalmente hablan de la Ingeniería de requisitos; es decir se plantea ésta como un área o disciplina pero no como una carrera universitaria en si misma.

LOS TIPOS DE LICENCIAS QUE EXISTEN EN EL SOFTWARE

Los tipos de licencias que existen en el software

Según los derechos que cada autor se reserva sobre su obra

Licencia de software de código abierto permisivas

Se puede crear una obra derivada sin que ésta tenga obligación de protección alguna. Muchas licencias pertenecen a esta clase, entre otras:

Academic Free Licene v.1.2.

Apache Software License v.1.1.

Artistic License v.2.0

Attribution Assurance license.

BSD License.

MIT License.

Los tipos de licencias que existen en el software

University of Illinois/NCSA Open Source License.

W3C Software Notice and License.

Zope Public License v.2.0

Open LDAP License v.2.7

Perl License.

Academic Free License v.3.0

Python License v.2.1

PHP License v.3.0

Q Public License v.1.0

Los tipos de licencias que existen en el software

Licencia de software de código abierto robustasEstas licencias aplican algunas restricciones a las obras derivadas, haciendo que según el grado de aplicación se puedan dividir a su vez en dos subcategorías:

Licencias de software de código abierto robustas fuertesLas licencias de software de código abierto robustas fuertes o con copyleft fuerte, contienen una cláusula que obliga a que las obras derivadas o modificaciones que se realicen al software original se deban licenciar bajo los mismos términos y condiciones de la licencia original.

Los tipos de licencias que existen en el software

Entre las licencias de esta categoría están:

Common Public License v.1.0.

GNU General Public License v.2.0.

GNU General Public License v.3.0.

Eclipse Public License.

eCos License v.2.0

Sleepycat Software Product License.

Affero License v.1.0

Affero License v.2.0

OpenSSL License.

Los tipos de licencias que existen en el software

Licencias de software de código abierto robustas débilesLas licencias de software de código abierto robustas débiles, con copyleft débil/suave o híbridas, contienen una cláusula que obliga a que las modificaciones que se realicen al software original se deban licenciar bajo los mismos términos y condiciones de la licencia original, pero que las obras derivadas que se puedan realizar de él puedan ser licenciadas bajo otros términos y condiciones distintas.

Entre las licencias de esta categoría están:

GNU Lesser General Public License v.2.1.

Mozilla Public License.

Open Source License.

Apple Source License v.2.0

CDDL.

EUPL.

Los tipos de licencias que existen en el software

Licencia de software de código cerradoEstas licencias también se conocen con el nombre de software propietario o privativo. En ellas los propietarios establecen los derechos de uso, distribución, redistribución, copia, modificación, cesión y en general cualquier otra consideración que se estime necesaria.

Este tipo de licencias, por lo general, no permiten que el software sea modificado, desensamblado, copiado o distribuido de formas no especificadas en la propia licencia (piratería de software), regula el número de copias que pueden ser instaladas e incluso los fines concretos para los cuales puede ser utilizado. La mayoría de estas licencias limitan fuertemente la responsabilidad derivada de fallos en el programa.

Los fabricantes de programas sometidos a este tipo de licencias por lo general ofrecen servicios de soporte técnico y actualizaciones durante el tiempo de vida del producto.

Algunos ejemplos de este tipo de licencias son las llamadas CLUFs: Contrato de Licencia para el Usuario Final o EULAs: End User License Agreement, por sus siglas en Inglés.

Los tipos de licencias que existen en el software

Software de dominio público (sin licencia)Se permite uso, copia, modificación o redistribución con o sin fines de lucro.

Según su destinatario

Licencia de Usuario FinalEn inglés EULA o End User License Agreement, es una licencia por la cual el uso de un producto sólo está permitido para un único usuario (el comprador).

En este tipo de contrato, el dueño de los derechos de un producto insta al usuario final de éste a que reconozca tener conocimiento de las restricciones de uso, de los derechos del autor (copyright), de las patentes, etc. y que acepte de conformidad.

El conocimiento del contenido de los contratos es difícil antes de la compra del producto ya que las cajas de los productos raramente contienen una copia completa del mismo, dándose que el comprador en la mayor parte de las ocasiones conoce su contenido después de la compra.

Los tipos de licencias que existen en el software

Licencia de distribuidoresEn este tipo de contrato, se le asigna derechos restringidos a un comerciante de tipo comisionario para que venda el producto(software) dando una remesa o comisión al fabricante. La misma puede ser por primera venta o licencia de renovación de contrato. No se trata de una licencia de uso en términos jurídicos, sino más bien en un acuerdo comercial en la que no tiene porque ser cedido el derecho de distribución necesariamente. Puede darse el caso de simple actividad comercial en la que el distribuidor ni siquiera tenga contacto con el software, y éste como elemento y la licencia de uso en si sea directamente suscrita y puesta a disposición por parte del fabricante. Encargándose el distribuidor del correspondiente cobro al usuario y pago al fabricante menos su margen.

MÁQUINA VIRTUAL

Máquina virtual

En informática una máquina virtual es un software que simula a una computadora y puede ejecutar programas como si fuese una computadora real. Este software en un principio fue definido como "un duplicado eficiente y aislado de una máquina física". La acepción del término actualmente incluye a máquinas virtuales que no tienen ninguna equivalencia directa con ningún hardware real.

Una característica esencial de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de esta "computadora virtual".

Uno de los usos domésticos más extendidos de las máquinas virtuales es ejecutar sistemas operativos para "probarlos". De esta forma podemos ejecutar un sistema operativo que queramos probar (GNU/Linux, por ejemplo) desde nuestro sistema operativo habitual (Mac OS X por ejemplo) sin necesidad de instalarlo directamente en nuestra computadora y sin miedo a que se desconfigure el sistema operativo primario.

Máquina virtual

Las máquinas virtuales se pueden clasificar en dos grandes categorías según su funcionalidad y su grado de equivalencia a una verdadera máquina.

Máquinas virtuales de sistema (en inglés System Virtual Machine).

Máquinas virtuales de proceso (en inglés Process Virtual Machine).