Este documento describe los diferentes tipos de software, incluyendo software del sistema y software de aplicación. El software del sistema incluye programas como el sistema operativo y utilidades que gestionan los recursos del hardware y permiten ejecutar software de aplicación. El software de aplicación son programas diseñados para tareas específicas y usados directamente por los usuarios.
2. Tipos de software
Software del sistema
(Programas del sistema)
Tipos de
Software Software de aplicación
(Programas de la aplicación)
Departamento de ingeniería
3. Relación entre los programas de
aplicación y los programas del
sistema
Usuario
“Vista organizacional de la
Programas de aplicación computadora”.
Cada una de las “capas”
Programas del sistema funcionan debido a las
instrucciones específicas
(instrucciones de máquina) que
forman parte del software del
Hardware
sistema y llegan al software de
aplicación (programado por los
programadores de aplicaciones).
Departamento de ingeniería
4. Software del sistema
• “Conecta e interactúa entre el software de
aplicación y el hardware de computadora”.
• Conjunto generalizado de programas.
• Gestiona los recursos del computador
(Procesador central, enlaces de comunicaciones,
dispositivos periféricos).
• Coordina las diferentes partes de un sistema de
computadora.
Departamento de ingeniería
5. Tipos de software del sistema
Utilidades (Utility, Utilerías)
•Gestiona
•Controla las actividades del computador.
•Realiza tareas de proceso comunes.
Sistema operativo
•Gestiona y controla actividades del computador.
Software
del
sistema Programas traductores
•Convierten los “lenguajes de programación”
(entendibles por los programadores) en “lenguaje
máquina” (entendibles por los computadores).
Departamento de ingeniería
6. Sistema Operativo (I)
“La parte más importante del software del
sistema”.
Colección de programas que controla la
interacción del usuario y el hardware.
Administrador principal del computador
“Es responsable de dirigir las operaciones del
computador y gestionar sus recursos”.
Departamento de Sistemas
7. Sistema Operativo (II)
Funciones
Dirige aplicaciones globales del sistema.
Ejecuta otros programas.
Almacena y recupera información de cintas y
discos.
Utiliza hardware y se comunica con los demás
software.
Asigna recursos.
Planifica el uso de los recursos (memoria, dispositivos
E/S, CPU)
Departamento de Sistemas
8. Sistema Operativo (III)
El usuario se comunica con el S.O mediante la
interfaz de usuario del sistema (GUI, Graphical User
Interface).
Utiliza iconos, botones,
cuadros de diálogo para
realizar tareas que se
controlan por dispositivos
Departamento de Sistemas
9. Sistema Operativo (IV)
Se almacena de modo permanente en la ROM.
Otra parte del S.O se almacena en disco, se almacena
en la RAM en la inicialización del sistema (operación
llamada “carga del sistema” (booting)).
Departamento de Sistemas
10. Sistema Operativo (V)
Sistemas operativos más utilizados en la educación y
la empresa
Windows 7. Nuevo S.O de Microsoft
Vista, XP, 98..
UNIX S.O abierto, escrito en C
Linux S.O software abierto, libre, útil para servidores.
Mac OS S.O. de computadores Apple Macintosh
CP/M Primeras computadoras (década de los 70)
Symbian Teléfonos móviles
PalmOS Agendas digitales, PDA. Fabricante PALM
Windows Teléfonos móviles con arquitectura y apariencia
mobile, CE similar a Windows XP.
Departamento de Sistemas
11. Sistema Operativo (VI)
TIPOS DE SISTEMA OPERATIVO. (Clasificación en
función de las características específicas del S.O.):
Multiprogramación/Multitarea: Múltiples programas
compartan recursos de un sistema de computadora
en cualquier momento. Uso concurrente de CPU. Las
necesidades de E/S pueden atenderse en el mismo
momento.
La CPU ejecuta sólo un programa pero atiende los
servicios de E/S de los otros al mismo tiempo.
Departamento de Sistemas
12. Sistema Operativo (VII)
Tiempo compartido (múltiples usuarios): Un S.O
multiusuario permite que muchos usuarios “compartan
simultáneamente los recurso de proceso de la
computadora”.
Se asigna tiempo de computador a cada usuario. A medida
que se libera la tarea de un usuario se continua con el
siguiente.
Debido a la velocidad de transferencia, “sensación que todos
están conectados simultáneamente”, recibiendo “un tiempo
de máquina”.
Departamento de Sistemas
13. Sistema Operativo (VIII)
Multiproceso: Se pueden “enlazar” dos o más CPU
para trabajar en paralelo en un único sistema de
computadora.
Se pueden asignar múltiples CPU para ejecutar
diferentes instrucciones del mismo programa o
programas diferentes.
Departamento de Sistemas
14. Sistema Operativo (IX)
Componentes
Kernel: componente central.
Sistema de administración: Asignar memoria a cada
programa.
Administración del sistema de archivos: Organiza el
control de los discos.
Controlador de los dispositivos: Controla los
dispositivos hardware.
Bibliotecas del sistema: Tipos de programas que se
pueden llamar por el programa de usuario.
Departamento de sistemas
15. Software de aplicación (I)
“Asiste y ayuda a un usuario de computadora a ejecutar
tareas específicas”.
Se instalan copiando los programas en el disco duro de la
computadora.
Los lenguajes de programación sirven para escribir
programas.
Los traductores (compiladores o intérpretes) convierten
instrucciones escritas en lenguaje de programación en
instrucciones escritas en lenguaje máquina (0 y 1, bits)
Departamento de Sistemas
16. Términos
Programa: “conjunto de sentencias o instrucciones o
instrucciones al computador”.
Programación: “proceso de escritura o codificación
de un programa”.
Programadores: personas que se especializan en
generar programas.
Programadores de sistemas: programadores que
escriben software del sistema.
Departamento de ingeniería
17. Lenguajes de programación (I)
Software de aplicación:
Edición
Problema
Algoritmo en
pseudocódigo Programa en Código fuente
(o diagrama Java en Java
Resultado
de flujo)
Traducción y
Escritura
ejecución (traductor
en Java
y compilador)
Código máquina
(programa
ejecutable)
Departamento de sistemas
18. Lenguajes de programación (II)
Un programa se escribe en lenguaje de
programación.
Los lenguajes para escribir programas de
computadores son los lenguajes de programación.
Un lenguaje de programación es un lenguaje artificial
que se aproxima al entendimiento humano diseñado
con el fin de facilitar a los programadores las tareas de
programación de software que puede controlar el
hardware y el soporte lógico de una máquina
Departamento de Sistemas
19. Lenguajes de programación (III)
Un lenguaje se rige por símbolos y reglas de sintaxis
y semántica que permiten definir el significado y la
estructura de las instrucciones.
Un procesador entiende únicamente instrucciones
en lenguaje de máquina. Todo programa escrito en
otro lenguaje puede ser ejecutado de dos maneras:
Por medio de la compilación realizada por un programa
compilador
Por medio de la interpretación realizada por un programa
intérprete
Departamento de Sistemas
20. Lenguajes de programación (III)
Algunos lenguajes de programación son: C++, C, C#,
Java, Visual Basic, XML, HTML, Perl, PHP, JavaScript,…
Son lenguajes de alto nivel. Permiten “charlar” con
facilidad con las computadoras. No es necesario
escribir en lenguaje máquina (lenguaje nativo de la
computadora).
El computador sólo entiende programas escritos en
lenguaje máquina previo a ser ejecutadas por él.
Departamento de Sistemas
21. Niveles de lenguajes de programación
Lenguaje Binario: Es el lenguaje de máquina o nativo
es difícilmente entendible para las personas se basa en
código binario que puede entender el procesador.
Código en Lenguaje Binario
Departamento de Sistemas
22. Niveles de lenguajes de programación
Lenguaje ensamblador: Es un lenguaje de bajo nivel
utilizado para escribir programas informáticos, y
constituye la representación más directa del código
máquina específico para cada arquitectura de
computadoras y microchips y es legible por un
programador.
Código en Lenguaje ensamblador
Departamento de Sistemas
23. Niveles de lenguajes de programación
Lenguajes de alto nivel: Son los lenguajes más
sofisticados que permiten que las personas entiendan
fácilmente lo que están programando.
Código en Lenguaje de Alto Nivel
Departamento de Sistemas
24. Lenguajes de programación (I)
Un programa se escribe en lenguaje de
programación.
Los lenguajes para escribir programas de
computadores son los lenguajes de programación.
El proceso de traducir un algoritmo en pseudocódigo
a un lenguaje de programación se denomina
codificación.
El algoritmo escrito en un lenguaje de programación
se denomina código fuente.
Departamento de Sistemas
25. Proceso de traducción de un programa
Lenguaje de alto
Traductores Lenguaje máquina
nivel
Código fuente Código máquina
Departamento de Sistemas
26. Sobre los traductores
Se tienen dos tipos de traductores: intérprete y compilador.
Intérpretes
Programa fuente
Traduce y ejecuta cada línea.
Ejemplos de intérpretes: BASIC, SmallTalk
Departamento de Sistemas
27. Sobre los traductores
Compilador
Programa fuente
Traduce todas las instrucciones del programa en un solo bloque.
Ejemplos de intérpretes: gcc, javac, devc++, g++
Departamento de Sistemas
28. Proceso de compilación
Programa
fuente
Si Compilador
Errores
de
compilac
ión
No
Programa
Objeto
Montador o Programa
enlazador Ejecutable
Ejecución
Departamento de Sistemas
29. Paradigmas de programación (I)
Enfoques diferentes para la construcción de
soluciones a problemas.
Los paradigmas de programación clásicos son:
◦ Procedimental (imperativo).
◦ Declarativo
◦ Orientado a Objetos
Departamento de Sistemas
30. Tipos de software del sistema
Paradigma imperativo o procedimental
•Método tradicional de programación
•Define el proceso de programación, como el desarrollo una secuencia de
órdenes que manipulan los datos para producir los resultados deseados.
•Ejemplo de lenguajes: FORTRAN, Cobol, Pascal, Basic.
Paradigma declarativo
•No se encuentra una solución algorítmica al problema.
•Se solicita al programador escribir el problema.
•Utiliza el principio del razonamiento lógico para dar respuestas.
•Ejemplo de lenguaje: Prolog
Paradigma orientado a objetos
• Gurda analogía con el mundo real.
• Diseñan y construyen objetos.
• Los objetos tienen operaciones para manipular los datos
• Ejemplo de lenguaje: Java, C++, SmallTalk, Visual Basic
Departamento de ingeniería
31. Fases en la resolución de problemas
(I)
Las fases que se proponen para resolver un
problema con computador son:
1. Análisis
2. Diseño del algoritmo
3. Codificación (implementación)
4. Compilación
5. Ejecución, verificación y depuración.
6. Mantenimiento
7. Documentación.
Departamento de ingeniería
32. Fases en la resolución de problemas
(II)
Análisis.
El problema se analiza teniendo en cuenta las
especificaciones de los requisitos del cliente.
Diseño.
Se diseña la solución.
Se genera un algoritmo para resolver el problema.
Codificación.
Se escribe la solución en el lenguaje de alto nivel.
Departamento de ingeniería
33. Fases en la resolución de problemas
(III)
Ejecución, verificación y depuración.
El programa se ejecuta.
Se eliminan errores.
Mantenimiento.
Actualización o modificación
Se cumplen solicitudes de cambio del cliente.
Documentación.
Documentación de las diferentes fases.
Generación de manuales de usuario
Normas de mantenimiento.
Departamento de ingeniería
34. Concepto y características de
algoritmos (IV)
Los pasos para resolver un problema:
Diseño del algoritmo. Descripción de una secuencia
ordenada de pasos para dar solución a un problema.
“El algoritmo es un método para resolver problemas”
Expresar el algoritmo como un “programa” en el
lenguaje de programación adecuado.
Ejecución y validación del programa por el
computador
Departamento de ingeniería
35. Concepto y características de
algoritmos (III)
Características de un algoritmo
Los algoritmos son independientes del lenguaje de
programación.
El algoritmo se puede presentar en un lenguaje de
programación diferente.
En algoritmo puede ejecutarse en un computador
distinto.
Ejemplo: asistir a clase.
Departamento de ingeniería
36. Concepto y características de
algoritmos (V)
Características fundamentales de un
algoritmo
Preciso: Debe indicar el orden en que se realizó
cada paso.
Definido: Obtiene el mismo resultado si se sigue
dos veces el mismo algoritmo.
Finito: Un algoritmo se debe terminar en algún
momento. Un número finito de pasos.
Departamento de ingeniería
37. Concepto y características de
algoritmos (VI)
Reglas
Al definir un algoritmo se deben describir tres
pasos: entrada, proceso y salida.
Ejemplo: ¿Qué hacer para ver una película?
1. Ir al cine
2. Comprar el tiquete
3. Ver la película
4. Regresar a la casa
Departamento de ingeniería