Páginas

domingo, 23 de mayo de 2010

REFINAMIENTO DE SOFTWARE


Los conceptos del diseño de software son el marco de referencia necesario para poder entender lo que quiere decir el diseño.
Los conceptos del diseño son:

Abstracción
Refinamiento
Modularidad
Arquitectura
Jerarquía de control
División estructural
Estructura de datos
Procedimientos de software

Abstracción: esta es una característica de nuestra mente por medio de la cual nos podemos concentrar solamente en ciertos aspectos de interés, despreciando aquellos puntos que se consideren irrelevantes, por ejemplo: al ver una imagen nuestra vista capta toda la imagen pero nuestra mente desecha todo aquello que no sea importante en ese momento, de esa manera nuestro cerebro se deshace de grandes volumenes de información que no es requerida.
Al diseñar un software nos abocaremos a aquellos aspectos que se consideren importantes para que se cumplan los requerimientos que fueron establecidos en el analisis.

Refinamiento: El diseño como tal es una actividad en la que se detalla de forma mas concreta lo expresado en el analisis y mas aun cada etapa del diseño es en si una especificacion mas detallada de una etapa anterior.

Modularidad: La modularidad se refiere a la forma que tenemos de construir el software, que es el dividirlo en partes o funciones que nombramos para que una vez reunidas formen el software completo. Las ventaja principal de este metodo es el aislamiento de problemas, que en lugar de afectar a todo el software solo afectan al modulo en donde se originan.

Arquitectura del software: Relacionada con el concepto anterior, la arquitectura del software es la estructura jerarquica a traves de la cual se relacionan los modulos del software.

Jerarquia de control: Similar al anterior este concepto trata de explicar la forma en que se relacionan los modulos del software a traves de una jerarquia que puede ser analizada en profundidad y anchura, pero lo que la difrencia del concepto anterior es que trata de mostrar en un sentido mas detallado la conexion que existe entre distintos modulos.

Division estructural: Al analizar la arquitecura de el software podemos ver que esta puede ser divida en forma horizontal y vertical. Al dividirla de forma vertical podemos ver que cada sección representara una función del software y al dividirla de forma horizontal podremos observar que cada sección nos muestra un nivel de trabajo de el software, mostrando en la parte superior los modulos que toman decisiones y en la parte inferior los modulos que realizan transacciones.

Estructura de datos: Las estructuras de datos nos muestran la manera logica y congruente como se relacionan los datos. La forma como se organiza la información que sera almacenada y procesada por el software influye en la arquitectura del mismo. En programación las estructuras de datos representan agrupaciones complejas de datos simples, como lo son las pilas, las colas, los arboles y las listas; pero por sobre todas estas la forma de organización de datos mas usadas por los sistemas son las bases de datos, aunque no sean consideradas en si mismo una estructura de datos.

Procedimiento de software: Este proceso se refiere a la descripción detallada de pasos que corresponde a las funciones de cada uno de los modulos del software, pudiendo ser representado a traves de algoritmos y diagramas de flujo.