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
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.
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.
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.
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
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.
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.
– 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
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.
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.
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.
Top Related