Tarea 2 software

11

Click here to load reader

Transcript of Tarea 2 software

Page 1: Tarea 2 software

Computación para Ingenieros

Tarea 2

“Software Operativo y de

Desarrollo”

Oropeza Bonfanti Rodrigo 414012716

Profesor: Ing. Méndez Hernández Ernesto

20/08/2013

Page 2: Tarea 2 software

SOFTWARE

Antes de poder definir lo que es un software, debemos entender el concepto

de abstracto. Abstracto es aquello que representa una cualidad o

característica de un objeto pero en forma aislada a este; es decir no es algo

físico o palpable, de manera que no se puede percibir con los sentidos. Para

poder entender este concepto podemos decir que las letras y símbolos

, si no que son representaciones de

la información.

Una vez que entendemos esto, podemos

decir que el software es la estructura lógica

de una computadora, todo lo intangible; es

decir, son los programas de aplicación y/o

sistemas operativos que no son tangibles

para el usuario. Se puede decir que es todo

aquello que se representa dentro de los

circuitos de las computadoras, el conjunto de programas, instrucciones y

reglas informáticas para ejecutar ciertas tareas en una computadora.

Esta idea permite dividir a las computadoras en dos grandes partes: la

primera son los componentes físicos (tangibles y concretos), la cual se

conoce como el Hardware (hard= fuerte en inglés). La segunda son las

representaciones abstractas que se almacenan en una computadora que es

el Software.

EVOLUCIÓN DEL SOFTWARE

En 1949 el matemático húngaro John Von Neumann resolvió el problema de

tener que cablear una máquina para cada tarea al poner las instrucciones en

la misma memoria que los datos las cuales las escribió en código binario.

Durante los primeros años de la era de la computadora, el software se

contemplaba como un añadido. La programación de computadoras era

artesanal y existían pocos métodos sistemáticos. El desarrollo del software se

realizaba virtualmente sin ninguna planificación. El diseño era un proceso

implícito, realizado en la mente de alguien y la documentación normalmente

no existía.

Page 3: Tarea 2 software

En 1957 un equipo de IBM, dirigido por John Backus, creó el primer lenguaje

de programación, llamado Fortran , formulado para el IBM 704.

La segunda era en la evolución de los sistemas de

computadora se extienden desde la mitad de la década

de los sesenta hasta finales de los setenta.La

multiprogramación y los sistemas multiusuario

introdujeron nuevos conceptos de interacción hombre-

máquina. También se caracterizó por el establecimiento

del software como producto y la llegada de las "casas

de software".

En1969 Kenneth Thompson y Dennis Ritchie, de Bell Labs, desarrollaron el

sistema operativo Unix y el lenguaje C en1972. Posteriormente, en 1975

Steve Jobs desarrolló el lenguaje de programación Basic y con su compañero

Wozniak construyeron la primera computadora Apple. En ese mismo año Bill

Gates y Paul Allen crearon Microsoft.

La tercera era en la evolución de los sistemas de computadora comenzó a

mediados de los años setenta y continúo más allá de una década. Las

múltiples computadoras, cada una ejecutando funciones concurrentes y

comunicándose con alguna otra, incrementaron notablemente la complejidad

de los sistemas informáticos.Las redes, las comunicaciones digitales de alto

ancho de banda y la creciente demanda de acceso instantáneo a los datos,

supusieron una fuerte presión sobre los desarrolladores del software.

La cuarta era de la evolución de los sistemas informáticos se aleja de las

computadoras individuales y de los programas de computadoras, dirigiéndose

al impacto colectivo de las computadoras y del software.Potentes máquinas

personales controladas por sistemas operativos sofisticados, en redes

globales y locales, acompañadas por aplicaciones de software avanzadas se

convirtieron en la norma.

La industria del software ya es la cuna de la economía del mundo. Las

técnicas de la cuarta generación para el desarrollo del software están

cambiando en la forma en que la comunidad del software construye

programas informáticos. Las tecnologías orientadas a objetos están

desplazando rápidamente los enfoques de desarrollo de software más

convencionales en muchas áreas de aplicaciones.

Page 4: Tarea 2 software

TIPOS DE SOFTWARE

Dado que hay múltiples tipos de datos e instrucciones que se pueden

almacenar dentro de las computadoras, es necesario identificar los tipos de

software de acuerdo a las siguientes clasificaciones.

Clasificado según su función

a) Software aplicativo

Es aquel SW que dirige las distintas tareas para las que se utilizan las

computadoras en cualquier campo de actividad susceptible de ser

automatizado o asistido, con especial énfasis en los negocios; es decir,

facilita al usuario la realización de un determinado tipo de trabajo. Aquel que

permite darle a las computadoras un uso especifico, como las hojas de

calculo y los procesadores de texto.

Lleva a cabo tareas de tratamiento de textos, gestión de bases de datos,

contabilidad, reservaciones de viajes y similares.

b) Software de sistema o de base

Aquel asociado con el funcionamiento interno de las computadoras y que

