Está en la página 1de 52

M4: Modelado y aplicación práctica en

desarrollo de software

Desarrollo de Software 1

IN TR ODUCCIÓN AL MÓDULO

Introducción al módulo

Temario del módulo

DESAR R OLLO DEL MÓDULO

4.1 Introducción y aplicación de estándares, técnicas y herramientas de modelado

4.2 Enfoque en el modelado UML

4.3. Metodologías para elección y especificación de requerimientos en el desarrollo de software.

4.4. Modelado conceptual y transformación a artefactos


4.5. Conclusiones

Saber más

Actividades de repaso

CIER R E DEL MÓDULO

Video del módulo

Referencias

Descarga de contenido
Lección 1 de 12

Introducción al módulo

Modelado y aplicación práctica en desarrollo de


software

El módulo 4 se adentra en el fascinante mundo del modelado y la aplicación práctica en el

desarrollo de software, una fase crucial que sirve de puente entre la teoría y la implementación
efectiva de sistemas de software. Esta unidad está diseñada para proporcionar a los estudiantes
una comprensión profunda y habilidades prácticas en el uso de estándares, técnicas y
herramientas de modelado, esenciales para la representación y diseño eficientes de sistemas de
software.

Comenzaremos explorando la introducción y aplicación de estándares, técnicas y


herramientas de modelado, lo que establece las bases para una visualización clara y una
comunicación efectiva del diseño del software. A continuación, nos centraremos en el modelado
UML (Lenguaje Unificado de Modelado), una herramienta poderosa y ampliamente adoptada
en la industria para la representación de sistemas software. Profundizaremos en metodologías
para la elección y especificación de requerimientos, esencial para garantizar que el software
desarrollado cumpla con las necesidades del usuario y los objetivos del negocio. Finalmente,
abordaremos el modelado conceptual y su transformación en artefactos de software, un
paso crítico en la conversión de ideas y conceptos en soluciones de software tangibles y
funcionales. Esta unidad no solo es una exploración teórica de estas áreas, sino una oportunidad
práctica para aplicar estos conocimientos en escenarios de desarrollo de software reales.

C O NT I NU A R
Lección 2 de 12

Temario del módulo


4.1. Introducción y aplicación de estándares, técnicas y herramientas de modelado

4.1.1. Fundamentos del modelado de software


4.1.2. Estándares de modelado de software
4.1.3. Herramientas de modelado de software

4.2. Enfoque en el modelado UML

4.2.1. Conceptos y fundamentos del UML


4.2.2. Tipos de diagramas UML y sus aplicaciones

4.3. Metodologías para elección y especificación de requerimientos en el desarrollo de software

4.3.1. Identificación y análisis de requerimientos


4.3.2. Técnicas de documentación y especificación de requerimientos

4.4. Modelado conceptual y transformación a artefactos

4.4.1. Principios y técnicas del modelado conceptual


4.4.2. De modelos conceptuales a artefactos de software
4.4.3 Conclusiones

C O NT I NU A R
Lección 3 de 12

4.1 Introducción y aplicación de estándares,


técnicas y herramientas de modelado

4.1 Introducción y aplicación de estándares, técnicas y


herramientas de modelado
Este apartado se centra en una faceta esencial del desarrollo de software: la aplicación de
estándares, técnicas y herramientas de modelado. Esta área del conocimiento es crucial, ya que
proporciona a los desarrolladores y diseñadores de software un marco y un lenguaje común para
conceptualizar, documentar y comunicar estructuras complejas y procesos de sistemas de
software. Exploraremos cómo estos estándares y herramientas no solo facilitan la comprensión y
la gestión de los aspectos técnicos del desarrollo de software, sino que también mejoran la
colaboración entre los distintos miembros del equipo y los stakeholders.

Abordaremos una variedad de técnicas y herramientas de modelado, desde las más tradicionales

hasta las más avanzadas, examinando sus aplicaciones, ventajas y posibles desafíos en el
contexto del desarrollo moderno de software. Esta sección es fundamental para aquellos que
buscan profundizar en las prácticas efectivas de representación y diseño de sistemas,
preparándolos para enfrentar los retos del desarrollo de software con habilidades de modelado
bien fundadas y eficaces.

4.1.1 Fundamentos del modelado de software


El modelado de software es una práctica fundamental en el desarrollo de sistemas informáticos,
proporcionando una representación abstracta y estructurada de los diversos componentes y
procesos de un sistema de software. Esta subsección aborda los aspectos básicos y la importancia
del modelado en el desarrollo de software. Veamos a continuación algunos conceptos básicos:

Definición y propósito

El modelado de software implica la creación de representaciones abstractas de sistemas de
software. Estas representaciones ayudan a entender, comunicar y documentar las características
y comportamientos de un sistema (Booch, Rumbaugh & Jacobson, 2005). El propósito principal
es simplificar el diseño complejo y facilitar la comunicación entre los desarrolladores, los
diseñadores y los stakeholders no técnicos.

