Herramientas de anlisis de Software y de diseo
El anlisis y el diseo del Software incluye todas las actividades, que ayudan a transformar los requisitos requeridos en implementacin. Los requisitos especifican la previsin operativa o no operativa del software. La especificacin de requisitos se da en documentos con un lenguaje humano comprensible, con el que el ordenador no tiene ninguna relacin.
El anlisis y el diseo de Software es la fase intermedia, que ayuda a los requisitos legibles por humanos a ser transformados en cdigos reales.
Veamos algunas herramientas de anlisis y de diseo usadas por Ingenieros de software:
Diagrama de flujo de datos
Un Diagrama de flujo de datos (DFD), es una representacin grfica de los flujos de datos en un sistema de informacin. Es capaz de representar flujos de datos entrantes y salientes y datos almacenados. El DFD no menciona nada sobre la manera en que los datos floyen por el sistema.
Hay una gran diferencia entre el DFD y el Diagrama de flujo. El segundo representa el flujo de control en mdulos de programacin. Y el primero representa el flujo de informacin en el sistema en varios niveles. El DFD no contiene ningn elemento de control o de secuencia.
Tipos de DFD
Los Diagramas de flujo de datos son o fsicos o lgicos
DFD lgico - Este tipo de DFD se concentra en el proceso y en el flujo de datos del sistema. Por ejemplo en los sistemas de software de Banking, se centar en cmo se mueven los datos entre distintas entidades.
DFD fsico - Este tipo de DFD muestra cmo se implementa el flujo de datos en el sistema. Es ms especfico y cercano a la implementacin.
Componentes del DFD
El DFD puede representar el origen, el destino, el almacenaje y el flujo de datos usando los siguientes componentes-

Snippet - Son el origen y destino de la informacin de datos. Se representan con rectngulos y sus respectivos nombres.
Proceso - Actividades y acciones sobre los datos son representadas con un crculo o con rectngulos redondeados.
Almacenamiento de datos - Hay dos tipos de almacenamiento de datos - puede representarse con un rectngulo sin sus lados cortos o con uno abierto por un lado, es decir con un lado menos.
Flujo de datos - El movimiento de los datos se muestra a travs de flechas puntiagudas. El movimiento se muestra desde la base de la flecha que representa el origen y va hacia la cabeza de la flecha que representa su destino.
Niveles de DFD
Nivel 0 - El mayor nivel de abstraccin del DFD se conoce como Nivel 0 DFD, el cual representa la totalidad de informacin del sistema en un diagrama ocultando todos los detalles subyacentes. Los Niveles 0 de DFD son tambin conocidos como nivel de contexto de DFD.
Nivel 1 - El nivel 0 DFD se desglosa en un Nivel 1 DFD ms especfico. El Nivel 1 DFD representa los mdulos bsicos del sistema as como el flujo de informacin entre los distintos mdulos. El Nivel 1 DFD tambin alude a los procesos bsicos y a las fuentes de informacin.
-
Nivel 2 - En este nivel el DFD muestra cmo fluyen los datos en los mdulos mencionados en el Nivel 1.
El mayor nivel de DFD se puede transformar en niveles especficos de DFD ms bajos pero con un entendimiento ms preciso, a menos que el deaseado nivel de especificacin se consiga.


Esquema grfico
Un Esquema grfico es un esquema derivado del Diagrama de flujo de datos. Representa el sistema con mucho ms detalles que el DFD. Desglosa la totalidad del sistema en mdulos funcionales ms bajos, describe funciones y sub-funciones de cada mdulo del sistema de una forma ms exhaustiva y detallada que el DFD.
El esquema grfico representa la estructura jerrquica de los mdulos. En cada capa se lleva a cabo una tasca especfica.
A continuacin se exponen los smbolos usados para formar esquemas grficos -
-
Mdulo - Puede representar proceso, subrutina o tarea. El mdulo de control se divide en ms de un sub-mdulo. Los mdulos de la biblioteca son reutilizables y no comparables con ningn mdulo.
-
Condicin - Se representa con un pequeo diamante en la base del mdulo. Muestra que el mdulo de control puede seleccionar cualquiera de las subrutinas en base a algunas condiciones.
-
Salto - Se trata de una flecha apuntando dentro del mdulo para mostrar que el control saltar hacia el centro del sub-mdulo.
-
Curva - Un flecha curvada representa que hay una curva en el mdulo. Todos los sub-mdulos cubiertos por una curva repiten la ejecucin del mdulo.
-
Flujo de datos - Es representado con una flecha sealando un crculo vaco.
-
Flujo de control - Es representado con una flecha sealando un crculo relleno con color o diseos.
Diagrama HIPO
El Diagrama HIPO (Hierarchical Input Process Output) es una combinacin de dos mtodos organizados para analizar el sistema y proveer tcnicas de documentacin. El modelo HIPO fue desarrolado por la empresa IBM en el ao 1970.
El Diagrama HIPO representa la jerarqua de los mdulos en el sistema de Software. Los analistas de Software usan el Diagrama HIPO para obtener una visin en profundidad de las funciones del sistema. Descompone las funciones en sub funciones de manera jerrquica. Representa las funciones que ha hecho el sistema.
Los Diagramas HIPO son buenos para propsitos relacionados con la documentacin. Su representacin grfica facilita a diseadores y Directivos a entender de manera visual la estructura del sistema.

