Está en la página 1de 32

Ingeniería de Software

Diseño Orientado a
Funciones

LIA. Manuel A. Mtnez. Farrera, MA y MSc


manolo@med.uag.mx
Coordinación de Informática Médica
Universidad Autónoma de Guadalajara
Ciencias de la Computación - mafm 1
Ingeniería de Software

Objetivo General

Diseño con unidades funcionales el


cual transforma las entradas en
salidas

Ciencias de la Computación - mafm 2


Ingeniería de Software

Objetivos Específicos

• Explicar como el diseño del software puede ser


representado como un conjunto de funciones las cuales
comparten estados
• Introducir notaciones para funciones orientadas al diseño
• Ilustrar el proceso de diseño orientado a funciones
mediante ejemplos

Ciencias de la Computación - mafm 3


Ingeniería de Software

TEMAS

• Diseño de flujo de datos

• Descomposición estructural

• Diseño detallado

Ciencias de la Computación - mafm 4


Ingeniería de Software

Diseño Orientado a Objetos


Una estrategia de Diseño Orientado a Funciones se fundamenta
sobre la descomposición del Sistema en un conjunto de funciones
interactuando con el estado de un Sistema Centralizado
compartido a través de estas funciones. Las funciones pueden
también mantener la información del estado local actual, pero
únicamente durante la duración de la ejecución.
Sh ared memory

F1 F2 F3

F4 F5

Ciencias de la Computación - mafm 5


Ingeniería de Software

Diseño Orientado a Funciones


El Diseño Orientado a Funciones oculta el detalle de un
algoritmo en una función, pero la información del estado del
Sistema NO es ocultada. Esto puede causar problemas,
debido a que una función puede cambiar el estado de tal
forma que otra función NO este preparada para ese cambio.
La Estrategia del Diseño Funcional será exitoso cuando la
cantidad de la información del estado del Sistema sea
mínima y la información compartida sea explícitamente
dada.
Muchos Sistemas de procesamiento de transacciones y
Sistemas de procesamiento de Datos Orientados hacia el
negocio, son considerados en esta clase.

Ciencias de la Computación - mafm 6


Ingeniería de Software

Diseño Funcional del ATM – automatic teller machines

Un ejemplo de un Sistema de Procesamiento de Transacciones es


el sftw que controla automáticamente a los Cajeros. El Servicio
provisto a un usuario es independiente de servicios previos, de tal
forma que cada servicio puede ser pensado como una única
transacción.

La grafica posterior ilustra un diseño simplificado funcional del


ATM, nótese que el Diseño sigue un modelo de Control
Centralizado. El Sistema es implementado como un simple ciclo y
acciones que son disparadas, cuando se detecta la “entrada” de
una Tarjeta.

Ciencias de la Computación - mafm 7


Ingeniería de Software
Diseño Funcional del ATM – automatic teller machines Las funciones tales
loop
loop como Dispense_cash,
Print_input_message (” Welcome - Please enter your card”) ;
exit when Card_input ; Get_details,
end loop ; Order_statment,
Account_number := Read_card ;
Get_account_details (PIN, Account_balance, Cash_available) ; Order_checkbook,
if Validate_card (PIN) then etc... Son funciones
loop
Print_operation_select_message ; sobre las cuales el
case Get_button is
when Cash_only => Sistema esta
Dispense_cash (Cash_available, Amount_dispensed) ; implementado. El
when Print_balance =>
Print_customer_balance (Account_balance) ; estado del Sistema es
when Statement => mantenido por la
Order_statement (Account_number) ;
when Check_book => aplicación es mínima.
Order_checkbook (Account_number) ;
end case ; Los Servicios de los
Eject_card ; usuarios operan
Print (“Please take your card or press CONTINUE”) ;
exit when Card_removed ; independientemente y
end loop ; no interactúan uno con
Update_account_information (Account_number, Amount_dispensed) ;
else otro. Un Diseño
Retain_card ;
end if ; Orientado a Objetos
end loop ; llegaría a ser de
Ciencias de la Computación - mafm manera similar 8
Ingeniería de Software

El Proceso del Diseño Orientado a Funciones

Diseño de Flujo de Datos: Modela al Sistema utilizando Diagramas de


Flujo de Datos. Estos pueden mostrar como los datos pasan a
través del Sistema y como son transformados por cada función
dentro del Sistema. Este modelo “podría” derivarse del modelo
desarrollado durante el análisis de requerimientos

Descomposición Estructural: Modela como las funciones están


compuestas por sub-funciones utilizando una Gráfica de Diagrama
Estructural

Descripción detallada del Diseño: Describe las entidades en el Diseño


