Está en la página 1de 18

TIPOS DE

DISEÑOS
INTRODUCCIÓN
El diseño en ingeniería de software es un proceso esencial que
implica la planificación y la creación de la estructura y el
comportamiento de un sistema de software. Se centra en cómo se
construirá y funcionará el software antes de que se escriba una sola
línea de código. El diseño adecuado es crucial para desarrollar
aplicaciones de software eficientes, mantenibles y de alta calidad.
DISEÑO ORIENTADO A
OBJETOS
Crea en sí una representación del problema que está en el mundo
real, con la finalidad de hacerlo corresponder con lo que es el
ámbito de la solución, lo que viene a ser el software.
Se diferencia de otros métodos de diseño porque este produce uno
que interconecta objetos de datos y operaciones de procesamiento
para dichos objetos, modularizando en sí tanto la información como
el procesamiento, en lugar de aislarlo
CARACTERÍSTICAS
Clases y objetos: En el diseño orientado a objetos, las clases son plantillas que definen la estructura y el comportamiento de
los objetos. Los objetos son instancias concretas de esas clases.

Encapsulación: es el principio de ocultar los detalles de implementación de una clase y exponer una interfaz pública para
interactuar con ella. Esto permite controlar el acceso a los datos y el comportamiento de un objeto, lo que facilita la
modificación de la implementación sin afectar a otros partes del sistema.
Herencia: es un mecanismo que permite crear una nueva clase basada en una clase existente. La nueva clase hereda
atributos y métodos de la clase base y puede agregar, modificar o extender su comportamiento. Esto fomenta la reutilización
de código y la creación de jerarquías de clases.

Polimorfismo: permite que objetos de diferentes clases se comporten de manera similar a través de una interfaz común.
Esto facilita la escritura de código genérico y flexible que puede trabajar con varios tipos de objetos.

Abstracción: implica la creación de modelos simplificados de objetos del mundo real. Define las características esenciales
de un objeto y omite los detalles innecesarios. La abstracción ayuda a comprender y modelar sistemas complejos de manera
más manejable.
CARACTERÍSTICAS
Modularidad: se refiere a la división de un sistema en módulos o componentes independientes que realizan funciones
específicas. Cada módulo debe ser coherente y tener una interfaz clara con otros módulos. Esto facilita la comprensión y
el mantenimiento del sistema.

Composición: es un enfoque en el que los objetos se crean combinando otros objetos. En lugar de heredar directamente
de una clase base, una clase puede contener instancias de otras clases como parte de su estructura.

Asociación: modelan las relaciones entre objetos. Pueden ser de uno a uno, de uno a muchos o de muchos a muchos.
Las asociaciones pueden ser simples o complejas y ayudan a modelar la interacción entre objetos en el sistema.

Mensajes y métodos: Los objetos interactúan entre sí enviando mensajes. Estos mensajes corresponden a llamadas a
métodos en las clases. Los métodos son funciones que definen el comportamiento de un objeto.
ARQUITECTRA DE SISTEMAS
DISTRIBUIDOS

son sistemas de información en los


cuales las funciones se reparten por
áreas de trabajo diferentes que trabajan
de forma coordinada para asumir los
objetivos que la organización asigna a
ese sistema de información
Concurrencia. Una arquitectura
distribuida permite que sea
utilizada por todos los usuarios
que interactúan en la red.

Modularidad. Esta característica


CARACTERÍSTIC permite que los sistemas
distribuidos sean escalables,
AS teniendo capacidad para crecer de
forma simple y eficiente.

Transparencia. Proporcionando a
los usuarios y las aplicaciones una
visión de los recursos del sistema
como si se tratase de una única
máquina o equipo.
VENTAJAS
Todos los nodos en el sistema
Se pueden agregar fácilmente
distribuido están conectados
más nodos al sistema
entre sí. Por tanto, cada uno de
distribuido, es decir, se puede
los nodos puede compartir datos
escalar según sea necesario.
fácilmente con los otros nodos.

Recursos como las impresoras La falla de un nodo no conduce a


se pueden compartir con la falla de todo el sistema
múltiples nodos en lugar de distribuido. Los otros nodos aún
restringirse a uno solo. se pueden comunicar entre sí.
DESVENTAJAS

