Diseño de software
-El
diseño es el primer paso de la fase de desarrollo de cualquier producto o
sistema de ingeniería.
-El diseño de software es la actividad de ciclo
de vida de ingeniería de software en la que los requerimientos de software son
analizados para causar una descripción de la estructura interna del software
que servirá como base para su construcción. Más precisamente, un diseño de
software (el resultado) debe describir la arquitectura de software - es decir
cómo el software está en estado de descomposición y organizado en los
componentes - y las interfaces entre esos componentes. También debe describir
los componentes en un nivel del detalle que permiten su construcción.
Conceptos Básicos del Diseño
v -Proceso de aplicar distintas
técnicas y principios con el propósito de definir un dispositivo, proceso o
sistema con los suficientes detalles como para permitir su realización física
v -El diseño de software, al igual
que los métodos de diseño de todas las ingenierías, cambian continuamente al
aparecer nuevos métodos, mejores análisis y ampliar los conocimientos. El
problema es que el diseño de software se encuentra en una etapa relativamente
temprana en su evolución. La idea de realizar diseño de software en lugar de
“programar”, surgió a principios de los años 60, por lo que a las metodologías
de diseño les falta la profundidad y la flexibilidad que tiene el diseño en
otras ingenierías. Pero, ya existen técnicas de diseño de software para poder
evaluar la calidad del software.
v El
diseño del software se encuentra en el núcleo técnico de la ingeniería del
software y se aplica independientemente del modelo de diseño de software que se
utilice. Una vez que se analizan y especifican los requisitos del software, el diseño
del software es la primera de las tres actividades técnicas - diseño,
generación de código y pruebas- que se requieren para construir y verificar el
software.
v Es una descripción de la
estructura del software que se va a implementar, los datos que son parte del
sistema, las interfaces entre los componentes del sistema, y algunas veces, los
algoritmos utilizados.
v Los diseñadores no obtienen
inmediatamente un diseño detallado, sino que lo desarrollan de manera iterativa
a través de diversas versiones.
v El proceso de diseño incluye
agregar formalidad y detalles durante el desarrollo del diseño, y regresar a
los diseños anteriores y corregirlos
v Diseño de datos: transforma el modelo de dominio de la información, creado durante el
análisis, en las estructuras de datos necesarias para implementar el software.
v Diseño arquitectónico: define la relación entre los principales elementos
estructurales del programa.
v Diseño de interfaz: describe cómo se comunica el software consigo mismo, con los sistemas
que operan con él y con los operadores que lo emplean.
v Diseño procedimental: transforma elementos estructurales de la arquitectura del programa en
una descripción procedimental de los componentes de software.
A
continuación, se listan una serie de criterios para determinar la calidad del
software.
1) Un
diseño debe tener una organización jerárquica.
2) Un
diseño debe ser modular, es decir, el software debe estar dividido en elementos
que realicen funciones específicas.
3) Un
diseño debe tener representaciones distintas y separadas de los datos y de los
procedimientos.
4) Un
diseño debe llevar a módulos que exhiban características funcionales
independientes.
5) Un
diseño debe conducir a interfaces que reduzcan la complejidad de las conexiones
entre los módulos y el exterior.
6) Un
diseño debe obtenerse mediante un método que sea reproducible y que esté
dirigido por la información obtenida durante el análisis de requerimientos.
Importancia
del diseño del Software
El diseño de software tiene un papel importante
en el desarrollo de software, ya que permite que ingenieros de software
produzcan modelos distintos que moldean una clase de plano de la solución a ser
implementado. Podemos analizar y valorar a estos modelos para determinar cual
de estos permitirá o no, cumplir con una gama de requerimientos
El diseño
arquitectónico puede representarse al usar uno o más de muchos modelos
diferentes. Los modelos estructurales representan la arquitectura como una
colección organizada de componentes del programa. Los modelos del marco de trabajo repetible incrementan el grado de abstracción del
diseño al intentar identificar marcos de trabajo repetibles del diseño
arquitectónico que se encuentran en tipos de aplicaciones similares.
El diseño
es técnicamente la parte central de la ingeniería del software. Durante el
diseño se desarrollan, revisan y se documentan los refinamientos progresivos de
las estructuras de datos, dela estructura del programa y de los detalles
procedimentales. El diseño da como resultado representaciones cuya calidad
puede ser evaluada.
El diseño
es la única forma mediante la que podemos traducir con precisión los requisitos
del cliente en un producto o sistema acabado. El diseño de software es la base
de todas las partes posteriores del desarrollo y de la fase de prueba
Trazabilidad de los requisitos en
el diseño
La trazabilidad es la
medida en la cual se puede establecer una relación entre dos productos o más
del proceso de desarrollo.
Permite ver donde se originó un requerimiento. En otras
palabras, todos los documentos de requerimientos, documentos de diseño, código
y guiones de prueba deberán apuntar a su fuente de origen.
La trazabilidad
software es una antigua práctica, recomendada para medianos o grandes
desarrollos de software, que trata sobre cómo enlazar o relacionar los
requisitos con otros elementos del ciclo de vida, principalmente, casos de
prueba y código.
Por otro
lado, estando en etapa de implementación y en caso de que haya un cambio en los
requerimientos, la trazabilidad permitirá hacer una evaluación en el diseño y
en la implementación. Si el cambio se da cuando el sistema está implementado,
la trazabilidad permitirá hacer una evaluación de cómo serán afectados los
involucrados.
Atributos de calidad
Son las cualidades o propiedades de calidad que la
aplicación debe satisfacer. La calidad de una aplicación se mide en función de
sus atributos de calidad. Para facilitar
su medición durante la verificación, deben expresarse cuantitativa o cualitativamente.
Entre los atributos de
calidad más relevantes están los siguientes:
Seguridad:
Se refiere a los permisos de acceder a ciertos procesos de la aplicación y para
eso requiere autenticación, autorización y algún nivel de encriptación.
Performance:
Generalmente este atributo se puede medir en unidades de rendimiento de
procesos (Throughput), tiempo de respuesta y retardos.
Modificable:
Se refiere a que tan fácil es modificar la aplicación y con ello cambiar el
comportamiento del software.
Disponibilidad:
Está relacionada con la confiabilidad por ejemplo cuando una aplicación no está
disponible cuando se necesita no cumple con las expectativas ni los
requerimientos funcionales de la misma.
Integración: Está relacionado a como se puede comunicar y trabajar
en conjunto la aplicación nueva a las aplicaciones que ya se tienen oa nuevas
aplicaciones.
Escalabilidad: Como se
comporta la aplicación al momento de aumentar el ambiente de trabajo, por
ejemplo más usuarios más proceso, más carga, etc
Estándares
de Calidad
Son normas y protocolos
internacionales que deben cumplir productos de cualquier indole para su
distribución y consumo por el cliente final.
Los estándares no son más que los
niveles mínimo y máximo deseados, o aceptables de calidad que debe tener el
resultado de una acción, una actividad, un programa, o un servicio. En otras
palabras, el estándar es la norma técnica que se utilizará como parámetro de
evaluación de la calidad.
Una vez programadas las
actividades de solución al problema de gestión, los círculos de calidad deberán
definir los estándares de calidad del resultado, o los resultados esperados.
No hay comentarios:
Publicar un comentario