Modularización – Procedures
En Da Vinci
programa uno
procesos
proceso auxiliar
comenzar
fin
variables
.
comenzar
fin
En Pascal
program uno;
procedure auxiliar
begin
end;
var
.
begin
end.
program uno;
var
.
procedure auxiliar
var
.
begin
end;
begin
end.
Modularización – Procedures
program uno;
procedure auxiliar;
var
x:integer;
begin
x:= 8;
x:= x * x;
end;
Conjunto de instrucciones que realizan una tarea especifica y retorna 0, 1 o más valores.
Cómo se invoca?
(Gp:) Procedimiento sin parámetros.
(Gp:) No devuelve nada.
Modularización – Procedures
program uno;
Var
// variables del programa
procedure auxiliar
var
x:integer;
begin
x:= 8;
x:= x * x;
end;
begin
..
auxiliar;
..
end.
Por el nombre
Modularización – Procedures
Resumen
Es un módulo que realiza tareas y puede devolver 0, 1 ó más valores.
En general devuelve el resultado a través de PARAMETROS.
Se invocan: escribiendo su nombre.
Permite parámetros de entrada y de entrada salida.
Respecto de las operaciones de lectura y escritura, no es aconsejable introducirlas como parte del módulo. Lo charlamos?
Modularización – Function
En Da Vinci
No existe
En Pascal
program uno;
var
.
function auxiliar: tipo
begin
..
end;
begin
end.
En Pascal
program uno;
var
.
function auxiliar: tipo
var
.
begin
..
end;
begin
end.
Modularización – Function
function auxiliar: tipo;
var
x:integer;
begin
x:= 8;
auxiliar:= x;
end;
Conjunto de instrucciones que realizan una tarea especifica y retorna 1 valor.
(Gp:) Function sin parámetros.
(Gp:) Devuelve el valor
(Gp:) Tipo que devuelve.
Sólo simples
Modularización – Function
program uno;
function auxiliar: integer;
var
x:integer;
begin
x:= 8*5;
auxiliar:= x;
end;
¿Cómo se invoca?
Modularización – Function
program uno;
var
res:integer;
function auxiliar: integer;
var
x:integer;
begin
x:= 8*5;
auxiliar:= x;
end;
begin
..
res:= auxiliar;
..
end.
Por su nombre, asignando el resultado a una variable del mismo tipo que devuelve la función
Modularización – Function
program uno;
function auxiliar: integer;
var
x:integer;
begin
x:= 8*5;
auxiliar:= x;
End;
begin
..
write (El resultado es, auxiliar);
..
end.
Por su nombre, informando su resultado.
Modularización – Function
program uno;
function auxiliar: integer;
var
x:integer;
begin
x:= 8*5;
auxiliar:= x;
End;
begin
..
if (auxiliar = 5) then
..
end.
Por su nombre, en una condición
Modularización – Function
program uno;
function auxiliar: integer;
var
x:integer;
begin
x:= 8*5;
auxiliar:= x;
End;
begin
..
while (auxiliar = 5) do
..
end.
Por su nombre, en una condición
Modularización – Function
Resumen
Es un módulo que realiza una única tarea y devuelve SIEMPRE un sólo valor de tipo simple.
Para devolver el resultado se asigna al nombre de la función como última instrucción.
Respecto de las operaciones de lectura y escritura, no es aconsejable introducirlas como parte del módulo. Lo charlamos?
Se pueden invocar: dentro de una condición (por ejemplo, en la condición de un if o de un while), o asignarla a una variable o dentro de un write.
Pueden recibir sólo parámetros de entrada.
Diferencias entre procedimiento y función
¿Dónde vuelve el flujo de control del programa una vez ejecutado el módulo?
¿Cómo se invocan?
¿Qué tipos de parámetros aceptan?
¿Cuántos valores devuelven como mínimo?
Operaciones que se pueden realizar en cada uno.
Modularización – Ejemplo
Sistematizar la operatoria de un hotel
(Gp:) Gestión de Clientes
(Gp:) Gestión de Reservas
(Gp:) Incorporar un cliente
(Gp:) Eliminar un cliente
(Gp:) Consultar /Modificar datos cliente
(Gp:) Efectuar reserva
(Gp:) Cancelar reserva
(Gp:) Consultar reservas de un día
Modularización Ventajas
Mayor productividad
Al dividir un sistema de software en módulos funcionalmente independientes, un equipo de desarrollo puede trabajar simultáneamente en varios módulos, incrementando la productividad (es decir reduciendo el tiempo de desarrollo global del sistema). Ejemplo.
Modularización – Ejemplo
Sistematizar la operatoria de un hotel
(Gp:) Gestión de Clientes
(Gp:) Gestión de Reservas
(Gp:) Incorporar un cliente
(Gp:) Eliminar un cliente
(Gp:) Consultar /Modificar datos cliente
(Gp:) Efectuar reserva
(Gp:) Cancelar reserva
(Gp:) Consultar reservas de un día
Modularización – Ventajas
Un objetivo fundamental de la Ingeniería de Software es la reusabilidad, es decir la posibilidad de utilizar repetidamente el producto de software desarrollado.
Naturalmente la descomposición funcional que ofrece la modularización favorece el reuso. Ejemplo.
Reusabilidad
Modularización – Ejemplo
Se puede utilizar para cualquier otro sistema
(Gp:) Gestión de Clientes
(Gp:) Incorporar un cliente
(Gp:) Eliminar un cliente
(Gp:) Consultar /Modificar datos cliente
Modularización – Ventajas
La división lógica de un sistema en módulos permite aislar los errores que se producen con mayor facilidad. Esto significa poder corregir los errores en menor tiempo y disminuye los costos de mantenimiento de los sistemas. Ejemplo
Facilidad de Mantenimiento Correctivo
Modularización – Ejemplo
No puedo eliminar
un usuario
Eliminar un usuario
Modularización – Ventajas
Los sistemas de software reales crecen (es decir aparecen con el tiempo nuevos requerimientos del usuario). La modularización permite disminuir los riesgos y costos de incorporar nuevas prestaciones a un sistema en funcionamiento. Ejemplo.
Facilidad para el crecimiento del sistema
Modularización – Ejemplo
(Gp:) Gestión de Pagos
(Gp:) Generar Factura
(Gp:) Cancelar pago
(Gp:) Registrar pago
Sistematizar la operatoria de un hotel
(Gp:) Gestión de Clientes
(Gp:) Gestión de Reservas
(Gp:) Incorporar un cliente
(Gp:) Eliminar un cliente
(Gp:) Consultar /Modificar datos cliente
(Gp:) Efectuar reserva
(Gp:) Cancelar reserva
(Gp:) Consultar reservas de un día
Modularización – Ventajas
Un efecto de la modularización es una mayor claridad para leer y comprender el código fuente. El ser humano maneja y comprende con mayor facilidad un número limitado de instrucciones directamente relacionadas. Ejemplo.
Mayor Legibilidad
Modularización Alcance de variables
Program dos;
Var
y,j: integer;
procedure prueba;
var
x: integer;
Begin
x:= 9;
write (x);
End;
Begin
j:= 89;
y:= j*2;
End.
¿Donde se pueden utilizar j e y?
¿Donde se puede
utilizar x?
¿Qué pasa si dentro
de prueba se declara y: integer?
¿Qué pasa si dentro
de prueba se declara y: char?
Modularización Alcance de variables
Program dos;
Var
a,b: integer;
procedure prueba;
var
Begin
x:= 9;
write (x);
End;
Begin
..
End.
(Gp:) 1.Se fija si es variable local
(Gp:) 2. Si no es variable local, entonces se fija si es un parámetro.
(Gp:) 3.Si no es variable local y no es parámetro, entonces se fija si es variable global.
Modularización ¿Qué imprime?
Program dos;
Var
x,a,b: integer;
procedure prueba;
var
x: integer;
Begin
x:= 9;
write (x);
End;
Begin
x:= 8;
prueba;
End.
Program dos;
Var
x,a,b: integer;
procedure prueba;
Begin
write (x);
End;
Begin
x:=8;
prueba;
End.
Program dos;
Var
x,a,b: integer;
procedure prueba;
Begin
x:= 9;
write (x);
End;
Begin
x:=8;
prueba;
End.
Modularización ¿Qué imprime?
Program ejemplo;
Var talle: integer;
peso: real;
Procedure asigna;
var peso: real;
Begin
talle:= 25;
peso:= 62.50;
End;
Begin
talle:= 28;
peso:= 55;
asigna
writeln(talle, peso);
End.
25 55
El 25 corresponde al talle
El 55 al peso
Modularización ¿Qué imprime?
begin {del programa principal}
global := 0;
write ( global );
proceso;
write ( global );
end.
Program alcance;
Var global : Integer;
Procedure proceso;
begin
global := 25;
write ( global );
global: = 30;
end;
Modularización ¿Qué imprime?
begin {del programa principal}
global := 0;
write ( global );
proceso;
write ( global );
end.
Program alcance;
Var global : Integer;
Procedure proceso;
var global:integer;
begin
global := 25;
write ( global );
global: = 30;
end;
Página anterior | Volver al principio del trabajo | Página siguiente |