Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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.
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
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 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.