En contraste con el Diagrama IPO (Input Process Output), que representa el flujo de control y datos que se da en un mdulo, el HIPO no aporta informacin sobre el flujo de datos ni del flujo de control.

Ejemplo
La dos partes de un Diagrama HIPO, la presentacin jerrquica y el esquema IPO, son usadas para estructurar el diseo del programa de Software as como de su documentacin.
'Structured English'
La mayor parte de los programadores no tienen un conocimiento total en lo que se refiere al software y solo confan en las instrucciones a seguir dictadas por sus jefes. Es responsabilidad de los altos Directivos de Software de proveeer informacin exhaustiva a los programadores para poder desarrolar cdigos de forma rpida y acurada.
Otro tipo de metodologas que usan grficos o diagramas, a veces pueden ser interpretadas de distinta forma por diferentes personas.
Por eso, tanto analistas como diseadores de software intervienen en la problemtica con herramientas como 'Structured English'. Esto es bsicamente la descrpcin de lo que se requiere para el cdigo y cmo decodificarlo. 'Structured English' ayuda al programador a escribir cdigos sin errores.
Otro tipo de metodologas que usan grficos o diagramas, a veces pueden ser interpretadas de distinta forma por diferentes personas. En este tipo de casos, tanto 'Structured English' como 'Pseudo-Code' intentan resolver esta falta de entendimiento.
Structured English usa palabras normales en ingls en paradigmas de programacin estructurada.No es el cdigo ms reciente pero es un tipo de descripcion que se requiere para codificar y saber cmo hacerlo. Las siguientes son algunas muestras de programacin estructurada
IF-THEN-ELSE, DO-WHILE-UNTIL
Los analistas de software usan el mismo nombre para la variable y los datos, los cuales se almacenan en un Diccionario de Datos, haciendo ms simple la escritura y el entendimiento de cdigos.
Ejemplo
Cojamos el ejemplo de una autentificacin de un cliente en el marco de una compra de producto online. El procedimiento para autentificar al cliente se puede escribir en Structured English como:
Enter Customer_Name SEEK Customer_Name in Customer_Name_DB file IF Customer_Name found THEN Call procedure USER_PASSWORD_AUTHENTICATE() ELSE PRINT error message Call procedure NEW_CUSTOMER_REQUEST() ENDIF
El tipo de lenguaje usado en ingls de una manera estructurada es como el ingls hablado en el da a da de forma oral. Este tipo de lenguaje no se puede implementar directamente como un lenguaje software. Structured English es independiente del lenguaje de programacin.
Pseudo-Cdigo
El Pseudo-Cdigo se escribe de manera ms cercana al lenguaje de programacin. Se puede considerar como un lenguaje de programacin popular, lleno de comentarios y de descripciones.
El Pseudo-Cdigo ignora declaraciones variables pero se escriben usando construcciones reales de lenguage de programacin, como el caso de C, Fortran, Pascal etc.
El Pseudo-Cdigo contiene ms detalles de programacin que Structured English. Nos provee con una metodologa para llevar a cabo la tarea, como si el ordenador estuviera ejecutando el cdigo.
Ejemplo
Programa para imprimir Fibonacci a nmeros n.
void function Fibonacci Get value of n; Set value of a to 1; Set value of b to 1; Initialize I to 0 for (i=0; i< n; i++) { if a greater than b { Increase b by a; Print b; } else if b greater than a { increase a by b; print a; } }
Tablas de decisin
Una tabla de decisin representa las condiciones y las respectivas para dirigirlas, en un formato tabular estructurado.
Es una poderosa herramienta para eliminar fallos y prevenir errores. Ayuda a agrupar informacin similar en la misma tabla y despus combinando tablas obtiene convenientes y fciles tomas de decisiones.
Creando Tablas de decisin
Para crear Tablas de decisin, el desarrollador de software debe seguir 4 pasos bsicos:
Identificar todas las condiciones possibles para ser direccionadas
Determinar las acciones para todas las condiciones identificadas
Crear el mximo nmero possible de normas
Definir acciones a realizar para cada norma
Las Tablas de decisin deben ser verificadas por los consumidores finales para poder ser posteriormente simplificadas eliminando acciones y normas duplicadas.
Ejemplo
Veamos un simple ejemplo de un problema que nos ocurre da a da con nuestra conexin de Internet. Empezamos identificando todos los problemas que pueden surgir mientras iniciamos Internet y sus posibles soluciones.
Haremos un listado de todos los posibles problemas en una columna denominada 'condiciones' y otra sobre acciones esperadas en una columna llamada 'acciones'.
Condiciones/Acciones | Normas | ||||||||
---|---|---|---|---|---|---|---|---|---|
Condiciones | Se muestra conectado | N | N | N | N | Y | Y | Y | Y |
Los recursos de red funcionan | N | N | Y | Y | N | N | Y | Y | |
Abre el sitio Web | Y | N | Y | N | Y | N | Y | N | |
Acciones | Comprueba el cable de conexin a Internet | X | |||||||
Examina el router | X | X | X | X | |||||
Reinicia el navegador Web | X | ||||||||
Contacta con el Servicio de atencin al cliente | X | X | X | X | X | X | |||
No realice ninguna accin /td> |
Modelo entidad-relacin
El Modelo o diagrama entidad-relacin (a veces denominado por sus siglas en ingls, E-R "Entity relationship", o del espaol DER "Diagrama de Entidad Relacin") es un tipo de modelo de base de datos basado en la nocin de entidaddes mundiales reales y su relacin entre ellas. Podemos trazar un mapa del escenario mundial real en en el modelo ER de base de datos. Este modelo crea un set de entidades con sus respectivos atributos, y un set de limitaciones y su relacin entre ellas.
El modelo ER se usa frecuentemente para el diseo conceptual de Bases de datos. El modelo ER se puede representar de la siguienta manera :

