Skip to main content

Revista Digital Fundamentos del Diseño de Software

Page 1


SOFTWARE

ARCHITECT

FUNDAMENTOS,

CALIDAD Y MANTENIMIENTO DEL SOFTWARE MODERNO

Edición Especial: Del Requerimiento al Diseño Orientado a Objetos y Pruebas QA | Junio, 2026

ÍNDICE Y EDITORIAL

NOTA EDITORIAL

"El desarrollo de software no es un arte de improvisación; es una disciplina de ingeniería exacta. En este número desglosamos las fases críticas que transforman una idea abstracta en un sistema escalable, mantenible y libre de fallas técnicas."

CONTENIDO DE ESTA EDICIÓN

1.Fundamentos al Requerimiento del Diseño ................ Pág. 3

2.Especificaciones Técnicas: El Contrato del Sistema ..... Pág. 4

3.Principios Fundamentales del Diseño de Software ........ Pág. 5

4.Diseño Orientado a Objetos y Bases de Datos ............ Pág. 6

5.Métodos Avanzados de Análisis de Requerimientos ........ Pág. 7

6.SQA: Garantías de Calidad y Pruebas de Caja ............ Pág. 8

7.Mantenimiento, Seguridad y Evolución del Sistema ....... Pág. 9

ARTÍCULO 1 FUNDAMENTOS AL REQUERIMIENTO DEL DISEÑO

¿Análisis o Diseño? El análisis responde al "QUÉ" debe hacer el sistema, mientras que el diseño responde al "CÓMO" se construirá. Según Pressman, el diseño es el puente entre los requerimientos y el código: transforma modelos abstractos en una arquitectura concreta, ejecutable y mantenible.

Rastreabilidad y Estructura Limpia: Todo elemento del diseño debe vincularse directamente a un requerimiento específico, garantizando trazabilidad total. La estructura limpia exige organización jerárquica con control estricto de dependencias, módulos bien definidos y responsabilidades claras que faciliten el mantenimiento y la evolución del sistema.

Abstracción: Pressman define la abstracción como la capacidad de abordar el sistema desde una visión arquitectónica general hasta el algoritmo más detallado. Permite gestionar la complejidad por niveles: arquitectura global, subsistemas, componentes e interfaces, garantizando coherencia entre cada capa del diseño.

ESPECIFICACIONES TÉCNICAS: E FORMAL

ESPECIFICACIÓN DE DATOS Y ARQUITECTÓNICA

ficación de Datos define los modelos de inf as de datos, diccionarios de datos y flujos ntes. Establece cómo se almacenan, transf Especificación Arquitectónica describe los s (capas, microservicios, cliente-servidor) y as, definiendo la columna vertebral estructura na sola línea de código.

ESPECIFICACIÓN DE INTERFACES Y COMPONENTES

La Especificación de Interfaces abarca tanto las interfaces humanas (UX/UI, flujos de pantallas, accesibilidad) como las interfaces máquina-máquina (APIs REST, contratos de integración, protocolos). La Especificación de Componentes detalla la lógica interna de cada módulo: algoritmos, diagramas de flujo, pseudocódigo y responsabilidades. Juntas, estas cuatro dimensiones conforman el documento técnico que actúa como contrato formal entre el análisis y la implementación.

PRINCIPIOS FUNDAMENTALES DEL DISEÑO

Modularidad

La modularidad consiste en dividir el sistema en componentes independientes y manejables. Cada módulo encapsula una funcionalidad específica, permitiendo desarrollo paralelo, reutilización y mantenimiento simplificado.

Un diseño modular óptimo garantiza que los cambios en un módulo no generen efectos en cascada sobre el resto del sistema.

Ocultamiento de Información

El encapsulamiento restringe el acceso directo a los datos internos de un módulo. Solo se expone una interfaz pública controlada, protegiendo la implementación interna.

Este principio reduce el acoplamiento entre componentes y permite modificar la implementació sin afectar a los consumidores del módulo.

Cohesión y Acoplamiento

Alta cohesión: cada módulo debe tener una responsabilidad única y bien definida. Bajo acoplamiento: los módulos deben depender lo menos posible entre sí.

Diseño deficiente: módulos con múltiples responsabilidades y dependencias cruzadas. Diseño óptimo: módulos especializados, independientes y fácilmente sustituibles.

DISEÑO ORIENTADO A OBJETOS Y BASES DE DATOS