permite a otros programas ejecutarse correctamente. Se le conoce también

como software operativo y de desarrollo.

Sistemas operativos

Es el intermediario entre el usuario y la máquina. Controla los procesos de la

computadora y administra sus recursos. Tiene 3 funciones principales:

– Coordina y manipula el hardware de la computadora (ej. la

administración de la pantalla)

– Organiza los archivos en diversos dispositivos de

almacenamiento

– Gestiona los errores de hardware y la pérdida de datos

Usualmente se les clasifica de la siguiente manera:

Monoproceso

, destinándole todos los recursos

de la computadora.

Page 5: Tarea 2 software

Multiproceso

Permiten ejecutar varios programas al mismo tiempo, controlando el acceso

de cada uno de ellos a los recursos de la computadora.

Multiusuario

Son sistemas operativos multiproceso que además

.

Algunos sistemas operativos son:

MS-DOS.

Windows.

UNIX.

BSD.

Linux

Symbian.

iOS.

BlackBerry.

Android.

Chrome OS

Uno de los principales sistemas operativos, muy conocido y de los más

usados es Windows.

Windows hace su aparición el 20 de noviembre de 1985.

Dispone de una interfaz gráfica que facilita el manejo de

los procedimientos: cada comando puede ser visualizado

en una pantalla mediante una imagen que lo representa.

Tuvo una mayor difusión en el mercado actual, y su imponente popularidad

se torna elemento indispensable para la inserción de todo nuevo usuario

informático.

Windows 95 fue el primero considerado como sistema operativo real;

incorporó el “Plug and Play”.WinXP, aparece en 2001, el más utilizado

actualmente.

Otro de los sistemas operativos que es conveniente mencionar es Linux.

Linux es el núcleo de un sistema operativo libre, desarrollado y lanzado al

mundo por Linus Torvalds en 1991.Torvalds eligió distribuir Linux con una

licencia de software de código libre denominada GNU GPL (General Public

License), Linux se caracteriza por ser libre, gratuito, de código fuente abierto

y portable.

Uno de los primeros conceptos que aparecen al iniciarse en Linux es el

concepto de distribución.Una distribución es un agrupamiento del núcleo del

Page 6: Tarea 2 software

sistema operativo Linux (la parte desarrollada por Linus Torvalds) y otra serie

de aplicaciones de uso general o no tan general.

También se encuentran los sistemas operativos, UNIX que es un sistema

operativo portable, multitarea y multiusuario, desarrollado por Ken Thompson

y Dennis Ritchie entre otros. Hizo su aparición a principios de los 70’s en los

Laboratorios Bell.

LENGUAJES DE COMPUTADORA

Son el conjunto de instrucciones escritas para que

una computadora efectúe unas funciones

determinadas. Pueden usarse para crear programas

que controlen el comportamiento físico y lógico de

una máquina, para expresar algoritmos con precisión,

o como modo de comunicación humana. Está formado por un conjunto de

símbolos y reglas sintácticas y semánticas que definen su estructura y el

significado de sus elementos y expresiones.

NIVEL DEL LENGUAJE

Bajo nivel

Es aquel lenguaje que sólo entiende la computadora, es decir, el lenguaje

que maneja el procesador y es dependiente de él. Este lenguaje a su vez se

puede clasificar en:

1) :

Las instrucciones y los datos están representados por unos y ceros

lógicos (lenguaje binario),

. Son los lenguajes que entienden y

ejecutan en forma directa las computadoras, por lo que los

de poderse ejecutar .

2) Lenguajes tipo ensamblador:

unos y ceros. Cada modelo de microprocesador cuenta con s

binario equivalente.

Page 7: Tarea 2 software

Alto nivel

Aquel lenguaje cuyas instrucciones se asemejan al lenguaje natural, es decir

está dada como enunciados que nosotros podemos entender. Es

independiente de la máquina. Al aproximarse al lenguaje natural, el programa

se puede escribir y leer de una forma más sencilla, eliminando muchas de las

posibilidades de cometer errores. Ej. Lenguaje C, Pascal, Fortran, C++

Los lenguajes de computadora también se pueden clasificar según su

aplicación en:

Lenguajes orientados a procedimientos.

Son los que comúnmente se conocen como Lenguajes de

Programación. Se emplean para desarrollar a su vez tanto software de

base como aplicativo.

Lenguajes orientados a problemas específicos.

Son los desarrollados para resolver problemas de un área particular de

aplicación, como los lenguajes para procesamiento de texto o los de

análisisestadístico.

Lenguajes de consulta

Se emplean en las bases de datos para manipular matemáticamente

los datos y dar formato a resultados e informes.

Generadores de aplicaciones

Permiten seleccionar funciones previamente programadas para

generar una nueva aplicación con características particulares.

LENGUAJES SEGÚN SU TIPO DE TRADUCTOR

, los programas que no estén

. Al

pro código objeto, mientras

que al escrito en otro distinto se le conoce como código fuente. Asimismo

tenemos que entender que un traductor es un software que toma un código

fuente y lo transforma en código objetoUn lenguaje de programación puede

