SENA · Tecnólogo en Análisis y Desarrollo de Software
Un requisito, cuatro diagramas
Cómo modelar bien la fase de análisis: del mismo requisito nacen los casos de uso, las clases, el modelo de datos y el flujo — y todos deben hablar de lo mismo.
Requisito RF-02
El sistema debe permitir registrar un estudiante con su nombre, documento y correo, y matricularlo en un curso.
Bloque 3 · Modelado y análisis · Competencia 38376
El punto de partida
Todo nace del mismo requisito
La regla de oro del bloque: cada modelo debe poder rastrearse a un requisito. Según qué necesites mostrar, eliges el diagrama. Estos son los cuatro que salen de RF-02.
●
Funciones
Casos de uso
Muestra qué puede hacer el usuario con el sistema: registrar, matricular, validar.
■
Estructura
Clases
Muestra cómo se organiza el código: las clases Estudiante y Curso.
▦
Datos
Entidad-relación
Muestra cómo se guarda: tablas, llave primaria y llave foránea.
⇩
Proceso
Flujo
Muestra en qué orden ocurre: ingresar, validar, guardar, matricular.
Diagrama 1 · Funciones
Casos de uso
?
Responde a la pregunta ¿qué hace el sistema? No tiene detalle técnico: es la vista que entiende hasta el cliente.
1
El actor (muñeco) es quien usa el sistema: aquí el Instructor. Cada elipse es una función que puede ejecutar.
2
Las funciones salen directo de RF-02: "registrar" pide nombre, documento y correo; "matricular" es la acción sobre el curso.
3
La flecha «include» significa que registrar siempre pasa por "Validar datos": no se guarda nada sin validar.
Diagrama 2 · Estructura
Diagrama de clases
?
Responde a ¿cómo se organiza el código? Cada caja es una clase con tres partes: nombre, atributos y métodos.
1
El - antes de cada atributo significa privado (encapsulamiento). Los tres datos de RF-02 son los atributos de Estudiante.
2
El + antes de un método significa público. matricular() es la acción de "matricular en curso" del requisito.
3
La línea con 1 y * es la relación: un curso tiene muchos estudiantes. Esa cardinalidad decide cómo se escribe el código.
Diagrama 2 · Del modelo al código
El diagrama se convierte en Java
Cada caja, atributo y método del diagrama de clases tiene su equivalente exacto en el código. Así se verifica que el modelo y el programa dicen lo mismo.
Curso.java// Clase del diagramapublic classCurso {
privateStringnombre;
privateStringcodigo;
privateintcupos;
// el "*": muchos estudiantesprivateList<Estudiante> estudiantes
= newArrayList<>();
public voidagregarEstudiante(Estudiante e) {
if (estudiantes.size() < cupos)
estudiantes.add(e);
}
}
Responde a ¿cómo se guardan los datos? Cada tabla es una entidad; cada fila, una columna de la base de datos.
1
La PK (llave primaria) identifica de forma única cada fila: el documento del estudiante, el codigo del curso.
2
La FK (llave foránea) curso_codigo conecta cada estudiante con su curso: así se guarda la relación.
3
La "pata de gallo" en estudiante es el muchos: es el mismo 1 → * del diagrama de clases, pero visto desde los datos.
Diagrama 4 · Proceso
Diagrama de flujo
?
Responde a ¿en qué orden ocurre? Es la secuencia del proceso paso a paso, de Inicio a Fin.
1
El primer paso pide los mismos tres datos de RF-02. El rombo es una decisión: bifurca el camino en Sí / No.
2
Si los datos no son válidos, muestra error y vuelve a pedirlos (la flecha roja). Nada se guarda mal.
3
Si son válidos: guardar (el INSERT en la tabla) y luego matricular (el método matricular() de la clase). Todo conecta.
La prueba de calidad
Trazabilidad y coherencia
Elige un dato y míralo aparecer en los cuatro diagramas. Si un dato existe en uno pero falta o se llama distinto en otro, hay una incoherencia que corregir antes de programar.
Resaltar dato:
Funciones
Casos de uso
documento
nombre
correo
curso a matricular
Estructura
Clase Estudiante
- documento: String
- nombre: String
- correo: String
+ matricular(c: Curso)
Datos
Tabla estudiante
documento (PK)
nombre
correo
curso_codigo (FK)
Proceso
Flujo · Ingresar
documento
nombre
correo
matricular en curso
Para recordar
El orden correcto siempre es el mismo
Requisito
→
Diagramas
→
Código
1
Primero el requisito. Sin RF-02 no hay nada que dibujar. Todo modelo debe rastrearse a él.
2
Luego los diagramas. Elige el tipo según lo que muestras (funciones, estructura, datos, proceso) y verifica que los cuatro sean coherentes entre sí.
3
Al final el código. Debe poder leerse al lado del diagrama y verse igual, como Estudiante y su clase Java.
!
El error clásico: dibujar los diagramas después de programar solo para "cumplir la evidencia". Ahí el diagrama ya no sirve para pensar, y es cuando el software falla.