Saber Pro Diseño de Software key terms
Saber Pro Diseño de Software · Get comfortable with the vocabulary.
- Diseño de software
- Related: Arquitectura de software, Principio de responsabilidad única, Patrón de diseño
Actividad de ingeniería que transforma los requisitos en una descripción estructurada de la solución: componentes, responsabilidades, interfaces y decisiones, antes de escribir el código.
- Arquitectura de software
- Related: Diseño de software, Vista arquitectónica, Atributo de calidad
Conjunto de decisiones estructurales de alto nivel sobre los elementos del sistema, sus relaciones y las restricciones que condicionan el resto del diseño y la evolución del producto.
- Atributo de calidad
- Related: Escenario de calidad, Tácticas arquitectónicas, Arquitectura de software
Propiedad medible del sistema distinta de la funcionalidad, como rendimiento, disponibilidad, seguridad o modificabilidad, que guía y permite evaluar las decisiones de diseño.
- Escenario de calidad
- Related: Atributo de calidad, Tácticas arquitectónicas
Enunciado concreto con fuente, estímulo, artefacto, entorno, respuesta y medida que hace verificable un atributo de calidad y permite evaluar si el diseño lo satisface.
- Tácticas arquitectónicas
- Related: Escenario de calidad, Patrón arquitectónico
Decisiones de diseño reutilizables orientadas a lograr un atributo de calidad, por ejemplo caché para rendimiento o replicación para disponibilidad, aplicadas dentro de una estrategia mayor.
- Patrón arquitectónico
- Related: Arquitectura de software, Estilo arquitectónico en capas, Microservicios
Solución general y reutilizable a un problema recurrente de estructura del sistema, como capas, microservicios o arquitectura hexagonal, que define la organización global de los componentes.
- Estilo arquitectónico en capas
- Related: Patrón arquitectónico, Acoplamiento, Cohesión
Organización del sistema en niveles donde cada capa ofrece servicios a la superior y consume los de la inferior, favoreciendo la separación de responsabilidades y la sustituibilidad de cada nivel.
- Arquitectura hexagonal
- Related: Inversión de dependencias, Patrón de diseño, Microservicios
Estilo que aísla el núcleo de dominio detrás de puertos y adaptadores, de modo que la lógica de negocio no dependa de bases de datos, interfaces de usuario ni frameworks externos.
- Microservicios
- Related: Patrón arquitectónico, Acoplamiento, Arquitectura orientada a eventos
Estilo que descompone el sistema en servicios pequeños desplegables de forma independiente, comunicados por interfaces ligeras, cada uno dueño de sus datos y de un contexto de negocio.
- Arquitectura orientada a eventos
- Related: Microservicios, Acoplamiento, Patrón observador
Estilo en el que los componentes publican y consumen eventos de forma asíncrona, desacoplando productores y consumidores y favoreciendo la extensibilidad y la reactividad del sistema.
- Vista arquitectónica
- Related: Arquitectura de software, Modelo C4
Representación parcial de la arquitectura centrada en un conjunto de intereses, como la vista lógica, de procesos, de despliegue o de casos de uso, para comunicar decisiones a distintos interesados.
- Modelo C4
- Related: Vista arquitectónica, Arquitectura de software
Enfoque de documentación que describe la arquitectura en cuatro niveles de zoom: contexto, contenedores, componentes y código, cada uno dirigido a una audiencia distinta.
- Principio de responsabilidad única
- Related: Cohesión, Principio abierto-cerrado, Diseño de software
Principio según el cual un módulo o clase debe tener una sola razón para cambiar, es decir, una única responsabilidad asignada dentro del diseño del sistema.
- Principio abierto-cerrado
- Related: Principio de responsabilidad única, Patrón estrategia, Inversión de dependencias
Principio que exige que los módulos sean abiertos a extensión pero cerrados a modificación, de modo que se añada comportamiento nuevo sin editar el código ya probado.
- Principio de sustitución de Liskov
- Related: Principio abierto-cerrado, Polimorfismo, Interfaz
Principio que exige que un subtipo pueda reemplazar a su tipo base sin alterar la corrección del programa, respetando el contrato y las invariantes de la superclase.
- Segregación de interfaces
- Related: Interfaz, Acoplamiento, Inversión de dependencias
Principio que recomienda dividir interfaces amplias en interfaces pequeñas y específicas, para que los clientes dependan solo de las operaciones que realmente utilizan.
- Inversión de dependencias
- Related: Interfaz, Arquitectura hexagonal, Segregación de interfaces
Principio que hace que los módulos de alto nivel y los de bajo nivel dependan de abstracciones, y que las abstracciones no dependan de los detalles de implementación.
- Cohesión
- Related: Acoplamiento, Principio de responsabilidad única, Módulo
Grado en que las responsabilidades de un módulo están relacionadas entre sí; una cohesión alta indica un módulo enfocado y más fácil de comprender y mantener.
- Acoplamiento
- Related: Cohesión, Interfaz, Arquitectura orientada a eventos
Grado de dependencia entre módulos; un acoplamiento bajo reduce el impacto de los cambios y facilita probar, reemplazar y reutilizar partes del sistema.
- Módulo
- Related: Cohesión, Encapsulamiento, Interfaz
Unidad de descomposición del software que agrupa elementos relacionados y expone una interfaz definida, ocultando su implementación interna al resto del sistema.
- Encapsulamiento
- Related: Módulo, Interfaz, Acoplamiento
Técnica que oculta el estado y los detalles internos de un componente y expone solo una interfaz controlada, protegiendo las invariantes y reduciendo el acoplamiento.
- Interfaz
- Related: Encapsulamiento, Segregación de interfaces, Polimorfismo
Contrato que declara las operaciones que un componente ofrece a sus clientes, sin exponer cómo se implementan, y que permite sustituir implementaciones sin afectar a los consumidores.
- Polimorfismo
- Related: Principio de sustitución de Liskov, Patrón estrategia, Interfaz
Capacidad de un mismo mensaje o llamada de resolverse en implementaciones distintas según el tipo real del objeto, permitiendo tratar variantes mediante una abstracción común.
- Patrón de diseño
- Related: Patrón estrategia, Patrón observador, Patrón fábrica
Solución nombrada y reutilizable a un problema recurrente de diseño de objetos o clases en un contexto dado, que describe participantes, colaboraciones y consecuencias.
- Patrón estrategia
- Related: Polimorfismo, Principio abierto-cerrado, Patrón de diseño
Patrón de comportamiento que encapsula familias de algoritmos intercambiables detrás de una interfaz común, permitiendo elegir el comportamiento en tiempo de ejecución sin condicionales rígidos.
- Patrón observador
- Related: Arquitectura orientada a eventos, Patrón de diseño, Acoplamiento
Patrón de comportamiento en el que un sujeto notifica automáticamente a sus observadores registrados cuando cambia su estado, desacoplando al emisor de los receptores.
- Patrón fábrica
- Related: Patrón de diseño, Inversión de dependencias, Interfaz
Patrón creacional que centraliza la creación de objetos detrás de una interfaz o método, de modo que el cliente no dependa de clases concretas ni de su lógica de construcción.
- Antipatrón
- Related: Deuda técnica, Refactorización, Patrón de diseño
Solución aparentemente razonable que en la práctica genera problemas recurrentes de mantenimiento o rendimiento, documentada para reconocerla y corregirla a tiempo.
- Deuda técnica
- Related: Refactorización, Antipatrón, Code smell
Costo futuro acumulado por decisiones de diseño rápidas o incompletas; si no se gestiona con refactorización, encarece cada cambio posterior del sistema.
- Refactorización
- Related: Deuda técnica, Code smell, Prueba unitaria
Transformación controlada del código que mejora su estructura interna sin cambiar el comportamiento observable, apoyada en pruebas automatizadas que verifican la equivalencia funcional.
- Code smell
- Related: Refactorización, Deuda técnica, Antipatrón
Indicio superficial en el código, como un método demasiado largo o duplicación, que sugiere un problema de diseño más profundo y orienta posibles refactorizaciones.
- Diagrama de clases
- Related: Diagrama de secuencia, Interfaz, Multiplicidad
Diagrama UML que muestra clases, atributos, operaciones y relaciones como asociación, herencia o composición, usado para modelar la estructura estática del diseño.
- Diagrama de secuencia
- Related: Diagrama de clases, Caso de uso
Diagrama UML de interacción que representa el intercambio de mensajes entre objetos ordenado en el tiempo, útil para verificar el cumplimiento de un escenario de diseño.
- Multiplicidad
- Related: Diagrama de clases
En UML, especificación del número de instancias que pueden participar en una asociación, por ejemplo uno, cero o muchos, y que restringe las cardinalidades válidas del modelo.
- Caso de uso
- Related: Diagrama de secuencia, Historia de usuario
Descripción de una interacción entre actores y el sistema orientada a un objetivo de valor, que sirve como entrada para derivar responsabilidades y escenarios de diseño.
- Historia de usuario
- Related: Caso de uso, Prueba unitaria
Enunciado breve de una necesidad desde la perspectiva de un usuario, con criterios de aceptación, que alimenta la planificación y las decisiones de diseño incremental.
- Prueba unitaria
- Related: Refactorización, Historia de usuario, Inyección de dependencias
Prueba automatizada que verifica el comportamiento de una unidad aislada del diseño, como una clase o función, y que habilita la refactorización con seguridad.
- Inyección de dependencias
- Related: Inversión de dependencias, Prueba unitaria, Patrón fábrica
Técnica en la que un componente recibe sus colaboradores desde fuera en lugar de crearlos internamente, facilitando el desacoplamiento, la configuración y las pruebas con dobles.