Tema3 IngDeSoftwate
Tema3 IngDeSoftwate
Tema3 IngDeSoftwate
s o f t w a r e
3. Diseño de software
● R e p a s o d e l t e m a ●
●●●
3.1 Fundamentos para el diseño de software
“La importancia del diseño del software se resume en una palabra: calidad.”
“¿Qué es el diseño? Es donde se está con un pie en dos mundos —el de la tecnología y el de las personas y los propósitos humanos— que tratan de unificarse...”
- Mitch Kapor
Tipos de diseño de software
El estándar ISO 12207 identifica dos tipos de Diseño Software
Cómo repartir el software en procesos, tareas Modelo de desarrollo, que no es más que un que es?
o hilos de ejecución y abordar los problemas conjunto de tareas agrupadas en pequeñas
de eficiencia, sincronización y planificación etapas repetitivas (iteraciones).
asociados.
Componentes
Un Componente de Software es
una unidad independiente con
interfaces y dependencias bien
definidas, que pueda ser
desarrollada y desplegada de
forma independiente.
• el diseño basado en
componentes aborda problemas
para proveer, desarrollar e
integrar componentes.
• Su finalidad es mejorar la
reutilización.
Manejo de errores,excepciones y tolerancia a fallas
“Los clientes olvidarán pronto que entregaste un producto de alta calidad, pero nunca olvidarán los problemas que les causó un producto de mala calidad.
El software se los recuerda cada día.”
Un fallo es cualquier defecto, físico o lógico, en cualquier componente, hardwareo software, de un sistema.
Un error es la manifestación o el resultado de un fallo.
3.3 Estructura y arquitectura de software
“Históricamente, las arquitecturas han estado implícitas: accidentes de implementación o sistemas heredados del pasado.”
Ventajas
Reflexión
Micronúcleos
Reducción de la complejidad
Provee un mecanismo de del sistema.
estructura de cambio y el Descentralizacion de los
Se aplica a sistemas que
comportamiento en los
son susceptibles a fallos.
Soportan nuevas versiones de
sistemas de software
sistemas operativos.
cambios con el paso del Facilidad para controlar
Soportan servicios de terceros.
tiempo depuradores de dispositivos.
Adaptación a nuevos componentes y
hardware.
Estilos arquitectónicos
“En el fondo de la mente de todo artista hay un patrón o tipo de arquitectura.”
-G. K. Chesterton
Patrón arquitectónico
Estilos
Impone la transformación del diseño de
• Arquitecturas centradas en datos
una arquitectura.
• Arquitecturas de flujo de datos
Propone una solucion arquitectónica que
• Arquitecturas de llamar y regresar.
sirve como base para el diseño de la
• Arquitecturas orientadas a objetos.
arquitectura
• Arquitecturas en capas.
estilos arquitectónicos
Un estilo arquitectónico es
una transformación que se Macro-arquitecturas
impone al diseño de todo el
sistema. Es aquel sistema que se
compone de diversos
subsistemas basados en el
modelo de micro núcleos.
Diseño de patrones
“ El patrón es una descripción del problema y la esencia de su solución, de modo que la solución puede reutilizarse en diferentes configuraciones”
creación de patrones
• fabrica: consiste en utilizar una clase constructora abstracta con
unos cuantos métodos definidos y otros abstractos
• singleton: sólo se puede tener una única instancia para toda la patrones de comportamiento
aplicación
En este grupo se encuentran la mayoría de los
• prototipo: tiene como finalidad crear nuevos objetos clonando
patrones, y se usan para gestionar algoritmos,
una instancia creada previamente.
relaciones y responsabilidades entre objetos.
patrones de estructura
Son patrones que nos facilitan la modelización
Frameworks
de nuestros software especificando la forma
Conjunto de clases concretas y abstractas
en la que unas clases se relacionan con otras.
reutilizables que implementan características
comunes a muchas aplicaciones en un dominio.Las
• adapter
clases en el framework de aplicación se
• bridge
especializan e instancian para crear una
• decorator
aplicación.
3.5Análisis y evaluacion con calidad en el diseño en el software
La gestión de calidad del software se ocupa de garantizar que el software tenga un número menor de defectos y que alcance los estándares requeridos de mantenibilidad, fiabilidad,
portabilidad, etcétera. Incluye definir estándares para procesos y productos, y establecer procesos para comprobar que se siguieron dichos estándares.
Las descripciones estructurales sirven para describir los diferentes tipos y relaciones estáticas existentes entre los
diferentes objetos de un sistema
Las descripciones de comportamiento buscan modelar el ambiente interno del sistema concentrandose en los procesos
que se pretenden sistematizar
3.7 Métodos y estrategias para el diseño de software
“Es mejor diseñar la experiencia del usuario que corregirla.”
Jon Meads
El diseño orientado a componentes se centra en la representación de estructuras de datos a las que se accede directamente
a través de uno o más componentes del software.
El diseño en el nivel de componente transforma los elementos estructurales de la arquitectura del software en una
descripción de sus componentes en cuanto a procedimiento.
3.8 Herramientas para el diseño de software
“Success Always Belongs For Those Who Are Prepared”
Herramientas
Referencias