Story Transcript
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 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.
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
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
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Software de Base Software básico que controla una computadora. El sistema operativo tiene tres grandes funciones: •Coordina •Manipula •Organiza los archivos
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Sistema Operativo 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.
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
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. Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores Tarjeta Perforada
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores 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.
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
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)
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
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.
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Sistema de Procesamiento Paralelo Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
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.
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
Sistema Operativo
Interfaz de usuario Administrador de memoria
Administrador de procesos
Administrador de dispositivos
Administrador de archivos
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores Ejemplos de Sistemas Operativos
MS-DOS
Windows Linux
Unix BSD Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
MS-DOS •Apareció en los años 70’s • No es multiusuario o multitarea • Se regía por medio de comandos
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
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.
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
3.2 Software de base: sistemas operativos, lenguajes y traductores
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
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
XFCE
LOOKINGLASS
GNOME
ICEWM
ENLIGHTENMENT
KDE
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Personajes que ya hicieron historia Richard Stallman Licencia GNU Dennis Ritchie Unix
Robert Pike Linus Torvalds Linux
Bryan Kerniganh Dos
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
¿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).
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
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 Arteaga Ricci
Ing. Tanya I. Arteaga Ricci | F.I. 2009 (R)
3.2 Software de base: sistemas operativos, lenguajes y traductores
Richard Matthew Stallman Fundador del proyecto GNU Creador Emacs
Compilador GCC Creador de las licencias GNU: GPL, LGPL
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores 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
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Núcleo y lo demás…
Software Drivers Colores
Kernel Shell Vi
Modo gráfico
Hardware
gcc
http://bellard.org/jslinux/
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
UNIX • Principios de los años setentas. • Creado por Ken Thompson y Dennis Ritchie.
• Capacidad de soportar Multiprogramación. • Capacidad de tiempo compartido.
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores 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.
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores 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. Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Desarrollo del Sistema Análisis
Diseño
Imple – menta – ción
Pruebas
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores 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
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores 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.
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
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
Se ayuda de dos características en esta etapa:
Modularidad
el diseño de archivos y/o bases de datos se completa.
Herramientas
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Fase de Implementación Herramientas
En la fase de implementación se crean los problemas reales.
Codificación
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
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.
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores 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. 6101990).
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
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ó.
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
Calidad del Software
Operabilidad
Eficiencia
Fiabilidad
Facilidad de uso Pertinencia Precisión
Seguridad
Capacidad de mantenimiento
Capacidad de transferencia
Capacidad de corrección
Interoperabilidad
Capacidad de pruebas Flexibilidad Variabilidad
Portabilidad Reutilización del código
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores 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.
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
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.
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores Lenguaje Ensamblador M: DATO: INICIO:
EQU $00 EQU $01 ORG $100 LDY #$1000 LDS #$03FF LDAA #$00 LDAB DATO,Y LDX #$000A IDIV
;CARGAR EN A EL DATO CERO
;EL ENTERO SE QUEDA EN IX Y EL RESIDUO EN
D XGDX LDAA #$06 MUL STAA M,Y
;D TIENE LA PARTE ENTERA E IX EL RESIDUO ; EL RESIDUO QUEDA EN D ;CARGO EN MEMORIA EL DATO QUE SE QUIERE
PASAR A DECIMAL
FIN: SUMA:
ADDD M,Y XGDX LDAA DATO,Y CMPA #$64 BHS SUMA XGDX STD $18,Y END BRA INICIO LDAB #$C0 ABX STX $18,Y BRA FIN
;TENEMOS EL RESULTADO EN D ;CAMBIA EL DATO DE D A IX ;HACE LA OPERACION DATO-64 ;SI DATO >= 64, BRINCA ;CAMBIO IX A D ;RESULTADO PARA NUMEROS MENORES DE 64H
;SE HACE LA SUMA DE AJUSTE MAYOR A 64H ;DATO EN DECIMAL
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores 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 main( ){ printf (“%f”,42/2); }
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores C C++ Java VB .NET ASP PERL PHP Delphi … Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
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.
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores Creando un programa en C hola.obj
hola.c compilador #include main() { printf(“hola mundo”); }
0101010101010 101 1010111010111 0110 1010010011100 010 0101010101010 101 0101010101010 100
hola.exe enlazador
0101010101010 101 1010111010111 0110 1010010011100 010 0101010101010 101 0101010101010 100
Compilación
Ing. Tanya Arteaga Ricci
3.2 Software de base: sistemas operativos, lenguajes y traductores
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. Ing. Tanya Arteaga Ricci
Compilados VS Interpretados
3.2 Software de base: sistemas operativos, lenguajes y traductores
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
Ing. Tanya Arteaga Ricci
3.3 Software aplicativo: a la medida y de propósito general
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
3.3 Software aplicativo: a la medida y de propósito general
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.
Ing. Tanya Arteaga Ricci
3.3 Software aplicativo: a la medida y de propósito general
Software de propósito general Son paquetes integrados de aplicaciones, como por ejemplo:
software
que
incluyen
varias
•Procesadores de Texto •Hoja de Cálculo •Base de datos
Ir a Tema IV
Ing. Tanya Arteaga Ricci