y sus interfaces. Esta descripción puede ser registrada en un
Diccionario de Datos. También describe las estructuras de control
del Diseño utilizando PDL, en el cual es fácil de representar
condiciones y ciclos de Control

Ciencias de la Computación - mafm 9


Ingeniería de Software

Diseño de Flujo de Datos


– Concierne a Diseñar una secuencia de transformación
funcional desde las “entradas” al Sistema hasta las
“salidas” requeridas.
– Este Diagrama muestra como los datos fluyen a través del
Sistema y como las “salidas” son derivadas desde las
“entradas” a través de una secuencia de transformaciones
funcionales.
– Los Diagramas de Flujos de Datos son una manera fácil e
intuitiva de describir un Sistema. Son fáciles de entender
sin ningún entrenamiento especial, debido a que los
controles de información son excluidos.

Ciencias de la Computación - mafm 10


Ingeniería de Software

Diseño de Flujo de Datos


– Estos diagramas muestran un procesamiento de
“principio-a-fin”, esto quiere decir: que el flujo de
procesamiento desde que los datos “entran” al Sistema
hasta que “dejan” el Sistema, puede ser fácil de “seguir”
– El Diseño de Diagramas de Flujos de Datos son una
parte integral de numerosos métodos de Diseño y
muchos CASE tools soportan la creación de estos

Ciencias de la Computación - mafm 11


Ingeniería de Software

Notación de los Diagramas de Flujo


Diferentes métodos utilizan diferentes iconos para representar los
componentes de un Diagrama de Flujo de Datos, pero su
significado es el mismo:
Rectángulo redondeado: Función o transformación
Rectángulo: Almacenamiento de datos
Círculos: Interacciones de usuario con el sistema
Flechas: Muestran la dirección del flujo de datos
Palabras clave and y or: Usados para conectar los flujo de datos

Un Diagrama de Flujo de Datos muestra la transformación


funcional, pero NO sugiere cómo puede ser implementado. Un
Sistema descrito de esta manera puede ser implementado como
un único programa utilizando funciones o procedimientos para
implementar cada transformación, alternativamente esto se podría
implementar como un numero de tareas que se comunican.

Ciencias de la Computación - mafm 12


Ingeniería de Software
Get design
name
Diagramas de Flujo
Design Diseñador de reportes de un Diseño
name Entity
names
Design Get entity
database names Sort entity
names
Sorted Link
names Produce report
link repotrt

Look up r
Data Integrate
entity names and reports
dictionary
Design entity Link
descriptions Node
descriptions
report Integated
r
and report
Sort by Produce
type Node report

Node Print
descriptions report

Ciencias de la Computación - mafm 13


Ingeniería de Software

Descomposición Estructural – modularidad


– Muestra como un función dada es realizada por un numero de
otras funciones, las cuales son llamadas.
– La estructura de la Grafica representa una “descomposición
jerárquica”.
– Al igual que el DFD esta es una grafica dinámica, por que en
ella se demuestra como las funciones son llamadas unas a
otras
– Una función se representa como un rectángulo, la jerarquía es
representada ligando los rectángulos utilizando líneas con
puntas de flecha, una flecha entrando a un rectángulo es una
“entrada” saliendo del rectángulo es una “salida”
– Las “entradas” o las “salidas” las cuales representan
parámetros o variables compartidas, son indicadas en las
líneas de flecha que unen a estas funciones

Ciencias de la Computación - mafm 14


Ingeniería de Software

Descomposición Estructural – modularidad


– Convertir un DFD a DE, no es un proceso mecánico, necesita
del entendimiento y creatividad del Diseñador. Existen diversas
reglas:
• Muchos Sistemas particularmente los Sistemas de Negocios para
los cuales el Diseño Funcional es apropiado, pueden ser
considerados como Sistemas de 3 fases: “entrada de Datos” con
su respectiva validación, “procesamiento de datos”, y “salida de
Datos” en forma de reportes o inclusive algún tipo de archivo. El
primer nivel de la gráfica podría por consiguiente tener 3 ó 4
funciones correspondiente a “entradas”, “procesos”,
“actualización de Archivos Maestros” y “Salidas”
• Si alguna validación de Datos es requerida, la función para
implementar esta podría ser subordinada a una función de
entrada. Imprimir, escribir a un archivo, dispositivo o formato
puede ser subordinada a una función de salida

Ciencias de la Computación - mafm 15


Ingeniería de Software

Descomposición Estructural – modularidad


