Sei sulla pagina 1di 20

Ingeniería de

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 ●

Ruiz Sánchez David


Salazar Serrano Edgar
1

El alumno definirá la arquitectura,


Objetivo componentes, interfaces, y otras
características de un sistema como
resultado de los procesos.
Diseño del software
“La esencia del diseño del software es la
toma de decisiones sobre la organización
lógica del software.”
- Ian F. Sommerville

●●●
3.1 Fundamentos para el diseño de software
“La importancia del diseño del software se resume en una palabra: calidad.”

El diseño de software es una actividad


creativa donde se identifican los
componentes del software y sus
relaciones, con base en los
requerimientos de un cliente.
Es la actividad del ciclo de
Diseñar es el esfuerzo
para definir la arquitectura,
vida del software en la cual Describe:
se analizan los requisitos
componentes, interfaces
para producir una • La arquitectura
y otras características de
descripción de la estructura
• las interfaces
un sistema o interna del software que
componente [IEEE sirva de base para su
• Los componentes
610-1990]. construcción.

“¿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

Diseño arquitectural Diseño detallado


Describe la estructura Describe cada
y organización de alto componente y su
nivel, es decir, los comportamiento
subsistemas o específico, de forma
componentes y sus que puede procederse
relaciones. a su construcción
3.2 Conceptos básicos para el diseño de software

concurrencia Iteraciones Eventos

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.”

Excepciones Prevención de fallos Tolerancia a fallos


Es la indicación de un problema Se usan métodos para impedir La capacidad de un sistema para
que ocurre durante la ejecución que se presenten fallos en los continuar funcionando
de un programa. Sin embargo, se componentes. Los métodos normalmente después de
refiere a que este problema pueden ser: de diseño, de test y producirse un fallo. En general,
ocurre con poca frecuencia, por de validación. cuando ocurre un fallo es
lo que se produce un error necesaria la reconfiguración del
sistema

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.”

Diseño arquitectónico Arquitectura en capas Sistemas distribuidos

La funcionalidad del sistema está


El diseño arquitectónico representa la • Cliente/servidor: Con esta arquitectura es posible diseñar
organizada en capas separadas, y cada una
estructura de los datos y de los de muchos modos un sistema de software basado en red.
se apoya sólo en las facilidades y los
componentes del programa que se • Multicapa: Es un conjunto ordenada de subsistemas y cada
requieren para construir un sistema. servicios ofrecidos por la capa uno esta construido en terminos de lo que tiene por
inmediatamente debajo de ella. debajo.
Este enfoque en capas soporta el
• Proxy: Es un intermediario que puede interceptar una
desarrollo incremental de sistemas.
petición y hacer algo con ella antes y después de ejecutar la
operación deseada por el usuario
Sistemas interactivos
“una arquitectura de software sirve en primer lugar como un plan de diseño para la negociación de requerimientos de sistema y, en segundo lugar, como
un medio para establecer discusiones con clientes, desarrolladores y administradores.”

Modelo Vista-Controlador presentación- abstracción-control


Separa presentación e interacción de los datos del Abstracción: es el que recupera y procesa los datos y su
sistema. El sistema se estructura en tres componentes funcionalidad.
lógicos Presentación: presenta la información y/o la lógica de
El componente Modelo maneja los datos del sistema y las operaciones en un formato previamente asignado.
operaciones. Control: se encarga de asuntos como el flujo de control y de la
El componente Vista define y gestiona cómo se presentan comunicación entre los otros dos componentes.
los datos al usuario.
El componente Controlador dirige la interacción del
usuario y pasa estas interacciones a Vista y Modelo
Sistemas adaptables
Son aquellos que evolucionan con el paso del tiempo, adquiriendo nuevas funcionalidades y servicios que existen en el momento o son
creados.

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.

Atributos de calidad analisis de calidad mediciones


Son caracteristicas no funcionales que Es el proceso que permite verificar y revelar la Proporcionan una indicación de como se ajusta
calidad de un producto de software. el software a los requerimientos implicitos y
se consideran deseables en un
Es utilizado para identificar posibles fallos de explicitos del cliente.
sistema de software implementación, calidad o usabilidad.
3.6 Notación para el diseño del software

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 estructurado es la conceptualización de un problema en varios elementos organizados de solución. Está


básicamente centrado en el diseño de soluciones. El beneficio del diseño estructurado es que da un mejor entendimiento
sobre cómo se resuelve el problema.
El Diseño orientado a objetos es la disciplina que define los objetos y sus interacciones para resolver un problema de
negocio que fue identificado y documentado durante el análisis orientado a objetos
El Diseño centrado en estructuras de datos son diaamas en forma de grafo dirigidos que representan el flujo de datos y las
transformaciones que se aplican sobre ellos al moverse desde la entrada hasta la salida del sistema

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

Potrebbero piacerti anche