El Desajuste de Impedancia y sus Soluciones

El Diseño Orientado a Objetos (DOO) modela el mundo real mediante clases, herencia y encapsulamiento. Sin embargo, las bases de datos relacionales almacenan datos en tablas planas, generando un conflicto estructural conocido como desajuste de impedancia.

• Mapeo Objeto-Relacional (ORM): Traduce automáticamente objetos a tablas relacionales. Herramientas como Hibernate o Entity Framework permiten persistir objetos sin escribir SQL manual, manteniendo la integridad del modelo orientado a objetos.

Bases de Datos Orientadas a Objetos (BDOO)

Las BDOO almacenan directamente objetos complejos, eliminando el desajuste de impedancia. Soportan herencia, polimorfismo y referencias entre objetos de forma nativa.

• Ventaja ORM: Compatible con sistemas relacionales existentes; amplia adopción empresarial.

• Ventaja BDOO: Fidelidad total al modelo de objetos; ideal para datos complejos y jerárquicos.

• Conclusión: La elección depende del contexto: ORM para entornos relacionales consolidados; BDOO para sistemas con modelos de objetos altamente complejos y sin legado relacional.

MÉTODOS DE ANÁLISIS DE REQUERIMIENTOS

Análisis Estructurado: El Modelo Clásico

Este enfoque descompone el sistema en funciones y flujos de datos. Sus herramientas principales son los Diagramas de Flujo de Datos (DFD), que representan cómo la información se transforma a través del sistema, y los Diccionarios de Datos, que documentan formalmente cada elemento del flujo. Es ideal para sistemas con procesos bien definidos y secuenciales, donde la claridad del flujo de información es prioritaria.

Análisis Orientado a Objetos (AOO): El Modelo Moderno

El AOO modela el sistema como un conjunto de objetos que interactúan entre sí. Utiliza el lenguaje UML para representar Casos de Uso interacciones usuario-sistema), Diagramas de Clases (estructura de objetos y relaciones) y Diagramas de Secuencia (flujo de mensajes). Este enfoque favorece la reutilización, la escalabilidad y la alineación directa con lenguajes de programación orientados a objetos como Java o C++.

SQA: GARANTÍAS DE CALIDAD Y PRUEBAS DE SOFTWARE

El SQA (Software Quality Assurance) es el conjunto de acc sistemáticas para garantizar que el software cumpla con l definidos.

�� PRUEBAS DE CAJA NEGRA (Funcionales): Se evalúa externo del sistema sin conocer su estructura interna. Se sean correctas para cada entrada. Ejemplo: ingresar dato formulario y verificar que el sistema los rechace correctam

⬜ PRUEBAS DE CAJA BLANCA (Estructurales): Se analiza la lógica interna del código, evaluando rutas, condiciones y bucles. El tester conoce la estructura del programa. Ejemplo: verificar que cada rama de un condicional IF-ELSE sea ejecutada y produzca el resultado esperado según la lógica del algoritmo.

MANTENIMIENTO Y SEGURIDAD DEL SOFTWARE

Mantenimiento Preventivo: El software no muere al desplegarse; evoluciona. Más del 60% del costo total del ciclo de vida corresponde al mantenimiento. La refactorización continua, la optimización del rendimiento y las actualizaciones periódicas garantizan que el sistema permanezca limpio, eficiente y adaptable ante nuevos requerimientos.

Principio de Menor Privilegio: Cada componente, usuario o proceso debe operar con los permisos mínimos necesarios para cumplir su función. Este principio reduce la superficie de ataque del sistema: si un módulo es comprometido, el daño queda contenido. Es la base de una arquitectura segura por diseño.

Validación de Entradas y Cifrado de Datos: Toda entrada externa debe ser validada y saneada antes de ser procesada, previniendo inyecciones y desbordamientos. El cifrado de datos en tránsito (TLS) y en reposo (AES) protege la confidencialidad e integridad de la información crítica del sistema.

REFERENCIAS BIBLIOGRÁFICAS

Pressman, R. S. (2010). Ingeniería de Softwa práctico (7ma ed.). México: McGraw-Hill.

Sommerville, I. (2011). Ingeniería de Software Addison-Wesley.

Kendall, K. E., & Kendall, J. E. (2011). Análisis (8va ed.). México: Pearson Educación.

Turn static files into dynamic content formats.

Create a flipbook
Revista Digital Fundamentos del Diseño de Software by jorge lopez - Issuu