Tema 3. Software operativo y de
desarrollo
Ing. Dulce Mónica Castillo Corona
3.1 Evolución del sw y su situación
actual
Con los primeros equipos de computo, evolucionan también un conjunto de programas para el control de la computadora misma, los cuales van a permitir a la computadora realizar diversas labores a esto le conocemos como sw.
En 1946 VonNeuman pensó que las instrucciones podían almacenarse en la computadora junto con los datos a ello le llamo programa almacenado o concepto Von Neumann.
De la mitad de los 60’s a finales de
los 70’s 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".
3.1 Evolución del sw y su situación
actual
A mediados de los años 70’s continuando más allá de una década.
En esta etapa comienzan los sistemas distribuidos múltiples de computadoras, cada una ejecutando funciones concurrentes y comunicándose con el resto, de esta manera se incrementó 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.
3.1 Evolución del sw y su situación
actual
Las redes inalámbricas,
dispositivos móviles y celulares
irrumpen con fuerza en los
campos del entretenimiento, la
música y los videos en Internet.
La crisis del sw se refiere a la
dificultad en escribir programas
libres de defectos, fácilmente
comprensibles, y que sean
verificables. Las causas son,
entre otras, la complejidad que
supone la tarea de programar, y
los cambios a los que se tiene
que ver sometido un programa
para ser continuamente
adaptado a las necesidades de
los usuarios.
3.1 Evolución del sw y su situación
actual
SOFTWARE
Conjunto de programas de cómputo, procedimientos, reglas,
documentación y datos asociados que forman parte de las
operaciones de un sistema de computo.
Extraído del estándar 729 del IEEE3
3.1 Evolución del sw y su situación
actual
1ª. Gen. El S.O. se encargaba de resolver parte de los problemas del proceso de la información y de los dispositivos conectados a la computadora, así mismo el uso eficiente de la memoria en forma rudimentaria.
2ª. Gen. Surgen procedimientos para el arranque en frío y su operación en tiempo real y compartido.
3ª. Gen menor tiempo para el arranque en frío , uso de memoria intermedia para almacenamiento de información, mejor uso de la memoria principal, multiprogramación y simplificación de los operadores.
4ª. Gen. Siguen evolucionando para facilitar casi todo tipo de usos y diagnóstico de problemas en las grandes computadoras.
3.2 Software de base
SISTEMAS OPERATIVOS…..
Son los encargados de ejercer
el control y coordinar el uso
del hardware entre diferentes
programas de aplicación y los
diferentes usuarios. Así mismo
es un administrador de los
recursos de hardware del
sistema.
3.2 Software de base
El S.O. esta constituido básicamente por tres partes:
Un administrador de entrada/salida que coordina todas
las comunicaciones de la computadora con los
periféricos y por consiguiente el flujo de información.
Un procesador de comando que interprete todo lo que
tecleamos permitiendo con ello su ejecución.
Una serie de programas denominados utilerías que
permiten la administración de nuestros archivos y tareas
diversas.
3.2 Software de base
PRINCIPALES FUNCIONES DEL S.O.
Coordinar y manipular el hardware, así como memoria, discos, teclado, etc.
Organizar los archivos en los diversos dispositivos
Gestión de errores
Interpretar comandos para la comunicación entre el usuario y la máquina
El sistema operativo es generalmente diseñado por el fabricante y por ello no es posible definir uno estándar; aunque hay un conjunto de funciones básicas o componentes que todo sistema debe considerar
3.2 Software de base
S.O. por
servicios
Por No. de
usuarios
Monousuario
Multiusuario
Por No. de
tareas
Monotareas
Multitareas
3.2 Software de base
Monousuario: Los sistemas monousuarios son aquellos que nada más puede atender a un solo usuario, gracias a las limitaciones creadas por el hardware, los programas o el tipo de aplicación que se este
ejecutando. Estos tipos de sistemas son muy simples, porque todos los dispositivos de entrada, salida y control dependen de la tarea que se esta utilizando, esto quiere decir, que las instrucciones que se dan, son procesadas de inmediato; ya que existe un solo usuario. Y están orientados principalmente para los microcomputadores.
Multiusuario: En esta categoría se encuentran todos los sistemas que cumplen simultáneamente las necesidades de dos o más usuarios, que comparten mismos recursos. Este tipo de sistemas se emplean especialmente en redes. En otras palabras consiste en el
fraccionamiento del tiempo. Un claro ejemplo de este tipo es el S.O. UNIX.
3.2 Software de base
Multitareas: Es el modo de funcionamiento disponible en algunos sistemas operativos, mediante el cual una computadora procesa varias tareas al mismo tiempo. Para mantener el sistema en orden, cada tarea recibe un nivel de prioridad o se procesa en orden secuencial. Dado que el sentido temporal del usuario es mucho más lento que la
velocidad de procesamiento del ordenador, las operaciones de multitarea en tiempo compartido parecen ser simultáneas. En este caso se utilizan comandos para intercambiarse o moverse entre los programas en uso. En esta categoría podríamos mencionar UNIX, OS/2, Apple’s Multifinder OS, Windows NT, Linux. Lo anterior no debe
confundirse con un proceso alternado, es decir que la aplicación que no esta en pantalla no sigue corriendo y por consiguiente no es multiproceso.
Monotareas : Es el caso cuando solo se podía correr un solo programa a
la vez como lo son CP/M y DOS.
3.2 Software de base
Gary Kildall desarrollo el primer S.O. para microcomputadoras llamado
CP/M, su finalidad era controlar la entrada/salida de información del
recién diseñado microprocesador, así como el almacenamiento de
datos y proceso en general. Tiempo después (‘80) aparece Bill Gates y
Paul Allen escribiendo también este tipo de sw para
microcomputadoras y escriben el S.O. más conocido de todos: el DOS
de IBM y su equivalente el MS-DOS para las computadoras
compatibles.
3.2 Software de base
El sistema operativo MS-DOS (MicroSoft Disk Operating System) fué
un sistema operativo de Microsoft destinado a computadoras con
arquitectura x86 y se convirtió en el sistema operativo más
popular entre los computadores IBM PC y compatibles durante los
años 80 y mediados de los 90, momento en el que comenzaron a
popularizarse los sistemas operativos con interfaces gráficas de
usuario (como Windows 95).
MS-DOS no es ni multiusuario ni multitarea. No puede trabajar con
más de un usuario ni en más de un proceso a la vez.
MS-DOS carece por completo de interfaz gráfica.
3.2 Software de base
Esta primera versión de MS-DOS soportaba 16 Kb de
memoria RAM, disquetes de 5,25 pulgadas de una sola cara
de 160 Kb e incluía ya 22 órdenes además de incluir ya el
intérprete de comandos COMMAND.COM. y manejar
archivos con extensión .com y .exe.
MS-DOS nos acompañó desde 1981 con la versión 1.0 hasta
el año 2000 con la versión 8.0
3.2 Software de base
Windows comprende una
familia de sistemas
operativos desarrollados y
comercializados por
Microsoft. Existen versiones
para hogares, empresas,
servidores y dispositivos
móviles, como
computadores de bolsillo y
teléfonos inteligentes.
Es multitarea y multiusuario
a partir de la versión 95.
3.2 Software de base
UNIX fué desarrollado, en principio, en 1969 por un grupo de empleados de los laboratorios Bell de AT&T, entre los que figuran Ken Thompson, Dennis Ritchie y Douglas McIlroy.
El antecesor a este proyecto es un
programa llamado Multics (Multiplexed Information and Computing System) Está escrito en lenguaje C.
El objetivo principal de este proyecto
fue desarrollar un sistema operativo interactivo que contará con muchas innovaciones, entre las principales mejorar las políticas de seguridad.
3.2 Software de base
Características UNIX es un sistema operativo multitarea y multiusuario.
Escrito en lenguaje de alto nivel
Aplicación que interpreta los comandos tecleados por parte del usuario llamado shell
Emplea manejo dinámico de memoria por intercambio o paginación
Permite comunicación entre procesos
Emplea un sistema jerárquico de archivos por seguridad
3.2 Software de base
La historia de Linux empieza en Finlandia, en 1991, cuando en Linus B. Torvalds, estudiante de la Universidad de Helsinki, se le ocurrió comprarse un PC con procesador 386. Después de observar que el MS/DOS no aprovechaba los recursos de la máquina, decidió usar otro sistema operativo de entonces: Minix (Minix era un pequeño sistema Unix).
Ha sido diseñado y programado por multitud de programadores alrededor del mundo. El núcleo del sistema sigue en continuo desarrollo bajo la coordinación de Linus Torvalds.
3.2 Software de base
Linux es un sistema operativo multiusuario que incorpora multitarea.
Dos características principales es que es libre, esto significa que no tenemos que pagar ningún tipo de licencia a ninguna casa desarrolladora de sw por el uso del mismo, la segunda, es que el sistema viene acompañado del código fuente.
Linux se distribuye bajo la GNU General Public License por lo tanto, el código fuente tiene que estar siempre accesible y cualquier modificación ó trabajo derivado tiene que tener esta licencia.
El 9 de Mayo 1996, Tux fue propuesto como mascota oficial de Linux.
3.2 Software de base
El 24 de enero de 1984, Apple Computer Inc. (ahora Apple Inc.) introdujo la computadora personal Macintosh, con el modelo Macintosh 128K, el cual incluía el sistema operativo Mac OS, conocido en esa época como System Software. Está basado en Unix.
En enero de 1981, Steve Jobs se hizo cargo del
proyecto Macintosh completo
El Sistema 1 tenía escritorio, ventanas, iconos, mouse, menús y scrollbars
Mac OS X, hoy en día este sistema operativo esta virtualmente en todas las Mac’s, y fué trabajado por una década para poder obtener el éxito que tiene ahora. Las versiones actuales ya cuentan con sistema multitareas y multiusuarios.
3.2 Software de base
Son herramientas que nos permiten crear programas y sw.
Una computadora funciona bajo control de un programa el cual debe estar almacenado en la unidad de memoria; tales como el disco duro.
Por otra parte, los lenguajes de programación en código de máquina son verdaderamente difíciles de entender para una persona, ya que están compuestos de códigos numéricos sin sentido.
Los lenguajes de programación representan en forma simbólica y en manera de un texto los códigos que podrán ser leídos por una persona.
3.2 Software de base
Los lenguajes de programación son independientes de las computadoras a utilizar.
El ordenador sólo entiende un lenguaje conocido como código binario o código máquina, consistente en ceros y unos.
Los lenguajes más próximos a la arquitectura hw se denominan lenguajes de bajo nivel y los que se encuentran más cercanos a los programadores y usuarios se denominan lenguajes de alto nivel.
3.2 Software de base
Lenguajes de bajo nivel
El lenguaje de máquina es el
sistema de códigos
directamente interpretable por
un microprocesador. Este
lenguaje está compuesto por un
conjunto de instrucciones que
determinan acciones a ser
tomadas por la máquina.
El lenguaje ensamblador
implementa una representación
simbólica de los códigos de
máquina binarios y otras
constantes necesarias para
programar un microprocesador.
3.2 Software de base
Lenguajes de alto nivel
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 que se
daban en el lenguaje
máquina, ya que se utilizan
palabras (generalmente en
inglés)
en lugar de cadenas de
símbolos sin ningún significado
aparente.
3.2 Software de base
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
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
Ciclo de Vida del Software
El software primero se desarrolla por un
grupo de 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
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.
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
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.
Se ayuda de dos características en esta etapa
Modularidad
Herramientas
3.2 Software de base
Fase de Implementación
En la fase de implementación se crean los problemas
reales.
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
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).
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 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. Es aquel que permite a los usuarios llevar a cabo una o varias tareas específicas, en cualquier campo de actividad susceptible de ser automatizado o asistido, con
especial énfasis en los negocios.
Se clasifica en dos grandes áreas:
A la medida.
De propósito general.
3.2 Software aplicativo
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.
3.2 Software de base
De propósito general
Son paquetes integrados de sw que incluyen varias aplicaciones, por ejemplo:
Procesadores de Texto.
Hoja de Cálculo.
Base de datos.
3.2 Software de base