-
Entidad - Una entidad en modelo ER Model es un ser del mundo real, que tiene algunas propiedades llamadas atributos. Cada atributo se define por sus correspondientes sets de valores llamadosdominio.
Por ejemplo, considere una Base de datos de una escuela. En este caso, un estudiante seria una entidad. El estudiante tiene varios atributos como nombre, identidad, edad, clase, etc.
-
Relacin - La asociacin lgica entre entidades se denominarelacin. La relaciones son esquematizadas con las entidades de varias maneras. Esquematizar la cardinalidad define el nmero de asociaciones entre dos entidades.
Esquematizar cardinalidad:
- uno a uno
- uno a varios
- varios a uno
- varios a varios
Diccionario de datos
El Diccionario de datos es la coleccin central de informacin sobre los datos. Almacena el significado y el origen de los datos, su relacin con otros datos, su formato de uso etc. El diccionario de datos tiene rigurosas definiciones de todos los nombres para facilitar al Usuario y a los diseadores de software.
El Diccionario de datos es frecuentemente mencionado como Repositorio Metadato (son datos que describen otros datos). Fue creado junto con el modelo de programa software DFD (Diagrama de flujo de datos) y se espera que se actualice cuando el DFD se cambie o sea actualizado.
Requisitos del Diccionario de datos
Los datos son mencionados a travs del Diccionario de datos mientras se disea e implementa el Software. El Diccionario de datos elimina posibles ambigedades. Ayuda a mantenenr sincronizado el trabajo de los programadores y de los diseadores mientras se usa el mismo objeto de referencia en todo el programa.
Los Diccionarios de datos aportan una va de documentacin para el completo sistema de Base de datos en un lugar. La validacin del DFD se lleva a cabo usando Diccionarios de datos.
Contenidos
El diccionario de datos debe contener informacin sobre los siguientes
- Flujo de datos
- Estructura de los datos
- Elementos de los datos
- Almacenajes de datos
- Procesamiento de datos
El flujo de datos se describe por su significado en el DFD como se ha mencionado anteriormente, y representado de manera algebraica.
= | Compuesto por |
---|---|
{} | Repeticin |
() | Opcional |
+ | y |
[ / ] | O |
Ejemplo
Domicilio = Nmero + (calle / barrio) + Ciudad + estado
Identificacin del Curso = Nmero del curso + Nombre del curso + Nivel del curso + Grado del curso
Elementos de los datos
Los elementos que conforman los datos son el nombre y la descripcin de los mismos y de los elementos de control, el almacenaje interno y externo de datos, etc. con los siguientes detalles:
- Nombre principal
- Nombre secundario (Alias)
- Caso de uso (Cmo y donde usar)
- Descripcin del contenido (anotacin, etc. )
- Informacin adicional (valores actuales, lmites, etc.)
Almacenamiento de datos
Almacena la informacin desde donde entran y salen los datos al y del sistema. El almacenamiento de datos puede incluir -
-
Archivos
- Internos al software.
- Externos al software pero en la misma mquina.
- Externos al software y al sistema, ubicados en una mquina distinta.
-
Tablas
- Acuerdo sobre nomenclatura
- Propiedad de Indexacin
Procesamiento de datos
Hay dos tipos de procesamiento de datos:
- Lgico: Tal y como el usuario lo ve
- Fsico: Tal y como el software lo ve