Desarrolla Software Utilizando Programación Estructurada
Desarrolla Software Utilizando Programación Estructurada
Desarrolla Software Utilizando Programación Estructurada
Objetivos (I)
Que al final del curso el estudiante sea capaz de: Ubicar la importancia de la programacin en la ingeniera del software Explicar el proceso de construccin de un programa Disear algoritmos para resolver problemas simples Disear y construir programas modulares bajo el enfoque de la programacin estructurada utilizando eficazmente y eficientemente un entorno de desarrollo convencional
Objetivos (II)
Explicar y aplicar algoritmos iterativos de bsqueda y ordenamiento Conocer el papel de las etapas de anlisis, diseo y programacin en el desarrollo estructurado del software
Contenido Sinttico
Resolucin de problemas y los algoritmos
De los algoritmos a los programas Constructores fundamentales de la programacin estructurada Fundamentos del diseo modular Algoritmos iterativos de bsqueda y ordenamiento Archivos Introduccin a los tipos de datos abstractos Introduccin al anlisis y diseo estructurado del software
Algoritmo
Accin o procedimiento
...
Accin o procedimiento
Accin o procedimiento
Accin o procedimiento
Datos de entrada: b y a (base y altura) Datos de salida: ar y pe (rea y permetro) Procesos: ar = b*a, pe = 2*(b + a)
1. 2. 3. 4. 5. 6. 7. Inicio Leer base y altura (b, a) ar b*a pe 2*(b + a) Escribir rea del rectngulo: , ar Escribir Permetro del rectngulo: , pe Fin
Son precisos. Deben indicar el orden de realizacin de cada paso, as como especificar con precisin las entradas y cada paso o etapa Estn bien definidos. Etapas bien definidas y concretas Exactitud y correccin. Se debe demostrar que el algoritmo resuelve el problema para el cual fue escrito Son finitos. Deben tener un nmero finito de pasos y deben terminar Deben describir el resultado o efecto final. La salida esperada del algoritmo debe estar completamente especificada
Entrada
Proceso
Salida
Son independientes tanto del lenguaje de programacin en el que se expresan como del hardware en que se ejecutan los programas
Expresado en Cdigo en C
Ejecutado en
Computadora con los compiladores de C y Pascal
Algoritmo
Procesos: Contar la cantidad de personas del sexo masculino (CM = CM + 1) Contar la cantidad de personas del sexo femenino (CF = CF + 1) Calcular el porcentaje de hombres en el grupo (PM = CM/N*100) Calcular el porcentaje de mujeres en el grupo (PF = CF/N*100)
FIN-MIENTRAS
En este algoritmo se puede apreciar el uso de las tres estructuras de control de la programacin estructurada:
Estructura secuencial Estructura selectiva
Estructura iterativa
1. 2. 3. 4. 5.
Clculo de la media de N observaciones numricas Determinar si un nmero es primo dada una lista de N nmeros enteros Clculo del factorial de un nmero N Retiro de efectivo en un cajero automtico Receta para preparar spaghetti alla napoletana
Definir en cada caso: entrada, procesos/operaciones y salida. Escribir el algoritmo completo para todos los casos.
Diseo descendente
Refinamiento
Representacin grfica
Subproblema
Subproblema
Subproblema
...
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
Subproblema
U
X
P1
P2
P
Y
V
P3
P4
P31
P32
P33
...
Finalizar
Consulta de saldo
Retiro de efectivo
...
Pago de servicios
3.
4.
NE 0, SE 0, SP 0
MIENTRAS NE < N 4.1 Leer edad y peso del estudiante (E, P)
4.2 SE SE + E
4.3 SP SP + P 4.4 Incrementar el contador: NE NE + 1 FIN-MIENTRAS
9. Fin
Especificacin en pseudocdigo
Programa
start
read write If-then-else while-end repeat-until end Comnmente, la escritura del pseudocdigo requiere el uso de la indentacin de las diferentes lneas
Algoritmo para el clculo de la media y desviacin estndar de la edad y peso de un grupo de estudiantes (versin en pseudocdigo)
ME SE/N MP SP/N write La edad promedio es: , ME write El peso promedio es: , MP end
Representacin
Significado
Indica el sentido de ejecucin de las acciones Proceso o accin a realizar (por ejemplo, asignacin)
Paralelogramo
Rombo Rectngulo redondeado Crculo
Inicio
SP <- 0
<accin 1>
<accin 2> <accin 3> ... End
Palabras reservadas comnmente usadas en la especificacin de las acciones (pueden ser tambin usadas en espaol)
Begin read
write
If-then-else while-end repeat-until
end
1. 2. 3. 4. 5. 6. 7.
Inicio Leer base y altura (b, a) ar b*a pe 2*(b + a) Escribir rea: , ar Escribir Permetro: , pe Fin
si <condicin> entonces
<accin 1> si_no <accin 2>
selector Estructura de control condicional CASE otro 1 2 3 ... n
<acciones>
<acciones>
CM = CM + 1
CF = CF + 1
HASTA (condicin)
real: SE, SP
entero: NE
NE = 0
SE = 0 SP = 0 Mientras leer E, P NE <N
SE = SE + E
SP = SP + P
NE = NE + 1
Lo que hemos hecho en estas ltimas dos transparencias ha sido la especificacin en un diagrama N-S del algoritmo para el clculo de la edad promedio y peso promedio de un grupo de N personas
Elementos, estructura y funcionamiento de un sistema de cmputo Lenguajes de programacin: niveles, sintaxis y semntica Estrategias de contruccin de programas
Dispositivos de entrada
CU Unidad de control
Dispositivos de salida
RAM Memoria
Memoria central
Memoria cach
Procesador
El disco duro Disquetes magnticos Unidad CD-ROM Unidad DVD Memoria USB
Memoria central
Unidad lgicoaritmtica
Lenguajes declarativos
Lenguajes ensambladores
Lenguajes de mquina
Lenguajes ensambladores
El lenguaje ensamblador es una representacin simblica del lenguaje de mquina asociado. Es decir, cada computadora tiene un lenguaje ensamblador propio. El lenguaje ensamblador usa palabras nemotcnicas para representar cada instruccin (cadenas de bits) del lenguaje de mquina asociado.
Lenguajes declarativos
Son aquellos lenguajes en los que se indica a la computadora qu es lo que debe hacer, qu es lo que se desea obtener o qu es lo que se est buscando. Son comnmente lenguajes de rdenes, donde se expresa lo que hay que hacer en lugar de cmo hacerlo. Ejemplos de lenguajes declarativos son SQL y Prolog.
Identifier (nombre de variables, nombre de constantes, nombre de funciones, etc.) Literal (nmeros enteros y decimales) Operator (+, -, *, /. etc.) Separator (; . , etc.) Keyword (while, read, write, if, for, case, int, real, etc.)
Gestin de memoria
La gestin de memoria se refiere al proceso de asignar valores a la memoria, considerando tanto las caractersticas estticas como dinmicas de dichos valores. Los valores pueden ser asignados a una de tres categoras de memoria: memoria esttica, la pila en tiempo de ejecucin y el montculo.
Mquina virtual
Sistema operativo Lenguaje de mquina
Traductores de lenguaje
Intrpretes
Compiladores
Un traductor de lenguaje es un programa que traduce a cdigo de mquina un programa fuente escrito en un lenguaje de alto nivel.
Programa fuente
Intrprete
Programa fuente
Compilador
Programa objeto
Compilador
Linker
Analizador lxico
Analizador sintctico
Analizador semntico
Optimizador de cdigo
Programacin imperativa Programacin funcional Programacin lgica Programacin orientada a objetos Programacin concurrente Programacin guiada por eventos
Programacin orientada a objetos El programa es una coleccin de objetos que interactan entre s a travs del paso de mensajes, los cuales comnmente transforman el estado de los objetos. Ejemplos de lenguajes orientados a objetos son Smalltalk, C++, Eiffel y Java.
El programa responde a eventos externos generados en un orden no predecible. Los eventos comnmente se generan a partir de acciones del usuario en la pantalla (por ejemplo, clics del mouse o pulsaciones de teclas), pudiendo existir tambin otras fuentes generadoras de eventos. Ejemplos de lenguajes de programacin guida por eventos son Visual Basic y Java.
Mdulo 1
Mdulo 2
Mdulo 3
...
Mdulo N
Mdulo 11
Mdulo 12
Mdulo 31
Mdulo 32
Mdulo N1
Mdulo N2
Mdulo 311
Mdulo 312
Lectura de datos
Generacin de grficos