Conceptos De Diseño Software
Conceptos De Diseño Software
imaginacion |
Conceptos
de diseño
El diseño de software agrupa el conjunto de
principios conceptos y prácticas que llevan al desarrollo de un sistema o
producto de alta calidad, el objeto del diseño es producir un modelo o representación que tenga resistencia
funcionalidad y belleza
el modelo del diseño proporciona detalles
sobre la arquitectura del software, estructuras de datos ,interfaces y
componentes que se necesitan para
implementar el sistema también el diseño permite modelar el sistema o producto
que se va a construir por último el
diseño es el lugar en el que se establece la calidad del software
Diseño en
el contexto de la ingeniería de software
el diseño de software comienza una vez que
se han analizado y modelado los
requerimientos ,el diseño de software siempre
debe comenzar con el análisis de
los datos pues son el fundamento de todos los demás
elementos del diseño , el diseño
de la arquitectura define la relación
entre los elementos principales de la arquitectura de software , los estilos y
patrones de diseño de la arquitectura que pueden usarse para alcanzar los
requerimientos definidos por el sistema
y las restricciones que afectan la forma
en que se implementa la
arquitectura
El diseño de la interfaz describe la forma en la que el software se comunica con los sistemas
que interactúan con él y con
los humanos que lo utilizan .una interfaz implica un flujo de información (por ejemplo,
datos o control) y un tipo específico de comportamiento. Entonces los modelos
de escenario de uso y de comportamiento dan mucha de la información requerida para diseñar la interfaz
La importancia del diseño del software se
resume en la palabra: calidad .el diseño
es el sitio en el que se introduce calidad e la ingeniería de software .da
representaciones del software que pueden evaluarse en su calidad
El proceso
de diseño
El diseño de software es un proceso iterativo
por medio del cual se traducen los
requerimientos en un “plano” para construir el software. El diseño se
representa en un nivel alto de abstracción. En el que se rastrea
directamente el adjetivo especifico del
sistema y los requerimientos más
detallados de datos. Funcionamiento y
comportamiento
Lineamientos
y atributos de la calidad del software
El proceso de diseño se evalúa la calidad
de este de acuerdo con la serie de revisiones técnicas las cuales se sugieren
tres características que funcionan como
guía para evaluar un buen diseño
·
Se deben implementar todos los
requerimientos explícitos contenidos en el modelo de requerimientos y dar
cabida a todos los requerimientos
implícitos que desean los practicantes
·
Debe ser una guía legible y
comprensible para quienes generan el código y para los que lo prueban y dan el
apoyo posterior
·
Debe proporciona el panorama completo del software y
abordar los dominios de los datos, las
funciones y el comportamientos desde el punto de vista de la implementación
Lineamientos
de la calidad
Evaluar
la calidad del diseño el equipo de software debe establecer los
criterios técnicos de un buen diseño y se ha de considerar los siguientes lineamientos para un buen diseño
·
Debe tener una arquitectura que
se haya creado con el empleo de estilos y patrones arquitectónicos reconocibles
que esté compuesta de componentes con buenas características de diseño y se
implementen de forma evolutiva de modo que
faciliten la implementación y las pruebas
·
Debe ser modular es decir el
software debe estar dividido de manera
lógica en elementos y subsistemas
·
Debe contener distintas
representaciones de datos , arquitectura , interfaces y componentes
·
Debe conducir a estructuras de
datos apropiadas para las clases que se van a implementar y que surjan de patrones reconocibles de datos
·
Debe llevar componentes que
tengan características funcionales independientes
·
Debe conducir a interfaces que reduzcan
la complejidad de las conexiones entre los componentes y el ambientes extremo
·
Debe obtenerse con el empleo de
un método repetible motivado por la información obtenida durante el análisis de
los requerimientos del software
·
Debe representarse con una
notación que comunique con eficacia su
significado
Evaluación
de la calidad del diseño .la revisión técnica
el diseño es importante porque permite que un equipo de software evalué la calidad,
durante el diseño la calidad se evalúa por medio de la realización de una serie
de revisiones técnicas ,una revisión técnica es una reunión celebrada por
miembros del equipo de software que en función del alcance de la información del diseño que se revisara
cada persona tiene un papel importante :
el líder de la revisión planea la reunión ,establece la agenda y coordina la
junta :el secretario toma notas para que no se pierda nada ; el productor es la
persona cuyo trabajo está en constante revisión. Antes de la revisión se
entrega a cada persona del equipo una
copia del producto del trabajo de diseño y se le pide que la lea y que busque
errores .omisiones o ambigüedades el adjetivo en si al comenzar las reuniones
es detectar todos los errores y problemas del producto de modo que puedan
corregirse antes de que comience la implementación del mismo
Atributos
de calidad
hewlett-packard desarrollo un conjunto de
atributos de la calidad del software a los
que se dio el acrónimo FURPS:
FUNCIONALIDAD.USABILIDAD.CONFIABILIDAD.RENDIMIENTO Y MANTENIBILIDAD. Los
atributos de calidad FURPS representan el adjetivo de todo diseño de software
·
La funcionalidad se califica de acuerdo
con el conjunto de características y capacidades del programa , la generalidad
de las funciones que se entregan y la seguridad general del sistema
·
La usabilidad se evalúa tomando en
cuenta factores humanos ,la estética general ,la consistencia y la documentación
·
La confiabilidad se evalúa con la
medición de la frecuencia y gravedad de las fallas, la exactitud de los resultados que salen, el tiempo medio
para que ocurra una falla ,la capacidad de recuperación ante esta y lo predecible del programa
·
El rendimiento se mide con base en la
velocidad de procesamiento, el tiempo de respuesta, el uso de recursos, el
conjunto y la eficiencia
·
La mantebilidad combina la capacidad del
programa para ser ampliable ,adaptable y servicial
La evolución del diseño del software
la evolución del
software que ya lleva casi seis décadas muestra que los
primeros trabajos de diseño trabajaban con criterios para el desarrollo
de programas modulares y en métodos para mejorar estructuras de software, los
aspectos de procedimiento del diseño evolucionaron hacia una filosofía llamada
programación estructurada .los enfoque nuevos propusieron en un enfoque
orientado a objeto para diseñar derivaciones .
En la industria del software se aplican varios
métodos de diseño no obstante todos estos métodos tienen algunas
características en común
1.
Un mecanismo para traducir el
modelo de requerimientos en una representación del diseño
2.
Una notación para representar
los componentes funcionales y sus interfaces
3.
Una heurística para mejorar y
hacer particiones
4.
Lineamientos para evaluar la calidad
Conjunto de
tareas generales para el diseño
1. Estudiar el modelo de dominio de la información y diseñar las estructuras de datos apropiadas para los objetos de datos y sus atributos
2. Seleccionar un estilo de arquitectura que sea adecuada para el software con el uso del modelo de análisis
3. Hacer partición del modelo de análisis en subsistemas de diseño y asignar estos dentro de la arquitectura
4. Crear un conjunto de clases de diseños o componentes
5. Diseñar cualquier interfaces requerida con sistemas o dispositivos externos
6. Diseñar la interfaz de usuario
7. Efectuar el diseño en el nivel de componente
8. Desarrollar un nivel de despliegue
ideas originales |
Conceptos de diseño
El principio de la sabiduría para ingeniero
de software es reconocer la diferencia que hay entre hacer que un programa funcione y lograr que lo hagan bien los
conceptos fundamentales del diseño del software provee la estructura necesaria
para hacerlo bien
Abstracción
Cuando se desarrollan niveles de abstracción
distintos, se trabaja para crear abstracciones tanto de procedimiento como de
datos .una abstracción de procedimiento es una secuencia de instrucciones que
tienen una función específica y limitada
Arquitectura
La arquitectura del software alude a la
estructura general de este y a las formas
en las que esta la integridad conceptual a un sistema, la arquitectura
es la estructura de organización de los componentes de un programa en módulos
dadas por la siguientes propiedades
·
Propiedades estructurales
·
Propiedades extratucturales
·
Propiedades de familias de sistemas relacionados
Dada la especificación de estas propiedades,
el diseño arquitectónico se representa con el uso de uno más
de varios modelos diferentes los
modelos estructurales representan la arquitectura como un conjunto de organizado de componentes
del programa
Los modelos de marco aumentan el nivel de abstracción
del diseño, al tratar de identificar patrones de diseño arquitectónico
repetibles que se encuentran en tipos similares de aplicaciones
Los modelos dinámicos abordan los aspectos
estructurales del programa e indican como cambia la estructura o la
configuración del sistema en función de
eventos externos
Los modelos del proceso se centran en el
diseño del negocio o procesos técnico al que debe dar acomodo el sistema
Los modelos
funcionales se usan para representar la jerarquía funcional de un
sistema
Patrones
Un patrón de diseño describe una estructura
de diseño que resuelve un problema particular del diseño dentro de un contexto específico y
entre fuerzas que
afectan la manera en la que se
aplica y en la que se utiliza dicho patrón
El objetivo de cada patrón de diseño es proporcionar una
descripción que permita a un diseñador determinar
1.
Si el patrón es aplicable al
trabajo en cuestión
2.
Si puede volverse a usar (con lo que se ahorra
tiempo de diseño)
3.
Si sirve como
guía para desarrollar un patrón
distinto en funciones y estructura
División de
problemas
La división de problemas es un concepto de
diseño que sugiere que cualquier problema complejo puede manejarse
con más facilidad si se subdivide el
problema a lo que también hace referencia a la modularidad
lo que puede manejarse con más facilidad
en problemas mucho más pequeños o subdivididos, un problema es una característica o comportamiento que se
especifica en el modelo de los requerimientos para el software, al separar un
problema en sus piezas más pequeñas y por ello más manejables y con mayor
facilidad de solución se requiere menos esfuerzo y tiempo para resolverlo
Modularidad
La modularidad es la manifestación más
común de la división de problemas. El
software se divide en componentes con
nombres distintos y abordables por separado en ocasiones llamados módulos que
se integran para satisfacer los requerimientos del problema
Ocultamiento
de la información
El objetivo de ocultar información es
esconder los detalles de las estructuras
de datos y el procesamiento tras una interfaz de modulo
Independencia
funcional
La independencia funcional se logra
desarrollando módulos, de manera que cada módulo resuelva un subconjunto
especifico de requerimientos y tenga una interfaz sencilla cuando se vea desde
otras partes de la estructura del programa.
Con módulos independientes es más fácil de
desarrollar porque su función se subdivide y las interfaces se simplifican, los
módulos independientes son más fáciles de mantener debido a que los efectos
secundarios causados por el diseño o par la modificación del código son más
limitados, se reduce la propagación del error y es posible obtener módulos
reutilizables.
La independencia se evalúa con el uso de
dos criterios cualitativos, la cohesión y el acoplamiento. La cohesión es un
indicador de la fortaleza relativa funcional de un módulo. El acoplamiento lo
es de la independencia relativa entre módulos.
Un módulo cohesivo debe hacer solo una cosa
aunque siempre debe tratarse de lograr mucha cohesión, con frecuencia es
necesario y aconsejable hacer que un componente de software realice funciones múltiples.
El acoplamiento es una indicación de la
interacción entre módulos en una estructura de software y depende de la
complejidad de la interfaz entre módulos del grado en el que se entra o se hace
referencia a un módulo y de que datos pasan a través de la interfaz. La
conectividad simple entre módulos da como resultado un software que es más
fácil de entender y menos propenso al “efecto de oleaje” ocasionado cuando
ocurren errores en un sitio y se
propagan por todo el sistema.
Buena investigación,me fue de mucha ayuda gracias. Éxitos y que Dios te bendiga.
ResponderEliminar¿Referencia teorica?
ResponderEliminar