1. Tema III. Software
operativo y de desarrollo
Objetivo: El alumno conocerá y entenderá la evolución
del software 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.
2. 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.
Conjunto de programas, instrucciones y
reglas informáticas para ejecutar ciertas
tareas en una computadora.
http://rae.es/rae.html
El término “evolución” del software se
utiliza desde hace varias décadas para
denominar la dinámica de crecimiento
del software.
3. 3.1 Evolución del software y su
situación actual
En 1999 Ned Chapin lo definió como “la aplicación de las actividades
y procesos de mantenimiento del software que generan una nueva
versión operativa de un software con una funcionalidad de usuario o
propiedades cambiadas a partir de una versión anterior […] junto con
los procesos y actividades de garantía de calidad y con la gestión de
esos procesos”.
http://www.program-transformation.org/Transform/SoftwareEvolution
4. 3.1 Evolución del software y su
situación actual
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,
hasta que los planes comenzaron a
descalabrarse y los costos a elevarse.
La misma persona lo escribía, lo ejecutaba
y, si fallaba, lo depuraba. El diseño era un
proceso implícito, realizado en la mente
de alguien y la documentación
normalmente no existía.
5. 3.1 Evolución del software y su
situación actual
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".
6. 3.1 Evolución del software y su
situación actual
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.
Los sistemas distribuidos, 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.
7. 3.1 Evolución del software y su
situación actual
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 han convertido en la norma.
8. 3.1 Evolución del software y su
situación actual
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.
9. 3.1 Evolución del software y su
situación actual
Sin embargo, 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.
10. 3.2 Software de base
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
11. 3.2 Software de base
Software de Base
Software básico que controla una computadora.
El sistema operativo tiene tres grandes funciones:
Coordina
Manipula
Organiza los archivos
12. 3.2 Software de base
Sistemas operativos
Un sistema operativo (SO) es el
programa o conjunto de programas
que efectúan la administración de
los procesos básicos de una
computadora, sus funciones básicas
son:
Coordinar y manipular el HW.
Organizar archivos en diversos
dispositivos.
Gestionar errores.
Interpretar y ejecutar comandos.
14. 3.2 Software de base
Algunos sistemas operativos son:
MS-DOS.
Windows.
UNIX.
BSD.
Linux
Symbian.
iOS.
BlackBerry.
Android.
Chrome OS
15. 3.2 Software de base
Sistemas operativos, MS-DOS
Microsoft Diskette Operating System:
Aparece en 1981.
Monousuario y monotarea.
Usado a base de comandos.
16. 3.2 Software de base
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.
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.
A partir de la versión 3, consiguió éxito comercial a principios de los 90’s, primeras
pruebas de WinNT.
Windows 95 fue el primero considerado como sistema operativo real; incorporó el “Plug
and Play”.
Win98, muy lento y sustituido por Win98-SE.
Win2k y WinME, “Universal Plug and Play”.
WinXP, aparece en 2001, el más utilizado actualmente.
WinVista, 2006, de los fracasos más grandes de MS.
Win7, 2009.
18. 3.2 Software de base
Sistemas operativos, UNIX
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.
19. 3.2 Software de base
Sistemas operativos, BSD
Berkeley Software Distribution.
Derivado de Unix 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 y Fast FileSystem.
20. 3.2 Software de base
Sistemas operativos, 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).
Una distribución es un agrupamiento del
núcleo del sistema operativo Linux y
otra serie de aplicaciones de uso general
o no tan general.
Libre, gratuito, de código fuente abierto
y portable.
21. 3.2 Software de base
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.
22. 3.2 Software de base
Richard Matthew Stallman
inició el proyecto GNU en 1983 y liberó
GNU Emacs y gcc.
La licencia GNU GPL fue creada en
1987 y está orientada principalmente a
proteger la libre distribución,
modificación y uso de software.
Fundador del proyecto GNU
Creador Emacs
Compilador GCC
Creador de las licencias GNU: GPL,
LGPL
23. 3.2 Software de base
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.
24. 3.2 Software de base
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.
27. 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.
28. 3.2 Software de base
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.
29. 3.2 Software de base
Fase de Diseño
Se ayuda de dos características
La fase de diseño define en esta etapa:
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.
30. 3.2 Software de base
Fase de Implementación
En la fase de implementación
se crean los problemas
reales.
31. 3.2 Software de base
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.
32. 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).
33. 3.2 Software de base
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ó.
36. 3.2 Lenguajes y traductores
Lenguaje de programación
Es un lenguaje artificial diseñado para
expresar instrucciones que pueden ser llevadas
a cabo por máquinas como las computadoras.
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.
37. 3.2 Lenguajes y traductores
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.
38. 3.2 Lenguajes y traductores
Lenguajes de alto nivel
Son aquellos que se aproximan más al
lenguaje natural humano que al lenguaje
binario de las computadoras (de bajo
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.
39. 3.2 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.
41. 3.2 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.
42. 3.3 Software de aplicación
Software de aplicació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.
43. 3.3 Software de aplicación
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.
44. 3.3 Software de aplicación
Software De propósito general
Son paquetes integrados de software que incluyen varias
aplicaciones, por ejemplo:
Procesadores de Texto.
Hoja de Cálculo.
Base de datos.
45. TAREA TEMA 3
Tarea3.1: Investigar que es un live cd, utilizarlo y hacer una captura
de pantalla con su navegador visitando: http://cpi06.blogspot.mx/
Tarea3.2: Utilizar el emulador de linux http://bellard.org/jslinux/ y
probar diversos comandos: ls, date, whoami, cat, chmod, etc.
Tarea3.3: Hacer un listado de al menos 20 lenguajes de
programación y clasificarlos por el paradigma al que pertenece y por
la forma en la que ejecutan sus programas.