Tema III. Software operativo y de...
Transcript of Tema III. Software operativo y de...
Tema III. Software operativo y
de desarrollo
Objetivo: El alumno conocerá y entenderá la evolución y la situación
actual que éste presenta. Asimismo distinguirá los diferentes tipos de
programas (software) necesarios tanto para operar la máquina como para
realizar desarrollos y aunado a esto tendrá las bases para seleccionar
aquel software que le permita resolver un problema.
3.1 Evolución del software y su situación actual
Ing. Tanya Arteaga Ricci
Software
Es la estructura lógica de una computadora, todo lo intangible, es decir, son los programas de aplicación, sistemas operativos que no son tangibles para el usuario.
(Voz ingl.). 1. m. Inform. Conjunto de programas, instrucciones y reglas informáticas para ejecutar
ciertas tareas en una computadora.
Diccionario de la Real Academia de la Lengua Española.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Clasificación
Según su función
Software de base Software aplicativos
Por su uso o estandarización
El software aplicativo El software a la medida El software de acuerdo al cliente
Libre y propietario
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Software de Base Software básico que controla una computadora. El sistema operativo tiene tres grandes funciones: •Coordina
•Manipula
•Organiza los archivos
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Los sistemas operativos controlan diferentes procesos de la computadora. Un proceso importante es la interpretación de los comandos que permiten al usuario comunicarse con la computadora. Algunos intérpretes de instrucciones están basados en texto y exigen que las instrucciones sean tecleadas. Otros están basados en gráficos, y permiten al usuario comunicarse señalando y haciendo clic en un icono. Por lo general, los intérpretes basados en gráficos son más sencillos de utilizar.
Sistema Operativo
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Evolución
Sistemas por Lotes
Estos sistemas se diseñaron en la década de 1950 para controlar las computadoras mainframe. Cada programa a ejecutarse se llamaba tarea. Un programador que deseaba ejecutar una tarea enviaba una solicitud a la sala de operaciones junto con tarjetas perforadas para el programa y los datos. El programador no tenía ningún control o interacción con el sistema. Un operador procesaba las tarjetas perforadas. Si el programa era satisfactorio, el resultado se enviaba al programador , de lo contrario, se enviaba un listado de error.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Tarjeta Perforada
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Evolución
Sistemas de Tiempo Compartido
Para utilizar los recursos del sistema de computación eficientemente, se introdujo la multiprogramación. La idea es mantener varias tareas en memoria y sólo asignar un recurso a una tarea que lo necesite con la condición de que el recurso está disponible. La multiprogramación trajo la idea del tiempo compartido. Estas dos características mejoraron en gran medida la eficiencia de un sistema de computación. No obstante, ésta requería un sistema operativo más complejo. El sistema operativo ahora tenía que hacer una planificación: asignación de los recursos a los distintos programas y decidir cuál programa debería utilizar cuál recurso y cuándo. Durante esta época, la relación entre una computadora y un usuario también cambió. El usuario podía interactuar directamente con el sistema sin pasar por el operador. Un nuevo término también se acuñó: proceso. Una tarea es un programa a ejecutar; un proceso es un programa que está en la memoria en espera de recursos.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Evolución
Sistemas personales
Cuando las computadoras personales se introdujeron, había una necesidad de un sistema operativo de este tipo de computadora. Durante esta época, se introdujeron los sistemas operativos monousuario tales como DOS (Disk Operating System)
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Sistemas paralelos
La necesidad de una mayor velocidad y eficiencia condujo al diseño de los sistemas paralelos: varios CPU en la misma máquina. Cada CPU podía utilizarse para servir a un programa o a una parte de un programa, lo cual significa que muchas tareas pueden lograrse en paralelo en vez de en forma serial. El sistema operativo para estos sistemas es más complejo que en aquellos con un solo CPU.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Sistema de Procesamiento Paralelo
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Sistemas Distribuidos
Una tarea realizada previamente por completo en una computadora ahora podía compartirse entre computadoras que podían estar a miles de kilómetros de distancia. Un programa puede ejecutarse parcialmente en una computadora y parcialmente en otra si éstas están conectadas mediante un conjunto de redes interconectadas como Internet. Además, los recursos pueden distribuirse. Un programa puede necesitar archivos localizados en distintas partes del mundo.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Sistema Operativo
Administrador de memoria
Administrador de procesos
Administrador de dispositivos
Administrador de archivos
Interfaz de usuario
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Ejemplos de Sistemas Operativos
MS-DOS
Windows
Linux
Unix
BSD
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
MS-DOS •Apareció en los años 70’s
• No es multiusuario o multitarea
• Se regía por medio de comandos
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Windows
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.
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.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
LINUX
•Aparición en 1991.
•Creado por Linus Torvalds
•Sistema informático libre, gratuito y de código fuente abierto.
•Flexibilidad de configuración
•Estabilidad
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
GNOME
KDE
LOOKINGLASS
ENLIGHTENMENT
XFCE
ICEWM
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Richard Stallman
Licencia GNU
Dennis Ritchie
Unix
Bryan Kerniganh
Dos
Robert Pike Linus Torvalds
Linux
Personajes que ya hicieron historia
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
¿Qué es LINUX?
Linux es el núcleo de un sistema operativo libre, desarrollado y lanzado al mundo por Linus Benedict Torvalds en 1991.
Torvalds eligió distribuir Linux con una licencia de software de código libre denominada GNU General Public License (GPL).
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
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. En principio las empresas que desarrollan las distribuciones de Linux están en su derecho al cobrar una cierta cantidad por el software que ofrecen, aunque en la mayor parte de las ocasiones se pueden conseguir estas distribuciones desde Internet, de revistas o de amigos, siendo todas estas formas gratuitas y legales.
Ing. Tanya I. Arteaga Ricci | F.I. 2009 (R)
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Richard Matthew Stallman
Fundador del proyecto GNU
Creador Emacs
Compilador GCC
Creador de las licencias GNU: GPL, LGPL
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Libertades del Software Libre
Libertad 0: la libertad de usar el programa, con cualquier propósito.
Libertad 1: la libertad de estudiar cómo funciona el programa, y adaptarlo a tus necesidades.
Libertad 2: la libertad de distribuir copias, con lo que puedes ayudar a tu vecino.
Libertad 3: la libertad de mejorar el programa y hacer públicas las mejoras a los demás, de modo que toda la comunidad se beneficie.
WWW
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Software
Drivers
Colores
Modo gráfico
Kernel
Shell
Vi
gcc
Hardware
Núcleo y lo demás…
http://bellard.org/jslinux/
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
UNIX
• Principios de los años setentas.
• Creado por Ken Thompson y Dennis Ritchie.
• Capacidad de soportar Multiprogramación.
• Capacidad de tiempo compartido.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
BSD
• Berkeley Software Distribution.
• En 1977 Bill Joy, entonces un estudiante de grado en Berkeley, grabó y envió cintas del primer BSD.
• Nacido a partir de los aportes realizados a ese sistema por la Universidad de California en Berkeley.
• Manejo de memoria virtual paginado por demanda.
• Control de trabajos.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Ciclo de Vida del Software
El software primero se desarrolla por un grupo de desarrolladores/programadores. Por lo general, está en uso durante algún tiempo antes de que se requiera hacerle modificaciones. Las modificaciones a menudo son necesarias debido a errores encontrados en el software, a cambios en las normas o leyes, o a cambios en la compañía misma. El software debe modificarse antes para su uso posterior. Estos dos pasos, usar y modificar, continúan hasta que el software se vuelve obsoleto.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Desarrollo del Sistema
Análisis Diseño Imple –menta –
ción Pruebas
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Fase de Análisis
El proceso de desarrollo comienza con
la fase de análisis, la cual muestra qué debe hacer el paquete. En esta fase, el analista de sistemas define los requisitos que especifican lo que el sistema propuesto va a lograr.
Los requisitos por lo general se establecen en los términos que el usuario comprende.
Definición del Usuario
Definición de las necesidades
Definición de los requisitos
Definición de los métodos
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Fase de Análisis
Para poder identificar y definir bien un problema es conveniente responder a las siguientes preguntas:
¿Qué entradas se requieren? Tipo de datos con los cuales se trabaja y cantidad
¿Cuál es la salida deseada? Tipo de datos de los resultados y cantidad
¿Qué método produce la salida deseada?
Requisitos o requerimientos adicionales y restricciones a la solución.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Fase de Diseño
La fase de diseño define cómo
logrará el sistema lo que se definió
en la fase de análisis. En la fase de
diseño, se determinan los sistemas y
el diseño de archivos y/o bases de
datos se completa.
Modularidad
Herramientas
Se ayuda de dos características en esta etapa:
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Fase de Implementación
En la fase de implementación se
crean los problemas reales.
Herramientas
Codificación
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Fase de Prueba
Una vez que los programas se han escrito, deben probarse. La fase de prueba puede ser muy tediosa y consumir parte del tiempo de desarrollo del programa. Los programadores son completamente responsables de probar sus programas. En los proyectos de desarrollo grandes, con frecuencia hay especialistas llamados Ingenieros de Pruebas quienes son responsables de probar el sistema como un todo.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Calidad de Software “La calidad del software es el grado con el que un sistema, componente o proceso cumple los requerimientos especificados y las necesidades o expectativas del cliente o usuario”. (IEEE, std. 610-1990).
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Calidad de Software
Software que satisface los 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ó.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Calidad del Software
Operabilidad
Eficiencia Fiabilidad
Facilidad de uso Pertinencia
Precisión Seguridad
Capacidad de mantenimiento
Capacidad de corrección
Capacidad de pruebas
Flexibilidad
Variabilidad
Capacidad de transferencia
Interoperabilidad
Portabilidad
Reutilización del código
Ing. Tanya Arteaga Ricci
Lenguaje de programación Cualquier lenguaje artificial que puede utilizarse para definir una secuencia de instrucciones para su procesamiento por una computadora.
Conjunto de normas «lingüísticas» que permiten escribir un programa y que éste sea entendido por la computadora y pueda ser trasladado a computadoras similares para su funcionamiento en otros sistemas.
3.2 Software de base: sistemas operativos, lenguajes y traductores
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Lenguaje de bajo nivel
Lenguaje de programación que la
computadora puede entender a la
hora de ejecutar programas, lo que
aumenta su velocidad de ejecución,
pues no necesita un intérprete que
traduzca cada línea de instrucciones.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
M: EQU $00
DATO: EQU $01
ORG $100
INICIO: LDY #$1000
LDS #$03FF
LDAA #$00 ;CARGAR EN A EL DATO CERO
LDAB DATO,Y
LDX #$000A
IDIV ;EL ENTERO SE QUEDA EN IX Y EL RESIDUO EN
D
XGDX ;D TIENE LA PARTE ENTERA E IX EL RESIDUO
LDAA #$06
MUL ; EL RESIDUO QUEDA EN D
STAA M,Y ;CARGO EN MEMORIA EL DATO QUE SE QUIERE
PASAR A DECIMAL
ADDD M,Y ;TENEMOS EL RESULTADO EN D
XGDX ;CAMBIA EL DATO DE D A IX
LDAA DATO,Y
CMPA #$64 ;HACE LA OPERACION DATO-64
BHS SUMA ;SI DATO >= 64, BRINCA
XGDX ;CAMBIO IX A D
STD $18,Y ;RESULTADO PARA NUMEROS MENORES DE 64H
FIN: END
BRA INICIO
SUMA: LDAB #$C0
ABX ;SE HACE LA SUMA DE AJUSTE MAYOR A 64H
STX $18,Y ;DATO EN DECIMAL
BRA FIN
Lenguaje Ensamblador
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Lenguaje de alto nivel Lenguaje de programación en el que las instrucciones enviadas para que la PC ejecute ciertas órdenes son similares al lenguaje humano. Dado que la PC no es capaz de reconocer estas órdenes, es necesario el uso de un intérprete que traduzca el lenguaje de alto nivel a un lenguaje de bajo nivel que el sistema pueda entender.
#include <stdio.h>
main( ){
printf (“%f”,42/2);
}
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
C C++ Java VB
.NET ASP PERL PHP
Delphi …
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Compilador
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.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
0101010101010101 10101110101110110 1010010011100010 0101010101010101 0101010101010100
hola.c hola.obj hola.exe
#include <stdio.h> main() { printf(“hola mundo”); }
#include <stdio.h> main() { printf(“hola mundo”); }
0101010101010101 10101110101110110 1010010011100010 0101010101010101 0101010101010100
enlazador compilador
Compilación
Creando un programa en C
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Intérprete
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.
3.2 Software de base: sistemas operativos, lenguajes y traductores
Ing. Tanya Arteaga Ricci
Com
pila
dos
VS
Inte
rpre
tados
Lenguaje Compilado/interpretado
ADA Lenguaje compilado
BASIC Lenguaje interpretado
C Lenguaje compilado
C++ Lenguaje compilado
Cobol Lenguaje compilado
Fortran Lenguaje compilado
Java Lenguaje intermediario
MATLAB Lenguaje interpretado
LISP Lenguaje intermediario
Pascal Lenguaje compilado
PHP Lenguaje interpretado
Perl Lenguaje interpretado
3.3 Software aplicativo: a la medida y de propósito general
Ing. Tanya Arteaga Ricci
Software Aplicativo Programa informático diseñado para facilitar al usuario la realización de un determinado tipo de trabajo. Posee ciertas características que le diferencia de un S.O., como por ejemplo, suele resultar una solución informática para la automatización de ciertas tareas complicadas como puede ser la contabilidad o la gestión de un almacén.
Ing. Tanya Arteaga Ricci
Software a la medida
Son ciertas aplicaciones
desarrolladas ‘a medida’ que
ofrecen una gran potencia, ya
que, están exclusivamente
diseñadas para resolver un
problema en específico.
3.3 Software aplicativo: a la medida y de propósito general
Ing. Tanya Arteaga Ricci
Software de propósito general Son paquetes integrados de software que incluyen varias aplicaciones, como por ejemplo: •Procesadores de Texto •Hoja de Cálculo •Base de datos
3.3 Software aplicativo: a la medida y de propósito general
Ir a Tema IV