Tema III. Software operativo y de desarrollo

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 d...
0 downloads 2 Views 5MB Size
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