Abstracción y simplificación

El modelado se basa en la abstracción, el proceso de omitir detalles menos esenciales para
enfocarse en los aspectos más importantes de un sistema. Esto permite manejar la complejidad
del sistema y concentrarse en sus componentes clave.
Tipos de modelos

Existen varios tipos de modelos en el desarrollo de software, incluyendo modelos estructurales
que describen la organización del sistema, modelos de comportamiento que detallan las
operaciones del sistema, y modelos de interacción que muestran cómo los componentes del
sistema interactúan entre sí.

¿Cuál es la importancia en el desarrollo de software?

Comunicación y comprensión

El modelado proporciona un lenguaje común para discutir y entender el sistema, facilitando la
comunicación entre los miembros del equipo y con los stakeholders.

Planificación y diseño

Permite a los desarrolladores planificar y diseñar el sistema de manera más eficiente,
identificando problemas potenciales y evaluando diferentes enfoques antes de la
implementación.

Mantenimiento y escalabilidad

Los modelos sirven como documentación vital para el mantenimiento y la actualización futura
del sistema. Un buen modelo puede facilitar la adición de nuevas características y la adaptación
a cambios.

Reducción de riesgos

Al proporcionar una clara comprensión del sistema desde las primeras etapas, el modelado
reduce los riesgos asociados con el desarrollo de software, incluyendo errores de diseño y
malentendidos en los requerimientos.

El modelado de software es una práctica esencial que contribuye significativamente a la calidad


y el éxito del desarrollo de sistemas de software. Proporciona una base para la toma de decisiones
informadas y mejora la eficiencia y efectividad del proceso de desarrollo de software.

4.1.2 Estándares de modelado de software


Los estándares de modelado de software son conjuntos de reglas y guías que proporcionan un
marco para la creación de modelos de sistemas de software. Estos estándares aseguran la
coherencia, la claridad y la interoperabilidad entre las herramientas de modelado y los procesos
de desarrollo. Esta subsección explora algunos de los estándares más influyentes en el modelado
de software.

U M L ( U N IFIE D M ODE L IN G SY SM L ( SY ST E M S M ODE L IN G B PM N ( B U SIN E SS PROCE SS


LA NG UA G E ) LA NG UA G E ) M ODE L A N D N OT A T ION )

UML es uno de los estándares de modelado más conocidos y utilizados en la ingeniería de


software. Proporciona un conjunto rico de notaciones gráficas que son útiles para representar la
estructura y el comportamiento de los sistemas de software (OMG, 2017). UML es ampliamente
adoptado debido a su flexibilidad y capacidad para modelar una amplia variedad de sistemas
de software.

U M L ( U N IFIE D M ODE L IN G SY SM L ( SY ST E M S M ODE L IN G B PM N ( B U SIN E SS PROCE SS


LA NG UA G E ) LA NG UA G E ) M ODE L A N D N OT A T ION )

SysML es una extensión de UML diseñada específicamente para modelar sistemas complejos
que pueden incluir hardware, software, información, procesos, personal y facilidades. Es
especialmente útil en la ingeniería de sistemas y se aplica en una variedad de industrias
(Friedenthal, Moore & Steiner, 2014).

U M L ( U N IFIE D M ODE L IN G SY SM L ( SY ST E M S M ODE L IN G B PM N ( B U SIN E SS PROCE SS


LA NG UA G E ) LA NG UA G E ) M ODE L A N D N OT A T ION )

BPMN es un estándar para modelar procesos de negocio, proporcionando un conjunto de


notaciones gráficas que son fácilmente comprensibles por todos los stakeholders del negocio.
Este estándar es crucial para el modelado de flujos de trabajo y procesos de negocio (Silver,
2009).

¿Cuál es la importancia de los estándares de modelado?


Uniformidad y claridad

Estos estándares aseguran que los modelos sean uniformes y claros, facilitando la comprensión
y la comunicación entre los diferentes miembros del equipo y las herramientas de software.

Interoperabilidad

Al adherirse a estándares, se garantiza la interoperabilidad entre diferentes herramientas y
plataformas de modelado, lo que es esencial para la colaboración y la integración de sistemas.

Mejores prácticas y calidad



Los estándares de modelado promueven las mejores prácticas en el diseño de software y
contribuyen a la calidad general del sistema al proporcionar directrices claras para el modelado.

Los estándares de modelado de software son, por lo tanto, componentes críticos en la ingeniería
de software moderna. Proporcionan las herramientas y métodos necesarios para representar
sistemas de software complejos de manera efectiva, mejorando la calidad y la eficiencia del

proceso de desarrollo de software.

4.1.3 Herramientas de modelado de software