• El rol que juegan las funciones cerca del nivel más alto de la
Estructura Jerárquica es la pueden ser la de controlar y coordinar
un conjunto de funciones de más bajo nivel.
• El propósito del diseñador será derivar unidades de diseño las
cuales son altamente cohesivas y débilmente acopladas. Las
Funciones por lo tanto debería ser diseñadas para resolver solo
un único y exclusivo problema
• Cada nodo en la estructura podría tener entre dos o siete
subordinados. Si existiera un único subordinado, esto implica que
la unidad representada por ese nodo tiene un bajo grado de
cohesión. El componente puede no ser una única función, debido
a que un único subordinado significa que otra función ha sido
factorizada. Si el nodo tiene muchos subordinados significa que
el Diseño ha sido desarrollado a un muy bajo nivel en esta etapa

Ciencias de la Computación - mafm 16


Ingeniería de Software

Descomposición Estructural – modularidad


Siguiendo estas reglas y un proceso de 3 pasos pueden ser
identificados para transformar el DFD a un DE

• Identificar las transformaciones de procesamiento


del Sistema: Estas se refieren exclusivamente a las
funciones de procesamiento. Ellas No conciernen a
ninguna función de “entrada” o función de “salida”,
tales como lectura o escritura de datos, validación
de datos, filtrado de datos, o formateo de “salidas”.
Estas transformaciones pueden ser agrupadas bajo
una única función en el primer nivel de la
Estructura

Ciencias de la Computación - mafm 17


Ingeniería de Software

Descomposición Estructural – modularidad


• Identificar las transformaciones de “entrada”: Estas
conciernen con la “lectura” de datos, “chequeo” de
estos, eliminación de duplicados, etc. Estas
transformaciones también pueden ser agrupadas
bajo una única función en el primer nivel de la
Estructura

• Identificar las transformaciones de “salida”: Estas


corresponden a las transformaciones las cuales
preparan o formatean “salidas” o escrituras a
pantallas u otros dispositivos

Ciencias de la Computación - mafm 18


Ingeniería de Software

Descomposición Estructural – modularidad


Produce
design report
entity
entity
data
names
entity entity
names data
Get design Generate
entity names Collate report
entities
Design
Design
Entity
name Design
names
report
En el generador de reportes, las funciones de procesamiento son aquellas que
ordenan la “entrada”, buscan en el Diccionario, y ordenan la información accesada
en el diccionario. En esta gráfica de estructura todas estas funciones son reunidas
en una sola función llamadas Collate entities, estas y otras funciones son
“descompuestas” para mostrar las funciones subordinadas. Reflejando la
transformación del DFD en un DE.
Ciencias de la Computación - mafm 19
Ingeniería de Software

Descomposición Estructural – modularidad


Produce
design repor ts
sorted
names sorted entity
names entity data
data

Get design Collate Gener ate


entity names entities repor t

sor ted sor ted


entity names entity entity
design names data data
name sor ted entity Integ rated
names data repor t
Get design Get entity Sor t entities Get entity Sor t entities Produce Print
name names by name data by type integrated repor t report

design entity entity repor t


name names data
Ciencias de la Computación - mafm 20
Ingeniería de Software

Descomposición Estructural – modularidad


Las transformaciones de “entrada” se detienen en la función
denominada Sort entity by names, en este caso esta
únicamente concierne con a la lectura de la información.
Ninguna validación de datos en necesaria. Esta es
representada con la función llamada Get design entity
names.
Las transformaciones de “salida” concierne con la producción
de reportes por “link” o por “tipo de nodo”, la integración del
reporte y la impresión. Todo esto concierne con formatear y
organizar de las descripciones de las entidades del Diseño.
Esta función es agrupada en Generate report.

Ciencias de la Computación - mafm 21


Ingeniería de Software

Descomposición Estructural – modularidad

Todas las principales rutinas en el generador de reportes han


sido identificadas, únicamente falta agregar en el nivel final
rutinas más detalladas y además mostrar como los datos del
Sistema son almacenados y accesados.

En un DE, también se pueden representar componentes que


no conciernen directamente con la transformación de datos,
pero si con el control del Sistema: validar usuarios,
inicialización del Sistema, etc.

Ciencias de la Computación - mafm 22


Ingeniería de Software

Descomposición Estructural – modularidad


Produce
design repor ts
sor ted
entity
names names sorted
data
entity
data

Get design Collate Gener ate


entity names entities repor t
sor ted sor ted
entity names entity entity
design names data data
name sor ted entity Integ rated
names data repor t
Get design Get entity Sort entities Get entity Sor t entities Produce Print
name names by name data by type integrated repor t report

Node
design design entity entity entity Link data
data Node
name name names name data repor t
Link repor t
Design Data Produce repor t Produce
database dictionary link repor t node repor t

Ciencias de la Computación - mafm 23


Ingeniería de Software

Diseño Detallado

– En esta etapa del Diseño, el Diseñador, debe conocer la


