Professional Documents
Culture Documents
Objetivos
n
Reflexionar sobre la utilidad del ordenador sus posibilidades y limitaciones. Identificar los elementos bsicos de un Sistema Informtico. Conocer los aspectos fundamentales del proceso de realizacin de un programa.
Conocer la evolucin y caractersticas de los lenguajes de programacin. Entender la dificultad de expresar rdenes de forma sencilla y concreta. Valorar la importancia de realizar un buen anlisis como paso previo al desarrollo de una aplicacin.
Contenidos
n n n n n n
Introduccin. Qu es un ordenador?. Qu significa programar?. Paradigmas de programacin. Fases de la programacin. Lenguajes de programacin.
q q q q
n n
Un ordenador es:
El conjunto de recursos que son necesarios para la elaboracin y el uso de aplicaciones informticas
Elementos: Hardware, software y personal informtico Interfaz Vas de enlace entre elementos
Impresora
WebCam
DVD
Lector DVD
Modem
Memoria Central
SOFTWARE
Software Bsico (Sistemas Operativos) Editores de Texto Hojas de Clculo Bases de datos COMPILADORES Otras aplicaciones
Software de Aplicacin
ELEMENTO HUMANO
Usuarios Personal de Direccin Analistas Programadores Operadores
Personal Informtico
Sistema informtico
Pr
r og
s ma
de
c p li
ac
i n
Hardware
PROGRAMAR es:
n
Un programa informtico es el conjunto de instrucciones que se da al ordenador para que realice una determinada tarea.
10
Paradigmas de programacin
Un paradigma es un modelo bsico para el diseo e implementacin de programas. Algunos Modelos n Programacin lgica n Programacin heurstica n Paradigmas procedimentales
q q
11
FASE DE RESOLUCIN
FASES EN PROGRAMACIN
ANLISIS
PRUEBA
FASE DE IMPLEMENTACIN
FALLOS? S/N
NO
PRUEBA
FALLOS? S/N
FASE DE EXPLOTACIN
USO Y MANTENIMIENTO
NO
12
Camino equivocado
RESOLUCI N IMPLEMENTACIN PROGRAMA ALGORITMO PRUEBA PRUEBA EXPLOTACIN ANLISIS
13
PROBLEMA
2. INFORME ALGORITMICO: la actividad se analiza en busca de la forma de resolucin. El resultado se plasma en un informe que contiene: a. La descripcin de la tarea y la enumeracin de los objetivos a conseguir b. El procedimiento empleado c. Los recursos y elementos necesarios d. El algoritmo (la secuencia en la que hay que realizar cada una de las operaciones) 3. PROGRAMA: el algoritmo, traducido a un lenguaje de programacin especfico, se convierte en un programa que el ordenador puede ejecutar
Anlisis y resolucin
INFORME ALGORTMICO
Codificacin
PROGRAMA
14
Qu es un algoritmo?
Un mtodo para resolver un problema mediante una serie de pasos precisos, definidos, finitos
precisos : indicar el orden de presentacin de cada paso definidos : si se siguen dos veces se obtiene igual resultado finitos : tiene un nmero determinado de pasos
15
Una receta de cocina puede resultar similar (en cuanto a concepto) a un algoritmo o programa
Ver ejemplo tortilla pag pag. . 9 UNIPRIM.doc Ejercicio: Realizar un algoritmo sobre un proceso sencillo de la vida diaria.
16
Algoritmo: Cambiar rueda al coche I Suponemos que : Disponemos de todos los utensilios: coche, rueda, llave y gato Sabemos: aflojar tornillo, apretar tornillo,... Inicio Inmovilizar el coche Introducir el gato Repetir Levantar el coche accionando manivela del gato Mientras que la rueda roce el suelo. Repetir Aflojar un tornillo de la rueda Mientras queden tornillos por aflojar Quitar los tornillos Quitar la rueda Poner rueda de repuesto Repetir Apretar un tornillo de la rueda Mientras queden tornillos por apretar Repetir Bajar el coche accionando manivela del gato Mientras que el gato soporte peso. Fin
17
18
Lenguajes de Programacin
Lenguaje mquina Lenguaje ensamblador Lenguajes compilados Lenguajes interpretados
n n n n
19
Los Lenguajes compilados traducen el programa entero y luego lo montan generando un programa ejecutable por si slo. Una vez compilado el programa, el compilador no tiene porque estar presente, pudindose transportar el programa ejecutable a cualquier ordenador, sin necesidad de manejar el compilador. Los Lenguajes interpretados, se encargan de realizar la traduccin instruccin a instruccin a la vez que se ejecuta el programa. Son ms lentos, pero mejores cuando el proceso de traduccin/ejecucin se realiza en repetidas ocasiones, por lo que son ms adecuados para principiantes. El intrprete debe estar presente mientras se ejecuta el programa
21
Lenguaje Natural
Lenguaje C
c = a + b;
Compilador C
Ensamblador
Lenguaje Mquina
(Cdigo Mquina)
22
Lenguaje mquina
la instruccin de mquina IA-32 10110000 01100001 Lenguaje ensamblador microprocesadores x86 mov al, 0x61
n
.model small .stack .data Cadena1 DB 'Hola Mundo.$' .code programa: mov ax, @data mov ds, ax mov dx, offset Cadena1 mov ah, 9 int 21h end programa
Hola mundo en C
Registros usados en el programa ensamblador del ejemplo: AX registro acumulador (AH byte alto AL byte bajo) DS Puntero al Segmento de datos DX registro de Datos de propsito general Interrupciones: int 21h //para escribir en pantalla
23
Ejecutar
Editor
Fase de Edicin
MIPROGRA.C
Compilador
Errores?
NO
Programa traducido a lenguaje mquina
Fase de Compilacin
MIPROGRA.OBJ
Errores?
NO
P rograma listo para ejecutarse
Fase de Enlazado
MIPROGRA.EXE
Entrada de Datos
Fase de Ejecucin
NO
Responden a lo esperado?
24
n n n n n
Buen diseo, aplicando reglas de calidad y correccin. Recorrido e inspeccin de diseo y cdigo. Establecimiento de mtodos de depuracin. Previsin de planes de prueba. Establecimiento de datos de prueba.
25
ERRORES
n n
EN TIEMPO DE COMPILACIN
q q q
Lexicogrficos: en C mian en lugar de main Sintcticos: a = b + ( c / ) Semnticos: No interrumpen el proceso de compilacin if ( a = b) en lugar de == (warning en C)
26
Mediante herramientas automticas Tcnicas formales manuales Precondiciones: asertos previos a la ejecucin del mdulo Ej. Tras mientras de la tortilla se aserta la condicin de salida. Postcondiciones: asertos posteriores a la ejecucin del mdulo Estudio de las invariantes de bucles
Conceptos
q
q q
n n n n
Correccin. Hace lo que se establece como requisito? Fiabilidad. Lo hace de forma fiable todo el tiempo? Eficiencia. Minimiza tiempo y recursos? Seguridad (Integridad). Es seguro? Facilidad de uso. Est diseado para ser usado facilmente? Modificabilidad. Puede modificarse y probarse fcilmente ? Viable. Su realizacin se atiene al tiempo y presupuestos establecidos?
28
El comienzo de la sabidura para un ingeniero del Software es reconocer la diferencia entre hacer que un programa funcione y conseguir que lo haga correctamente [Pressman, 2003]
29