Las herramientas de modelado de software son aplicaciones esenciales que asisten a los

desarrolladores y diseñadores en la creación, visualización y análisis de modelos de software.


Estas herramientas facilitan la implementación de los estándares de modelado y proporcionan
un medio eficiente para documentar y comunicar el diseño del sistema. Esta subsección explora
algunas de las herramientas de modelado más utilizadas en la industria del software.

IB M RA T ION A L SOFT W A RE
E N T E RPRISE A RCH IT E CT M ICROSOFT VISIO
A RCH IT E CT

Enterprise Architect de Sparx Systems es una herramienta de modelado UML ampliamente


utilizada que soporta todos los aspectos del modelado de software. Ofrece funcionalidades para
modelado de procesos de negocio, diseño de sistemas, y modelado de datos. Es conocida por su
facilidad de uso y su capacidad para manejar modelos complejos (Sparx Systems, 2020).

IB M RA T ION A L SOFT W A RE
E N T E RPRISE A RCH IT E CT M ICROSOFT VISIO
A RCH IT E CT

Esta herramienta proporciona un entorno integral para el diseño y desarrollo de aplicaciones.


Soporta UML y otras notaciones y es particularmente útil para el modelado de arquitecturas de
software y la generación de código a partir de modelos (IBM Corporation, 2019).

IB M RA T ION A L SOFT W A RE
E N T E RPRISE A RCH IT E CT M ICROSOFT VISIO
A RCH IT E CT

Aunque no es una herramienta de modelado de software específica, Microsoft Visio se utiliza


ampliamente para la creación de diagramas UML, diagramas de flujo y otros tipos de
representaciones visuales en el proceso de desarrollo de software (Microsoft, 2021).
¿Cuáles son los beneficios del uso de herramientas de modelado?

Eficiencia en el diseño

Estas herramientas permiten a los diseñadores y desarrolladores crear modelos de forma rápida
y eficiente, reduciendo errores y mejorando la calidad del diseño.

Mejora de la comunicación

Facilitan la comunicación dentro del equipo de desarrollo y con los stakeholders,
proporcionando una representación visual clara del sistema.

Documentación y mantenimiento

Ofrecen capacidades de documentación que son esenciales para el mantenimiento y la futura
expansión del software.

Análisis y validación

Algunas herramientas avanzadas ofrecen funcionalidades para el análisis y la validación de
modelos, ayudando a identificar problemas potenciales en las etapas tempranas del diseño.
El uso de herramientas de modelado de software es fundamental en el desarrollo de sistemas
complejos, proporcionando soporte esencial en la visualización, diseño y documentación del
software. La selección de la herramienta adecuada depende de las necesidades específicas del
proyecto, el entorno de desarrollo y las preferencias del equipo.

C O NT I NU A R
Lección 4 de 12

4.2 Enfoque en el modelado UML

4.2 Enfoque en el modelado UML


Nos sumergiremos en el Lenguaje Unificado de Modelado, más conocido como UML, una
herramienta fundamental en el ámbito del desarrollo de software. UML no es solo un conjunto de
símbolos y notaciones; es un lenguaje visual robusto que facilita la representación de sistemas
complejos, la comunicación entre equipos de desarrollo y la documentación efectiva de
proyectos de software. Esta sección se enfocará en desentrañar las diversas facetas de UML,
proporcionando a los estudiantes una comprensión detallada de cómo y por qué se utiliza UML
en el modelado de software.
Exploraremos los diferentes tipos de diagramas que componen UML, cada uno diseñado para
visualizar y documentar aspectos específicos de los sistemas de software, desde su estructura

hasta su comportamiento y dinámicas de interacción. Abordaremos diagramas de casos de uso,

de clases, de secuencia, de estado, entre otros, examinando cómo cada uno contribuye al proceso
de diseño y desarrollo de software. Esta sección es esencial para aquellos que buscan profundizar

en la ingeniería y el diseño de software, proveyendo las habilidades necesarias para aplicar UML
de manera efectiva en proyectos reales y complejos de software.

4.2.1 Conceptos y Fundamentos del UML


El Lenguaje Unificado de Modelado (UML) es un lenguaje visual estándar en la ingeniería de
software utilizado para modelar el diseño y la estructura de los sistemas de software. Esta
subsección profundiza en los elementos clave y las aplicaciones de UML, proporcionando una
comprensión detallada de su uso en el desarrollo de software.

Diagramas de Estructura

Incluyen diagramas de clases, que son fundamentales para representar la estructura estática
del sistema. En estos diagramas, las clases se dibujan como cajas que contienen atributos y
operaciones, y las relaciones entre clases se indican mediante líneas conectadas. Son esenciales
para modelar la arquitectura del sistema, incluyendo la definición de entidades, sus
interrelaciones y la jerarquía.

Diagramas de Comportamiento

