Refactorización con pruebas y diagramas UML: casos de uso y de clases
Resumen
El documento explica el papel de las pruebas en la refactorización de software, con un proceso paso a paso que exige cubrir el comportamiento con casos de prueba. Después presenta UML como lenguaje gráfico de modelado, sus tipos de modelos (lógico, físico, dinámico y de casos de uso) y los diagramas de casos de uso y de clases.
Puntos clave
- La refactorización debe apoyarse en casos de prueba que cubran todo el comportamiento del módulo; si no existen, deben escribirse antes.
- El proceso correcto consiste en comprobar que el 100% de las pruebas pasa, refactorizar una pequeña porción del código y volver a ejecutar todas las pruebas.
- UML es un lenguaje gráfico para visualizar, especificar, construir y documentar los artefactos de un sistema de software.
- El objetivo original de UML fue unificar distintos lenguajes de modelado que se usaban de forma independiente, más que innovar.
- El diagrama de casos de uso muestra los actores, las funciones que necesitan y cómo se relacionan, y sirve como punto de partida del proyecto.
- Una clase es una especificación y un objeto es una instancia de esa clase; las clases pueden heredar, tener otras clases como atributos, delegar responsabilidades e implementar interfaces.
Pruebas en la Refactorización
Un factor de vital importancia en la **refactorización** son las **pruebas**.
Esto implica cómo debe ser un proceso de refactorización correcto:
- Asegurarnos de disponer de casos de pruebas que cubran todo el comportamiento del módulo y si no, escribirlas.
- Asegurarnos de que el módulo cumple con las pruebas al 100%.
- Refactorizar una pequeña porción del código (por ejemplo, un método).
- Volver a ejecutar el 100% de las pruebas.
UML (Lenguaje Unificado de Modelado)
Es un lenguaje gráfico para visualizar, especificar, construir y documentar los artefactos de un sistema intensivo de software.
El objetivo de UML desde el principio no es innovar, sino unificar diferentes lenguajes o tipos de modelado que se usaban de forma independiente.
UML proporciona muchos diagramas diferentes para cubrir distintos aspectos o perspectivas del sistema. Generalmente se agrupan en diagramas dinámicos y estáticos, o diagramas de estructura, de comportamiento y de interacción.
Clasificación de Diagramas UML
Los diagramas se clasifican a veces en modelo físico, modelo lógico, modelo de casos de uso y modelo dinámico.
Modelo Lógico
Un modelo lógico es una vista estática de los objetos y las clases que cubren el espacio de análisis y diseño.
Modelo Físico
El modelo físico muestra dónde y cómo se desplegarán los componentes. Es un mapa específico de la instalación física del sistema.
Modelo Dinámico
El modelo dinámico se usa para expresar y modelar el comportamiento del sistema a lo largo del tiempo.
Modelo de Casos de Uso
El modelo de casos de uso describe la funcionalidad propuesta del nuevo sistema. Un caso de uso representa una unidad discreta de interacción entre un usuario (humano o máquina) y el sistema.
Diagrama de Casos de Uso
Es el tipo de diagrama más conocido dentro de los diagramas UML de comportamiento. Utiliza diagramas de casos para dar una visión gráfica de los actores involucrados en un sistema, las diferentes funciones necesarias por los actores y cómo estas diferentes funciones se relacionan.
Es un gran punto de partida para cualquier discusión del proyecto porque se puede identificar fácilmente a los principales actores involucrados y los principales procesos del sistema.
Diagrama de Clases
Una clase es un elemento estándar del UML, que se usa para especificar el patrón del que se producirán los objetos en tiempo de ejecución. Una clase es una especificación; un objeto es una instancia de una clase.
Las clases pueden:
- Heredar de otras clases (es decir, heredan todo el comportamiento y el estado de sus padres y agregan nueva funcionalidad propia).
- Tener otras clases como atributos.
- Delegar sus responsabilidades a otras clases.
- Implementar interfaces abstractas.
El modelo de clases está en el núcleo del desarrollo y del diseño orientados a objetos; expresa el estado persistente y el comportamiento del sistema.
Descargar
PDF Word HTMLPreguntas frecuentes
¿Qué papel tienen las pruebas en la refactorización?
Las pruebas son un factor de vital importancia: antes de refactorizar hay que asegurarse de que existen casos de prueba que cubran todo el comportamiento del módulo, y tras cada cambio hay que volver a ejecutar el 100% de ellas.
¿Qué es UML?
UML (Lenguaje Unificado de Modelado) es un lenguaje gráfico para visualizar, especificar, construir y documentar los artefactos de un sistema intensivo de software.
¿Qué diferencia hay entre una clase y un objeto?
Una clase es una especificación del patrón del que se producirán los objetos en tiempo de ejecución; un objeto es una instancia de una clase.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.