Sei sulla pagina 1di 24

Diseño de SW

Descomposición funcional

Un modelo de función o modelo


funcional en ingeniería de
sistemas e ingeniería de software es
una representación de las funciones (las
actividades, procesos, operaciones) en el
sistema o modelo área.
Descomposición funcional

Este proceso de descomposición es realizada


con el propósito de conocer la identidad de
los componentes, o con el propósito de
obtener una representación comprimida de
la función global, una tarea que sólo es
posible cuando el los procesos
constituyentes poseen cierto nivel
de modularidad.
Descomposición funcional

Descomposición funcional tiene un papel


destacado en la programación de computadoras,
donde uno de los objetivos principales
es modularizar procesos en la mayor medida
posible. Por ejemplo, un sistema de gestión de la
biblioteca puede ser dividido en un módulo de
inventario, un patrono módulo de información, y
una tarifa módulo de evaluación.
Descomposición funcional

Un programa fuente C esta formado por una o mas


funciones, una función es un conjunto de
instrucciones que realiza una tarea especifica.
Muchas de las funciones que utilizaremos
pertenecen a la biblioteca de C, por lo tanto ya
están escritas y compiladas.
Descomposición funcional

Otras tendremos que escribirlas nosotros mismos


cuando necesitemos ejecutar una tarea que no este en
la biblioteca de C.
Ejemplo

• #include<stdio.h> • int main()


• //Definición Función Suma • {
• int suma(int a, int b) • int n1,n2,res;
• {
• int res; • printf("Sumando 1:");
• res=a+b; • scanf("%d",&n1);
• return(res); • printf("Sumando 2:");
• } • scanf("%d",&n2);
• res=suma(n1,n2);
• printf("%d + %d =
%d\n",n1,n2,res);
• }
Paso de parámetros por
referencia a una función.
• #include <stdio.h> • void Intercambiar( int *a,
int *b )
• void Intercambiar( int *a, int *b );
• {
• int main() • int aux = *a;
• { • *a = *b;
• int a = 5, b = 10;
• printf("\nValores antes de la llamada • *b = aux;
a=%d, b=%d", a, b); • printf("\nFunción
• Intercambiar(&a, &b); //Paso de
parámetros por referencia intercambiar a=%d,
• printf("\nValores despues de la llamada b=%d", *a, *b);
a=%d, b=%d", a, b); • }
• return 0;
• }
Diseño orientado a flujo
de datos

En el diseño estructurado orientado al flujo de


datos, partimos de la representación del flujo de la
información obtenida en la fase de análisis, donde
la información puede representarse como un flujo
continuo que sufre una serie de transformaciones
conforme va de la entrada a la salida.
Diseño orientado a flujo
de datos

El diagrama de flujo de datos DFD (o de burbujas)


se utiliza como herramienta gráfica para la
descripción del flujo de la información.
Diseño

El impacto de la estructura de datos sobre la


estructura del programa y la complejidad
procedimental hace que el diseño de datos tenga
una gran influencia en la calidad del software.
Diseño arquitectónico

El objetivo principal del diseño arquitectónico es


desarrollar una estructura de programa modular y
representar las relaciones de control entre los
módulos.
El proceso del diseño
arquitectónico

El Diseño Orientado al Flujo de Datos permite una


cómoda transformación de las representaciones de
la información (DFD) a una descripción de la
estructura del programa.
Flujo de transformación

En un sistema, la información entra y sale en una


forma del mundo exterior (entradas de teclado,
tonos telefónicos, imágenes de visualización,…).
Flujo de transacción

El flujo de transacción se caracteriza por el


movimiento de datos a través de un camino de
llegada que convierte la información del mundo
exterior en una transacción.
Análisis de transformación

El análisis de transformación es un conjunto de


pasos de diseño que permiten convertir un DFD,
con características de flujo de transformación, en
una plantilla predefinida para la estructura del
programa.
Análisis de transacción

Cuando en un sistema hay un flujo de transacción,


dependiendo del valor de ese elemento
transacción, se seguirá uno u otro camino de
acción de todos los posibles.
Diseño procedimental

Se realiza después de que se ha establecido la


estructura del programa y de los datos. Debe
especificar los detalles de los procedimientos sin
ambigüedad. Los fundamentos del diseño
procedimental se establecieron cuando se propuso
el uso de un conjunto de construcciones lógicas
con las que podía formarse cualquier programa.
Heurística de diseño

La Heurística es un método de resolver problemas


utilizando técnicas de ensayo y error. El diseño
heurístico de programas provee de un marco para
resolver el problema en contraposición con un
conjunto fijo de reglas que no pueden variar.
VECTOR Y ORDENA ASCENDENTEMENTE,
METODO DE LA BURBUJA

• #include<conio.h> • main (void)


• #include<stdio.h> • {
• #include<stdlib.h> • system("cls");
• #include<process.h> • printf("DIGITE LA
• #include<windows.h> PROFUNDIDAD DEL
• int main (void); VECTOR: ");
• void ordenar(int n,int • scanf("%d",&n);
x[]);
• int i,n,x[100];
• for (i = 1; i <= n; i++) • ordenar(n,x);
• { • system("cls");
• printf("\n DIGITE VALOR • for(i = 1; i <= n; i++ )
DEL VECTOR EN LA • {
POSICION %d ",i); • printf("\n EL VALOR DE
• scanf("%d",&x[i]); LA POSICION %d ES: %d
• } ",i,x[i]);
• }
• getch();
• }
• void ordenar(int n,int x[]) • }
• { • }
• int i, j, aux; • }
• for (i = 1; i < n; i++) • //return 0;
• { • }
• for (j = 1; j < n; j++)
• {
• if (x[j] > x[j+1])
• {
• aux = x[j];
• x[j] = x[j+1];
• x[j+1] = aux;

Material adicional

https://www.youtube.com/watch?v=bLQXMzzmbF4
https://manuel.cillero.es/doc/metrica-3/tecnicas/diagrama-de-flujo-de-datos/
https://www.youtube.com/watch?v=uYBJ3jJ0QfA
Titulo

http://www.w3ii.com/es/software_testing_dictionary/functional_decomposition.ht
ml
https://es.wikipedia.org/wiki/Modelos_de_Funci%C3%B3n