Title: Tema 1: Sistemas informtico
1Tema 1 Sistemas informático
- Componentes de un sistema informático el
hardware y el software. - Lenguajes de alto y bajo nivel.
- Compiladores e intérpretes.
- Ciclo de vida del software.
2Computadores u ordenadores
- Computador autómata gobernado por un programa.
- Programa algoritmo escrito en lenguaje
inteligible por el computador (lenguaje de
programación). - Algoritmo secuencia finita de instrucciones.
3Arquitectura de los computadores
- Parte fÃsica Equipo electrónico (hardware).
- Parte lógica Conjunto de programas (software).
4Parte FÃsica
- UNIDADES DE ENTRADA SALIDA recepción/emisión de
programas, datos y resultados desde/al el
exterior. Teclado, pantalla, impresora, unidad de
disco externo, modem, tarjeta de conexión a una
red, unidad de cinta magnética, digitalizadores,
instrumentos de medida de magnitudes fÃsicas,
etc. - CPU (unidad de control de procesos) cerebro del
computador. Se compone ,UC (unidad de control) y
ALU (Unidad aritmético-lógica). - MEMORIA almacenamiento temporal o
permanentemente de datos, programas y
resultados.
5Unidad Central de Procesos (CPU)
- Funciona sincronizada por un reloj.
- La velocidad del procesador depende del número de
pulsaciones de ese reloj y de otros factores de
arquitectura. - La velocidad de pulso del reloj se mide en
Megahercios (MHz). Otra medida son los Mips
(millones de instrucciones por segundo). - 800 MHz indican 800 millones de pulsaciones por
segundo. - Para idéntica arquitectura (p.ej. Pentium II) la
velocidad depende de los MHz. Para distinta
arquitectura no.
6Unidad de control
- Ciclo de la UC
- Leer instrucción
- Decodificar instrucción
- Ejecuta la instrucción.
- Fetch-Decode Execution Cycle.
7Unidad aritmético-Lógica
- Cálculos sencillos con numeros.
- Operaciones booleanas.
- Tiene una pequeña memoria muy rápida registros.
8Memoria
- Amacena datos (caracteres y números) y programas.
- JerarquÃa de memorias
- Registros de la CPU
- Memoria caché
- Memoria central
- Memoria secundaria
-
9Memorias
- Registros. Internos a la CPU y de acceso muy
rápido. - Caché. Mucha velocidad y poca capacidad. Datos e
instrucciones frecuentes usados por el
computador. - Memoria central. Rápido acceso. Puede ser RAM y
ROM. - Memoria secundaria. Mucha capacidad y poca
velocidad. Discos duros, disquetes, cintas,
CD-ROM. Ficheros y directorios. -
10Capacidad de la memoria
- Bit 0 ó 1.
- byte 8 bits.
- kilobyte (Kb) 1024 Bytes.
- Megabyte(Mb) 1024 Kb.
- Gigabyte (Gb) 1024 Mb.
- Velocidad ancho de banda y velocidad de acceso.
11Velocidad de las memorias
- Registros centenas de bytes en nanosegungos.
- Caché centenas de Kilobytes en nanosegundos.
- Central centenas de Megabytes en nanosegundos.
- Secundaria
- Disquete 1.44 Mb décimas de segundo.
- Discos duros varios Gb en milisegundos
- CD-ROM 640 Mb en segundos
- DVD varios Gb en segundos.
12Entrada/Salida
- Teclado introducción de caracteres.
- Pantalla tubo de rayos catódicos monitorizada
por una tarjeta de video. Memoria entre 2 y 16
Mb. - VGA 640 por 480
- SVGA 800 por 600
- XGA 1024 por 728
- Ratón apuntador a objetos
13Entrada/Salida
- Impresoras
- Matricial
- Chorro de tinta
- Láser
- De lÃneas
- Terminales
- Redes
- LÃnea
- Serie
- Paralelo
- Telefónica
- Ethernet
14Comentarios
- Impresora Imprime texto o imágenes sobre papel
- Matricial lenta y anticuada, escasa calidad,
bajo coste de impresión. - Chorro de tinta Rápida, calidad media, alto
coste de impresión. - Láser Rápida, gran calidad, coste , medio.
15Comentarios
- Terminal dispositivo con ratón y teclado
conectado a un computador. - Redes.
- Serie poca velocidad. Corta distancia.
- Paralelo velocidad media. Corta distancia.
- Telefónica velocidad baja. Larga distancia.
- Ethernet velocidad muy alta. Centenares de
metros. - Fibra Optica Alta velocidad y larga distancia.
16Internet
- Red de ámbito mundial.
- Cada computador conectado directamente a Internet
tiene un número que lo identifica llamado código
IP y un nombre. - Protocolos de Internet.
- ftp transferencia de ficheros
- Mail correo electrónico
- telnet conexión a lugares remotos
- http visualización de páginas web
17(No Transcript)
18Parte Lógica
- Lenguajes de Programación
- Compiladores e intérpretes
- Sistemas Operativos (OS)
- Entornos Integrados de desarrollo (IDE)
- Software de aplicaciones
19Lenguajes
- Lenguaje máquina operaciones básicas del
procesador, asociado a la arquitectura. Notación
binaria. - Ejemplo Lenguaje máquina del microprocesador
68000. - Lenguaje ensamblador operaciones básicas del
procesador. Notación simbólica. - Lenguaje de alto nivel Lenguaje próximo al
lenguaje natural. Independiente del procesador.
Sintaxis rÃgida. - Ejemplos Fortran, C, Pascal, C, Java.
20Compiladores e Intérpretes
- Son programas que transforman código fuente
escrito en lenguaje de alto nivel en código
máquina. - Compilador se transforma todo el programa y
luego se ejecuta. - Intérprete la transformación se hace en tiempo
de ejecución.
21Sistemas operativos
- Controla el uso de los recursos lógicos y fÃsicos
del computador. Es la interfaz entre el software
y el hardware y proporciona un manejo del
software independiente del sistema electrónico
del equipo. - Ejemplos
- MS-DOS monousuario, monotarea, no protegido.
- Windows 98 monousuario, multitarea,
semi-protegido. - UNIX/LINUX multiusuario, multitarea, protegido.
22IDEs
- Editor de texto
- Compiladores
- Herramientas para análisis y diseño de programas
(CASE) - Depuradores (Debuggers)
- Ejemplos JavaBuilder, C-Builder, Dev-C
- Borland C, Frontpage, etc.
23Software de aplicaciones
- Tratamiento de textos
- Hoja de Cálculo
- Gestor de bases de datos
- Navegadores
- Diseño gráfico (CAD).
- Ejemplos Word, Excell, DBASE, Netscape, Internet
Explorer, Power Point, etc.
24Lenguajes de programación
- Sirven para codificar algoritmos en un lenguaje
más próximo al lenguaje matemático que al
lenguaje máquina o ensamblador. - Son de sintaxis rÃgida.
- Tipificados.
- Más expresivos que los ensambladores.
25Breve recorrido por los lenguajes
- FORTRAN (FORmula TRANSlation). Desarrollado por
Backus en 1956. Orientado al Cálculo Numérico.
Aunque antiguo continua en uso por el gran número
de librerÃas disponibles. Se trata de un lenguaje
imperativo. - COBOL (Common Business Oriented Language).
Desarrollado por el Departamento Norteamericano
de Defensa en 1960 para tareas de gestión.
Imperativo.
26Lenguajes
- LISP (List Processing).
- Desarrollado por el MIT en 1959.
- Orientado a Inteligencia artificial. Es
declarativo funcional. Se programa
recursivamente. - BASIC (Beginners All-purpose Symbolic Instruction
Code). - Nace a mediados de los 60 y estuvo orientado a la
docencia. - PASCAL (por Blaise Pascal).
- Desarrollado por N. Wirth en 1969 en el Instituto
Tecnológico de Zurich. - Fuertemente tipificado con programación
estructurada.
27Lenguajes
- C.
- Desarrollado por B. Kernigan y D. Ritchie a
finales de los 60. Está en la génesis del sistema
operativo UNIX. - Es un lenguaje de alto nivel muy flexible que
puede susbtituye a los ensambladores. - Muy extendido en computación cientÃfica. Se
trata de un lenguaje imperativo. - ADA (En honor de Ada Augusta hija de Lord Byron).
- Nuevamente es un lenguaje promovido por el
Departamento Norteamericano de Defensa. - Es un lenguaje que sigue al Pascal en su
persecución de escribir programas claros y
comprensibles, fuertemente tipificado,
estructurado y últimamente con orientación a
objetos.
28Lenguajes orientados a objetos
- SMALTALK.
- De orientación a objetos pura. Ineficiente pero
cómodo. No estandarizado. - JAVA.
- Sintaxis similar a la de lenguaje C.
Especialmente pensado para las aplicaciones a
Internet. - Es más ineficiente que los lenguajes
procedimentales como C. - Util para aplicaciones que no son crÃticas en
cuanto a eficacia. - Desaconsejado en computación cientÃfica.
29Lenguajes con orientación a objetos
- C.
- C orientado a objetos.
- Mayor tipificación de datos en tiempo de
compilación. - Es un lenguaje imperativo y conserva la potencia
del lenguaje C para el cálculo cientÃfico. - De hecho, muchos paquetes de cálculo numérico o
simbólico están realizados en C y C.
30Compilación
- Compilador. Traduce un programa escrito en
lenguaje A (lenguaje fuente) a programa escrito
en lenguaje B (lenguaje objeto). - Además de compiladores para obtener un programa
ejecutable son necesarios otros programas
preprocesador y enlazador principalmente.
31El Ciclo de vida del software
- Fases de desarrollo del software.
- Especificación.
- Análisis y diseño.
- Codificación.
- Integración y prueba.
- Mantenimiento
32Distribución de costes de las diferentes fases
- Especificación, análisis y diseño 40.
- Codificación 20
- Integración y prueba 40.
33Problemas para el desarrollo de software
- Especificación insuficiente o imprecisa.
- Verificación experimental y por lo tanto, no muy
fiable. - Diseño no sistemático sino artesanal lo que
implica difÃcil mantenimiento y reusabilidad. - Alto coste económico de los errores.
34Objetivos de la IngenierÃa del Software
- Ofrecer técnicas para el desarrollo de programas
legibles, reusables, correctos, robustos y
fáciles de mantener. - Estado actual
- Utilización generalizada de lenguajes de alto
nivel. - Solo es necesario utilizar lenguajes
ensambladores en los siguientes casos
35Uso de Ensamblador
- Operaciones de entrada/salida.
- Algunas aplicaciones de tiempo real.
- Programación de microprocesadores de muy baja
memoria. - Pequeñas secciones de código de uso muy frecuente
36Otras caracterÃsticas
- Uso de técnicas potentes de programación
estructurada - Diseño descendente.
- Abstracción de datos.
- Modularidad
- Control de configuración en grandes proyectos.
- Buena documentación.
37Observaciones
- Perfeccionamiento del nivel de abstracción en los
lenguajes sin perder eficacia. - Mayor uso de las técnicas de desarrollo
sistemático de software evitando la artesanÃa. - Búsqueda de sistemas automáticos de prueba y
programación.
38Descripción detallada del ciclo de vida del
software
- Especificación y análisis
- Diseño de la arquitectura del sistema
- Diseño detallado
- Codificación
- Integración y prueba
- Operación y mantenimiento
39Especificación y análisis
- Descripción detallada de cual debe ser el
comportamiento esperado del programa.
Precondiciones y Postcondiciones. Restricciones
para los datos a procesar y relación entre datos
y resultados. Determinación de los recursos
materiales y humanos, presupuestos, etc.
40Diseño de la arquitectura
- Estructura básica del sistema que resuelve el
problema. Sólo las partes importantes del
sistema. - Descripción de las estructuras de datos más
importantes.
41Diseño detallado
- Diseño detallado de las partes importantes.
- Refinamiento sucesivo en la obtención de
estructuras de datos y funciones hasta llegar a
los niveles elementales. - Uso de técnicas descendentes y modulares.
42Codificación
- Implantación del diseño en el computador.
- Obtención del código en un lenguaje de
programación usando IDEs. - Elección del lenguaje de programación.
43Integración y Verificación
- Comprobación experimental del buen funcionamiento
del sistema. - Integración en del sistema en un sistema
superior. - Operación y mantenimiento. Uso del nuevo
software, detección y corrección de errores,
ampliación de la funcionalidad del sistema.
44Actividades de cada etapa
45Actividades (continuación)