organización del Diseño y que debe hacer cada función
– La descripción del Diseño concierne con producir
pequeñas especificaciones de Diseño de cada función
<miniespecificaciones>. Estas describe a detalle la función,
sus “entradas” y sus “salidas”
– Describir este nivel, usualmente revela funciones que
pudieron haber sido omitidas, si se incurren en esto, el
DFD y el DE debe ser revisado y modificados para
incorporar un entendimiento mejorado del Diseño

Ciencias de la Computación - mafm 24


Ingeniería de Software

Diseño Detallado

– La mejor manera de administrar estas descripciones


funcionales es mantenerlas en un Diccionario, siendo
una manera muy fácil de registrar y acceder información.

– Algunos Case tools incluyen facilidades de acceso


directamente al Diccionario de Datos facilitando la
información concerniente a los componentes

Ciencias de la Computación - mafm 25


Ingeniería de Software

Diseño Detallado – Diccionario de Datos


Entity name Type Description
Design name STRING The name of the design assigned by the
design engineer.
Get design name FUNCTION Input: Design name
Function: This function communicates
with the user to get the name of a design
that has been entered in the design
database.
Output: Design name
Get entity names FUNCTION Input: Design name
Function: Given a design name, this
function accesses the design database to
find the names of the entities (nodes and
links) in that design.
Output: Entity names
Sorted names ARRAY of A list of the names of the entities in a
STRING design held in ascending alphabetical
order.

Ciencias de la Computación - mafm 26


Ingeniería de Software

Diseño Detallado – Case tools

Get design
name Design
name

Entity
names
Design Get entity Sort entity
database names names

Transform name: Sort entity names (Namelist: in out Names)

Description: This transform takes a list of entity names and


Data sorts them into ascending alphabetical order.
dictionar y Duplicates are removed from the list.

It is anticipated that the names will be randomly ordered and


that a maximum of 200 names need be sorted at one time.
A quicksort algorithm is recommended.

Ciencias de la Computación - mafm 27


Ingeniería de Software

Diseño Detallado – especificación de Diseño

La siguiente etapa del diseño detallado es producir el detalle


mismo, el cual consta especificar a detalle incluyendo el
control de los datos e información mas precisa a cerca de la
estructura de datos que se manipularan. Este detalle debe
expresarse utilizando algún lenguaje descriptivo <PDL>, en
alguna notación grafica mas detallada o directamente en un
lenguaje de programación.

Ciencias de la Computación - mafm 28


Ingeniería de Software

Diseño Detallado – especificación de Diseño


procedure OIRS is
begin
User := Login_user ;
Workspace := Create_user_workspace (User) ;
-- Get the users own document database using the user id
DB_id := Open_document_database (User) ;
-- get the user’s personal index list;
Known_indexes := Get_document_indexes (User) ;
Current_indexes := NULL ;
-- command fetch and execute loop
loop
Command := Get_command ;
exit when Command = Quit ;
Execute_command ( DB_id, Workspace, Command, Status) ;
if Status = Successful then
Write_success_message ;
else
Write_error_message (Command, Status) ;
end if ;
end loop ;
Close_database (DB_id) ;
Logout (User) ;
end OIRS ;

Ciencias de la Computación - mafm 29


Ingeniería de Software

Diseño Detallado – especificación de Diseño


procedure Interactive_system is
begin
loop
Commnad:=Get.command;
if Command = “quit” then
-- Make sure files etc. Are closed properly
Close_down-system;
exit;
else
input_data:=Get_input_data;
Execute_command(Command,Input_data,Output_data);
end if;
end loop
end Interactive_system;

Ciencias de la Computación - mafm 30


Ingeniería de Software

Resumen
•El FOD se basa en la identificación de funciones que
transforman entradas en salidas. En la mayoría de los
Sistemas, las funciones comparten estados globales del
Sistema mismo.
•Muchos sistemas de negocios son sistemas de
procesamiento de transacciones los cuales son naturalmente
funcionales, se ha invertido mucho en este tipo de Sistemas
por esta razón FOD continuara
•El proceso de FOD identifica transformaciones de datos,
descomposición de funciones en subfunciones, describiendo
la operación e interfase de cada entidad del Sistema

Ciencias de la Computación - mafm 31


Ingeniería de Software

Resumen
•Los DFD son una forma de documentar los flujos de datos a
través de todo el Sistema. Los diagramas de estructura
representan la jerarquía dinámica de llamadas a funciones

•Los diagramas de flujo de datos pueden ser implementados


como conjunto de procesos cooperativos secuenciales.
Cada transformación en los DFD son implementados como
procesos separados

Ciencias de la Computación - mafm 32

También podría gustarte