Cuando se desarrolla un sistema de software, es importante identificar los conceptos relevantes que deben incluirse en el software. Una forma de identificarlos es a través de la construcción de modelos conceptuales que se elaboran en las etapas tempranas del proceso de desarrollo de software, particularmente durante la etapa de análisis del sistema. Un modelo conceptual se define como “el modelo de los conceptos relevantes en un esfuerzo realizado con algún fin” (SE vocab – conceptual model).
Los modelos conceptuales permiten identificar los conceptos del dominio del problema y la relación entre ellos. Dominio del problema se refiere a la delimitación de un área de conocimiento o actividad que se caracteriza por el conjunto de conceptos y vocabulario usado y comprendido por los profesionales del área (SE vocab, domain). Desde la perspectiva de la ingeniería del software, el análisis del dominio es un proceso en el cual los conceptos, y sus respectivas relaciones, se identifican y se organizan para crear software dentro de un dominio particular (SE vocab, domain analysis).
El desarrollo del modelo conceptual del software bajo construcción permite entender el problema que se abordará en el proyecto de software, validar que los requisitos de los involucrados (stakeholders) han sido identificados correctamente (ISO 29148) y permiten la rastreabilidad a los requisitos del sistema. Por tanto, los modelos conceptuales están más orientados a entender el problema que a proponer su solución.
Los modelos conceptuales pueden modelar aspectos estructurales y de comportamiento de los sistemas. Por tanto, se pueden desarrollar distintos tipos de modelos conceptuales, siempre que estén orientados a entender el problema. Entre ellos se encuentran los modelos de flujos de datos y control. Modelos de estado, rastreabilidad de eventos, interacciones de usuario, modelos de objeto, modelos contextuales de sistemas, entre otros (ISO 29148). Los modelos conceptuales presentan el contexto del sistema, escenarios de uso, entidades del dominio principales, datos, información y flujos de trabajo (ISO 29148).
La elección del tipo de modelo dependerá del tipo de sistema que se esté analizando y de la experiencia de los desarrolladores de software (ISO 29148). Mientras que los sistemas críticos requieren un análisis riguroso de su comportamiento que puede ser expresado por modelos de estado y rastreabilidad de eventos, los sistemas de información requieren un análisis de los conceptos que deben procesarse y almacenarse en las bases de datos. Este material se enfocará en los modelos conceptuales de apoyo al desarrollo de sistemas de información. Particularmente, se abordarán las técnicas para el desarrollo de modelos de clases.