Modelización de funciones y procesos.
La modelización de funciones y procesos es una técnica fundamental en la ingeniería de sistemas que permite representar de forma simplificada y lógica la realidad de una organización o el funcionamiento de un software.
A continuación, se detalla el desglose técnico de estos conceptos:
1. Modelización de Procesos (El "Cómo")
Se enfoca en la secuencia lógica de actividades y el flujo de trabajo en el tiempo. Describe los pasos necesarios para transformar una entrada en un resultado específico.
Elementos clave:
Eventos: Hechos que activan el inicio (ej. llegada de un cliente o solicitud de una nota).
Tareas/Actividades: Acciones concretas que añaden valor al proceso.
Decisiones: Puntos donde el flujo se bifurca según condiciones (Sí/No).
Roles: Quién ejecuta cada tarea (personas, departamentos o sistemas).
2. Modelización de Funciones (El "Qué")
Representa lo que hace el sistema de forma jerárquica, sin preocuparse por el orden temporal o quién lo ejecuta. Se basa en la descomposición funcional.
Jerarquía: Una función principal (ej. "Gestionar Institución") se divide en subfunciones más pequeñas (ej. "Matricular Alumno", "Registrar Calificaciones").
Independencia: Las funciones se definen por su propósito, no por su implementación técnica.
3. Herramientas y Lenguajes de Modelado
Para llevar estos conceptos a la práctica, se utilizan estándares visuales que facilitan la comunicación entre analistas y desarrolladores:
Diagramas de Flujo (Flowcharts): Ideales para algoritmos y procesos lineales simples.
DFD (Diagramas de Flujo de Datos): Representan el movimiento de la información entre procesos, entidades externas y almacenes de datos.
UML (Unified Modeling Language): El estándar en el desarrollo de software para modelar casos de uso y comportamientos del sistema.
4. Diferencias Fundamentales
| Característica | Modelo de Procesos | Modelo de Funciones |
| Perspectiva | Dinámica (secuencial). | Estática (jerárquica). |
| Pregunta clave | ¿En qué orden se hace? | ¿Qué capacidades tiene el sistema? |
| Estructura | Red de actividades interconectadas. | Árbol de funciones (Descomposición). |
| Uso principal | Optimizar tiempos y logística. | Definir requerimientos y módulos. |
💡 Ejemplo Aplicado: Gestión de Biblioteca
Modelo de Función: El sistema debe ser capaz de "Prestar Libros", "Registrar Usuarios" y "Gestionar Multas".
Modelo de Proceso: 1. El estudiante entrega el libro $\rightarrow$ 2. El sistema verifica si hay multas pendientes $\rightarrow$ 3. ¿Tiene deudas? $\rightarrow$ Sí: Se bloquea el préstamo. No: Se registra la fecha de devolución y se entrega el libro.
Este análisis es el paso previo indispensable antes de escribir cualquier línea de código, ya que permite detectar errores de lógica antes de la fase de construcción del software.
Ejercicio Práctico: Modelización de un Sistema de Control de Asistencia
Objetivo: Diferenciar entre las funciones (qué hace el sistema) y los procesos (cómo fluye la información) dentro de una institución educativa.
Fase 1: Identificación de Funciones (Visión Estática)
Completar el siguiente cuadro. Deben pensar en el sistema como un conjunto de capacidades.
| Función Principal | Subfunciones Necesarias |
| Gestión de Usuarios | Registrar estudiante, Editar datos, Eliminar registro. |
| Registro de Asistencia | Marcar entrada, Justificar falta, Registrar atraso. |
| Generación de Reportes | Reporte semanal por curso, Alerta de deserción. |
Fase 2: Modelización del Proceso (Visión Dinámica)
Diagramar el flujo de datos. Plantea este escenario:
"El estudiante llega a la institución y acerca su carnet con código QR al lector. El sistema debe verificar si el estudiante existe y registrar la hora exacta. Si es después de las 07:10 AM, debe marcarse como 'Atraso'".
Tarea: Dibujar el DFD Nivel 1.
Fase 3: Identificación de Entradas y Salidas
Para que el modelo sea correcto, deben listar los flujos de información:
Entradas (Inputs): Código QR (ID del estudiante), Fecha/Hora del sistema.
Procesos: Verificación de identidad, Validación de horario, Almacenamiento en DB.
Salidas (Outputs): Mensaje en pantalla ("Bienvenido" / "Atraso"), Notificación al representante (vía correo o SMS).
Fase 4: Aplicación Técnica (Opcional para programación)
Traduzcan una parte del proceso a pseudocódigo o Python:
hora_entrada = "07:15"
limite_atraso = "07:10"
if hora_entrada > limite_atraso:
print("Estado: ATRASO")
# Función para enviar alerta
else:
print("Estado: PRESENTE")
Comentarios
Publicar un comentario