Los diagramas de casos de uso y de secuencia caen bajo esta categoría. Los diagramas de casos
de uso representan las funcionalidades del sistema desde la perspectiva del usuario y son
cruciales en la fase de análisis y diseño de requerimientos. Los diagramas de secuencia, por otro
lado, muestran cómo los objetos interactúan en una secuencia temporal, siendo vitales para
entender el flujo de operaciones y la lógica de negocio.
Diagramas de Interacción

Como los diagramas de comunicación, que muestran las interacciones entre objetos en
términos de mensajes intercambiados. Estos diagramas ayudan a visualizar la cooperación
entre distintos componentes del sistema y son útiles para diseñar y comprender la dinámica de
interacción entre objetos.

¿Cuáles son las aplicaciones de UML en el desarrollo de


Software?

Diseño y Arquitectura de Software



UML se utiliza ampliamente para diseñar la arquitectura de sistemas de software complejos.
Permite a los arquitectos y diseñadores crear un esquema detallado del sistema antes de la
codificación, facilitando decisiones bien informadas sobre la estructura y el diseño del sistema.

Análisis y Especificación de Requerimientos



Mediante el uso de diagramas de casos de uso, UML ayuda en la captura y el análisis de
requerimientos del usuario. Estos diagramas proporcionan una forma clara y sistemática de
representar las necesidades del usuario y cómo deben ser abordadas por el sistema.
Comunicación y Documentación

UML sirve como un lenguaje común para comunicar diseños de software dentro de equipos
multidisciplinarios y entre stakeholders no técnicos. Ofrece una manera estandarizada y
comprensible de documentar los aspectos del sistema, lo que es fundamental para la
mantenibilidad y escalabilidad a largo plazo.

El dominio de UML y su aplicación efectiva en el modelado de software permite una


planificación más precisa, una mejor comunicación del diseño y, en última instancia, contribuye
a la construcción de sistemas de software más robustos y eficientes.

4.2.2 Tipos de diagramas y sus aplicaciones


El Lenguaje Unificado de Modelado (UML) ofrece una variedad de diagramas, cada uno diseñado
para representar diferentes aspectos de los sistemas de software. Esta subsección se enfoca en los

tipos principales de diagramas UML y proporciona ejemplos prácticos de su aplicación.

DIA G RA M A S DE CL A SE S DIA G RA M A S DE CA SOS DE


DIA G RA M A S DE SE CU E N CIA
DISCOVE RY U SO

Descripción: Son la piedra angular de UML, utilizados para representar la estructura


estática de los sistemas, mostrando clases, sus atributos, operaciones y relaciones entre ellas.

Aplicación Práctica: En el diseño de un sistema de gestión de inventarios, un diagrama de


clases podría representar entidades como ‘Producto’, ‘Proveedor’ y ‘Orden de Compra’, con
sus respectivas propiedades y las relaciones como asociaciones o herencias.
DIA G RA M A S DE CL A SE S DIA G RA M A S DE CA SOS DE
DIA G RA M A S DE SE CU E N CIA
DISCOVE RY U SO

Descripción: Muestran las funcionalidades del sistema desde la perspectiva del usuario,
identificando actores y sus interacciones con el sistema.

Aplicación Práctica: Para un portal de reservas en línea, un diagrama de casos de uso


podría ilustrar cómo diferentes usuarios (por ejemplo, clientes y administradores)
interactúan con el sistema para realizar reservas, modificar reservaciones o administrar
listados.

DIA G RA M A S DE CL A SE S DIA G RA M A S DE CA SOS DE


DIA G RA M A S DE SE CU E N CIA
DISCOVE RY U SO

Descripción: Representan cómo los objetos interactúan en una secuencia temporal,


mostrando el intercambio de mensajes entre ellos.

Aplicación Práctica: En una aplicación de mensajería instantánea, un diagrama de


secuencia podría demostrar el proceso de enviar un mensaje, detallando las interacciones
entre objetos como ‘Usuario’, ‘Interfaz de Usuario’ y ‘Servidor’.

Los diagramas de UML son una poderosa herramienta para visualizar y comprender la estructura
y el comportamiento de los sistemas de software. Su uso permite a los equipos de desarrollo
capturar detalles complejos de manera organizada y comunicar efectivamente el diseño del
sistema a todas las partes interesadas.
C O NT I NU A R
Lección 5 de 12

4.3. Metodologías para elección y


especificación de requerimientos en el
desarrollo de software.

4.3. Metodologías para elección y especificación de


requerimientos en el desarrollo de software.
Veremos un aspecto fundamental y a menudo desafiante del desarrollo de software: la elección y
especificación de requerimientos. Esta etapa es crítica, ya que establece la base sobre la cual se
construirá todo el proyecto de software. Los requerimientos no solo definen lo que el sistema
debe hacer, sino que también establecen las expectativas de los stakeholders y guían el proceso
de diseño y desarrollo. Una elección y especificación precisa y eficiente de los requerimientos son
esenciales para el éxito de cualquier proyecto de software.