Pueden perderse algunos Es difícil proporcionar una Puede ocurrir una sobrecarga en La base de datos conectada a los
mensajes y datos en la red al seguridad adecuada en los la red si todos los nodos del sistemas distribuidos es bastante
pasar de un nodo a otro. sistemas distribuidos porque sistema distribuido intentan complicada y difícil de manejar
tanto los nodos como las enviar datos a la vez. en comparación con un sistema
conexiones deben asegurarse. de usuario único.
DISEÑO DE INTERFAZ DE
USUARIO
Se basa en diseño de computadoras, aplicaciones, máquinas,
dispositivos de comunicación móvil, aplicaciones de software y
sitios web enfocado en la experiencia de usuario y la interacción.
Normalmente es una actividad multidisciplinar que involucra a
varias ramas del diseño y el conocimiento como el diseño gráfico,
industrial, web, de software y la ergonomía; y está implicado en un
amplio rango de proyectos, desde sistemas para computadoras,
vehículos hasta aviones comerciales
PRINCIPIOS DE DISEÑO DE
UNA INTERFAZ
Simplicidad: Una interfaz de usuario
debe ser simple y clara, evitando la
sobrecarga de información o
características innecesarias.
Consistencia: Es importante mantener la
PRINCIPIO consistencia en la interfaz de usuario
para que los usuarios puedan anticipar

S DE
el comportamiento de los elementos y
comprender cómo utilizarlos.

DISEÑO
DE UNA Retroalimentación visual: Proporcionar
retroalimentación visual clara y

INTERFAZ oportuna es esencial en una interfaz de


usuario efectiva.
Jerarquía visual: permite a los usuarios

PRINCIPIO identificar rápidamente la información más


relevante y las acciones disponibles. El uso de
elementos como tamaño, color y contraste

S DE ayuda a destacar elementos importantes y


guiar la atención del usuario.

DISEÑO
DE UNA Usabilidad: La usabilidad es fundamental en el
diseño de interfaz de usuario. La interfaz debe
ser fácil de aprender, utilizar y recordar. Se

INTERFAZ deben minimizar los pasos innecesarios,


simplificar los flujos de trabajo y proporcionar
instrucciones claras cuando sea necesario.
DISEÑO CON REUTILIZACIÓN

Se refiere a la práctica de crear


componentes, módulos o patrones de
diseño de software de manera que
puedan ser utilizados en diferentes
partes de una aplicación o en
diferentes aplicaciones por completo.
DISEÑO CON REUTILIZACIÓN

El objetivo principal de la reutilización


de software es reducir la duplicación de
esfuerzos, mejorar la eficiencia del
desarrollo y mantener un código base
más mantenible.
CARACTERÍSTICAS

•Independencia: Los componentes reutilizables deben ser independientes de contextos específicos.


Deben funcionar de manera aislada y no depender en exceso de otros componentes o de detalles de
implementación externos. Esto facilita su adaptación a diferentes situaciones de uso

•Interfaz bien definida: Deben tener interfaces claramente definidas y documentadas que describan
cómo interactuar con el componente. Las interfaces deben ser estables y no sujetas a cambios
frecuentes para que los usuarios puedan confiar en ellas.

•Coherencia y consistencia: Los componentes reutilizables deben seguir una estructura y un estilo de
codificación coherentes para que sean fáciles de entender y utilizar. Esto incluye el uso de nombres
significativos, convenciones de codificación y diseño de API coherentes.
•Documentación completa: Deben estar
acompañados de documentación completa y
ejemplos de uso que ayuden a los
desarrolladores a comprender cómo utilizarlos
correctamente. La documentación debe incluir
ejemplos de código, explicaciones detalladas y
posibles casos de uso.

CARACTERÍSTIC •Pruebas exhaustivas: Deben ser sometidos a


pruebas exhaustivas para garantizar su calidad y
AS fiabilidad. Esto incluye pruebas unitarias, pruebas
de integración y pruebas de rendimiento, según
corresponda.

•Mantenimiento activo: Deben ser mantenidos y


actualizados de manera activa para corregir
errores, mejorar el rendimiento y agregar nuevas
características. El mantenimiento es esencial
para garantizar que los componentes
reutilizables sigan siendo útiles con el tiempo.
CONCLUSIÓN
La atención a los diferentes tipos de diseños y su aplicación
adecuada es esencial para desarrollar software de alta calidad que
cumpla con los requisitos del cliente y proporcione una experiencia
positiva al usuario final. Cada tipo de diseño aporta su conjunto
único de consideraciones y mejores prácticas para lograr estos
objetivos.

También podría gustarte