emplear uno o más de los siguientes tipos de traducción.

Page 8: Tarea 2 software

– INTÉRPRETES

Traducen una instrucción a la vez y la ejecutan. No genera código objeto y

sólo genera un resultado o un error. Es un programa capaz de analizar y

ejecutar programas escritos en un lenguaje de alto nivel. Los intérpretes

se diferencian de los compiladores en que los primeros sólo realizan la

traducción a medida que sea necesaria, típicamente, instrucción por

instrucción, y normalmente no guardan el resultado de dicha traducción.

El interpretar utiliza menos memoria que el compilar.

– Compiladores

Aquellos traductores que cuyo código fuente está en lenguaje de alto nivel

y lo transforman a lenguaje de bajo nivel. Ej. C, Pascal, Fortran, C++.

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 (típicamente lenguaje de

máquina). De esta manera un programador

puede diseñar un programa en un lenguaje

mucho más cercano a como piensa un ser

humano, para luego compilarlo a un programa más manejable por una

computadora. Un compilador muestra todos los errores de una sola vez y

mas detallada. El interpretador se detiene una vez encontrado un error.

El Ensamblador es un caso particular de un compilador, ya que traduce el

lenguaje ensamblador a lenguaje máquina

– Híbridos

Aquellos traductores que actúan tanto como intérpretes y como

compiladores. Ejemplo: Java, C#

A partir de lo descrito en el apartado anterior, el lenguaje C se puede

clasificar como:

Estructurado

Para programadores, debido a que es muy permisivo

Compilado

Sensible a mayúsculas y minúsculas

Page 9: Tarea 2 software

Se usa principalmente para desarrollar sistemas operativos, i ,

editores de texto, compiladores y administradores de datos, es decir, software

de base. Un programa en lenguaje C se escribe en un archivo de texto,

conocido como ,

, conocida como . Este archivo

contiene las instrucciones del programa.

(que

comparten todos los compiladores de

lenguaje C), en librerías propias de cada

compilador o en librerías

. A este proceso se le conoce como enlace y es efectuado po

, conocida como

ejecutable.

Clasificación de software por su uso o estandarización

a) Software a la medida

. Son aplicaciones desarrolladas a la medida de las

necesidades que ofrecen una gran potencia, ya que, están

exclusivamente diseñadas para resolver problemas con requerimientos

específicos.

b) Software de propósito general

Es aquel que puede responder a las necesidades de varias personas,

estando dirigido al mercado general y en algunos casos

comercializado. Aquel software orientado a las necesidades generales

de los usuarios. También llamados paquetes integrados de software o

solamente paquetes, ofrecen poca potencia pero a cambio incluyen

varias aplicaciones, como un software procesador de textos, de hoja

de cálculo y de base de datos.

Page 10: Tarea 2 software

Clasificación de software por su propiedad

a) Software libre

Es aquel software que una vez obtenido, puede ser usado, copiado,

estudiado, modificado y redistribuido libremente. La licencia para su

uso se pone a disposición del usuario en forma gratuita. Asimismo se

pone a disposición el código fuente para que el usuario vea cómo se

programó y pueda aportar mejoras a él.

b) Software propietario

Es el que requiere de una licencia del propietario para poderse utilizar,

modificar o redistribuir; misma que puede adquirirse pagando una

cierta cantidad de dinero o mediante un convenio. En la mayoría de los

casos la licencia no incluye los derechos para alterar el software.

Calidad de Software

La calidad del software se puede definir como el grado en el cual un sistema,

componente o proceso cumple con los necesidadesy requerimientos

explícitos e implícitos del usuario, está bien documentado, cumple con las

normas operativas de la organización y se ejecuta de manera eficiente en el

hardware para el cual se desarrolló.

Para poder determinar la calidad de un software, debemos de analizar su

operatividad en los aspectos de precisión, seguridad, eficiencia, fiabilidad,

pertinencia, entre otros. También su capacidad de mantenimiento, en

cuestión de flexibilidad, capacidad de corrección, de variabilidad y de los

resultados de las pruebas que se le han realizado. Finalmente es conveniente

analizar su capacidad de transferencia para ver si se puede usar como basa

de las mejoras; es decir, analizar su portabilidad, posibilidad de reutilizar su

código, etc.

Page 11: Tarea 2 software

Debemos de tomar en cuenta que a pesar de los grandes avances que se

han hecho en relación al software, un conjunto de problemas relacionados

con el software ha persistido a través de su evolución:

Los avances del software continúan dejando atrás nuestra habilidad de

construir software para alcanzar el potencial del hardware.

Nuestra habilidad de construir nuevos programas no pueden ir al

mismo ritmo de la demanda de nuevos programas.

El uso extenso de computadoras ha hecho de la sociedad cada vez

más dependiente de la operación fiable del software.

Luchamos por construir software informático que tenga fiabilidad y alta

calidad.

Nuestra habilidad de soportar y mejorar los programas existentes se

ve amenazada por diseños pobres y recursos inadecuados.