Nos sumergiremos en las diversas metodologías utilizadas para identificar, analizar y


documentar los requerimientos de software. Exploraremos desde enfoques tradicionales hasta
técnicas ágiles, considerando sus ventajas, limitaciones y contextos de aplicación óptimos.
Además, discutiremos cómo los requerimientos pueden ser especificados de manera clara y
efectiva para minimizar malentendidos y asegurar que el producto final cumpla con las

necesidades del usuario y los objetivos del proyecto. Esta sección es vital para desarrolladores,
analistas de sistemas y gestores de proyectos que buscan perfeccionar sus habilidades en la
gestión de requerimientos, una competencia clave en la ingeniería de software.

4.3.1. Identificación y análisis de requerimientos


La identificación y el análisis de requerimientos son pasos cruciales en el proceso de desarrollo
de software, estableciendo una base sólida para todo el proyecto. Esta subsección se enfoca en las
metodologías y técnicas para recoger, analizar y priorizar los requerimientos de software.

Entrevistas y Encuestas:

Una de las técnicas más directas para recopilar requerimientos es a través de entrevistas con
stakeholders o la distribución de encuestas. Estas herramientas permiten obtener información
detallada sobre las necesidades y expectativas de los usuarios (Gottesdiener, 2002).

Talleres de Requerimientos:

Los talleres o sesiones de trabajo en grupo involucran a varios stakeholders en un entorno
interactivo. Son efectivos para generar ideas, discutir necesidades y llegar a un consenso.
Observación y Análisis de Documentos:

La observación directa de los usuarios en su entorno de trabajo y el análisis de documentos
existentes pueden proporcionar insights valiosos sobre los procesos actuales y los
requerimientos implícitos.

A continuación veremos cómo se desarrolla el análisis y la


priorización de requerimientos:

Clasificación de Requerimientos:

Diferenciar entre requerimientos funcionales (lo que el sistema debe hacer) y no funcionales
(características como usabilidad, rendimiento y seguridad) es esencial para un análisis claro
(Wiegers & Beatty, 2013).

Técnicas de Priorización:

Métodos como la “Matriz de Priorización” o el “MoSCoW” (Must have, Should have, Could have,
Won't have) ayudan a determinar la importancia relativa de cada requerimiento, lo que es
crucial para la planificación y la toma de decisiones.

Validación y Negociación:

El análisis de requerimientos también implica validar la viabilidad y negociar los detalles con
los stakeholders, asegurando que los requerimientos sean realistas y alineados con los objetivos
del proyecto.

El proceso de identificación y análisis de requerimientos requiere una combinación de


habilidades técnicas y de comunicación. Realizarlo correctamente conduce a un entendimiento
compartido de lo que se debe construir, minimizando los riesgos de malentendidos y cambios
costosos más adelante en el proyecto.

4.3.2. Técnicas de documentación y especificación de


requerimientos
La documentación y especificación de requerimientos son procesos clave en el desarrollo de

software, asegurando que los sistemas construidos cumplan con las necesidades de los usuarios y
del negocio. Esta subsección examina las técnicas efectivas para documentar y especificar
requerimientos.

L E N G U A JE CL A RO Y
U SO DE PL A N T IL L A S IN CL U SIÓN DE DIA G RA M A S Y
E SPE CIFICA CION E S
E ST Á N DA R: M ODE L OS
DE T A L L A DA S:

La utilización de plantillas estandarizadas para la documentación de requerimientos ayuda a


asegurar que toda la información necesaria sea recogida de manera consistente. Estas plantillas
pueden incluir secciones para descripciones de requerimientos, criterios de aceptación,
prioridades y dependencias (Robertson & Robertson, 2012).
L E N G U A JE CL A RO Y
U SO DE PL A N T IL L A S IN CL U SIÓN DE DIA G RA M A S Y
E SPE CIFICA CION E S
E ST Á N DA R: M ODE L OS
DE T A L L A DA S:

Es crucial utilizar un lenguaje claro y sin ambigüedades al documentar requerimientos. Las


especificaciones deben ser lo suficientemente detalladas para evitar malinterpretaciones y
proporcionar una base clara para el diseño y desarrollo posteriores.

L E N G U A JE CL A RO Y
U SO DE PL A N T IL L A S IN CL U SIÓN DE DIA G RA M A S Y
E SPE CIFICA CION E S
E ST Á N DA R: M ODE L OS
DE T A L L A DA S:

Complementar la documentación textual con diagramas UML, diagramas de flujo y otros


modelos visuales puede mejorar significativamente la comprensión y la comunicación de los
requerimientos.

Dependiendo de los contextos de aplicación serán los


requerimientos a aplicar:

En Metodologías Ágiles:

En enfoques ágiles como Scrum, los requerimientos suelen documentarse como “historias de
usuario” y se manejan en un “backlog” del producto. Estas historias son breves, centradas en la
funcionalidad desde la perspectiva del usuario y a menudo siguen un formato de “Como [rol],
quiero [característica], para que [beneficio]” (Cohn, 2004).
En Metodologías Tradicionales:

En metodologías más tradicionales, como el modelo en cascada, los requerimientos se
documentan en un “Documento de Requerimientos de Software” (SRS) de manera exhaustiva.
Este documento generalmente incluye una descripción detallada de todos los requerimientos
funcionales y no funcionales, interfaces, restricciones y otros elementos relevantes del sistema.

La documentación y especificación de requerimientos son fundamentales para guiar el


desarrollo de software y facilitar la comunicación entre todos los stakeholders involucrados. Un
enfoque meticuloso en esta etapa puede prevenir problemas significativos y malentendidos en
las fases posteriores del desarrollo de software.

C O NT I NU A R
Lección 6 de 12

4.4. Modelado conceptual y transformación a


artefactos

4.4. Modelado conceptual y transformación a


artefactos
Abordaremos una fase esencial en el ciclo de desarrollo de software: el modelado conceptual y su
posterior transformación en artefactos concretos de software. Este proceso es fundamental para
convertir ideas abstractas y requerimientos en modelos detallados que pueden ser
implementados y codificados. En esta sección, exploraremos cómo los conceptos teóricos y las
especificaciones de requerimientos se traducen en representaciones prácticas y funcionales que
sirven de base para el desarrollo de software.

Comenzaremos con una inmersión en el modelado conceptual, examinando cómo los


requerimientos y las ideas iniciales se convierten en modelos abstractos que capturan la esencia

del sistema propuesto. Discutiremos las técnicas y herramientas utilizadas para crear estos
modelos, enfatizando cómo ayudan a visualizar la estructura, el comportamiento y las
interacciones dentro del sistema.

Luego, nos centraremos en la transformación de estos modelos conceptuales en artefactos de


software, como diagramas de clases, bases de datos y código fuente. Esta sección es vital para
entender el puente entre la teoría y la práctica en el desarrollo de software, y proporcionará a los
estudiantes las habilidades necesarias para realizar esta transición de manera efectiva.

4.4.1. Principios y técnicas del modelado conceptual


El modelado conceptual en el desarrollo de software es el proceso de crear representaciones
abstractas de las partes y funcionalidades de un sistema. Esta subsección aborda los principios
fundamentales y las técnicas utilizadas en el modelado conceptual, enfatizando su importancia
en la traducción de requerimientos e ideas en diseños claros y manejables.

¿Cuáles son los fundamentos del modelado conceptual?

Abstracción y Representación:

El núcleo del modelado conceptual es la abstracción, que implica simplificar la complejidad del
mundo real en modelos manejables. Estos modelos ayudan a entender y comunicar las
características esenciales del sistema, omitiendo detalles innecesarios para el propósito del
diseño (Harel & Rumpe, 2004).

Captura de Requerimientos y Necesidades:



Un modelo conceptual efectivo comienza con una comprensión clara de los requerimientos del
sistema. Esto incluye tanto los requerimientos funcionales (lo que el sistema debe hacer) como
los no funcionales (cómo el sistema debe ser).
.
Veamos a continuación técnicas y herramientas de modelado:

Diagramas de Entidad-Relación (ER):



Utilizados para modelar la estructura de datos, especialmente en bases de datos. Los diagramas
ER representan entidades (objetos de datos) y las relaciones entre ellas, siendo fundamentales
en la fase de diseño de la base de datos.

Diagramas de Casos de Uso



Estos diagramas representan las funcionalidades del sistema desde la perspectiva del usuario.
Son útiles para capturar requerimientos funcionales y entender cómo los usuarios interactúan
con el sistema.
.

Diagramas de Actividades

Ayudan a visualizar el flujo de procesos o algoritmos dentro del sistema. Son especialmente
valiosos para modelar el flujo de trabajo y la lógica de negocio.

En síntesis, ¿cuál es la importancia del modelado


conceptual?
Comunicación y Comprensión

Los modelos conceptuales facilitan la comunicación entre los desarrolladores, diseñadores y
stakeholders. Ayudan a todos los involucrados a tener una visión compartida y clara del sistema
propuesto.

Fundamento para el Diseño y Desarrollo



Estos modelos sirven como una guía para las fases posteriores de diseño y desarrollo,
asegurando que el producto final refleje los requerimientos y expectativas originales.
.

Identificación de Problemas Potenciales



Durante el modelado conceptual, es posible identificar y abordar problemas potenciales en
etapas tempranas, lo que puede ahorrar tiempo y recursos significativos.

El modelado conceptual es, por lo tanto, una etapa esencial en el proceso de desarrollo de
software, proporcionando una base sólida para el diseño y la implementación efectivos de
sistemas de software.

4.4.2. De modelos conceptuales a artefactos de software


La transformación de modelos conceptuales en artefactos de software concretos es un proceso
crucial en el desarrollo de software. Esta subsección explora cómo los modelos abstractos se
convierten en componentes funcionales y tangibles de un sistema de software.

Veamos la transformación de modelos en artefactos:

De Diagramas a Diseño: Los diagramas conceptuales, como los diagramas de clases


UML, sirven como base para el diseño detallado de la arquitectura del software. Por
ejemplo, un diagrama de clases conceptual se puede convertir en una estructura de
clases en un lenguaje de programación específico, definiendo las entidades, sus
atributos y métodos (Booch, Rumbaugh & Jacobson, 2005).

Generación de Código a partir de Modelos: Algunas herramientas de modelado


ofrecen capacidades de generación de código, donde los elementos de los
diagramas UML se traducen automáticamente en esqueletos de código. Esto facilita
la coherencia entre el diseño y la implementación.

Modelado de Bases de Datos: Los diagramas de entidad-relación se utilizan para


diseñar la estructura de las bases de datos. Estos diagramas se transforman en
esquemas de bases de datos, definiendo tablas, campos, tipos de datos y relaciones.

¿Cómo se produce la integración del desarrollo y la


implementación?

DE SA RROL L O B A SA DO E N M ODE L OS: PRU E B A S B A SA DA S E N M ODE L OS:

En este enfoque, el modelo conceptual no solo guía el diseño, sino que también se integra
estrechamente con el desarrollo. Los modelos se mantienen actualizados a lo largo del ciclo de
vida del desarrollo, asegurando que los cambios en el código se reflejen en los modelos y
viceversa.
DE SA RROL L O B A SA DO E N M ODE L OS: PRU E B A S B A SA DA S E N M ODE L OS:

Los modelos conceptuales también pueden utilizarse para generar casos de prueba. Por
ejemplo, los diagramas de secuencia pueden ayudar a identificar escenarios de prueba críticos,
asegurando que todas las interacciones clave del sistema se prueben adecuadamente.

La transformación de modelos conceptuales en artefactos de software es un paso vital para


materializar los requerimientos y el diseño en un producto de software funcional. Este proceso no
solo implica la conversión técnica de modelos en código y estructuras de datos, sino también una
continua alineación entre la teoría y la práctica a lo largo del desarrollo del software.

C O NT I NU A R
Lección 7 de 12

4.5. Conclusiones

Al concluir el Módulo 4, hemos atravesado un viaje detallado a través del modelado conceptual y
la transformación de estos modelos en artefactos de software funcionales. Este módulo ha
proporcionado una comprensión integral de cómo los principios teóricos y los requerimientos
abstractos se traducen en representaciones prácticas y concretas, fundamentales para el
desarrollo exitoso de software.

Hemos explorado la importancia de los estándares, técnicas y herramientas de modelado,


reconociendo cómo UML y otros métodos ayudan a visualizar, comunicar y documentar la
estructura y el comportamiento de sistemas complejos. La capacidad de convertir conceptos
abstractos en modelos detallados y luego en componentes de software concretos es esencial para
cerrar la brecha entre la idea y la implementación.

Los diferentes tipos de diagramas UML, cada uno con su propósito y aplicación específicos, nos
han proporcionado un lenguaje común para abordar y resolver problemas complejos de diseño
de software. Además, la sección sobre la elección y especificación de requerimientos resaltó la
necesidad de un proceso estructurado y detallado para capturar lo que el software debe lograr,
asegurando que el producto final cumpla con las expectativas y necesidades del usuario.

Finalmente, la transformación de modelos conceptuales en artefactos de software nos ha


mostrado cómo las ideas iniciales y los diseños toman forma tangible en el mundo del software.
Esta capacidad no solo es fundamental para la creación de software que cumple con los
requerimientos específicos, sino que también es crucial para la innovación y adaptabilidad en un
campo en constante evolución.

En resumen, este módulo ha habilitado el espacio para el desarrollo de conocimientos y


habilidades fundamentales para el modelado y desarrollo efectivos de software. Estas
competencias son esenciales para navegar en el dinámico paisaje tecnológico de hoy y para
contribuir al desarrollo de soluciones de software que son robustas, eficientes y alineadas con los
objetivos del negocio y las necesidades del usuario.

C O NT I NU A R
Lección 8 de 12

Saber más

Sandobalin, J., & Iñiguez-Jarrín, C. (2023). Modelado del Aprovisionamiento de Infraestructura


en la Nube: Un Enfoque de Software como un Servicio. Revista Politécnica.

Modelado del Aprovisionamiento de Infraestructura en la Nube: Un Enfoque de Software


como un Servicio - Este artículo, publicado en la Revista Politécnica, se centra en el modelado
de infraestructuras en la nube utilizando un enfoque de Software como un Servicio. Aborda
aspectos importantes de la ingeniería de software orientada a modelos, DevOps y metodologías
ágiles, lo que lo hace especialmente pertinente para entender las prácticas actuales en el
aprovisionamiento de infraestructura en la nube y el modelado de software.

IR AL ENLACE

Jon Santavy. (2023). Mejores Prácticas de Modelado de Simulación. SimWell.

Mejores Prácticas de Modelado de Simulación - Este artículo proporciona una guía completa
sobre las mejores prácticas en el modelado de simulación. Cubre aspectos como la importancia
de la velocidad de ejecución, la organización y documentación del modelo, la interfaz de usuario
intuitiva, la detección de entradas incorrectas y la prevención de errores. También ofrece consejos
prácticos para mejorar la calidad del modelado y facilitar su actualización y mantenimiento.

IR AL ENLACE

Lola Burgueño (2023). ¿Estamos listos para que un LLM sea parte de nuestro equipo de
modelado software?

¿Estamos listos para que un LLM nos ayude a modelar? - Este artículo explora el uso de
modelos de lenguaje como ChatGPT en tareas de modelado de software. Investigadores
analizaron cómo ChatGPT puede construir diagramas de clases UML y trataron temas como la
corrección sintáctica y semántica de los modelos, la sensibilidad al contexto, el manejo de
conceptos de modelado, y la variabilidad en la generación de modelos. Los resultados sugieren
que, aunque los LLM tienen limitaciones, también ofrecen potencial para revolucionar la
ingeniería y educación en el modelado de software.

IR AL ENLACE
Lección 9 de 12

Actividades de repaso

1
¿Cuál de los siguientes es un estándar de modelado utilizado
principalmente para el diseño de sistemas complejos que pueden incluir
elementos de software y hardware?

BPMN

UML

ERD

SQL

SysML

SUBMIT

2
¿Qué tipo de diagrama UML se utiliza para representar la interacción
entre usuarios y el sistema, mostrando las funcionalidades del sistema
desde la perspectiva del usuario?

Diagrama de clases

Diagrama de secuencia

Diagrama de actividad

Diagrama de inactividad

Diagrama de casos de uso

SUBMIT

3
En el análisis de requerimientos, es suficiente documentar solo los
requerimientos funcionales, ya que los no funcionales no afectan
significativamente el diseño del sistema

Verdadero

Falso

SUBMIT
Lección 10 de 12

Video del módulo

Video
02:49

C O NT I NU A R
Lección 11 de 12

Referencias

Referencias

Ambler, S. W. (2004). The Object Primer: Agile Model-Driven Development with


UML 2.0. Cambridge University Press.

Booch, G., Rumbaugh, J., & Jacobson, I. (2005). The Unified Modeling Language
User Guide (2nd ed.). Addison-Wesley Professional.
Cohn, M. (2004). User Stories Applied: For Agile Software Development. Addison-
Wesley Professional.

Friedenthal, S., Moore, A., & Steiner, R. (2014). A Practical Guide


to SysML: The Systems Modeling Language (3rd ed.). Morgan
Kaufmann.

Gottesdiener, E. (2002). Requirements by Collaboration:


Workshops for Defining Needs. Addison-Wesley Professional.

Harel, D. y Rumpe, B. (2004) Meaningful modeling: what's the semantics of


“semantics”? Vol. 37, no. 10, pp. 64-72.

IBM Corporation. (2019). IBM Rational Software Architect.


https://www.ibm.com/products/software-architect

Microsoft. (2021). Microsoft Visio. https://www.microsoft.com/en-us/microsoft-


365/visio/flowchart-software

OMG (Object Management Group). (2017). Unified Modeling Language (UML).


https://www.omg.org/spec/UML/

Pilone, D., & Pitman, N. (2005). UML 2.0 in a Nutshell. O'Reilly Media.

Robertson, S., & Robertson, J. (2012). Mastering the Requirements Process: Getting
Requirements Right. Addison-Wesley.

Silver, B. (2009). BPMN Method and Style (2nd ed.). Cody-Cassidy Press.

Sparx Systems. (2020). Enterprise Architect. https://www.sparxsystems.com/

Wiegers, K., & Beatty, J. (2013). Software Requirements (3rd ed.). Microsoft Press.
Lección 12 de 12

Descarga de contenido

En el siguiente apartado podrás descargar el contenido del


módulo en PDF
M4 modelado y aplicacion practica en desarrollo de
software.pdf
16.6 MB

También podría gustarte