UNIVERSIDAD TECNOLÓGICA NACIONAL FACULTAD

Anuncio
UNIVERSIDAD TECNOLÓGICA NACIONAL
FACULTAD REGIONAL SANTA FE
DOCTORADO EN INGENIERÍA
Tesis Doctoral
UN MODELO INTEGRADO PARA LA
REPRESENTACIÓN DE PRODUCTOS CON
ESTRUCTURAS COMPLEJAS
Marcela Vegetti
Director: Dr. Horacio P. Leone
Co-directora: Dra. Gabriela P. Henning
Marzo, 2007
UNIVERSIDAD TECNOLÓGICA NACIONAL
FACULTAD REGIONAL SANTA FE
Doctorado en Ingeniería
Mención en Sistemas de Información
UN MODELO INTEGRADO PARA LA
REPRESENTACIÓN DE PRODUCTOS CON
ESTRUCTURAS COMPLEJAS
Marcela Vegetti
Director
Dr. Horacio Leone
Co-Directora
Dra. Gabriela Henning
Jurados de Tesis:
Dra. María Rosa Galli
Dr. Giancarlo Guizzardi
Dr. Jose Valdeni de Lima
Marzo, 2007
A Ivan, Facundo y Martina
A mis padres
AGRADECIMIENTOS
Quisiera agradecer en primer lugar a mis hijos Facundo y Martina, por soportar mi
ausencia de estos últimos meses con cariño y comprensión. A Iván y a mis padres por cubrir
esa ausencia; sin su apoyo y aliento constante no hubiese sido posible la realización del
presente trabajo.
A mi
director, el Dr. Horacio Leone, quien me brindó el espacio posible y las
herramientas para iniciarme en el camino de la investigación, además de sus guías y
consejos durante el desarrollo de este trabajo. Mi agradecimiento a mi codirectora, la Dra.
Gabriela Henning por su tiempo, formación y apoyo brindado en todo momento,
especialmente en el tedioso trabajo de correcciòn
A cada uno de los integrantes del CIDISI, muy especialmente a Manuel, Diego,
Celeste, Santiago y Luis, que con su esfuerzo y dedicación hicieron posible contar con las
herramientas computacionales que implementaron los modelos propuestos en esta tesis.
A mis compañeros de INGAR que colaboraron de alguna manera en este trabajo con
su ayuda desinteresada, brindándome importantes aportes y generando un ambiente de
trabajo propicio para el desarrollo del mismo. En especial a Silvio, quien siempre me alentó
para terminar esta tesis; y a Diego, por haber dedicado su tiempo a la lectura de esta tesis y
haber hecho importantes aportes.
A la Universidad Tecnológica Nacional y al Consejo Nacional de Investigaciones
Científicas y Técnicas (CONICET) por el aporte financiero, las herramientas y el material
brindado.
V
PREFACIO
Las empresas de producción industrial se desenvuelven en un contexto que les exige
incrementar su competitividad constantemente. Una de las estrategias empleadas con este
fin consiste en aumentar lo máximo posible los niveles de integración de todas las
actividades que a diario se desarrollan en las empresas, tanto en lo que respecta a la
gestión administrativa como a la producción de bienes físicos, lo cual en gran medida
implica, automatizar operaciones, compartir información y posibilitar la interoperación entre
aplicaciones. Internet es el más reciente capítulo en el largo camino hacia la integración
informática de los ambientes productivos, que comenzó por los años 60 con incorporación
de las herramientas CAD (“Computer Aided Design”), sistemas MRP (“Material Requirement
Planning”) y los primeros sistemas de gestión de inventarios.
Durante estas primeras etapas, la automatización se circunscribió a áreas
individuales de la empresa, no se incluyó a las interacciones entre las unidades de negocios
de la misma ni a las relaciones con clientes y proveedores. Posteriormente, los sistemas
MRP evolucionaron hacia los denominados MRP II, que apuntaron a la planificación de gran
parte de los recursos de manufactura dentro de una empresa. En la siguiente etapa, los
sistemas ERP (“Enterprise Resource Planning”), se centraron en la integración de las
diferentes áreas de una organización, permitiendo que éstas tengan una visión integral de
los distintos procesos de negocios intra-empresa.
Con el surgimiento de Internet, se tornó viable la integración entre empresas. Sin
embargo, al mismo tiempo que Internet brinda a las organizaciones la capacidad de
compartir información, las ha situado en un contexto de creciente competitividad, debido a
su exposición a mercados globales. En consecuencia, las empresas tuvieron que cambiar
sus formas de organizarse y hacer negocios para poder adaptarse a los nuevos
requerimientos: productos personalizados, de menor costo, mayor calidad y con ciclos de
vida más cortos. Estos nuevos requerimientos han ocasionado una explosión en la variedad
de productos, incorporando una exigencia nueva a los sistemas de información existentes.
En la actualidad, una empresa industrial debe ser lo suficientemente ágil para
responder a los frecuentes cambios que le presenta el mercado respecto a la demanda de
sus productos. Para dar respuesta a este requerimiento es importante que cada
organización comparta un modelo de productos común, que abarque todas las etapas del
ciclo de vida del mismo y que dé respuestas a las nuevas exigencias que impone sobre
estos modelos el avance de las Tecnologías de la Información y las comunicaciones.
VII
En virtud del interés de este tema, en esta Tesis se presenta la conceptualización
de un modelo integral de información de productos que concede mejoras tangibles e
intangibles en lo que respecta a la gestión de información. Dicho modelo cuenta, además,
con una flexibilidad considerable, ya que puede extenderse para cubrir las necesidades
específicas de cada empresa particular.
El modelo se sustenta en dos jerarquías de conceptos, que pueden definirse para
organizar la información relativa a los productos. Una de estas jerarquías especifica tres
niveles de abstracción en la definición de los productos. Los dos niveles superiores
representan información agregada de los productos, que sirve de soporte para las
actividades de toma de decisión de tipo estratégico-tácticas; en tanto, el último nivel de
abstracción se refiere a información detallada correspondiente a productos con existencia
física. La otra jerarquía propuesta, permite representar las relaciones entre materias primas,
semielaborados, y productos finales definidos en un mismo nivel de la jerarquía de
abstracción.
Para la introducción del modelo propuesto se ha adoptado una representación
híbrida, que utiliza tecnología de objetos. Esta última, con sus capacidades de
encapsulamiento, herencia y composición, contribuye a la generación de un modelo de
objetos extensible y adaptable a diferentes dominios. Esta potencialidad resulta
particularmente útil, pues diferentes entornos productivos imponen distintos requerimientos
al modelo de productos.
Las ambigüedades del modelo de objetos se han restringido mediante la definición
de axiomas, especificados en el leguaje O-Telos, un lenguaje de modelado conceptual que
integra propiedades de lenguajes deductivos y orientados a objetos. Esta especificación
permite la definición de un modelo computacional integrado en la base de objetos deductiva
ConceptBase.
El modelo se ha utilizado para la representación de información estructural de
productos correspondiente a dos casos de estudio reales, los cuales, no sólo permitieron
tomar contacto directo con la situación actual que evidencian las empresas industriales, en
cuanto a la gestión de información de productos, sino también afrontar problemas de
dimensiones reales que permitieron validar el modelo conceptual propuesto.
En esta Tesis se discute, además, el empleo del modelo propuesto para la definición
de dos aplicaciones que persiguen objetivos diferentes, y que se basan en tecnologías
disímiles. Por un lado, se presenta un sistema de procesamiento de BOMs (“Bill of
Materials”), desarrollado con tecnología J2EE, el cual permite verificar la factibilidad del
diseño e implementación de un sistema de información basado en el modelo previamente
presentado. Por otro lado, se introduce un prototipo basado en la tecnología de la Web
VIII
Semántica, que utiliza la conceptualización propuesta para definir una ontología que permite
la integración semántica de información de productos almacenada en repositorios
distribuidos.
Los resultados parciales del trabajo de investigación realizado y directamente
vinculados a esta Tesis, han sido plasmados y divulgados, fundamentalmente, a través de
las siguientes publicaciones:
PRoduct ONTOlogy. Defining product-related concepts for logistics planning
activities.
Diego Giménez, Marcela Vegetti, Gabriela Henning y Horacio
Leone. Computers in Industry. En prensa.
Product Ontology. Defining Product-related Concepts for Production Planning
Activities. Diego Giménez, Marcela Vegetti, Gabriela Henning y Horacio
Leone. Computer-Aided Chemical Engineering, 21, Elsevier, 2219–2224
(2006).
An Object-Oriented Model for Complex Bill of Materials in Process Industries.
Marcela Vegetti, Gabriela Henning y Horacio Leone. Brazilian Journal of
Chemical Engineering,19, 491-497 (2002).
An Object-Oriented Framework for Bill of Materials in Process Industries.
Marcela Vegetti, Gabriela Henning y Horacio Leone. Computer-Aided
Chemical Engineering, 10, Elsevier, 991-996 (2002).
Además, los resultados han sido presentados como contribuciones en los siguientes
congresos nacionales e internacionales:
An Object Oriented Model for Complex Bill of Materials in Process Industries.
Marcela Vegetti, Gabriela Henning y Horacio Leone. ENPROMER 2001- 3rd
Mercosur Congress on Process Systems Engineering – 1st Mercosur
Congress on Chemical Engineering, Santa Fe – Argentina, 16 al 20 de
setiembre de 2001.
Un Modelo de Estructura de Productos para Industrias de Procesos. Marcela
Vegetti, Gabriela Henning y Horacio Leone. CAIP 2001 - 5º Congreso
Interamericano de Computación Aplicada a la Industria de Procesos, Campos
do Jordão – Brasil, 22 al 25 de octubre de 2001.
Hacia un Framework Orientado a Objetos para Bill of Materials Complejos.
Marcela Vegetti, Gabriela Henning y Horacio Leone. 32 JAIIO - 32 Jornadas
Argentinas de Informática e Investigación Operativa, Buenos Aires –
Argentina, 1 al 5 de septiembre de 2003.
IX
A PDM System for the Derivation of Products with Complex Structure in
Process Industries. Marcela Vegetti, Gabriela Henning y Horacio Leone. 33
JAIIO - 33 Jornadas Argentinas de Informática e Investigación Operativa,
Córdoba – Argentina, 20 al 24 de septiembre de 2004.
PRoduct ONTOlogy. Definition of an Ontology for Complex Product Modelling
Domain. Marcela Vegetti, Gabriela Henning y Horacio Leone. ENPROMER
2005 – 2nd Mercosur Congress on Chemical Engineering and 4th Mercosur
Congress on Process Systems Engineering, Río de Janeiro – Brasil, 14 al 18
de Agosto de 2005.
Es importante mencionar que el trabajo de investigación que condujo al desarrollo del
modelo de productos propuesto en esta Tesis se llevó a cabo en el marco de un proyecto de
investigación mayor, vinculado a la integración informática de organizaciones industriales. El
proyecto posee como objetivo último alcanzar la integración informática de la cadena de
suministros desde una perspectiva intra- e inter-organizacional. Debe remarcarse que, para
el logro de esta meta, el modelo de productos cumple un rol fundamental. En este contexto,
se han desarrollado investigaciones que dieron lugar a los siguientes artículos que, si bien
no están directamente ligados a la propuesta expuesta en esta Tesis, hacen a un
conocimiento acabado del dominio de trabajo en que ésta se enmarca:
SCOntology: A formal approach towards a unified and integrated view of the
supply chain. Silvio Gonnet, Marcela Vegetti, Gabriela Henning y Horacio
Leone. En: Adaptive Technologies and Business Integration: Social,
Managerial and Organizacional Dimensions. M. Cunha, B. Cortes y G. Putnik
Editores. Idea Group, Inc., 137-158 (2007).
Information Logistics for Supply Chain Management within Process Industry
Environments. Marcela Vegetti, Silvio Gonnet, Gabriela Henning y Horacio
Leone. Computer-Aided Chemical Engineering, 20, Elsevier, 1231-1236.
(2005)
Towards a Supply Chain Ontology of Information Logistics within Process
Industry Environments. Marcela Vegetti, Silvio Gonnet, Gabriela Henning, y
Horacio Leone. ENPROMER 2005 – 2nd Mercosur Congress on Chemical
Engineering and 4th Mercosur Congress on Process Systems Engineering,
Río de Janeiro – Brasil, 14 al 18 de Agosto de 2005.
X
Índice
PREFACIO _______________________________________________________________ VII
ÍNDICE _________________________________________________________________ XI
LISTA DE FIGURAS _________________________________________________________ XV
LISTA DE TABLAS__________________________________________________________ XXI
I. EL MODELO DE PRODUCTOS EN LAS ORGANIZACIONES INDUSTRIALES ___________________1
I.1. Introducción ________________________________________________________ 2
I.2. Información de productos durante su ciclo de vida __________________________ 2
I.2.1. Sistemas que manejan la información de productos ________________________ 4
I.2.2. Estructura de productos ______________________________________________ 6
I.3. Influencia de las Tecnologías de la Información y de las Comunicaciones
en el modelo de productos ___________________________________________ 13
I.4. Análisis de las propuestas más relevantes _______________________________ 18
I.4.1. Propuestas tradicionales _____________________________________________ 18
I.4.2. Nuevos enfoques __________________________________________________ 22
I.4.3. Otros enfoques no tradicionales _______________________________________ 26
I.5. Necesidades a satisfacer por un modelo de productos ______________________ 29
I.6. Organización de la Tesis _____________________________________________ 31
II. DOMINIO DE TRABAJO. CARACTERIZACIÓN Y DEFINICIÓN DE SU ALCANCE ______________ 33
II.1. Introducción _______________________________________________________ 33
II.2. Clasificación de procesos productivos ___________________________________ 33
II.2.1.
Clasificación de procesos productivos basada en el flujo de materiales ______ 34
II.2.2.
Clasificación de ambientes productivos basada en el concepto de CODP
(Customer Order Decoupling Point) __________________________________ 42
II.3. Casos de estudio ___________________________________________________ 48
II.3.1.
Modelo de productos de una planta de producción de golosinas ___________ 49
II.3.2.
Modelo de productos de una industria frigorífica ________________________ 63
II.4. Conclusiones ______________________________________________________ 76
XI
____________________________________________________________________________ Índice
III. MODELO DE PRODUCTOS. DEFINICIÓN ________________________________________ 79
III.1. Introducción _______________________________________________________ 79
III.2. jerarquías relacionadas con la información de productos ____________________ 80
III.2.1.
Estructura de productos en los distintos niveles de abstracción____________ 84
III.3. Nivel de Abstracción Familia __________________________________________ 88
III.4. Nivel De Abstracción Conjunto de Variantes _____________________________ 102
III.5. Nivel de Abstracción Producto ________________________________________ 112
III.6. Administración de restricciones _______________________________________ 114
III.7. Sistema de Generación de BOMs _____________________________________ 120
III.7.1.
Actividades de creación de los miembros de los distintos niveles de abstracción
de productos __________________________________________________ 121
III.8. Conclusiones _____________________________________________________ 127
IV. MODELO DE PRODUCTOS. APLICACIONES _____________________________________ 129
IV.1. Introducción ______________________________________________________ 129
IV.2. Aplicación del Modelo a los Productos de la Planta de Golosinas_____________ 130
IV.2.1.
Especificación y gestión de productos definidos a nivel de Familia ________ 134
IV.2.2.
Especificación y gestión de conjuntos de variantes ____________________ 139
IV.2.3.
Especificación y gestión de productos_______________________________ 148
IV.3. Aplicación del Modelo a Productos de la Industria Frigorífica ________________ 153
IV.4. Conclusiones _____________________________________________________ 165
V. PROTOTIPO DE SISTEMA DE PROCESAMIENTO DE BOMS __________________________ 167
V.1. Introducción ______________________________________________________ 167
V.2. Arquitectura y tecnologías usadas en la implementación del prototipo _________ 167
V.3. Funcionalidades del Prototipo ________________________________________ 173
V.4. Definición de Familias_______________________________________________ 175
V.5. Definición de Conjuntos de Variantes___________________________________ 182
V.6. Definición de Productos _____________________________________________ 188
V.7. Conclusiones _____________________________________________________ 191
VI. USO DEL MODELO PROPUESTO EN UNA APLICACIÓN BASADA EN LA WEB SEMÁNTICA ____ 193
VI.1. Introducción ______________________________________________________ 193
VI.2. Las ontologías como pilares de la Web Semántica ________________________ 196
VI.3. Arquitectura de la Web Semántica _____________________________________ 199
VI.4. Un Primer Paso Hacia la Definición de un Sistema PDM Basado en la Web
Semántica _______________________________________________________ 202
VI.4.1.
Definición de PRoduct ONTOlogy __________________________________ 205
XII
____________________________________________________________________________ Índice
VI.4.2.
Definición de una arquitectura para integrar información de productos _____ 213
VI.5. Conclusiones _____________________________________________________ 219
VII. CONCLUSIONES Y FUTUROS TRABAJOS ______________________________________ 221
VII.1.Introducción ______________________________________________________ 221
VII.2.Principales Contribuciones ___________________________________________ 221
VII.3.Trabajos Futuros___________________________________________________ 227
VII.3.1.
Evolución del modelo conceptual __________________________________ 228
VII.3.2.
Evolución de PRoduct ONTOlogy y las ontologías locales ______________ 229
VII.3.3.
Evolución del prototipo de sistema DPDM ___________________________ 230
REFERENCIAS ____________________________________________________________ 231
APÉNDICE A. DEFINICIÓN DE VISTAS EN CONCEPTBASE _____________________________ 243
A.1. Introducción ______________________________________________________ 243
A.2. Definición de Consultas y Vistas en ConceptBase ________________________ 243
A.2.1.
Base de conocimientos y formas de representación. Conceptos generales _ 244
A.2.2.
Sublenguaje Predicativo CBL_____________________________________ 244
A.2.3.
Reglas Deductivas y Restricciones ________________________________ 246
A.2.4.
Consultas ____________________________________________________ 247
A.2.5.
Vistas _______________________________________________________ 248
A.3. Algunas de las Vistas Definidas en el Modelo Propuesto ___________________ 251
APÉNDICE B. ESPECIFICACIÓN OWL DE PRONTO __________________________________ 257
B.1. Introducción ______________________________________________________ 257
B.2. Elementos del lenguaje OWL _________________________________________ 257
B.2.1.
Clases ______________________________________________________ 257
B.2.2.
Propiedades _________________________________________________ 267
B.2.3.
Individuos ___________________________________________________ 270
B.3. Código OWL de PRoduct ONTOlogy ___________________________________ 271
B.3.1.
Definición de conceptos incluidos en PRONTO ______________________ 272
XIII
____________________________________________________________________________ Índice
XIV
Lista de Figuras
I. EL MODELO DE PRODUCTOS EN LAS ORGANIZACIONES INDUSTRIALES _________________ 1
|Figura I.1. Ciclos de vida de un producto _____________________________________ 3
Figura I.2. Principales módulos de un sistema PDM _____________________________ 6
Figura I.3. Especialización del concepto de parte _______________________________ 7
Figura I.4. Bill of Materials de un producto final _________________________________ 8
Figura I.5. Bill of Materials aplanado de un producto final _________________________ 8
Figura I.6. BOMs de un único nivel ___________________________________________ 9
Figura I.7. Diferentes tipos de estructuras de productos _________________________ 11
Figure I.8: Estructuras alternativas __________________________________________ 12
Figura I.9. Gestión de Variantes. Estrategia 1- BOM básico ______________________ 19
Figura I.10. Gestión de Variantes. Estrategia 1- BOM parte idéntica________________ 20
Figura I.11. Gestión de Variantes. Estrategia 1 – BOM más - menos _______________ 20
Figura I.12. Gestión de Variantes. Estrategia 1 – BOM múltiple ___________________ 21
Figura I.13. Manejo de Variantes. Estrategia 3_________________________________ 21
Figura I.14. Arquitectura de un sistema de procesamiento de BOMs generativo ______ 23
Figura I.15. Conceptos asociados a la propuesta OOBOM _______________________ 26
Figura I.16. Patrones incluidos en el lenguaje propuesto por Gzara y colab. (2003)____ 28
Figura I.17. Vista de los conceptos básicos de la propuesta de Mänisto y colab (2001) _ 29
II. DOMINIO DE TRABAJO. CARACTERIZACIÓN Y DEFINICIÓN DE SU ALCANCE ______________ 33
Figura II.1 Clasificación de procesos productivos_______________________________ 34
Figura II.2. Una posible clasificación de sustancias _____________________________ 39
Figura II.3. Ejemplo de representación STN___________________________________ 41
Figura II.4. Algunos de los conceptos involucrados en una representación STN
para un proceso con etapas “batch” ____________________________________ 41
Figura II.5 Entornos productivos definidos por la posición del CODP _______________ 43
Figura II.6 Estructura genérica de un producto_________________________________ 51
Figura II.7. Árbol de estructura multinivel para el producto PT112608
(FrutalRelleno5x750GR) _____________________________________________ 51
Figura II.8. Estructuras de tres semielaborados tomados como ejemplo_____________ 54
Figura II.9. Ejemplo de caramelos desenvueltos con estructuras similares ___________ 55
Figura II.10. Estructura de caramelos desenvueltos de diferentes sabores frutales ______
_______________________________________________________________ 56
Figura II.11. Composición de distintos rellenos frutales __________________________ 57
XV
_____________________________________________________________________Lista de Figuras
Figura II.12. Composición de las masas frutales _______________________________ 59
Figura II.13. Composición de rellenos sabor frutilla _____________________________ 61
Figura II.14. Algunos productos de valor comercial que se pueden obtener
a partir del cuarto trasero ____________________________________________ 66
Figura II.15 Estructura de los productos intermedios CCC1tipo1, CCCtipo2 y CCCtipo3 73
Figura II.16 Ejemplo de un producto que participa en una estructura híbrida _________ 74
Figura II.17 Diferentes semielaborados a partir de los cuales puede obtenerse el producto
MP1CarneCocida. __________________________________________________ 74
III. MODELO DE PRODUCTOS. DEFINICIÓN ________________________________________ 79
Figura III.1. Distintos niveles en la abstracción de productos______________________ 81
Figura III.2. Tres niveles de abstracción en la definición de un producto_____________ 83
Figura III.3. Estructuras de composición y de descomposición ____________________ 84
Figura III.4. SH para BolsínFrutalROC, instancia del nivel ConjuntodeVariantes ______ 86
Figura III.5. SH correspondiente a CarameloFrutalEnv, instancia del nivel Familia_____ 87
Figura III.6. Modelo de productos propuesto __________________________________ 88
Figura III.7. Conceptos del nivel Familia______________________________________ 89
Figura III.8. Modelo asociado a la clase Relación ______________________________ 92
Figura III.9. Ejemplos de instancias de ValorRestringido _________________________ 94
Figura III.10. Mecanismo de inferencia de los requerimientos de una familia _________ 98
Figura III.11. Diagrama de clases ConjuntodeVariantes ________________________ 103
Figura III.12. Clase Cambio y conceptos relacionados _________________________ 107
Figura III.13. Definición de Producto________________________________________ 112
Figura III.14. Diagrama de clases asociadas a la administración de restricciones ____ 115
Figura III.15. Módulos del sistema de procesamiento de BOMs __________________ 120
Figura III.16. Diagrama de Interacción correspondiente a la creación de
una instancia de la Clase FamiliaC ____________________________________ 122
Figura III.17. Diagrama de interacción CrearEstructuraC________________________ 122
Figura III.18. Diagrama de Interacción asociado a la creación de una instancia de la clase
ConjuntodeVariantesC _____________________________________________ 123
Figura III.19. Diagrama de Interacción asociado a la creación de una instancia ______ 124
de la clase Modificación _________________________________________________ 124
Figura III.20. Diagrama de interacción asociado a la creación de una instancia de la clase
ProductoC._______________________________________________________ 125
XVI
_____________________________________________________________________Lista de Figuras
IV. MODELO DE PRODUCTOS. APLICACIONES _____________________________________ 129
Figura IV.1. Jerarquía de abstracción de la familia CarameloFrutalEnv ____________ 131
Figura IV.2. Jerarquía de abstracción de tipo FamiliaS correspondiente a PapelEnvoltorio
______________________________________________________________ 133
Figura IV.3. Jerarquía de abstracción de tipo FamiliaC correspondiente a
CarameloFrutalDes ________________________________________________ 134
Figura IV.4. Jerarquía de abstracción del tipo FamiliaS correspondiente a
PapelSeparador___________________________________________________ 134
Figura IV.5 Definición de familia CarameloFrutalEnv ___________________________ 135
Figura IV.6 Árbol de composición de la familia CarameloFrutalEnv________________ 137
Figura IV.7. Resultado de la consulta FamiliaDerivada (Especificación III. 16) _______ 138
Figura IV.8. Conjuntos de variantes VaritaKIM y BolsínFrutalROC ________________ 140
Figura IV.9 Resultado de la vista estructuraVaritaKIM __________________________ 142
Figura IV.10 Resultado de la vista estructuraBolsínROC ________________________ 143
Figura IV.11 Familias componentes de BolsínFrutalROC y VaritaKIM _____________ 144
Figura IV.12. Ejemplo de preselección de conjuntos de variantes _________________ 145
Figura IV.13. Aplicación de las preselecciones de BolsínFrutalROC ______________ 146
Figura IV.14. Definición de Productos en el caso de estudio de la planta de golosinas 150
Figura IV.15. Restricción de obligatoriedad que aplica a PapelSeparador __________ 150
Figura IV.16. Restricción de incompatibilidad aplicable a OvaloFrutal______________ 151
Figura IV.17. Restricción de obligatoriedad en SE508219
(VaritaKIMFrutillaEnv) ______________________________________________ 152
Figura IV.18. Ejemplo de consulta VerIncompatibles ___________________________ 152
Figura IV.19. Familias de productos intermedios de la industria cárnica,
sus estructuras y sus miembros ______________________________________ 153
Figura IV.20. Estructura SECarneCocIdaCongeladaSTR _______________________ 155
Figura IV.21. Resultado de la consulta InfoCarneCocidaCongelada _______________ 157
Figura IV.22. Ejemplo de aplicación de la donsulta VerSTRalternativas ____________ 159
Figura IV.23. Resultado de efectuar la consulta InfoCuadrilConTapa ______________ 161
Figura IV.24. Resultado Parcial Vista RequerimientosFamilia aplicada a
CuadrilConTapa __________________________________________________ 162
Figura IV. 25. Definición del conjunto de variantes SECarneCocidaReb ____________ 163
Figura IV. 26. Resultado de la consulta denominada estructuraSECarneCocidaReb __ 164
Figura IV.27. Consulta VerMiembrosCV aplicada a SECarneCocidaReb ___________ 165
V. PROTOTIPO DE SISTEMA DE PROCESAMIENTO DE BOMS __________________________ 167
Figura V.1. Arquitectura J2EE_____________________________________________ 169
Figura V.2. Arquitectura de COOBOM ______________________________________ 170
Figura V.3. Diagrama de paquetes, interrelación entre los conceptos que conforman
COOBOM _______________________________________________________ 171
XVII
_____________________________________________________________________Lista de Figuras
Figura V.4. Relaciones entre las clases Familia de los paquetes de las
distintas capas
_________________________________________________ 172
Figura V.5 Flujo de comunicación dentro de la aplicación _______________________ 173
Figura V.6. Diagrama de casos de uso principal de la aplicación _________________ 174
Figura V.7. Formulario para la creación de usuarios ___________________________ 175
Figura V.8. Casos de uso que extienden Gestionar Familia _____________________ 176
Figura V.9. Listado de Familias “abiertas” cargadas en el sistema ________________ 177
Figura V.10. Listado de Familias “cerradas” cargadas en el sistema_______________ 177
Figura V.11. Pantalla para la creación de una Familia __________________________ 178
Figura V.12. Pantalla para la edición la información de una Familia _______________ 178
Figura V.13. Pantalla que permite la creación de las estructuras de una Familia _____ 179
Figura V.14. Creación de una estructura de composición _______________________ 180
Figura V.15. Creación de la relación para el componente CarameloFrutalDes _______ 180
Figura V.16. Visualización de la estructura de la familia CarameloFrutalEnv. Parte 1 _ 181
Figura V.17. Visualización de la estructura de la familia CarameloFrutalEnv. Parte 2 _ 182
Figura V.18. Reporte de generado para la familia CarameloFrutalEnv _____________ 182
Figura V.19. Caso de uso Gestionar Conjunto de Variantes _____________________ 183
Figura V.20. Caso de uso Gestionar Estructura de Conjunto de Variantes __________ 184
Figura V.21. Listado de conjuntos de variantes cargados en el sistema ____________ 184
Figura V.22. Pantalla que permite la creación del conjunto de variantes VaritaKIM ___ 185
Figura V.23. Pantalla que permite la edición del conjunto de variantes VaritaKIM ____ 185
Figura V.24. Gestión del conjunto de variantes VaritaKIM - Preselección de
PapelEnvoltorio ___________________________________________________ 186
Figura V.25. Gestión del conjunto de variantes VaritaKIM - Preselección
CarameloFrutalDes ________________________________________________ 187
Figura V.26. Gestión del Conjunto de Variantes VaritaKIM- Eliminación de
PapelSeparador___________________________________________________ 188
Figura V.27. Casos de uso asociados a Gestionar Producto _____________________ 189
Figura V.28. Creación del Producto SE508219 (VaritaKIMFrutillaEnv)_____________ 189
Figura V.29. Gestión del Producto SE508219 – Selección PapelEnvoltorio_________ 190
Figura V.30. Gestión del Producto SE508219 – Selección CarameloFrutalDes______ 191
VI. USO DEL MODELO PROPUESTO EN UNA APLICACIÓN BASADA EN LA WEB SEMÁNTICA ____ 193
Figura V.1. Distintos niveles de integración informática _________________________ 195
Figura VI.2. Capas de la arquitectura de la Web Semántica _____________________ 200
Figura VI.3. Capas que suelen participar en la arquitectura de aplicaciones de la
Web Semántica____________________________________________________ 201
Figura VI.4. Árbol de estructura de la familia CarameloFrutalEnv _________________ 203
Figura VI.5. Vista de la ontología SUMO en el editor de ontologías Protégé_________ 206
Figura VI.6. Información brindada por Protégé 4 beta acerca de PRONTO _________ 206
Figura VI. 7. Taxonomía de PRONTO ______________________________________ 208
XVIII
_____________________________________________________________________Lista de Figuras
Figura VI.8. Axioma de clase de FamiliaC ___________________________________ 209
Figura VI.9. Axioma de clase correspondiente a FamiliaEnsamblada ______________ 210
Figura VI.10. Definición de una partición de valores ___________________________ 211
Figura IV.11. Relaciones entre las ontologías utilizadas ________________________ 212
Figura VI.12. Clasificación de instancias efectuada con un razonador. _____________ 212
Figura VI. 13. Arquitectura propuesta para una red colaborativa de empresas de
producción _______________________________________________________ 213
Figura VI.14. Roles que pueden tomar los nodos de la arquitectura propueta _______ 214
Figura VI.15. Diagrama de secuencias correspondiente a una consulta sobre
estructuras_______________________________________________________ 215
Figura VI.16. Interfaz de la aplicación ejecutándose en el nodo A_________________ 216
Figura VI.17. Primer nivel del la jerarquía estructural de CarameloFrutaEnv ________ 217
Figura VI.18. Expansión de una de las ramas de la estructura de CarameloFrutaEnv _ 218
Figura VI.19. Alternativas para la obtención de un componente __________________ 219
VII. CONCLUSIONES Y FUTUROS TRABAJOS ______________________________________ 221
Figura VII.1. Modelo de productos propuesto_________________________________ 223
XIX
Lista de Tablas
I. EL MODELO DE PRODUCTOS EN LAS ORGANIZACIONES INDUSTRIALES _________________ 1
Tabla I.1: Listado indentado de componentes del producto P1 _____________________ 9
Tabla I.2: Listado de componentes del producto P1 _____________________________ 9
Tabla I.3: Listado de componentes del producto C1 ____________________________ 10
Tabla I.4: Listado de componentes del producto E1 ____________________________ 10
II. DOMINIO DE TRABAJO. CARACTERIZACIÓN Y DEFINICIÓN DE SU ALCANCE ______________ 33
Tabla II.1 Comparación de diferentes entornos productivos ______________________ 44
Tabla II.2. Clasificación de diferentes tipos de industria de acuerdo a la
posición del CODP y a la orientación de las inversiones.____________________ 46
Tabla II.3. Comparación de la información de productos en entornos MTS y ETO _____ 48
Tabla II.4. BOM de un nivel del producto PT112608 (FrutalRelleno5x750GR)________ 52
Tabla II.5. BOM de un nivel del producto PT109446 (RedondoFrutaKIM5x750GR) ____ 53
Tabla II.6. BOM de un nivel del producto PT1009449 (VaritaKIM5X750GR)__________ 53
Tabla II.7. BOM de un nivel del producto SE508219 (VaritaKIMFrutillaEnv) __________ 53
Tabla II.8. BOM de un nivel del producto SE511605 (BolsínFrutilla5GREnv) _________ 53
Tabla II.9. BOM de un nivel del producto SE511714 (FrutillaKIM5GREnv) ___________ 54
Tabla II.10. BOM de un nivel del producto SE508482 (BolsinFrutillaZ) ______________ 55
Tabla II.11. BOM de un nivel del producto SE411614 (BolsínFrutilla5GRDes) ________ 55
Tabla II.12. BOM de un nivel del producto SE408215 (BolsínFrutillaDes) ____________ 55
Tabla II.13. BOM de un nivel del producto SE808943 (RellenoPera) _______________ 56
Tabla II.14. BOM de un nivel del producto SE808944 (RellenoCereza) _____________ 57
Tabla II.15. BOM de un nivel del producto SE808945 (RellenoFrutilla) ______________ 57
Tabla II.16. BOM de un nivel del producto SE808946(RellenoPomelo)______________ 57
Tabla II.17. BOM de un nivel del producto SE808947 (RellenoLima) _______________ 57
Tabla II.18. BOM de un nivel del producto SE609150 (MasaPera) _________________ 58
Tabla II.19. BOM de un nivel del producto SE609152 (MasaCereza) _______________ 58
Tabla II.20. BOM de un nivel del producto SE609259 (MasaFrutilla)________________ 58
Tabla II.21. BOM de un nivel del producto SE609149 (MasaPomelo) _______________ 59
Tabla II.22. BOM de un nivel del producto SE60915 (MasaLima) __________________ 59
Tabla II.23. BOM de un nivel del producto SE609198 (MasaFrutillaMIX) ____________ 60
Tabla II.24. BOM de un nivel del producto SE313862 (MasaFrutillaOK) _____________ 60
Tabla II.25. BOM de un nivel del producto SE311862 (MasaFrutillaEFE) ____________ 60
Tabla II.26. BOM de un nivel del producto SE613935 (MasaCerezaOK) ____________ 61
XXI
_____________________________________________________________________ Lista de Tablas
Tabla II.27. BOM de un nivel del producto SE608394 (MasaCerezaA) ______________ 62
Tabla II.28. BOM de un nivel del producto SE609109 (MasaCerezaEFE)____________ 62
Tabla II.29. Algunos cortes frescos ofrecidos. Marca A. Mercado USA ______________ 63
Tabla II.30. Algunos cortes frescos ofrecidos. Marca B. Mercado Alemania __________ 63
Tabla II.31. Ejemplos de diferentes carnes cocidas congeladas ___________________ 64
Tabla II.32. Categorización del ganado bovino en base al peso ___________________ 65
Tabla II.33. Tipificación del ganado bovino y destino del mismo ___________________ 65
Tabla II.34. Diferentes calidades de ganado bovino_____________________________ 65
Tabla II.35. Descomposición O1CuartoTCorte1 aplicada sobre el producto CuartoTCorte1
_______________________________________________________________ 67
Tabla II.36. Descomposición OP2CuartoTCorte1 aplicada sobre el producto
CuartoTCorte1_____________________________________________________ 68
Tabla II.37. Descomposición OP1CuadrilCT aplicada sobre el producto CuadrilCT ____ 69
Tabla II.38. Descomposición OP2CuadrilCT aplicada sobre el producto CuadrilCT ____ 69
Tabla II.39. Descomposición OP3CuadrilCT aplicada sobre el producto CuadrilCT ____ 69
Tabla II.40. Descomposición OP1TapaCuadril aplicada sobre el productoTapaCuadril _ 69
Tabla II.41. Descomposición OP2TapaCuadril aplicada sobre TapaCuadril __________ 70
Tabla II.42. Descomposición OP3TapaCuadril aplicada sobre el producto TapaCuadril_ 70
Tabla II.43. Descomposición OP1NalgaDeAdentroST aplicada sobre el producto
NalgaDeAdentroST _________________________________________________ 71
Tabla II.44. Descomposición OP1NalgaDeAdentroCT aplicada sobre el producto
NalgaDeAdentroCT _________________________________________________ 71
Tabla II.45. Descomposición OP2NalgaDeAdentroCT aplicada sobre el producto
NalgaDeAdentroCT _________________________________________________ 71
Tabla II.46. BOM de un nivel para el producto final CCCCub1 ____________________ 72
Tabla II.47. BOM de un nivel para el producto final CCCCub2 ____________________ 72
Tabla II.48. BOM de un nivel para el producto final CCCCub3 ____________________ 72
Tabla II.49. BOM de un nivel del producto CCCtipo1 ____________________________ 73
Tabla II.50. BOM de un nivel del producto CCCtipo2 ____________________________ 73
Tabla II.51. BOM de un nivel del producto CCCtipo3 ____________________________ 73
Tabla II.52. Composición de algunos de los productos finales del negocio de carnes
cocidas __________________________________________________________ 75
IV.
MODELO DE PRODUCTOS. APLICACIONES __________________________________ 129
Tabla IV.1. Conjuntos de variantes de CarameloFrutalEnv ______________________ 132
Tabla IV.2. Jerarquías de abstracción correspondientes a dos familias de
carnes cocidas____________________________________________________ 154
Tabla IV.3. Familias de las cuales se puede obtener MP2CarneCocida ____________ 157
XXII
_____________________________________________________________________ Lista de Tablas
VI.
USO DEL MODELO PROPUESTO EN UNA APLICACIÓN BASADA EN LA WEB SEMÁNTICA _ 193
Tabla VI.1. Distribución de productos en las diferentes organizaciones ____________ 203
Tabla VI.2. Expresividad de la ontología ____________________________________ 207
VI.
USO DEL MODELO PROPUESTO EN UNA APLICACIÓN BASADA EN LA WEB SEMÁNTICA _ 193
Tabla VI.1. Distribución de productos en las diferentes organizaciones ____________ 203
Tabla VI.2. Expresividad de la ontología ____________________________________ 207
APÉNDICE A. DEFINICIÓN DE VISTAS EN CONCEPTBASE_____________________________ 243
Tabla A.1: Formato de sentencias en un frame en CB__________________________ 245
Tabla A.2: Formato de una fórmula ________________________________________ 245
Tabla A.3: Posibles alternativas para “literal1” ________________________________ 245
Tabla A.4: Posibles alternativas para “literal2” ________________________________ 246
APÉNDICE B. ESPECIFICACIÓN OWL DE PRONTO __________________________________ 257
Tabla B.1. Restricciones de propiedad definidas en OWL _______________________ 259
XXIII
_____________________________________________________________________ Lista de Tablas
XXIV
Lista de Siglas
Sigla
Significado
AH
Abstraction Hierarchy
ANSI
American National Standards Institute
API
Application Programming Interface
ATO
Assemble-to-Order
BG
BOM Genérico
BOM
Bill of Materials
CAD
Computer Aided Design
CCC
Carne Cocida Congelada
CCE
Carne Cocida Enlatada
CG
Componente Genérico
CODP
Customer Order Decoupling Point
COOBOM Complex Object Oriented BOM
CORBA
Common Object Request Broker Architecture
CPC
Collaborative Product Commerce
CPD
Collaborative Product Development
CRC
Class, Responsability, Collaboration
DCOM
Distributed Component Object Model
DL
Description Logics
DOS
Distribution-on-Stock
DTD
Document Type Definition
DTO
Data Transfer Object
EE
Estructura de Elemento
EG
Ensamblado intermedio Genérico
EI
Ensamblado Intermedio
EJB
Enterprise Java Beans
ERP
Enterprise Requirement Planning
ETO
Engineer-to-Order
FP
Familia de Productos
GQS
Global Query Service
HTML
HyperText Markup Language
HTTP
HyperText Transfer Protocol
XXV
______________________________________________________________________ Lista de Siglas
IPPD
Integrated Process and Product Design
ISO
International Standards Organization
J2EE
Java 2 Enterprise Edition
JME
Jerarquía de Modelos de Elemento
JMS
Java Message Service
JSP
Java Server Page
LPO
Lógica de Primer Orden
LQS
Local Query Service
ME
Modelo de Elemento
ME
Material de Empaque
MP
Materia Prima
MPS
Master Planning Schedule
MRP
Material Requirement Planning
MTO
Make-to-Order
MTS
Make-to-Stock
NAICs
North American Industry Classification System
OOBOM
Object Oriented Bill of Materials
OPC
Orientada al Proceso
OPD
Orientada al Producto
OR
Orientada a los Recursos
OWL
Ontology Web Language
PCP
Planeamiento y Control de la Producciòn
PDM
Product Data Management
PF
Producto Final
PG
Producto Genérico
PIS
Product Information Systems
PLM
Product Lifecycle Management
PP
Producto Primario
PRONTO PRoduct ONTOlogy
PSL
Process Specification Language
PT
Producto Terminado
RDF
Resource Description Framework
RNTD
RosettaNet
SCOR
Supply Chain Operations Reference Model
SDBB
Sistema de Definiciòn de BOMs Base
SE
Semielaborado
SEP
Sistema de Especificaciòn de Productos
SGBP
Sistema de generaciòn de BOMs
XXVI
______________________________________________________________________ Lista de Siglas
SH
Structrual Hierarchy
STEP
Standard for teh Exchange of Product Model Data
STN
State Task Network
SUMO
Suggested Upper Level Ontology
SWRL
Semantic Web Rule Language
TIC
Tecnología de la Información y las Comunicaciones
TOVE
TOronto Virtual Enterprise
UML
Unified Modeling Language
UNSPSC
United Nations Standard Products and Services Code
URI
Uniform Resource Identifier
W3C
World Wide Web Consortium
XML
eXtensible Markup Language
XXVII
I. EL MODELO DE PRODUCTOS EN LAS ORGANIZACIONES
INDUSTRIALES
I.1. INTRODUCCIÓN
Desde los orígenes de la humanidad, los cambios tecnológicos fueron modificando
las sociedades donde éstos ocurrieron, no sólo en las formas de vida y de trabajo del
hombre como individuo sino, y principalmente, en la manera de producir y comercializar.
Esta tendencia se hizo más evidente a partir de la revolución industrial, acentuándose con
los cambios que se asocian a la tecnología de la información. Estos últimos cambios
permitieron la automatización de tareas y procesos dentro de las empresas e industrias,
llevando a la creación de sistemas de producción más eficientes; lo cual, a su vez, requirió
que los sistemas de información que dan soporte a los sistemas productivos sean más
complejos.
En la actualidad, es cada vez mayor el número de empresas que desean integrar
todas sus funciones y departamentos a través de un único sistema que sirva al conjunto de
necesidades que cada una de estas áreas plantea. Esta integración requiere nuevas
estructuras de datos para poder almacenar toda la información relevante necesaria para
llevar a cabo las funciones en las diferentes áreas. Una de las fuentes fundamentales para
una organización productiva es el modelo de productos, el cual mantiene información
referente a la manera de manufacturar los productos que ofrece una organización, así como
a su gestión administrativa, logística, datos de marketing, etc.
Dicha fuente de información, denominada modelo de productos, es el objeto de
estudio de la presente Tesis doctoral, la cual pretende introducir al lector en la problemática
relativa a este dominio del conocimiento, para posteriormente proponer un modelo de
productos que tenga en cuenta los requerimientos de información que el entorno actual
impone sobre las organizaciones industriales y que podría ser usado para lograr la
integración de las funciones de una empresa.
El presente capítulo introduce el concepto de modelo de productos, los distintos
enfoques que se le han dado a la representación del mismo, la influencia que las
tecnologías de la información y de las comunicaciones han tenido sobre dicho modelo, así
como los nuevos requerimientos que dichas tecnologías le imponen.
1
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
I.2. INFORMACIÓN DE PRODUCTOS DURANTE SU CICLO DE VIDA
La información relativa a productos es uno de los pilares de la integración de los procesos
de negocio de una industria de manufactura. Las áreas de una organización usan y
producen datos de productos en sus actividades diarias y en cada etapa del ciclo de vida del
producto.
Una pregunta que surge en este punto es “¿qué se entiende por ciclo de vida de un
producto?”. No está muy claro cuales son las fases que involucra, ya que, según Persson y
colab. (2002), el término es usado para identificar cuatro ciclos de vida diferentes:
Un ciclo de vida orientado al mercado que incluye las diferentes fases por las que
pasa un producto desde su aparición hasta su desaparición o decadencia. Éstas son:
lanzamiento o introducción, crecimiento, madurez, declinación y retiro.
El ciclo de vida que corresponde a las partes que ingresan en la cadena de
suministro y se mueven por ella desde los proveedores hasta los clientes.
El ciclo de vida de un producto particular que es producido, comprado, usado,
desechado o reciclado.
El ciclo de vida de la información que define el producto: creada, modificada,
eliminada.
Los dos primeros ciclos mencionados coinciden, en gran medida, con lo que
Saaksvuori e Immonen (2005) proponen como proceso de producto y proceso de entrega de
orden. Estos autores identifican dos grandes etapas dentro del primer proceso: introducción
de un nuevo producto (INP) y mantenimiento del mismo. En el segundo proceso,
consideran: la venta (en la que se da la generación de la orden de producción),
abastecimiento, producción, entrega y mantenimiento/servicio posventa. Estos procesos se
muestran en la Figura I.1 junto con las fases de los tres primeros ciclos de vida propuestos
por Persson y colab. (2002). Una línea punteada representa el ciclo de vida de un producto
individual, los prismas más oscuros representan el ciclo de vida orientado al mercado y los
más claros corresponden a las etapas del producto dentro de la cadena de suministro.
Los procesos de producto y de entrega de orden están fuertemente ligados por
medio de la información que se trasmite desde el primero al segundo proceso. Al inicio del
ciclo de vida, la información acerca de los componentes y las partes que deben ser provistas
es entregada desde el departamento de diseño al de compras. La estructura del producto y
sus reglas de configuración deben ser comunicadas al área de ventas y hacia el final de la
etapa de INP, el diseño del producto es enviado al sector de producción.
2
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Introducción
Crecimiento
INP
Madurez
Retiro
Declinación
Proceso de mantenimiento de producto
Venta
Abastecimiento
Producción
Entrega
Mantenimiento
Proceso de entrega de producto
Figura I.1. Ciclos de vida de un producto
Asimismo, durante la fase de mantenimiento del producto, los cambios efectuados al
diseño son comunicados a producción. Además de la información que se maneja entre estos
dos procesos, durante el ciclo de vida de un producto, las diferentes funciones de la
organización producen y consumen información relacionada con el mismo. A continuación
se presentan algunas funciones y su relación con los datos de productos.
El área de desarrollo e ingeniería, que puede ser denominada de diferente forma en
distintas organizaciones, es el área en la que surge la información de productos. De hecho,
previo a su introducción en el mercado, un producto debe ser desarrollado, lo cual en
algunos tipos de industrias da lugar a complejos ciclos de desarrollo que van desde ideas
preliminares, pasando por diversos prototipos, a numerosos y complejos tests anteriores a
su lanzamiento al mercado. Los diseñadores generan el diseño de un producto, su esquema
de fabricación y/o ensamblado, las listas de las partes requeridas para su fabricación e
información de testeo entre otras. La administración de la información acerca de las
estructuras de productos, sus procesos de manufactura y de los cambios efectuados a los
mismos es esencial en un entorno de planificación avanzado.
La función de administración de materiales (AM) se vincula con el abastecimiento de
materiales (materia prima, componentes e insumos) desde que surge un requerimiento de
abastecimiento originado en necesidades productivas hasta que se reciben los materiales.
Con relación a los productos, esta función necesita, entre otros, datos tales como
requerimientos específicos (especificación de producto, cantidad, fecha), niveles de
inventario, información de tipo logístico, de compras, etc. El abastecimiento se inicia con la
planificación de requerimientos de materiales, la cual se lleva a cabo mediante sistemas
MRP (Materials Requirement Planning), los cuales necesitan de información de demanda
para los próximos períodos, niveles de stock de seguridad, de inventario al momento de la
planificación, etc. Sin embargo, la información más importante, necesaria para la
3
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
planificación de requerimientos de materiales, es el resultado del cálculo de las cantidades
de materias primas y productos semielaborados que se necesitan para manufacturar una
unidad de cada producto final. Este cálculo es conocido como explosión de
requerimientos de materiales y tiene como fuente de información más importante la lista
de materiales o BOM (Bill of Materials) que indica todas las partes componentes requeridas
para la manufactura de un determinado producto y en qué cantidad se requiere cada uno de
estos componentes. La función de compras también interviene en la AM, y utiliza datos de
las cantidades requeridas, niveles actuales en stock de cada producto, datos acerca de
puntos de re-orden, stock de seguridad, proveedores para cada producto, así como tiempos
de entrega y precios asociados a cada uno de estos proveedores.
Otra función altamente relacionada con la información de productos es la de
Planeamiento y Control de la Producción (PCP). Los datos básicos para la ejecución de esta
función incluyen el BOM, las rutas de producción, así como las máquinas y/o centros de
trabajos donde pueden ejecutarse las operaciones indicadas en dichas rutas. Una ruta de
producción es una descripción del flujo del proceso de fabricación para una determinada
parte (producto). El área de PCP también utiliza información sobre las demandas de
productos finales y los requerimientos de producción que esta demanda implica.
La información de productos es, además, importante como soporte a la función de
ventas y marketing en empresas donde los productos son vendidos en configuraciones que
se ajustan a los pedidos específicos del cliente. De esta manera, es necesario contar con
información acerca de las estructuras de productos y las reglas de configuración para éstos,
que definen cómo puede modificarse la estructura del producto (si fuera posible) y
determinan la existencia o no de opciones para las partes componentes y cuáles serían
éstas. En cambio, para las actividades de mantenimiento de bienes de capital (aviones,
automóviles, etc.) o servicios posventa no sólo es importante la información relativa a la
estructura del producto, sino también, las versiones de productos y los repuestos que se
proveen para cada uno.
I.2.1. Sistemas que manejan la información de productos
La administración de datos de productos no es una actividad nueva. Ya en la década
del 30, la empresa Ericsson establece un estándar para la identificación de documentos y
sus productos (Persson y colab., 2002). Obviamente, los documentos y dibujos eran
almacenados en papel. En consecuencia, la búsqueda de un documento y la determinación
de su última versión eran tareas muy complicadas. A medida que la tecnología evolucionó,
cada vez más datos de productos se generaron de manera electrónica. Estos documentos
digitales empezaron a ser almacenados en servidores, y surgiendo así, la necesidad de
tener sistemas que administren estos archivos eficientemente.
4
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Pasar de diseñar productos en forma manual a realizarlo en forma automática a
través de sistemas de diseño asistido por computadoras (CAD), implicó una explosión en el
volumen de archivos electrónicos manejados por el área de ingeniería y diseño en las
organizaciones industriales. En consecuencia, se incrementó en gran manera la dificultad en
la administración de tales archivos. Así, los sistemas de administración de datos de
productos (PDM – Product Data Management) surgieron como respuesta a esta
problemática y se enfocaron, originalmente, en la provisión de almacenamiento para estos
datos dentro del área de ingeniería. Junto con la evolución de las industrias, el alcance de
los PDMs se expandió a otras áreas organizacionales.
Al inicio de los años 90, las industrias demandaron aplicaciones, más sofisticadas
capaces de considerar aspectos relacionados con la administración de las estructuras de los
productos y su configuración. Es entonces que los sistemas PDM comenzaron a incorporar
nuevas capacidades para cumplir con estos requerimientos. Rápidamente se extendieron
las competencias de estos sistemas más allá de las áreas de diseño e ingeniería, surgiendo
así sistemas capaces de administrar los datos de productos a lo largo de todas las etapas
de su ciclo de vida, los que son conocidos como sistemas PLM (Product Lifecycle
Management).
Actualmente, los sistemas PDM/PLM comerciales existentes brindan básicamente las
siguientes funcionalidades, las cuales se esquematizan en la Figura I.2:
Administración de documentos y datos almacenados: permite almacenar,
recuperar y compartir documentos de manera segura, llevando un control de
las versiones.
Administración de procesos y flujos de materiales: permite la definición de
procesos y flujos de materiales en procesos de manufactura y provee los
mecanismos para asegurar el cumplimiento de los mismos.
Administración de las estructuras de productos: brinda soporte para la
definición y manejo de la estructura de los productos.
Administración de partes y componentes: permite la carga y el
mantenimiento de la información de las partes componentes de los distintos
productos.
Administración de la configuración: facilita la definición y gestión de las
distintas configuraciones de un producto; permitiendo que los productos sean
configurados de acuerdo a los deseos de los clientes.
5
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Administración de
procesos y flujos
Administración de
de materiales
datos y
documentos
Administración de
Administración de la
partes y
estructura de
componentes
productos
Administración
de la
configuración
Figura I.2. Principales módulos de un sistema PDM
I.2.2. Estructura de productos
La estructura de productos forma parte del núcleo central de los sistemas PDM/PLM.
Muchas de las funciones de los sistemas de gestión de productos actuales se basan en el
empleo de la estructura de productos y de los ítems de información que se encuentran
asociados a ella.
Ya en los años 70, las bases de datos eran usadas para almacenar información
acerca de la estructura de productos, la cual era empleada por las plantas de manufactura
durante la fabricación de dichos productos. Por esa razón cada empresa desarrolló sus
propias aplicaciones de bases de datos, las cuales tenían como responsable de la carga de
datos al área de diseño e ingeniería. Por su parte, el área de manufactura también reveló
necesidades de información de productos que, como ya se explicó, no son las mismas que
las del sector de diseño, razón por la cual comenzó a tener sus propias bases de datos.
Hacia el final de los años 80 aparecieron los primeros sistemas PDM comerciales como un
intento para unificar la representación de datos de productos, pero éstos emplearon una
estructura de productos similar a la que se utiliza en el área de manufactura, dejando de
lado otras vistas.
Sin embargo cabe la pregunta, ¿qué se entiende por estructura de productos? La
estructura de productos es un grafo que representa la forma en la cual se agregan (o
desagregan) partes para dar lugar al producto cuya estructura se modela. El concepto de
parte, el cual se muestra en la Figura I.3, abstrae los conceptos de Materia Prima,
Ensamblado, Componente y Producto Terminado.
Un Componente o Materia Prima corresponde al nivel más bajo de la jerarquía
(Persson y colab. 2002), Una materia prima representa un material o producto básico
requerido para la manufactura de un componente, ensamblado o producto terminado que,
en general, se adquiere a un proveedor y no es producido en la organización. Un
componente es una parte confeccionada con un único material. Un ensamblado, a su vez,
6
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
consiste de un conjunto de otros ensamblados y/o componentes. Finalmente, un producto
terminado es aquél que no participa en la fabricación de otros productos sino que se vende
como tal a los clientes. Dada su ubicación en diferentes etapas en el proceso de
manufactura de un producto, estos conceptos tienen diferentes requerimientos de
información.
PARTE
Materia
Prima
Ensamblado Componente
Producto
Terminado
Figura I.3. Especialización del concepto de parte
Estructura de Productos. Formas de Representación
La estructura de productos tiene su origen en el denominado Bill of Materials (BOM)
o lista de materiales, que indica para cada producto, las partes (ensamblados intermedios y
materias primas) necesarias para su fabricación. Es conocido también bajo el nombre de
receta o especificación, aunque el nombre de receta en plantas batch se refiere a una
información más compleja que también incluye instrucciones relativas al proceso de
manufactura.
Las relaciones dentro del BOM definen una correspondencia entre un producto,
referenciado como padre, y cada una de las partes que son directamente utilizadas para su
producción, las que se denominan componentes. Estas relaciones de composición son
transitivas, lo cual implica que si E1 es un componente de P1, y M1 es un componente de
E1, entonces M1 es también un componente de P1. Los componentes se listan indicando la
cantidad necesaria de cada uno de ellos para obtener una unidad del padre. Dicha cantidad
suele denominarse cantidad de composición y puede indicar un número natural, en el caso
de productos de manufactura discreta, o uno real, para los productos generados en las
industrias de procesos. Puede ser necesario, además, especificar la unidad de medida de
dicha cantidad.
El BOM puede representarse como un grafo dirigido sin ciclos en el cual los nodos
son las diferentes partes de un producto y los arcos son las relaciones estructurales entre
estas partes. Esta forma de representación es mostrada en la Figura I.4, en la que se puede
apreciar que el producto P1 se fabrica mediante la materia prima M1, el componente C1 y el
ensamblado intermedio E1. Este último, a su vez, se obtiene de dos materias primas, M3 y
M4. Los rótulos que se asocian a los arcos entre los nodos, representan las
correspondientes cantidades de composición y, en este ejemplo, indican que se necesitan r3
unidades de E1, r1 unidades de M1 y r2 unidades de C1 para fabricar una unidad de P1.
7
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
P1
r3
r2
r1
M1
E1
C1
r4
r5
Mi
Materia Prima i
Ci
Componente i
Pi
Producto Teminado
E1
Ensamblado Intermedio
r6
Relación de composición
M2
M3
M4
ri
Cantidad de composición
Figura I.4. Bill of Materials de un producto final
Esta representación se usa para, calcular las necesidades de ensamblados, partes
componentes (obtenidas internamente a partir de las materias primas o encargadas a
terceras empresas) y materias primas (adquiridas a proveedores) que se requieren para
producir una determinada cantidad de producto final. En otras palabras, la información que
brinda el BOM es necesaria para realizar una explosión de requerimientos. Además, la
estructura de información del BOM, con datos adicionales, puede utilizarse en diferentes
actividades, tales como la estimación de costos o de la fecha de entrega esperada, o para
determinar las cantidades de componentes requeridos para cumplimentar una determinada
orden de cliente, etc.
La estructura del BOM tiene dos elementos importantes: i) su arquitectura y ii) la
cantidad de niveles que posee. La primera corresponde a cómo se organiza el BOM; la
segunda, en cambio, indica la profundidad del árbol. Los distintos niveles se determinan por
las interrupciones en el flujo de producción, que marcan la obtención de materiales
mantenidos en inventario en los puntos intermedios del proceso productivo. La tendencia
actual es la eliminación de la mayor cantidad posible de puntos de almacenamiento de
material en proceso, llevando a la definición de BOMs con menos niveles (achatados). Si en
la estructura presentada en la Figura I.4 se eliminaran el componente C1 y el ensamblado
E1, se obtendría una estructura más aplanada de P1, tal como se muestra en la Figura I.5.
Sin embargo, ello requiere de procesos de manufactura altamente sincronizados para los
cuales no sea necesario contar con stock de los productos intermedios C1 y E1.
P1
r1
M1
r2 *r4
M2
r3 *r5
M3
r3 *r6
M4
Mi
Materia Prima i
Ci
Componente i
Pi
Producto Teminado
E1
Ensamblado Intermedio
ri
Relación de composición
Cantidad de composición
Figura I.5. Bill of Materials aplanado de un producto final
8
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Cabe destacar que el BOM presentado a modo de ejemplo en la Figura I.4 pertenece
al tipo multinivel. En este caso, los BOMs suelen representarse gráficamente como árboles,
según lo descrito, o como listados indentados de materiales, tal cual se repesenta en la
Tabla I.1
Tabla I.1: Listado indentado de componentes del producto P1
Nivel
1
1
.2
1
.2
.2
Componente Unidades
requeridas
M1
r1
C1
r2
M2
r4
E1
r3
M3
r5
M4
r6
Unidad de medida
Unidad
Unidad
Unidad
Unidad
Unidad
Unidad
Sin embargo, no todas las empresas mantienen BOMs de tipo multinivel. Es posible
mantener BOMs de un único nivel y obtener los de tipo multinivel a través del
encadenamiento de árboles mononivel. Por ejemplo, el árbol presentado en la Figura I.4,
puede obtenerse encadenando los árboles de un nivel correspondientes a P1, C1 y E1, los
cuales se presentan en la Figura I.6 y en las Tablas I.2 a I.4. En las tablas mencionadas, se
ha eliminado la primera columna debido a que, con esta representación, todos los
componentes están en el mismo nivel.
P1
r1
M1
r3
r2
C1
E1
E1
C1
r5
r4
r6
Mi
Materia Prima i
Ci
Componente i
Pi
Producto Teminado
E1
Ensamblado Intermedio
M2
M3
Relación de composición
M4
ri
Cantidad de composición
Figura I.6. BOMs de un único nivel
Tabla I.2: Listado de componentes del producto P1
Componente
M1
C1
E1
Unidades requeridas
r1
r2
r3
Unidad de medida
Unidad
Unidad
Unidad
9
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Tabla I.3: Listado de componentes del producto C1
Componente
M2
Unidades requeridas
R4
Unidad de medida
Unidad
Tabla I.4: Listado de componentes del producto E1
Componente
M3
M4
Unidades requeridas
r5
r6
Unidad de medida
Unidad
Unidad
Durante el desarrollo de este capítulo y el siguiente, se utilizarán la representación
gráfica y las tablas que se introdujeron en esta sección cada vez que sea necesario
ejemplificar la estructura de algún producto.
Estructura de Productos. Aspectos a contemplar.
Existen diferentes criterios para describir un producto en términos de sus partes
constitutivas. Por ejemplo, la función de planificación de requerimientos de materiales (MRP)
usa la estructura de productos de manera intensiva para explotar los requerimientos de
productos finales en necesidades de ensamblados intermedios y materias primas, de
manera de poder enviar las órdenes de trabajos a los distintos departamentos de producción
y las órdenes de compra hacia el departamento compras. De esta manera, la estructura de
productos que soporta esta función debe ser consistente con la manera en que los
productos son manufacturados y contener además información de los “lead times” de
compras y manufactura. En cambio, la función que genera el Plan Maestro de Producción
(MPS – Master Planning Schedule) no necesita información tan detallada y requiere
información de productos en términos de cómo son vendidos en lugar de cómo son
manufacturados. Otras funciones dentro del departamento de planificación y control de la
producción, como el pronóstico de demandas, utilizan diferentes datos del producto, por
ejemplo factores de alisado y valores de pronósticos previos. Estas diferentes necesidades
de información llevan en la práctica a una situación en la que muchas áreas funcionales han
desarrollado sus propios modelos de productos, acordes a sus requerimientos particulares.
Como mencionan Vollman y colab. (1992), una regla de oro es que cada empresa debe
tener un único BOM que sea mantenido como una unidad y, a su vez, permita satisfacer
todas las necesidades de información de la organización.
Una situación análoga, pero tal vez más crítica, ocurre cuando varias organizaciones
están involucradas en el ciclo de desarrollo y manufactura de un producto (por ejemplo, por
tercerización de alguna de estas actividades) o en el proceso de abastecimiento y
distribución (por tercerización de actividades logísticas). En estos casos, cada empresa
requiere porciones de la información del producto de acuerdo al rol que juega en el proceso
10
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
productivo o logístico. De esta manera, el modelo de productos debe permitir la descripción
de los productos considerando los requerimientos de cada uno de los participantes de la
cadena de suministros, más allá de las fronteras de una única organización.
Por otra parte, un análisis de las estructuras de productos en diferentes empresas
productivas revela la existencia de distintos tipos de estructuras, los cuales se presentan
esquemáticamente en la Figura I.7. El primer caso, identificado como (a), corresponde a
productos que son obtenidos por medio del ensamblado o la combinación de partes
constitutivas, que pueden ser materias primas u otros productos intermedios los cuales, a su
vez, son obtenidos mediante el ensamblado o combinación de otros componentes.
Una situación opuesta es mostrada en la Figura I.7, caso (b). En ese ejemplo
genérico, los productos finales P1, P2, P3 y P4 se obtienen aplicando un proceso de
desagregación o descomposición de una materia prima no atómica M. Un ejemplo simple de
esta situación puede encontrarse en la industria láctea donde los productos crema y leche
descremada pueden obtenerse a partir de la leche entera. En casos como éste, las
estructuras de productos son denominadas de descomposición o desensamblado.
Finalmente, el tercer caso identificado como (c), representa una estructura híbrida o
compleja que
combina los
dos tipos mencionados previamente:
composición
y
descomposición. Puede observarse en la figura que el producto E8 es un producto final
obtenido mediante la descomposición de la materia prima M8. Parte de su producción es
vendida a los clientes, mientras que el resto participa como materia prima en la estructura de
composición asociada al producto P5.
P1
P1
P3
P2
P4
0.25
0.25
1
E1
2
1
0.5
E2
0.25
3
M1
2
M2
0.25
E4
E3
M3
0.25
1
M
M4
P5
(a)
1
(b)
1
2
E7
1
M3
M1
2
E8
0.25
1
M4
P4
0.5
1
M8
E10
0.25
1
(c)
Mi
Materia Prima i
Pi
Producto Teminado i
Ei
Ensamblado Intermedio i
Operación de ensamblado
Operación de desensamblado
Figura I.7. Diferentes tipos de estructuras de productos
11
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Durante el análisis de la literatura existente, se encontraron solamente dos enfoques
que identifican el problema de la representación de productos que poseen estructuras
complejas. Éstos fueron propuestos por Taleb y Gupta (1997) y por Carboneras y colab.
(1992). Este último trabajo también trata otro aspecto que debe tenerse en cuenta al
momento de definir un modelo para la representación de la estructura de productos, el cual
se refiere a la existencia de estructuras alternativas para un producto dado.
Aunque usualmente un producto tiene sólo una estructura, existen ciertas industrias
donde los productos tienen más de una. En la industria alimenticia o química, por ejemplo,
existen diferentes recetas alternativas para fabricar algunos productos. Cada una de ellas
establece una estructura diferente para el producto en cuestión.
Un producto tiene asociadas diferentes estructuras cuando: i) es posible obtenerlo
por medio de diferentes materiales y/u operaciones; o ii) distintas áreas de una organización
requieren diferentes vistas de dicho producto. La Figura I.8 presenta un ejemplo de un
producto P1 que tiene estructuras alternativas. Las estructuras indicadas como (a) y (b)
representan el uso de las estructuras alternativas para indicar diferentes recetas de
producción. Las estructuras mencionadas indican que es posible fabricar P1 de dos
maneras diferentes:
i)
Según lo indicado por (a): ensamblando 2 unidades de M1, 2 unidades de E1
y 1 unidad de E2; o
ii) Según lo indicado por (b): ensamblando 1 unidad de E3 y 1 unidad de E2.
P1
P1
1
2
1
1
2
E3
E1
E2
2
E2
4
3
2
E4
1
1
M1
2
2
M2
M3
M4
M6
1
1
M1
M3
M4
2
M2
(a)
(b)
P1
2
4
M1
4
3
M2
M6
(c)
M3
2
M4
Mi
Materia Prima i
Pi
Producto Teminado i
Ei
Ensamblado Intermedio i
Operación de ensamblado
Operación de desensamblado
Figura I.8: Estructuras alternativas
12
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Como un ejemplo del uso de estructuras alternativas para representar distintas
vistas, considere los casos (b) y (c) los cuales representan las vistas que tienen de P1 el
área de manufactura y de planificación, respectivamente.
Cualquiera sea el tipo de estructura y la cantidad de estructuras alternativas que un
producto tenga asociadas, las mismas deben ser modeladas y capturadas de alguna
manera. El BOM es el método tradicionalmente usado para representar la composición de
un producto en términos de sus partes componentes. Esta representación es la que se ha
elegido para expresar las estructuras de productos en los dos primeros capítulos de esta
Tesis.
I.3. INFLUENCIA DE LAS TECNOLOGÍAS DE LA INFORMACIÓN Y DE LAS COMUNICACIONES
EN EL MODELO DE PRODUCTOS
Los avances de las últimas décadas en las tecnologías de la información y de las
comunicaciones (TICs) han disparado un gran número de aplicaciones que involucran la
cooperación entre unidades organizacionales (departamentos, áreas funcionales, empresas,
etc.) vinculadas por algún tipo de red. Por un lado, los desarrollos de Internet posibilitaron la
implementación de paradigmas ya existentes que se encontraban esperando que se dieran
las condiciones propicias, y por otro, motivaron el desarrollo de nuevos conceptos tales
como e-commerce, e-business, empresas virtuales, comunidades virtuales, e-manufacturing,
entre otros. Una de las tendencias subyacentes en el área de investigación y desarrollo de
las TICs pone el foco en los modelos, protocolos y mecanismos para soportar la
colaboración entre diferentes entidades en entornos distribuidos. (Zhou y colab., 2003)
Por otra parte, los avances tecnológicos sumados a un mercado competitivo y
globalizado han ocasionado un cambio de paradigma en el mercado reinante en las
industrias de manufactura. En la actualidad, los clientes demandan productos con precios
bajos, alta calidad y de entrega inmediata; pero también quieren que éstos se adapten a sus
necesidades particulares. Este fenómeno conocido como “mass customization”, necesita
empresas flexibles, capaces de responder rápidamente a los cambios y requiere, por ende,
que cada empresa comparta un modelo de datos común en todas las etapas del ciclo de
vida del producto. Para lograrlo es importante contar con una representación uniforme de
la información de los productos, que posibilite la aplicación de la ingeniería concurrente y
cualquier otra tecnología de manufactura ágil. El modelo de productos debería ser utilizado
en las distintas unidades organizacionales que requieren diferentes vistas de la información
asociada a los productos.
En la práctica, sin embargo, esto no ocurre y cada unidad funcional desarrolla su
propio modelo de productos asociado a las aplicaciones que debe soportar (marketing,
planificación, producción, scheduling, etc.). Esto conlleva a la duplicación de información, a
13
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
la posibilidad de incurrir en inconsistencias, y dificulta enormemente las actualizaciones e
incorporación de modificaciones, problemas que han empezado a tenerse en cuenta en los
primitivos modelos de productos que incorporan los sistemas ERP (“Enterprise Resource
Planning”) y en los nuevos sistemas del tipo PDM (“Product Data Management”). Por otra
parte, la influencia de la demanda y la necesidad de ofrecer continuamente nuevas
alternativas al mercado, hace que el número de variantes de un mismo producto sea
extremadamente alto para poder manejarlo con los sistemas de información de productos
tradicionales (Scheer, 1998).
La personalización de los productos que implica el fenómeno de “mass
customization” lleva a un incremento exponencial en el número de variantes de un mismo
producto. Así, mientras antes existían empresas que fabricaban cientos o miles de
productos iguales para ser vendidos a todos sus clientes, ahora éstas pueden llegar a
producir una variante de dicho producto para cada uno de sus clientes. Esta situación
implica un considerable incremento en el volumen de información almacenada por los
modelos de productos tradicionales. Debe resaltarse que los modelos tradicionales
consideran las distintas variantes (productos similares que difieren mínimamente) como
productos distintos y, en consecuencia, gran parte de la información es redundante y no está
exenta de inconvenientes en cuanto a espacio, eficiencia y consistencia, asociados a la
duplicación de información.
Los puntos antes mencionados incorporan otra dimensión si el problema de
modelado de productos se sitúa en el contexto de las nuevas relaciones inter-empresariales.
La asociación de empresas configura organizaciones de producción virtuales, las cuales
poseen ciclos de vida de productos totalmente diferentes y presentan nuevas exigencias
acerca del acceso y control de la información de productos, requerimientos que no eran
considerados previamente. La implementación de conceptos avanzados de manufactura
depende en gran medida de la habilidad de una empresa para compartir información con
sus proveedores, clientes y socios de manera rápida, eficiente, consistente y confiable.
La problemática del manejo de información de productos excede el enfoque
tradicional que segmentaba la misma asociándola fuertemente a las aplicaciones (diseño,
producción, planificación, gestión de depósitos, ventas, etc.). Es por ello que los sistemas de
información tradicionales tienen serias dificultades para una eficiente representación de los
productos actuales. Los esfuerzos de investigación en el área están dirigidos al problema de
representar la información requerida para todo el ciclo de vida del producto, no ya para
planificar la producción de una determinada planta de la empresa, sino para administrar
ciclos de desarrollo de productos donde participan distintas empresas (debido a
tercerizaciones) como así también cadenas de suministro extendidas donde intervienen
clientes, proveedores, operadores logísticos, etc.
14
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Una de las consecuencias del competitivo contexto actual ha sido el acortamiento del
ciclo de vida de los productos, no sólo en lo que respecta al proceso de diseño de los
mismos, ya que éstos deben salir al mercado cada vez más rápido, sino también en lo
relativo a la validez del diseño. En consecuencia, van surgiendo versiones de productos más
frecuentemente, junto con sus correspondientes representaciones BOM. Algunas de éstas
serán válidas para productos fabricados y vendidos hasta una determinada fecha, mientras
que otras serán válidas para los nuevos productos que se fabriquen a partir de esa fecha.
Este aspecto impone un nuevo requerimiento sobre los sistemas de representación de datos
de productos: la gestión de versiones de productos. De los enfoques presentados en la
literatura, sólo el de Männistö (2000) propone un modelo conceptual para la evolución de las
familias de productos que tiene en cuenta las múltiples versiones que van surgiendo para un
producto a lo largo de su ciclo de vida. La gestión de versiones es realmente crítica cuando
los productos no son bienes de consumo, sino que prestan determinada función (son autos,
locomotoras, aviones, etc.) y poseen diferentes exigencias de mantenimiento dependiendo
del tipo de componentes que posean.
Para ser exitosa en el altamente competitivo y globalizado ambiente de manufactura
de hoy en día, una compañía debe ser capaz de entregar y soportar los productos que sus
clientes demandan en el momento especificado por éstos. Tales requerimientos imponen
una gran presión sobre la función de ingeniería para mejorar la calidad de los productos y
reducir los tiempos de preparación y entrega (“lead times”). Un camino para lograrlo, es
incrementar la productividad de las actividades de ingeniería y mejorar la coordinación entre
ellas, a través, por ejemplo, de la Ingeniería Concurrente. Ésta ha sido reconocida como una
filosofía y metodología de negocios para la integración de todos los aspectos del ciclo de
vida de los productos dentro de la etapa de diseño, para lo cual se requiere que toda la
empresa comparta un modelo común de datos de productos (Gu y Chan, 1995). Con esto no
se pide que el repositorio de información se encuentre centralizado, sino que el modelo
conceptual sea compartido por todos los involucrados, o para expresarlo de otra manera, se
necesita una integración semántica de este modelo de datos.
En una empresa de producción industrial, el área de manufactura, con su inherente
complejidad, es una componente crítica. La información de productos y procesos es un
elemento clave para las operaciones de manufactura. Los datos compartidos y el
requerimiento de encontrar información confiable de forma rápida dentro de las industrias y
en las relaciones fabricante-cliente han hecho surgir un conjunto de propuestas de
metodologías y arquitecturas orientadas a encontrar una solución a la necesidad de reducir
tiempos de entrega y mejorar la coordinación de actividades (Gonçalves y Scherer, 1999).
En esta dirección se desarrollaron los primeros sistemas PDM para tratar de
responder a los requerimientos de integración de los datos de productos. Los sistemas PDM
15
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
permiten que todos los integrantes de las diferentes áreas de una organización compartan
un modelo de productos común. Estos sistemas tradicionales facilitan la comunicación interorganización local pero no brindan soporte a la cooperación global. Por tal motivo, se
observa el surgimiento de sistemas PDM que buscan superar este obstáculo a través de la
implementación de arquitecturas distribuidas empleando, en muchos casos, tecnologías
Web.
Liu y Xiu (2001) propusieron la aplicación de una arquitectura de tres capas (interface
+ procesamiento lógico + almacenamiento de datos) para la implementación de sistemas
PDMs basados en Web. Mervyn y colab. (2004) presentaron un enfoque para el desarrollo
de aplicaciones distribuidas para el área de manufactura que soporta el desarrollo integrado
de procesos y productos (Integrated Process and Product Design, IPPD), el cual plantea el
uso de una capa común a todas las aplicaciones de manufactura que se distribuye entre un
servidor de modelado y los clientes. La portabilidad de esta capa se logra empleando Java
para el código y XML para los datos.
Abramovici y Gerhard (2000) formularon un sistema PDM basado en Web que
pretende la integración de diferentes PDM locales, a través de la generación de módulos
“add-on” que se incorporan a los sistemas que cada área o departamento está utilizando. El
problema de este enfoque es que no plantea una integración a nivel de modelo de datos,
sino más bien a nivel de interfaz de usuario. Por otra parte, Burkett (2001) propuso la
utilización de XML para la definición de un lenguaje de intercambio de datos de productos,
basado en el Standard STEP (STEP 1991).
Estas propuestas expresan, de cierto modo, las posibilidades que brindan las
tecnologías de la información y las comunicaciones (TICs), en cuanto a disponer de
múltiples medios de comunicación, por lo que son vistas como una promesa de integración
de los procesos de negocios. La realidad, sin embargo, ha planteado un escenario con
nuevas problemáticas vinculadas con las posibilidades emergentes de la tecnología
disponible. Los datos, frecuentemente se encuentran almacenados, y muchas veces
duplicados en varios sitios físicamente distintos; situación que en algunas ocasiones hace
difícil determinar cuál es la información válida y cual no. Los sistemas PDM basados en Web
no están exentos a esta problemática.
Si bien Internet posibilita la comunicación global, rompiendo barreras geográficas y
permitiendo que todos los participantes en una cadena de suministro compartan
información, introduce algunos inconvenientes de tipo semántico. Por ejemplo, puede darse
la ocurrencia de diferentes términos que representan el mismo objeto en distintos sistemas
o, por el contrario, la existencia de un mismo término que representa conceptos totalmente
diferentes.
16
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Horrocks y colab. (2001) plantearon la necesidad de una integración inteligente de
los sistemas de información a través de tres niveles: técnico, sintáctico y semántico. Internet
y las tecnologías Web proveen respuesta a la integración de los dos primeros niveles, en
tanto la integración semántica está siendo objeto de investigación desde hace unos años.
Los esfuerzos están enfocados en el desarrollo de la Web Semántica (Bernes-Lee y colab.,
2001), si bien se reconoce que esta tecnología no es una solución total y definitiva al
problema de integración semántica. La Web Semántica es la siguiente generación de la
Web, con una infraestructura bien establecida para presentar información de una manera
precisa, entendible por humanos y procesable por máquinas. Permite el acceso a los
recursos Web por su semántica y no sólo por su sintaxis, así como la inferencia de nuevo
conocimiento a partir del existente. Por otra parte, abrirá la posibilidad de tener acceso
inteligente a información heterogénea y distribuida, posibilitando que agentes de software
sean mediadores entre las necesidades de los usuarios y las fuentes de información
disponibles (Ding y colab., 2002). Para lograr este objetivo, la Web Semántica tiene como
uno de sus pilares la definición de ontologías para los diferentes dominios de conocimiento.
El término ontología no es nuevo, proviene del área de la filosofía, fue utilizado con
posterioridad en el área de la Inteligencia Artificial y es adquirido ahora en el ámbito de la
Web Semántica. Una ontología es una especificación explícita y formal de una
conceptualización compartida (Studer y colab. 1998). Se entiende por i) Conceptualización:
un modelo abstracto de un dominio particular, que identifica los conceptos relevantes de
dicho dominio y sus relaciones; ii) Formal: la ontología debe ser definida mediante una teoría
lógica, lo cual permite que la misma pueda ser procesada por agentes de software; iii)
Explícita: los conceptos, sus relaciones y sus restricciones están definidos explícitamente; y
iv) Compartida: refleja que una ontología debe, en el mejor de los casos, dar cuenta de
conocimiento aceptado como mínimo, por el grupo de personas que deben usarla. Puede
citarse como ejemplo, para ilustrar los esfuerzos para la definición de ontologías en el
dominio de las empresas de manufactura, el proyecto PSL (“Process Specification
Language”) (Knutilla y colab., 1998) que intenta desarrollar una ontología para representar
los procesos de manufactura.
En el dominio de modelado de productos específicamente y, a pesar que no surgió
bajo el concepto de “ontología”, el estándar de representación de productos STEP
(“Standard for the Exchange of Product Model Data”), ISO 10303, puede ser considerado
una de las primeras ontologías de productos.
A partir de un análisis de la literatura existente acerca de las ontologías en este
dominio, se advierte que básicamente la mayoría de las que se encuentran definidas,
apuntan más bien a la clasificación de productos en categorías y no involucran conceptos
que tengan que ver con la representación de las estructuras de los productos o de la
17
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
información que debería almacenarse asociada a los mismos. Una excepción a esto es la
propuesta para una ontología integrada de productos que se hace dentro del proyecto TOVE
(Fox, 1992). No obstante, esta ontología no incorpora conceptos requeridos en la
planificación de la producción, ni la posibilidad de expresar estructuras de productos
complejos que involucren esquemas de descomposición/composición.
I.4. ANÁLISIS DE LAS PROPUESTAS MÁS RELEVANTES
La tendencia a producir productos personalizados en lotes pequeños incrementa el
número de variantes de un producto en las organizaciones industriales. Mientras que treinta
años atrás; un yogurt podía ser producido en algunos pocos sabores, los productores de la
industria láctea deben ahora manejar docenas de variantes. A medida que los ciclos de vida
de los productos se hacen más cortos, nuevos productos deben ser introducidos en el
mercado más frecuentemente. De esta manera, el rango de productos disponibles se
incrementa y, como los productos son cada vez más personalizados, el número de
combinaciones posibles de partes crece drásticamente. Esta situación no es bien gestionada
por las representaciones tradicionales de productos, en las cuales cada variante es
manejada de manera diferente.
Los sistemas de gestión de BOMs tradicionales consideran a las variantes como
productos distintos y de esta manera deben mantener un gran volumen de información
duplicada. Es así, que un nuevo tipo de BOM, denominado BOM Generativo surgió como un
intento para solucionar este problema. Recibió ese nombre debido a la generación
(construcción) de una variante específica en el momento en que ésta es requerida. Este tipo
de BOM define una estructura básica para un conjunto de productos similares, denominada
familia de productos, y reglas para adaptar dicha estructura a la de una variante específica.
En este grupo se inscriben los aportes de Schönsleben (1985), Van Veen y Wortmann
(1992), Hegge (1995) y Olsen y colab.(1997).
Por otra parte, otros autores buscaron optimizar las representaciones tradicionales
de estructuras de productos, mediante la tecnología de objetos y la definición de patrones,
por un lado, y mediante el empleo de diferentes niveles de abstracción en la representación,
por el otro. Al primer grupo pertenecen los trabajos de Chung y Fischer (1992, 1994), Usher
(1993), Hvan y colab. (2003), mientras que dentro del segundo grupo se inscriben la
propuesta de Gzara y colab. (2003), junto con la de Männistö y colab. (2001).
I.4.1. Propuestas tradicionales
En la bibliografía se registran diferentes propuestas para salvar las dificultades antes
puntualizadas. Scheer (1998) presentó tres estrategias para administrar la información de
18
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
productos con múltiples variantes. La primera de ellas, que simplemente pretende adaptar la
representación BOM tradicional al manejo de variantes, plantea tres opciones:
i)
BOM básico: Cada variante tiene asociado su BOM.
ii)
BOM parte idéntica: se crean entidades “ficticias” para representar aquellos
ensamblados que son comunes a todas las variantes. Entonces las variantes
se crean usando estas “partes idénticas”, más las partes componentes que
definen las distintas variantes.
iii)
BOM más-menos: toma una de las variantes como base y las otras se
estructuran teniendo como componente esta variante básica y eliminando o
agregando a esta estructura aquellos componentes que difieren de la variante
base.
En las Figuras I.9 a I.11 se pueden observar estas tres posibles alternativas. En el
primer caso, se aprecia que para indicar las estructuras correspondientes a las variantes V1,
V2 y V3 se especifican para cada una de ellas las relaciones con sus partes componentes.
Esta representación posee ocho entidades partes y trece relaciones estructurales. Por otra
parte, dado que las tres variantes utilizan los ensamblados E1, E2 y E3, las relaciones y las
estructuras de las variantes son casi idénticas.
v1
E4
v2
E1
E2
v3
E3
E5
Figura I.9. Gestión de Variantes. Estrategia 1- BOM básico
En el siguiente caso, correspondiente a un BOM parte idéntica (Figura I.10), se
puede apreciar la creación de una parte ficticia IP que agrupa los ensamblados E1, E2 y E3.
De esta manera se disminuye el número de relaciones, si bien se crea una nueva entidad
parte. En consecuencia esta representación da lugar a nueve entidades partes y diez
relaciones.
Finalmente, la última alternativa dentro de esta primera estrategia se ejemplifica en la
Figura I.11. Allí se observa que la variante V2 se define como variante base. Esta variante
se compone de los ensamblados E1, E2, E3 y E4. Las estructuras de las otras variantes (V1
y V3) se definen con relaciones que indican partes que se agregan y/o se eliminan de dicha
variante base. En el caso de V1, se agrega como componente el ensamblado E5 a los ya
definidos como componentes de la base (E1,E2, E3 y E4). Mientras que V3 define que se
19
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
elimina E4 y se agrega E5. Si bien esta alternativa involucra ocho entidades partes y nueve
relaciones, puede ser difícil de manejar si el número de variantes es muy elevado.
v1
v2
v3
IP
E4
E1
E2
E3
E5
Figura I.10. Gestión de Variantes. Estrategia 1- BOM parte idéntica
v1
v3
V2
+
+
E1
E2
E3
E4
E5
Figura I.11. Gestión de Variantes. Estrategia 1 – BOM más - menos
Una segunda estrategia, conocida como BOM múltiple, introduce el concepto de
familia de productos, donde cada familia se representa por una única entidad padre y se
asocia con todas las partes componentes que están incluidas en dicha familia. Siguiendo
con el ejemplo en cuestión, y tal como lo indica la Figura I.12 (a), para representar la
estructura común se necesitan seis entidades partes, la que identifica a la familia rotulada
con VF, más una por cada ensamblado Ei, y cinco relaciones estructurales que unen la
entidad familia VF con cada uno de los ensamblados. Para la representación de las
estructuras particulares de cada variante miembro de la familia, se necesitan agregar, como
lo indica la Figura I.12 (b):
una entidad por cada variante miembro de la familia (los nodos V1, V2 y V3
en el ejemplo);
las correspondientes relaciones que indican la pertenencia de cada variante
(V1, V2 y V3) miembro a la familia VF, simbolizadas con arcos en la figura; y
para cada variante, los vínculos que seleccionan las relaciones de la
estructura común que corresponden a su propia estructura, representados
con líneas punteadas.
20
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
V1
VF
V2
V3
VF
E1
E2
E3
E4
E5
E1
(a)
E2
E3
E4
E5
(b)
Figura I.12. Gestión de Variantes. Estrategia 2 – BOM múltiple
Las relaciones estructurales, como se mencionó antes, poseen asociada abundante
información, entre las que se pueden mencionar: cantidad de componente que se necesita
por cada unidad de producto ensamblado, lead time, costo de producción, etc. En el BOM
múltiple estas relaciones se representan sólo una vez para la estructura común, evitando la
duplicación de información que implica la existencia de estructuras similares. Por su parte,
las otras relaciones que aparecen en este tipo de BOM no tienen información asociada, con
lo cual no incrementan mayormente la cantidad de espacio de almacenamiento requerido
para su representación.
Finalmente, una tercera estrategia propone que las variantes no sean definidas
previamente como entidades, y que sólo se mantengan las partes componentes de las
mismas. Luego, la representación BOM de un producto particular es construida a partir de
estos componentes en caso de ser necesario, al recibirse una orden de producción para una
variante específica. En la Figura I.13 se muestra la representación de este tipo de BOM y se
ilustra conceptualmente cómo al recibirse una orden para la variante V2, se establecen las
relaciones necesarias, las cuales tendrán validez mientras exista la variante V2. En la orden
se deben indicar los ensamblados que participan y la cantidad de cada uno que ingresa en
la producción de la variante V2, que para el ejemplo sería E1, E2, E3 y E4.
Información almacenada
5 entidades partes, 0 relaciones
estructurales
V2
E1
E2
E3
E4
E5
Se genera un
pedido para la
variante V2
Se establecen las relaciones
estructurales relativas a la orden para
la variante V2
21
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Figura I.13. Manejo de Variantes. Estrategia 3
Vollman y colab. (1992) plantearon la modularización del BOM con una perspectiva
diferente, consistente en la creación de módulos de planificación para una familia de
productos, sus características y opciones. De acuerdo a esta propuesta una opción es la
representación de una propiedad de un producto; una característica representa un conjunto
de opciones mutuamente excluyentes y un módulo de planificación define un conjunto de
componentes necesarios para la construcción de un producto final con un conjunto particular
de opciones. Bajo este enfoque los módulos de planificación pueden aplicarse para
identificar unívocamente el BOM de un producto final específico. Esta propuesta intenta
hacer más eficiente, desde el punto de vista del empleo de la información, la representación
de variantes; sin embargo, a medida que el número de productos similares aumenta,
también crece la complejidad requerida para la definición de los módulos.
I.4.2. Nuevos enfoques
Las representaciones propuestas por los modelos tradicionales se vuelven
ineficientes cuando el número de variantes de productos crece. Si, como se mencionó, se
representa la estructura de productos similares con BOMs independientes, la administración
de los datos producirá un gran volumen de información y un alto grado de redundancia. En
esta sección se introducirán algunas propuestas, que se alejan de la representación
tradicional del BOM y que intentan hacer más eficiente el manejo de la información de las
variantes.
BOMs generativos
Un enfoque que busca reducir el volumen de información necesario para la
representación de BOMs de productos con múltiples variantes es el denominado BOM
generativo. Esta alternativa utiliza el concepto de estructura genérica. La idea básica es que
toda información común sea almacenada sólo una vez en la estructura base, asociando a
las variantes sólo los datos de cómo derivar su BOM particular a partir de la información
almacenada en dicha base. Esta representación recibe el nombre de generativa, ya que a
partir de la estructura básica (BOM Base), mediante la especificación de valores a los
parámetros, se genera la estructura de una variante particular (BOM resultado).
Los conceptos fundamentales que subyacen a este tipo de enfoque son los de
variante de producto, valor de parámetro e ítem. Un ítem representa un conjunto de
productos similares que pueden ser descriptos por medio de parámetros. Estos parámetros
constituyen características que son significativas en el mercado y que pueden ser usadas en
el momento de generar una orden de producción. Una variante de producto representa un
producto particular y puede ser identificada por los valores que asumen los parámetros
22
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
asociados a dicho producto particular. Ese conjunto de valores de parámetros recibe el
nombre de especificación. Un ítem es un conjunto de variantes de productos que tienen el
mismo valor para al menos uno de sus parámetros. Una especificación S es válida para un
ítem P si P contiene una variante de producto que es identificada unívocamente por S.
Otro concepto de importancia en este enfoque es el de sistema de procesamiento de
BOMs, el cual consta de tres subsistemas que se presentan en la Figura I.14:
Sistema de Definición de BOMs Base (SDBB): permite la creación de los BOM Base,
cada uno de los cuales constituye la estructura común de una familia; así como las
reglas que permiten la obtención de estructuras particulares.
Sistema de Especificación de Productos (SEP): la función principal del sistema es
evaluar si una especificación es válida o inválida para un ítem particular de acuerdo a
las reglas definidas en el SDBB.
Sistema de generación de BOMs (SGBP): su finalidad es la generación de la
estructura BOM específica, dado un ítem y una especificación válida para dicho ítem.
Sistema de
Definición de BOMs
Base
BOM Base
Valores de
Parámetros
Sistema de
Especificación de
Productos
Especificación
Sistema de
Generación de
BOMs
BOM
Resultado
Figura I.14. Arquitectura de un sistema de procesamiento de BOMs generativo
El denominado BOM Variante (Schönsleben, 1985) fue uno de los primeros
esfuerzos para desarrollar un BOM Genérico, siendo una extensión del BOM tradicional. En
esta propuesta, la estructura genérica puede verse como la unión de los BOMs tradicionales
de cada una de las variantes del producto. De esta forma, el BOM base para un producto X
incluye todas las relaciones de la estructura para las cuales X es el padre. Dicho conjunto de
relaciones es particionado en subconjuntos, cada uno de los cuales se denomina cluster y
puede tener uno o más miembros. Cada cluster contiene relaciones que son mutuamente
excluyentes en la estructura de cada variante. A efectos de obtener un BOM resultado para
X se debe seleccionar un miembro de cada cluster. Por ello, cada una de los miembros de
un cluster tiene una condición asociada, la cual, si es satisfecha indica cuál es la relación
que participa en el BOM resultado. Dicha condición se expresa en función de los parámetros
que describen al producto X.
23
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Este modelo provee una solución relativamente simple, principalmente para aquellos
productos donde las variantes se dan en los productos que son raíces de representaciones
BOM. Cuando se pretende aplicarlo a productos que corresponden a nodos intermedios de
dicha representación, comienza a tener algunos inconvenientes debido a un alto grado de
redundancia, ya que las variantes y sus especificaciones (parámetros, valores de
parámetros y restricciones) son aplicadas solamente a los productos finales, que como ya se
indicó, corresponden a nodos raíces de árboles BOM.
Posteriormente, Van Veen y Wortman (1992), introdujeron el concepto de BOM
Genérico que trata de solucionar los inconvenientes planteados para el BOM Variante. En
este modelo, es posible definir especificaciones en cualquier nivel de la estructura del
producto, lo que implica que los nodos intermedios de una estructura pueden tener
variantes. Se introdujo también un nuevo concepto: la función de conversión, la cual produce
una especificación válida para un ítem componente dada una especificación de su ítem
padre.
En este enfoque los ítems se definen no sólo a nivel de producto final, como en el
caso anterior, sino que es posible definirlos en todos los niveles del árbol de estructura de
un producto. Con esto aparecen, entonces, los conceptos de ítem base e ítem resultado. El
último se deriva del primero y representa un ítem al que se le ha asignado una
especificación durante el proceso de generación.
Las relaciones BOM se definen entre ítems. Una relación entre un ítem padre P y un
ítem componente C implica que cada variante de producto que es miembro de P tiene una
variante de producto componente que es miembro de C. En el BOM base, todas las
combinaciones entre miembros de P y miembros de C son representadas por una única
relación BOM entre estos ítems. Esto demanda información adicional para poder identificar
individualmente cada una de las relaciones entre miembros en el momento de generar el
BOM resultado. Para ello se utiliza la función de conversión, la cual produce una
especificación válida de un ítem componente, dada una especificación válida de un ítem
padre. Esta función está definida a través de reglas de conversión, las cuales definen
relaciones entre valores de parámetros de especificaciones de variantes padres y variantes
componentes.
De igual manera, Hegge (1995) propuso otra forma de mejorar el BOM variante a
través del uso de reglas de herencia que determinan implícitamente qué variante de un
componente usar para una determinada variante de un producto. Este autor, definió como
producto genérico (PG) a aquél que representa a un conjunto de productos finales, de
productos primarios (PPs) o materias primas e incluso de ensamblados intermedios (EIs),
los que son similares en algún aspecto. Los productos asociados con el PG representan las
variantes de una familia de productos (FP).
24
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Según el criterio empleado en la definición de las familias, puede darse el caso que
se tenga más de un BOM Genérico (BG) para cada una de ellas. Las relaciones (genéricas)
dentro de un BG representan la correspondencia entre un “padre” y un “componente”
genérico. Cada relación implica que al menos en algún BOM dentro de la familia existe una
correspondencia entre uno de los padres asociados con el PG y algunos de los
componentes asociados con el componente genérico (CG) presente en dicha relación.
Así como pueden encontrarse variantes de un PG, también éstas existen en el nivel
más bajo del BG, definiéndose como producto primario genérico (PPG) al conjunto de todas
las variantes de un dado PP. Las diferencias entre variantes de FPs tienen su origen en las
que se dan entre los EIs, las que están directamente relacionadas a las variantes de los
distintos PPs de los que éstos se conforman, dentro de los PPGs asociados. Estos últimos
generalmente incorporan un gran número de variantes. Los EIs que tienen casi el mismo
BOM forman un ensamblado intermedio genérico (EG). La manera de identificar
completamente a una variante de un EG radica en indicar con qué variantes de los PPGs
ésta se relaciona, las cuales se diferencian en el valor que adoptan ciertos parámetros
característicos. Si un CG es empleado para fabricar todas las posibles variantes de un EG,
se lo referencia como un componente común, por lo que no se incluye como parte de la
identificación.
Hay diferentes métodos conocidos que pueden ser usados para identificar una
variante dentro de su FP. Los métodos pueden ser clasificados de diversas formas. Una
posibilidad es utilizar un método de identificación directo, en contraposición con uno
indirecto. La primera opción asocia un único código o número a cada variante de producto;
ésta es la manera directa de definir un producto particular. La forma indirecta consiste en
describir la variante a través del uso de un BOM; según esta descripción se mencionan los
componentes del producto final y la manera en que son ensamblados. Consecuentemente,
cada uno de los componentes tiene que ser identificado. Como ya se mencionó, otra
posibilidad para identificar variantes particulares es a través del uso de parámetros. Aquí
resulta necesario disponer de una lista de parámetros para cada FP. Cada uno de los
parámetros tiene valores válidos asociados que permiten especificar las diferentes variantes.
Siguiendo las ideas de la generación de estructuras de BOMs particulares a partir de
una estructura genérica, Olsen y colab. (1997) presentaron un enfoque procedural para la
representación BOM. Este modelo plantea la descripción de un producto genérico a través
de algunos conceptos extraídos del ámbito de la programación. El término procedimiento se
aplica para describir los componentes de la estructura genérica. Un componente consiste de
un encabezado donde se especifica la identificación del mismo y sus atributos más un
cuerpo que establece las relaciones todo-parte. Es aquí también donde se especifican las
reglas de selección para la determinación de los componentes particulares para cada
25
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
variante, que el procesador BOM tomará, para la definición de una estructura BOM
individual, teniendo en cuenta la especificación de parámetros que se le ingrese.
Para finalizar con este grupo de enfoques, es importante destacar que cuando se
considera una filosofía de BOMs generativos, es necesario tener en cuenta que en ciertos
casos no todas las combinaciones de partes son válidas, ya sea por razones tecnológicas o
comerciales. Surge, entonces, la necesidad de tener un mecanismo que permita expresar
qué restricciones existen entre las partes al momento de definir una estructura. Se pueden
establecer dos grandes grupos de restricciones entre partes: de obligatoriedad y de
incompatibilidad. Ambas deben definirse para poder lograr estructuras válidas, y según
Olsen y colab. (1997), todas las restricciones deberían especificarse en la estructura
genérica de manera de simplificar la especificación de una variante del producto.
I.4.3. Otros enfoques no tradicionales
Chung y Fischer (1992, 1994) propusieron un modelo conceptual que integra
elementos de las relaciones semánticas, con conceptos de la tecnología de orientación a
objetos, para desarrollar un modelo BOM al que denominaron OOBOM (“Object Oriented
BOM”). Este enfoque no utiliza el concepto de familia de productos ni de BOM generativo,
con lo cual cada una de las variantes tiene asociado su propio BOM, con el consecuente
volumen y duplicación de información que esto genera.
Este enfoque define un conjunto de clases y utiliza tanto relaciones de generalización
como de agregación para la representación de un “Bill of Materials”. En la Figura I.15 se
presenta el diagrama de clases con los conceptos involucrados en esta propuesta.
En OOBOM la clase BOM, que representa el “Bill of Materials” de un producto
particular, se especializa en Agregación y Componente para representar aquellos productos
que se obtienen del ensamblado de otras partes y los que tienen una estructura simple.
Estos últimos son representados por la clase componente. A su vez, este enfoque discrimina
la agregación en las clases Ensamblado, que representa productos que son resultado
intermedio del proceso de manufactura, y la clase Producto, que representa los productos
finales. Tanto los productos finales como los ensamblados intermedios se obtienen a través
del ensamblado de otros objetos BOMs.
26
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Referencia
BOM
Compuesto-de
Compuesto-de
Propiedad
Posee
Agregación
Producto
Componente
Ensamblado
Forma
Especificación
Figura I.15. Conceptos asociados a la propuesta OOBOM
Cada uno de los objetos BOMs tiene asociado un conjunto de propiedades que lo
caracterizan. Esta situación es representada a través de la clase propiedad, que puede
especializarse según el dominio de aplicación y las relaciones de referencia, posee y
compuesto-de. El primer tipo de relación se establece entre un objeto BOM y un objeto
propiedad cuando el primero es caracterizado por dicha propiedad y la misma también
caracteriza a otro objeto BOM. Cuando el objeto BOM es el dueño de una propiedad (puede
ordenar su destrucción y tiene permisos para cambiar su estado), la relación que se define
es del tipo “posee”. El tercer tipo de relación, se establece entre un objeto Agregación y las
propiedades de los objetos que éste agrupa.
A efectos de salvar las dificultades vinculadas a la redundancia de información que
existe en los modelos convencionales, Usher (1993) propuso un enfoque orientado a objetos
en el cual pone énfasis en el modelado de productos finales compuestos por partes y
ensamblados, aplicado al dominio de empresas de manufactura discreta. En el trabajo
mencionado se destacan los beneficios del empleo del modelo de objetos para diseñar e
implementar el modelo de productos propuesto, a pesar de haber utilizado el paradigma de
objetos con una interpretación muy elemental. En el modelo de productos que introduce, un
ensamblado es definido en términos de sus componentes. Para la definición de un
componente utiliza una jerarquía que es una combinación de relaciones de composición y
de herencia. Asimismo, distingue componentes comprados a un proveedor de componentes
manufacturados.
Siguiendo el paradigma de objetos, Hvan y colab. (2003) propusieron el uso de
tarjetas CRC (“Class, Responsability, Collaboration”) para el diseño e implementación del
modelo de productos. Si bien establecieron una metodología para el desarrollo de un
modelo de productos, no presentaron una representación conceptual genérica de productos
que pueda especializarse en cada industria. En cada caso particular se debe aplicar la
metodología propuesta para diseñar y obtener el modelo de producto específico.
27
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Gzara y colab. (2003) plantearon el uso de patrones para la definición de sistemas de
información de productos. Un patrón describe un problema común y recurrente en un
determinado campo del conocimiento y provee la solución a dicho problema. Esta solución
puede ser aplicada repetidamente cada vez que el problema se presenta, de manera de no
tener que resolverlo cada una de estas veces. Por otra parte, sostuvieron que el significado
del concepto de producto depende del contexto en el que se utiliza. En ocasiones puede
referirse a objetos virtuales, mientras que en otras a objetos físicos. Es por esto que
propusieron una definición del concepto de producto en tres niveles de abstracción: producto
genérico, tipo de producto y ejemplar de producto. Cada uno de estos niveles tiene asociado
distintos tipos de conocimiento que deben almacenarse de alguna manera.
Este enfoque considera un modelo de referencia general y un lenguaje de patrones a
usar en el diseño de sistemas de información de productos (PIS – “Product Information
System”). El lenguaje de patrones permite adaptar el modelo de referencia a situaciones
particulares a través de distintos “puntos de variabilidad”. Mediante una aplicación sucesiva
de patrones es posible resolver distintos problemas de la especificación PIS y proveer un
refinamiento de los modelos de acuerdo a las características de la organización donde está
siendo desarrollado el sistema en cuestión. El pasaje de un patrón a otro se hace a través
de dos tipos de enlace: usa y refina. En la Figura I.16 se presentan los patrones que se
proponen en este enfoque para el diseño de sistemas de información de productos.
Patrón Tres
Niveles
usa
usa
Patrón
Variaciones
usa
Niveles de
producto
Patrón Dos
Niveles
BOMs
Aplicados
Patrón Un
Nivel
Asociación
BOMs a
productos
usa
Documentos
Aplicados
usa
Asociación
Documentos a
productos
Figura I.16. Patrones incluidos en el lenguaje propuesto por Gzara y colab. (2003)
Por su parte, Männistö y colab. (2001) usaron el término producto configurable como
sinónimo de un producto que tiene un gran número de variantes. En su propuesta
identificaron tres conceptos principales: estructura de elemento (EE), modelo de elemento
(ME) y jerarquía de modelos de elemento (JME), los cuales se muestran en la Figura I.17.
28
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
Esta propuesta parte de la suposición que cada variante de producto individual tiene
una estructura denominada “order BOM” (que se corresponde con el ya mencionado BOM
resultado). En cada uno de éstas se identifican componentes esenciales por medio de una
estructura de elemento, la cual, como su nombre lo indica, está compuesta por elementos y
provee una vista del “order BOM” desde un punto de vista específico para un área de la
organización. Cada elemento en una EE, se asocia a algún componente de un “order BOM”
y define un rol para dicho componente asociado. La estructura del elemento debe estar de
acuerdo con un ME, el cual describe, por medio de clases de elementos, aquellos elementos
que deben estar presentes en dicha estructura. Este enfoque organiza los modelos de
elemento en una jerarquía (JME). A partir de la JME, el modelo de elemento apropiado se
selecciona para obtener la EE de un producto individual.
Jerarquía de Modelos de
Elemento
Aa
Modelo de
elemento
Clase de Elemento
Componente
Order BOM
Estructura de Elemento
aa
Elemento
Especialización de
Asociado a
Conforme a
Parte de
Figura I.17. Vista de los conceptos básicos de la propuesta de Mänisto y colab (2001)
I.5. NECESIDADES A SATISFACER POR UN MODELO DE PRODUCTOS
La información de los productos manufacturados por una organización industrial
constituye el corazón de los recursos de información que dicha organización gestiona. Los
datos de productos suelen estar dispersos en las diferentes áreas funcionales, incluso
pueden estar distribuidos a través de distintas empresas. Claramente, gran parte de esta
información es creada en el área de diseño e ingeniería; pero también existen datos que son
generados y empleados en las áreas de manufactura, ventas, mantenimiento y planificación,
entre otras. Cuando no existe una definición estándar de los datos de productos, cada
usuario y/o programa de aplicación puede tener un modelo de productos propio; lo cual
29
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
conduce
a
problemas
de
duplicación
de
información
e
inconsistencias,
que,
consecuentemente, implican pérdidas de tiempo y dinero.
Dentro de la información de productos, el núcleo está constituido por los datos
acerca de su estructura. En las organizaciones actuales, las estructuras de productos tienen
algunas características que deben considerarse al momento de la definición de un modelo
conceptual que las represente. Al igual que el resto de los datos de productos, las
estructuras son vistas de manera diferente por las distintas áreas de una organización.
Asimismo, no existe un único tipo de estructura: hay productos que se obtienen por el
ensamblado de partes, otros que son resultado de alguna operación de desagregación de
materias primas no atómicas y algunos productos combinan las estructuras previas. Por otra
parte, un mismo producto podría tener más de una estructura si es posible obtenerlo por
diferentes recetas.
Los grandes adelantos producidos en las tecnologías de la información y las
comunicaciones afectaron tanto a la forma de trabajar de las organizaciones industriales y
sus productos, como a los sistemas que las soportan.
Las empresas de producción industrial se enfrentan por un lado, a los cambios
constantes de las condiciones del mercado, como por ejemplo, patrones de demanda
inciertos, ciclos de vida de los productos mucho más cortos, etc. Por otro, se encuentran
inmersas en un mercado global, que requiere que la cadena de suministros alcance muy
altos niveles de eficiencia. Para mantener la competitividad en este nuevo entorno, estas
empresas, deben lograr una alta integración de sus actividades, lo cual se ve facilitado si se
cuenta con un modelo de datos común a todas las áreas. Los modelos de productos
existentes son insuficientes para responder a estas nuevas exigencias, si bien han surgido
distintas propuestas que tratan de lograr un modelo común, desde los primeros sistemas
PDM locales hasta la aplicación de la tecnología Web para la implementación de sistemas
de datos de productos distribuidos. Más recientemente, y aún en una etapa de desarrollo, se
presentaron algunas propuestas que incorporan conceptos de ontologías para obtener un
modelo de productos a ser usado en la Web Semántica.
Por otra parte, la tendencia a producir productos personalizados en lotes pequeños
incrementa el número de variantes de un producto a ser gestionadas por las organizaciones
industriales. A medida que el tiempo de vida de un producto se hace más corto, nuevos
productos deben ser introducidos en el mercado más frecuentemente. De esta manera, el
rango de productos disponibles se incrementa y, como los productos son cada vez más
personalizados, el número de combinaciones de partes posibles crece drásticamente. Esta
situación no es bien manejada por las representaciones tradicionales de productos, en las
cuales cada variante es gestionada de manera individual. Para superar esta situación se
hicieron algunas adaptaciones de las representaciones tradicionales para satisfacer las
30
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
nuevas necesidades. Debido a que estas modificaciones sólo lograron paliar el problema,
han surgido enfoques un poco más eficientes.
Si bien todas las propuestas analizadas presentan una mejora parcial respecto a los
sistemas BOM tradicionales, en lo que respecta al manejo de múltiples variantes, dejan sin
resolver otros aspectos esenciales para el manejo de datos de productos, como por ejemplo
la representación de estructuras híbridas. Además, las propuestas han sido desarrolladas
para empresas de producción que poseen procesos de manufactura discretos y un esquema
de producción de tipo ensamblado. Ninguna de ellas contempla la existencia de materias
primas no atómicas de las cuales se obtienen derivados que son los que ingresan al sistema
productivo como parte componente de algún otro producto. Un ejemplo típico de este tipo de
organizaciones son las empresas lácteas, frigoríficas y petroquímicas. En ellas, las
estructuras de los productos involucran no sólo relaciones de composición sino que incluyen
también relaciones de descomposición, constituyendo así estructuras de productos
complejas o híbridas que no son fácilmente representables con los modelos antes
mencionados.
De lo expuesto en el presente capítulo se desprende la necesidad de contar con un
modelo de productos compartido por los diferentes actores involucrados en el ciclo de vida
del producto. Dicho modelo deberá permitir:
la administración eficiente de un elevado número de variantes;
la representación de productos con diferentes tipos de estructuras: composición,
descomposición e híbridas;
el manejo de estructuras alternativas;
la representación de las vistas que cada unidad organizacional tiene de los
productos; y
la integración semántica de los datos de productos en los diferentes eslabones de la
cadena de suministros.
Este trabajo presenta un modelo de productos que da respuesta a estos puntos. Los
cuatro primeros, serán abordados en el Capítulo III donde se presenta en detalle las
características del modelo y se explica de qué manera éste da solución a los requerimientos
planteados. Mientras que el último ítem será tratado en el Capítulo V, mediante la definición
de una arquitectura para un sistema de administración de datos de productos distribuido,
pero semánticamente integrado a través de una ontología de productos.
31
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
I.6. ORGANIZACIÓN DE LA TESIS
La presente Tesis consta de siete capítulos, los cuales se encuentran organizados
cronológicamente según la forma en que se fue desarrollando el trabajo. En este primer
capítulo se introdujo al lector en la temática de modelo de productos en las organizaciones
industriales. Se describió la problemática asociada a las estructuras de productos, así como
a sus representaciones. Además, se presentó la influencia que las tecnologías de la
información y las comunicaciones han tenido sobre el modelo de productos y de qué manera
distintas propuestas trataron de adaptar dicho modelo a los nuevos entornos.
En el Capítulo II se expone una caracterización del dominio de trabajo y se definen
los alcances de esta Tesis, indicando qué aspectos de dicho dominio serán abarcados.
Asimismo, se presentan dos casos de estudio que fueron abordados: el modelo de
productos de una planta de producción de golosinas y el correspondiente a una industria
frigorífica.
El Capítulo III presenta las características del modelo postulado. Se discute la
existencia de distintos niveles de abstracción en el concepto de productos y se explican las
particularidades de los distintos elementos que comprende el modelo propuesto. Se cubren
desde los conceptos centrales, tales como familia, conjunto de variantes y producto, hasta
los relacionados directa o indirectamente con éstos. A modo de validación de la propuesta,
el modelo fue empleado para la representación de los datos de producto de los casos de
estudio introducidos en el Capítulo II. Algunos ejemplos de esta implementación se exponen
y discuten en el Capítulo IV.
El Capítulo V presenta el prototipo de sistema de procesamiento de BOMs que fue
desarrollado utilizando el modelo que se describe en el Capítulo III. Se detalla la arquitectura
del mismo, su funcionamiento y se efectúa un análisis de los resultados obtenidos. El
prototipo fue desarrollado para ser usado dentro de una única organización; por lo cual el
siguiente capítulo expone nuevas tecnologías que permiten lograr la integración de este
prototipo con otras organizaciones a través de los conceptos relacionados con las ontologías
y la Web Semántica.
En el Capítulo VI se presenta, entonces, la noción de integración inteligente de
sistemas, los conceptos y herramientas utilizadas en el domino de las ontologías y la Web
Semántica. De igual manera, se introduce una arquitectura para un modelo de productos
distribuido que utiliza una ontología de productos como integrador semántico. Por último, se
expone cómo el modelo de productos propuesto, es migrado a una ontología de productos
denominada PRONTO (“PRoduct ONTOlogy”).
Finalmente, las conclusiones del trabajo de investigación realizado, cuyos resultados
se exponen en la presente Tesis, se reseñan en el Capítulo VII.
32
_______________________________________ El Modelo de Productos en las Organizaciones Industriales
33
II. DOMINIO DE TRABAJO. CARACTERIZACIÓN Y DEFINICIÓN DE SU
ALCANCE
II.1. INTRODUCCIÓN
En este capítulo se presenta una caracterización del complejo dominio de modelado
de productos y la definición de los límites considerados para el desarrollo de este trabajo.
Asimismo, se detallan los dos casos de estudio que se utilizan a lo largo de la Tesis para la
validación de las propuestas.
Cada tipo de industria tiene necesidades de información impuestas por el conjunto de
características distintivas asociadas con la naturaleza de los productos que manufactura, y
con el tipo de proceso productivo y de control de producción que utiliza. Es por esto que para
entender cuáles son las necesidades, se requiere reconocer dichas características
distintivas. Para ello, se presentan a continuación los distintos tipos de procesos productivos
que es posible encontrar en las diferentes industrias. Es importante mencionar que las
clasificaciones que se introducen no son estrictas ya que existen industrias que no se
ajustan taxativamente a una única categoría.
II.2. CLASIFICACIÓN DE PROCESOS PRODUCTIVOS
Los sistemas de producción están estructurados a través de procesos, que entrañan
transformaciones de materias primas en productos de mayor valor agregado y que utilizan
recursos de diversa índole. Estos sistemas apuntan a satisfacer los requerimientos de los
clientes haciendo el mejor uso de los recursos disponibles.
En las empresas de manufactura, estos sistemas productivos representan las
configuraciones adoptadas en torno al proceso de conversión y/o transformación de entradas
(materiales, recursos económicos, informativos, energéticos, etc.) en salidas (bienes) para
satisfacer necesidades, requerimientos y expectativas de los clientes de la forma más
competitiva posible.
Si se analiza el contexto empresarial, podrá encontrarse que existen distintos
sistemas de producción en las empresas manufactureras. Asimismo, si se revisa
apropiadamente la literatura sobre Administración de la Producción y Operaciones, se
encontrará una diversidad de tipologías respecto a la forma de clasificar las configuraciones
productivas. Esto se debe, fundamentalmente, a la variedad de enfoques con que los
diversos autores tratan estos temas en sus trabajos.
33
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Según de Heij (1996), pueden plantearse diferentes clasificaciones teniendo en
cuenta aspectos tales como el tamaño del lote de producción, la organización física del
proceso productivo o la estructura de dicho proceso. Por su parte, Fisher (1990) propone una
clasificación del proceso productivo basada en cómo es el flujo de los materiales en el
mismo. Otro criterio muy utilizado para la clasificación de los procesos productivos tiene que
ver con la ubicación del CODP (“Customer Order Decoupling Point”), el punto a partir del
cual el proceso deja de estar guiado por las actividades de planificación y comienza a ser
dirigido por las órdenes de los clientes. Estas diferentes clasificaciones se muestran en la
Figura II.1.
Único ítem
Largas series
Pequeñas series
Continuo
Tamaño del lote
Flujo de
materiales
Organización física del
proceso productivo
Estructura del proceso
productivo
Industrias de Manufactura Discreta
Industrias de Procesos Continuos
Industrias de Procesos Batch
Industrias de Procesos Semicontinuos
Manufactura flexible
Job shop
Floor Shop
Proceso de Manufactura Continuo
Secuencial
Convergente
Divergente
Red
Continuo
Ubicación del CODP
Distribution on-Stock
Make-to-Stock
Assemble-to-Order
Make-to-Order
Engineer-to-Order
Figura II.1 Clasificación de procesos productivos
La gran diversidad de procesos y los potenciales criterios de clasificación a
considerar hacen que sea difícil encontrar una tipología que sea exhaustiva y que de manera
unívoca contemple cada caso concreto. Con el fin de mostrar cómo el tipo de industria define
los requerimientos de información, a continuación se analizan dos clasificaciones que surgen
de aplicar diferentes criterios de clasificación, a saber: el flujo de materiales y la ubicación
del CODP.
II.2.1. Clasificación de procesos productivos basada en el flujo de materiales
Como ya se mencionó, Fisher (1990) propone una clasificación de los procesos
productivos que se focaliza en cómo es el flujo de los materiales dentro del proceso. Este
autor sostiene que los procesos productivos pueden clasificarse como:
34
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
industrias de manufactura discreta;
industrias de procesos: las cuales a su vez pueden subclasificarse de acuerdo
a cómo es la salida de materiales de la planta:
o
Procesos continuos: los productos egresan en un flujo continuo y
fluyen de esta forma a través de la planta.
o
Procesos discontinuos o “batch”: la salida se origina a partir del
procesamiento de una secuencia de cargas o “bachadas” en los
equipos.
o
Procesos semicontinuos: combinan etapas que poseen equipos
continuos y discontinuos.
Industrias de manufactura discreta
Los procesos de tipo discreto generalmente involucran operaciones vinculadas con la
manipulación de las piezas o partes a procesar en forma directa, y con aquellas que
producen transformaciones físicas sobre las mismas, como podría ser torneado, fresado,
armado o ensamblado. Productos tales como dispositivos electrónicos, artefactos eléctricos,
muebles o automotores son elaborados utilizando tecnología de procesos discretos. Estos
tipos de productos se caracterizan por ser mayormente sólidos y poseer una determinada
“forma” y/o estructura que es necesario representar. Según Gu (1992) esta forma se
describe en términos de:
características del producto final y de cada uno de sus componentes, y
una estructura de ensamble o composición del producto.
Los productos de las industrias de manufactura discreta son, en general, muy
complejos y como tales requieren información de muy diversa índole y articulada de
diferentes formas. Gran parte de esta información está asociada al diseño del producto y,
tradicionalmente, es representada en dos tipos de diagramas: diseño de partes y diseño de
ensamblado. El primero define, para cada parte:
forma geométrica;
dimensiones y su tolerancia;
material y tratamiento térmico requerido; así como
acabado de superficie.
Por otro lado, el diseño de ensamblado contiene información acerca de:
naturaleza de la conexión entre las partes (simple contacto, ajuste, etc);
35
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
posición relativa de cada parte en la estructura del producto;
función de cada parte ; y
el BOM (“Bill of Materials”).
Como ya se mencionó en el capítulo I, el BOM comprende un conjunto de relaciones
ítem padre-componente que tienen, al menos, la siguiente información:
identificación del ítem padre;
identificación del ítem hijo;
fecha de validez de la relación;
cantidad del componente por cada unidad del ítem padre y
factor de desperdicio (si fuera aplicable).
Por otra parte, suele asociarse a la estructura del producto información referida a las
rutas de producción. La ruta de producción de un ítem es una lista ordenada de las
operaciones requeridas para su manufactura y de los equipos que pueden llevarlas a cabo.
La información básica sobre cada operación que conforma una ruta se refiere a:
número de secuencia;
unidad de procesamiento donde se va a ejecutar la operación;
tiempo de operación: cantidad de tiempo necesaria para llevar a cabo la
operación. Está compuesto por el tiempo de puesta en marcha (setup), de
operación propiamente dicho, de inspección y de transporte. Estos tiempos
pueden representarse acumulados en un único atributo o discriminados en
más de uno. En el caso de etapas continuas se especifica la velocidad de
procesamiento.
A partir de esta información, es posible calcular el lead time de producción asociado a
una orden de trabajo de un ítem específico y a un tamaño determinado de lote, a través de la
suma de los tiempos de cada operación que forma parte de la ruta de producción de dicho
ítem.
Industrias de procesos continuos
En las industrias de procesos continuos intervienen productos que sufren
transformaciones físicas y fisicoquímicas a lo largo de su proceso productivo. Éstas utilizan
como materias primas, en general, productos naturales o derivados de éstos para elaborar
productos cuya demanda casi no se afecta por los cambios del mercado.
36
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Los productos de las industrias de tipo continuo son, frecuentemente, de tipo
“commodities” y presentan un muy bajo grado de personalización. Además, sus ciclos de
vida son bastante prolongados por lo que las actividades ingenieriles se focalizan más en los
procesos productivos que en los productos que se elaboran. El diseño y rediseño óptimo de
los procesos, la búsqueda de condiciones operativas más adecuadas y el control óptimo de
procesos constituyen algunas de las responsabilidades de los ingenieros de procesos.
Las plantas se organizan en términos de líneas dedicadas a la fabricación de los
distintos productos; por lo tanto requieren una inversión de capital elevada. Los equipos
realizan continuamente las mismas operaciones físicas y/o fisicoquímicas y las plantas
operan en forma ininterrumpida, suspendiéndose únicamente para tareas de mantenimiento
de los equipos.
Usualmente, en este tipo de procesos no existe relación entre las unidades de
producción y las unidades de venta; es decir, no se identifica qué parte del flujo de salida de
un proceso está destinada a una orden de pedido particular. Esto se debe a que la
producción se destina fundamentalmente a mantener niveles de stock.
Estas industrias tienen sistemas de control automático o semiautomático que se
encargan de mantener los procesos operando bajo las condiciones deseadas y elaborando
los productos de acuerdo a sus especificaciones. Dichos sistemas de control pueden inferir
el estado del proceso a partir de la realización de mediciones periódicas sobre variables
tales como caudales, presiones, temperaturas, composiciones, etc.
Industrias de procesos batch
El requerimiento de productos especializados de alto valor agregado, como los de la
química fina (que son solicitados en volúmenes pequeños, poseen ciclos de vida cortos, y
están sujetos a demandas estacionales), dio lugar a que se consolidase el empleo de
sistemas de procesamientos discontinuos o batch. Al producir en plantas batch se posibilita
la elaboración de diferentes productos en pequeñas cantidades en una misma instalación.
Con respecto a los productos manufacturados en este tipo de plantas puede añadirse que
los mismos están destinados fundamentalmente a consumidores finales o industrias que se
encuentran en los últimos eslabones de la cadena productiva como, por ejemplo, los
productos farmacéuticos, agroquímicos, colorantes, alimenticios, etc. Aunque no llegan a
alcanzar la complejidad de los productos elaborados por procesos de manufactura discreta,
estos productos tienen síntesis químicas más complejas que los producidos en plantas de
procesos continuos.
Las plantas “batch” pueden tener líneas dedicadas a la producción de un único
producto, aunque esta situación es menos frecuente. Como se mencionó, habitualmente se
produce en ellas una variedad de productos. Se denominan Plantas Batch
37
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Multiproducto aquéllas en las cuales los productos elaborados tienen recetas similares y
siguen básicamente la misma secuencia de operaciones. Por ello, estas plantas, también
identificadas como ambientes “job-shop”, fabrican productos de una misma familia.
En este tipo de instalaciones, una corrida de producción identifica un conjunto de
lotes de un producto que se manufacturan secuencialmente en el mismo conjunto de
equipos. El orden y tamaño de cada corrida se definen según los pedidos de cada cliente y
en función de factores tales como la prioridad de estos pedidos. Puede ocurrir que una
corrida de producción permita cumplimentar sólo una orden de pedido o que se asocie a
varias que demanden un mismo producto. Igualmente, una orden puede ser satisfecha por
una o más corridas de producción. Así el concepto de corrida permite vincular las órdenes de
pedidos con los procesos de elaboración y, en consecuencia, conocer el estado de las
órdenes de los clientes.
Por su parte, las plantas “batch” multipropósito son aquéllas en las cuales es posible
elaborar un número importante de productos que presentan diferentes recetas de
procesamiento y que, por lo tanto, siguen secuencias de tareas distintas. Estas plantas
poseen equipos multifuncionales o multipropósito que se agrupan de acuerdo a las tareas
que pueden hacer; siendo consecuentemente más flexibles. Como se mencionó, los
productos poseen secuencias de elaboración disímiles y, más aún, un mismo producto, en
distintos momentos, puede seguir rutas de producción diferentes. Estas instalaciones poseen
una estructura de planta tipo taller o “job-shop” que permite elaborar concurrentemente
varios productos. Sin embargo, esta flexibilidad hace más compleja la operación de estas
plantas, debido a las muchas alternativas de caminos de producción que ellas permiten.
Información de productos en la industria de procesos
A diferencia de los productos de la industria de manufactura discreta, los elaborados
por las industrias de procesos se describen no sólo por BOMs convencionales (que indican
cómo los productos intermedios y terminados se producen a partir de materias primas) sino
también a través de diagramas invertidos (que muestran cómo una materia prima puede ser
descompuesta en diferentes productos). Por otro lado, en la industria de manufactura
discreta en el BOM se incluyen operaciones de ensamblado de partes, mientras que en la
industria química, se describen actividades de combinación y de transformación de
sustancias. De manera contraria, los productos de la industria del petróleo, y algunos
derivados de las industrias lácteas y frigoríficas se describen mediante diagramas invertidos
como los que se introdujeron en la Figura I.7.b. Asimismo, existe un número importante de
productos que se asocian a diagramas mixtos (veáse Figura I.7.c).
En las industrias de procesos, especialmente en las de procesos continuos, los
materiales fluyen en forma continua a través de las distintas etapas del proceso, pudiendo
38
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
ocurrir a lo largo de éste transformaciones químicas que dan lugar a nuevas sustancias.
Asimismo, la elaboración de un producto muchas veces involucra la obtención de otros con
igual o menor valor económico, denominados coproductos y subproductos, respectivamente.
A diferencia de las industrias que manejan productos de naturaleza discreta, aquí no
se hace referencia a la “forma” de los productos por lo que la información que los define no
se relaciona con características geométricas, de dimensiones ni de terminaciones. Sin
embargo, resultan relevantes las propiedades fisicoquímicas de las substancias que fluyen
en el proceso productivo. Según Motard y colab. (1994), una sustancia puede ser un
componente, una mezcla o un sólido amorfo (una sustancia que no puede ser caracterizada
por su peso molecular). En este sentido, la Figura II.2 presenta dicha clasificación.
2..*
Infomezcla
fracMol
fracMas
fracVol
Mezcla
1..*
Sustancia
Componente
NombreSustancia
alias
SólidoAmorfo
tipo
EspecieQuímica
pesoMolecular
fórmulaQuimica
fórmulaEstructural
PseudoComponente
tipo
Figura II.2. Una posible clasificación de sustancias
El concepto de componente abarca tanto especies químicas como pseudocomponentes, tal como las fracciones de petróleo y de carbón. Una especie química es una
sustancia pura que tiene una única fórmula química conocida. Un pseudo-componente es
una sustancia no pura que puede ser caracterizada por un peso molecular promedio medido
o estimado.
Una mezcla es la unión de dos o más sustancias en proporciones variables, de
manera tal que los componentes de la misma pueden separarse por medios físicos. La
participación de una sustancia en una mezcla se establece a partir de su fracción molar, de
masa y/o de volumen.
Una característica común a muchos tipos de industrias es que los productos que
participan son referenciados de diferentes maneras; es común que una sustancia tenga un
nombre con múltiples sinónimos o alias. En el caso de la industria química, los compuestos
se identifican mediante su fórmula química y su nombre. No sólo puede haber más de un
39
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
nombre para una misma sustancia (por ejemplo, etanol o alcohol etílico son sinónimos), sino
que sustancias diferentes, caracterizadas por tener distintas propiedades fisicoquímicas,
pueden tener fórmulas químicas idénticas. Este es el caso de los isómeros, que poseen
diferente estructura molecular. Se aprecia entonces que no es trivial la identificación unívoca
de una especie química y menos aún de una mezcla.
Al ser los productos una parte fundamental de los procesos industriales, surgen
nuevas necesidades de representación de la información. Una de ellas es la vinculada a los
procesos productivos. En la industria de manufactura discreta se utiliza el concepto de ruta
de producción como una forma de representación del proceso de elaboración de un
producto. La ruta de producción no sólo especifica detalles de las operaciones de
maquinado, ensamblado, tratamiento térmico, acabado superficial, etc.; sino también el
orden de ejecución de estas operaciones y los equipos asociados a cada una de ellas
En las industrias de procesos el concepto utilizado es el de receta. Ella especifica la
serie de actividades que requiere la manufactura de un determinado producto, el orden de
ejecución de las mismas, así como las materias primas requeridas. Mientras las recetas de
procesamiento de los productos obtenidos en procesos de tipo continuo son, en general,
sencillas, las que corresponden a industrias de procesos “batch” son por el contrario
complejas (ya que incluyen además de los componentes, la especificación de orden en que
se procesamiento, tiempos de procesamiento, equipos involucrados, valores de variables de
proceso, etc.), y se especifican en diferentes niveles de detalle de acuerdo al estándar ISA
SP-88 (ANSI/ISA 2003).
Esta representación juega un rol importante en la automatización y el control de los
procesos batch; sin embargo, no es la única utilizada. Cuando se abordan problemas de
planificación a corto plazo o “schedulling” de plantas “batch” suele emplearse otra
representación denominada red de estados y tareas (STN - State Task Network) introducido
por Kondili y colab. (1993). Una representación STN es un grafo dirigido que consiste de tres
tipos de elementos: i) nodos estados, que representan las fuentes de alimentación (ingreso
de materias primas), los productos intermedios y los productos finales; ii) nodos tareas, que
representan las operaciones del proceso, que transforman uno o más estados iniciales en
uno o más estados de salida; y iii) arcos que indican el flujo de los materiales.
La Figura II.3 introduce un pequeño ejemplo de este tipo de representación. En ella,
los nodos estados y tareas se esquematizan por círculos y rectángulos respectivamente.
Asimismo, a cada tarea se le asocia un conjunto de estados, que representa los flujos de
entrada y otro que representa los flujos de salida. También se especifican, ya fuera del grafo,
los equipos que pueden llevar a cabo cada tarea, así como un conjunto de parámetros
característicos de la misma y de su ejecución en un determinado equipo.
40
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Producto1
40 %
H
40 %
IntAB
R2
60 %
Alimentación A
10 %
ACaliente
EImpuro
60 %
S
IntBC
90 %
Producto2
50 %
Alimentación B
80 %
R1
50 %
R3
20 %
AlimientaciónC
Figura II.3. Ejemplo de representación STN
A partir del ejemplo y de la descripción presentada en los párrafos previos, es posible
abstraer algunos de los conceptos que se encuentran involucrados en una representación
del tipo STN. Los mismos se muestran en la Figura II.4. Se observa la definición de una
clase Estado, que se especializa en Alimentación, ProductoIntermedio y ProductoFinal.
Algunos ejemplos de instancias de cada una de estas clases se pueden ver en la Figura II.3.
Así, AlimentaciónA, AlimentaciónB y AlimentaciónC son instancias de la clase Alimentación;
ACaliente, IntAB, IntBC y EImpuro son objetos de la segunda clase; mientras que Producto1
y Producto2 corresponden a instancias de la clase ProductoFinal. Otras clases que se
definen para un proceso con etapas “batch” son TareaBatch y EquipoBatch, que constituyen
las diferentes tareas que aparecen en la red y los equipos donde se llevan a cabo. Estas dos
clases se encuentran unidas por la relación RelaciónT-E, en la cual se especifican los
parámetros que caracterizan a un par Tarea-Equipo. El tiempo de procesamiento de una
tarea en un determinado equipo y el tamaño de lote para una tarea en dicho equipo son
ejemplos de estos parámetros. Finalmente, la figura muestra la relación existente entre
Estado y Tarea, que define los flujos de Entrada o de Salida.
Estado
TareaBatch
RelaciónT-E
Flujo
TamañoDeLote
TiempoProcesamiento
Alimentación
EquipoBatch
Entrada
Producto Producto
Intermedio
Final
Salida
Figura II.4. Algunos de los conceptos involucrados en una representación STN para un
41
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
proceso con etapas “batch”
II.2.2. Clasificación de ambientes productivos basada en el concepto de CODP
(Customer Order Decoupling Point)
Antes de presentar una clasificación de los diferentes entornos de producción es
necesario introducir el concepto de Customer Order Decoupling Point (CODP). CODP se
refiere al punto, en el flujo de materiales, a partir del cual las actividades comienzan a estar
específicamente guiadas por las órdenes de los clientes. Las tareas que se encuentran
antes del CODP, se llevan a cabo en base a lo especificado por actividades de planificación
de la producción que toman como base pronósticos de demanda. Por el contrario, la
ejecución de las tareas que se encuentran después del CODP está guiada por las órdenes
de los clientes. Las diferentes ubicaciones del CODP se asocian a distintos entornos de
manufactura y distribución de productos, los cuales se esquematizan en la Figura II.5 y se
describen a continuación:
“Distribution-on-stock” (DOS): los productos son fabricados y distribuidos en
almacenamientos descentralizados sin tener en cuenta una demanda directa
de los clientes;
“Make-to-stock” (MTS): en este esquema los productos son fabricados en
base a pronósticos de demanda, pero la distribución de los mismos se hace a
partir de un stock generalizado, considerando las órdenes de los clientes.
“Assemble-to-order” (ATO): se manufacturan y almacenan componentes, que
son a posteriori ensamblados para fabricar productos finales a pedido del
cliente.
“Make-to-order” (MTO): en este esquema todo el proceso productivo es
controlado por las órdenes de los clientes; es decir, se produce sólo lo que es
especificado en las órdenes por los clientes.
“Engineer-to-order” (ETO): los productos requieren un diseño de ingeniería a
pedido del cliente (o una personalización importante). En general, cada orden
de cliente requiere un diseño, una estimación de costos, listas de materiales
(los que se compran en función del pedido) y rutas de producción particulares
para esa orden.
Cada uno de estos entornos productivos impone diferentes necesidades de
información debido a sus características particulares. Wortmann (1992) presenta la
valoración de una serie de atributos según el entorno productivo, la cual se resume en la
42
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Tabla II.1. En particular, este autor analiza cuáles son las actividades en las que se focalizan
la gerencia superior y la gerencia media, cuáles son los procesos de mayor incertidumbre y
cuáles poseen operaciones de mayor complejidad y deberían ser soportadas por sistemas
de información.
Compra
Manufactura
Ensamblado
Compra
Manufactura
Ensamblado
Compra
Manufactura
Compra
4
Compra
5
Venta
DOS
Distribución
Venta
MTS
Ensamblado
Distribución
Venta
ATO
Manufactura
Ensamblado
Distribución
Venta
MTO
Manufactura
Ensamblado
Distribución
Venta
ETO
3
Distribución
2
1
DOS – Distribution on stock | MTS – Make-to-stock | ATO – Assemble-to-order
MTO – Make-to-order | ETO – Engineer-to-order
Figura II.5 Entornos productivos definidos por la posición del CODP
En entornos tipo ATO, como ya se mencionó, los productos finales se obtienen a
través del ensamblado de componentes (previamente fabricados y almacenados) según los
pedidos de los clientes. Debido a esto, existe una gran variedad de productos que son
ofrecidos a los clientes. En consecuencia, la administración de operaciones enfrenta mucha
incertidumbre en cuanto al número y tipo de órdenes que se recibirán desde los clientes. Las
especificaciones de los productos requeridos cambian de un cliente a otro, incluso para un
mismo cliente en el tiempo. Esta incertidumbre en las demandas afecta en gran medida a las
actividades de planificación. La administración de la producción se enfoca en el balance
entre la provisión de los materiales, la capacidad disponible y el ingreso de órdenes de
clientes. Por otra parte, los sistemas de información dan soporte a las actividades de ingreso
de órdenes de clientes y provisión de materiales. Algunos de los sistemas que se utilizan
son: de chequeo de consistencia de los requerimientos de los clientes, generación de BOMs,
instrucciones de manufactura y otros documentos de ingeniería, así como cálculo de costos
y fechas de entrega en base al programa maestro de producción (MPS-Master Production
Schedule).
43
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Tabla II.1 Comparación de diferentes entornos productivos
CODP
Características
ETO
MTO
ATO
MTS
Marketing
Actividades de mayor
importancia para la
gerencia superior
Contratos de
órdenes de
clientes
Capacidad
productiva
Innovación
Incertidumbres en
Especificaciones
de productos
Utilización de los
recursos de
producción
Variedad de
órdenes de
clientes que se
reciben
Ciclos de vida
de los
productos
Complejidad de las
operaciones de …
Ingeniería
Manufactura de
componentes
Ensamblado
Distribución
física
Actividades de mayor
importancia para la
gerencia media
Administración
de proyectos
Subcontrataciones
Plan maestro de
producción y
schedulling
Control de
stock
Sistemas de
información dan
soporte a …
Ingeniería de
productos
Ingeniería de
manufactura
Provisión de
materiales y
entrada de
órdenes
Pronósticos de
demandas y
control de stock
Control del piso de
planta
Distribución
La situación del mercado en compañías del tipo MTO es usualmente mucho más
incierta que en entornos ATO, debido a que no existe un producto que pueda ser
promocionado y cuya demanda pueda ser pronosticada, ya que cada cliente da las
especificaciones de los productos que requiere. En consecuencia, la incertidumbre de las
operaciones está concentrada usualmente en cuánto esfuerzo demandará el proceso
productivo para un trabajo particular.
A menudo estas compañías tienen restringidas sus capacidades para limitar sus
costos fijos; por lo cual tienden a aceptar más órdenes que las que se pueden efectivamente
realizar y subcontratan parte del trabajo. Por ello, la administración de producción está
enfocada en el control del flujo de trabajo y subcontratos. Asimismo, aspectos tales como
control del “lead time” y eficiencia en el uso de los recursos son bastante importantes.
Por su parte, los negocios tipo ETO enfrentan una gran incertidumbre acerca del
contenido de las especificaciones de los clientes. Cada orden de cliente es gestionada como
un proyecto y requiere, por ende, un diseño, una estimación de costos, una lista de
materiales y rutas de producción particulares para ese pedido. El costo, el tiempo de entrega
y la calidad del producto final son determinados en la fase de ingeniería, por lo cual, la
ingeniería de productos es a menudo la actividad más compleja para gestionar.
El foco en la ingeniería de productos implica que la naturaleza de las actividades de
44
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
planificación de la producción no está orientada a los materiales como en empresas ATO, ni
a las capacidades como en organizaciones MTO, sino que está focalizada en los procesos.
La administración de los proyectos está asociada a la gestión de la complejidad de las
actividades guiadas por las órdenes de clientes. Esto incluye control de documentos, control
del cambio de las especificaciones de los productos, control de la calidad, evaluación del
riesgo, reuso de experiencias previas y uso óptimo de las capacidades de personal.
En las industrias de tipo MTS, donde no hay personalización de los productos, se
manufacturan productos estándares teniendo en cuenta pronósticos de demandas. Por ello,
la incertidumbre no radica ni en los procesos productivos que deben ejecutarse para
responder a las órdenes de los clientes, ni en qué tipo de especificaciones de productos se
recibirán; sino en cómo y en cuán largo será el ciclo de vida de los productos que se
manufacturan, con lo cual pueden variar las políticas de producción y stock. Por otra parte,
debido a que la distribución se realiza a partir de un stock generalizado, según los pedidos
de los clientes, la logística de distribución es la actividad que reviste mayor complejidad. Los
sistemas de información dan soporte, principalmente, a la gestión de dicho stock
generalizado, al seguimiento de las entregas (sistemas “track and trace”) y a la realización
de pronósticos de demanda.
Otro concepto que frecuentemente se tiene en cuenta para la clasificación de
ambientes productivos está relacionado con la cantidad de dinero invertida en el desarrollo
de productos o en el proceso productivo, independientemente de las particularidades de las
órdenes del cliente (Wortmann, 1992). Una compañía se denomina:
i)
Orientada al Producto (OPD): si las inversiones fundamentalmente se dirigen al
desarrollo de productos.
ii)
Orientada al Proceso (OPC): si ha hecho considerables inversiones en el
desarrollo del proceso productivo.
iii)
Orientada a los Recursos (OR): si las inversiones son hechas en recursos
(humanos, maquinarias), pero no necesariamente en procesos.
Las clasificaciones mencionadas en esta sección no son excluyentes y una
determinada industria puede pertenecer a más de una categoría. En la Tabla II.2 se
presentan ejemplos de diferentes industrias y su clasificación de acuerdo a los criterios
recientemente presentados.
A efectos de ilustrar esta doble categorización considérese una fábrica de aviones
que invierte billones de dólares en el desarrollo de sus productos sin tener confirmada una
orden de cliente específica. Estas compañías son capaces de incorporar algo de ingeniería
dirigida por la orden del cliente, constituyéndose así, en empresas del tipo Engineer-to-Order
- Orientadas al Producto. La situación es diferente para una empresa aeroespacial
45
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
que produce satélites. Un satélite es fabricado completamente en base a la orden del cliente
por una empresa que tiene la capacidad para hacerlo. Tales compañías son del tipo
Engineer-to-Order - Orientadas a los Recursos. Finalmente, considérese el caso de una
empresa que elabora packaging a medida. En base a las necesidades específicas de cada
cliente la empresa hace el diseño de las cajas de cartón corrugado y de la impresión que
éstas llevan. Una vez producidas se encarga de la distribución; en consecuencia, se
considera que esta empresa es de tipo Engineer-to-order – Orientada a los procesos.
Tabla II.2. Clasificación de diferentes tipos de industria de acuerdo a la posición
del CODP y a la orientación de las inversiones.
ETO
MTO
ATO
Orientada al Producto
Aeronáutica
Máquinas herramientas
Automotriz Pesada
Orientada al Proceso
Packaging
Papel
Siderurgia
Orientada a los
Recursos
Aeroespacial
Fundición
Construcción
A partir del análisis presentado es posible observar las disímiles características que
presentan los productos en los distintos tipos de organizaciones productivas. Asimismo se
puede apreciar que la información específica de productos a gestionarse cambia con el tipo
de industria.
Por ejemplo, en un entorno MTS es indispensable contar con información acerca de
la logística de distribución de los productos, pronósticos de demanda de cada producto (por
zona geográfica, por segmento de mercado, etc.). Sin embargo, no se requiere información
para llevar a cabo la trazabilidad de la orden de producción para un determinado cliente, ya
que los productos que se manufacturan se destinan a un stock generalizado y no están
asociados a un cliente específico como sucede en los entornos ATO, MTO y ETO. En estos
últimos, cada orden de producción está vinculada a un pedido de cliente, el cual indicará qué
componentes
ensamblar,
qué
componentes
producir
o
qué
productos
diseñar,
respectivamente. En consecuencia, la información que se requiere y/o la forma en que se
emplea en cada uno de estos casos es diferente.
Por otra parte, dependiendo del tipo de entorno productivo los distintos sistemas de
soporte empleados se focalizan en diferentes aspectos, demandando información diversa
vinculada a los productos. Estos sistemas de soporte son, según Wortmann (1995), de dos
tipos: de transacciones y de toma de decisiones. Los primeros soportan la actividad diaria de
las organizaciones mientras que los segundos ayudan a la planificación estratégico-táctica.
Los sistemas de transacciones son clasificados por este autor en “independientes del flujo de
órdenes y materiales” y “dependientes” de dicho flujo. Estos dos tipos de sistemas tendrán
46
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
diferente importancia según se trate de un entorno MTS, ATO, MTO o ETO ya que en cada
uno de ellos, el CODP determina el punto a partir del cual el flujo de órdenes comienza a
influir sobre las actividades productivas. En consecuencia, cuanto más cerca del final del
proceso de manufactura se encuentre dicho punto, más importancia tendrán los sistemas
independientes por sobre los dependientes. Contrariamente, a medida que el CODP se
desplaza hacia las primeras etapas de producción, la importancia de los sistemas
dependientes del flujo de órdenes comienza a crecer, en tanto decrece la de los sistemas
independientes.
La información que es gestionada por los sistemas independientes del flujo de
órdenes está relacionada principalmente con el BOM, las rutas de manufactura y las
capacidades productivas. Esta información es usada de manera diferente según se trate de
un ambiente MTS o de un ambiente ETO. En el primer caso es usada en las actividades de
planificación y control de la producción para generar planes de requerimientos de materiales
y de capacidades, por lo cual debe ser consistente, completa y actualizada. En un entorno
ETO, en cambio, es empleada sólo como información de referencia para el diseño de
soluciones específicas para cada cliente. Por ello, los requerimientos de completitud,
consistencia y actualidad no son tan estrictos en este último caso.
En los sistemas de información dependientes del flujo de órdenes, las órdenes de
clientes juegan un rol importante tanto en un entorno MTS como en uno ETO. La diferencia
radica en lo que representa una orden de cliente en cada uno de los ambientes. En una
empresa MTS, una orden es una lista de ítems que deben ser entregados en determinadas
cantidades y en una fecha dada. En cambio, en una compañía ETO, representa un conjunto
de especificaciones de diseño.
Estos son algunos de los tantos aspectos en que estos dos tipos de entornos difieren
en el manejo de la información de productos. A modo de resumen, la Tabla II.3 presenta una
comparación de las características mencionadas en los párrafos precedentes en relación a
cada uno de los entornos analizados.
A partir del análisis presentado en la primera sección de este capítulo, es posible
observar las disímiles características que presentan los productos en los distintos tipos de
organizaciones productivas. Consecuentemente, la definición de un modelo de productos
que considere correctamente todas las particularidades de cada uno de los distintos tipos de
organizaciones es un objetivo casi imposible de alcanzar.
Por lo hasta aquí expuesto, resulta necesario restringir el alcance de este trabajo, de
manera de: i) abarcar las particularidades comunes a un grupo de organizaciones
productivas; y ii) permitir la extensión del modelo que se propone para contemplar las
características específicas de cada organización. Al respecto, se tomará como información a
47
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
modelar todos aquellos aspectos que se vinculan con la representación de la estructura de
los productos manufacturados. La problemática relacionada con las estructuras de los
productos ya fue introducida en el Capítulo I. Los puntos más complejos de la representación
de estas estructuras estaban dados por la existencia de:
múltiples variantes de productos con estructuras similares,
estructuras híbridas, en las cuales existen tanto relaciones de composición
como de descomposición,
caminos de producción alternativos, que permiten la obtención de un producto
de diferentes maneras.
Tabla II.3. Comparación de la información de productos en entornos MTS y ETO
MTS
ETO
Información de BOMs y rutas de
producción
Totalmente conocida al
momento de recibir la orden
del cliente
Incierta al momento de recibir
la orden del cliente
Estandarización de los productos
Altamente estandarizados
Particulares a cada cliente
Órdenes de cliente
Lista de ítems
Conjunto de especificaciones
de diseño
Identificación del producto
durante el proceso productivo
Por número de parte
Por orden de trabajo
Explosión de requerimientos
Definida a partir del BOM por
la actividad de planificación
de requerimientos de
materiales
Se define en la fase de
ingeniería de productos
Para ejemplificar esta problemática, la siguiente sección presenta dos casos de
estudio de industrias de tipo MTS del sector alimenticio, las cuales serán utilizadas a lo largo
de la Tesis para ilustrar los conceptos propuestos. En ambos casos, se trata de industrias,
cuyos modelos de productos son gestionados actualmente de manera tradicional; es decir
que cada variante es representada como un producto diferente.
II.3. CASOS DE ESTUDIO
Debido a que diferentes industrias tienen distintas necesidades de información, se
consideró conveniente durante el desarrollo de esta Tesis trabajar con dos casos de estudio
distintos que permitan ejemplificar todos los aspectos del modelo propuesto. Es por ello que
se presentan en esta sección las problemáticas que conlleva la gestión de los productos de
una planta de producción de golosinas y los de una industria frigorífica. En ambos casos
existe una enorme cantidad de variantes para cada producto. El segundo, además, es un
48
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
caso típico donde existen productos con estructuras complejas, así como también diferentes
estructuras para un mismo producto. Es importante aclarar que estos casos de estudio se
utilizarán a lo largo de la Tesis para ejemplificar los conceptos que se irán presentando.
II.3.1. Modelo de productos de una planta de producción de golosinas
La información presentada en esta sección corresponde a los datos de productos de
la planta de caramelos duros y rellenos de la División de Golosinas de un importante grupo
industrial de Argentina. Se ha tomado parte del modelo de productos de dicha organización,
el cual se encuentra descrito en mayor detalle en Giménez (2005). Por razones de
confidencialidad se han cambiado los nombres de los mercados, los productos y se emplean
códigos y descripciones de fantasía.
Los productos terminados que salen de la planta bajo estudio son vendidos en dos
grandes segmentos: mercado interno y mercado externo. Además, cada uno de ellos puede
ser fragmentado según tipo de cliente en agrupaciones más pequeñas. Muchos de estos
productos tienen un comportamiento similar en dichos mercados, por ejemplo, en la
estacionalidad de la demanda. De igual manera se hallan similitudes muy manifiestas entre
ciertos productos, los cuales muchas veces difieren solamente en la etiqueta del envase,
respondiendo a exigencias reglamentarias e idiomáticas del país de destino. En cualquiera
de los dos segmentos de mercado los productos que se presentan corresponden a tres
marcas: Bs, KIM y ROC, las cuales son ofrecidas en una gran variedad de presentaciones.
En consecuencia, la cantidad de productos similares que se manejan en la organización es
muy elevada. Los mismos se clasifican dentro de alguna de las siguientes categorías, a
saber:
Producto Terminado (PT)
Semielaborado (SE), o Ensamblado Intermerdio (EI)
Materia Prima (MP)
Material de Empaque (ME)
Esta clasificación contempla si el producto es elaborado dentro de la planta (SE y PT)
o es provisto por terceros (MP y ME). Aquí tanto MP como ME son dos casos particulares de
materia prima, agrupando dentro de este concepto a todos aquellos materiales que son
adquiridos a un proveedor externo a la empresa y que posteriormente reciben un
procesamiento dentro de las instalaciones industriales dispuestas para tal fin. La distinción
entre una y otra categoría reside en el tipo de procesamiento recibido, así pues a la MP se le
realiza una transformación con el fin de obtener los semielaborados, a los cuales se les
adiciona el ME (el cual no sufre transformación alguna) para obtener o bien otro
semielaborado, o un producto terminado. La planta en cuestión gestiona alrededor de 200
49
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
productos finales (PF), 300 ensamblados intermedios (EI), más de 150 materias primas y
500 materiales de empaque diferentes. Para hacer más sencillo el ejemplo, se tomaron
únicamente 70 PT y los semielaborados (180), materias primas (62) y materiales de
empaque (230) requeridos por éstos.
En lo que respecta a la codificación de los productos que se presentarán a
continuación, se utilizará un código que consta de 10 caracteres (2 letras + 6 dígitos) y
responde al siguiente patrón: los dos primeros caracteres representan la categoría del
producto: PT, SE, MP o ME respectivamente. Los siguientes dígitos identifican un producto
particular dentro de la categoría definida por los primeros caracteres del código. De esta
manera, el código SE208395 representa al colorante ColRojoRt54, en tanto, ME211452
corresponde al material de empaque CajaCarx750GR
Todos los productos finales son obtenidos mediante operaciones de transformación y
ensamblado, es decir que tienen una estructura de composición. A partir de distintas
materias primas se manufacturan los diferentes semielaborados intermedios y a estos se les
incorpora una serie de materiales de empaque para obtener así el producto final.
Si se adopta un BOM multinivel para representar la estructura de estos productos, se
tienen entre 5 y 8 niveles dependiendo del producto particular. La Figura II.6 presenta una
estructura genérica que esquematiza la estructura de todos los productos que se analizarán.
El nivel 0 es una composición del semielaborado SE1, el material de empaque y el
material necesario para armar el ballet, representados por los componentes genéricos MEi.
SE1 corresponde a una bolsa, o una caja de cartulina más una etiqueta, que contiene
caramelos individuales envueltos (SE2). Estos caramelos pueden ser del mismo o diferente
tipo. En el nivel 3, se presentan el ensamblado SE3, denominado caramelo desenvuelto,
más el papel envoltorio (ME3.1) y el papel separador (ME3.2). Debajo de ese nivel, se
componen ensamblados intermedios y materias primas para producir cada SEi. El caramelo
desenvuelto se obtiene de una masa y un relleno, en el caso de caramelos rellenos. Por su
parte, la masa (SE4.2) se elabora a partir de almíbar y de otros ingredientes, los cuales
pueden ser semielaborados (SE5.2), como el caso de algunos colorantes (SE5.3), o
materias primas (MP5.i), como el ácido cítrico y las esencias saborizantes. Lo mismo es
válido para el relleno (SE.4.1), compuesto por colorante (SE5.1) y otras materias primas
(MP6.i). En el nivel 6 se encuentran el colorante (SE6.1) y las distintas materias primas
(MP6) de las que se compone el almíbar. En algunas ocasiones se adiciona leche
condensada, que también estaría ubicada como semielaborado en el nivel 6. Por último, en
el nivel 7 se incluye a las materias primas a partir de las que se elaboran los colorantes y la
leche condensada (MP7.i). Es importante aclarar que para algunos productos, el nivel 1 y el
nivel 2 aparecen fusionados en un único nivel, en el cual figuran como componentes los
50
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
caramelos envueltos (SE2.1) por un lado y los materiales para embolsarlos (ME2.i), por otro;
así como los materiales de empaque del nivel 1 (ME1.i). Tal es el caso del ejemplo del
producto final que se muestra en la Figura II.7.
P
Nivel 0
ME
1.1
SE1
Nivel 1
ME
2.1
Nivel 2
ME
2.n
SE
3.1
Nivel 3
Nivel 5
Nivel 7
ME
3.1
ME
3.2
MP
6,1
SE
4.2
MP
5.1
SE
5.1
ME
1.n
SE
2.1
SE
4.1
Nivel 4
Nivel 6
ME
1.2
MP
5.n
MP
6,n
SE
6.1
MP
7.1
SE
5.3
SE
5.2
MP
6,n+1
MP
7.n
MP
6,i
MP
6.i+1
MP
5.n+1
MP
6.m
MP
5.m
MEi
Materia de Empaque i
MPi
Materia Prima i
Pi
Producto Teminado
SEi
Ensamblado Intermedio
Figura II.6 Estructura genérica de un producto
Nivel 0
Nivel 1
Nivel 2
Nivel 3
Nivel 4
Nivel 5
Nivel 6
51
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Figura II.7. Árbol de estructura multinivel para el producto PT112608
(FrutalRelleno5x750GR)
En la Figura II.7 se presenta el árbol de estructura del producto terminado PT112608
(FrutalRelleno5x750GR.) Éste corresponde a una caja de cartón corrugado que contiene 5
bolsas de 750 grs de caramelos de 5 sabores frutales (en proporciones iguales). Cada uno
de los tipos de caramelos envueltos que se incluye está especificado por uno de los
semielaborados (SExxxxxx) que se encuentra en el nivel 1.
Los semielaborados que forman parte de esta estructura corresponden a caramelos
individuales de los denominados “BolsínSaborX5GREnv” marca ROC en los siguientes
sabores: pera (SE511606), pomelo (SE511607), lima (SE511609), frutilla (SE511605) y cereza
(SE511610). La Tabla II.4 presenta el listado de materiales de un nivel, correspondiente al
producto final en cuestión.
Tabla II.4. BOM de un nivel del producto PT112608 (FrutalRelleno5x750GR)
Componente
SE511605
SE511606
SE511607
SE511609
SE511610
ME712167
ME216641
ME108446
ME408998
ME211452
ME107932
ME215741
BolsínFrutilla5GREnv
BolsínPera5GREnv
BolsínPomelo5GREnv
BolsínLima5GREnv
BolsínCerez5GREnv
PeRellenoF750GR
EtFrutal5x750GR
SeparadorT678
PExtensibleb89
CajaCarx750GR
CintaAdh50x1200
EtiqueraFrutal750GR
Unidades
requeridas
1.046520
1.046520
1.046520
1.046520
1.046520
0.043890
1
0.03
0.0041
Unidad de
medida
KG
KG
KG
KG
KG
KG
UNID
UNID
KG
*
*
1
0.93
UNID
M
*
*
6
UNID
De igual manera se presentan en las Tablas II.5 y II.6 los componentes de otros
productos
finales:
PT109446
(RedondoFrutaKIM5x750GR)
y
PT109449
(VaritaKIM5X750GR). En cada una de dichas tablas se marcaron con un asterisco (*)
aquellas partes que son comunes a las tres estructuras y con el símbolo ⊕, las que se
repiten en 2 de las estructuras. Los elementos resaltados corresponden a partes del tipo
material de empaque. Las tres estructuras difieren en los caramelos individuales que
incorporan y en los elementos de rotulado. Sin embargo, más adelante se podrá apreciar
que, si bien son considerados productos diferentes, parte de las estructuras de estos
caramelos individuales son casi idénticas.
Bajando un nivel en la estructura que se presentó en la Figura II.7, se analizarán a
continuación los caramelos envueltos. Se considerará el caso de los caramelos sabor frutilla
SE508219
(VaritaKIMFrutillaEnv),
SE511605
(BolsínFrutilla5GREnv)
y
SE511714
(FrutillaKIM5GREnv), cuyas estructuras se presentan seguidamente en la Figura II.8 y en las
52
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Tablas II.7 a II.9.
Tabla II.5. BOM de un nivel del producto PT109446
(RedondoFrutaKIM5x750GR)
Componente
ME712242
ME217040
ME217009
ME108446
ME408998
ME107932
ME211452
SE511710
SE511711
SE511712
SE511714
SE511713
PeCarKIMx750GR
EtFrutalKIM750ws
EtFrutalKIM750p
SeparadorT678
PExtensibleb89
CintaAdh50x1200
CajaCarx750GR
PeraKIM5GREnv
PomeloKIM5GREnv
LimaKIM5GREnv
FrutillaKIM5GREnv
CerezaKIM5GREnv
Unidades
requeridas
0.045753
6
1
0.033
0.0041
0.96
1
1.026556
1.026556
1.026556
1.026556
1.026556
Unidad de
medida
KG
UNID
UNID
UNID
UNID
M
UNID
KG
KG
KG
KG
KG
⊕
*
*
*
*
Tabla II.6. BOM de un nivel del producto PT1009449 (VaritaKIM5X750GR)
Componente
SE508207
SE508219
SE508246
SE508247
SE508253
ME712242
ME217041
ME2017045
ME108446
ME408998
ME107932
ME211452
VaritaKIMPeraEnv
VaritaKIMFrutillaEnv
VaritaKIMDuraznoEnv
VaritaKIMPomeloEnv
Varita KIM LimaEnv
PeCarKIMx750GR
EtVaritaKIM750
EtVaritaKIM22x80
SeparadorT678
PExtensibleb89
CintaAdh50x1200
CajaCarx750GR
Unidades
requeridas
1.014614
1.014614
1.014614
1.014614
1.014614
0.045753
6
1
0.025
0.03
0.93
1
Unidad de
medida
KG
KG
KG
KG
KG
KG
UNID
UNID
UNID
UNID
M
UNID
⊕
*
*
*
*
Tabla II.7. BOM de un nivel del producto SE508219 (VaritaKIMFrutillaEnv)
Componente
SE408193
ME308386
VaritaFrutillaDes
EnvVaritaKIMFrutilla
Unidades
requeridas
0.958
0.042
Unidad de
medida
KG
KG
Tabla II.8. BOM de un nivel del producto SE511605 (BolsínFrutilla5GREnv)
Componente
SE411614
BolsínFrutilla5GRDes
Unidades
requeridas
0.930232
Unidad de
medida
KG
53
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
ME908441
ME113307
PapelSepBolsín
EnvBolsínFrutillaROC
0.034108
0.035659
KG
KG
Tabla II.9. BOM de un nivel del producto SE511714 (FrutillaKIM5GREnv)
Componente
SE411614
ME910113
ME108346
BolsínFrutilla5GRDes
InteriorBolsin
EnvBolsínFrutillaKIM
Unidades
requeridas
0.946857
0.016672
0.036471
Unidad de
medida
KG
KG
KG
En la Figura II.8 es posible observar que en todos los casos, un caramelo envuelto se
compone de un semielaborado y de uno o dos materiales de empaque. El semielaborado
corresponde al caramelo desenvuelto y los materiales de empaque a los papeles usados
para envolver dicho caramelo. Algunos caramelos llevan sólo un papel de envoltorio y otros
además de éste cuentan con un papel separador. Se aprecia en la figura que el caramelo
SE508219 (VaritaKIMFrutillaEnv) posee solamente el papel envoltorio ME2017045
(EnvVaritaKIMFrutilla); mientras que los otros dos tienen un papel separador (ME908441 y
ME910113) y los correspondientes papeles de envoltorio (ME113307 y ME108346).
Figura II.8. Estructuras de tres semielaborados tomados como ejemplo
Asimismo, existe también otro producto intermedio, el SE508482 (BolsínFrutillaZ),
que se muestra en la Tabla II.10, cuya composición es similar al caramelo envuelto
SE511605 (Tabla II.8). En las Tablas II.8 y II.10 puede observarse que estos dos caramelos,
sólo difieren en el semielaborado que corresponde al caramelo desenvuelto, ya que ambos
poseen el mismo material de empaque. En un caso se trabaja con el SE411614
(BolsínFrutilla5GRDes) y en el otro con el SE408215 (BolsínFrutillaDes). En la Figura II.9
pueden observarse las coincidencias en las estructuras de estos semielaborados. A su vez,
como puede apreciarse en las Tablas II.11 y II.12, estos productos tienen los mismos
componentes: una masa sabor frutilla SE609259 y un relleno sabor frutilla SE808945. Sin
54
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
embargo, las cantidades de composición que se definen en uno y otro caso son diferentes.
En la Figura II.9 también pueden observare las coincidencias en las estructuras de estos dos
semielaborados.
Figura II.9. Ejemplo de caramelos desenvueltos con estructuras similares
Tabla II.10. BOM de un nivel del producto SE508482 (BolsinFrutillaZ)
Componente
SE408215
ME908441
ME113307
BolsínFrutillaDes
PapelSepBolsín
EnvBolsínFrutillaROC
Unidades
requeridas
936.13
30.00
30.87
Unidad de
medida
GR
GR
GR
Tabla II.11. BOM de un nivel del producto SE411614
(BolsínFrutilla5GRDes)
Componente
SE808945
SE609259
Relleno Frutilla
MasaFrutilla
Unidades
requeridas
17
83
Unidad de
medida
GR
GR
Tabla II.12. BOM de un nivel del producto SE408215 (BolsínFrutillaDes)
Componente
SE808945
SE609259
Relleno Frutilla
MasaFrutilla
Unidades
requeridas
19
81
Unidad de
medida
GR
GR
En este punto es importante aclarar que de la muestra de productos a la que se tuvo
acceso, solamente 6 caramelos individuales desenvueltos no incorpora relleno. El resto de
los caramelos individuales desenvueltos está compuesto, en todos los casos, de una masa y
un relleno. Si bien el caso de los caramelos rellenos conduce al manejo de productos con
estructuras más complejas, es posible apreciar que éstos poseen estructuras muy similares,
que merecerían un tratamiento particular.
55
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Continuando con el caso de estudio, se analizará la situación de los caramelos
individuales de una misma marca destinados a un mismo mercado, pero que tienen diferente
sabor. Se tomarán para este estudio los caramelos rellenos frutales con formato bolsín de 5
GR marca ROC. Este tipo de caramelos es producido en 5 sabores: Pera (SE511606),
Frutilla (SE511605), Cereza (SE511610), Pomelo (SE511607) y Lima (SE511609). La
estructura del segundo tipo (frutilla) ya ha sido introducida en la Figura II.9. De igual manera,
la composición del caramelo sabor cereza se presentó en la Figura II.7, mientras que los
otros sabores se ilustran a continuación en la Figura II.10.
Figura II.10. Estructura de caramelos desenvueltos de diferentes sabores frutales
Es posible observar en las figuras precedentes que en todos los casos, los caramelos
se componen de dos partes que pertenecen al grupo de materiales de empaque y de un
semielaborado que es el caramelo propiamente dicho. Las dos primeras corresponden a un
papel separador que siempre es el mismo (ME908441), y un papel envoltorio, que es
diferente para cada caso, ya que está en relación directa con el sabor del caramelo que está
envolviendo. Asimismo, todos los semielaborados se componen de una masa y un relleno
del
correspondiente
sabor.
Por
ejemplo,
el
producto
intermedio
SE411618
(BolsínLima5GRDes) se compone de una masa y un relleno sabor lima (semielaborados
SE609151 y SE808947 respectivamente)
Todos estos semielaborados (masas y rellenos) tienen una composición similar, sólo
difieren en los colorantes y las esencias utilizados para otorgarles un determinado sabor y
aspecto. La Figura II.11 y las Tablas II.13 a II.17 presentan las composiciones
correspondientes a cada uno de los rellenos ilustrados en la figura mencionada.
Tabla II.13. BOM de un nivel del producto SE808943 (RellenoPera)
Componente
Unidades
requeridas
Unidad de
medida
56
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
MP108910
SE808324
EsenciaPeraP33
RellenoMermelada
4.95253
995.04
GR
GR
Tabla II.14. BOM de un nivel del producto SE808944 (RellenoCereza)
Componente
SE208786
MP108922
SE808324
ColRojoRx43
EsenciaCerezaP34
RellenoMermelada
Unidades
requeridas
3.78
4.934
991.284
Unidad de
medida
GR
GR
GR
Tabla II.15. BOM de un nivel del producto SE808945 (RellenoFrutilla)
Componente
SE208786
MP108842
SE808324
ColRojoRx43
EsenciaFrutillaP35
RellenoMermelada
Unidades
requeridas
3.78
4.933
991.28
Unidad de
medida
GR
GR
GR
Tabla II.16. BOM de un nivel del producto SE808946(RellenoPomelo)
Componente
MP108657
SE208570
SE808324
EsenciaPomeloP32
ColAmarilloYz3
RellenoMermelada
Unidades
requeridas
4.27877
3.78
991.93
Unidad de
medida
GR
GR
GR
Tabla II.17. BOM de un nivel del producto SE808947 (RellenoLima)
Componente
MP108616
SE209075
SE808324
EsenciaLimaP31
ColAnaranjadoOm4
RellenoMermelada
Unidades
requeridas
4.27877
3.78
991.93
Unidad de
medida
GR
GR
GR
57
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Figura II.11. Composición de distintos rellenos frutales
Todos los rellenos presentados, con excepción del de pera, se componen de una
base de relleno de mermelada, más una esencia y un colorante correspondiente al sabor del
relleno que se quiere obtener. Teniendo en cuenta las cantidades de composición, se puede
observar que las estructuras de los rellenos sabor cereza y sabor frutilla difieren únicamente
en la esencia que se les incorpora ya que la cantidad de esencia es la misma y el resto de
las relaciones de composición son idénticas (el mismo componente e igual cantidad). Para
los rellenos de pomelo y lima las cantidades de composición son iguales, pero tanto el
colorante como la esencia difieren. A diferencia del resto de los caramelos, al no tener
esencia, las cantidades de composición en el relleno de pera no coinciden con ninguno de
los otros rellenos presentados.
Prosiguiendo con el ejemplo, en la Figura II.12 y las Tablas II.18 a II.22 se presentan
las estructuras asociadas a las masas utilizadas en los caramelos desenvueltos que están
siendo analizados.
Tabla II.18. BOM de un nivel del producto SE609150 (MasaPera)
Componente
SE108451
MP108910
MP107962
AlmíbarT1
EsenciaPeraP33
ÁcidoZ36
Unidades
requeridas
1191
3.099
12.5
Unidad de
medida
GR
GR
GR
Tabla II.19. BOM de un nivel del producto SE609152 (MasaCereza)
Componente
SE108451
AlmíbarT1
Unidades
requeridas
1191
Unidad de
medida
GR
58
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
SE208786
MP108922
MP107962
ColRojoRx43
EsenciaCerezaP34
ÁcidoZ36
2.4
3.157
12.5
GR
GR
GR
Tabla II.20. BOM de un nivel del producto SE609259 (MasaFrutilla)
Componente
SE108451
SE208786
MP108842
MP107962
AlmíbarT1
ColRojoRx43
EsenciaFrutillaP35
ÁcidoZ36
Unidades
requeridas
1192
2.4
2.9
11.5
Unidad de
medida
GR
GR
GR
GR
Tabla II.21. BOM de un nivel del producto SE609149 (MasaPomelo)
Componente
MP108657
SE108451
SE208570
MP107962
EsenciaPomeloP32
AlmíbarT1
ColAmarilloYz3
ÁcidoZ36
Unidades
requeridas
2.727
1191
2.4
12.5
Unidad de
medida
GR
GR
GR
GR
Tabla II.22. BOM de un nivel del producto SE609151 (MasaLima)
Componente
SE108451
MP108616
SE209075
MP107962
AlmíbarT1
EsenciaLimaP31
ColAnaranjadoOm4
ÁcidoZ36
Unidades
requeridas
1191.329
2.727
2.4
12.5
Unidad de
medida
GR
GR
GR
GR
59
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Figura II.12. Composición de las masas frutales
Al igual que en el caso de los rellenos, la masa de pera no lleva colorante, por lo cual
es la que presenta una estructura con mayores diferencias respecto de las otras masas. En
el resto de los casos planteados, para obtener la masa se utiliza: almíbar, ácido Z36,
colorante y esencia. Los dos primeros componentes corresponden al mismo producto en
todos los casos, mientras que el colorante y la esencia dependen del sabor del caramelo que
quiere elaborarse. Por ejemplo, la esencia de lima (MP108616) y el colorante anaranjado
(SE209075) serán utilizados para obtener un caramelo de lima (SE609151); en cambio, si se
pretende un caramelo sabor pomelo (SE609149) se utilizará colorante amarillo (SE208570) y
esencia de pomelo (MP108657). Respecto a las cantidades de composición, son
exactamente las mismas para los sabores de Pomelo y Lima. Mientras que se observó que
los caramelos de frutilla y cereza poseen igual composición para sus rellenos, sin embargo,
sus masas tienen una pequeña diferencia en las cantidades de composición.
Si se analiza lo que ocurre con otras masas, es posible encontrar que estas
semejanzas en las estructuras se mantienen. Como ejemplo de esto, se presentan a
continuación las estructuras correspondientes a todas las masas de sabor frutilla utilizadas
en diferentes tipos de caramelos, a saber:
SE311862(MasaFrutillaEFE)
SE609259 (MasaFrutilla)
SE609198 (MasaFrutillaMIX)
SE313862(MasaFrutillaOK)
60
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Las estructuras de estas masas se muestran a través de los correspondientes grafos
que se presentan en la Figura II.13, complementados con las listas de materiales que para
cada caso se introducen en las diferentes tablas. Éstas son la Tabla II.18 para el caso ya
analizado, y las Tablas II.23 a II.25 para las estructuras que se introducen aquí por primera
vez.
Tabla II.23. BOM de un nivel del producto SE609198 (MasaFrutillaMIX)
Componente
SE108451
SE208786
MP108842
MP107962
AlmíbarT1
ColRojoRx43
EsenciaFrutillaP35
ÁcidoZ36
Unidades
requeridas
1196.571
0.8
3.0
6.0
Unidad de
medida
GR
GR
GR
GR
Tabla II.24. BOM de un nivel del producto SE313862 (MasaFrutillaOK)
Componente
SE113861
SE208786
MP108842
MP107962
AlmíbarT2
ColRojoRx43
EsenciaFrutillaP35
ÁcidoZ36
Unidades
requeridas
1192.28
2.4
2.9
11.5
Unidad de
medida
GR
GR
GR
GR
Tabla II.25. BOM de un nivel del producto SE311862 (MasaFrutillaEFE)
Componente
SE108451
SE208786
MP108219
MP107962
AlmíbarT1
ColRojoRx43
EsenciaFrutillaB97
ÁcidoZ36
Unidades
requeridas
1175.275
2.4
1.057
25.0
Unidad de
medida
GR
GR
GR
GR
Como ocurre en los diferentes sabores analizados más arriba, para el caso de las
masas sabor Frutilla, es posible observar que todas tienen estructuras similares. El colorante
y el ácido son los mismos para todos los productos; pero, en algunos casos, difieren en las
cantidades utilizadas. El almíbar, al igual que la esencia, es el mismo en tres de las cuatro
masas.
61
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Figura II.13. Composición de rellenos sabor frutilla
Es importante mencionar, que estas masas son similares también a las
correspondientes al sabor cereza. Basta observar las Tablas II.19 y II.20 para apreciar las
similitudes, las cuales se repiten para los otros tipos de masas sabor cereza que existen y
cuyas
estructuras
se
presentan
SE609109(MasaCerezaEFE.);
en
ii)
las
tablas
SE613935
II.26
a
II.28,
a
(MasaCerezaOK);
saber:
y
i)
iii)
SE608394(MasaCerezaA).
Hasta aquí se han analizado siempre caramelos del tipo frutal; pero este análisis
podría extenderse a caramelos de otros sabores no frutales. En estos casos, se presentan
situaciones similares en lo que respecta a las estructuras de masas y rellenos de los
caramelos desenvueltos y a las estructuras de los caramelos envueltos que siguen el patrón
ya mencionado (papel envoltorio + papel separador + caramelo desenvuelto).
Tabla II.26. BOM de un nivel del producto SE613935 (MasaCerezaOK)
Componente
SE113861
SE208786
MP108922
MP107962
AlmíbarT2
ColRojoRx43
EsenciaCerezaP34
ÁcidoZ36
Unidades
requeridas
1190.715
2.4
3.157
12.5
Unidad de
medida
GR
GR
GR
GR
Tabla II.27. BOM de un nivel del producto SE608394 (MasaCerezaA)
Componente
SE208395
MP108245
SE109547
ColRojoRt54
EsenciaCerezaB21
Almíbar F1DE
Unidades
requeridas
1.494
3.89
1198.330
Unidad de
medida
GR
GR
GR
62
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
MP107962
ÁcidoZ36
15.0
GR
Tabla II.28. BOM de un nivel del producto SE609109 (MasaCerezaEFE)
Componente
SE108451
SE208786
MP108922
MP107962
AlmíbarT1
ColRojoRx43
EsenciaCerezaP34
ÁcidoZ36
Unidades
requeridas
1172.171
2.36
3.548
25.0
Unidad de
medida
GR
GR
GR
GR
II.3.2. Modelo de productos de una industria frigorífica
Este caso de estudio, presenta la problemática relacionada con los productos de una
industria frigorífica. La organización constituye una red de playas de faena y plantas de
producción (plantas de despostada, manufactura de conservas, preparación y envasado de
menudencias, etc.) ubicadas en diferentes lugares del país, a través de las cuales se
concretan los diversos negocios. La empresa en cuestión se estructura en función de
distintas áreas de negocios que derivan del ganado vacuno, entre las que se destacan:
medias reses, cortes cárnicos frescos enfriados y congelados, así como carnes cocidas
congeladas y enlatadas, chacinados, etc. Uno de sus negocios más significativos
corresponde a los cortes cárnicos frescos, los cuales representan un 60% de los ingresos de
la empresa y se destinan mayormente al mercado externo, aunque también alcanzan el
mercado interno a través de los hipermercados.
Dada la complejidad de la organización este análisis se focalizará en el negocio de
los cortes frescos, junto con los subproductos que permiten obtener las carnes cocidas,
congeladas y enlatadas.
Todas las partes del cuerpo del animal bovino son aprovechables; es decir, pueden
ser comercializadas como tales o luego de algún proceso de manufactura, como es el caso
de los huesos, lengua, rabo, pezuñas, entrañas, nervios y pellejos, grasa, etc., así como los
trozos de carne que resultan como subproductos durante la preparación de los cortes
cárnicos que se comercializan. La industria cárnica produce en grandes cantidades un
amplio rango de productos que pueden clasificarse en:
Cortes cárnicos enfriados: Cortes individuales seleccionados de animales
bovinos, enfriados a 0OC y envasados al vacío para ser vendidos en
mercados locales o internacionales.
Cortes cárnicos congelados: Cortes individuales seleccionados de bovinos,
congelados a -18OC.
Menudencias: menudencias seleccionadas, congeladas y empaquetadas
individualmente.
63
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Carnes cocidas enlatadas (CCE): conservas, corned beef.
Carnes cocidas congeladas (CCC) que luego son usadas como materias
primas por otras empresas alimenticias.
Cada uno de los productos que pertenecen a estas categorías, a su vez, es
comercializado en diferentes presentaciones dependiendo del mercado en el cual es
vendido. En consecuencia, el número de variantes de un mismo producto que se gestiona es
muy alto. De manera ilustrativa, las Tablas II.29 a II.31, presentan ejemplos de cortes
cárnicos congelados de dos diferentes mercados externos; así como productos terminados
correspondientes a carnes cocidas congeladas cubeteadas, rebanadas y picadas, que se
ofrecen en diferentes mercados internacionales y locales.
Tabla II.29. Algunos cortes frescos ofrecidos. Marca A. Mercado USA
Cortes
Lomo
Bife Ancho
Peceto
Cuadril con Tapa
….
Peso medio
1.5 KG
2 KG
1.4 KG
3.5 KG
Envase/ Preservación
Al vacío / Enfriado
Al vacío / Enfriado
IWP
Al vacío/ Enfriado
Presentación
20 KG/Caja
20 KG/Caja
20 KG/caja
20 KG/caja
Tabla II.30. Algunos cortes frescos ofrecidos. Marca B. Mercado
Alemania
Cortes
Lomo
Bife Angosto
Nalga Adentro
Cuadril con Tapa
Garrón
Bife Angosto con
Cuadril y Lomo
…
Peso medio
1.2 KG
1.7 KG
1.4 KG
3.5 KG
4 KG
Envase / Preservación
Al vacío / Enfriado
Al vacío / Enfriado
IWP
Al vacío /Enfriado
Congelado
Al vacío /Enfriado
Presentación
15 KG/Caja
15 KG/Caja
15 KG/caja
15 KG/caja
15 KG/caja
15 KG/caja
Como puede concluirse luego de un análisis de las Tablas II.29 a II.31, en la industria
frigorífica también existe un gran número de variantes de productos. Sin embargo, no se
estudiará en detalle la problemática relacionada con el gran número de variantes existentes,
debido a que la misma ya fue puntualizada en el caso de estudio anterior. Lo que se
pretende aquí es tratar las cuestiones relativas a estructuras de productos mixtas (con
relaciones de composición y descomposición) y estructuras alternativas para algunos de los
productos involucrados en este tipo de industrias. Todos los productos mencionados
anteriormente tienen como materia prima principal el ganado bovino, la cual, a diferencia de
las utilizadas en el caso de los caramelos, es no atómica. La misma es dividida a través de
operaciones de despostada para llegar a obtener productos finales o intermedios, que luego
pasan a ser componentes de algún producto final.
64
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Tabla II.31. Ejemplos de diferentes carnes cocidas congeladas
Producto
Mercados
CCCCub1
Alemania
CCCCub2
USA
CCCCub3
USA
CCCCub4
Italia
CCCCub5
Italia
CCCCub6
Alemania
CCCCub7
Suiza
CCCCub1
Alemania
CCCReb1
Europa
CCCReb2
USA
CCCReb3
Italia
CCCReb4
Alemania
FPB1
Europa
FPB2
Local
FPB3
USA
FPDCva
Local
FPD2
USA
FPD1
Europa
Tipos
Cubeteada
Rebanada
Picada Tipo1
Picada Tipo2
El ganado bovino que se adquiere como materia prima, además de corresponder a
diferentes razas, es clasificado y tipificado dando lugar a distintas calidades de materia
prima. Dicha clasificación establece categorías de animales según edad, peso y sexo del
ganado. Por su parte, la tipificación determina tipos de animales según su calidad,
basándose, entre otros aspectos, en el grado de gordura (cantidad y distribución de la
grasa), la conformación de las masas musculares, así como proporción de carne y hueso en
las regiones de cortes más valiosos. El grado de gordura puede ser: 0-magro, 1-escaso, 2moderado, 3-abundante y 4-excedido. En las Tablas II.32 a II.34 se presentan estas
categorizaciones que determinan los diferentes tipos de materias primas.
Tabla II.32. Categorización del ganado bovino en base al peso
Categorías
Escala de pesos (KG/media res)
Novillo
más de 117
Novillito
hasta 117
65
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Vaquillona
hasta 113
Vaca
más de 113
ternero macho/hembra
hasta 73
Mamón
hasta 50
Toro
sin exigencias
Tabla II.33. Tipificación del ganado bovino y destino del mismo
Categorías Superior Muy Buena Buena Mediana Regular Inferior Baja
Novillo
Novillito
Vaquillona
Vaca
Ternero
Toro
JJ
AA
AA
AA
AA
AA
Exportación
J
A
A
A
A
A
U
U2
B
C
B
C
B
C
B
C
B
B
Consumo Local
N
T
D
E
D
E
D
E
D
E
C
C
Manufactura o Conserva
A
F
F
F
F
C
Tabla II.34. Diferentes calidades de ganado bovino
Categorías
Novillo
Novillito
Vaquillona
Vaca
Ternero
Mamón
Toro
Tipo
Grados de grasa
Escala de pesos
(KG/media res)
JJ-J-U-N
T
A
AA-A-B
D
E
F
AA-A-B
D
E
F
AA-A-B-C-D
E
F
0-1-2-3-4
0-1
Ninguno
0-1-2-3
0-1-2-3
0-1
ninguno
0-1-2-3
0-1-2-3
0-1
ninguno
0-1-2-3-4
0-1-2-3
ninguno
más de 188
sin exigencias
sin exigencias
hasta 117
hasta 108
hasta 95
hasta 95
hasta 113
hasta 103
hasta 85
hasta 85
más de 113
sin exigencias
sin exigencias
AA-A-B-C
D
E
F
A
B
C
AA-A-B-C
0-1-2
0-1-2
0-1
ninguno
0-1
0-1
0-1
0-1-2
hasta 73
hasta 68
hasta 55
hasta 55
hasta 50
hasta 40
hasta 30
sin exigencias
A efectos de mostrar algunas de las problemáticas de este tipo de industria
considérese que a partir de cada cabeza de ganado se obtienen dos medias reses, cada una
de las cuales a su vez se vuelve a dividir en cuarto delantero, cuarto trasero y algunos otros
productos intermedios. Dependiendo de la operación de despostada (desarmado) que se
66
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
aplique sobre la media res, se obtienen diferentes formas de cuartos delanteros y traseros,
los que son considerados productos diferentes.
En particular, los productos CuartoTCorte1, CuartoTCorte2, CuartoTCorte3 son
semielaborados que son la base de la operación de despostada del cuarto trasero. A partir
de cualquiera de éstos es posible obtener los diferentes productos derivados del cuarto
trasero que se muestran en la Figura II.14. Los mismos pueden comportarse como
semielaborados (productos que son sometidos a otras operaciones de terminación) o
productos finales (que se comercializan directamente como tales). Por ejemplo, el Lomo,
puede comercializarse tal como se lo obtiene de la despostada del cuarto trasero (en cuyo
caso se consideraría un producto final) o preparado con menor cantidad de grasa, nervios y
pellejos, de acuerdo a los requerimientos de diferentes clientes (por ejemplo, tal como lo
demandan el Reino Unido, Brasil, etc.). En este último caso, el rol del producto Lomo es el
de un intermediario. En el proceso de despostada del cuarto trasero, además de los
productos mostrados en la Figura II.14 se obtienen subproductos de menor valor comercial.
Ellos son: MP1CarneCocida, MPGrasa, HuesoSinCarne, NerviosyPellejos.
Figura II.14. Algunos productos de valor comercial que se pueden obtener a partir del
cuarto trasero
El
desarmado
de
CuartoTCorte1
mediante
la
operación
denominada
O1CuartoTCorte1 da lugar a los productos intermedios y subproductos que se detallan en la
primera columna de la Tabla II.35. Las siguientes columnas de dicha tabla presentan los
rendimientos para diferentes tipos de animales (NovilloJJ, NovilloJ). Es decir, esta tabla
muestra que la descomposición del CuartoTCorte1 da lugar a diferentes rendimientos para
algunos de los productos obtenidos (por ejemplo, BifeAngosto) dependiendo del tipo de
animal sobre el cual se aplique la operación de descomposición. En la tabla se muestran los
rendimientos para dos tipos diferentes de animales, NovilloJJ y NovilloJ. Sin embargo, en la
práctica, muchas industrias frigoríficas incluyen un mayor número de tipos. Dos tipos
distintos de animales poseen disímiles contexturas y por ende diferentes tamaños de
67
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
algunos de sus cortes cárnicos. Asimismo, la terneza y la composición de cada corte hacen
que los productos de diferentes tipos de animales se destinen a distintos mercados.
Los datos vinculados la Tabla II.35 deben interpretarse de la siguiente manera, por
cada 100 KG de animal vacuno que se faene, el corte CuartoTCorte1 de un animal tipo
NovilloJJ pesa en promedio 40.96 KG y la de un animal tipo NovilloJ pesa 41.68 KG. Es
decir, que si un animal dado pesa 312 KG, es posible calcular cuál es el rendimiento del
corte CuartoTCorte1 y de los productos que de su despostada se obtengan a partir de los
datos anteriores.
Tabla II.35. Descomposición O1CuartoTCorte1 aplicada
sobre el producto CuartoTCorte1
BifeAngosto
BolaLomo
ColitaCuadril
CuadrilCT
CZACuadrada
Garrón
Lomo
NalgaDeAdentroCT
Peceto
Tortuguita
MP1CarneCocida
MPGrasa
HuesoSinCarne
NerviosYPellejos
Total
NovilloJJ
3.86
3.72
1.22
4.10
4.19
2.05
1.775
6.075
1.84
1.56
1.134
0.075
8.32
1.041
40.96
NovilloJ
4.28
3.72
1.22
4.10
4.19
2.05
1.775
6.075
1.84
1.56
1.134
0.085
8.42
1.051
41.68
Una simple comparación entre los productos de la Figura II.14 y los de la Tabla II.35
permite concluir que hay varios productos que se incluyeron en dicha figura pero que no
aparecen en la tabla. Ello ocurre pues existen diferentes formas de descomponer el
semielaborado CuartoTCorte1. Por ejemplo, otra alternativa sería la que se muestra en la
Tabla II.36, donde en lugar de obtener el semielaborado CuadrilCT (Cuadril con Tapa) se
obtienen directamente los semielaborados CuadrilST (Sin Tapa) y TapaCuadril.
Los semielaborados CuadrilST y TapaCuadril podrían obtenerse directamente como
muestra la Tabla II.36 o a partir de la descomposición del CuadrilCT como lo indica la Tabla
II.37. Similares consideraciones podrían hacerse para otros cortes tales como la
NalgaDeAdentroCT que podría descomponerse en NalgaDEAdentroST y TapaNalga, o el
producto Tortuguita del cual puede obtenerse CZONTortuguita (corazón de tortuguita) y
TortuguitaSL.
Como
se
observa,
los
productos
NalgaDeAdentroST,
TapaNalga,
CZONTortuguita y TortuguitaSL no aparecen en las Tablas II.35 ni II.36, pero sí están
incluidos en la Figura II.14.
Como se indicó previamente, los productos CuadrilCT, NalgaDeAdentroCTapa y
68
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Tortuguita pueden ser considerados tanto productos finales como productos intermedios.
Aquí la connotación de producto final se refiere a que dichos productos pueden ser
directamente empacados y vendidos como tales sin sufrir ninguna operación de
procesamiento adicional y. En realidad, se los vende en cajas o contenedores que
comprenden un determinado número de unidades de estos cortes cárnicos.
Tabla II.36. Descomposición OP2CuartoTCorte1
aplicada sobre el producto CuartoTCorte1
BifeAngosto
BolaLomo
ColitaCuadril
TapaCuadril
CuadrilST
CZACuadrada
Garron
Lomo
NalgaDeAdentroCT
Peceto
Tortuguita
MP1CarneCocida
MPGrasa
HuesoSinCarne
NerviosYPellejos
Total
NovilloJJ
3.86
3.72
1.22
0.92
3.18
4.19
2.05
1.775
6.075
1.84
1.56
1.134
0.075
8.32
1.041
40.96
NovilloJ
4.28
3.72
1.22
0.92
3.18
4.19
2.05
1.775
6.075
1.84
1.56
1.134
0.085
8.42
1.051
41.68
Sin embargo, dependiendo de las necesidades y demandas del mercado un producto
dado puede sufrir diversas operaciones de procesamiento dando lugar a nuevos productos
finales y/o intermediarios. Un ejemplo es el que se muestra en la Tabla II.37, donde se
exponen los productos obtenidos (TapaCuadril y CuadrilST) y los rendimientos para dos
tipos de novillos sobre una determinada operación de despostada que se aplica al corte
CuadrilCT (Cuadril con tapa). Otra posible operación de despostada, que se hace sobre el
mismo producto base, es la que se muestra en la Tabla II.38. En este caso se obtienen el
producto final CuadrilCTExp (Cuadril con tapa para exportación) y los subproductos
MPGrasa y NerviosyPellejos. Otra alternativa es la que se exhibe en la Tabla II.39, donde se
obtiene otra variedad de cuadril para exportación al Reino Unido y cuatro subproductos. A
los dos subproductos que aparecían en la Tabla II.38 se agregan MP2CarneCocida y
MP1CarneCocida, que constituyen subproductos que luego serán materias primas para la
elaboración de carnes cocidas.
Tabla II.37. Descomposición OP1CuadrilCT aplicada
sobre el producto CuadrilCT
TapaCuadril
CuadrilST
Total
NovilloJJ
0.92
3.18
4.1
NovilloJ
0.92
3.18
4.1
69
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Tabla II.38. Descomposición OP2CuadrilCT aplicada
sobre el producto CuadrilCT
CuadrilCTExp
MPGrasa
NerviosYPellejos
Total
NovilloJJ
3.30
0.70
0.10
4.1
NovilloJ
3.1
0.9
0.1
4.1
Tabla II.39. Descomposición OP3CuadrilCT aplicada
sobre el producto CuadrilCT
CuadrilCorteUK
MP2CarneCocida
MP1CarneCocida
MPGrasa
NerviosYPellejos
Total
NovilloJJ
3.13
0.13
0.16
0.62
0.06
4.1
NovilloJ
3.0
0.15
0.16
0.72
0.07
4.1
Retornando a los productos que se muestran en la Tabla II.37, también es válido
aclarar
que
CuadrilST
y
TapaCuadril
pueden
considerarse
productos
finales
o
semielaborados. Por ejemplo, el producto TapaCuadril puede comercializarse como tal, con
lo cual se lo consideraría un producto final o podría requerir un procesamiento adicional,
como es el caso de la variedad TapaCuadrilExp que se obtiene a partir de la operación de
despostada que se muestra en la Tabla II.40 o como el caso de la variedad
TapaCuadrilEEUU que se obtiene a partir de la operación de despostada que se presenta en
la
Tabla
II.41.
Asimismo,
el
intermediario
TapaCuadril
podría
descomponerse
completamente en subproductos, tal como sucede en la operación de despostada que se
muestra en la Tabla II.42.
Tabla II.40. Descomposición OP1TapaCuadril aplicada
sobre el productoTapaCuadril
TapaCuadrilExp
MPGrasa
Total
NovilloJJ
0.82
0.10
0.92
NovilloJ
0.77
0.15
0.92
Es posible hacer consideraciones similares a las precedentes para todos los
productos que pueden obtenerse del cuarto trasero y que se han incluido en la Figura II.14.
Se ha mostrado en las tablas y figuras previas que distintas operaciones de despostada
sobre un tipo determinado de cuarto trasero (por ejemplo, sobre CuartoTCorte1) pueden dar
lugar a diferentes caminos de obtención del intermediario CuadrilST. De manera análoga,
partiendo de distintos tipos de cuartos traseros (por ej., CuartoTCorte1 y CuartoTCorte2) y
70
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
aplicando diferentes operaciones de despostada, también es posible obtener el mismo
producto CuadrilST.
Tabla II.41. Descomposición OP2TapaCuadril aplicada
sobre TapaCuadril
TapaCuadrilEEUU
MP1CarneCocida
MPGrasa
NerviosYPellejos
Total
NovilloJJ
0.429
0.155
0.296
0.040
0.92
NovilloJ
0.41
0.16
0.31
0.04
0.92
Tabla II.42. Descomposición OP3TapaCuadril aplicada
sobre el producto TapaCuadril
MP2CarneCocida
MP1CarneCocida
MPGrasa
Total
NovilloJJ
0.60
0.12
0.20
0.92
NovilloJ
0.50
0.12
0.30
0.92
Con respecto a los diferentes caminos de obtención de un producto final, puede
considerarse el caso presentado en las Tablas II.43 y II.44 que muestra diferentes
alternativas de obtención del producto CentroNalgaSuiza, el cual se puede producir, ya sea
a partir del intermediario NalgaDeAdentroST (ver Tabla II.43) o a partir del intermediario
NalgaDeAdentroCT (ver Tabla II.44). La relación entre estos dos últimos intermediarios es la
que se presenta en la Tabla II.45. La razón de la existencia de caminos alternativos puede
comprenderse fácilmente si se considera el caso de dos escenarios de operación. En el
primer escenario existe demanda de los productos CentroNalgaSuiza y TapaNalga, mientras
que en el segundo no hay demanda del último producto. En consecuencia, en el escenario
#1 se adoptarán como operaciones de manufactura las descriptas en las Tablas II.45 y II.43,
mientras que en el escenario #2, la operación de manufactura será la que se muestra en la
Tabla II.44.
Tabla II.43. Descomposición OP1NalgaDeAdentroST aplicada
sobre el producto NalgaDeAdentroST
CentroNalgaSuiza
MP1CarneCocida
MPGrasa
NerviosYPellejos
Total
NovilloJJ
3.16
0.71
0.436
0.339
4.645
NovilloJ
3.16
0.71
0.525
0.25
4.645
71
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Tabla II.44. Descomposición OP1NalgaDeAdentroCT aplicada
sobre el producto NalgaDeAdentroCT
CentroNalgaSuiza
MP2CarneCocida
MP1CarneCocida
MPGrasa
NerviosYPellejos
MP3CarneCocida
Total
NovilloJJ
3.16
0.526
1.414
0.649
0.206
0.120
6.075
NovilloJ
3.16
0.465
1.415
0.679
0.236
0.12
6.075
Tabla II.45. Descomposición OP2NalgaDeAdentroCT
aplicada sobre el producto NalgaDeAdentroCT
NalgaDeAdentroST
TapaNalga
Total
NovilloJJ
4.645
1.430
6.075
NovilloJ
4.645
1.430
6.075
Al inicio de la presentación de este caso de estudio, se mencionó que los cortes que
se obtienen de un cuarto delantero o trasero, pueden ser envasados para ser
comercializados o pueden ingresar como materia prima en el proceso productivo de algunos
de los productos finales que corresponden a la categoría de carnes cocidas congeladas o
enlatadas. Tal es el caso de los distintos productos correspondientes al grupo de las Carnes
Cocidas Congeladas (CCC). Las Tablas II.46 a II.48 presentan los productos intermedios y
las materias primas necesarias para manufacturar tres de dichos productos. En estas tablas,
es posible observar que algunas materias primas son parte componente de los tres
productos presentados (aquéllas marcadas con un asterisco) y otras materias primas están
presentes sólo en dos de ellos (éstas se indican con un símbolo ⊕).
Tabla II.46. BOM de un nivel para el producto final CCCCub1
Componente
CCCtipo1
TuboTipo1cs
Caja ZX3 Azul
Cierre CCC prw
Adhesivo ARP
BolsasT1
RótuloMK6
Unidades
requeridas
1000
280.0
53
53
0.26
2
20
Unidad de
medida
KG
UNID
UNID
UNID
KG
UNID
UNID
*
*
*
*
72
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
ClipsF56
Broches YV7
ObleasQW33
EtiquetaCB
200
400
222
53
UNID
UNID
UNID
UNID
*
*
*
*
Unidad de
medida
KG
UNID
UNID
UNID
KG
UNID
UNID
UNID
UNID
UNID
UNID
⊕
*
*
*
*
*
*
*
*
Tabla II.47. BOM de un nivel para el producto final CCCCub2
Componente
CCCtipo2
TuboTipo2ss
Caja XC71 Amarilla
Cierre CCC prw
Adhesivo ARP
BolsasT1
RótuloMK6
ClipsF56
Broches YV7
ObleasQW33
EtiquetaCB
Unidades
requeridas
1000
180
40.0
40.0
0.26
2
21
200
400
222
40
Tabla II.48. BOM de un nivel para el producto final CCCCub3
Componente
CCCtipo3
TuboTipo3ss
Caja XC71 Amarilla
Cierre CCC prw
Adhesivo ARP
BolsasT1
RótuloMK6
ClipsF56
Broches YV7
ObleasQW33
EtiquetaCB
Unidades
requeridas
1000
180
40.0
40.0
0.26
2
21
200
400
180.70
40
Unidad de
medida
KG
UNID
UNID
UNID
KG
UNID
UNID
UNID
UNID
UNID
UNID
⊕
*
*
*
*
*
*
*
*
Es posible observar en las Tablas II.46 a II.48, que estos productos finales se
componen de un producto intermedio (CCCtipo1, CCCtipo2 y CCCtipo3) respectivamente,
más un conjunto de insumos para el packaging. Las estructuras que corresponden a los
productos intermedios CCCtipo1, CCCtipo2 y CCCtipo3 se exponen en las Tablas II.49 a
II.51 y en la Figura II.15
73
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
Figura II.15 Estructura de los productos intermedios CCC1tipo1, CCCtipo2 y CCCtipo3
Tabla II.49. BOM de un nivel del producto CCCtipo1
Componente
MP3CarneCocida
MP1CarneCocida
Gelatina Comestible
Unidades
requeridas
1213.18
478.0
12.12
Unidad de
medida
KG
KG
KG
Es importante señalar que las cantidades indicadas en las Tablas II.49 a II.51
corresponden a los requerimientos de fabricación de 1000 KG de cada uno de los productos
en cuestión (CCCtipo1 a CCCtipo3, respectivamente). El total requerido en todos los casos
es mayor a 1000 KG debido a que durante el proceso de manufactura se pierde agua, que
no es contabilizada en el BOM por no poseer valor comercial.
Tabla II.50. BOM de un nivel del producto CCCtipo2
Componente
MP3CarneCocida
Gelatina Comestible
Sal Entrefina
Unidades
requeridas
1711.86
12.12
15
Unidad de
medida
KG
KG
KG
Tabla II.51. BOM de un nivel del producto CCCtipo3
Componente
MP3CarneCocida
Gelatina Comestible
Unidades
requeridas
1733.0
12.12
Unidad de
medida
KG
KG
La Figura II.16 presenta la estructura híbrida correspondiente al producto CCCCub2.
En ella puede apreciarse cómo el producto MP3CarneCocida participa en una estructura de
descomposición (como derivado del intermediario NalgaDeAdentroCT) y en una de
composición (como parte componente del producto intermedio CCCtipo2). Debe destacarse
que se presentan situaciones similares para los otros dos productos finales introducidos
anteriormente. En la misma figura, se indica con los rótulos “derivadoX” a las relaciones de
descomposición, mientras que las relaciones de composición se señalan con las etiquetas
74
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
“parteX”.
Estructura de
Composición
Estructura de
Descomposición
Figura II.16 Ejemplo de un producto que participa en una estructura híbrida
Otra característica para destacar en relación a este caso de estudio, y que agrega
complejidad al manejo de la información estructural de los productos en este tipo de
industrias, es que algunos productos intermedios pueden obtenerse a partir de más de una
materia prima y/o semielaborado. Tal es el caso del producto MP1CarneCocida que, como
se muestra en la Figura II.17, puede obtenerse como derivado de 11 productos intermedios
diferentes.
Figura II.17 Diferentes semielaborados a partir de los cuales puede obtenerse el
producto MP1CarneCocida.
Con el objetivo de ejemplificar las notables similitudes existentes entre las estructuras
de algunos de los productos finales analizados, considérese el contenido de la Tabla II.52.
Dicha tabla, presenta diecisiete productos finales que se encuentran en el grupo de las
75
MP3CarneCocida
MP2CarneCocida
CZACuadrada
MP1CarneCocida
Gelatina
Sal
TuboTipo2cs
TuboTipo1ss
TuboTipo1cs
TuboTipo3cs
TuboTipo4ss
TuboTipo4cs
TuboTipo2ss
TuboTipo3ss
TuboTipo5ss
Caja ZX3 Azul
Caja 115 Grande Blanca
Cierre CC prw
Adhesivo ARP
BolsasT1
RotuloMK6
ClipsF56
BrochesYV7
ObleasQW33
EtiquetasCB
40
40
0.26
2
21
200
400
222
40
180
40
40
0.26
2
21
200
400
222
40
180
12
12
CCCCub1
1754
CCCCub2
1754
CCCCub3
53
0.26
2
21
200
400
222
53
53
275
12
15
1754
CCCCub4
53
53
0.26
2
21
200
400
222
53
280
12
1754
CCCCub5
53
53
0.26
2
21
200
400
222
53
275
12
15
1754
CCCReb1
53
0.26
2
21
200
400
222
53
53
280
22
1754
CCCReb2
53
53
0.26
2
21
200
400
222
53
280
22
1754
CCCReb3
53
0.26
2
21
200
400
222
53
53
280
22
1754
CCCReb4
106
106
0.52
4
42
500
500
444
53
446
15
1754
CCCCub7
53
53
0.26
2
21
200
400
222
53
280
12
53
53
0.26
2
21
200
400
222
53
280
12
1202.7 1568
CCCCub6
Tabla II.52. Composición de algunos de los productos finales del negocio de carnes cocidas
FPB1
53
53
0.26
2
19
200
400
222
53
270
1639
8
12
FPB2
53
53
0.26
2
19
200
400
222
53
270
1639
8
12
FPB3
53
53
0.26
2
19
200
400
222
53
270
1639
8
12
CZACuadUK
53
53
0.26
2
19
250
250
222
53
283
1610
CZACuadCEE
53
53
0.26
2
19
300
300
222
53
283
1610
FPBCva
50
0.26
2
18
250
250
222
50
50
212
1587
FPD2
50
0.26
2
18
200
250
222
50
212
50
1587
50
0.26
2
18
250
250
222
50
50
212
1587
FPD1
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
denominadas “carnes cocidas”. Allí se muestran, para cada producto, las materias primas y
los semielaborados que se utilizan para su elaboración. En todos los casos, el producto final
se compone de un semielaborado, cuyos componentes se indican en las primeras seis filas
de dicha tabla, y de un conjunto de insumos para el packaging (listados a partir de la
séptima fila). Se puede observar que los productos involucrados tienen estructuras casi
idénticas. Debido a esto, la utilización de un modelo de representación de estructuras
tradicional, donde cada producto tiene su propia estructura, implicaría un alto grado de
redundancia en la información. Analizando únicamente las relaciones de composición, se
necesitarían para este grupo de productos, 187 relaciones de tipo “parte de”, muchas de las
cuales estarían duplicadas.
II.4. CONCLUSIONES
En la primera parte de este capítulo se presentaron diferentes criterios de
clasificación de organizaciones industriales. Las diversas categorías de clasificación
imponen sobre las empresas productivas, diferentes sistemas de información que den
soporte a sus actividades y, en consecuencia, información de distinta índole es requerida.
Así por ejemplo, los sistemas de entornos MTS requieren exactitud y consistencia en la
información del BOM, en las rutas de manufactura y en las capacidades productivas. En
cambio un ambiente ETO, no requiere tales características sobre dicho conocimiento ya que
sólo lo usa como referencia para definir un diseño de acuerdo a las especificaciones
establecidas en una orden de cliente. Tales especificaciones y el resultado del diseño (lista
de materiales, etapas de producción, costos y tiempos de entrega) son determinantes en el
proceso productivo. Sin embargo, tanto en un entorno MTS como en un ambiente ETO, se
requiere mantener el conocimiento sobre la estructura de los productos que se
manufacturan,
ya sea mediante BOMs estándares o listas de materiales particulares
definidas para un diseño específico. De igual manera, independientemente que se use el
concepto de BOM (industria de manufactura discreta) o de receta (en industrias de
procesos), siempre es necesario representar la estructura de los productos que cada
organización productiva manufactura.
En la segunda parte se introdujeron dos casos de estudio vinculados a los productos
de una planta de golosinas y de un frigorífico, respectivamente, los cuales revelan la
problemática de la representación de estructuras de productos. En particular se observó, en
ambos casos, la presencia de un elevado número de productos similares (variantes de un
producto) y el uso de BOMs tradicionales para la representación de las estructuras de
dichas variantes. En consecuencia, existe un volumen elevado de información duplicada,
con los inconvenientes que ello implica. Además, en el caso de estudio relacionado con la
industria frigorífica, se presentan materias primas no atómicas, las que implican estructuras
77
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
de productos en las que intervienen relaciones de descomposición junto con diferentes
caminos para la obtención de los productos. Esto plantea nuevos desafíos que serán
abordados a lo largo de esta Tesis.
Como ya se mencionó, un modelo de productos único, que represente todas y cada
una de las particularidades que manifiestan las distintas organizaciones productivas, es una
tarea imposible. En consecuencia, esta Tesis se centra en la representación de un modelo
de productos que de solución a la problemática planteada en torno a la información
estructural de los mismos. Se pone especial énfasis en la representación eficiente de un
gran número de variantes con estructuras similares, sean éstas de composición, de
descomposición o híbridas.
78
____________________________________ Dominio de trabajo. Caracterización y definición de su Alcance
III.MODELO DE PRODUCTOS. DEFINICIÓN
III.1. INTRODUCCIÓN
Como ya se mencionó en el Capítulo I, es necesario contar con un modelo de
productos integrado que sea capaz de adaptarse a los cambios impuestos por las nuevas
tecnologías (de producción, gestión y manejo de la información) sobre las organizaciones
industriales actuales. A partir del análisis de los modelos existentes (Capítulo I) y de las
características del dominio de trabajo (Capitulo II), en este capítulo se describe la propuesta
de un modelo de productos que satisface las necesidades planteadas respecto a la
problemática de la representación de estructuras de productos.
En primer lugar, se presentan los fundamentos sobre los que se basa el modelo. Se
introducen los conceptos referidos a: i) múltiples niveles de abstracción para la
representación de un producto; ii) BOM generativo y iii) familia de productos. A continuación
se expone el modelo propuesto teniendo en cuenta los diferentes niveles de abstracción
utilizados en su definición. Es así que se presenta primero el nivel Familia, el cual define los
aspectos comunes a un conjunto de productos. Posteriormente, se define el concepto de
Conjunto de Variantes, que permite diferenciar subconjuntos similares dentro de una Familia
y luego, es explicado el nivel más concreto, denominado Producto. A continuación, se
expone brevemente el comportamiento del modelo en un sistema de procesamiento de
BOMs y finalmente, se presentan las conclusiones.
Los conceptos serán expresados utilizando tecnología de objetos, la cual posibilita la
definición de un modelo extensible y adaptable a un dominio particular. De esta manera los
conceptos aquí propuestos pueden ser especializados en diferentes dominios de trabajo.
Para la representación de los modelos con esta tecnología se utiliza UML (Booch y colab.,
1999; Rumbaugh y colab., 1999). En forma complementaria se definen una serie de axiomas
que permiten aplicar restricciones a las interpretaciones de los modelos planteados en UML.
La especificación de los conceptos propuestos con los axiomas correspondientes, se realiza
en el lenguaje O-Telos, en su implementación ConceptBase (Jarke y colab., 1995, 2003), la
cual provee un modelo computacional integrado (ejecutable en términos de verificación de la
consistencia del modelo).
ConceptBase (base de conceptos) es un administrador de objetos deductivo que
implementa O-Telos, un dialecto de Telos (Mylopoulos y colab., 1990), el cual ha sido uno
de los primeros intentos de integrar propiedades de lenguajes orientados a objetos y
79
_________________________________________________________ Modelo de productos. Definición
lenguajes deductivos. La semántica de O-Telos está basada en DATLOG-neg (Zaniolo y
colab., 1997), una lógica simple que provee una forma no ambigua de determinar la verdad
de una sentencia.
La elección de la base de datos Conceptbase para la representación formal del
modelo se basa fundamentalmente en el hecho de que el grupo de trabajo en el que se
desarrolló esta tesis cuenta con experiencia en la utilización de Conceptbase como
herramienta de especificación y verificación.
III.2. JERARQUÍAS RELACIONADAS CON LA INFORMACIÓN DE PRODUCTOS
En las actividades de planificación estratégica y táctica llevadas a cabo en ambientes
industriales se usa información agregada de productos, ya que el uso de información
detallada implica altos costos computacionales y una gran incertidumbre en los pronósticos.
Por ejemplo, la planificación agregada se ocupa de la generación de planes tácticos de
ventas totales, producción total e inventarios para productos sustitutos (ficticios), que
representan la información agregada de un conjunto de ítems similares. En contraste, esta
información “gruesa” es desagregada para ser usada en la solución de problemas de
planificación de requerimientos de materiales (por ejemplo, cuando el plan agregado es
convertido en el plan maestro de producción, MPS - Master Production Schedule). Dar
soporte a los requerimientos de información de las actividades de planificación con
diferentes horizontes de tiempo (Estratégico-Táctico-Operativo) requiere la capacidad de
organizar los datos y el conocimiento de los productos en diferentes niveles de agregación,
durante todo el ciclo de vida de los mismos.
A efectos de gestionar apropiadamente la información de productos, se proponen
dos jerarquías de conceptos, denominadas jerarquía estructural y jerarquía de abstracción
(Giménez y colab., 2006) (Giménez y colab., 2007). Por un lado, la jerarquía estructural (SH
- Structural Hierarchy) organiza el conocimiento relacionado con la información estructural
de los productos. SH es una herramienta para manejar la información asociada con las
múltiples recetas o procesos disponibles para manufacturar un determinado producto o
grupo de productos similares. Un ejemplo clásico de una aplicación que usa información de
la SH es el sistema de planificación de requerimientos de materiales (MRP – Material
Requirements Planning). Tradicionalmente, la SH ha sido representada a través de los
BOMs. Éstos, como ya se mencionó, permiten representar las relaciones existentes entre
los productos finales, los semielaborados y las materias primas que los componen.
La jerarquía de abstracción (AH – Abstraction Hierarchy) organiza los productos de
acuerdo a diferentes niveles de especificación (desde productos substitutos hasta ítems
individuales). Esta jerarquía utiliza mecanismos para mantener la consistencia de la
información entre los distintos niveles de agregación. Varios ejemplos extraídos de la
80
_________________________________________________________ Modelo de productos. Definición
literatura especializada muestran cómo tareas de agregación-desagregación de información
deben ser utilizadas a lo largo de la AH para coordinar las actividades de planificación que
son ejecutadas en distintos horizontes temporales. Por ejemplo, en los niveles estratégico y
táctico, un pronóstico de demanda agregada es más apropiado (debido a que es más
exacto) que un pronóstico en base a ítems individuales, permitiendo una reducción en los
niveles de inventario (Simchi-levi y colab., 2004). De manera similar, los costos promedios y
las tasas de producción son requeridas para las decisiones de alto nivel en la planificación
de la producción, mientras que se utilizan en el piso de producción datos detallados de estos
factores (Nahmias, 2001).
El modelo propuesto, que es presentado en detalle en este capítulo, formaliza una
representación del conocimiento que integra las jerarquías SH y AH de los productos,
poniendo énfasis en el tratamiento de la información estructural de los mismos.
La jerarquía de abstracción consta de tres niveles, a saber:
Familia: es el nivel más alto y representa un conjunto de productos
similares, que comparten una o más estructuras comunes, pudiendo
representar así recetas de producción alternativas. Estas estructuras
pueden ser particularizadas en el siguiente nivel de abstracción.
Conjunto de Variantes: representa el segundo nivel y es un
subconjunto de integrantes del nivel Familia que comparten una
misma estructura, la cual puede incluir modificaciones respecto de la
estructura de la familia de la cual el conjunto de variantes es miembro.
Producto: se asocia al nivel de menor grado de abstracción.
Representa ítems individuales, que son miembros de un conjunto de
variantes particular. En consecuencia, posee la estructura asociada a
dicho conjunto. Esta estructura está constituida por productos con
existencia física.
Como muestra la Figura III.1, estos tres niveles se encuentran relacionados entre sí
mediante una asociación miembroDe, la cual indica que las entidades que comprenden un
nivel inferior, son miembros de una instancia de abstracción de un nivel superior. Es decir,
una instancia de Producto es miembro de alguna instancia de ConjuntodeVariantes, la cual,
a su vez, es miembro de una instancia de Familia.
81
_________________________________________________________ Modelo de productos. Definición
<<AP>>
AbstracciondeProducto
<<F>>
<<CV>>
<<P>>
Familia
ConjuntodeVariantes
Producto
miembroDe
miembroDe
Figura III.1. Distintos niveles en la abstracción de productos
La Especificación III.1 presenta la implementación en ConceptBase de estos
conceptos y las relaciones que los vinculan. Puede observarse en dicha especificación la
especialización
del
concepto
AbstraccióndeProducto,
en
las
clases
Familia,
ConjuntodeVariantes y Producto. Todos estos conceptos se definen como instancias de la
clase predefinida Class. La relación miembroDe entre un ConjuntodeVariantes y una
Familia, así como la que vincula un Producto con un ConjuntodeVariantes, se implementan
mediante la definición de un atributo con dicho nombre en las clases correspondientes, a
saber: ConjuntodeVariantes y Producto.
Individual AbstracciondeProducto in Class end
Individual Familia in Class isA AbstracciondeProducto end
Individual ConjuntodeVariantes in Class isA AbstracciondeProducto with
attribute
miembroDe:Familia
end
Individual Producto in Class isA AbstracciondeProducto with
attribute
miembroDe:ConjuntodeVariantes
end
Especificación III.1. Definición de niveles de abstracción y sus relaciones
A partir de la información estática que implica la definición introducida por la
Especificación III.1, ConceptBase permite la inferencia de información “dinámica” mediante
la definición de reglas deductivas. En la Especificación III.2 se presenta un ejemplo de este
tipo de reglas que permite la inferencia del atributo miembros que se incorpora en la clase
Familia, el cual corresponde a la inversa de la relación miembroDe entre dicha Familia y la
clase ConjuntodeVariantes. De manera similar, puede definirse una regla en la clase
ConjuntodeVariantes que permita la inferencia de los productos que son miembros de dicho
conjunto.
Familia with
82
_________________________________________________________ Modelo de productos. Definición
attribute
miembros: ConjuntodeVariantes
rule
miembrosRule:$forall f/Familia cv/ConjuntodeVariantes (cv miembroDe f)
==> (f miembros cv)$
end
Especificación III.2. Definición de una regla deductiva
No existe un único criterio para determinar qué características se van a utilizar para
determinar la jerarquía de abstracción. En general, éstos van a depender del tipo de
industria en el que se pretenda implementar el modelo. Asimismo, la definición de esta
jerarquía no es aplicable sólo a productos finales, sino que puede ser establecida para todos
los tipos de partes que intervienen en las diferentes etapas del proceso productivo:
productos terminados, ensamblados intermedios y materias primas. En la Figura III.2 se
presentan algunas instancias de las jerarquías de abstracción para dos productos extraídos
de los casos de estudio introducidos en el Capítulo II.
Para el primer caso, se muestra la familia CarameloFrutalEnv, la cual es una de las
familias definidas a nivel de caramelos envueltos en el caso de estudio de la planta de
golosinas. Los diferentes conjuntos de variantes identificados para dicha familia se
definieron según el tipo de packaging adicionado y de caramelo desenvuelto que utilizan
como componentes. En particular, BolsínFrutalROC y VaritaKIM se muestran en la Figura
III.2. En el último nivel se presentan dos instancias del concepto Producto, las cuales son
miembros del conjunto de variantes BolsínFrutalROC, a saber: BolsínFrutillaROC,
BolsínPeraROC.
En el caso de la industria cárnica, se presenta una jerarquía de abstracción cuya raíz
es la familia CarneCocidaCongelada, cuyos conjuntos de variantes miembros son
CarneCocidaSazonada, CarneCocidaCubeteada1, CarneCocidaCubeteada2. Para estas
dos últimas se muestran algunas instancias de productos que son miembros de las mismas:
CCCCub1 y CCCCub2, para el primer conjunto, y CCCCub4 para el segundo. Estos
productos corresponden a algunos de los productos finales que se presentaron en la Tabla
II.30.
83
_________________________________________________________ Modelo de productos. Definición
<<F>>
Familia
CarneCocidaCongelada
CarameloFrutalEnv
miembroDe
<<VS>>
Conjunto de
Variantes
VaritaKIM
BolsínFrutalROC
CarneCocidaSazonada
CarneCocidaCubeteada2
CarneCocidaCubeteada1
miembroDe
<<P>>
Producto
BolsínFrutillaROC
BolsínPeraROC
CCCCub4
CCCCub1
CCCCub2
Figura III.2. Tres niveles de abstracción en la definición de un producto
III.2.1. Estructura de productos en los distintos niveles de abstracción
Como su nombre lo indica, la jerarquía estructural (SH) permite representar la
información acerca de la estructura de un producto. Esta estructura, como se explicó en el
Capítulo I, puede ser de tres tipos: de composición, de descomposición o híbrida
(combinación de los dos primeros tipos). Es por ello que se propone la definición de una SH
que permita administrar estos tres tipos mencionados. La Figura III.3 presenta ejemplos de
estructuras de composición y descomposición (extraídas de los casos de estudio) a ser
administradas por la SH. Se muestra parte de la estructura de composición correspondiente
al semielaborado BolsínFrutilla5GREnv, la cual se compone de: EnvBolsínFrutillaKIM,
PapelSepBolsín y BolsínFrutillaDes. Este último es un semielaborado de nivel caramelo
desenvuelto que, como se mostró en el Capítulo II, se compone de una masa y un relleno
sabor frutilla. Los cuales a su vez se componen de otros semielaborados y materias primas
que no se muestran en esta figura. Como ejemplo de una estructura de descomposición se
presenta la materia prima CuartoTrasero, de la cual se obtienen, entre otros productos,
Lomo y CuadrilConTapa. A partir de este último, se puede obtener el CuadrilSinTapa y la
TapaCuadril, la cual puede seguir descomponiéndose, según se explicó en el capítulo
previo.
84
_________________________________________________________ Modelo de productos. Definición
BolsínFrutilla5GREnv
CuartoTrasero
PapelSepBolsín
EnvBolsínFrutillaKIM
CuadrilConTapa
SH
Lomo
BolsínFrutillaDes
CuadrilSinTapa
MasaFrutilla
TapaCuadril
RellenoFrutilla
Figura III.3. Estructuras de composición y de descomposición
Una pregunta que se plantea en este punto es, ¿qué sucede con la representación
de la estructura de un producto cuando el mismo se define con distintos niveles de
abstracción? En otras palabras, ¿cómo se especifica la estructura para la familia, para el
conjunto de variantes, y en definitiva, cómo se obtiene una estructura para una variante de
un producto particular? Para dar respuesta a estos interrogantes, la SH propuesta adhiere a
la filosofía de los BOMs generativos, donde un BOM específico se obtiene en el momento en
que es usado a partir de una estructura común. Esta filosofía se materializa definiendo la SH
para cada uno de los niveles de la AH y proveyendo un mecanismo que permita la obtención
de estructuras particulares a partir de estructuras generales.
Los árboles de estructuras mostrados en el Capítulo II para los dos casos de estudio
se corresponden con jerarquías estructurales del nivel más bajo de la AH, representado por
el concepto Producto (Figura III.1). A medida que se asciende en la AH, los árboles de
estructuras se van haciendo más complejos ya que cuando se va escalando en la jerarquía
de abstracción cada nodo del árbol representa información agregada. En consecuencia,
cada uno de ellos ya no simboliza un único componente, sino que puede simbolizar
múltiples potenciales componentes.
Las Figuras III.4 y III.5 presentan ejemplos de árboles de estructuras para los otros
dos niveles de la AH, ConjuntodeVariantes y Familia, para el caso de estudio de la planta de
golosinas. En la primera de estas figuras se muestra, mediante un diagrama BOM con
algunas modificaciones, la estructura para el conjunto de variantes BolsínFrutalROC, al que
pertenece el producto real BolsínFrutilla5GREnv (cuya estructura de composición se
presentó en la Figura III.3).
En la Figura III.4, puede observarse que se han incorporado algunos elementos
nuevos a la representación gráfica de los árboles de estructuras ya vista. En este esquema,
se distinguen aquellos nodos que simbolizan productos reales de los que representan
conjuntos de variantes. En el primer caso, los nodos están dibujados con líneas sólidas,
85
_________________________________________________________ Modelo de productos. Definición
mientras que en el segundo, se utilizan líneas de puntos y rayas intercaladas. Otro elemento
que se incorporó es la representación de la relación miembroDe entre un conjunto de
variantes y sus productos miembros. Por ejemplo, las relaciones entre el conjunto de
variantes SepROC y los productos PapelSepBolsín e InteriorBolsín. También se resaltan en
la figura en tono gris los productos que aparecen en la estructura de nivel de producto, que
ya fueron introducidos en la Figura III.3.
La Figura III.5 presenta la estructura correspondiente a la familia CarameloFrutalEnv,
de la que es miembro el conjunto de variantes BolsínFrutalROC presentado en la Figura
III.4. Al igual que en el caso anterior, se agrega un nuevo tipo de nodo para representar a las
familias (indicado por una línea entrecortada). En este caso, la estructura se compone de
familias, para las que se indican cuales son los posibles conjuntos de variantes por los que
puede reemplazarse un nodo familia en el proceso de obtención de una estructura particular.
Para cada familia se presentan otros conjuntos de variantes miembros de la misma, además
de los mostrados previamente.
El concepto de BOM generativo permite vincular la especialización de una estructura
genérica, la de una familia, con la especificación de una estructura específica
correspondiente a un producto dado (integrante de dicha familia), pasando por las
definiciones de la entidad que los conecta en el nivel de Conjunto de Variantes.
Para el caso presentado en la Figura III.5, a partir de las definiciones asociadas a la
familia CarameloFrutalEnv y el conjunto de variantes BolsínFrutalROC, se obtiene la
estructura del producto BolsínFrutilla5GREnv.
86
_________________________________________________________ Modelo de productos. Definición
BolsínFrutalROC
BolsínFrutilla5GREnv
EnvBolsínFrutillaKIM
EnvBolsínPeraKIM
EnvBolsínCerezaKIM
PapelSepBolsín
EnvBolsínKIM
SepROC
InteriorBolsín
EnvBolsínLimaKIM
EnvBolsínPomeloKIM
BolsínFrutillaDes
BolsínAnanaDes
OvaloFrutal
BolsínLimonDes
BolsínNaranjaDes
BolsínCerezaDes
MasaFrutilla
RellenoFrutilla
MasaPera
MasaCereza
RellenoPera
MasaConAcido
Color
RellenoFrutal
RellenoCereza
MasaLima
RellenoLima
RellenoPomelo
Entidad de Nivel ConjuntodeVariantes
Entidad de Nivel Producto correspondiente a la
estructura de la Figura III.3
Entidad de Nivel Producto
Relación miembroDe
Figura III.4. SH para BolsínFrutalROC, instancia del nivel ConjuntodeVariantes
En la Figura III.6 se introduce el modelo completo que representa los tres niveles de
abstracción planteados. Se han agrupado en recuadros de diferentes tonos de gris los
conceptos correspondientes a cada nivel: Familia, ConjuntodeVariantes y Producto. En los
siguientes apartados de este capítulo se describen y especifican los conceptos y sus
respectivas relaciones. Además, mediante el empleo de vistas se presenta la forma de inferir
conocimiento a partir de la especificación del modelo en el lenguaje O-Telos.
87
MasaPera
Entidad del Nivel ConjuntodeVariantes
Entidad del Nivel Familia
MasaConÁcido
SinColor
MasaConÁcido
Color
EnvBolsínROC
EnvBolsínK
EnvBolsínKIM
PapelSeparador
RellenoFrutal
Entidad del Nivel ConjuntodeVariantes
correspondiente a la estructura de la Figura III.4
Entidad del Nivel Producto
MasaConÁcido
CarameloFrutalDes
PapelEnvoltorio
CarameloFrutalEnv
RellenoPomelo
RellenoLima
RellenoCereza
RellenoPera
RellenoFrutilla
BolsínCerezaDes
BolsínLimaDes
BolsínPomeloDes
BolsínPeraDes
BolsínFrutillaDes
SepRocDeluxe
SepBolsínRoc
InteriorBolsín
PapelSepBolsín
BolsínFrutilla5GREnv
Entidad del Nivel Producto correspondiente a la
estructura de la Figura III.3
Relación miembroDe
RellenoFrutal
VaritaFrutal
FrutalK
OvaloFrutal
FrutalS
SepROC
SepKIM
BolsínFrutalROC
Figura III.5. SH correspondiente a CarameloFrutalEnv, instancia del nivel Familia
MasaLima
MasaCereza
MasaPomelo
MasaFrutilla
EnvBolsínPomeloROC
EnvBolsínLimaROC
EnvBolsínCerezaROC
EnvBolsínPeraROC
EnvBolsínFrutillaROC
EnvBolsínPomeloKIM
EnvBolsínLimaKIM
EnvBolsínCerezaKIM
EnvBolsínPeraKIM
EnvBolsínFrutillaKIM
<<AP>>
<<AP>>
AbstraccionDeProducto
AbstraccióndeProducto
<<FS>>
FamiliaS
derivado
componente derivado
componente
<<F>>
Familia
<<FC>>
FamiliaC
estructuraDe
<<E>>
Estructura
<<RF>>
RestricciónF
<<RC>>
RelaciónC
<<RD>>
RelaciónD
<<ED>>
EstructuraD
<<EC>>
EstructuraC
estructuraAlternativa
tipoRelación
<<TR>>
TipoRelación
quantityPer
<<R>>
Relación prodFactor
max
<<VR>>
min
ValorRestringido
<<TR>>
<<Op>>
Optativa
Optativa
<<TR>>
<<Ob>>
Obligatoria
Obligatoria
<<TR>>
<<S>>
Selectiva
Selectiva
valor
<<
Presel>> preselecciona
<<Presel>>
Preseleccion
Preselección
Conjunto
Seleccionado
miembroDe
modificaciónAplicada
<<M>>
<<M>>
Modificacion
Modificación
<<Elim>>
Eliminación
nuevoQP
cambioAplicado
<<C>>
Cambio
relaciónModificada
<<Sele>>
<<SelFam>>
SelecciónFamilia
SelecciónFamilia
nuevoPF
<<CC>>
CambioC
<<Cpf>>
<<CPF>>
CambioPF
CambioPF
<<Cqp>>
<<CQP>>
CambioQP
CambioQP
<<PS>>
ProductoS
Producto
<<RP>>
RestricciónP
<<U>>
Unidad
derivaDe
<<SVS>>
ConjuntodeVariantesS
miembroDe
miembroD
e <<P>>
<<UV>>
<<VU>>
ValorUnidad
ValorUnidad udeM
<<CVC>>
ConjuntodeVariantesC
<<CV>>
ConjuntodeVariantes
<<RCV>>
RestricciónCV
<<Num>>
<<Num>>
Numero
Número
selecciona
<<PC>>
ProductoC
<< sele>>
Selección
Figura III.6. Modelo de productos propuesto
III.3. NIVEL DE ABSTRACCIÓN FAMILIA
Como se mencionó anteriormente, una Familia agrupa un conjunto de productos
similares. Cada familia está relacionada con la información que es compartida por todos los
miembros que la misma comprende. De dicha información, una de las más importantes se
vincula con la manera en que esa familia está relacionada con otras mediante una
estructura. Estas relaciones definen la jerarquía estructural (SH) de una familia.
89
_________________________________________________________ Modelo de productos. Definición
Una familia puede estar asociada a una o más estructuras, o no estar vinculada a
ellas; ello ocurre en el caso de un producto que es materia prima y no se descompone.
Teniendo en cuenta la cardinalidad de esta relación es posible definir una especialización
del concepto Familia. Dicha especialización se presenta en la Figura III.7.
derivado
componente
Familia
FamiliaS
FamiliaC
estructuraDe
estructuraAlternativa
Estructura
EstructuraD
EstructuraC
RelaciónC
RelaciónD
Relación
Figura III.7. Conceptos del nivel Familia
Por su parte, la Especificación III.3 presenta la implementación en O-Telos de la
especialización de la clase Familia que se muestra en la Figura III.6. Una familia puede ser
simple o compuesta. Una familia simple (FamiliaS) representa aquellas familias que no
tienen una estructura asociada; esto es, no se componen de otras familias ni de ellas
pueden obtenerse familias derivadas.
Una familia compuesta (FamiliaC), en cambio, está relacionada al menos con una
estructura. Para representar esta relación, que puede verse en las Figuras III.6 y III.7 bajo el
nombre de estructuraDe, en la Especificación III.4 se agrega el atributo estructuraDe a la
clase FamiliaC.
Individual Familia in Class end
Individual FamiliaS in Class isA Familia end
Individual FamiliaC in Class isA Familia end
Especificación III.3. Definición de Familia y su especialización
En la Especificación III.4 se expresa en RIII_1 una restricción de integridad, la cual
impone que para toda FamiliaC debe existir al menos una Estructura asociada a dicha
familia mediante el atributo estructuraDe.
90
_________________________________________________________ Modelo de productos. Definición
FamiliaC with
attribute
estructuraDe: Estructura
constraint
RIII_1:$forall f/FamiliaC (exists e/Estructura (f estructuraDe e))$
end
Especificación III.4. Definición de la relación estructuraDe en la clase FamiliaC
Por otra parte, una FamiliaC puede poseer más de una estructura. En ese caso,
estas estructuras corresponden a estructuras alternativas de la familia. Para representar
este concepto en la clase Estructura se define el atributo estAlternativa, cuyo valor será
inferido mediante la regla indicada como estAltRule en la Especificación III.5.
Individual Estructura in Class with
attribute
estAlternativa : Estructura
attribute,rule
estAltRule:$forall e/Estructura e2/Estructura (exists f/Familia
(f estructuraDe e) and (f estructuraDe e2) and not (e == e2))
==> (e estAlternativa e2) $
end
Especificación III.5. Regla para inferir los valores del atributo estAlternativa
Debe resaltarse que no todas las estructuras son iguales, ya que las familias a las
que están asociadas son la base para obtener un conjunto de semielaborados intermedios a
través de operaciones de desagregación, en un caso, o son el resultado del ensamblado de
partes componentes en el otro. Por lo tanto, un modelo de productos que pretenda
representar correctamente las estructuras de los productos que una Familia abstrae, deberá
considerar esta múltiple existencia. Debido a esto, el modelo propuesto especializa la clase
Estructura en dos subclases, a saber:
i) Estructura de Composición: representa estructuras de productos que son
obtenidos por medio del ensamblado de partes componentes.
ii) Estructura de Descomposición: representa la estructura de productos a partir de
los cuales es posible obtener productos derivados a través de una operación de
desensamblado.
Como puede observarse en las Figuras III.6 y III.7, se definen dos subclases para
representar esta especialización, denominadas EstructuraC y EstructuraD, respectivamente.
Ambas clases de estructura poseen una relación de agregación con la clase Familia. Dicha
agregación identifica a las familias que son componentes directos de las estructuras de
composición o, alternativamente, identifica a las familias derivadas inmediatas de
estructuras de descomposición. Los dos tipos de relaciones propuestas, denominadas
91
_________________________________________________________ Modelo de productos. Definición
RelacionC y RelacionD, son especializaciones de la clase Relación. La Especificación III.6
presenta las especializaciones correspondientes a estas dos clases (Estructura y Relación).
Individual EstructuraC in Class isA Estructura with
attribute
componente: RelacionC
end
Individual EstructuraD in Class isA Estructura with
Attribute
requiere: ValorRestringido
derivado: RelacionD
end
Individual Relacion in Class end
Individual RelacionC in Class isA Relacion end
Individual RelacionD in Class isA Relacion end
Especificación III.6. Especialización de la clase Estructura
Cada instancia de la clase Relación contiene información acerca de:
i)
la cantidad/número de un determinado producto que es necesario para
manufacturar
una
unidad
de
producto
(RelacionC)
o
la
cantidad/número de unidades de producto intermedio que se obtienen
a partir de la descomposición de una unidad de materia prima no
atómica (RelacionD);
ii) la proporción que un componente en particular representa respecto a
una unidad del producto en cuya estructura tal componente participa
(RelacionC) o el rendimiento que un producto intermedio determinado
representa en la descomposición de una unidad de materia prima no
atómica (RelacionD);
iii) restricciones de máximo y mínimo para los dos ítems de datos
mencionados arriba; y
iv) el tipo de relación.
En la Figura III.8 se presenta cómo estos ítems son modelados en la propuesta. Los
ítems i) y ii) se representa mediante asociaciones, denominadas quantityPer y prodFactor,
respectivamente, que se establecen entre las clases Relación y ValorRestringido. Esta
última clase representa un valor numérico y la unidad (udeM) en la que debe ser medido
dicho valor; así como los límites máximo (max) y mínimo (min) permitidos para el mismo.
Como se observa en dicha figura, los dos primeros atributos son heredados de la clase
92
_________________________________________________________ Modelo de productos. Definición
ValorUnidad; mientras que los últimos dos corresponden a la representación de la
información mencionada en el ítem iii).
tipoRelación
Relación
quantityPer
prodFactor
max
ValorRestringido
min
TipoRelación
valor
RelaciónC
RelaciónD
ValorUnidad
Número
udeM
Optativa
Obligatoria
Selectiva
Unidad
Figura III.8. Modelo asociado a la clase Relación
Para el ítem iv) se define una clase TipoRelación a la que se vincula la clase
Relación a través de la asociación tipoRelación. La clase TipoRelación se especializa según
los tipos de relaciones que podrían presentarse en una estructura de productos, a saber:
i)
obligatoria: el componente (o derivado) DEBE estar presente en la estructura
de cualquier miembro de la familia;
ii) opcional: el componente (o derivado) PUEDE o no estar presente en las
estructuras; y
iii) selectiva: el componente (o derivado) puede ser seleccionado a partir de un
conjunto, pero SÓLO UN ELEMENTO DEL CONJUNTO DEBE estar como
parte de la estructura.
En la Especificación III.7 se incorporan a la clase Relación los atributos que permiten
representar los conceptos enunciados en los párrafos anteriores, quantityPer, prodFactor y
tipoRelación, así como el atributo parte, que indica la familia (componente o derivado) a la
que está vinculada la relación. El valor del atributo tipoRelación debe ser una instancia de la
clase TipoRelación, cuya definición se presenta en la Especificación III.8. En tanto, los
valores que pueden tomar los atributos quantityPer y prodFactor, deben ser instancias de la
clase ValorRestringido, la cual se ilustra en la Especificación III.9.
En particular, la Especificación III.8 muestra la clase TipoRelación. Esta última se
especializa en tres subclases para representar, respectivamente, los tres tipos definidos, a
saber: Obligatoria, Optativa, Selectiva. Esta última, posee un atributo conjuntoSelección,
cuyos valores serán inferidos por la regla incluida en la Especificación III.8 y permitirán
representar relaciones que son mutuamente selectivas en una estructura.
Individual Relacion in Class with
attribute
parte : Familia;
quantityPer : ValorRestringido;
93
_________________________________________________________ Modelo de productos. Definición
prodFactor : ValorRestringido;
tipoRelacion : TipoRelacion
end
Especificación III.7. Definición de la clase Relación
Individual TipoRelacion in Class end
Individual Obligatoria in Class isA TipoRelacion end
Individual Optativa in Class isA TipoRelacion end
Individual Selectiva in Class isA TipoRelacion with
attribute
conjuntoSeleccion: Relacion
rule
conjSeleccionRule: $ forall r/Relacion s/Selectiva
(s == this) ==> (s conjuntoSeleccion r) $
end
Especificación
especializaciones
III.8.
Definición
de
la
clase
(r tipoRelacion s)
TipoRelación
y
de
and
sus
Es importante mencionar que una estructura podría tener más de un conjunto de
relaciones selectivas. En dicho caso, existirá una instancia de Selectiva para cada uno de
estos grupos y las relaciones que pertenezcan a un grupo se vincularán, a través de la
asociación tipoRelación, con una de dichas instancias y las relaciones de los otros grupos se
conectarán con las otras.
La Especificación III.9 presenta la implementación en O-Telos de las clases
ValorUnidad y ValorRestringido. La primera representa un número (valor) junto con su
unidad de medida. La segunda clase es una especialización de la primera e incorpora dos
atributos: max y min que permiten definir los límites máximo y mínimo, respectivamente, del
atributo valor. Es importante aclarar que la unidad en que deben medirse los atributos max y
min es la misma utilizada para el atributo valor (definida por el atributo udeM). Se muestran
también en dicha especificación dos ejemplos de instancias de estas clases. Por una parte,
1U es instancia de ValorUnidad, cuyo atributo valor toma el valor real 1.0 y cuya unidad de
medida es UNID (unidad). Por otra parte, el individuo 30_87GR representa una instancia de
ValorRestringido con valor igual a 30.87, udeM igual a GR (gramos) y límites máximos y
mínimos de 50.0 y 10.0, respectivamente. Esto implica que, por ejemplo, el valor del atributo
valor de la instancia 30_87GR (valor = 30.87) podrá ser modificado sólo para tomar valores
entre 10.0 y 50.0. De aquí se desprende que un valor de 20.5 gramos para este atributo, en
la instancia 30_87GR, es válido; pero, en cambio, no lo es un valor de 55.3 gramos.
La Figura III.9 presenta, con notación UML, la instancia 30_87GR junto a sus
vínculos con el valor 30.87 (instancia de número), la unidad de medida GR y los límites
máximos y mínimos 10.0 y 50.0 (instancias de número) para dicho valor. En la parte derecha
94
_________________________________________________________ Modelo de productos. Definición
de dicha figura, se puede observar, para la misma instancia de ValorRestringido, la forma
simplificada que se usará para mostrar gráficamente esta información en los ejemplos que
se presenten en lo que resta de esta Tesis. Debe notarse que en este ejemplo, el nombre de
la instancia de ValorRestringido que se emplea, está relacionado con los valores de los
atributos valor y udeM. Esta regla será usada a lo largo de este trabajo para denotar
cualquier instancia de dicha clase, así como de su superclase, ValorUnidad.
Individual ValorUnidad in Class with
attribute
valor : Real;
udeM : Unidad
end
Individual ValorRestringido in Class isA ValorUnidad with
attribute
max : Real;
min : Real
end
Individual 1U in ValorUnidad with
valor valor: 1.0
udeM udeM: UNID
end
Individual 30_87GR in ValorRestringido with
valor valor: 30.87
udeM udeM: GR
max max: 50.0
min min: 10.0
end
Especificación III.9. Representación de valores y unidades de medida
Forma Extendida
<<Número>>
Forma Simplificada
valor
min
10.0
<<ValorRestringido>>
<<Número>>
30.87
<<ValorRestringido>>
30_87GR
<<Número>>
50.0
max
udeM
<<Unidad>>
GR
30_87GR
valor:30.87
udeM:GR
min:10.0
max:50.0
Figura III.9. Ejemplos de instancias de ValorRestringido
Como se muestra en la Especificación III.9 el valor del atributo udeM será una
instancia de la clase Unidad y representa, como se dijo antes, la unidad en la que debe ser
medido el atributo valor, así como los atributos min y max de la clase ValorRestringido.
Dicha clase se especializa para permitir la representación adecuada de las diferentes
unidades de medida existentes: unidades de peso (kilogramo, gramo, onza, libra), de
superficie (metro cuadrado), de longitud (centímetro, metro), de volumen (metro cúbico,
95
_________________________________________________________ Modelo de productos. Definición
centímetro cúbico, litro). La Especificación III.10 presenta la jerarquía de unidades de
medidas definida, junto con la definición de algunas de las instancias que serán utilizadas en
esta Tesis.
Individual
Individual
Individual
Individual
Individual
Unidad in Class end
UnidadPeso in Class isA Unidad end
UnidadLongitud in Class isA Unidad end
UnidadSuperficie in Class isA Unidad end
UnidadVolumen in Class isA Unidad end
Individual
Individual
Individual
Individual
Individual
Individual
Individual
Individual
UNID in Unidad end
GR in UnidadPeso end
KG in UnidadPeso end
LB in UnidadPeso end
M in UnidadLongitud end
M2 in UnidadSuperficie end
CM3 in UnidadVolumen end
LT in UnidadVolumen end
Especificación III.10. Jerarquía de unidades de medida y definición de
instancias
A partir de las especificaciones introducidas hasta este punto es posible definir vistas
que permitan obtener cuál es el árbol que representa la estructura de una determinada
familia. Una vista en ConceptBase es un tipo especial de consulta que se define como
instancia de la clase predefinida View y como especialización de una determinada clase del
modelo. Una vista permite definir cómo se muestra la información de una determinada clase
y, además, posibilita presentar la información almacenada en instancias de clases
diferentes, mediante el empleo de reglas anidadas. La sintaxis usada para la definición de
una vista y algunos ejemplos de uso se describen en el Apéndice A.
Las vistas presentadas en las Especificaciones III.11 a III.13 permiten inferir árboles
de estructuras como el que se muestra en la Figura III.5 para la familia CarameloFrutalEnv.
La Especificación III.11 muestra la vista VerRelaciones que se construye a partir de la clase
Relación, empleando los atributos parte, tipoRelación y cantidad. El atributo parte es, a su
vez, una vista que posee como valores de atributos los conjuntos de variantes que son
miembros de dicha Familia.
Individual VerRelaciones in View isA Relacion with
attribute,inherited_attribute,partof
parte : Familia with
inherited_attribute
miembros: ConjuntodeVariantes
end
attribute,inherited_attribute
tipoRelacion : TipoRelacion
attribute,computed_attribute
96
_________________________________________________________ Modelo de productos. Definición
cantidad : ValorUnidad
attribute,constraint
r:$(this quantityPer ~cantidad) or (this prodFactor ~cantidad) $
end
Especificación III.11. Definición de la vista VerRelaciones
Por su parte, la Especificación III.12 presenta la vista VerEstructura, que utiliza la
primera vista que fuera definida de manera anidada, para mostrar las relaciones (con todos
los atributos antes mencionados) que forman parte de cada estructura. Es importante aclarar
que el atributo conformadoPor, que se observa como parte de la vista, corresponde a un
atributo de dicho nombre que se incorpora en la clase estructura y cuyos valores serán los
valores del atributo componente, si se trata de una estructura de composición, o los del
atributo derivado, en caso de las estructuras de descomposición. La forma en que se
infieren los valores de este atributo se muestra en la parte inferior de la especificación.
Individual VerEstructura in View isA Estructura with
inherited_attribute,partof
conformadoPor: VerRelaciones
end
Individual
rule
confRule:$
==>
end
Individual
rule
confRule:$
==>
end
EstructuraC with
forall r/RelacionC (this componente r)
(this conformadoPor r) $
EstructuraD with
forall r/RelacionD (this derivado r)
(this conformadoPor r) $
Especificación III.12. Definición de la vista VerEstructura
Finalmente, la Especificación III.13 presenta la vista arbolEstructuraFamilia, la cual
permite inferir las estructuras asociadas a una determinada familia a través de la relación
estructuraDe.
Individual arbolEstructuraFamilia in View isA Familia with
inherited_attribute,partof
estructuraDe : VerEstructura
end
Especificación III.13. Definición de la vista arbolEstructuraFamilia
En cuanto a las estructuras de composición y descomposición que puede incluir un
producto en el modelo propuesto, las relaciones de composición (RelaciónC) identifican a
los componentes de una EstructuraC, mientras que las relaciones de descomposición
(RelaciónD) designan a los derivados de una EstructuraD. De esta manera, los
componentes o derivados directos de una familia pueden ser obtenidos a través de estas
97
_________________________________________________________ Modelo de productos. Definición
asociaciones, tal como lo muestra la Especificación III.14, mediante las reglas denominadas
compDirRule y deriDirRule.
Es importante mencionar que el modelo mantiene BOMs de un nivel, ya que, a través
de la estructura de una familia, se almacenan relaciones directas entre dicha familia y sus
componentes o derivados directos. Además, el modelo permite inferir las estructuras
multinivel navegando a través de una sucesión de instancias de clases y relaciones FamiliaestructuraDe - EstructuraC (EstructuraD) - RelacionC (RelacionD) - Familia-…. Esto
posibilita la obtención de los componentes (derivados) no directos de una familia en
particular mediante las reglas compRule y deriRule presentadas en la Especificación III.15.
FamiliaC with
attribute
componenteDirecto: Familia;
derivadoDirecto: Familia
attribute, rule
compDirRule: $ forall f1/FamiliaC f2/Familia (exists e/EstructuraC
r/RelacionC (f1 estructuraDe e) and (e componente r) and
(r parte f2)) ==> (f1 componenteDirecto f2)$;
deriDirRule: $ forall f1/FamiliaC f2/Familia (exists e/EstructuraD
r/RelacionD (f1 estructuraDe e) and (e derivado r) and
(r parte f2)) ==> (f1 derivadoDirecto f2)$
end
Especificación III.14. Definición de relaciones de un nivel entre familias
FamiliaC with
attribute
componente: Familia;
derivado: Familia
attribute, rule
compRule:$forall f1/FamiliaC f2/Familia (f1 componenteDirecto f2) or (exists
e/EstructuraC f3/FamiliaC (f1 componenteDirecto f3) and (f3 componente f2))
==> (f1 componente f2)$;
deriRule:$forall f1/FamiliaC f2/Familia (f1 derivadoDirecto f2) or (exists
e/EstructuraD f3/FamiliaC (f1 derivadoDirecto f3) and (f3 derivado f2))
==> (f1 derivado f2)$
end
Especificación III.15. Definición de relaciones multinivel entre familias
Un uso fundamental de la información estructural de productos tiene que ver con la
generación del Plan Maestro de Producción, el cual para determinadas demandas de
productos finales permite planificar las cantidades de materias primas y productos
intermedios que deben ser compradas y/o manufacturadas a fin de cumplir con dicha
demanda. Por lo cual, tan importante como la información inferida acerca de cuáles son los
componentes de una familia, es la cantidad de cada componente que se necesita para
producir una determinada cantidad de producto. En este sentido, el modelo propuesto
permite inferir esta información.
98
_________________________________________________________ Modelo de productos. Definición
Debido a que el modelo gestiona dos tipos diferentes de estructuras (EstructuraC y
EstructuraD) y, en consecuencia, dos tipos distintos de relaciones (RelacionC y RelacionD),
la forma de obtener la información sobre qué familia se requiere y en qué cantidad, va a ser
diferente según la estructura que se esté analizando. En la Figura III.10, se presentan
ejemplos de estos dos tipos de estructuras y relaciones posibles; asimismo, se indica el
sentido en que deben obtenerse los requerimientos en cada caso.
En el ejemplo que se muestra a la izquierda de la Figura III.10, la familia
CarameloFrutalEnv tiene asociada una estructura de composición (CarameloFrutalEnvSTR),
la cual se vincula a la relación R04. En esta relación, el atributo parte tiene como valor a la
familia CarameloFrutalDes, indicando que dicha familia es requerida para obtener la familia
CarameloFrutalEnv.
Por otra parte, a la derecha de la figura, se puede observar que la familia
CuadrilConTapa, tiene asociada mediante la relación estructuraDe, la estructura (de
descomposición) CuadrilConTapaSTR1, de la cual se deriva, entre otros, la relación R01f.
Ésta, a su vez, está asociada a la familia TapaCuadril mediante el atributo parte. Esto indica
que la familia TapaCuadril se obtiene de la familia CuadrilConTapa (mediante la estructura
CuadrilConTapaSTR1).
Producto Final
R
E
Q
U
I
E
R
E
Materias Primas
Semielaborados
Figura III.10. Mecanismo de inferencia de los requerimientos de una familia
En consecuencia, en el primer caso, la familia que es requerida para obtener
CarameloFrutalEnv coincide con el valor del atributo parte de alguna de las relaciones que
conforman la estructura asociada a dicha familia. En el otro caso, la familia que se requiere
para obtener TapaCuadril se debe inferir navegando las relaciones en sentido inverso al
usado para el caso del caramelo. Es decir, a partir de la TapaCuadril, se debe obtener la
RelaciónD (R01f), luego la estructura (CuadrilConTapaSTR1) de la que es parte dicha
relación, y a partir de ésta inferir la familia (TapaCuadril) de la que es estructura.
99
_________________________________________________________ Modelo de productos. Definición
Es posible, entonces, establecer una clasificación entre dos tipos de familias,
aquéllas cuyos requerimientos se obtienen a partir de una estructura de composición (por
ejemplo
CarameloFrutalEnv)
y
aquéllas
que
son
obtenidas
por
estructuras
de
descomposición (por ejemplo, TapaCuadril). Cada uno de estos tipos se denominará
FamiliaEnsamblada y FamiliaDerivada, respectivamente. La Especificación III.16 presenta la
consulta que permite establecer las familias que corresponden a cada una de estas
categorías. Se muestra también en dicha especificación, el agregado de nuevos atributos,
denominados esDerivado y esEnsamblado, a la clase Familia, así como las reglas
esDerivadoRule y esEnsambladoRule que posibilitan inferir los valores de estos atributos.
Individual Familia in Class with
attribute
esDerivado : Boolean;
esEnsamblado : Boolean
attribute,rule
esDerivadoRule:$forall f/Familia (exists r/RelacionD (r parte f))
==> (f esDerivado TRUE)$;
esDerivadoRule2:$forall f/FamiliaS not(exists r/RelacionD (r parte f))
==> (f esDerivado FALSE)$
esEnsambladoRule:$forall f/FamiliaC (exists e/EstructuraC (f estructuraDe e))
==> (f esEnsamblado TRUE)$;
esEnsambladoRule2:$forall f/FamiliaC not(exists e/EstructuraC
(f estructuraDe e)) ==> (f esEnsamblado FALSE)$;
end
QueryClass FamiliaDerivada isA Familia with
retrieved_attribute
esDerivado : Boolean
constraint
c : $ (this esDerivado TRUE) $
end
QueryClass FamiliaEnsamblada isA Familia with
retrieved_attribute
esEnsamblado : Boolean
constraint
c : $ (this esEnsamblado TRUE) $
end
Especificación III.16. Consultas que permiten establecer familias ensambladas
y derivadas
Por otra parte, para poder inferir los requerimientos concretos de una relación
determinada, se definen nuevos atributos en la clase Relación, a saber: requerimiento y
cantReq, los que pueden apreciarse en la Especificación III.17.
Individual Relacion in Class with
attribute
requerimiento : Familia;
cantReq : ValorUnidad
end
100
_________________________________________________________ Modelo de productos. Definición
Especificación III.17. Definición de nuevos atributos para la clase Relación
Los valores de estos atributos serán inferidos a través de reglas que se definirán en
cada una de las especializaciones de la clase Relación (RelaciónC y RelaciónD). La
Especificación III.18 presenta las reglas que efectúan este tipo de inferencia para la relación
de composición (RelaciónC). En este caso el valor del atributo requerimiento coincide (ver
Figura III.10) con el valor del atributo parte. Es por ello que la regla reqRule indica que para
toda Familia f, y para toda RelacionC r, si f es parte de r (r parte f), entonces dicha Familia f,
es requerimiento de r (r requerimiento f). Por su parte, la cantidad que se requiere de esa
familia (cantReq) coincide con el valor del atributo quantityPer de la relación r, tal como lo
indica la regla CantreqRule.
Individual RelacionC with
attribute,rule
reqRule:$ forall f/Familia r/RelacionC (r parte f) ==> (r requerimiento f) $;
CantreqRule:$ forall r/RelacionC c/ValorRestringido (r quantityPer c)
==> (r cantReq c) $
end
Especificación III.18. Reglas para la inferencia de atributos en una RelaciónC
La forma en que se calculan los valores de los atributos requerimiento y cantReq
para relaciones de descomposición (RelacionD) se presenta en la Especificación III.19. Los
valores de ambos atributos se infieren a través de la estructura de descomposición
(EstructuraD), de la cual la relación es parte. La regla reqRule para este caso, indica que
para toda familia compuesta (FamiliaC) y toda relación de descomposición (RelacionD)
existe alguna estructura de descomposición EstructuraDe que las vincula a través de las
relaciones estructuraDe (f estructuraDe e) y derivado (e derivado r). En consecuencia, f es
requerida por la relación de descomposición r. Por su parte, la cantidad de f que es
requerida (valor del atributo cantReq de la RelacionD), se obtiene del valor del atributo
requiere de la EstructuraD mencionada (cuya definición se muestra en la Especificación
III.6), el cual representa la cantidad de Familia requerida (asociada a la estructura por la
relación estructuraDe) para obtener los derivados indicados por la estructura en cuestión.
Individual RelacionD in Class isA Relacion with
attribute,rule
reqRule:$forall f/FamiliaC r/RelacionD (exists e/EstructuraD (f estructuraDe e)
and (e derivado r)) ==> (r requerimiento f) $ ;
cantreqRule : $ forall r/RelacionD c/ ValorRestringido (exists f/FamiliaC
e/EstructuraD (f estructuraDe e) and (e requiere c)) ==>(r cantReq c)$
end
Especificación III.19. Reglas para la inferencia de atributos en una RelaciónD
101
_________________________________________________________ Modelo de productos. Definición
A partir de las especificaciones planteadas hasta aquí es posible construir una serie
de vistas que permiten inferir los requerimientos de una familia determinada. A continuación,
a manera de ejemplo, se presentan dichas vistas, comenzando por la más simple que
permite determinar cuáles son los requerimientos para cada instancia de Relación (ya sea
de composición o de descomposición). Luego se muestran las vistas que infieren los
requerimientos para las estructuras, y finalmente se introduce la vista que permite
determinar cuáles son los requerimientos de una familia.
La vista RequerimientosInferidos, que se muestra en la Especificación III.20, es una
especialización de la clase Relación, y hereda de la misma solamente los atributos
requerimiento y cantReq, que fueron ilustrados en la Especificación III.17.
Individual RequerimientosInferidos in View isA Relacion with
attribute,retrieved_attribute
requerimiento : Familia;
cantReq : ValorUnidad;
tipoRelacion : TipoRelacion
end
Especificación III.20. Vista RequerimientosInferidos
A partir
de dicha
vista,
en
la
Especificación III.21 se
define la
vista
RequerimientosEstructura, la cual permite reconstruir los requerimientos de las diferentes
estructuras de una familia. Para ello, tiene definido un parámetro denominado unaflia. Esta
vista es una especialización de la clase Estructura y permite calcular requerimientos, tanto
de estructuras de composición como de descomposición, según lo establecido por la regla
definida como restricción de la vista. Dicha regla es una disyunción, donde el primer término
permite el cálculo de los requerimientos cuando la estructura corresponde a una estructura
de una FamiliaEnsamblada. En cambio, el segundo término de la disyunción permite inferir
requerimientos de una FamiliaDerivada.
Individual RequerimientosEstructura in View isA Estructura with
attribute,parameter
unaflia : Familia
attribute,computed_attribute,partof
unReq : RequerimientosInferidos
attribute,constraint
r:$((this estructuraDe ~unaflia) and (this conformadoPor ~unReq) and
(~unaflia in FamiliasEnsambladas)) or ((~unaflia derivaDe ~unReq)
and (this conformadoPor ~unReq) and (~unaflia in FamiliasDerivadas)) $
end
Especificación III.21. Definición de la vista RequerimientosEstructura
En base a estas vistas es posible obtener los requerimientos directos de una familia
dada,
como
se
muestra
en
la
Especificación
III.22.
Se
presenta
la
vista
RequerimientosFamilia que utiliza de manera anidada las dos vistas que fueran expuestas
102
_________________________________________________________ Modelo de productos. Definición
anteriormente. Por otra parte, esta vista utiliza en la restricción r un atributo
estructuraRequerida, que se incorpora a la clase Familia a los efectos de poder inferir cuál
es la estructura a partir de la cual una Familia en particular es obtenida (ver Figura III.10). La
definición de este atributo en la clase Familia y de sus reglas de inferencia se presenta en la
Especificación III.23. Es posible inferir los valores del atributo estructuraRequerida a través
de las reglas estReqRule y estReqRule2, dependiendo de si la familia en cuestión es una
FamiliaEnsamblada o una FamiliaDerivada. En el primer caso el valor de dicho atributo
coincidirá con el valor del atributo estructuraDe. En el segundo, en cambio, corresponderá a
la estructura de la cual es derivada la RelacionD, de la que la familia es un requerimiento.
Individual RequerimientosFamilia in View isA Familia with
computed_attribute,partof
requerimientos : RequerimientosEstructura with
computed_attribute,partof
unReq: RequerimientosInferidos
constraint
rint:$(~unReq requerimiento this) and
(this::requerimientos in ~unReq.perteneceA)$
end
constraint
r:$ (this estructuraRequerida ~requerimientos) $
end
Especificación III.22. Vista RequerimientosFamilia
Individual Familia with
Attribute
estructuraRequerida:Estructura
attribute,rule
estReqRule1: $forall f/Familia e/Estructura
(f in FamiliasEnsambladas) and (f estructuraDe e )
==> (f estructuraRequerida e)$;
estReqRule2: $forall f/Familia e/Estructura (exists r/RelacionD
(f in FamiliasDerivadas) and (r requerimiento f) and
(r perteneceA e)) ==> (f estructuraRequerida e)$
end
Especificación III.23. Atributo estructuraRequerida y sus reglas de inferencia
III.4. NIVEL DE ABSTRACCIÓN CONJUNTO DE VARIANTES
El nivel Familia, descripto y formalizado en la sección anterior, define la información
común a un número elevado de productos similares. Las variaciones que pueden ocurrir
entre estos productos están relacionadas con:
i)
variaciones en la estructura por el agregado o eliminación de algún
componente (derivado);
ii) variaciones en los parámetros o valores de atributos en los componentes
(derivados) de la estructura; y
103
_________________________________________________________ Modelo de productos. Definición
iii) combinaciones de los casos anteriores.
Por ejemplo, distintas variantes de un papel de envoltorio (caso de estudio planta de
golosinas) constituirían un ejemplo del segundo tipo de variantes, si se diferencian unos de
otros por el idioma en que estos papeles están impresos, y/o la marca que se indica en
ellos. En estos casos se estaría frente a variaciones en los parámetros de determinados
productos. Por otro lado, si se considera el caso de la familia de productos que representa a
las masas de sabor frutal, las diferentes masas que forman parte de esta familia, presentan
entre sí variaciones de los tipos i e iii). Se puede observar en la Figura II.13 y en las Tablas
II.17 a II.20 (Capítulo II) que los diferentes productos tienen los mismos componentes, pero
difieren en las cantidades en que participan en la composición (variación estructural). Por
otra parte, las masas SE609150 (MasaPera) y SE609149 (MasaPomelo), por ejemplo,
difieren en los colores y sabores utilizados para los componentes colorante y esencia de
cada una de las estructuras.
El nivel ConjuntodeVariantes corresponde al nivel intermedio de la jerarquía de
abstracción propuesta y es el que permite representar los tipos de variaciones que se
indicaron en los párrafos previos. Los conceptos relacionados con este nivel se muestran en
la Figura III.11.
estructuraDe
FamiliaC
Familia
Estructura
ConjuntoSeleccionado
miembroDe
ConjuntodeVariantes
Preselección
preselecciona
derivaDe
ConjuntodeVariantesS
ConjuntodeVariantesC
modificaciónAplicada
cambioAplicado
Modificación
Cambio
Figura III.11. Diagrama de clases ConjuntodeVariantes
Cada entidad definida en este nivel se relaciona con una única instancia del nivel
Familia, y con una o más del nivel Producto. Como se mencionó anteriormente, entre
instancias perteneciente a distintos niveles de la AH, se establece la relación miembroDe.
En la Especificación III.24 se define en la clase ConjuntodeVariantes una restricción de
104
_________________________________________________________ Modelo de productos. Definición
integridad que impone la obligatoriedad, para todo ConjuntodeVariantes, de la existencia de
la relación miembroDe con alguna Familia. Además, cada conjunto de variantes debe ser
miembro de una única familia (RIII_4).
La clase ConjuntodeVariantes se especializó para representar por separado aquellos
conjuntos de variantes que son miembros de familias con estructuras de composición (o
descomposición) y los que se vinculan con familias simples. Esto permite clasificar a un
conjunto de variantes en “conjunto de variantes simples” (ConjuntodeVariantesS) o “conjunto
de variantes compuestas” (ConjuntodeVariantesC), según deriven de una FamiliaS o de una
FamiliaC, respectivamente. En consecuencia, como puede verse en la Especificación III.25,
se incorpora a las clases ConjuntodeVariantesS y ConjuntodeVariantesC, sendas
restricciones de integridad que imponen, por un lado, que todo ConjuntodeVariantesS debe
ser miembro de alguna FamiliaS (R_III5), y por otro, que todo ConjuntodeVariantesC se
relaciona con una FamiliaC (RIII_6).
ConjuntodeVariantes with
attribute,constraint
RIII_19:$forall cv/ConjuntodeVariantes exists f/Familia
(cv miembroDe f))$;
RIII_4: $forall cv/ConjuntodeVariantes f, f2/Familia (cv miembroDe f) and
(cv miembroDe f2) ==> (f == f2) $
end
Especificación III.24. Definición de restricciones de integridad para la clase
ConjuntodeVariantes
Individual ConjuntodeVariantesS in Class isA ConjuntodeVariantes with
constraint
RIII_5 : $ forall cv/ConjuntodeVariantesS f/Familia (cv miembroDe f) and
(f isA FamiliaS) $
end
Individual ConjuntodeVariantesC in Class isA ConjuntodeVariantes with
constraint
RIII_6 : $ forall cv/ConjuntodeVariantesC f/Familia (cv miembroDe f) and
(f isA FamiliaC) $
end
Especificación III.25. Especialización de la clase ConjuntodeVariantes
Una FamiliaC puede tener asociada más de una estructura. Por lo tanto, un conjunto
de variantes compuestas que es miembro de dicha familia, debe especificar cuál de todas
estas estructuras es la que se debe usar para derivar las estructuras particulares de sus
miembros.
Para
ello,
el
modelo
define
la
relación
derivaDe,
que
asocia
un
ConjuntodeVariantes compuestas con una y sólo una de las estructuras de la familia de la
cual es miembro. La Figura III.11 y la Especificación III.26 muestran esta relación.
105
_________________________________________________________ Modelo de productos. Definición
Se presentan también en dicha especificación las restricciones RIII_7 y RIII_8. La
primera indica que para todo ConjuntodeVariantesC cv, existe una Estructura e asociada a
cv por la relación derivaDe. A su vez, la restricción RIII_8 impone que dicha Estructura es
única para cada conjunto de variantes compuestas.
Individual ConjuntodeVariantesC with
attribute
derivaDe : Estructura
constraint
RIII_7:$forall cv/ConjuntodeVariantesC (exists e/Estructura
(cv derivaDe e))$;
RIII_8:$forall cv/ ConjuntodeVariantesC e1, e2/Estructura
(cv derivaDe e1) and (cv derivaDe e2) ==> (e1 == e2) $
end
Especificación III.26. Atributo derivaDe de un ConjuntodeVariantesC
La relación derivaDe indica, para un conjunto de variantes compuestas, cuál es la
estructura de la familia que utiliza como base para definir su propia estructura. Ésta puede
ser exactamente la misma definida para la familia o puede ser similar. En este último caso,
las modificaciones que se aplican se representan mediante la clase Modificación, la cual
permite establecer variaciones estructurales. Por su parte, la clase Preselección (Figura
III.11) permite imponer una restricción que indica los ConjuntosdeVariantes particulares que
deberán ser empleados obligatoriamente en la especificación del ConjuntodeVariantes
asociado a la Preselección en cuestión por medio de la relación preselecciona.
La Especificación III.27 completa la definición de un conjunto de variantes
compuestas
(ConjuntodeVariantesC),
agregando
los
atributos
preselecciona
y
modificaciónAplicada que representan las relaciones que con estos nombres han sido
propuestas en el modelo (ver Figura III.11).
ConjuntodeVariantesC with
attribute
preselecciona: Preseleccion;
modificacionAplicada: Modificacion
end
Individual Modificacion in Class end
Individual Preseleccion in Class end
Especificación III.27. Definición de ConjuntodeVariantesC
Dependiendo de qué tipo de variaciones represente un conjunto de variantes
compuestas respecto a la familia de la que es miembro, se usará uno o más de los
conceptos mostrados en la Figura III.11. Pero mínimamente se debe establecer la familia a
la que pertenece dicho conjunto (relación miembroDe) y la estructura de la que deriva
(relación derivaDe). A partir de esto, se podrán especificar modificaciones a la misma y/o
106
_________________________________________________________ Modelo de productos. Definición
preseleccionar algunos subconjuntos de determinados conjuntos de variantes de alguna/s
de las familias componentes de la estructura de la cual depende.
Un conjunto de variantes compuestas puede modificar o no la estructura de la que
deriva. Si lo hace deberá especificar qué cambios se deben aplicar a la estructura de la
familia para adaptarla a la estructura particular de los integrantes del ConjuntodeVariantes
en cuestión.
Como lo muestra la Figura III.11, la clase Modificación agrupa todos los cambios que
un conjunto de variantes compuestas realiza sobre la estructura de la cual deriva. Esto
establece una nueva relación entre una modificación y la estructura que ésta afecta, la cual
se encuentra representada por el atributo modifica, introducido en dicha clase. Este atributo
y la regla utilizada para inferir su valor se muestran en la Especificación III.28.
Modificacion with
attribute
cambioAplicado: Cambio
modifica: Estructura
rule
modificaRule: $ forall e/Estructura m/Modificacion
(exists cv/ConjuntodeVariantesC (cv derivaDe e) and
(cv modificacionAplicada m) )==> (m modifica e) $
end
Especificación III.28. Definición de la clase Modificación
La clase Modificación posee un atributo denominado cambioAplicado que representa
cada uno de los cambios que deben hacerse sobre la estructura que se modifica. En este
sentido los cambios que están involucrados en una modificación son representados como
instancias de alguna de las especializaciones de la clase Cambio, dependiendo del tipo de
cambio que se está representando. Los cambios que pueden afectar a la estructura
vinculada a un conjunto de variantes compuestas son:
modificación de los valores en que un componente (o derivado) está presente en
la estructura;
eliminación de un componente (o derivado);
selección de una de las relaciones pertenecientes a un conjunto de relaciones de
tipo selectiva.
Estos diferentes tipos de cambios están representados en el modelo a través de una
especialización de la clase Cambio y pueden observarse en la Figura III.12 y en la
Especificación III.29. Las subclases en cuestión son: CambioC, la cual se especializa en
CambioQP y CambioPF, Eliminación y SelecciónFamilia.
107
_________________________________________________________ Modelo de productos. Definición
Como se aprecia en la misma figura, la manera en que se determina cuál es el
componente que es modificado en la estructura es a través de la asociación
relaciónModificada, la cual vincula el cambio con la relación que es afectada. En otras
palabras, indica cuál es la relación que es eliminada, seleccionada o cuyas cantidades de
composición son modificadas. La relación afectada por el cambio se origina en la estructura
de la que deriva el conjunto de variantes, que está vinculada al cambio en cuestión por
intermedio de la modificación que contiene al cambio. Esta restricción se incorpora a la clase
Cambio, como lo muestra la Especificación III.29.
relaciónModificada
Cambio
Relación
SelecciónFamilia
CambioC
Eliminación
nuevoQP
CambioQP
CambioPF
ValorUnidad
nuevoPF
Figura III.12. Clase Cambio y conceptos relacionados
Individual Cambio in Class with
attribute
relacionModificada : Relacion
constraint
RIII_9: $forall c/Cambio (exists r/Relacion m/Modificacion
e/Estructura (m modifica e) and (e conformadoPor r) and
(m cambioAplicado c)and (c relacionModificada r))$
end
Individual Eliminacion in Class isA Cambio end
Individual SeleccionFamilia in Class isA Cambio end
Individual CambioC in Class isA Cambio end
Especificación III.29. Definición de la clase Cambio y sus especializaciones
La clase CambioC se especializa en CambioQP y CambioPF, como se muestra en la
Especificación III.30. Estas clases indican la modificación de los valores de los atributos
quantityPer y prodFactor, respectivamente, de la instancia de Relación que es afectada por
el cambio (relaciónModificada).
En dicha especificación, las relaciones nuevoQP y nuevoPF, indican los nuevos
valores que toman los atributos de la relaciónModificada mencionados para todos los
108
_________________________________________________________ Modelo de productos. Definición
productos que son miembros del conjunto de variantes que se está definiendo. Estos nuevos
valores deberán estar comprendidos entre los límites máximo y mínimo establecidos para la
relación que está siendo modificada. Para asegurar esto, se incorpora a las clases
CambioQP y CambioPF las restricciones que se indican en la Especificación III.30 mediante
RIII_10 y RIII_27.
Individual CambioQP in Class isA CambioC with
attribute
nuevoQP : ValorUnidad
constraint
RIII_10: $ forall c/CambioQP (exists r/Relacion vu/ValorUnidad
vr/ValorRestringido val,rmax,rmin/Real (c relacionModificada r) and
(r quantityPer vr) and (c newQP vu) and (vu valor val) and (vr min rmin) and
(vr max rmax) and val >= rmin and val <= rmax )$
end
Individual CambioPF in Class isA CambioC with
attribute
nuevoPF : ValorUnidad
constraint
RIII_27: $ forall c/CambioPF (exists r/Relacion vu/ValorUnidad
vr/ValorRestringido val,rmax,rmin/Real (c relacionModificada r) and
(r prodFactor vr) and (c newPF vu) and (vu valor val) and (vr min rmin) and
(vr max rmax) and val >= rmin and val <= rmax)$
end
Especificación III.30. Especialización de la clase CambioC
La clase Eliminación representa la supresión de la relaciónModificada de la
estructura a la que dicha relación pertenece. Como muestra la Especificación III.31 se
incorpora una restricción en esta clase para asegurar la creación de instancias válidas. Una
eliminación es posible de ser aplicada sólo sobre relaciones de tipo optativa. No es posible
eliminar de una estructura una relación de tipo obligatoria, ni de tipo selectiva.
Eliminacion with
constraint
RIII_12: $ forall c/Eliminacion exists r/Relacion tr/TipoRelacion
(c relacionModificada r) and (r tipoRelacion tr) and (tr in Optativa)$
end
Especificación III.31. Definición de la clase Eliminación
Finalmente, el último tipo de cambio propuesto sobre una estructura tiene que ver
con la elección de algunas de las relaciones que pertenecen al conjunto de relaciones
selectivas (Figura III.8) de dicha estructura. Como se mencionó anteriormente, este tipo de
relaciones constituyen un grupo de relaciones mutuamente excluyentes, de las cuáles sólo
una de ellas debe estar presente en la estructura de un conjunto de variantes. Para efectuar
esta selección se utiliza la especialización SelecciónFamilia. En este caso, la asociación
109
_________________________________________________________ Modelo de productos. Definición
relaciónModificada (Figura III.12), indica cuál es la relación elegida entre todas las
integrantes del conjunto de relaciones selectivas (RIII_13 en Especificación III.32).
Obviamente, la relación seleccionada debe ser de tipo selectiva. Por cada instancia de
Selectiva en una Estructura deberá existir una instancia de SelecciónFamilia (RIII_14 en
Especificación III.32). Además, dicha instancia es única para cada conjunto selección
(RIII_15 en Especificación III.32). Estas restricciones de integridad se agregan a la clase
SelecciónFamilia para asegurar consistencia (Especificación III.32).
Como se indicó anteriormente la clase Preselección permite especificar restricciones
en la estructura de conjuntos de variantes compuestas. Una instancia de Preselección
asociada a una instancia cv de la clase ConjuntodeVariantesC restringe las relaciones
miembroDe (entre una instancia de Familia y una instancia de ConjuntodeVariantes) que se
pueden emplear en las familias componentes de la estructura a partir de la cual cv deriva.
SeleccionFamilia with
constraint
RIII_13:$forall c/SeleccionFamilia exists r/Relacion tr/TipoRelacion
(c relacionModificada r) and (r tipoRelacion tr) and (tr in Selectiva)$;
RIII_14: $ forall c/ConjuntodeVariantesC e/Estructura(exists r/Relacion
tr/Selectiva m/Modificacion s/SeleccionFamilia (c derivaDe e) and
(r tipoRelacion tr)and (e conformadoPor r) and (c modificacionAplicada m) and
(m cambioAplicado s) and (s relacionModificada r)) $ ;
RIII_15: $ forall s1,s2/SeleccionFamilia (exists r1,r2/Relacion
tr/Selectiva (s1 relacionModificada r1) and (s2 relacionModificada r2) and
(r1 tipoRelacion tr) and (r2 tipoRelacion tr) and (s1 == s2) and (r1 == r2))$
end
Especificación III.32. Restricciones de integridad para la clase SelecciónFamilia
La Especificación III.33 implementa en el lenguaje O-Telos la clase Preselección. El
atributo conjuntoSeleccionado identifica todos aquellos conjuntos de variantes válidos de
una familia determinada, que sea componente de la estructura de la que deriva el conjunto
de variantes en la que se define la preselección. El componente vinculado a la preselección
está especificado por el atributo componenteAfectado, cuyo valor se infiere por la regla
componenteAfectadoRule que se presenta en dicha especificación.
El modelo definido exige que todos los conjuntos de variantes vinculados a una
preselección dada sean miembros de una única Familia. Esto se especifica en el modelo a
través del atributo componenteAfectado y mediante la restricción de integridad RIII_33
(Especificación III.33).
Preseleccion with
attribute
conjuntoSeleccionado : ConjuntodeVariantes;
componenteAfectado : Familia
attribute,rule
110
_________________________________________________________ Modelo de productos. Definición
componenteAfectadoRule : $ forall f/Familia (exists cv/ConjuntodeVariantes
(this conjuntoSeleccionado cv) and (cv miembroDe f))
==>(this componenteAfectado f)$
attribute,constraint
RIII_33:$ forall p/Preseleccion (exists
cv1,cv2/ConjuntodeVariantes
f1, f2/Familia (p ConjuntoSeleccionado cv1) and
(p ConjuntoSeleccionado cv2) and (cv1 miembroDe f1) and
(cv2 miembroDe f2)and (f1 == f2) and (p componenteAfectado f1))$
end
Especificación III.33. Definición de la clase Preselección
Utilizando las especificaciones presentadas y, de manera similar a lo expuesto para
el nivel de Familia en la sección previa, es posible inferir nueva información para un conjunto
de variantes.
En primer lugar se presenta la vista estructuraCV, de ConjuntodeVariantes, la cual
permite inferir el resultado de aplicar todas las modificaciones asociadas a un conjunto de
variantes a la estructura de la cual ésta se deriva. Dicha vista (Especificación III.34) se
construye
a
partir
de
otras
vistas
sobre
la
clase
Relación,
denominadas:
RelacionesModificadas, RelacionesSeleccionadas y RelacionesIntactas que permiten inferir
los
valores
de
los
atributos
relacionesModificadas,
y
relacionesSeleccionadas,
relacionesIntactas.
Individual estructuraCV in View isA ConjuntodeVariantesC with
retrieved_attribute, partof
relacionesModificadas: Relacion with
retrieved_attribute
parte:Familia
retrieved_attribute,partof
cambioAplicado : CambioC with
inherited_attribute
newQP:ValorUnidad
constraint
rin:$A(this, cambioAplicado, this::relacionesModificadas::cambioAplicado)$
end
end
inherited_attribute, partof
relacionesIntactas: Relacion with
inherited_attribute
parte:Familia;
quantityPer:ValorRestringido
end
inherited_attribute, partof
relacionesSeleccionadas: Relacion with
inherited_attribute
parte:Familia;
quantityPer:ValorRestringido
end
end
Especificación III.34. Vista estructuraCV
111
_________________________________________________________ Modelo de productos. Definición
La vista RelacionesModificadas (Especificación III.35) obtiene las relaciones que son
afectadas por cambios en los valores de los atributos quantityPer o prodFactor. Esta vista es
una especialización de Relación, de la cual hereda el atributo parte, y posee como
parámetro una Modificación. El nuevo valor del atributo que es modificado, quantityPer o
prodFactor, está dado por los valores indicados por los atributos newQP (si es un
CambioQP) o newPF (si es un CambioPF), según se refleja en los dos términos de la
disyunción presente en la regla. El primer término es aplicable a los cambios de tipo
cambioQP, mientras que el segundo a los denominados cambioPF.
Individual RelacionesModificadas in View isA Relacion with
attribute,parameter
mod : Modificacion
attribute,retrieved_attribute
parte: Familia
attribute,computed_attribute
cantidad : ValorUnidad
attribute,constraint
c:$(exists c/CambioQP (~mod cambioAplicado c) and (c relacionModificada this)
and (c newQP ~cantidad)) or exists c2/CambioPF (~mod cambioAplicado c2) and
(c2 relacionModificada this) and (c2 newPF ~cantidad) $
end
Especificación III.35. Vista RelacionesModificadas
La vista RelacionesSeleccionadas (Especificación III.36) permite obtener las
relaciones (que posee un TipoRelación identificado como Selectiva) que se seleccionan a
partir de los cambios SelecciónFamilia aplicados por las correspondientes modificaciones.
Individual RelacionesSeleccionadas in View isA Relacion with
attribute,parameter
mod : Modificacion
retrieved_attribute
parte:Familia
computed_attribute
cantidad: ValorUnidad
attribute,constraint
c : $ exists c/SeleccionFamilia (~mod cambioAplicado c) and
(c relacionModificada this) and ((this quantityPer ~cantidad )or
(this prodFactor ~cantidad ))$
end
Especificación III.36. Vista RelacionesSeleccionadas
Finalmente, la vista RelacionesIntactas que se muestra en la Especificación III.37,
obtiene todas aquellas relaciones de una estructura que no son afectadas por ninguno de
los tipos de cambios que pueden ser asociados a una Modificación.
Individual RelacionesIntactas in View isA Relacion with
attribute,parameter
mod : Modificacion
attribute,retrieved_attribute
112
_________________________________________________________ Modelo de productos. Definición
parte : Familia
attribute,computed_attribute
cantidad : ValorUnidad
attribute,constraint
c : $ exists c/Cambio tr/TipoRelacion r/Relacion (~mod cambioAplicado c) and
(c relacionModificada r) and not(this == r) and ((this quantityPer ~cantidad)
or (this prodFactor ~cantidad )) and (this tipoRelacion tr)
and not(tr in Selectiva)$ end
Especificación III.37. Vista RelacionesIntactas
A partir del modelo planteado en el nivel de ConjuntodeVariantes es posible formular
otras vistas que permitan inferir la restante información contenida en el mismo. En el
Apéndice A se presentan algunos ejemplos adicionales que permiten apreciar las posibles
extensiones y usos de la especificación.
III.5. NIVEL DE ABSTRACCIÓN PRODUCTO
En los puntos precedentes se han presentado los modelos que corresponden a los
dos niveles superiores de la jerarquía de abstracción propuesta. En el nivel Familia se
especifican aspectos comunes a miembros de una familia de productos. En el nivel
ConjuntodeVariantes se definen subconjuntos de dichos miembros que comparten
características y excepciones comunes. En ambos niveles se maneja información agregada
respecto a la estructura del producto y pueden quedar propiedades no definidas que
deberían terminar de especificarse en el último nivel de abstracción. En el caso de conjuntos
de variantes compuestas, es muy probable que para algunos componentes de su estructura
queden todavía aspectos no completamente definidos (por ejemplo, componentes que aún
tienen asociadas preselecciones con más de un valor en el atributo conjuntoSeleccionado).
Estas definiciones se completan en el nivel Producto de la jerarquía de abstracción
propuesta. Este es el nivel más concreto y representa, en definitiva, un producto con
existencia física. Los productos reales miembros de un ConjuntodeVariantes son
representados por la clase Producto, como se muestra en la Figura III.13.
Un producto puede ser simple (ProductoS) o compuesto (ProductoC) dependiendo si
es miembro de un ConjuntodeVariantesS o de un ConjuntodeVariantesC, respectivamente
(Figura III.13). La definición en O-Telos de estas nuevas clases se ilustra en las
Especificaciones III.38 y III.39.
<<CV>>
ConjuntodeVariantes
miembroDe
<<P>>
Producto
<<PS>>
ProductoS
selecciona
<<sele>>
Selección
<<PC>>
ProductoC
113
_________________________________________________________ Modelo de productos. Definición
Figura III.13. Definición de Producto
En la Especificación III.38, se presenta la especialización de la clase Producto en la
clase ProductoS, que representa todos aquellos integrantes de algún conjunto de variantes
simples. Estos productos son atómicos, ya que no se ensamblan a partir de otros productos,
ni se descomponen en sus partes. La identificación del conjunto de variantes del que es
miembro se realiza, como ya se expresó, mediante el atributo miembroDe, el cual es
definido en la clase Producto y heredado por ProductoS. La especificación se completa con
la restricción de integridad RIII_17, que indica que para todo ProductoS p, debe existir un
ConjuntodeVariantesS cv del cual p es miembro.
Por su parte, en la Especificación III.39 se presenta la definición de la clase
ProductoC. Una restricción similar a la puntualizada para ProductoS se incorpora en la
misma. En otras palabras, para todo ProductoC p, existe algún ConjuntodeVariantes cv con
el cual dicho producto se encuentra relacionado por la asociación miembroDe.
Individual ProductoS in Class isA Producto with
constraint
RIII_17:$forall p/ProductoS(exists cv/ConjuntodeVariantesS (p miembroDe cv)) $
end
Especificación III.38. Definición de la clase ProductoS.
Individual ProductoC in Class isA Producto with
attribute
selecciona: Seleccion
constraint
RIII_18: $forall p/ProductoC (exists cv/ConjuntodeVariantesC (p miembroDe cv))$;
RIII_19: $forall p/ProductoC exists s/Seleccion (p Selecciona s) $
end
Especificación III.39. Definición de la clase ProductoC
En este punto es importante recordar que un Producto es miembro de un
determinado ConjuntodeVariantes, el cual a su vez es miembro de una determinada Familia.
A través de su atributo miembroDe, una instancia de producto puede llegar a determinar
cuál es la familia de la cual es integrante. Para lograr esto, un nuevo atributo denominado
integranteFamilia es agregado a la clase Producto, cuyos valores serán inferidos por la regla
que se muestra en la Especificación III.40.
Individual Producto in Class with
attribute
integranteFamilia: Familia
rule
integranteFamiliaRule:$ forall p/Producto f/Familia (exists
cv/ConjuntodeVariantes (cv miembroDe f) and (p miembroDe cv))
==> (p integranteFamilia f) $
end
114
_________________________________________________________ Modelo de productos. Definición
Especificación III.40. Atributo integranteFamilia de la clase Producto
En este contexto se afirmará que un ProductoC está completamente definido cuando
se hallan identificados los ProductosC y/o ProductosS que se asignarán a cada componente
de la estructura de la cual el primero se ha derivado. Este concepto recursivo en la
estructura de un producto tiene por objetivo obtener una estructura integrada por los
productos que realmente participan en el proceso de fabricación del que se obtiene el
producto en cuestión.
Esta selección está indicada por el atributo selecciona definido en la clase
ProductoC. Sólo un miembro de cada conjunto de variantes preseleccionado en las
respectivas estructuras debe ser elegido por cada componente de la estructura de dicho
producto.
Se propone representar esta elección en el modelo mediante la clase asociación
denominada Selección, la cual se muestra en la Figura III.13 y en la Especificación III.41.
Como propiedad de esta relación se tiene información acerca del conjunto sobre el que se
efectúa la selección, el cual puede surgir de una preselección o contemplar todos los
conjuntos de variantes que son miembros de una familia.
Individual Seleccion in Class with
attribute
productoElegido:Producto;
conjuntoASeleccionar: ConjuntodeVariantes
end
Individual Seleccion with
rule
conjASeleccionarRule: $ forall s/Seleccion cv/ ConjuntodeVariantes
(exists cv2/ ConjuntodeVariantesC p,p2/Producto (p selecciona s) and
(p miembroDe cv2) and (cv2 componenteDirecto cv) and (p productoElegido p2)
and
(p2 miembroDe cv2)) ==> (s conjuntoASeleccionar cv)$
end
Especificación III.41. Definición de la clase Selección
III.6. ADMINISTRACIÓN DE RESTRICCIONES
Cuando un modelo define una estructura genérica de una familia de productos y
reglas para especializarla en una estructura particular correspondiente a un producto
miembro de tal familia, puede llegar a permitir un gran número de posibles combinaciones
de componentes o partes (productos). En la práctica algunas de esas combinaciones
pueden ser inválidas por razones técnicas o comerciales. Cuando se definen estructuras
genéricas de productos, como las asociadas a los niveles de abstracción Familia y
ConjuntodeVariantes, éstas incluyen un modelo implícito de la estructura del producto, que
provee condiciones adicionales que deben ser satisfechas por cualquier producto válido
(Männistö y colab., 1998). Con el fin de derivar estructuras particulares válidas a partir de
115
_________________________________________________________ Modelo de productos. Definición
estructuras genéricas, es necesario contar con un mecanismo para expresar las
restricciones entre componentes (familias, conjuntos de variantes o productos) que pudieran
existir y que puedan ser verificadas durante el proceso de generación del BOM (estructura
del producto). Teniendo en cuenta este requerimiento, el modelo propuesto incluye un
mecanismo para expresar restricciones que deben ser validadas al momento en que las
estructuras (genéricas o particulares) sean creadas.
El modelo propuesto contempla tres tipos de restricciones, de acuerdo a cada uno de
los
niveles
que
fueron
definidos:
i)
entre
Familias
(RestricciónF);
ii)
entre
ConjuntosdeVariantes (RestricciónCV); y iii) entre Productos (RestricciónP). Estas
restricciones complementan aquéllas establecidas por los tipos de relaciones de
composición/descomposición que se presentaron anteriormente. En la Figura III.14 se
introduce el diagrama de clases que representa los conceptos mencionados. Se puede
observar que cada tipo de restricción se establece entre pares de instancias de un mismo
nivel. Esto es, entre instancias de Familia o entre ocurrencias de ConjuntodeVariantes o
entre instancias de Producto.
<<I>>
Incompatible
<<Rest>>
Restricción
<<RF>>
RestricciónF
<<F>>
Familia
tipoRestricción
<<RCV>>
RestricciónCV
<<CV>>
ConjuntodeVariantes
<<O>>
Obligatoria
<<Trest>>
TipoRestricción
<<RP>>
RestricciónP
<<P>>
Producto
Figura III.14. Diagrama de clases asociadas a la administración de restricciones
La Especificación III.42 define, en lenguaje O-Telos, las clases presentadas en la
Figura III.14.
Individual Restriccion in Class with
attribute
tipoRestriccion: TipoRestriccion
end
Individual RestriccionF in Class isA Restriccion with
attribute
restringe: Familia
end
Individual RestriccionCV in Class isA Restriccion with
attribute
restringe: ConjuntodeVariantes
end
116
_________________________________________________________ Modelo de productos. Definición
Individual RestriccionP in Class isA Restriccion with
attribute
restringe: Producto
end
Especificación III.42. Definición de la clase Restricción y sus especializaciones
La clase Restricción tiene un atributo tipoRestricción que determina cuál es el tipo de
restricción que se aplica y un atributo restringe que determina cuál es la abstracción de
producto sobre la que se aplicará la restricción. En cada una de las especializaciones de
Restricción, el valor del atributo restringe establece sobre qué especialización de
AbstraccióndeProducto será aplicable la restricción en cuestión. En el caso de una
RestricciónF, los valores de dicho atributo sólo podrán ser instancias de Familia, en el caso
de RestricciónCV serán instancias de ConjuntodeVariantes, mientras que para RestricciónP,
éstos serán Productos.
En cada nivel es posible identificar dos tipos principales de restricciones entre
componentes: i) las que expresan la obligatoriedad de la presencia del componente
correspondiente, y ii) las que indican la incompatibilidad entre ciertos componentes. Ambas,
de ser aplicables, deben ser verificadas para obtener estructuras válidas. Estas restricciones
se representan mediante la clase TipoRestricción (Figura III.14), y sus especializaciones,
denominadas RObligatoria e RIncompatible, se definen en la Especificación III.43.
Individual TipoRestriccion in Class end
Individual RObligatoria in Class isA TipoRestriccion end
Individual RIncompatible in Class isA TipoRestriccion end
Individual robligatoria in RObligatoria end
Individual rincompatible in RIncompatible end
Especificación
especializaciones
III.43.
Definición
de
la
clase
TipoRestricción
y
sus
El primer tipo de restricción (de obligatoriedad), impone que un conjunto determinado
de
instancias
de
un
nivel
particular
de
AbstraccióndeProducto
(Familias,
ConjuntodeVariantes o Productos) estén presentes en la estructura en la que participa la
instancia que está estableciendo la restricción de obligatoriedad. Para verificar el
cumplimiento o no de este tipo de restricciones es necesario poder determinar cuáles son
los componentes de dicha estructura, la cual corresponde a la SH de una Familia, de un
ConjuntodeVariantes, o de un Producto. En la especificación III.15, se presenta el atributo
componente en la clase Familia que permite inferir, mediante la regla compRule, aquellas
familias que participan directa o indirectamente en la estructura de una determinada familia.
De manera similar, en las Especificaciones III.44 y III.45, se definen los atributos y las reglas
para inferir los componentes de la SH de cada uno de los otros niveles de la AH.
117
_________________________________________________________ Modelo de productos. Definición
Particularmente, la Especificación III.44 a través de las reglas componenteRule,
compDirectoRule
y
compDirectoRule2,
infiere
los
valores
de
los
atributos
componenteDirecto y componente de la clase ConjuntodeVariantes, los cuales indican la
presencia (directa e indirecta) de un ConjuntodeVariantes en la estructura de otro conjunto.
Un ConjuntodeVariantes cv2 es componente de otro ConjuntodeVariantesC cv1
componenteDirecto
de
cv2
o
si
existe
otro
ConjuntodeVariantes
cv3
si es
que
es
componenteDirecto de cv1 y cv2 es componente de cv3 (componenteRule). Un
ConjuntodeVariantes cv2 es componenteDirecto de otro ConjuntodeVariantesC cv1 si:
es preseleccionado por cv1 directamente, en otras palabras, existe una
preselección p en cv1 que tiene a cv2 como conjuntoSeleccionado
(comDirectoRule); o
es miembroDe alguna Familia f que forma parte de la estructura de cv1 y no
existe ninguna preselección en cv1 para f (comDirectoRule2).
Individual ConjuntodeVariantesC with
attribute
componenteDirecto:ConjuntodeVariantes;
componente:ConjuntodeVariantes
rule
compDirectoRule : $ $forall cv1/ ConjuntodeVariantesC
cv2/ ConjuntodeVariantes ( exists p/Preseleccion (cv1 preselecciona p) and
(p ConjuntoSeleccionado cv2) )==> (cv1 componenteDirecto cv2)$;
compDirectoRule2 : $ forall cv2/ConjuntodeVariantesC (exists f/Familia
(this fliaComponente f) and not(this componenteAfectado f) and
(cv2 miembroDe f)) ==> (this componenteDirecto cv2) $;
componenteRule : $ forall cv1/ConjuntodeVariantesC cv2/ConjuntodeVariantes
(cv1 componenteDirecto cv2) or (exists cv3/ConjuntodeVariantesC
(cv1 componenteDirecto cv3 ) and (cv3 componente cv2))
==> (cv1 componente cv2)$;
end
Especificación III.44. Definición de los atributos componenteDirecto y
componente en la clase ConjuntodeVariantes
De manera similar, en la especificación III.45 se presentan los atributos componente
y componenteDirecto para la clase Producto, así como las reglas compDirectoRule y
componenteRule, que permiten inferir los componentes presentes en una jerarquía
estructural del nivel más bajo de la AH, es decir Producto.
ProductoC with
attribute
componenteDirecto: Producto;
componente: Producto
rule
118
_________________________________________________________ Modelo de productos. Definición
compDirectoRule:$forall p1/ProductoC p2/Producto (exists
(p1 selecciona s) and (s productoElegido p2))
==> (p1 componenteDirecto p2) $;
s/Seleccion
componenteRule:$ forall p1/ProductoC p2/Producto (p1 componenteDirecto p2) or
(exists p3/ProductoC (p1 seleciconDirecta p3) and (p3 componente p2))
==> (p1 componente p2) $
end
Especificación III.45. Definición de los atributos componenteDirecto y
componente en la clase Producto
La definición de una Restricción de tipo obligatoria, se especifica de manera diferente
para cada una de las especializaciones de dicha clase, las cuales se corresponden con cada
nivel de la AH. Surgen así las Especificaciones III.46 a III.48 que corresponden a
restricciones
de
obligatoriedad
entre
Familias,
ConjuntodeVariantes
y
Productos,
respectivamente.
Individual RestriccionF in Class isA Restriccion with
constraint
restriccionRule: $ forall f1/FamiliaC f2/Familia (exists r/RestriccionF
tr/Obligatoria (f1 restringeA r) and
(r restringe f2) and
(r tipoRestriccion tr) and (f1 componente f2) )$
end
Especificación III.46. Restricción de obligatoriedad entre Familias
Individual RestriccionCV in Class isA Restriccion with
attribute
restringe : ConjuntodeVariantes
constraint
restriccionRule:$forall cv1/ ConjuntodeVariantesC cv2/ConjuntodeVariantes
(exists r/RestriccionCV tr/Obligatoria (cv1 restringeA r) and
(r restringe cv2) and (r tipoRestriccion tr) and
(cv1 componente cv2))$
end
Especificación III.47. Restricción de obligatoriedad entre ConjuntosdeVariantes
Individual RestriccionP in Class isA Restriccion with
attribute
restringe : Producto
constraint
restriccionRule: $ forall p1/ProductoC p2/Producto (exists r/RestriccionP
tr/Obligatoria (p1 restringeA r) and (r restringe p2) and
(r tipoRestriccion tr) and (p1 componente p2)) $
end
Especificación III.48. Restricción de obligatoriedad entre Productos
Una restricción de incompatibilidad establece que determinadas instancias (una o
más) de un cierto nivel de AbstraccióndeProducto (Familia, ConjuntodeVariantes o
Producto), no deben incluirse en la estructura en la que está presente la instancia que
119
_________________________________________________________ Modelo de productos. Definición
establece
la
restricción
de
incompatibilidad.
En
consecuencia,
se
definen
las
Especificaciones III.49 a III.51 que corresponden a restricciones de incompatibilidad entre
Familias, ConjuntodeVariantes y Productos, respectivamente.
Individual RestriccionF in Class isA Restriccion with
attribute,constraint
restriccionRule2 : $ forall f1/FamiliaC f2/Familia (exists r/RestriccionF
tr/Incompatible (f1 restringeA r) and (r restringe f2) and
(r tipoRestriccion tr) and not (f1 componente f2) )$
end
Especificación III.49. Restricción de incompatibilidad entre Familias
Individual RestriccionCV in Class isA Restriccion with
attribute,constraint
restriccionRule2 : $ forall cv1/ ConjuntodeVariantesC cv2/ ConjuntodeVariantes
(exists r/RestriccionCV tr/Incompatible (cv1 restringeA r) and
(r restringe cv2) and (r tipoRestriccion tr) and
not (cv1 preseleccionIndir cv2)) $
end
Especificación
ConjuntosdeVariantes
III.50.
Restricción
de
incompatibilidad
entre
Individual RestriccionP in Class isA Restriccion with
attribute
restringe : Producto
constraint
restriccionRule : $ forall p1/ProductoC p2/Producto (exists r/RestriccionP
tr/Incompatible (p1 restringeA r) and (r restringe p2) and
(r tipoRestriccion tr) and (not (p1 seleccionIndir p2)))$
end
Especificación III.51. Restricción de incompatibilidad entre Productos
En base a las especificaciones anteriores es posible definir, para cada uno de los
niveles de AbstraccióndeProducto, los atributos incompatibleCon y obligatorioCon, y a partir
de las reglas correspondientes se inferirá el valor de los mismos. Es decir, para una
instancia definida en un determinado nivel, dichas reglas permitirán conocer cuáles son las
instancias incompatibles y cuáles son las obligatorias. En la Especificación III.52 se presenta
la definición de estos atributos, así como las reglas correspondientes a la clase Familia.
Podrían efectuarse definiciones similares para las clases ConjuntodeVariantes y Producto,
las cuales no se incluyen en esta Tesis.
Familia with
attribute
incompatibleCon:Familia;
obligatorioCon:Familia
rule
120
_________________________________________________________ Modelo de productos. Definición
incompatibleConRule:$ forall f/Familia (exists r/RestriccionF tr/Incompatible
(this restringeA r) and (r tipoRestriccion tr) and
(r restringe f))
==> (this incompatibleCon f)$;
obligatorioConRule:$ forall f/Familia (exists r/RestriccionF tr/RObligatoria
(this restringeA r) and (r tipoRestriccion tr) and
(r restringe f))
==> (this obligatorioCon f)$
end
Especificación III.52. Definición
obligatorioCon en la clase Familia
de
los
atributos
incompatibleCon
y
III.7. SISTEMA DE GENERACIÓN DE BOMS
El concepto de BOM generativo está muy ligado al concepto de Familia de productos
(FP), ya que, en general, la información común que se define está asociada a una FP. Se
entiende que una familia de productos es “un grupo de productos relacionados que
comparten características, componentes y satisfacen una variedad de nichos del mercado”
(Zha y Sriram, 2006).
Trabajar, con los conceptos de FP y BOMs generativos implica dos fases principales:
i) definición de la familia de productos, su estructura e información común a todos sus
integrantes; y ii) la derivación de información específica para cada uno de los miembros de
la familia. Las dos fases mencionadas están soportadas por diferentes tipos de sistemas;
por un lado, un sistema de especificación de productos, y por otro, un sistema de generación
de BOMs. El primero se vincula con la administración de la información común y con la
definición de reglas de derivación. El segundo, en cambio, hace uso de las especificaciones
mantenidas en el sistema previo para derivar, teniendo en cuenta también los
requerimientos de los clientes, una estructura de producto válida. En este trabajo, el
conjunto definido por estos dos tipos de sistemas, será denominado “sistema de
procesamiento de BOMs”.
La estructura de un producto compuesto particular es el resultado que se obtiene del
sistema de procesamiento de BOMs. Este sistema es el responsable de la creación,
mantenimiento y recuperación de diferentes árboles de estructura para variantes de
productos particulares. Tiene asociadas tres actividades básicas: definición de familias,
definición de conjunto de variantes y derivación de la estructura de productos específicos (o
definición de producto). Este proceso, que se muestra en la Figura III.15, emplea
información de los dos niveles de abstracción más altos (Familia y ConjuntodeVariantes),
para generar una nueva entidad en el nivel más bajo (Producto).
121
_________________________________________________________ Modelo de productos. Definición
Definición Familia
Definición Conjunto
de Variantes
Sistema de especificación de productos
Definición Producto
Sistema de
generación de BOMs
Figura III.15. Módulos del sistema de procesamiento de BOMs
Para poder obtener la estructura de un producto en el sistema de generación de
BOMs, previamente deben estar completamente definidos el conjunto de variantes del que
es miembro el producto en cuestión, así como la familia a la que dicho conjunto pertenece.
Luego, se deberá seleccionar el conjunto de variantes a partir del cual se va a generar el
producto en particular que se desea crear. Si se trata de un producto de tipo ProductoC, se
debe inferir la estructura que le corresponde a partir de la información asociada al conjunto
de variantes compuestas del que éste es miembro. Finalmente, teniendo en cuenta las
preselecciones que el conjunto de variantes tiene definidas, se debe optar por una de dichas
preselecciones por cada componente de la estructura (previamente inferida). En caso de no
existir preselecciones para algún componente, se deberá seleccionar algún conjunto de
variantes a partir de todos aquéllos que dicho componente posee como miembros.
En la siguiente sección se presenta, mediante distintos diagramas de interacción, las
tareas involucradas en la creación de los miembros de los diferentes niveles de abstracción
propuestos. La presentación se desarrollará en el orden establecido esquemáticamente en
la Figura III.15. Se comenzará con las actividades propias de la definición de una Familia,
pasando luego a las características de un ConjuntodeVariantes y finalizando con la
definición de un Producto.
III.7.1. Actividades de creación de los miembros de los distintos niveles de
abstracción de productos.
Las actividades que deben llevarse a cabo para la definición de una instancia del
nivel Familia pueden agruparse en tres grandes actividades:
Creación de la Familia: involucra la creación de una instancia de la clase y la
definición de las propiedades de la misma. Aquí debe tenerse en cuenta que
dependiendo de la organización en la que se haya implementado y especializado
el modelo, estas características van a ser diferentes.
Creación de las restricciones de la Familia (si las tuviera, en el caso de las
familias compuestas): creación de instancias de la clase RestricciónF y definición
122
_________________________________________________________ Modelo de productos. Definición
de su tipo (incompatible u obligatoria) y de la familia que sobre la que se aplica la
restricción.
Creación de la Estructura de la Familia (si se trata de una familia compuesta):
dependiendo del tipo de Familia que se esté definiendo, se creará una instancia
de la clase EstructuraC o de la clase EstructuraD.
En la Figura III.16 se presenta el diagrama de interacción resumido asociado a la
creación de una instancia de la clase FamiliaC. Pueden verse allí, los mensajes que se
intercambian para llevar a cabo las actividades mencionadas.
Por su parte, la Figura III.17 muestra el diagrama de interacción que representa los
mensajes intercambiados para la actividad de creación de una EstructuraC. Para cada
componente que se quiere agregar en la estructura, primero se debe verificar que no se
haya definido alguna restricción de incompatibilidad entre la familia que se está creando y la
familia que se desea incorporar como componente. Si no se viola ninguna restricción, se
define la relación de composición correspondiente, en la cual se establece la familia
componente, y se crean las instancias de ValorRestringido que corresponden a los atributos
quantityPer y prodFactor.
:FamiliaC
Usuario
CrearFamilia
SetCaracteristicas()
restringeA= SetRestriccion(tipo, flia)
:RestriccionF
new
tipoRestriccion= SetTipo(tipo)
restringe= SetRestringe(flia)
SetEstructura
:EstructuraC
[es composición?]: estructuraDe= New
:EstructuraD
[esDescomposición?]: estructuraDe= New
Figura III.16. Diagrama de Interacción correspondiente a la creación de una
instancia de la clase FamiliaC
123
_________________________________________________________ Modelo de productos. Definición
:FamiliaC
:EstructuraC
Verifica si no hay restricciones de incompatibilidad entre
la familia que se está definiendo y el componente que se
está incorporando a la estructura
new
loop Para cada componente
AgregarComponente
VerificarRestricciones
opt RestriccionesOK
:RelacionC
componente= new
parte= setParte(unaFlia)
:ValorRestringido
quantityPer= new(unValor, udeM,unMin, unMax)
:ValorRestringido
prodFactor= new(unValor,ude,unMin,unMax)
Figura III.17. Diagrama de interacción CrearEstructuraC
En la Figura III.18 se presenta el diagrama de interacción asociado a la creación de
una instancia de la clase ConjuntodeVariantesC. Puede observarse en la misma, que al
igual que en el caso de la Familia, existen dos grandes actividades que se vinculan con la
creación de una instancia de la clase ConjuntodeVariantesC, la definición de restricciones
para el conjunto de variantes que se está creando y la definición de la estructura del mismo.
En la primera actividad, se debe determinar la Familia a la que pertenece el conjunto de
variantes en cuestión. Por su parte, la actividad de creación de la estructura involucra, la
selección de la estructura de la que se deriva el conjunto de variantes que se está
definiendo, la creación de las modificaciones que es necesario incluir en la estructura en
cuestión, así como la preselección de opciones para los componentes de dicha estructura.
124
_________________________________________________________ Modelo de productos. Definición
CV1
:ConjuntoDeVariantesC
:Preseleccion
:DiseñadorProducto
New
setPropiedades
setRestriccion
:RestriccionCV
restringeA= new
derivaDe= setEstructura
[si modifica Estructura]: setModificaciones
Modificacion
modificacionAplicada= new(derivaDe)
[si preselecciona Conj.de Variantes]: preseleccionar
Preseleccion
[si es nueva preseleccion]: preselecciona= New
[si ya existe preseleccion]: AgregarCV
Figura III.18. Diagrama de Interacción asociado a la creación de una instancia de la
clase ConjuntodeVariantesC
Dado que la modificación de relaciones es una parte fundamental de la creación de
un conjunto de variantes, la Figura III.19 presenta el diagrama de interacción relacionado
con la creación de una instancia de Modificación. En él puede observarse el intercambio de
mensajes que implica la definición de un cambio. Este intercambio se repite para cada uno
de las alteraciones que se especifican en la modificación que está siendo creada.
Puede observarse en dicha figura que hay un conjunto de mensajes que es común a
cualquier tipo de cambio; mientras que hay otro que es diferente, dependiendo del cambio
que se quiera crear. Inicialmente se especifica la relación que se desea modificar y el tipo de
cambio que se quiere realizar sobre la misma.
Si dicho cambio es de tipo Eliminación, se debe verificar que el tipo de la relación
que se desea modificar sea optativa (se debe recordar que este tipo de relaciones es el
único que puede quitarse de una estructura). Si esto se cumple, se debe verificar aún que
no exista una restricción de obligatoriedad entre la familia que se elimina de la estructura y
la familia cuya estructura se está modificando. En caso de que no existan obligatoriedades,
se crea la instancia de Eliminación que representa el cambio en cuestión. Si las restricciones
anteriores no se verificasen, el cambio no podría realizarse.
Si el cambio deseado es de tipo SelecciónFamilia, se verifica solamente si el tipo de
la relación que va a ser afectada por el cambio es efectivamente Selectiva. Si esto ocurre,
se creará la instancia en cuestión.
125
_________________________________________________________ Modelo de productos. Definición
:Modificacion
unaRelacion
:Relacion
qp :ValorRestringido
:ValorRestringido
loop para cada cambio
unaRelacion= getRelacionAModif
tipoC= getTipoCambio
tipoR= getTipoRelacion
opt
restriccionesOK= checkRestricciones
[restriccionesOK ]: cambioAplicado= New(unaRelacion)
opt
:Eliminacion
:SeleccionFamilia
cambioAplicado= New(unaRelacion)
opt
nuevoValor= getNuevaCantidad
qp= getquantityPer
limitesOK= checkLimites(nuevoValor)
:CambioQP
[limitesOK==True]: cambioAplicado= New(unaRelacion.nuevoValor)
opt
nuevoValor= getNuevaCantidad
pf= getprodFactor
limitesOK= checkLimintes(nuevoValor)
:CambioPF
[limitesOK==True]: cambioAplicado= New(unaRelacion, nuevoValor)
Figura III.19. Diagrama de Interacción asociado a la creación de una instancia
de la clase Modificación
Si se tratase de un CambioQP o de un CambioPF, éste podría ser aplicado a
cualquier tipo de relación (obligatoria, selectiva u optativa). Para implementar el cambio, se
deberá especificar el nuevo valor del atributo quantityPer o prodFactor (según cuál sea el
cambio). Sin embargo, antes de crear la instancia de cambio correspondiente, se debe
verificar que el nuevo valor no esté fuera de los límites mínimo y máximo del atributo que se
modifica (quantityPer o prodFactor). Si estos límites son respetados, se crea entonces la
instancia que corresponde.
Finalmente, la Figura III.20 presenta las actividades involucradas en la definición de
un Producto. En la misma se observa la creación de una instancia de la clase con dicho
nombre y el establecimiento de una relación de pertenencia de esta instancia con el
conjunto de variantes del cual es miembro. Luego se definen las restricciones, tanto de
126
_________________________________________________________ Modelo de productos. Definición
obligatoriedad como de incompatibilidad, entre la instancia de Producto que está siendo
creada y otros productos ya definidos. En caso de tratarse de un ProductoC, deberán
seleccionarse los productos asociados a cada componente de la estructura. Para ello, se
debe obtener la estructura del producto que se desea crear (definida en el conjunto de
variantes del que éste es miembro). Asimismo, para cada uno de sus componentes, se
deberá seleccionar un producto a asociar. Esto implica que primeramente deberá conocerse
el conjunto a partir del cual se seleccionará un componente, el cual se obtiene del conjunto
de variantes antes mencionado. El conjuntoSelección podrá estar dado por una
Preselección, si es que existe para la Familia componente que se está tratando o, por todos
los conjuntos de variantes que son miembros de dicha Familia.
:ProductoC
:ConjuntoDeVariantesC :ConjuntoDeVariantes
:DiseñadorProducto
New
miembroDe= setPertenencia
:RestriccionP
restringeA= New
productSTR= getEstructura
loop Para Cada Componente en ProductSTR
selecciona= seleccionarProducto(unComponente)
conjuntoSeleccionado= existePreseleccion(unComponente)
productosOK= getProductos(conjuntoSeleccionado)
listaProductos= getMiembros
checkRestriccion(ProductosOK)
unaSeleccion= New(ProductosOK)
:Seleccion
productoElegido= setOpcion(ProductoOk)
Figura III.20. Diagrama de interacción asociado a la creación de una instancia de la
clase ProductoC.
Teniendo en cuenta dicho conjuntoSeleccionado, se deberá verificar si no hay
productos que violen las restricciones previamente establecidas para el producto que está
siendo definido. Aquellos productos para los que existan incompatibilidades, serán
eliminados de la lista. En caso de existir una restricción de obligatoriedad con algún
producto de la lista, este único producto quedará en la misma ya que es el que deberá ser
seleccionado para no violar la restricción mencionada. En base a la lista de productos que
no violen las restricciones (ProductosOK en el diagrama), se creará una instancia de la clase
Selección donde se establecerá el valor del atributo productoElegido a partir del producto
seleccionado.
127
_________________________________________________________ Modelo de productos. Definición
III.8. CONCLUSIONES
En este capítulo se introdujo el modelo de productos que constituye el principal
aporte de esta Tesis. La propuesta se basa en dos jerarquías de conceptos, denominadas
jerarquía de abstracción (AH) y jerarquía estructural (SH). La representación de
conocimiento planteada integra estas jerarquías, enfatizándose en la Tesis el tratamiento de
la información de tipo estructural. No obstante, este planteo integrado de jerarquías deja
sentada las bases para formalizar procesos de agregación-desagregación de información,
que quedaron fuera del alcance de este trabajo.
La propuesta utiliza los conceptos de familia de productos y de BOM generativo para
la representación eficiente de información estructural de un elevado número de variantes de
productos. La misma se define en tres niveles de abstracción diferentes: Familia, Conjunto
de Variantes y Producto, posibilitando la gestión de información con distintos niveles de
agregación. Esta característica es muy importante para la generación de información
requerida por las actividades de planificación de la producción a largo, mediano y corto
plazo (estratégica, táctica y operativa).
La Familia es el nivel más abstracto y define la información común a todos sus
miembros, representados a través de conjuntos de variantes. Cada familia puede tener
asociada más de una estructura, permitiendo así la representación de productos con
múltiples recetas de producción.
A diferencia de las propuestas existentes, el modelo presentado, además de permitir
la representación de productos que se obtienen por ensamblado de partes, puede utilizarse
en industrias que emplean materias primas no atómicas; es decir, a partir de las cuales se
obtienen productos intermedios que ingresan luego en el proceso productivo.
Para la representación de estos diferentes tipos de estructuras, el modelo define
diferentes relaciones, de composición y de descomposición. Estas son relaciones todoparte, en el que las estructuras son el todo y las partes corresponden a otras familias de
productos, que son componentes de la familia a la que está asociada la mencionada
estructura (para las relaciones de composición) o son derivados que se obtienen a partir de
dicha familia (en el caso de las relaciones de descomposición). En cualquiera de los dos
casos, las relaciones mantienen información acerca de cantidades numéricas que
simbolizan, según el caso, la cantidad que se necesita de la parte para obtener una unidad
del todo o la proporción que representa la parte respecto del todo.
El
siguiente
nivel
de
abstracción,
denominado
Conjunto
de
Variantes
(ConjuntodeVariantes), se corresponde con la definición de distintos subconjuntos de
miembros de una familia, a partir de aspectos diferenciadores que distinguen unos de otros.
Para el caso de Familias compuestas, las diferentes estructuras constituyen el punto a partir
128
_________________________________________________________ Modelo de productos. Definición
del cual se hace la separación de los distintos ConjuntosdeVariantesC. De esta manera,
cada conjunto de variantes se asocia a una única estructura. Para familias simples, esta
separación en conjuntos de variantes se puede dar de acuerdo a marcas, proveedores,
calidades y algunos otros criterios, que no son abordados en esta Tesis.
Es posible que la estructura asociada a un determinado conjunto de variantes
presente algunas modificaciones respecto de la estructura común de la familia, de la cual el
mencionado conjunto deriva. Los cambios que el modelo considera comprenden la
eliminación de componentes, la alteración parcial de la cantidad de composición de ciertos
componentes, así como la adopción de una de las relaciones selectivas de la estructura, si
es que éstas existieran.
En el último nivel propuesto, denominado Producto, se definen los miembros de un
conjunto de variantes, representándose productos con existencia física. Todos los productos
que son miembros de un ConjuntodeVariantes en particular poseen la misma estructura que
éste. Por lo tanto, en este nivel no se hacen modificaciones en las relaciones estructurales,
sino que se especifican aquéllos componentes que aún no se hubiesen definido, y cuyas
opciones estuvieran abiertas.
Un aporte importante del modelo propuesto es la incorporación de los elementos
necesarios para la definición de restricciones en cualquiera de los tres niveles de
abstracción, tanto de obligatoriedad como de incompatibilidad entre componentes. La
definición explícita de restricciones permite evitar la derivación de estructuras de productos
inválidas; esto es una característica importante, especialmente en el caso de productos que
son especificados por los clientes. Las mismas evitan que el cliente pueda especificar
configuraciones inválidas.
Teniendo en cuenta los requerimientos que un modelo de productos deberá
satisfacer, los que fueron planteados en el Capítulo I, es posible señalar que el modelo
introducido en este capítulo permite:
La administración eficiente de un elevado número de variantes a través de la
utilización del concepto de familia de productos que fuera implementado mediante la
jerarquía de abstracción propuesta, materializada por los conceptos de Familia,
ConjuntodeVariantes y Producto.
La representación de productos con diferentes tipos de estructuras: de composición,
descomposición e híbridas.
La gestión de estructuras alternativas a través de los múltiples valores que puede
tomar la relación estructuraDe para una cierta Familia y la posibilidad de seleccionar
una determinada estructura para cada ConjuntodeVariantes que es miembro de
dicha Familia.
129
_________________________________________________________ Modelo de productos. Definición
La representación de las distintas vistas que cada unidad organizacional tiene de la
estructura de los productos. Ésta se encuentra en relación con el manejo de
estructuras alternativas, ya que cada una de estas vistas puede asociarse a una
estructura particular de una familia.
Los conceptos del modelo propuesto se presentaron mediante diagramas UML y la
correspondiente especificación en el lenguaje O-Telos, con su implementación en la base de
conocimientos ConceptBase. El lenguaje utilizado en la formalización, que combina objetos
con lógica de primer orden, permite establecer un vocabulario común para la definición de
estructuras de productos y especificar la semántica de cada término de manera no ambigua
a través de la lógica de predicados de primer orden. Por otra parte, la implementación en
una base objeto-deductiva permite deducir nuevo conocimiento mediante la máquina de
inferencia que soporta ConceptBase.
La propuesta presentada en esta Tesis es el resultado de un proceso iterativo e
incremetal, que fue arrojando como resultado la definición de diferentes versiones del
modelo (Vegetti y colab., 2001a) (Vegetti y colab., 2002a) (Vegetti y colab., 2003), (Vegetti y
colab., 2005a) que fueron evolucionando hasta alcanzar las características presentadas
aquí. Durante el desarrollo de este proceso, las diferentes versiones se fueron empleando
para la representación de productos de diferentes tipos de industrias, productos cárnicos
(Vegetti y colab., 2001b), golosinas (Vegetti y colab.,2002b) y muebles (Vegetti y colab.,
2004), por ejemplo Esto, permitió detectar las deficiencias que las versiones preliminares
iban teniendo para la representación de casos reales y corregirlas en consecuencia.
En el capítulo siguiente se muestra cómo el modelo propuesto puede emplearse para
representar productos de dos tipos de industrias diferentes. Específicamente se aborda la
representación de los productos que fueran introducidos en los casos de estudio del
Capítulo II.
130
131
IV.
MODELO DE PRODUCTOS. APLICACIONES
IV.1. INTRODUCCIÓN
Este capítulo tiene por objetivo presentar la aplicación del modelo de productos
propuesto en el Capítulo III a los dos casos de estudio introducidos en el Capítulo II. En
ambos, a partir de los datos reales, se delimitó un subconjunto de productos a ser
modelado.
Los conjuntos identificados fueron cargados, utilizando una representación BOM
tradicional, en una base de datos ConceptBase. Posteriormente, utilizando la información
disponible en estas bases se identificaron, para cada caso, las familias, conjuntos de
variantes y los productos, tanto simples como compuestos, correspondientes. En particular,
se identificaron las estructuras comunes pertenecientes a cada una de las familias
compuestas. En el caso de conjuntos de variantes compuestas, se estableció de qué
estructura se deriva cada uno de ellos y, de ser necesario, qué modificaciones aplicarle a la
estructura identificada. Finalmente, la información así modelada se introdujo en sendas
bases de datos ConceptBase, una por cada caso de estudio.
A partir de estas bases de datos se extrajeron los ejemplos que se presentan en este
capítulo, cuya presentación se realiza mediante:
Diagramas de objetos, obtenidos a partir de la herramienta “ConceptBase
Graphical Editor”. Ésta permite representar gráficamente la información de
productos almacenada en las bases de datos.
Especificaciones formales en código O-Telos, las cuales incluyen:
o
la definición de instancias de las distintas clases empleadas; y
o
vistas que permiten lograr una visualización conjunta de información
que se encuentra dispersa en distintas instancias.
Imágenes de la ventana “Telos Editor”, que muestran el resultado de
consultas efectuadas a las bases de datos. “Telos Editor” constituye una parte
de la interfaz gráfica de ConceptBase, que permite el ingreso de definiciones
y consultas a la base de datos en su parte superior, mostrando el resultado
de dichas acciones en la parte inferior.
129
________________________________________________________ Modelo de Productos. Aplicaciones
En la sección IV.2 se expone el caso de estudio correspondiente a los productos de
la planta de golosinas. Se seleccionó como ejemplo la jerarquía de abstracción que se
define a nivel de caramelos envueltos para los caramelos rellenos frutales. En este ejemplo
se muestra la capacidad expresiva que posee el modelo para gestionar un número
importante de variantes. En particular, se definió la familia CarameloFrutalEnv que agrupa a
todos los caramelos rellenos que poseen algún sabor frutal (independientemente de su
marca, tipo y sabor). De todos los conjuntos de variantes que son miembros de esta familia
que se identificaron, se presentan en este capítulo solamente dos. Ellos son
BolsínFrutalROC y VaritaKIM, representantes de dos de las marcas que se manejan (ROC y
KIM) y de los dos tipos de caramelos (Bolsín y Varita). Cada uno de estos conjuntos agrupa
a todos los caramelos de una misma marca y un determinado tipo, pero en sus diferentes
sabores. Esta característica (el sabor del caramelo) es la que se especifica en las entidades
del nivel Producto. En particular, se presenta el producto SE508219 (VaritaKIMFrutilla),
miembro del conjunto de variantes VaritaKIM en sabor frutilla.
Por su parte, la sección IV.3 presenta la aplicación del modelo al caso de estudio de
productos de la industria frigorífica. Inicialmente se describen los diferentes niveles de
abstracción definidos para representar los productos finales que corresponden al grupo de
las carnes cocidas congeladas que se expusieron en la Tabla II.52. Luego se presentan dos
familias, denominadas SECarneCocidaCongelada y CuadrilConTapa, cada una de las
cuales posee distintos tipos de estructuras. La primera de ellas tiene dos, ambas son de
composición y, además, una de las estructuras posee relaciones de tipo selectivas. La otra
familia mencionada, en cambio, tiene asociadas estructuras de descomposición. Finalmente,
se explica cómo se define la estructura del conjunto de variantes SECarneCocidaReb
(miembro de SECarneCocidaCongelada), a partir de una estructura que posee relaciones
selectivas. Los otros conjuntos de variantes y productos no se ejemplificarán debido a que
su tratamiento no difiere del introducido en la sección IV.2.
IV.2. APLICACIÓN DEL MODELO A LOS PRODUCTOS DE LA PLANTA DE GOLOSINAS
En el primer caso de estudio presentado en el Capítulo II se expuso parte del modelo
de productos que actualmente utiliza una industria de producción de golosinas. En particular,
los productos analizados corresponden a caramelos duros rellenos elaborados en una de las
plantas de dicha organización. De todos estos productos, se eligieron los correspondientes a
cajas con bolsas conteniendo diferentes combinaciones de caramelos duros, de distintos
sabores y embalados en diferentes cantidades. En la Figura II.7 se presentó una estructura
genérica que muestra esquemáticamente cómo es la estructura de estos productos.
Como se mencionó en el Capítulo III, el modelo se aplica de igual manera en todos
los niveles mostrados en dicha estructura genérica, ya sean productos finales,
130
________________________________________________________ Modelo de Productos. Aplicaciones
semielaborados o materias primas. Por esto, cualquier producto que se elija de la estructura
presentada en la Figura II.7 permite ejemplificar los conceptos propuestos. En particular, se
seleccionaron 39 caramelos rellenos frutales, de dos marcas diferentes (KIM y ROC), en dos
tipos (bolsín y varita) y en los siguientes sabores: pera, frutilla, pomelo, lima, cereza y
durazno.
Después de efectuar un análisis de las características de estos productos y dado que
se encontró una gran similitud en sus estructuras, se decidió definir una única familia que los
agrupe, CarameloFrutalEnv. La Figura IV.1 presenta la jerarquía de abstracción encabezada
por dicha familia. En el segundo nivel se muestran los conjuntos de variantes, los cuales se
establecieron agrupando los productos en base a la marca y el tipo de caramelo. Quedaron
así definidos nueve conjuntos de variantes, cuyas marcas y tipos se encuentran
especificados en la Tabla IV.1.
Familia
Conjunto de Variantes
Producto
Figura IV.1. Jerarquía de abstracción de la familia CarameloFrutalEnv
Cada uno de estos conjuntos de variantes tiene como miembros a los caramelos de
una marca y un tipo en sus distintos sabores frutales. En la Figura IV.1 se muestran los
miembros de dos de estos conjuntos de variantes: BolsínFrutalROC y VaritaKIM, los cuales
corresponden a caramelos en los siguientes sabores: cereza, frutilla, pera, pomelo y lima en
el primer caso y a caramelos de pera, frutilla, pomelo, lima y durazno en el segundo. Los
otros conjuntos de variantes tienen como miembros también a caramelos cuyos sabores
coinciden con alguno de estos dos grupos. En particular, los de tipo varita coinciden con el
segundo, y el resto de los caramelos con el primer grupo de sabores.
131
________________________________________________________ Modelo de Productos. Aplicaciones
Tabla IV.1. Conjuntos de variantes de CarameloFrutalEnv
Conjunto de
Variantes
Marca
Tipo
Caramelo
Productos miembros
BolsínFrutalKIM
KIM
Bolsín
SE511710 - PeraKIM5GREnv
SE511711 - PomeloKIM5GREnv
SE511712 - LimaKIM5GREnv
SE511714 - FrutillaKIM5GREnv
SE511713 - CerezaKIM5GREnv
BolsínFrutalROC
ROC
Bolsín
SE511605 - BolsínFrutilla5GREnv
SE511606 - BolsínPera5GREnv
SE511607- BolsínPomelo5GREnv
SE511609- BolsínLima5GREnv
SE511610- BolsínCereza5GREnv
FrutalZOro
ROC
BolsínZ
FrutalOKOro
ROC
BolsínOK
VaritaKIM
KIM
Varita
SE512374 - BolsínFrutillaPopEnv
SE508249 - BolsínFrutillaOroZEnv
SE508671 - BolsínFrutillaClasicEnv
SE514191 - BolsínOKFrutillaOroEnv
SE508207 - VaritaKIMPeraEnv
SE508219- VaritaKIMFrutillaEnv
SE508246- VaritaKIMDuraznoEnv
SE508247- VaritaKIMPomeloEnv
SE508253- VaritaKIMLimaEnv
VaritaROC
ROC
Varita
SE508209 - VaritaROCDuraznoEnv
SE508225 - VaritaROCLimaEnv
SE508241 - VaritaROCPomeloEnv
SE508243 - VaritaROCFrutillaEnv
SE508245 - VaritaROCPeraEnv
BolsínFrutalZ
ROC
BolsínZ
SE508482 - BolsínFrutillaZEnv
SE508588 - BolsínPeraZEnv
SE508589 - BolsínPomeloZ4GrEnv
SE508799 - BolsínLimaZ4GrEnv
SE508800 - BolsínCereza4GrEnv
BolsínFrutalOK
ROC
BolsínOK
SE413937 - BolsínOKCereza5GrEnv
SE413940 - BolsínOKLima5GrEnv
SE413942 - BolsínOKPomelo5GrEnv
SE413944 - BolsínOKPera5GrEnv
132
________________________________________________________ Modelo de Productos. Aplicaciones
SE413946 - BolsínOKFrutilla5GrEnv
FrutalOro
ROC
Bolsín
SE511710 - BolsínOroPeraROCEnv
SE511711 - BolsínOroPomeloROCEnv
SE511712 - BolsínOroLimaROCEnv
SE511713 - BolsínOroCerezaROCEnv
SE511714 – BolsínOroFrutillaROCEnv
Un criterio similar se utilizó para la definición de la jerarquía de abstracción que
organiza a los papeles de envoltorio. Como se presentó en las Tablas II.6 a II.9 y en la
Figura II.9 del Capítulo II, estos papeles constituyen uno de los componentes de la
estructura de los caramelos envueltos. Cada uno de estos últimos tiene un papel envoltorio
diferente. En consecuencia, se identificaron 39 instancias en el nivel más bajo de la
jerarquía (Producto). La raíz de la misma es la familia PapelEnvoltorio y los conjuntos de
variantes se definen en coincidencia con los especificados para los caramelos envueltos. La
Figura IV.2 muestra esta jerarquía.
Con el objetivo de poder vincular los productos presentados en el Capítulo II con las
instancias definidas en este capítulo, se decidió mantener, para la denominación de las
entidades del nivel más concreto de la jerarquía, los códigos que poseen los productos
actualmente.
Familia
Conjunto de Variantes
Producto
Figura IV.2. Jerarquía de abstracción de tipo FamiliaS correspondiente a
PapelEnvoltorio
Los otros componentes de la estructura de un caramelo envuelto, como se aprecia
en las tablas ya mencionadas del Capítulo II, son el caramelo sin envoltorio y el papel
133
________________________________________________________ Modelo de Productos. Aplicaciones
separador (excepto para los caramelos tipo varita). Las jerarquías de abstracción
relacionadas con estos dos tipos de componentes se muestran en las Figuras IV.3 y IV.4,
respectivamente.
En la Figura IV.3 puede observarse la jerarquía cuya raíz es la familia compuesta
(FamiliaC) denominada CarameloFrutalDes. Dicha familia posee menos conjuntos de
variantes miembros en relación a los conjuntos de variantes correspondientes a los
caramelos envueltos. Esto se debe a que varios de los conjuntos de variantes mostrados en
la Figura IV.1 utilizan el mismo caramelo desenvuelto en su estructura. En la jerarquía de la
Figura IV.3 existen sólo cuatro conjuntos de variantes, a saber: OvaloFrutal, FrutalOK,
FrutalZ y VaritaKIM. Esta figura sólo presenta los productos miembros del primero y último
conjunto.
Familia
Conjunto de Variantes
Producto
Figura IV.3. Jerarquía de abstracción de tipo FamiliaC correspondiente a
CarameloFrutalDes
Aún más pequeña es la jerarquía de abstracción de los papeles separadores, ya que
los caramelos tipo varita no los llevan en su estructura y todos los otros caramelos utilizan
sólo tres papeles separadores diferentes. Esto conduce a la jerarquía que se presenta en la
Figura IV.4, en la que se presentan tres conjuntos de variantes que son miembros de la
familia PapelSeparador, a saber PapelSepROC1, PapelSepROC2 y PapelSepOro. Cada
uno de ellos posee un único producto miembro: ME908441, ME910113 y ME910124,
respectivamente.
134
________________________________________________________ Modelo de Productos. Aplicaciones
Familia
Conjunto de Variantes
Producto
Figura IV.4. Jerarquía de abstracción del tipo FamiliaS correspondiente a
PapelSeparador
IV.2.1. Especificación y gestión de productos definidos a nivel de Familia
Habiendo presentado las jerarquías de abstracción que intervendrán en la jerarquía
estructural de la familia CarameloFrutalEnv, se procederá a exponer en mayor detalle cómo
se aplican los conceptos propuestos, en el modelo de productos, en la definición de dicha
familia. En la Especificación IV.1 y en la Figura IV.5 se ilustra la definición de la familia
compuesta
(FamiliaC)
denominada
CarameloFrutalEnv
y
su
única
estructura
CarameloFrutalEnvSTR. Se trata de una estructura de composición (EC), conformada por
tres relaciones identificadas como R03, R04 y R05, las cuales unen dicha estructura con las
familias PapelEnvoltorio, CarameloFrutalDes y PapelSeparador, respectivamente.
Individual CarameloFrutalEnv in FamiliaC with
attribute,estructuraDe
estructuraDe : CarameloFrutlEnvSTR
end
Individual CarameloFrutlEnvSTR in EstructuraC with
attribute,conformadoPor
conformadoPor1 : R03;
conformadoPor2 : R04;
conformadoPor3 : R05
end
Especificación IV.1. Definición de la familia denominada CarameloFrutalEnv y
de su correspondiente estructura
135
________________________________________________________ Modelo de Productos. Aplicaciones
Figura IV.5 Definición de la familia CarameloFrutalEnv
Dado que la estructura en cuestión es de composición, las relaciones que la
conforman son de composición. La vista RelacionesenSTR recupera la información a partir
de las instancias de las clases Relación y ValorRestringido para presentar la información
correspondiente a cada una de las relaciones que participan en la estructura de la familia
CarameloFrutalEnv. Dicha vista, que se presenta en la Especificación IV.2, permite mostrar
los
atributos
de
las
instancias
de
RelaciónC
que
conforman
la
estructura
CarameloFrutalEnvSTR; y para cada una de ellas, presenta de manera anidada, las
propiedades del atributo quantityPer.
Los resultados de aplicar la vista RelacionesenSTR se presentan en la
Especificación IV.3, en la cual se observa que la relación R03 vincula la estructura llamada
CarameloFrutalEnvSTR con la familia componente PapelEnvoltorio, con una cantidad de
composición (atributo valor de la propiedad quantityPer) de 30.87 GR. En caso que
posteriormente exista algún cambio indicado por alguno de los conjuntos de variantes que
se derivan de esta estructura, dicho cambio sólo podrá modificar ese valor, manteniéndose
entre los 10.0 y los 50.0 gramos, según lo indicado por los atributos min y max. La relación
R03 se trata de una relación de tipo obligatoria (tipoRelacion) y no podrá ser removida de la
estructura por ningún cambio.
Por otro lado, la relación R04 también es de tipo obligatoria y tiene como parte a la
familia CarameloFrutalDes, la cual participa en la estructura con una cantidad de 930.233
GR y este valor sólo podrá variar (en caso de que se apliquen cambios a la relación) entre
los 900.0 y 1000.0 gramos.
Individual RelacionesenSTR in View isA Relacion with
attribute,inherited_attribute
parte : Familia;
136
________________________________________________________ Modelo de Productos. Aplicaciones
tipoRelacion : TipoRelacion
retrieved_attribute,partof
quantityPer:ValorRestringido with
inherited_attribute
valor:Real;
udeM:Unidad;
min:Real;
max:Real
end
constraint
r:$ (CarameloFrutlEnvSTR conformadoPor this) $
end
Especificación IV.2. Definición de la Vista denominada RelacionesenSTR
R03 in RelacionesenSTR
with
quantityPer
quantityPer:30_87GR
with
valor
valor : 30.87
udeM
udeM : GR
min
min : 10.0
max
max : 50.0
end
parte
parte:PapelEnvoltorio
tipoRelacion
tipoRelacion:obligatoria
end
R04 in RelacionesenSTR
with
quantityPer
quantityPer:930_233GR
with
valor
valor : 930.233
udeM
udeM : GR
min
min : 900.0
max
max : 1000.0
end
parte
parte:CarameloFrutalDes
tipoRelacion
ipoRelacion:obligatoria
end
R05 in RelacionesenSTR
with
quantityPer
quantityPer:33GR with
valor
valor : 33.0
udeM
udeM : GR
min
min : 10.0
max
max : 50.0
end
parte
parte:PapelSeparador
tipoRelacion
tipoRelacion: optativa
end
Especificación IV.3. Relaciones que conforman la estructura CarameloFrutalEnvSTR
Finalmente, la relación R05 une a la estructura CarameloFrutalEnvSTR con 33.0 GR
de la familia PapelSeparador. Tiene como límites mínimo y máximo los valores 10.0 y 50.0,
respectivamente. Se trata de una relación de tipo opcional, y por lo tanto podrá ser eliminada
de la estructura por cambios establecidos por algún conjunto de variantes que sea miembro
de CarameloFrutalEnv. Recordando lo expuesto en el Capítulo II sobre este caso de estudio,
existen caramelos que no llevan papel separador. Por ello, para poder derivar la estructura
particular de este tipo de caramelos se debe permitir suprimir el componente
PapelSeparador de la estructura base de la familia (CarameloFrutalEnvSTR), a la que estos
caramelos pertenecen.
La Figura IV.6 presenta todas las familias que directa o indirectamente participan en
la estructura de la familia CarameloFrutalEnv. Allí se puede observar un árbol multinivel que
137
________________________________________________________ Modelo de Productos. Aplicaciones
muestra los componentes directos (aquéllos que son parte de las relaciones presentadas) y,
de manera recursiva, los componentes directos de éstos.
Figura IV.6. Árbol de composición de la familia CarameloFrutalEnv
Por su parte, la Figura IV.7, presenta la ventana “Telos Editor” luego de la ejecución
de la consulta FamiliaDerivadas (Especificación III.16). El resultado de la misma es nil, es
decir que no existen en la base de datos instancias que cumplan las restricciones impuestas
por dicha consulta. Esto indica la inexistencia de familias de tipo derivado (que se obtienen
de estructuras de descomposición). Por lo tanto, los requerimientos directos coincidirán en
todos los casos con los valores de los atributos quantityPer de las relaciones que conforman
las estructuras de cada una de las familias definidas.
138
________________________________________________________ Modelo de Productos. Aplicaciones
Figura IV.7. Resultado de la consulta FamiliaDerivada (Especificación III.16)
En la Especificación IV.4 se aprecia el resultado de la vista RequerimientosFamilia
(Especificación III.22) para la familia CarameloFrutalEnv. Puede observarse en dicha
especificación, que como valor del atributo requerimientos se infirió la instancia
CarameloFrutalEnvSTR. Para esta estructura se dedujo cuáles son las relaciones que se
requieren (atributo unreq de la vista) para obtenerla, a saber: R03, R04 y R05. Además, para
cada una de estas relaciones se presentan los valores de sus atributos. Los nombres de las
instancias de interés fueron resaltados con negritas para facilitar la interpretación de los
resultados de la vista.
Es importante notar que, a diferencia de los atributos utilizados en la vista
RelacionesenSTR, presentada anteriormente en este capítulo, los atributos involucrados en
la vista RequerimientosFamilia, así como de las vistas que se encuentran anidadas dentro
de ésta, son del tipo computed_attribute. Los valores que una vista recupera para estos
atributos son inferidos mediante reglas que se definen en la propia vista. En la ejecución de
una vista es posible identificar aquellos atributos que son del tipo mencionado porque
aparecen etiquetados como “COMPUTED_nombreAtributo_id_nro”. Es así que, en la
Especificación IV.4 las etiquetas COMPUTED_unreq_id_2498, COMPUTED_unreq_id_2501
y COMPUTED_unreq_id_2504, identifican los valores inferidos por la vista para el atributo
unreq y representan las relaciones R03, R04 y R05, respectivamente. Éstas forman parte de
la estructura CarameloFrutalEnvSTR, la cual es el valor inferido, por medio de la vista, para
el atributo requerimientos. Para cada una de las relaciones incluidas en la vista se presenta
el atributo cantReq, de tipo “computed”, cuyos valores representan las cantidades de
composición que corresponden a cada relación, 30_87GR, 930_233GR y 33GR,
respectivamente.
139
________________________________________________________ Modelo de Productos. Aplicaciones
CarameloFrutalEnv in RequerimientosFamilia with
requerimientos
COMPUTED_requerimientos_id_2494:CarameloFrutalEnvSTR[CarameloFrutalEnv/this_par]
with
unReq
COMPUTED_unReq_id_2498 : R03 with
cantReq
COMPUTED_cantReq_id_2510 : 30_87GR
requerimiento
COMPUTED_requerimiento_id_2422 : PapelEnvoltorio
end ;
COMPUTED_unReq_id_2501 : R04 with
cantReq
COMPUTED_cantReq_id_2518 : 930_233GR
requerimiento
COMPUTED_requerimiento_id_2468 : CarameloFrutalDes
end ;
COMPUTED_unReq_id_2504 : R05 with
cantReq
COMPUTED_cantReq_id_2526 : 33GR
requerimiento
COMPUTED_requerimiento_id_2424 : PapelSeparador
end
end
end
Especificación IV.4. Requerimientos de la familia CarameloFrutalEnv
IV.2.2. Especificación y gestión de conjuntos de variantes
Los conjuntos de variantes compuestas de la familia CarameloFrutalEnv,
presentados en la Figura IV.1 se derivan todos de la única estructura que posee esta familia.
Algunos de ellos, además, requieren que esa estructura sea modificada en este nivel de
abstracción intermedio. Como ejemplo de estos conjuntos de variantes, la Figura IV.8
presenta BolsínFrutalROC y VaritaKIM. En el primer caso, la estructura no es modificada,
mientras que para el segundo conjunto se aplican tres cambios identificados como ElR05,
Ca2R03 y Ca2R04, los cuales son agrupados por la modificación denominada
modVaritaKIM.
La Especificación IV.5 presenta la definición en el lenguaje O-Telos del producto
genérico VaritaKIM. Allí se indica que dicho conjunto de variantes es miembro de la familia
CarameloFrutalEnv y se deriva de la estructura CarameloFrutalEnvSTR (como también
puede verse en la Figura IV.8). Asimismo, se puede observar que se aplica la modificación
modVaritaKIM a la estructura de la que este conjunto de variantes se deriva y que tiene dos
instancias asociadas al atributo preselecciona: CarVaritaFrutal y PreselVaritaKIM.
140
________________________________________________________ Modelo de Productos. Aplicaciones
Figura IV.8. Conjuntos de variantes VaritaKIM y BolsínFrutalROC
Individual VaritaKIM in ConjuntodeVariantesC with
attribute,descripcion
descripcion : "Varita Frutal KIM"
attribute,miembroDe
miembroDe : CarameloFrutalEnv
attribute,derivaDe
derivaDe : CarameloFrutalEnvSTR
attribute,modificacionAplicada
modificacionAplicada : modVaritaKIM
attribute,preselecciona
preselecciona1 : CarVaritaFrutal;
preselecciona2 : PreselVaritaKIM
end
Especificación IV.5. Definición del conjunto de variantes compuestas VaritaKIM
La Especificación IV.6 muestra la definición de la instancia modVaritaKIM, la cual
define los cambios que se aplican a la estructura CarameloFrutalEnvSTR, a saber: Ca2R03,
Ca2R04 y ElR05.
En la Figura IV.8 se presentan las relaciones afectadas por los cambios
mencionados y los valores de los atributos parte y quantityPer, que indican cuál es la familia
que forma parte de la estructura y en qué cantidad participa. En particular, se observan las
relaciones R03, R04 y R05 que se asocian con las familias PapelEnvoltorio,
CarameloFrutalDes y PapelSeparador, respectivamente, con las siguientes cantidades de
141
________________________________________________________ Modelo de Productos. Aplicaciones
composición: 30.87 GR, 930.233 GR y 33 GR. Por otra parte, la figura revela que los
cambios parciales Ca2R03 y Ca2R04 indican la modificación de las relaciones
correspondientes al CarameloFrutalDes (R04) y al PapelEnvoltorio (R03), respectivamente.
Por su parte, el tercer cambio aplicado, ElR05, indica la eliminación del PapelSeparador de
la estructura. Dichos cambios son introducidos en la Especificación IV.7.
Individual modVaritaKIM in Modificacion with
attribute,cambioAplicado
cambioAplicado : Ca2R03;
cambioAplicado2 : Ca2R04;
cambioAplicado3 : ElR05
end
Especificación IV.6. Cambios asociados a la modificación modVaritaKIM
Individual Ca2R03 in CambioQP with
attribute,relacionModificada
relacionModificada : R03
attribute,newQP
newQP : 42GR
end
Individual 42GR in ValorUnidad with
attribute,valor
valor : 42.0
attribute,udeM
udeM : GR
end
Individual ElR05 in Eliminacion with
attribute,relacionModificada
relacionModificada : R05
end
Individual Ca2R04 in CambioQP with
attribute,relacionModificada
relacionModificada : R04
attribute,newQP
newQP : 958GR
end
Individual 958GR in ValorUnidad with
attribute,valor
valor : 958.0
attribute,udeM
udeM : GR
end
Especificación IV.7. Definición de los cambios Ca2R03, Ca2R04 y ElR05
Los cambios en el atributo quantityPer de las relaciones R03 y R04 están indicados
por Ca2R03 y Ca2R04, respectivamente. Ambos, se vinculan con instancias de la clase
ValorUnidad que representan los nuevos valores del atributo quantityPer de las relaciones
modificadas. Como lo señala la Especificación IV.7, el cambio Ca2R03 es una instancia de
la clase CambioC que modifica la relación R03, según lo indica el valor del atributo
relacionModificada. En particular, altera el atributo quantityPer de dicha relación mediante el
valor indicado por la propiedad newQP del cambio en cuestión. De manera similar, en dicha
especificación, puede observarse que el cambio Ca2R04 modifica la relación R04, indicando
como nuevo valor del atributo quantityPer, 958GR y, finalmente, que ElR05 es una instancia
de Eliminación que especifica que la relación R05 (relacionModificada) debe ser eliminada
de la estructura.
La Figura IV.9 muestra el resultado de la vista denominada estructuraVaritaKIM, la
cual es una especialización de la vista arbolEstructuraCV presentada en la Especificación
142
________________________________________________________ Modelo de Productos. Aplicaciones
III.42, que restringe los resultados de la vista para obtener sólo la estructura que
corresponde al conjunto de variantes VaritaKIM. En la misma se observan las dos relaciones
que no han sido eliminadas (R03 y R04), con los nuevos valores para los correspondientes
atributos quantityPer, indicados por el atributo newQP.
Figura IV.9. Resultado de la vista estructuraVaritaKIM
En el diagrama de la Figura IV.8 se incluye al conjunto de variantes denominado
BolsínFrutalROC, cuya definición se muestra en la Especificación IV.8. Este conjunto se
deriva de la estructura CarameloFrutalEnvSTR y, como ya se adelantara, no es necesario
aplicar modificaciones a dicha estructura para especificar este conjunto de variantes.
Finalmente, también pueden apreciarse los tres valores que adopta el atributo
preselecciona.
Individual BolsinFrutalROC in ConjuntodeVariantesC with
attribute,miembroDe
miembroDe : CarameloFrutalEnv
attribute,derivaDe
derivaDe : CarameloFrutlEnvSTR
attribute,preselecciona
preselecciona : PapelEnvRoc;
preselecciona2 : PapelSepRoc;
preselecciona3 : CarFrutal
end
Especificación IV.8. Definición de BolsínFrutalROC
La Figura IV.10 presenta el resultado de la vista estructuraBolsínROC que, al igual
que la vista presentada para VaritaKIM, es una especialización de arbolEstructuraCV
143
________________________________________________________ Modelo de Productos. Aplicaciones
(Especificación III.42), que permite ver sólo la estructura del conjunto de variantes
BolsínROC. Pueden observarse las relaciones que participan en la estructura de dicho
conjunto, indicándose las familias componentes y sus cantidades de composición.
Figura IV.10. Resultado de la vista estructuraBolsínROC
Las familias que son componentes directos de CarameloFrutalEnv y aquéllas que
persisten en la estructura de dicha familia, luego de aplicar las modificaciones indicadas por
los conjuntos de variantes recientemente introducidos, se muestran en la Figura IV.11. Las
familias que permanecen en la estructura vinculada a una variante, luego de aplicar las
correspondientes modificaciones, se infieren como valor del atributo familiaComponente de
la clase ConjuntodeVariantesC. A partir de la Figura IV.11 es posible notar que mientras que
para VaritaKIM sólo se mantienen dos componentes (PapelEnvoltorio y CarameloFrutalDes),
para BolsínFrutalROC, sus tres componentes coinciden completamente con los de la familia
de la que es miembro dicho conjunto de variantes.
Otro tipo de variación que puede ocurrir a nivel de un conjunto de variantes
compuestas, como se indicó en el Capítulo III, corresponde a la preselección de conjuntos
de variantes para los componentes de la estructura de dicho conjunto.
Las preselecciones realizadas a nivel de los dos conjuntos de variantes antes
introducidos, se muestran en las Especificaciones IV.5 y IV.8, donde se definen VaritaKIM y
BolsínFrutalROC, respectivamente.
144
________________________________________________________ Modelo de Productos. Aplicaciones
Figura IV.11. Familias componentes de BolsínFrutalROC y VaritaKIM
En
la
Especificación
IV.5,
el
atributo
preselecciona
posee
dos
valores:
CarVaritaFrutal y PreselEnvVaritaKIM, que representan, respectivamente, la selección del
caramelo desenvuelto y del papel envoltorio, que corresponden a un caramelo envuelto
frutal de marca KIM. En particular, se selecciona el conjunto de variantes compuestas
denominado VaritaFrutal para el caramelo desenvuelto y el conjunto de variantes simples
identificado como EnvVaritaKIM para el papel envoltorio, según lo muestra la Especificación
IV.9.
Individual CarVaritaFrutal in Preseleccion with
ConjuntoSeleccionado ConjuntoSeleccionado: VaritaFrutal
end
Individual PreselVaritaKIM in Preseleccion with
ConjuntoSeleccionado ConjuntoSeleccionado: EnvVaritaKIM
end
Especificación IV.9. Preselecciones definidas para el conjunto de variantes
VaritaKIM
Por otra parte, como lo indica la Especificación IV.10, se asocian al conjunto de
variantes BolsínFrutalROC tres preselecciones, a saber: CarFrutal, para el caramelo
desenvuelto, PapeEnvROC para el papel envoltorio y PapelSepROC para el papel
separador.
En la Figura IV.12 se muestran cuáles son los conjuntos seleccionados a nivel de
cada uno de los conjuntos de variantes presentados, BolsínFrutalROC y VaritaKIM. Es
posible observar en dicha figura que este último sólo posee preselecciones para el caramelo
desenvuelto (CarVaritaFrutal) y para el papel envoltorio (PreselVaritaKIM) ya que, como se
mencionó antes, este conjunto de variantes elimina el papel separador de la estructura. En
cambio, el conjunto de variantes BolsínFrutalROC se vincula con la preselección de
145
________________________________________________________ Modelo de Productos. Aplicaciones
conjuntos de variantes para el caramelo desenvuelto (CarFrutal), el papel envoltorio
(PapelEnvROC) y el papel separador (PapelSepROC).
Individual PapelEnvRoc in Preseleccion with
ConjuntoSeleccionado ConjuntoSeleccionado: EnvBolsinFrutalROC
end
Individual PapelSepRoc in Preseleccion with
ConjuntoSeleccionado ConjuntoSeleccionado: PapelSepROC1
end
Individual CarFrutal in Preseleccion with
ConjuntoSeleccionado ConjuntoSeleccionado: OvaloFrutal
end
Especificación IV.10. Preselecciones definidas para el conjunto de variantes
BolsinFrutalROC
Figura IV.12. Ejemplo de preselección de conjuntos de variantes
Sin bien, en los casos ya presentados, se selecciona un único conjunto de variantes
para cada uno de los componentes, esto no necesariamente debe ser siempre así. De
hecho, es posible preseleccionar más de un conjunto de variantes para una determinada
familia componente.
La figura IV.12 introduce también las familias de las que son miembros los distintos
conjuntos preseleccionados. En particular, se muestra a PapelSepRoc1 como miembro de la
familia PapelSeparador, a EnvBolsínFrutalROC y a EnvVaritaKIM como miembros de
PapelEnvoltorio así como a OvaloFrutal y VaritaFruta, identificadas como miembros de la
FamiliaC, denominada CarameloFrutalDes. Además, para las preselecciones PapelSepRoc
y PapelEnvRoc, se presenta el atributo componenteAfectado. El arco que representa este
146
________________________________________________________ Modelo de Productos. Aplicaciones
atributo aparece con línea punteada, indicando que dicho atributo es calculado a través de
alguna regla de inferencia. En este caso, la regla en cuestión es componenteAfectadoRule,
que se define en la clase Preselección y que fuera introducida en la Especificación III.35.
A continuación se presenta la manera en que afectan las preselecciones definidas
para el conjunto de variantes compuestas BolsínFrutalROC, a los miembros de las familias
componentes de la estructura base de dicho conjunto de variantes. La Figura IV.13 muestra
los componentes directos (atributo componenteDirecto definido en la Especificación III.14)
de la estructura correspondiente a la familia CarameloFrutalEnv, indicando para cada uno de
ellos, los conjuntos de variantes que son miembros de éstos. En particular, se puede
observar que:
la familia simple PapelEnvoltorio, tiene como miembros a los conjuntos de
variantes simples EnvVaritaKIM, EnvBolsínFrutalROC, EnvBolsínFrutalKIM,
EnvVaritaROC, entre otros;
la familia simple PapelSeparador tiene como miembros a los conjuntos de
variantes simples PapelSepROC1, PapelSepROC2; PapelSepOro; y
la familia compuesta CarameloFrutalDes posee cuatro conjuntos de variantes
compuestas: OvaloFrutal, VaritaFrutal, FrutalK y FrutalS.
Figura IV.13. Aplicación de las preselecciones de BolsínFrutalROC
En la Figura IV.13 se representa que el conjunto de variantes BolsínFrutalROC,
infiere como componentes directos solamente a algunos de los conjuntos de variantes
miembros de los componentes directos de la estructura de la cual se deriva
BolsínFrutalROC. Esto puede observarse también en la Especificación IV.11, donde se
exponen los resultados de la vista PreseleccionesRealizadas, que se encuentra definida en
la Especificación A.15 del Apéndice A, para el conjunto de variantes BolsínFrutalROC.
147
________________________________________________________ Modelo de Productos. Aplicaciones
Dicha especificación muestra cómo al aplicar las preselecciones definidas por las
instancias de la clase Preselección, CarOvaloFrutal, SelEnvBolsínROC y SelSepBolsínROC,
asociadas al conjunto de variantes compuestas BolsínFrutalROC, los miembros de las
distintas familias componentes de la estructura, quedan restringidos. Esta limitación implica
que, al momento de derivar una estructura particular para un miembro del conjunto de
variantes BolsínFrutalROC, deberá seleccionarse:
un papel envoltorio que sea miembro del conjunto de variantes simples
EnvBolsínFrutalROC;
un
papel
separador,
miembro
del
conjunto
de
variantes
simples
PapelSepROC; y
un caramelo desenvuelto, miembro del conjunto de variantes compuestas
OvaloFrutal.
BolsinFrutalROC in PreseleccionesRealizadas with
unReq
COMPUTED_unReq_id_3202 : R03[BolsinFrutalROC/this_par] with parte
parte : PapelEnvoltorio[BolsinFrutalROC/this_par] with miembros
COMPUTED_miembros_id_4437:EnvBolsinFrutalROC[BolsinFrutalROC/this_par]
end
end
end ;
COMPUTED_unReq_id_3205 : R04[BolsinFrutalROC/this_par] with parte
parte : CarameloFrutalDes[BolsinFrutalROC/this_par] with
miembros
COMPUTED_miembros_id_4465 : OvaloFrutal[BolsinFrutalROC/this_par]
end
end
end ;
COMPUTED_unReq_id_3208 : R05[BolsinFrutalROC/this_par] with parte
parte : PapelSeparador[BolsinFrutalROC/this_par] with miembros
COMPUTED_miembros_id_4419 : PapelSepROC1[BolsinFrutalROC/this_par]
end
end
end
end
Especificación IV.11. Preselecciones definidas en BolsínFrutalROC
Por otra parte, con una simple modificación a la restricción de la vista
PreseleccionesRealizadas es posible inferir los conjuntos de variantes que pueden
seleccionarse para los componentes de VaritaKIM. Este resultado se presenta en la
Especificación IV.12. Es importante mencionar que para este conjunto, sólo se realizan
preselecciones para los componentes que quedan en la estructura después de aplicar los
cambios indicados por la modificación especificada en VaritaKIM.
148
________________________________________________________ Modelo de Productos. Aplicaciones
VaritaKIM in PreseleccionesRealizadas with
unReq
COMPUTED_unReq_id_3202 : R03[VaritaKIM/this_par] with parte
parte : PapelEnvoltorio[VaritaKIM/this_par] with miembros
COMPUTED_miembros_id_4433 : EnvVaritaKIM[VaritaKIM/this_par] end
end
end ;
COMPUTED_unReq_id_3205 : R04[VaritaKIM/this_par] with parte
parte : CarameloFrutalDes[VaritaKIM/this_par] with miembros
COMPUTED_miembros_id_4508 : VaritaFrutal[VaritaKIM/this_par] end
end
end
end
Especificación IV.12. Preselecciones definidas en VaritaKIM
IV.2.3. Especificación y gestión de productos
La Figura IV.1 muestra, parcialmente, la jerarquía de abstracción de la FamiliaC
denominada CarameloFrutalEnv. En el nivel más bajo de dicha jerarquía aparecen los
siguientes productos compuestos, que corresponden a productos con existencia física.
(VaritaKIMPeraEnv),
SE508246
(VaritaKIMFrutillaEnv),
SE508247
SE508207
SE508219
(VaritaKIMDamascoEnv),
(VaritaKIMPomeloEnv)
y
SE508253 (VaritaKIMLimaEnv), que son miembros del conjunto de variantes
denominado VaritaKIM
SE511710 (PeraKIM5GREnv), SE511713 (CerezaKIM5GREnv), SE511714
(FrutillaKIM5GREnv),
(LimaKIM5GREnv),
SE511711
que
son
(PomeloKIM5GREnv)
miembros
del
conjunto
y
de
SE511712
variantes
BolsínFrutalKIM
Por su parte, la Figura IV.2 muestra ejemplos de productos simples, dentro de la
jerarquía de abstracción de la FamiliaS denominada PapelEnvoltorio. Es posible observar en
dicha figura, los siguientes productos simples:
ME308398
(EnvVaritaKIMPomelo),
ME308409
(EnvVaritaKIMLima),
ME308386 (EnvVaritaKIMFrutilla), ME308351 (EnvVaritaKIMDamasco) y
ME308340 (EnvVaritaKIMPera), que son miembros del conjunto de variantes
EnvVaritaKIM
ME113310
(EnvBolsínROCLima),
ME113309
(EnvBolsínROCPomelo),
ME113307 (EnvBolsínROCFrutilla), ME113311 (EnvBolsínROCCereza) y
ME113308 (EnvBolsínROCPera), que son miembros del conjunto de
variantes EnvBolsínFrutalKIM.
149
________________________________________________________ Modelo de Productos. Aplicaciones
De todos los productos mencionados, se tomará SE508219 (VaritaKIMFrutillaEnv),
con el fin de mostrar cómo se aplica el modelo propuesto en la definición de dicho producto,
la cual se muestra en la Especificación IV.13. Puede observarse que el producto en cuestión
es miembro del conjunto de variantes referido como VaritaKIM. Éste, como se mostró en las
Figuras IV.9 y IV.10, tiene en su estructura dos componentes, el papel separador y el
caramelo desenvuelto. Para cada uno de ellos, al definir SE508219 (VaritaKIMFrutillaEnv)
es necesario seleccionar un producto miembro. Estas selecciones se registran en los
atributos selecciona1 y selecciona2, cuyos valores se definen en la Especificación IV.13.
Individual SE508219 in ProductoC with
descripcion descripcion: "Varita KIM Frutilla*Env"
miembroDe miembroDe: VaritaKIM
seleccionar
selecciona1: selCarVarita;
selecciona2: selEnvVaritaKIM
end
Individual selCarVarita in Seleccion with
productoElegido productoElegido:SE408193
end
Individual selEnvVaritaKIM in Seleccion with
productoElegido productoElegido:ME308386
end
Especificación IV.13. Definición de la instancia de ProductoC denominada
SE508219 (VaritaKIMFrutillaEnv)
A continuación se presenta la Figura IV.14, cuyo objetivo es mostrar cómo los
productos que son seleccionados por un determinado ProductoC son miembros de algún
conjunto
de
variantes,
que
ha
sido
previamente
preseleccionado
por
el
ConjuntodeVariantesC del que dicho producto es miembro. En la figura, puede observarse
que SE508219 (VaritaKIMFrutillaEnv), es miembro del conjunto de variantes compuestas
VaritaKIM, el cual, a su vez, es miembro de la FamiliaC denominada CarameloFrutalEnv
(Figura
IV.12).
Además,
VaritaKIM
incluye
las
preselecciones
CarVaritaFrutal
y
PreselEnvVaritaKIM, para sus dos familias componentes, las cuales se muestran en dicha
figura. La primera indica que debe seleccionarse un miembro del conjunto de variantes
VaritaFrutal (perteneciente a la familia CarameloFrutalDes, según lo indica la Figura IV.13).
En tanto, la segunda preselección, restringe al conjunto de variantes denominado
EnvVaritaKIM, las opciones para el PapelEnvoltorio. Los productos que son miembros de
estos dos últimos conjuntos de variantes, son mostrados en la figura vinculados por la
relación miembros.
Finalmente, la Figura IV.14 presenta las selecciones hechas para el ProductoC
denominado SE508219 (VaritaKIMFrutillaEnv), indicadas allí por las relaciones etiquetadas
150
________________________________________________________ Modelo de Productos. Aplicaciones
con el rótulo selecciona. En particular se eligen, los productos SE408193 (VaritaFrutillaDes)
y ME308386 (EnvVaritaKIMFrutilla), para el caramelo desenvuelto y el papel envoltorio,
respectivamente.
Como se explicó en el capítulo previo, una forma de garantizar que las estructuras de
productos que se especifican sean correctas, es mediante la definición de restricciones entre
distintas abstracciones de productos. Algunas de las restricciones que se establecieron para
este caso de estudio se presentan a continuación en las Figuras IV.15 a IV.17.
miembros: relación inversa de miembroDe
Figura IV.14. Definición de Productos en el caso de estudio de la planta de golosinas
En la Figura IV.15 se observa una restricción que especifica que, en el nivel Familia,
un PapelEnvoltorio debe estar siempre incluido en una estructura en la que un
PapelSeparador esté presente. Sin embargo, en este caso de estudio una restricción del
mismo tipo no es válida en la dirección opuesta; es decir, cuando un PapelEnvoltorio esté
presente en una estructura no es necesario que exista obligatoriamente un PapelSeparador.
La definición en O-Telos de esta restricción se muestra en la Especificación IV.14.
Figura IV.15. Restricción de obligatoriedad que se aplica a PapelSeparador
151
________________________________________________________ Modelo de Productos. Aplicaciones
En el nivel ConjuntodeVariantes, un OvaloFrutal (el caramelo desenvuelto que se
utiliza para los caramelos BolsínFrutalROCEnv, entre otros) nunca puede estar acompañado
de un papel envoltorio EnvVaritaKIM (conjunto de variantes que agrupa los envoltorios de
caramelos tipo VaritaKIM). La definición de esta restricción se presenta en la Especificación
IV.15 y gráficamente en la Figura IV.16.
Individual rincompatible in RIncompatible end
Individual robligatoria in RObligatoria end
PapelSeparador in FamiliaS with
restringeA restringeA: PS_PE
end
Individual PS_PE in RestriccionF with
tipoRestriccion tipoRestriccion : obligatoria
restringe restringeA :PapelEnvoltorio
end
Especificación
PapelSeparador
IV.14.
Restricción
de
obligatoriedad
correspondiente
a
Figura IV.16. Definición de una restricción de incompatibilidad aplicable a OvaloFrutal
Individual OvaloFrutal with
restringeA restringeA: OF_EVK
end
Individual OF_EVK in RestriccionCV
with tipoRestriccion
tipoRestriccion : rincompatible
restringe restringe: EnvVaritaKIM
end
Especificación IV.15. Restricción de incompatibilidad en Ovalo Frutal
Finalmente, en la Figura IV.17 puede observarse que en el último nivel, el ProductoC
denominado SE508219 (VaritaKIMFrutillaEnv) debe estar acompañado por el papel
envoltorio ME308386 (EnvVaritaKIMFrutilla). La correspondiente definición se muestra en la
Especificación IV.16.
152
Individual SE508219 in ProductoC with
restringeA restringeA: CFD_PEF
end
Especificación
SE508219
IV.16.
Restricción
Individual CFD_PEF in RestriccionP with
tipoRestriccion
tipoRestriccion: obligatoria
restringe restringe: ME308386
end
de
obligatoriedad
correspondiente
a
En el Capítulo III, a partir de las especificaciones de las restricciones, se incorporaron
a las clases Familia, ConjuntodeVariantes y Producto, dos atributos que permiten inferir las
instancias del nivel correspondiente, que son incompatibles o que son obligatorias para un
determinado objeto (Especificación III.52). La Figura IV.18, presenta un ejemplo de la
consulta verIncompatibles realizada sobre la clase Familia, la cual permite identificar qué
familias son incompatibles con CarameloFrutalEnv.
Figura IV.17. Restricción de obligatoriedad en SE508219 (VaritaKIMFrutillaEnv)
Figura IV.18. Ejemplo de la consulta VerIncompatibles
153
________________________________________________________ Modelo de Productos. Aplicaciones
IV.3. APLICACIÓN DEL MODELO A PRODUCTOS DE LA INDUSTRIA FRIGORÍFICA
La aplicación del modelo propuesto al caso de estudio tomado de la industria
frigorífica se ha realizado sobre los productos intermedios que participan en la estructura de
los productos finales que se presentaron en la Tabla II.52. Los componentes de dichos
semielaborados se indican en las primeras seis filas de la tabla mencionada. Ellos son:
MP3CarneCocida, MP2CarneCocida, CZACuadrada, MP1CarneCocida, Gelatina y Sal.
Es importante aclarar, que además de la representación de estos productos, se
incorporó a este ejemplo la definición de la familia CuadrilConTapa y sus estructuras de
descomposición, debido a que estas estructuras muestra características que no pudieron ser
ejemplificadas con el caso de estudio previo.
La aplicación del modelo para la representación de los productos semielaborados
antes mencionados da lugar a la definición de dos familias, junto a sus correspondientes
conjuntos de variantes miembros (Figura IV.19). La familia SECarneCocidaPicada posee
dos estructuras, SECCocidaPicadaSTR y SECCocidaPicadaSTR2. A su vez, la familia
SECarneCocidaCongelada
presenta
también
dos
estructuras,
SECarneCocIda
CongeladaSTR y CarneCocidaCongeladaSTR2, las cuales se muestran en la Figura IV.19.
En esta figura se introdujeron también los conjuntos de variantes que son miembros de cada
una de las familias mencionadas, indicándose la estructura de la que deriva cada uno de
estos conjuntos (relación derivaDe).
Figura IV.19. Familias de productos intermedios de la industria cárnica, sus
estructuras y sus miembros
La Tabla IV.2 presenta la jerarquía de abstracción completa para las familias de
semielaborados que se muestran en la Figura IV.19. Para cada familia de carnes cocidas se
muestran los conjuntos de variantes asociados, y para cada uno de éstos, se listan los
productos concretos que ellos comprenden.
154
________________________________________________________ Modelo de Productos. Aplicaciones
Tabla IV.2. Jerarquías de abstracción correspondientes a dos familias de
carnes cocidas
Familia
Conjunto de Variantes
Producto
SE_CCCCub1
SECarneCocidaCub
SE_CCCCub2
SE_CCCCub4
SE_CCCCub3
SECarneCocidaSaz
SE_CCCCub5
SECarneCocidaCongelada
SE_CCCCub6
SECarneCocidaCubMix
SE_CCCCub7
SE_CCCReb1
SE_CCCReb2
SECarneCocidaReb
SE_CCCReb3
SE_CCCReb4
SE_FPB1
SECCPicada1
SE_FPB2
SE_FPB3
SECarneCocidaPicada
SE_FPBCva
SECCPicada2
SE_FPD2
SE_FPD1
De todos los semielaborados introducidos en esta sección, se tomará para
ejemplificar la aplicación del modelo a la familia SECarneCocidaCongelada. La
Especificación IV.17 presenta la definición de dicha familia en lenguaje O-Telos,
estableciéndose que la misma posee dos estructuras, SECarneCocIdaCongeladaSTR y
SECarneCocidaCongeladaSTR2. Estas estructuras se analizarán en los siguientes párrafos.
Individual SECarneCocidaCongelada in FamiliaC with
estructuraDe estructuraDe: SECarneCocidaCongeladaSTR;
estructuraDe2: SECarneCocidaCongeladaSTR2
end
Especificación IV.17. Definición de la familia SECarneCocidaCongelada
155
________________________________________________________ Modelo de Productos. Aplicaciones
En la Especificación IV.18 se indica que SECarneCocidaCongeladaSTR es una
estructura de composición (EstructuraC) que se conforma a partir de cuatro relaciones,
R12f, R13f, R14fa y R14fb, las cuales se esquematizan en la Figura IV.20 y se definen en la
Especificación IV.19.
Individual SECarneCocidaCongeladaSTR in EstructuraC with
conformadoPor conformadoPor: R12f;
conformadoPor2: R13f;
conformadoPor3: R14fa;
conformadoPor4: R14fb
end
Especificación IV.18. Definición de la estructura SECarneCocidaCongeladaSTR
Figura IV.20. Estructura SECarneCocidaCongeladaSTR
En la Figura IV.20 puede observarse que las familias MP2CarneCocida,
MP3CarneCocida, Sal y Gelatina, se corresponden con los valores de los atributos parte de
las relaciones mencionadas. De igual manera, 1754KG, 15KG y 12KG corresponden a los
valores de los atributos quantityPer. Cabe aclarar que se indican sólo tres instancias de la
clase ValorRestringido debido a que las relaciones R14fa y R14fb utilizan la misma
instancia. La definición formal de estas relaciones se muestra en la Especificación IV.19,
donde es posible observar que ha sido necesario recurrir a todos los tipos de relaciones
propuestas (obligatoria, optativa y selectiva).
Individual R12f in RelacionC with
parte parte: Gelatina
quantityPer quantityPer: 12KG
tipoRelacion tipoRelacion: obligatoria
end
Individual R13f in RelacionC with
parte parte: Sal
quantityPer quantityPer: 15KG
tipoRelacion tipoRelacion: optativa
end
Individual R14fa in RelacionC with
parte parte: MP3CarneCocida
quantityPer quantityPer: 1754KG
tipoRelacion tipoRelacion: selectiva
end
Individual R14fb in RelacionC with
parte parte: MP2CarneCocida
quantityPer quantityPer: 1754KG
156
________________________________________________________ Modelo de Productos. Aplicaciones
tipoRelacion tipoRelacion: selectiva
end
Especificación IV.19. Relaciones que conforman SECarneCocidaCongeladaSTR
En la Especificación IV.19 se indica que R12f es una relación obligatoria y que R13f
es optativa, siendo éstos dos tipos de relaciones ya presentados en la sección previa. Las
otras dos relaciones (R14fa y R14fb) son selectivas, lo cual implica que sólo una de ellas
debe estar presente en la estructura final. Sin tener en cuenta las modificaciones que
pueden efectuarse al momento de definir los conjuntos de variantes asociados a esta
familia, pueden derivarse al menos dos estructuras, a saber:
una compuesta de:
o
12 KG de Gelatina (R12f),
o
15 KG de Sal (R13f) y
o
1754 KG de MP3CarneCocida (R14fa);
otra conformada por
o
12 KG de Gelatina (R12f),
o
15 KG de Sal (R13f) y
o
1754 KG de MP2CarneCocida (R14fb).
La segunda estructura, denominada SECarneCocidaCongeladaSTR2 (Especificación
IV.20), incluye tres relaciones, R145f, 146f y 147f. Éstas indican que se necesitan 1202.7
KG de MP3CarneCocida, 515 KG de MP1CarneCocidaCongelada, y 12 KG de Gelatina. Por
otra parte, estas tres relaciones son de tipo obligatoria (atributo tipoRelacion). En
consecuencia, no podrán ser eliminadas de la estructura al definir algún conjunto de
variantes que se derive de SECarneCocidaCongeladaSTR2.
Individual SECarneCocidaCongeladaSTR2 in
EstructuraC with
conformadoPor conformadoPor: R145f;
conformadoPor2: R146f;
conformadoPor3: R147f
end
Individual R146f in RelacionC with
parte parte: MP1CarneCocida
quantityPer quantityPer: 515KG
tipoRelacion tipoRelacion: obligatoria
end
Individual R145f in RelacionC with
parte parte: MP3CarneCocida
quantityPer quantityPer: 1202_7KG
tipoRelacion tipoRelacion: obligatoria
end
Individual R147f in RelacionC with
parte parte: Gelatina
quantityPer quantityPer: 12KG
tipoRelacion tipoRelacion: obligatoria
end
Especificación IV.20. Definición de SECarneCocidaCongeladaSTR2
En la Figura IV.21 se presenta el resultado de la consulta InfoSECarne
CocidaCongelada, la cual muestra los valores de los atributos esEnsamblado, estructuraDe
157
________________________________________________________ Modelo de Productos. Aplicaciones
y estructuraRequerida para la familia SECarneCocidaCongelada. Los valores que
corresponden al primero y al último de estos atributos son inferidos mediante las reglas
definidas en las Especificaciones III.16 y III.23, respectivamente.
Debe notarse que los atributos estructuraDe y estructuraRequerida que aparecen en
la consulta poseen los mismos valores. Esto se debe a que se trata de una familia que se
obtiene a través de una estructura de composición (condición que se observa en el valor del
atributo esEnsamblado, que para este caso es TRUE). Esta característica implica que los
requerimientos que deduce la vista RequerimientosFamilia (Especificación III.22) para esta
familia coinciden con las relaciones de sus estructuras (Especificaciones IV.18 y IV.20).
Figura IV.21. Resultado de la consulta InfoCarneCocidaCongelada
En las dos estructuras de SECarneCocidaCongelada que se presentaron intervienen
como componentes las familias MP1CarneCocida, MP2CarneCocida y MP3CarneCocida,
los cuales representan derivados de cortes cárnicos y, por lo tanto, provienen de alguna
estructura de descomposición. Más aún, pueden provenir alternativamente de más de una
estructura como lo muestra la Especificación IV.21. En ella, se puede observar el resultado
de la vista RequerimientosFamilia (Especificación III.22) para la familia MP2CarneCocida.
La Especificación IV.21 indica que MP2CarneCocida puede obtenerse de NalgaAdentroCT,
de TapaCuadril, o de CuadrilConTapa.
La vista RequerimientosFamilias permite inferir, a partir de la información completa
del ejemplo cargada en una base ConceptBase, que para obtener la familia
MP2CarneCocida se requieren alternativamente tres familias: NalgaAdentroCT, TapaCuadril
158
________________________________________________________ Modelo de Productos. Aplicaciones
o CuadrilConTapa. Estas familias se infieren como requerimientos de MP2CarneCocida a
través de distintas relaciones, pertenecientes a estructuras de descomposición, según lo
indicado en la Tabla IV.3.
Tabla IV.3. Familias de las cuales se puede obtener MP2CarneCocida
Familia Requerida
Relación
Requerida
Estructura requerida
NalgaAdentroCT
R40f
NalgaAdentroCTSTR1
TapaCuadril
R51f
TapaCuadrilSTR2
CuadrilConTapa
R07f
CuadrilConTapaSTR3
MP2CarneCocida in RequerimientosFamilia with
requerimientos
COMPUTED_requerimientos_id_3295: NalgaAdentroCTSTR1[MP2CarneCocida/this_par] with
unReq
COMPUTED_unReq_id_3305 : R40f with
cantReq
cantReq : 1UNID
requerimiento
COMPUTED_requerimiento_id_3077 : NalgaAdentroCT
tipoRelacion
tipoRelacion : obligatoria
end
end ;
COMPUTED_requerimientos_id_3465 : TapaCuadrilSTR2[MP2CarneCocida/this_par] with
unReq
COMPUTED_unReq_id_3522 : R51f with
cantReq
cantReq : 1UNID
requerimiento
COMPUTED_requerimiento_id_3025 : TapaCuadril
tipoRelacion
tipoRelacion : obligatoria
end
end ;
COMPUTED_requerimientos_id_3645 : CuadrilConTapaSTR3[MP2CarneCocida/this_par] with
unReq
COMPUTED_unReq_id_3652 : R07f with
cantReq
cantReq : 1UNID
requerimiento
COMPUTED_requerimiento_id_3075 : CuadrilConTapa
tipoRelacion
tipoRelacion : obligatoria
end
end
end
Especificación IV.21. Resultados parciales de la vista RequerimientosFamilia
correspondientes a MP2CarneCocida
159
________________________________________________________ Modelo de Productos. Aplicaciones
En todos los casos la cantidad requerida (cantReq) es 1 unidad (1UNID). El valor de
los atributos cantReq y requerimiento se infieren por las reglas de la clase RelacionD que se
indicaron en la Especificación III.19. Como se muestra en la Especificación IV.21,
MP2CarneCocida puede ser obtenida a partir de una de las estructuras de descomposición
de la familia CuadrilConTapa (la estructura CuadrilConTapaSTR3). La definición que fuera
realizada para dicha familia se presenta en la Especificación IV.22 junto a las instancias
correspondientes a sus estructuras de descomposición, a saber: CuadrilConTapaSTR1,
CuadrilConTapaSTR2, CuadrilConTapaSTR3. Estas estructuras representan estructuras
alternativas de descomposición de la familia CuadrilConTapa.
Individual CuadrilConTapaSTR1 in EstructuraD end
Individual CuadrilConTapaSTR2 in EstructuraD end
Individual CuadrilConTapaSTR3 in EstructuraD end
Individual CuadrilConTapa in FamiliaC with
attribute,estructuraDe
estructuraDe : CuadrilConTapaSTR1;
estructuraDe2 : CuadrilConTapaSTR2;
estructuraDe3 : CuadrilConTapaSTR3
end
Especificación IV.22. Definición de la familia CuadrilConTapa y sus estructuras
El modelo propuesto permite inferir para una determinada familia cuáles son sus
estructuras alternativas. Para ello utiliza el atributo estAlternativa y la regla estAltRule
mediante la cual se deducen sus valores (Especificación III.5). La Figura IV.22 presenta el
resultado de ejecutar la consulta VerSTRalternativas. Esta consulta, al ser ejecutada
muestra, entre otros valores del mencionado atributo, los correspondientes a las estructuras
de la familia CuadrilConTapa.
160
________________________________________________________ Modelo de Productos. Aplicaciones
Figura IV.22. Ejemplo de aplicación de la consulta VerSTRalternativas
Por su parte, la Especificación IV.23 presenta la definición de CuadrilConTapaSTR3,
una de las estructuras de la familia CuadrilConTapa, la cual cuenta con cinco relaciones de
descomposición (RelacionD), identificadas como R06f, R07f, R08f, R09f y R10f. La
estructura también define como valor del atributo requiere a la instancia de ValorRestringido
denominada 1UNID. Este atributo indica que para poder obtener los derivados definidos por
las relaciones que conforman CuadrilConTapaSTR3 se necesita 1 unidad de la familia
CuadrilConTapa, a la cual pertenece dicha estructura.
Individual
Individual
Individual
Individual
Individual
R06f
R07f
R08f
R09f
R10f
in
in
in
in
in
RelacionD
RelacionD
RelacionD
RelacionD
RelacionD
end
end
end
end
end
Individual 1UNID in ValorRestringido end
CuadrilConTapaSTR3 in EstructuraD with
conformadoPor conformadoPor1: R06f;
conformadoPor2: R07f;
conformadoPor3: R08f;
conformadoPor4: R09f;
conformadoPor5: R10f
requiere requiere : 1UNID
end
Especificación IV.23. Definición de la estructura CuadrilConTapaSTR3
La definición de estas relaciones puede recuperarse a partir de la vista
VerEstructuraFlia2 que se muestra en la Especificación IV.24. En ésta se observa que
mediante la estructura CuadrilConTapaSTR3 (la cual es una de las estructuras de
descomposición de CuadrilConTapa) es posible obtener las familias CuadrilCTExportación,
MP2CarneCocida, MP1CarneCocida, Grasa y NerviosYPellejos, con factores de producción
161
________________________________________________________ Modelo de Productos. Aplicaciones
de 3.13, 0.13, 0.16, 0.62 y 0.06, respectivamente. Todas estas relaciones son del tipo
obligatoria.
CuadrilConTapaSTR3 in VerEstructuraFlia2
with
conformadoPor
COMPUTED_conformadoPor_id_3649:R06f with
cantidad
COMPUTED_cantidad_id_3669:3_13%
parte
parte : CuadrilCTExportacion
tipoRelacion
tipoRelacion : obligatoria
end ;
COMPUTED_conformadoPor_id_3652:R07f with
cantidad
COMPUTED_cantidad_id_3681:0_13%
parte
parte : MP2CarneCocida
tipoRelacion
tipoRelacion : obligatoria
end ;
COMPUTED_conformadoPor_id_3655:R08f with
cantidad
COMPUTED_cantidad_id_3693:0_16%
parte
parte : MP1CarneCocida
tipoRelacion
tipoRelacion : obligatoria
end ;
COMPUTED_conformadoPor_id_3658:R09f with
cantidad
COMPUTED_cantidad_id_3705:0_62%
parte
parte : Grasa
tipoRelacion
tipoRelacion : obligatoria
end ;
COMPUTED_conformadoPor_id_3661:R10f with
cantidad
COMPUTED_cantidad_id_3717:0_06%
parte
parte : NerviosYPellejos
tipoRelacion
tipoRelacion : obligatoria
end
end
Especificación IV.24. Resultado parcial de la vista VerEstructuraFlia2
En la Figura IV.23 se presenta el resultado de la consulta InfoCuadrilConTapa, la
cual permite rescatar información vinculada a la familia CuadrilConTapa. Pueden apreciarse
las estructuras de descomposición alternativas asociadas, así como la estructura de
descomposición (CuartoTraseroSTR) de la cual se deriva CuadrilConTapa.
162
________________________________________________________ Modelo de Productos. Aplicaciones
Figura IV.23. Resultado de efectuar la consulta InfoCuadrilConTapa
En este caso es importante notar que a diferencia de lo mostrado por la Figura IV.21,
los valores de los atributos estructuraRequerida y estructuraDe no coinciden. Para el primer
atributo se tiene como valor a la estructura CuartoTraseroSTR; mientras que en el otro caso
se
tienen
tres
valores
CuadrilConTapaSTR3.
asociados,
Esto
se
debe
CuadrilConTapaSTR1,
a
que
CuadrilConTapaSTR2
CuadrilConTapa
se
obtiene
de
y
la
descomposición de CuartoTrasero, a través de la estructura CuartoTraseroSTR, y que
CuadrilConTapa
se
puede
descomponer
por
medio
de
CuadrilConTapaSTR1,
CuadriConTapaSTR2 y CuadrilConTapaSTR3. En consecuencia, los requerimientos que
impone CuadrilConTapa, los cuales son inferidos por la vista RequerimientosFamilia, no
coinciden con las relaciones que conforman sus estructuras. Estos requerimientos se
muestran en la Figura IV.24.
El caso de estudio de la industria frigorífica se caracteriza, además de incluir
productos que poseen estructuras de descomposición, por la existencia de familias con más
de una estructura. Es por ello, que los conjuntos de variantes compuestas que se definan,
en general, se van a derivar de diferentes estructuras. Algunos ejemplos de esta situación
se muestran en la Figura IV.19, en la cual pueden observarse los conjuntos de variantes que
son miembros de la familia SECarneCocidaCongelada, indicándose también cuál es la
estructura de la que se deriva cada uno de estos conjuntos. Asimismo puede apreciarse que
los conjuntos SECarneCocidaCub, SECarneCocidaCubMix y SECarneCocidaSaz se derivan
de una de las estructuras, mientras que SECarneCocidaReb se deriva de la otra.
.
163
________________________________________________________ Modelo de Productos. Aplicaciones
Figura IV.24. Resultado parcial de la vista RequerimientosFamilia aplicada a
CuadrilConTapa
La aplicación de los conceptos propuestos para la definición de conjuntos de
variantes en este caso de estudio no difiere mayormente de lo ya expuesto para el caso
previo. Por esta razón, sólo se presentará en esta sección la definición de uno de los
conjuntos antes mencionados, con el fin de ejemplificar cómo se define la estructura de un
conjunto de variantes cuando dicha estructura posee relaciones selectivas, como es el caso
de la estructura SECarneCocIdaCongeladaSTR. En particular, se eligió exponer el caso del
conjunto de variantes denominado SECarneCocidaReb, el cual, además de los tipos de
cambios ya explicados al describir el caso de estudio previo, incorpora un cambio de tipo
SeleccionFamilia. La definición de dicho conjunto se muestra en la Figura IV.25 y en la
Especificación IV.25.
SECarneCocidaReb in ConjuntoVarianteC
with
attribute,miembroDe
miembroDe : SECarneCocidaCongelada
attribute,derivaDe
derivaDe : SECarneCocidaCongeladaSTR
attribute,modificacionAplicada
modificacionAplicada : m1CCC_Reb
end
Individual m1CCC_Reb in Modificacion
with
attribute,cambioAplicado
cambioAplicado1 : SeR14fam1;
cambioAplicado2 : ElR13fm1;
cambioAplicado3 : Ca2R12fm1
end
Especificación IV.25. Definición del conjunto de variantes SECarneCocidaReb
164
________________________________________________________ Modelo de Productos. Aplicaciones
Figura IV.25. Definición del conjunto de variantes SECarneCocidaReb
Puede observarse que el conjunto de variantes en cuestión se deriva de la estructura
SECarneCocidaCongeladaSTR, pero implica la aplicación de la modificación m1CCC_Reb a
la misma. Esta última introduce tres cambios diferentes para la mencionada estructura:
SeR14fm1, ElR13fm1 y Ca2R12fm1, cuyas definiciones se presentan en la Especificación
IV.26.
Individual SeR14fam1 in SeleccionFamilia
with
attribute,relacionModificada
relacionModificada : R14fa
end
Individual ElR13fm1 in Eliminacion with
attribute,relaciónModificada
relacionModificada : R13f
end
Individual CaR12fm1 in CambioQP with
attribute,relacionModificada
relacionModificada : R12f
attribute,newQP
newQP : 15KG
end
Especificación IV.26. Definición de los cambios que dan lugar a la estructura
asociada a m1CCC_Reb
Los cambios que se realizan son instancias de SelecciónFamilia, Eliminación y
CambioQP. El empleo de los dos últimos ya fue explicado en la sección previa. Con
respecto a la aplicación del cambio de tipo SeleccionFamilia sobre la estructura
SECarneCocIdaCongeladaSTR, en la Figura IV.26 se presenta el resultado de la vista
estructuraSECarneCocidaReb que, de manera similar a las vistas presentadas en las
Figuras IV.9 y IV.11, es una especialización de la vista definida en la Especificación III.42.
165
________________________________________________________ Modelo de Productos. Aplicaciones
Figura IV.26. Resultado de la consulta denominada estructuraSECarneCocidaReb.
En este punto resulta interesante efectuar una comparación entre la estructura
original (ver Especificación IV.18 y Figura IV.20) y la que resulta de aplicar la modificación
m1CCC_reb. Se puede observar que de las cuatro relaciones sólo quedan dos en la
estructura del conjunto de variantes, a pesar que únicamente se aplicó una operación de
Eliminación (ElR13fm1). Esto se debe a que el cambio denominado SeR14fam1, que se
aplica sólo a relaciones de tipo selectivas, representa la elección de una de las relaciones de
ese tipo presentes en la estructura (R14fa y R14fb) y, en consecuencia, implica que la otra
sea eliminada de la misma.
Para este caso particular, en el que existen solamente dos relaciones selectivas, una
representación equivalente a la aplicada (con un cambio de tipo SeleccionFamilia) consiste
en utilizar un cambio de tipo Eliminación que suprima la relación R14fb de la estructura en
lugar de utilizar el cambio SelecciónFamilia. Sin embargo, si se tienen n relaciones
selectivas (n mayor que dos), esta segunda representación requeriría n -1 instancias del tipo
de cambio Eliminación, en tanto la relación que se selecciona no debe eliminarse. De la
manera propuesta, sólo se necesita una instancia de la clase SeleccionFamilia para indicar
cuál es la relación que debe quedar en la estructura, quedando implícitas las n-1
eliminaciones, lo cual es más eficiente.
Es importante recordar que en la estructura particular de un conjunto de variantes
debe existir una relación selectiva por cada conjuntoSelección que exista en la estructura
base de la familia de la que dicho conjunto de variantes es miembro. La cantidad de estos
conjuntos que existen en una estructura determinada está dado por el número de instancias
166
________________________________________________________ Modelo de Productos. Aplicaciones
de la clase Selectiva que participan como valores de los atributos tipoRelacion de las
relaciones que conforman dicha estructura.
Como ya se mencionó, no se ejemplifican los conceptos vinculados con la definición
de las instancias de nivel de productos para este caso de estudio, debido a que éstos ya
fueron presentados en la sección previa. Con fines ilustrativos, solamente se presentará en
la Figura IV.27 el resultado de la consulta VerMiembrosCV que muestra los productos
específicaos que son miembros del conjunto de variantes SECarneCocidaReb.
Figura IV.27. Consulta VerMiembrosCV aplicada a SECarneCocidaReb
IV.4. CONCLUSIONES
Este capítulo presenta la aplicación del modelo propuesto a dos casos de estudio
extraídos de industrias con características diferentes. Por un lado, se presenta la aplicación
del modelo a la representación de los productos de una planta de producción de golosinas,
que posee una gran cantidad de variantes de productos con estructuras de composición. Por
el otro, se aborda el caso de los productos de una industria frigorífica, en la cual conviven
productos que poseen estructuras de composición, descomposición e híbridas. Sin
embargo, se observa que la aplicación del modelo es similar en ambos casos. Esto
demuestra que la propuesta efectuada es lo suficientemente genérica como para
representar información estructural de productos pertenecientes a diferentes tipos de
industria.
167
________________________________________________________ Modelo de Productos. Aplicaciones
Al mismo tiempo, el hecho que en la representación del modelo se haya elegido
tecnología de objetos, le otorga la flexibilidad necesaria para poder extenderlo de manera de
incorporar información no estructural de los productos, que no está contemplada en esta
propuesta. Así, por ejemplo, podría adicionarse información de utilidad para la función de
planificación, relacionada con las demandas, los proveedores y tiempos de entrega.
Asimismo, podría interesar mantener almacenados como parte del modelo algunos de los
datos logísticos y comerciales de los productos que generalmente son administrados por
otras áreas. También resulta apropiado disponer de información de los parámetros
correspondientes
a
las
distintas
políticas
de
abastecimiento
y/o
producción,
o,
específicamente para el caso de la industria frigorífica, información que permita mantener la
trazabilidad de las medias reses que ingresan como materia prima.
La implementación realizada en ConceptBase permite, sin la construcción de un
sistema informático, verificar la validez del modelo propuesto mediante la aplicación a
diferentes casos de estudio. Por otra parte, permite el agregado de atributos a las distintas
clases y la inferencia de sus valores a través de reglas. Además, la definición de vistas
posibilita la recuperación de información desde diferentes perspectivas, característica que
debe ser explotada para presentar la información de productos de acuerdo a las distintas
visiones que tienen de la misma las diversas áreas funcionales de una organización.
168
V. PROTOTIPO DE SISTEMA DE PROCESAMIENTO DE BOMS
V.1. INTRODUCCIÓN
En base al modelo conceptual propuesto en el Capítulo III se implementó un prototipo
de un sistema de procesamiento de BOMs denominado COOBOM (Complex Object Oriented
BOM). El mismo fue testeado utilizando información correspondiente a los dos casos de
estudio propuestos.
La arquitectura del prototipo se basa en la tecnología J2EE (Java 2 Enterprise
Edition) (http://java.sun.com/javaee/) la cual da soporte para el desarrollo de aplicaciones
distribuidas cliente-servidor multicapas. Para lograr la persistencia de los objetos
almacenados se optó por trabajar con el servidor de base de datos orientado a objetos
Versant (Versant, 1998), que facilitó la implementación del modelo tal cual fue concebido sin
tener que transformarlo para almacenarlo en un esquema relacional.
Sin embargo, cabe aclarar que la tecnología J2EE generalmente es utilizada con
bases de datos relacionales, por lo cual se dispone de una gran variedad de soluciones para
lograr persistencia con este tipo de bases de datos, pero no ocurre lo mismo para bases de
datos orientadas a objetos. Por lo tanto, fue necesario realizar una revisión de las
herramientas disponibles para brindar persistencia en Versant a través de esta tecnología.
Se encontraron aplicaciones propietarias de este administrador de bases de datos que
permitían la implementación, pero de utilizarlas el producto resultante se encontraría muy
ligado a las mismas siendo prácticamente imposible modificar el tipo de almacenamiento en
un futuro. Por ello que se decidió utilizar componentes disponibles como software libre para
contener la aplicación, aislando el componente de acceso a la base de datos de manera
que, en un futuro, pueda ser cambiado por otro.
El presente capítulo presenta en primera instancia una breve descripción de la
arquitectura del prototipo y las tecnologías usadas en su implementación. Posteriormente,
brinda una explicación sobre las funcionalidades de la aplicación desarrollada.
V.2. ARQUITECTURA Y TECNOLOGÍAS USADAS EN LA IMPLEMENTACIÓN DEL PROTOTIPO
Como se puntualizara en la introducción, se utilizó la base de datos Versant para
lograr la persistencia. Versant es un sistema de administración de base de datos orientado a
objetos para aplicaciones distribuidas multiusuario. Provee varios componentes e interfaces
con lenguajes específicos para el desarrollo de aplicaciones que utilizan este tipo de bases
167
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
de datos. Por ejemplo interfaces para C, C++, Smalltalk y Java. Esta última es la que se
empleó para el desarrollo del prototipo.
Como se señaló, el prototipo fue desarrollado bajo tecnología Java 2 Enterprise
Edition (J2EE), la cual ya impone ciertas características arquitectónicas. J2EE define una
arquitectura multicapa para implementar aplicaciones basadas en la Web. La tecnología
J2EE utiliza un modelo unificado y basado en componentes, que simplifica y minimiza la
complejidad del desarrollo de este tipo de aplicaciones.
Un componente J2EE es una unidad de software funcional autocontenido, que se
ensambla dentro de una aplicación y que se comunica con otros componentes de la misma.
La especificación J2EE define los siguientes tipos de componentes:
Aplicaciones clientes y Applets: componentes que se ejecutan en el lado del
cliente.
Java Servlets y Java Server Pages (JSP): componentes Web que se ejecutan
en el lado del servidor.
Enterprise Java Beans (EJB): componentes de negocio que se ejecutan en el
servidor de aplicación.
En cuanto a los EJB, es necesario indicar que existen tres tipos: de sesión (con o sin
estado), de entidad y dirigidos a mensaje. El primer tipo representa una conversación
temporal con un cliente. En este caso, cuando el cliente finaliza su ejecución, el “bean” de
sesión y sus datos desaparecen. Por el contrario, un “bean” de entidad representa datos
persistentes almacenados en una fila de una tabla/relación de una base de datos. Si el
cliente finaliza su sesión, o si se apaga el servidor, los servicios subyacentes se aseguran de
grabar el “bean”. Un “bean” dirigido-a-mensaje combina las características de un “bean” de
sesión y de un oyente de “Java Message Service” (JMS), permitiendo que un componente de
negocio reciba asíncronamente mensajes JMS.
La plataforma J2EE está diseñada para proveer soporte para el lado cliente y para el
lado del servidor en el desarrollo de aplicaciones distribuidas y multicapas. En general, estas
aplicaciones están configuradas para que la capa cliente provea la interfaz de usuario, una o
más capas intermedias se ocupan de los servicios para los clientes y la lógica de negocio y
una capa interna provea la administración de los datos. La Figura V.1 presenta un esquema
general de esta arquitectura. Como muestra dicha figura, esta plataforma provee un modelo
de aplicación multicapa, de forma que las diferentes partes de la aplicación puedan estar
ejecutándose en diferentes dispositivos. J2EE soporta una capa cliente, una intermedia
(consistente en una o más subcapas) y una capa interior. La capa cliente soporta clientes de
diversos tipos ubicados tanto dentro de la red de área local de una organización como fuera
de ella. La capa intermedia soporta el servicio a los clientes a través del contenedor Web y la
168
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
lógica del negocio, utilizando los contenedores de Enterprise Java Beans (EJB). Finalmente,
la capa interior facilita el acceso mediante APIs a los sistemas de información
organizacionales; las bases de datos son accedidas en la capa interior a través de APIs.
Firewall
Cliente
Contenedor
EJB
EB
Cliente
Cliente
EB
EB
Contenedor
WEB
servlet
Cliente
Sistemas de
información
de la
empresa
(bases de datos,
ERP, sistemas
tipo “legacy”)
página
JSP
Capa Cliente
Capa intermedia
Capa interior
Figura V.1. Arquitectura J2EE
Si bien un cliente J2EE puede ser un cliente Web o una aplicación, se adoptó para
COOBOM el primer tipo, el cual posee dos partes: páginas Web dinámicas que contienen
diversos tipos de lenguajes de marcado (HTML, XML, etc.), generadas por componentes
Web que se ejecutan en el contenedor Web y un navegador Web que visualiza las páginas
recibidas desde un servidor. Cada cliente se comunica con el contenedor EJB, que se
ejecuta en el servidor J2EE, a través de una JSP o un Servlet, que está brindando servicios
en el contenedor Web de dicho servidor.
Por otra parte, las reglas de negocios constituyen la lógica que resuelve las
necesidades de un dominio particular. Esta lógica es gestionada por los EJB que se ejecutan
en la capa de negocios, los cuales pueden recibir datos desde un cliente, procesarlos si es
necesario y enviarlos a la capa interior para su almacenamiento; también pueden ejecutar el
procedimiento inverso, obtener datos almacenados, procesarlos y enviarlos al cliente.
Finalmente, la capa interior, está conformada por aquellos sistemas de software que realizan
el procesamiento de las transacciones y permiten el almacenamiento permanente de la
información.
Para cada uno de estos componentes de la arquitectura, en el desarrollo de
COOBOM se ha utilizado:
Clientes Web, ya que aún no se han desarrollado aplicaciones clientes que
puedan comunicarse con el servidor.
JBoss, un servidor de aplicaciones J2EE de código abierto implementado en
Java, donde reside un contenedor de EJB, de tipo “session” (sin estado).
169
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
JSP para presentar la información a los usuarios. En la capa Web se utiliza
Tomcat, un contenedor de Servlets con un entorno JSP.
El servidor de bases de datos Versant en la capa interna.
Estos componentes de la arquitectura se presentan en la Figura V.2. En la misma, se
muestran también los cincos paquetes que fueron creados para implementarla, a saber:
Coobom-db: contiene todos los objetos que se almacenan en la base de datos
y los encargados de accederla para realizar consultas o actualizaciones.
Coobom-ejb: contiene los EJB que son los encargados de realizar todo el
procesamiento de la lógica de la aplicación. Reciben requerimientos por parte
de la presentación y acceden a los gestores de la base de datos para poder
cumplirlos. Estos componentes son los encargados de llevar a cabo las
acciones necesarias para proveer las distintas funcionalidades de la
aplicación, las cuales se explican en la sección V.3.
Coobom-dto: contiene todos los objetos de transferencia de datos (DTO–Data
Transfer Objects). Éstos se utilizan para intercambiar información entre la
lógica y la presentación. Existe un DTO por cada objeto que persiste en la
base de datos.
Coobom-util: contiene las utilidades compartidas por la lógica y la
presentación, como ser las excepciones.
Coobom-web: contiene todos los componentes y archivos de configuración
que conforman la presentación del sistema. Este incluye la definición de los
formularios que se presentan al usuario para su interacción con la aplicación.
Algunos de los formularios definidos serán introducidas en la sección
siguiente.
Lógica de Aplicación
COOBOM-util.j ar
JBoss
COOBOM-ej b.j ar
COOBOM-db.j ar
COOBOM-DTO.j ar
Persistencia
Tomcat
Navegador
COOBOM-w eb.w ar
BD Versant
Presentación
Capa Cliente
Capa Intermedia
Capa Interior
Figura V.2. Arquitectura de COOBOM
170
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
La interrelación de estos paquetes se muestra en el correspondiente diagrama de
paquetes de la Figura V.3. Allí se observa que el paquete Coobom-db, incluye otros dos
paquetes, los cuales se muestran también en la figura: el paquete db y el paquete modelo.
Coobom-ejb
db
+ conjuntodeVariantes
Coobom-db
+ familia
+ producto
+ restriccion
«import»
+ conjuntodeVariantes
+ db
+ familia
+ modelo
+ producto
+ restriccion
+ unidad
+ unidad
+ usuario
+ usuario
(fromCoobom-db)
«import»
«import»
«import»
Coobom-util
+ Conexion
+ DTOFactory
«import»
«import»
modelo
+ conjuntodeVariantes
«import»
+ familia
+ producto
Coobom-web
+ restriccion
«import»
+ conjuntodeVariantes
+ familia
Coobom-DTO
+ login
+ conjuntodeVariantes
+ producto
+ familia
+ restriccion
+ producto
+ unidad
+ restricciones
+ util
+ unidad
+ unidad
+ usuario
(fromCoobom-db)
+ usuario
Figura V.3. Diagrama de paquetes, interrelación entre los conceptos que conforman
COOBOM
El paquete modelo, contiene la especificación de las clases del modelo propuesto en
el Capítulo III, las cuales definen el esquema de la base de datos Versant. Por cada una de
estas clases existe una clase en el paquete db, cuyo nombre se conforma con el nombre de
la correspondiente clase en el modelo más el sufijo ”DB”. Por ejemplo, para la clase Familia
perteneciente al paquete modelo, se define la clase FamiliaDB en el paquete db (ver Figura
V.4).
Estas clases, las que se denominarán genéricamente como clases DBs, son las
encargadas de almacenar y recuperar los objetos de la base de datos. Este es el único lugar
donde se manipulan instancias de la base de datos. En el resto de la aplicación, estos
objetos son transformados en Objetos de Transferencia de Datos. Existe una clase DTO,
incluida en el paquete Coobom-DTO, por cada una de las clases del modelo propuesto. Por
ejemplo, para la clase Familia en el paquete modelo se define en Coobom-DTO la clase
FamiliaDTO. Este tipo de organización permite desacoplar la aplicación del almacenamiento
de los datos. Si se cambia la tecnología de almacenamiento de datos, solamente deberán
modificarse los componentes que generan los DTOs a partir de las instancias almacenadas,
y aquellas clases que acceden a las instancias almacenadas (clases DBs).
171
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
familia
familia
+ FamiliaAction
+ estructura
familia
+ FamiliaDTO
+ FamiliaDB
+ estructuta
+ estructura
+ relacion
+ restriccion
+ relacion
(fromCoobom-DTO)
(fromCoobom-web)
familia::
FamiliaDTO
(fromdb)
familia::
FamiliaDB
usa
familia::
FamiliaAction
manipula
usa
util::
BusinessDelegatorFamilia
invoca
familia::
Familia
familia::
FamiliaBean
familia
familia
util
+ Familia
+ BusinessDelegatorConjuntodeVariantes
+ FamiliaBean
+ estructura
+ BusinessDelegatorFamilia
+ estructura
+ relacion
+ BusinessDelegatorProducto
+ restriccion
(frommodelo)
+ BusinessDelegatorUsuario
(fromCoobom-ejb)
(fromCoobom-web)
Figura V.4. Relaciones entre las clases Familia de los paquetes de las distintas
capas
Como puede observarse en la Figura V.4, se define también para la clase Familia, la
clase FamiliaBean en el paquete Coobom-ejb, así como las clases FamiliaAction,
BusinessDelegatorFamilia y ServiceLocatorFamilia en el paquete Coobom-web. Las tres
últimas están relacionadas con la capa de presentación y son las que invocan a los
correspondientes EJB (ver Figura V.5), que para el caso de la Familia, se encuentra
definidos por la clase FamiliaBean.
La vista lógica que se presenta en la Figura V.4 para la clase Familia, se repite para
cada una de las clases del modelo propuesto, y permite que el flujo de información entre la
interfaz y la base de datos pueda ser manejada de igual manera para todas las instancias de
cualquier clase del sistema. La Figura V.5 muestra un flujo de comunicación dentro de la
aplicación, desde que un requerimiento genérico es solicitado por el usuario hasta que se
retorna la respuesta al mismo.
Los objetos de tipo actionX, son los responsables de capturar los requerimientos en
la interfaz de usuario y delegan dicho requerimiento en el correspondiente objeto
BusinessDelegatorX, el cual usa un objeto serviceLocatorX para crear un XBean, el EJB que
ejecutará las operaciones necesarias para dar respuesta al requerimiento del usuario. Si
dicho componente requiere obtener información de la base de datos, delega en el
correspondiente objeto XDB dicha responsabilidad.
172
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
ActionX
ServiceLocatorX
XBean
DiseñadorProducto
XDB
DTOFactory
XLocalHome
requerimiento
BusinessDelegatorX
método Y
getFacade
InitialContext
lookup(XLocalHome.JNDI_NAME)
XLocalHome
home = XLocalHome
método Y
procesa pedido
manipula base de datos
arma respuesta
dto= toDTO(zz)
retorna null, objetos simples u objetos del sistema (dto)
retorno
forward a JSP
Figura V.5. Flujo de comunicación dentro de la aplicación
Hasta este punto se ha presentado una visión interna de la aplicación (esto es,
algunos detalles acerca de cómo es el funcionamiento de la misma). Esta arquitectura
soporta el comportamiento del prototipo propuesto y permite que éste provea eficientemente
un conjunto de funcionalidades que serán introducidas y ejemplificadas en la siguiente
sección
V.3. FUNCIONALIDADES
DEL PROTOTIPO
La presente sección expone las funcionalidades del prototipo desarrollado. Éstas se
presentarán mediante diagramas de casos de uso, exponiendo las pantallas que la
aplicación presenta en la interacción con el usuario. Las mismas se encuentran definidas en
el paquete Coobom-web, que fuera presentado en la sección previa.
La Figura V.6 presenta el diagrama de casos de uso principal de la aplicación, que
representa las funcionalidades básicas del sistema, asociadas a los actores identificados. El
actor Usuario posee un rol básico de acceso al sistema, el cual se especializa en:
173
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
Modelador de Familias: es aquél que posee el rol que le permite crear,
modificar y eliminar familias y unidades de medida (casos de usos CU-003 y
CU-004, respectivamente).
Modelador de Conjunto de Variantes: es aquél que posee el rol que le permite
crear, modificar y eliminar conjuntos de variantes (caso de uso CU-005).
Modelador de Productos: es aquél que posee el rol que le permite crear,
modificar y eliminar productos (caso de uso CU-006).
Administrador: es aquel que posee el rol que le permite crear, modificar y
eliminar usuarios (caso de uso CU-007).
CU-001 Ingresar
CU-002 Modificar
Dato de Usuario
CU-057 Salir
Usuario
Modelador de
Familias
CU-003 Gestionar
Familia
CU-004 Gestionar
Unidad de Medida
Modelador de
Conj untos de
Variantes
CU-005 Gestionar
Conj unto de
Variantes
Modelador de
Productos
CU-006 Gestionar
Producto
Administrador
CU-007 Gestionar
Usuario
Figura V.6. Diagrama de casos de uso principal de la aplicación
Cuando un usuario inicia una sesión en el sistema, se encuentra con una pantalla
que presenta tres áreas, las cuales se muestran en la Figura V.7. Éstas son:
Selección de opciones: se encuentra a la izquierda de la pantalla y permite el
acceso a las distintas funcionalidades, las cuales se encuentran agrupadas en
módulos. Es por ello que las opciones que se muestran varían según el
modulo que esté seleccionado.
Selección de módulos: se encuentra en la parte superior de la ventana y
permite el acceso a los dos módulos disponibles: configuración y estructuras.
El primero permite acceder a las funcionalidades relacionadas con la gestión
de usuarios de la aplicación. El segundo, en cambio, permite el acceso a las
opciones para la gestión de estructuras de productos.
Área de datos y visualización: corresponde a la mayor parte de la pantalla y
se encuentra enmarcada por las otras dos áreas. Corresponde al área de
174
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
trabajo. Allí se presentarán los diferentes formularios para el ingreso y
visualización de los datos.
En particular, la Figura V.7 presenta la interfaz que muestra el formulario para la
creación de usuarios correspondiente al módulo de configuración, opción usuarios.
El formulario que se muestra en la Figura V.7 permite la creación de un nuevo
usuario, definiendo para éste un nombre, una clave y los permisos de acceso a la base de
datos. Estos permisos indican si un usuario tiene autorización para crear, modificar, acceder
y/o eliminar familias, conjuntos de variantes, productos y/o unidades de medida. Sólo aquél
usuario que tenga el rol de administrador (el cual se asigna tildando la casilla de verificación
que se encuentra debajo del campo de clave) tendrá permisos para la definición de otros
usuarios.
Área de selección de módulos
Área de
selección de
opciones
Área de datos y
visualización
Figura V.7. Formulario para la creación de usuarios
A continuación se presentarán en detalle las funcionalidades que tienen que ver con
la jerarquía estructural (SH) y de abstracción (AH) que fueran presentadas en el Capítulo III
e ilustrados en el Capítulo IV. La presentación se hará teniendo en cuenta los tres niveles de
abstracción que se proponen Familia, ConjuntodeVariantes y Producto. De manera paralela
a la descripción de las funcionalidades, se irán mostrando las interfaces relacionadas y, a
modo de ejemplo, se irá cargando la SH y la AH de la familia CarameloFrutalEnv.
V.4. DEFINICIÓN DE FAMILIAS
Las funcionalidades que permiten la definición de familias se encuentran agrupadas
en el caso de uso Gestionar Familia, el cual es explotado y mostrado en mayor detalle en la
175
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
Figura V.8. Es posible observar que la gestión de una familia incluye la creación, la edición y
la eliminación de una Familia. Estas actividades están representadas por los casos de uso
CU-008, CU-009 y CU-010, respectivamente.
A su vez, la edición de una Familia involucra:
la definición de atributos (CU-011);
la
gestión
y
visualización
de
la
estructura
(CU-012
y
CU-013,
respectivamente);
la edición de las restricciones (CU-014);
la copia de la familia (CU-019);
la generación de reportes (CU–017) y, finalmente,
el cierre de la edición (CU-018).
od Gestionar Familia
CU-003 Gestionar
Familia
«extend»
«extend»
CU-008 Crear
Familia
«extend»
CU-010 Eliminar
Familia
«include»
CU-015 Agregar
Restricción de
Familia
CU-009 Editar
Familia
CU-011 Editar
Atributo de Familia
«extend»
«extend»
CU-014 Editar
Restricción de
Familia
«extend»
«extend»
CU-012 Gestionar
Estructura
«extend»
CU-017 Generar
Reporte
CU-013 Visualizar
Estructura de Familia
«extend»
«extend»
«extend»
«extend»
CU-016 Eliminar
Restricción de
Familia
CU-019 Copiar
Familia
CU-018 Cerrar
Familia
Figura V.8 .Casos de uso que extienden Gestionar Familia
A continuación se presentan las interfaces que muestra el prototipo cuando se quiere
cargar la familia CarameloFrutalEnv, presentada en el caso de estudio. En la Figura V.9 se
puede observar la pantalla que se muestra cuando se selecciona la opción “Familias” en el
menú de la izquierda. Puede observarse el listado de familias abiertas, que en este caso
está vacío. Una familia se encuentra en estado “abierta” desde que es creada hasta que se
cierre explícitamente su edición. Mientras una familia permanezca en edición, no pueden
crearse conjuntos de variantes a partir de ella.
176
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
Figura V.9. Listado de familias “abiertas” cargadas en el sistema
En la misma pantalla, puede cambiarse el listado que se muestra (familias abiertas)
seleccionando la opción “cerradas”, en cuyo caso se listan, como lo expone la Figura V.10,
todas las familias que se encuentran en la base de datos y cuyo estado es “cerrada”. Este
estado indica que ya se ha finalizado la edición de dicha Familia y que pueden crearse
conjuntos de variantes a partir de ella. Una familia cerrada ya no puede modificarse.
Figura V.10. Listado de familias “cerradas” cargadas en el sistema
Para crear una nueva familia, se debe seleccionar el botón etiquetado con el signo
“+”, que se encuentra a la derecha del listado de familias abiertas (Figura V.9). Al hacer esto,
se presenta la pantalla empleada para crear una familia, la cual se expone en la Figura V.11.
177
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
Figura V.11. Pantalla para la creación de una Familia
En este formulario, se debe ingresar el código de la familia, el nombre y la
descripción de la instancia que se está creando. Se observa que el primer campo tiene un
asterisco a la derecha, lo cual indica que su carga es obligatoria. Una vez ingresados los
datos, se debe presionar el botón “Guardar” para hacer persistente la información y proceder
a la edición de la familia. Una vez que se presiona dicho botón, se agregan al formulario
nuevos controles (que se muestran en la Figura V.12) que permitirán el acceso a la edición
de los atributos de la familia (“Atributos”), la gestión de las estructuras asociadas
(“Estructuras”) y su visualización (“Visualizar Estructuras”), la administración de restricciones
(“Restricciones”), así como la generación de reportes (“Reporte”) y el cierre de la edición de
la Familia (“Cerrar”). Al cerrar una familia no será posible modificar su estructura, sus
atributos ni sus restricciones, si es que ésta se emplea en las estructuras de otras familias o
a partir de ella se han definido conjuntos de variantes.
178
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
Figura V.12. Pantalla para la edición de la información de una Familia
Al presionar el botón “Estructuras” se accede al formulario que permite la creación,
edición y borrado de estructuras. En este formulario, que se presenta en la Figura V.13,
puede observarse la lista de estructuras asociadas a la familia que se está editando. En este
caso particular dicha lista aún está vacía. La lista permite filtrar las familias por el tipo de sus
estructuras: de composición, de descomposición o simples, que es la opción a seleccionar
para aquellas familias que no tienen estructura. Para crear una nueva estructura hay que
posicionarse en la lista que corresponde al tipo de estructura que se quiere crear y presionar
el botón etiquetado con el símbolo “+”. Se presentará entonces el formulario para cargar el
código, nombre y descripción de la nueva estructura. Una vez guardada esta información, se
accede a la pantalla que permite la carga de las relaciones que conforman dicha estructura,
la cual se muestra en la Figura V.14.
Figura V.13. Pantalla que permite la creación de las estructuras de una Familia
En el formulario que se presenta en la Figura V.14 se muestran dos de los
componentes de la estructura CarameloFrutalEnvSTR, que fueron ya cargados. Para crear
el último componente que falta se debe seleccionar el botón con el signo “+” a la derecha de
la lista. Se presenta entonces el formulario que permite la carga de nuevas relaciones, el
cual se muestra en la Figura V.15.
Puede observarse en la Figura V.15 que se permite la carga de todas las
propiedades de una relación de composición, a saber:
i)
la familia componente, la cual es seleccionada de una lista de familias
“cerradas”;
ii)
la cantidad de composición;
179
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
iii)
la unidad de medida (si no existe, puede crearse accediendo al formulario
correspondiente desde esta pantalla) y
iv)
los límites máximo y mínimo para la cantidad de composición.
Al finalizar la edición se presiona el botón “Guardar” para grabar las modificaciones y
regresar a la edición de la estructura, formulario en el cual, ahora aparecerá también listada
esta nueva relación.
Crea relación
Elimina relación
seleccionada
Figura V.14. Creación de una estructura de composición
180
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
Figura V.15. Creación de la relación para el componente CarameloFrutalDes
Si se desea visualizar alguna estructura de la familia se debe presionar el botón
“Visualizar Estructuras” en el formulario que se muestra en la Figura V.12. En ese caso, se
presenta un formulario que permite mostrar todas las estructuras que tiene asociada una
familia. En el ejemplo analizado solamente está definida la estructura de composición
CarameloFrutalEnvSTR, la cual se muestra en la Figura V.16. Es posible observar en esta
figura
que,
además
de
los
tres
componentes
de
la
estructura
recién
creada
(CarameloFrutalEnvSTR), se presentan los otros dos componentes de la familia
CarameloFrutalDes, denominados RellenoFrutal y MasaConÁcido. Sin embargo, si se desea
seguir explotando la estructura, se deberán expandir estas dos ramas como se ilustra en la
Figura V.17.
181
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
Figura V.16. Visualización de la estructura de la familia CarameloFrutalEnv. Parte 1
En la Figura V.17 pueden observarse las estructuras alternativas que tienen las
familias RellenoFrutal y MasaConÁcido. La visualización puede ir modificándose mediante el
ocultamiento y/o expansión de las ramas del árbol, con lo cual, es posible llegar a apreciar la
estructura multinivel de la familia CarameloFrutalEnv.
La Figura V.18 presenta la primera página del reporte que se genera para la familia
CarameloFrutalEnv al seleccionar el botón correspondiente en el formulario que se ilustra en
la Figura V.12. Es importante mencionar, que este reporte contiene información de la familia
en cuestión: sus atributos, estructura y restricciones, así como información para todas las
familias presentes en su estructura multinivel.
Como se indicó anteriormente, para poder empezar a crear los conjuntos de variantes
asociados a una familia, se debe cerrar explícitamente la edición de dicha familia. Para ello
se debe presionar el botón “Cerrar” que se muestra en el formulario que expuesto en la
Figura V.12.
182
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
Figura V.17. Visualización de la estructura de la familia CarameloFrutalEnv. Parte 2
Figura V.18. Reporte generado para la familia CarameloFrutalEnv
183
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
V.5. DEFINICIÓN DE CONJUNTOS DE VARIANTES
En esta sección se introducirán las funcionalidades que brinda COOBOM para la
administración de conjuntos de variantes, el segundo nivel en la jerarquía de abstracción
propuesta en el Capítulo III.
En la Figura V.19 se presenta el caso de uso Gestionar Conjunto de Variantes y sus
extensiones. Es posible observar que la gestión del conjunto de variantes permite la
creación, la edición y la eliminación de un ConjuntodeVariantes. Estas actividades están
representadas por los casos de usos CU-027, CU-028 y CU-029, respectivamente.
A su vez, la edición de un conjunto de variantes involucra:
la definición de atributos (CU-031);
la edición de las restricciones (CU-034);
la copia del conjunto de variantes (CU-033);
la gestión del conjunto de variantes (CU-030) y, finalmente,
el cierre de la edición (CU-018).
CU-005 Gestionar
Conj unto de
Variantes
«extend»
CU-027 Crear
Conj unto de
Variantes
«extend»
CU-030 Gestionar
Estructura
Conj unto de
Variantes
«extend»
«extend»
CU-029 Eliminar
Conj unto de
Variantes
CU-028 Editar
Conj unto de
Variantes
«extend»
CU-031 Editar
Atributo de
Conj unto de
Variantes
«extend»
«extend»
CU-032 Cerrar
Conj unto de
Variantes
«extend»
CU-033 Copiar
Conj unto de
Variantes
CU-034 Editar
Restriccion de
Conj unto de
Variantes
«extend»
CU-035 Agregar
Restricción de
Conj unto de
Variantes
«extend»
CU-036 Eliminar
Restricción de
Conj unto de
Variantes
Figura V.19. Caso de uso Gestionar Conjunto de Variantes
Por su parte, la gestión del conjunto de variantes involucra por un lado, la
modificación de la estructura de la que se deriva el conjunto de variantes que está siendo
gestionado y, por el otro, la definición de preselecciones para los distintos componentes de
184
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
la estructura en cuestión. Estas funcionalidades se presentan en el diagrama de casos de
uso que se muestra en la Figura V.20.
CU-030 Gestionar
Estructura
Conj unto de
Variantes
«extend»
CU-038 Excluir
Relación
«extend»
CU-039 Modificar
v alor de Relación
«extend»
«extend»
CU-040 Reincluir
Relación
CU-058
Preseleccionar
Conj untos de
Variantes
Figura V.20. Caso de uso Gestionar Estructura de Conjunto de Variantes
El caso de uso Gestionar Estructura Conjunto de Variantes (Figura IV.20) es
extendido por los casos de uso: Excluir Relación, Modificar Valor de Relación, Reincluir
Relación y Preseleccionar Conjuntos de Variantes. Estos casos de uso representan las
siguientes funcionalidades:
eliminar componentes de la estructura (CU-038) ;
cambiar las cantidades de composición de una relación (CU-039);
cancelar la eliminación realizada para un componente (CU-040);
preseleccionar uno o más conjuntos de variantes (CU-058).
Para ejemplificar estas funcionalidades, se presentan a continuación las interfaces
que ofrece el sistema al usuario durante la carga del conjunto de variantes VaritaKIM.
Al seleccionar la opción “Conjunto de Variantes” en el menú que se encuentra en el
área de selección de opciones, se presenta la lista de conjuntos de variantes que están en
edición (“abiertos”). En la Figura V.21 se muestra este listado, en el cual se aprecia que el
conjunto de variantes BolsínFrutalRoc está en edición.
Figura V.21. Listado de conjuntos de variantes cargados en el sistema
185
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
La creación de una nueva instancia de ConjuntodeVariantes, se realiza mediante el
formulario que se presenta en la Figura V.22 para la carga de VaritaKIM. El campo “Código”
es obligatorio, como lo indica el símbolo * que se encuentra a la derecha del mismo, en tanto
que el campo “Nombre” es opcional. Por su parte, las dos últimas listas desplegables
permiten seleccionar la familia a la cual pertenece el conjunto de variantes que se está
creando y la estructura de la cual se deriva. En este caso particular, VaritaKIM es miembro
de CarameloFrutalEnv y se deriva de la estructura CarameloFrutalEnvSTR, como muestra la
Figura V.22.
Como en el caso de la creación de una familia, se debe presionar el botón “Guardar”
para crear la instancia. Se agregan entonces al formulario los botones que se muestran en la
Figura V.23, los cuales permiten la creación de atributos, el manejo de restricciones, la
edición de los cambios y preselecciones que son propias del conjunto de variantes que se
está editando; así como el cierre de la edición del mismo.
Figura V.22. Pantalla que permite la creación del conjunto de variantes VaritaKIM
Figura V.23. Pantalla que permite la edición del Conjunto de Variantes VaritaKIM
186
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
En la interfaz que se muestra en la Figura V.23 la selección del botón “Gestionar”
permite acceder al formulario para modificación de la estructura y preselección de conjuntos
de variantes, que se presenta en la Figura V.24. En ésta puede observarse que dicho
formulario tiene tres áreas:
i)
Panel de estructura: se ubica a la izquierda del formulario y en él se expone
la estructura de la que se deriva VaritaKIM.
ii)
Panel de preselección: se ubica en la parte superior derecha. Éste permite
realizar, para cada componente de la estructura, la preselección de
conjuntos de variantes.
iii)
Panel de cambios: ubicado en la parte inferior izquierda, posibilita la
introducción de cambios parciales a la estructura.
En el primer panel el usuario puede ir expandiendo o contrayendo las ramas del árbol
de la estructura. Cada vez que una familia componente es seleccionada en el árbol, se
muestran en el panel de preselección, todos los conjuntos de variantes que son miembros
de dicha Familia. Estos conjuntos pueden ser seleccionados mediante la casilla de elección
que se encuentra a la izquierda de cada uno de ellos. Haciendo “clic” en ella, aparece un
tilde cuya presencia indica que ese conjunto de variantes es preseleccionado para el
conjunto de variantes que está siendo editado.
En la Figura V.24, se encuentra resaltado, en el panel de estructura el componente
PapelEnvoltorio, y se puede apreciar, en el panel preselección, que se ha optado por el
conjunto de variantes EnvVaritaKIM. Por otra parte, en la misma figura, el panel de cambios
muestra la cantidad de composición junto con sus límites mínimo y máximo que
corresponden a la relación que une el componente seleccionado con la estructura. El campo
de cantidad puede ser modificado para reflejar cambios en la estructura. Éste es el caso del
componente PapelSeparador (resaltado en la Figura V.24), para el cual la cantidad de
composición fue modificada de 30.87GR a 42GR.
187
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
Panel Preselección
Panel de Estructura
Panel de Cambios Parciales
Figura V.24. Gestión del conjunto de variantes VaritaKIM - Preselección de
PapelEnvoltorio
Siguiendo con el análisis de los componentes de la estructura, la Figura V.25 muestra
la información para la familia CarameloFrutalDes. Se observa la preselección del conjunto de
variantes VaritaFrutal en el panel de preselección, mientras que en el panel de cambios
parciales puede observarse que la cantidad de composición para la correspondiente relación
es de 958GR.
Figura V.25. Gestión del conjunto de variantes VaritaKIM - Preselección
CarameloFrutalDes
188
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
Otra de las funcionalidades que posee la aplicación, es la eliminación es la
eliminación de componentes de una estructura, lo que es posible realizar a través del botón
“Excluir” que se muestra debajo del panel de estructura. Haciendo “clic” sobre el mismo, se
elimina de la estructura el componente que esté seleccionado. Para el conjunto de variantes
VaritaKIM el componente PapelSeparador se ha eliminado, y aparece tachado en las figuras
V.24 a V.26. En particular, esta última figura, muestra que cuando se selecciona un
componente que se encuentra eliminado, desaparecen los paneles de preselección y cambio
parcial. En la Figura V.26 puede observarse, también, que cuando se selecciona un
componente previamente excluido, aparece en el lugar donde estaba antes el botoón
“Excluir”, el botón “Reincluir”. Éste permite deshacer la eliminación y volver a considerar el
componente en la estructura del conjunto de variantes que se está editando.
De manera similar a lo que ocurre con la edición de las familias, una vez finalizada la
edición del conjunto de variantes VaritaKIM, éste debe ser cerrado a través del botón
“Cerrar” que se muestra en la Figura V.23. A partir de ese momento, no podrán realizarse
modificaciones de ningún tipo sobre el conjunto de variantes en cuestión. Por otra parte, se
habilita la posibilidad de crear productos que sean miembros del mismo.
Figura V.26. Gestión del conjunto de variantes VaritaKIM - Eliminación de
PapelSeparador
V.6. DEFINICIÓN DE PRODUCTOS
Resta aún presentar las funcionalidades que brinda el prototipo para la administración
de instancias del último nivel de la jerarquía de abstracción; es decir, aquéllas pertenecientes
189
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
al nivel Producto. Éstas se presentan en el diagrama de casos de uso que se introduce en la
Figura V.27. Allí puede apreciarse que, de manera similar a lo que ocurre para las familias y
los conjuntos de variantes, la Gestión de Productos involucra:
la creación de un producto (CU- 041);
la edición de un producto (CU- 042) y
la eliminación de un producto (CU-043).
La edición de un producto permite la creación del mismo (CU-045), la edición de sus
atributos (CU-047) y la gestión del producto (CU-048); así como su copia (CU-046).
Como ya se hizo en las secciones anteriores se ejemplificarán estas funcionalidades
mediante la presentación de las interfaces que muestra la aplicación a medida que se carga
el producto SE508219 (VaritaKIMFrutillaEnv) en el sistema.
La primera parte del proceso de creación de un producto es similar al de un conjunto
de variantes. Se selecciona el botón que se encuentra a la derecha de la lista de productos
abiertos y que tiene el signo “+”. Luego se procede a la carga del código, del nombre y a la
selección del conjunto de variantes del que es miembro el producto en cuestión,
determinando así la estructura de dicho producto. Una vez que se guarda esta información
se presenta el formulario que se muestra en la Figura V.28.
CU-006 Gestionar
Producto
«extend»
CU-043 Eliminar
Producto
CU-042 Editar
Producto
CU-041 Crear
Producto
«extend»
CU-045 Cerrar
Producto
«extend»
«extend»
«extend»
CU-046 Copiar
Producto
«extend»
«extend»
CU-047 Editar
Atributo de
Producto
CU-048 Gestionar
Estructura
Producto
«extend»
CU-050
Seleccionar
Producto
Figura V.27. Casos de uso asociados a Gestionar Producto
190
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
Figura V.28. Creación del producto SE508219 (VaritaKIMFrutillaEnv)
Para concluir el proceso de creación, se debe realizar la selección de opciones para
aquellas familias componentes de la estructura que aún no tengan un componente asociado.
Para ello, al presionar el botón Gestionar (Figura V.28) se presenta el formulario que se
muestra en la Figura V.29. Este formulario consta de las mismas partes que el formulario
que se presentó para la gestión de los conjuntos de variantes (panel de estructura, de
selección y de cambios parciales). La diferencia radica en que:
1. El panel de cambios parciales no permite nuevas modificaciones. Muestra
los cambios introducidos al definir el conjunto de variantes del que se
deriva el producto que se está editando.
2. El panel de selección, muestra solamente productos que son miembros de
los conjuntos de variantes que fueran preseleccionados al nivel de
conjunto de variantes del que es miembro el producto en edición.
En el ejemplo que se está analizando, para el componente PapelSeparador, se podrá
seleccionar solamente alguno de los productos que son miembros de EnvVaritaKIM (ver
Figura V.24) que se observan en el panel de selección. En particular, como el producto que
se
está
definiendo
es
un
caramelo
de
frutilla,
se
selecciona
ME308386
(EnvVaritaKIMFrutilla).
El componente PapelEnvoltorio se encuentra en cursiva en la Figura V.29, a
diferencia del otro componente CarameloFrutalDes. Esto indica que el primer componente ya
tiene una única opción asociada. Para efectuar la selección correspondiente al
CarameloFrutalDes, éste debe resaltarse en la estructura y en el panel correspondiente se
debe hacer la elección deseada. En este caso particular, se elige el producto SE408193
(VaritaFrutillaDes) según lo muestra la Figura V.30.
191
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
Figura V.29. Gestión del Producto SE508219 – Selección PapelEnvoltorio
Es importante mencionar que en la estructura que se presenta para el producto
SE508219
(VaritaKIMFrutillaEnv),
no
aparece
el
componente
correspondiente
al
PapelSeparador, ya que dicho componente fue eliminado de la estructura cuando se definió
el conjunto de variantes VaritaKIM, del cual éste es miembro (ver Figura V.26).
Figura V.30. Gestión del Producto SE508219 – Selección CarameloFrutalDes
192
______________________________________________ Prototipo de Sistema de Procesamiento de BOMs
V.7. CONCLUSIONES
En este capítulo se presentó la aplicación COOBOM, un prototipo de sistema de
procesamiento de BOMs, que permite verificar la factibilidad del diseño e implementación de
un sistema de este tipo, que utilice el modelo propuesto en el Capítulo III. Este prototipo fue
testeado utilizando productos de los dos casos de estudio presentados en el Capítulo II, de
acuerdo a la modelización de productos propuesta en el Capítulo IV.
La aplicación permite definir entidades en los tres niveles propuestos para la AH y
especificar la SH para cada uno de ellos.
En consecuencia, es factible en el futuro la
incorporación a la misma de funcionalidades que den soporte a la integración entre tareas de
planificación con diferentes horizontes de tiempo (planificaciones estratégicas, tácticas y
operativas), y que gestionan diferentes tipos de datos a nivel de familias, conjuntos de
variantes e instancias concretas de productos.
El prototipo fue desarrollado con tecnología J2EE, desacoplando mediante el uso de
DTOs, el almacenamiento y recuperación de información, respecto de la lógica de la
aplicación. Esto sin dudas le otorga una gran flexibilidad al minimizar el impacto de los
cambios que se realizan en las herramientas de almacenamiento y gestión de la información
sobre la lógia de la aplicación y viceversa.
193
VI. USO DEL MODELO PROPUESTO EN UNA APLICACIÓN BASADA
EN LA WEB SEMÁNTICA
VI.1. INTRODUCCIÓN
La aplicación COOBOM, presentada en el Capítulo V, es un prototipo de sistema de
procesamiento de BOMs, que implementa el modelo de productos propuesto en el Capítulo
III. Su arquitectura basada en componentes le otorga flexibilidad tanto para realizar cambios
en las interfaces y/o en los repositorios de información utilizados, como para incorporar
nuevas funcionalidades que den soporte a las diferentes unidades organizacionales que
requieran información de productos. COOBOM permite el acceso de múltiples usuarios, a
través de navegadores, a una base de datos local, lo que implica una única base de
conocimientos común. Este enfoque centralizado, si bien es útil dentro de una misma
organización, es muy restrictivo para las empresas de manufactura actuales que se
encuentran inmersas en un contexto que se ha tornado más competitivo y se ha expandido
globalmente de manera dramática en los últimos años. Bajo estas circunstancias, las
organizaciones no poseen ellas mismas todo el conocimiento o las capacidades que
necesitan, sino que confían en otras para obtener información y/o servicios. Una de las
respuestas a esta necesidad surge con los sistemas colaborativos de desarrollo de
productos (CPD – Collaborative Product Development). Un CPD puede definirse como “una
arquitectura computacional basada en Internet que soporta el uso compartido y la
transferencia del conocimiento acerca del ciclo de vida de los productos entre compañías
distribuidas geográficamente para tomar decisiones de ingeniería de manera colaborativa”
(Rodríguez y Al-Ashaab, 2005).
Los rápidos avances de Internet han brindado también oportunidades a las empresas
de manufactura para revitalizar sus estrategias de competencia. Una propuesta para mejorar
la competitividad es el comercio colaborativo de productos (CPC - Collaborative Product
Commerce), el cual se refiere a la adopción de los principios de administración del ciclo de
vida de productos (PLM) en entornos de redes de negocios, utilizando las posibilidades de
cooperación que brinda Internet. En el contexto planteado actualemente el factor crítico es la
colaboración entre cada uno de los eslabones de esta red (Saaksvuori e Immonen, 2005).
Sin embargo, este concepto no siempre es fácil de alcanzar debido a la heterogeneidad
existente entre los sistemas de información de cada uno de los participantes de la cadena
de colaboración. Según Sheth (1998), esta heterogeneidad puede darse en diferentes
niveles, a saber:
193
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
Heterogeneidad de Sistemas: se refiere a las diferencias en el hardware y
en los sistemas operativos utilizados.
Heterogeneidad Sintáctica: surge de la utilización de diferentes lenguajes y
representaciones de datos.
Heterogeneidad Estructural: ocurre cuando un mismo modelo conceptual
puede ser implementado en diferentes esquemas físicos.
Heterogeneidad Semántica: se relaciona con el significado que se le da a
los diferentes términos. Aún cuando éstos sean expresados en distintos
sistemas de información con una misma sintaxis, se presentan básicamente
dos grandes problemas a resolver:
o
Diferentes términos son usados para referir al mismo concepto. Por
ejemplo, en el dominio de la administración de información de
productos, los términos ensamblado intermedio y semielaborado
suelen ser usados por diferentes organizaciones para denotar aquel
producto que se obtiene como resultado de alguna etapa del proceso
productivo pero que requiere aún otros pasos de manufactura.
o
Un mismo término puede ser usado para denotar conceptos distintos.
Como muestra de este problema considérese la palabra receta que
tiene al menos tres interpretaciones asociadas en diferentes ámbitos.
Algunas organizaciones consideran que dicho término define las
operaciones que se deben ejecutar para obtener un producto y otras
lo ven como sinónimo de BOM. La tercera concepción considera que
una receta involucra tanto las operaciones como los componentes que
se necesitan para fabricar un producto.
Muchas tecnologías han sido desarrolladas para tratar de lograr la interoperabilidad
entre sistemas heterogéneos. Por ejemplo, CORBA y DCOM han sido concebidos con el fin
de permitir la interoperabilidad entre diferentes plataformas de hardware y software. XML y
XML-Schema son vistos como elementos claves para el intercambio de información en
Internet, superando los inconvenientes planteados por la heterogeneidad semántica. Sin
embargo, sin un acuerdo en los DTDs (Document Type Definition) utilizados, XML no
soluciona este problema.
En el mismo sentido, Horrocks y colab. (2001) plantean la necesidad de una
integración inteligente de los sistemas de información a través de tres niveles, los cuales se
muestran en la Figura VI.1 y se detallan a continuación:
Integración Técnica: se refiere a la integración de las tecnologías de red y
protocolos. Este aspecto ha sido eficientemente resuelto por Internet y la Web. Con estas
194
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
tecnologías, se brinda solución a los problemas planteados por la heterogeneidad de
sistemas.
Integración Sintáctica: Una vez que es posible técnicamente intercambiar
información, los participantes del intercambio deben estar de acuerdo en una sintaxis común
a fin de entenderse. En este sentido, XML ha ganado una significativa importancia para
solucionar los inconvenientes de la heterogeneidad sintáctica y estructural.
Integración Semántica: Más allá de la integración sintáctica, se presenta la
correspondencia o el “mapeo” semántico de los distintos términos que usan las diferentes
fuentes de información. En relación a este aspecto las ontologías son candidatas para
solucionar el problema de la heterogeneidad semántica entre estas fuentes.
SI
Semántica
Web Semántica
Ontologías
Sintáctica
HTML
XML
SI
XMLS
Técnica
HTTP
FTP
TCP/IP
Figura V.1. Distintos niveles de integración informática
Como se mencionó anteriormente, Internet y las tecnologías Web proveen una
respuesta a la integración de los dos primeros niveles, en tanto la integración semántica
está siendo objeto de investigación desde hace unos años. Según Alexiev y colab. (2004)
puede considerarse como solución a este problema la integración de diferentes fuentes de
información en una única arquitectura mediante ontologías. En este sentido, los esfuerzos
están enfocados en el desarrollo de la Web Semántica (Bernes-Lee y colab., 2001), que no
es más que una evolución de la Web actual.
En virtud del escenario antes puntualizado, se planteó como objetivo llegar a la
definición de una infraestructura informática, basada en tecnologías de la Web Semántica,
que posibilite la implementación de los conceptos de manufactura colaborativa y
administración del ciclo de vida de productos. Estos conceptos involucran diferentes áreas
de una organización e incluso de organizaciones diferentes, así como numerosos sistemas
de información y aplicaciones diversas y de gran complejidad. En consecuencia, alcanzar el
objetivo general planteado en un único paso se torna casi impracticable. Es por ello que se
decidió llegar a cumplir con el mismo a través de etapas incrementales, la primera de las
cuales tiene como meta la definición de una arquitectura de un sistema que permita la
realización de consultas acerca de la estructura de productos cuyos componentes son
195
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
manufacturados por diferentes nodos de una cadena de organizaciones que aplican el
concepto de desarrollo colaborativo de productos. En consecuencia, la información sobre
éstos se encuentra distribuida en los diferentes eslabones de dicha cadena, representados
por ontologías.
Los resultados obtenidos en esta primera etapa, la ontología de productos
denominada PRoduct ONTOlogy (PRONTO) y una arquitectura que la utiliza como
vocabulario común se exponen en este capítulo. Se presentan, inicialmente, algunas
nociones básicas sobre ontologías y Web Semántica. A continuación se introducen algunas
características de PRONTO y
finalmente, se presentan la arquitectura propuesta y su
implementación en un prototipo.
VI.2. LAS ONTOLOGÍAS COMO PILARES DE LA WEB SEMÁNTICA
El término ontología no es nuevo, proviene del área de la filosofía, fue utilizado con
posterioridad en el área de la Inteligencia Artificial y es empleado actualmente en el ámbito
de la Web Semántica. Las ontologías han sido utilizadas para diversos propósitos y por
diferentes comunidades, y, en consecuencia, es posible encontrar distintas definiciones de
dicho término dependiendo del área del conocimiento que se analice. Una de las
definiciones más conocidas es la de Gruber (1993), quien define la ontología como “una
especificación explícita de una conceptualización”. Borst (1997) extendió esta definición
indicando que dicha especificación debe ser formal y compartida. Posteriormente, Studer y
colab. (1998), propusieron la definición que se presentó en el Capítulo I, la cual une las
propuestas efectuadas por Gruber y Borst. Esta última definición, que exige la
representación de los conceptos por medio de una teoría lógica, se contrapone con la
concepción de Ushold y Grüninger (1996), quienes sostienen la existencia de ontologías con
diferentes niveles de formalidad, a saber:
altamente informal: si es expresada con lenguaje natural;
semi informal si se expresa en alguna forma restringida y estructurada del
lenguaje natural;
semi formal: si se expresa en algún lenguaje artificial formalmente
definido; y
rigurosamente formal: si provee definiciones minuciosas de términos con
semántica formal, teoremas y pruebas de propiedades tal como
completitud (completeness) y consistencia (soundness).
En cuanto a los lenguajes que se utilizan para la formalización de ontologías
pesadas, éstos se pueden clasificar en dos grandes grupos: aquéllos surgidos dentro del
196
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
área de inteligencia artificial y los más recientes, denominados lenguajes de marcado
(markup languages) o basados en la Web.
Los paradigmas de representación de conocimiento que soportan los lenguajes del
primer grupo, al que se denominará lenguajes IA, se basan en lógica de primer orden (LPO)
(en algunos casos combinada con “frames”) o en lógica descriptiva (DL) (Baader y Nutt,
2003). Por su parte, los lenguajes de marcado se clasifican en tres grandes grupos: los que
son una extensión de HTML y de XML; los que se basan en redes semánticas y los basados
en lógica descriptiva. En este último grupo, se destacan tres lenguajes, los cuales
establecen los fundamentos para la Web Semántica: RDF (Resource Description
Framework) (Manola y Millar, 2004), RDF-Schema (Brickley y Guha, 2004) y OWL (Web
Ontology Language) (Mc Guinness y van Harmelen, 2004). El primero fue desarrollado por
el W3C (World Wide Web Consortium) como un lenguaje basado en redes semánticas para
la representación de recursos en la Web. Por su parte, RDF-Schema que también es una
recomendación del W3C, es una extensión de RDF que provee primitivas basadas en
“frames”.
Como extensión de los dos ya mencionados, surgió el primer lenguaje de marcado
para la representación de ontologías en la Web Semántica, denominado OWL. Este se
divide en tres sublenguajes (también denominados especies o dialectos), OWL-Lite, OWLDL y OWL-Full, cada uno de los cuales proporciona un conjunto de constructores que
otorgan diferentes grados de expresividad al lenguaje. OWL-Lite es el dialecto más sencillo
y el que posee la menor expresividad. En el otro extremo se encuentra OWL-Full que
representa el lenguaje completo. El dialecto del medio define los mismos constructores que
OWL-Full, pero impone determinadas restricciones en el uso de los constructores.
Una ontología definida en el lenguaje OWL consta de individuos, propiedades y
clases. Las clases proveen un mecanismo para agrupar recursos con similares
características y se definen a través de axiomas de clase (Bechhofer y colab., 2004). Cada
clase está asociada con un conjunto de individuos denominado extensión de clase y cada
uno de sus miembros recibe el nombre de instancia. Éstas se vinculan entre sí por medio de
propiedades, las cuales se especifican mediante axiomas de propiedad y pueden ser de dos
clases: propiedad objeto y propiedad “datatype”. La primera conecta dos individuos mientras
que la segunda asocia un individuo con un valor que corresponde a un determinado tipo de
dato XML.
Los axiomas de clase, construidos a partir de descripciones de clases, permiten la
definición de una clase OWL por su nombre o mediante la delimitación de su extensión de
clase. Una descripción de clase puede ser:
1. un identificador;
197
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
2. una enumeración exhaustiva y explícita de los individuos que conforman su
conjunto de instancias;
3. una restricción sobre alguna propiedad de la clase;
4. la intersección de dos o más clases;
5. la unión de dos o más clases;
6. el complemento de una clase.
La intersección, la unión y el complemento pueden ser vistos como los operadores
lógicos AND, OR y NOT y, al igual que el tipo 3, estos tipos conducen a descripciones de
clases anidadas.
La descripción por identificador describe una clase por su nombre. Los cinco tipos
restantes lo hacen a través de la imposición de condiciones sobre su extensión de clase.
Los tipos 2 a 6 definen una clase que:
contiene exactamente los individuos enumerados (tipo 2);
está conformada por todos los individuos que satisfacen una restricción sobre
una de sus propiedades (tipo 3);
satisface combinaciones booleanas de otras descripciones de clases (tipos 4,
5 y 6).
El axioma de clase más simple consiste en una descripción del primer tipo, pero esto
no aporta información sobre la clase más que su nombre. En general, los axiomas
establecen condiciones necesarias y/o suficientes para que un individuo sea instancia de la
clase que dicho axioma define. Si define solamente condiciones necesarias, la clase se
denomina primitiva. En caso de especificar condiciones necesarias y suficientes constituye
una clase definida o no primitiva.
Para una descripción más detallada de los tipos de
axiomas de clase y descripciones que forman parte del lenguaje, refiérase al Apéndice B.
Según Uschold y Grüninger (1996), el grado de formalidad es uno de los tres
aspectos que permiten clasificar las ontologías. Los otros dos aspectos se vinculan con el
propósito y la naturaleza del tema que la ontología esté caracterizando. Relacionado con el
propósito, se encuentra la noción de generalidad, que implica el grado en que una ontología
puede ser reutilizada en un rango de situaciones diferentes. Las más generales se
denominan “de alto nivel” (“Top level” o “Upper level”), mientras que las más específicas, y
en consecuencia menos reutilizables, son conocidas como “de dominio”. Las ontologías de
alto nivel proveen nociones genéricas, con las cuales los términos raíces de todas las
ontologías existentes deberían estar vinculados. Sin embargo, existen varias propuestas y
las mismas difieren en la forma de clasificar los conceptos generales. Una de ellas es SUMO
(Suggested Upper Level Ontology) (Niles y Pease, 2001) que brinda un conjunto de
198
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
nociones genéricas a partir del cual las ontologías de dominio pueden ser construidas,
definiendo conceptos y relaciones válidas para un determinado campo del conocimiento.
Un análisis del dominio de las empresas de manufactura revela que antes que la
noción de Web Semántica se encontrara tan extendida, ya habían sido propuestas algunas
ontologías para representar el conocimiento acerca de las empresas. Entre ellas se
destacan la ontología de empresa de Uschold y colab. (1998) y las propuestas dentro del
proyecto TOVE (TOronto Virtual Enterprise) (Fox, 1992). Asimismo, en el contexto del
comercio electrónico, las aplicaciones B2B (“Business to Business”) requieren una
comunicación efectiva entre máquinas. En consecuencia, comenzaron a surgir intentos de
definición de estándares que faciliten el intercambio de información entre clientes y
proveedores (y entre socios de negocios) que provean un framework para la identificación
de productos y servicios. Entre éstas pueden citarse a UNSPSC, NAICs, eCl@ss, eOTD o el
diccionario técnico de RosettaNet (RNTD). Estos estándares cuentan con el consenso de un
amplio grupo de organizaciones y han sido codificados en varios lenguajes y formatos. Sin
embargo, no pueden ser considerados ontologías “pesadas” (Heavyweight ontologies) ya
que solamente representan taxonomías de conceptos. Si bien existen algunos intentos de
definición de ontologías derivadas del estándar UNSPSC (McGuinness, 2001; Klein, 2002),
los resultados obtenidos no reflejan completamente la semántica del estándar subyacente y,
por lo tanto, su uso se limita a un reducido conjunto de aplicaciones. Por su parte, Hepp
(2004), propuso una ontología escrita en lenguaje OWL y denominada eClassOWL, que
refleja los conceptos del estándar eCl@ss. El inconveniente que tiene es su gran tamaño,
que impide que pueda ser visualizada y/o editada por las herramientas de edición de
ontologías existentes, ni que pueda ser manipulada a través de los frameworks para el
desarrollo de aplicaciones de la Web Semántica.
VI.3. ARQUITECTURA DE LA WEB SEMÁNTICA
La arquitectura de la nueva Web se basa en una jerarquía de capas, cada una de las
cuales utiliza y extiende las capacidades de la inferior. Éstas se ven reflejadas en la “pila
para la Web Semántica” propuesta por Berners-Lee (2003), la cual se muestra en la Figura
VI.2, donde puede observarse que se definen los siguientes niveles:
Nivel de Recursos: sus funciones incluyen: i) identificar los recursos Web
mediante los URIs (Uniform Resource Identifier), los cuales designan de
forma inequívoca un recurso en la red y ii) proporcionar un medio (el estándar
Unicode) por el cual un texto en cualquier forma e idioma pueda ser
codificado
Nivel Sintáctico: su objetivo es solucionar el problema de cómo definir
distintos lenguajes de marcado para añadir contenido sintáctico a las páginas
199
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
Web. Un lenguaje utilizado en este nivel es XML, el cual es en realidad un
metalenguaje, un lenguaje para escribir lenguajes.
Nivel de Descripción de Recursos: permite la descripción de los recursos en
la Web a través de los lenguajes RDF y RDF-Schema.
Nivel de Ontologías: establece la integración semántica a través de las
ontologías, las cuales constituyen la piedra angular de la propuesta de
Berners-Lee. El lenguaje OWL es, según el W3C, la forma más apropiada de
compartir conocimiento en la Web.
Nivel Lógico: pretende dar flexibilidad a la arquitectura para realizar consultas
e inferir conocimiento a partir de las ontologías.
Nivel de seguridad: permite asignar grados de confianza y seguridad a los
distintos recursos distribuidos en la Web, a través de firmas digitales, redes
de confianza u otras técnicas de autenticación.
Seguridad
Nivel de Seguridad
Rules
Ontología
Encriptado
Framework
lógico
Firma Digital
Prueba
RDF Schema
Nivel Lógico
Nivel de Ontologías
Nivel de Descripción de
Recursos
RDF
XML
Namespaces
URI
Unicode
Nivel Sintáctico
Nivel de Recursos
Figura VI.2. Capas de la arquitectura de la Web Semántica
La Web Semántica ha sido estructurada por niveles, estableciendo una jerarquía de
abstracción y dependencia entre los mismos, aunque esta arquitectura no ha sido totalmente
descripta. Actualmente, muchos esfuerzos de investigación se encuentran enfocados en el
nivel lógico y, por otro lado, no se cuenta con una recomendación oficial por parte del W3C
acerca de las capas que están por encima de dicho nivel.
La infraestructura de la Web Semántica se basa en la representación de los modelos
formales de dominio por medio de ontologías, las que se enlazan unas a otras a través de la
Web.
Estas
ontologías
interrelacionadas
constituyen
una
base
de
conocimiento
consensuado a partir del cual, y mediante el uso de agentes y servicios Web, es posible
diseñar una arquitectura que permita la integración inteligente de los sistemas de
información. Sin embargo, debido a que la Web Semántica está en sus primeras etapas, no
200
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
existen muchas propuestas en el área de manufactura. Las que existen, aún plantean de
manera difusa cómo lograr la interoperabilidad de los sistemas.
De manera general, la Figura VI.3 presenta algunos de los componentes que, según
Herman (2007), intervienen en aplicaciones que utilizan este tipo de tecnología. En la capa
inferior, se encuentran los repositorios de datos que pueden ser de diversos tipos y estar
distribuidos geográficamente. La capa intermedia corresponde a las ontologías descriptas en
lenguaje RDF, RDF-Schema u OWL, las cuales brindan la integración semántica de la
información de los repositorios. Obviamente, entre esta capa y la inferior se deben
implementar herramientas que permitan el mapeo entre las instancias almacenadas en
estos repositorios y los individuos de las ontologías. Finalmente, en la capa superior se
encuentran las aplicaciones que brindan servicios en la Web Semántica. Se han
desarrollado algunos frameworks que brindan soporte para la construcción de este tipo de
aplicaciones,
entre
los
cuales
se
puede
mencionar
al
framework
JENA
(http://jena.sourceforge.net/documentation.html).
Aplicaciones
Datos representados en RDF, RDF-Schema u OWL
SPARQL
Motores de inferencia
JENA
Joseki
….
Herramientas de
Mapeo
GRDDL
SQL/RDF Bridge
….
Datos en diferentes formatos y sistemas
Figura VI.3. Capas que suelen participar en la arquitectura de aplicaciones de
la Web Semántica
JENA es una herramienta de código abierto desarrollada por HP Labs Semantic Web
Research que provee:
Una API RDF que soporta la creación, manipulación y consulta de grafos
RDF.
Una herramienta, denominada ARQ, que brinda servicios para la ejecución de
consultas en lenguaje SPARQL (un lenguaje de consultas para grafos RDF
desarrollado por la W3C)
Una API OWL, diseñado para permitir la conexión de JENA con máquinas de
inferencia (razonadores), los cuales son utilizados para derivar conocimiento
nuevo a partir del que se encuentra explícitamente definido en las ontologías.
201
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
Servicios de red que posibilitan que una aplicación consulte y/o actualice una
base RDF remota. En este caso se utiliza la herramienta Joseki
(http://www.joseki.org/), la cual implementa estos servicios sobre el protocolo
HTTP.
JENA es el framework adoptado en esta Tesis para implementar un sistema de
integración de múltiples fuentes de información de productos.
VI.4. UN PRIMER PASO HACIA LA DEFINICIÓN DE UN SISTEMA PDM BASADO EN LA WEB
SEMÁNTICA
En este punto se plantea un escenario en el cual se requiere compartir información
estructural de productos, la cual puede encontrarse distribuida en los nodos de una red de
productores y consumidores. Se propuso como objetivo la definición de un sistema, basado
en tecnología de Web Semántica, que permita lograr el requerimiento formulado. En
particular, se definió un escenario constituido por cuatro nodos, que participan en la
fabricación de productos miembros de la familia CarameloFrutalEnv (Figura IV.1) y de otras
tres familias de caramelos. A diferencia del caso de estudio de la planta de producción de
golosinas, en esta organización virtual, los caramelos no son producidos totalmente en una
única empresa, sino que cada uno de los nodos de la red participa en su manufactura. De
esta manera, la estructura de un producto no es conocida totalmente por una determinada
organización a partir de datos almacenados localmente. Cada una de estas empresas,
posee información sobre el producto que manufactura y consulta a los otros participantes
acerca de los componentes que necesita pero cuya estructura desconoce. En particular, las
empresas que participan son cuatro, a saber:
Empresa A (EA): posee información acerca de caramelos envueltos y
desenvueltos; pero no conoce cómo se obtienen las masas ni los rellenos.
Empresa B (EB): produce las masas y el Almíbar que se usa en esas masas.
No conoce cómo se obtiene el resto de los ingredientes de las mismas.
Empresa C (EC): provee almíbar y leche condensada. Además produce los
rellenos, pero desconoce la manera de obtener los ingredientes que se
utilizan en la fabricación de los mismos.
Empresa D (ED): encargada de suministrar el resto de las materias primas.
La Figura VI.4 presenta el árbol de estructura multinivel para la familia
CarameloFrutaEnv (corresponde a la clase definida como CarameloFrutalEnv en el Capítulo
IV), uno de los productos fabricados por la Empresa A. Por su parte, la Tabla VI.1 indica
quién provee cada uno de los componentes de esta estructura y proporciona información de
otros caramelos producidos por dicha empresa.
202
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
Como puede observarse en la Tabla VI.1, la información acerca de la estructura del
producto se encuentra distribuida en las distintas organizaciones. En una arquitectura
tradicional, estas fuentes de información son independientes y, en general, se almacena
información redundante y, muchas veces, inconsistente (estos problemas ya fueron
introducidos en el Capítulo I). Esta arquitectura es conocida como de repositorios
independientes (“standalone repositories”) (Vdovjak y colab., 2006) y requiere una
integración manual de los resultados de una consulta realizada sobre todos (o algunos) de
estos repositorios.
Figura VI.4. Árbol de estructura de la familia CarameloFrutalEnv
Tabla VI.1. Distribución de productos en las diferentes organizaciones
Empresa A
PapelSeparador
CarameloFrutalEnv
CarameloFrutalDes
PapelEnvoltorio
CarameloLecheEnv
CarameloLecheDes
CarameloMielEnv
CarameloMielDes
CarameloMentolEnv
CarameloMentolDes
Empresa B
Masa con ácido
Masa sin ácido
Almíbar
Empresa C
Relleno Miel
Relleno Mermelada
Esencia
Relleno Leche
Azúcar
Jarabe
Relleno Mentol
Colorante
Leche Condensada
Relleno Fruta
Ácido
Aceite
Esencia
Ingrediente Relleno
Ácido
Glucosa
Miel
Azúcar
Jarabe
Mermelada
Colorante
Leche Condensada
Empresa D
203
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
En una arquitectura de este tipo, si se desea recuperar el árbol de estructura que se
muestra en la Figura VI.4 se debería ir consultando cada uno de los sistemas de
administración de datos de productos de las empresas, para ir rescatando de manera parcial
la información que luego debe ser combinada para armar la estructura final. Esta situación
es un ejemplo simple de la naturaleza distribuida de la información en las cadenas de
colaboración que unen a las organizaciones actuales. Uno de los problemas en estas
cadenas es que el conocimiento relevante para responder a una consulta, se encuentra
disperso en diferentes fuentes agravado por el hecho de que las mismas pueden ingresar o
salir de la cadena con una frecuencia bastante elevada. Esto implica que quien requiere
información deba: i) localizar porciones de la misma en diferentes sitios, ii) recuperarla y iii)
combinar las porciones en un único resultado. Otra característica que agrega complejidad a
esta tarea de recuperación de información tiene que ver con la naturaleza dinámica de la
cadena de colaboración productiva. Nuevos participantes de la cadena pueden incorporarse
a la misma o alguno de los existentes puede dejarla, haciendo que la estructura de los
productos, identificada en un momento determinado, deje de ser válida.
Para solucionar el inconveniente de la distribución de las fuentes de información se
propone una arquitectura que soporta la integración de estas fuentes a través de un
vocabulario común, pero manteniendo la gestión de las datos de manera local a cada nodo.
El principal objetivo es ocultar al usuario que requiere información, el hecho de que la misma
se encuentra dispersa y fragmentada. Éste no necesita conocer el lugar donde reside la
información que se le retorna como respuesta a su consulta. El sistema debe comportarse
como si todo el conocimiento estuviera disponible en una única fuente, para lo cual se
empleará una arquitectura con mediador (Vdovjak y colab., 2006).
En una primera etapa, la información de los productos residente en cada nodo del
sistema estará representada por instancias explícitamente definidas y codificadas en
ontologías OWL. Éstas importan los conceptos definidos en un vocabulario común
(PRONTO) y definen las instancias en ontologías locales. La arquitectura propuesta consta
de un conjunto de nodos iguales (pares), cada uno de los cuales actúa como mediador entre
el usuario y los otros nodos del sistema, si una consulta es iniciada en él. En el punto VI.4.1
se presenta la ontología a ser empleada en el sistema y en el VI.4.2 se describe la ontología
introducida.
Es importante mencionar que el prototipo de aplicación que se describe en este
capítulo abarca solamente las dos capas superiores de las indicadas en la Figura VI.3. Se
presenta un prototipo de sistema distribuido que permite la ejecución de consultas sobre las
ontologías locales. El mapeo entre éstas y los repositorios de información es una de las
tareas a encarar al finalizar esta primera etapa. En particular esta actividad consistiría en
204
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
encontrar la manera de mapear las instancias gestionadas y almacenadas por los sistemas
de información locales con las instancias de las ontologías.
VI.4.1. Definición de PRoduct ONTOlogy
Si bien existen varias metodologías (Grüninger y Fox, 1995; Uschold y Grüninger,
1996; Fernández-López y colab., 1997) para el diseño de una ontología, todas coinciden en
que es un proceso iterativo al que se asocian básicamente las siguientes actividades:
1. Análisis del dominio de conocimiento.
2. Definición de los conceptos involucrados.
3. Especificación formal e implementación de los conceptos, sus relaciones y sus
restricciones.
4. Validación y/o evaluación de la ontología.
PRONTO es una restricción de la ontología de modelo conceptual propuesto en el
Capítulo III, que surge de la necesidad de desarrollar una implementación de dicho modelo
conceptual en una aplicación basada en la Web Semántica. Debido a esto, el proceso de
creación de esta ontología restringida comenzó, en este caso, a partir del tercer paso, la
especificación formal e implementación. En la formalización se empleó el lenguaje OWL DL
y se utilizó el “plug-in” OWL de la herramienta Protégé (Genaro y colab., 2002).
Previo a la implementación de los conceptos, se realizó una búsqueda de ontologías
que puedan ser reutilizadas o especializadas en PRONTO y a partir de este punto se trató
de identificar qué conceptos del modelo debían ser definidos en OWL. En particular, se
efectúo un estudio de las ontologías existentes para el dominio de trabajo. Es importante
destacar que no existe ninguna que contemple los conceptos aquí presentados para el
dominio de empresas de manufactura con el nivel de complejidad abordado en este trabajo.
Por otro lado, se analizaron ontologías de alto nivel relacionadas con el dominio y como
resultado de este estudio, se decidió reutilizar los conceptos UnitOfMeasure y RealNumber
definidos en SUMO, dejando para una etapa futura la especialización de otros conceptos de
esta ontología. Si bien la misma fue escrita originalmente con KIF (Knowledge Interchange
Format), existen traducciones de la misma a OWL. La Figura VI.5 presenta parcialmente su
taxonomía, en la cual se resalta el concepto UnitOfMeasure. Esta clase posee como
atributos los factores que permiten la conversión entre diferentes unidades; además, tiene
definidas instancias para casi todas las unidades existentes. Se creyó conveniente reutilizar
dicho concepto en lugar de la clase Unidad (Especificación III.10) pues provee una definición
más completa que esta última.
En cuanto a las ontologías de dominio, se decidió que sería importante poder utilizar
eClassOWL para clasificar las diferentes instancias de familias definidas. Pero debido a su
205
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
gran tamaño, que impide que sea manipulada por Protégé y por JENA, se optó por
reproducir una porción de dicha ontología (las categorías necesarias para clasificar los
productos del escenario ficticio) en una ontología definida localmente y que se denomina
catalogo.owl. En una futura etapa en el desarrollo de la ontología, se enfocará la búsqueda
de una solución que permita trabajar con la ontología eClassOWL completa.
Figura VI.5. Vista de la ontología SUMO en el editor de ontologías Protégé
La Figura VI.6 presenta algunas características generales de la ontología definida,
denominada PRONTO (PRoduct ONTOlogy), obtenidas a partir del la versión 4 beta del
editor Protégé. En particular, se indican cuales son las ontologías importadas y la
expresividad de la lógica descriptiva utilizada para la definición de los conceptos, así como
el dialecto de OWL empleado en cada ontología involucrada.
206
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
Expresividad de
la ontología
Ontologías importadas por PRONTO
Dialectos en los que se
encuentra definido PRONTO y
las ontologías importadas
Figura VI.6. Información brindada por Protégé 4 beta acerca de PRONTO
Es posible observar en la Figura VI.6 que el documento owl que define PRONTO
(http://www.owl-ontologies.com/pronto.owl)
importa
las
ontologías
definidas
en:
http://www.owl-ontologies.com/catalogo.owl y http://owl-ontologies.com/sumo.owl. Ambas
ontologías se encuentran definidas en OWL-lite, mientras que PRONTO está representada
por OWL-DL, con una expresividad indicada como SOIF. Cada una de las letras presentes
en dicha etiqueta representa un constructor (o un conjunto de constructores) de la lógica
descriptiva que la ontología incorpora. El significado de cada una de ellas se muestra en la
Tabla VI.2.
Tabla VI.2. Expresividad de la ontología
Código
Constructor/es incluido/s
Negación de conceptos atómicos y complejos
Intersección de conceptos
S
Restricciones universales
Cuantificación existencial limitada
Propiedades transitivas
O
Clases enumeradas o restricción de valores de
objetos (owl: oneOf o owl:hasValue)
I
Propiedades inversas
F
Propiedades funcionales
207
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
Respecto a la definición de los conceptos de PRONTO, su organización taxonómica
se presenta en la Figura VI.7, en la cual se puede apreciar que se han incluido los
conceptos que se originan a partir de AbstraccióndeProductos, más todos los que permiten
expresar estructuras de productos complejos y manejo de restricciones. Se observan las
clases y las relaciones de tipo “is-a” que definen la jerarquía entre conceptos. El sombreado
más claro identifica clases primitivas, mientras que el más oscuro corresponde a las
denominadas clases no primitivas. Todas aquellas clases especificadas como instancias de
Class en el Capítulo III se definieron como clases primitivas en PRONTO. Por su parte, las
vistas y consultas que fueron introducidas en dicho capítulo (FamiliasEnsambladas y
FamiliasDerivadas, por ejemplo), se implementaron como clases no primitivas. Se puede
apreciar en la Figura VI.7 que PRONTO incorpora nuevas clases no primitivas, como el
concepto de MateriaPrima, el cual no se definió explícitamente en el modelo desarrollado
en el Capítulo III. Dicho concepto, en el contexto de un sitio de producción, representa todas
aquellas familias que no son manufacturadas en ese sitio y, por lo tanto, deben ser provistas
por otros. El sitio en cuestión no posee conocimiento acerca de la estructura de las familias
que se infieren como MateriaPrima en él.
El código completo de la ontología, el cual contiene los axiomas de clases y
propiedades que pertenecen a PRONTO, se presenta en el Apéndice B. A modo de ejemplo,
en las figuras VI.8 y VI.9, se introducen las clases FamiliaC y FamiliaEnsamblada,
respectivamente. En ambos casos, se muestra una porción de código OWL que
corresponde al axioma de clase que la define.
208
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
Figura VI.7. Taxonomía de PRONTO
En la Figura VI.8 se presenta la definición de la clase FamiliaC. Puede observarse en
dicha figura la pantalla del editor de ontologías que muestra el cuadro “asserted conditions”,
en el cual se ingresan las condiciones necesarias y suficientes, así como las necesarias (las
209
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
definidas en la propia clase y aquéllas heredadas) que debe cumplir un individuo que es
instancia de FamiliaC, el cual necesita ser miembro de la clase Familia y poseer al menos
una Estructura asociada por la propiedad estructuraDe (owl:sameValuesFrom). Además,
todos los individuos que estén como valores de dicha propiedad deben ser instancias de
Estructura (owl:allValuesFrom). Cada una de estas condiciones está expresada en el código
OWL mediante un axioma de clase del tipo rdf:subClassOf (ver Apéndice B). Como puede
observarse, FamiliaC está especificada solamente por condiciones necesarias, en
consecuencia, se trata de una clase primitiva.
Por otra parte, la sección inferior de la pantalla que se muestra en la Figura VI.8
indica que FamiliaS es disjunta respecto a FamiliaC, es decir, que la intersección de los
conjuntos extensión de ambas clases es el conjunto vacío. En otras palabras, no existen
individuos que sean instancias de ambas clases.
<owl:Class rdf:ID="FamiliaC">
<rdfs:subClassOf rdf:resource="#Familia"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#estructuraDe"/>
<owl:someValuesFrom rdf:resource="#Estructura"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#estructuraDe"/>
<owl:allValuesFrom rdf:resource="#Estructura"/>
</owl:Restriction>
</rdfs:subclase
<owl:disjointWith rdf:resource="#FamiliaS"/>
</owl:Class>
Figura VI.8. Axioma de clase de FamiliaC
En la Figura VI.9 se presenta la especificación de la clase FamiliaEnsamblada, la
cual es de tipo no primitiva y su definición incluye tres axiomas de clase que definen
restricciones necesarias y suficientes. Estos axiomas implican que todo individuo que
pertenezca a la extensión de clase de Familia,
tenga el valor Falso para la propiedad esDerivado y, además
tenga el valor Verdadero para la propiedad esEnsamblado
210
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
será instancia de FamiliaEnsamblada.
El código OWL que se muestra en la Figura VI.9 presenta el axioma de clase de
FamiliaEnsamblada, el cual combina varias descripciones de clase. En particular, dicho
axioma especifica que el conjunto de instancias de FamiliaEnsamblada es equivalente
(owl:equivalentClass) a la extensión de una clase anónima que se define por la intersección
(owl:intersectionOf) de dos restricciones (owl:Restriction) de propiedad (owl:onProperty). La
primera restricción indica que la propiedad esDerivado debe tener (owl:hasvalue) el valor
Falso (False) y la otra que esEnsamblado debe poseer valor Verdadero (True). Además, se
indica que el conjunto de instancias de FamiliaEnsamblada, es disjunto respecto a las
extensiones de clase de FamiliaDerivada y MateriaPrima. El axioma de clase que permite
definir esta última es similar al presentado en la Figura VI.9. La diferencia radica en que,
para MateriaPrima, las restricciones imponen el valor Falso para ambas propiedades
(esEnsamblado y esDerivado). (Por más detalles se sugiere consultar el Apéndice B)
<owl:Class rdf:ID="FamiliaEnsamblada">
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="#esDerivada"/>
<owl:hasValue rdf:resource="#False"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#esEnsamblada"/>
<owl:hasValue rdf:resource="#True"/>
</owl:Restriction>
<owl:Class rdf:about="#Familia"/>
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>
<owl:disjointWith rdf:resource="#FamiliaDerivada"/>
<owl:disjointWith rdf:resource="#MateriaPrima"/>
</owl:Class>
Figura VI.9. Axioma de clase correspondiente a FamiliaEnsamblada
Como puede apreciarse en la Figura VI.7 otras clases definidas que fueron creadas
son:
FamiliaDerivada,
MateriaPrima,
RestricciónIncomp,
RestricciónOblig,
RelaciónSelectiva, RelaciónOptativa, RelaciónObligatoria, TipoRestricción y TipoRelación.
Las dos últimas, corresponden a la aplicación de un patrón de diseño denominado partición
de valores (ValuePartition, su nombre en inglés). Los patrones en ontologías son análogos a
los utilizados en el diseño bajo un enfoque de objetos (Horridge y colab., 2004).
Este patrón permite restringir los valores que puede tomar una propiedad a las
instancias de un conjunto exhaustivo de clases. Para lograr este cometido se debe:
1. Crear la clase que representa la partición, por ejemplo TipoRelación.
211
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
2. Crear las subclases que representan las distintas opciones para la partición y
definirlas como disjuntas. En este ejemplo, se crean las clases Obligatoria,
Optativa y Selectiva, como puede verse en la Figura VI.10, Ventana (A).
3. Crear un axioma de cobertura en la clase que representa la partición. Ver
Figura VI.10, Ventana (B).
4. Asignar como rango de la propiedad a restringir la clase que representa la
partición.
El axioma de cobertura para este ejemplo, se define a través de una restricción sobre
la clase TipoRelación que indica que dicha clase es la unión de las clases Obligatoria,
Optativa y Selectiva y en consecuencia, no existe explícitamente ni puede ser inferido como
instancia de TipoRelación, ningún individuo que no pertenezca a la extensión de alguna de
las subclases definidas de TipoRelación (Obligatoria, Optativa, Selectiva). Es necesario
incluir este axioma debido a la hipótesis de mundo abierto que es inherente a OWL.
<owl:Class rdf:ID="TipoRelacion">
<owl:equivalentClass>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Obligatoria"/>
<owl:Class rdf:about="#Optativa"/>
<owl:Class rdf:about="#Selectiva"/>
</owl:unionOf>
</owl:Class>
</owl:equivalentClass>
(B)
</owl:Class>
<owl:Class rdf:ID="Selectiva">
<rdfs:subClassOf rdf:resource="#TipoRelacion"/>
<owl:disjointWith rdf:resource="#Obligatoria"/>
<owl:disjointWith rdf:resource="#Optativa"/>
</owl:Class>
(A)
Figura VI.10. Definición de una partición de valores
Para la representación de la información de productos de cada nodo del escenario
planteado se crearon cuatro nuevas ontologías, denominadas candiessiteA, candiessiteB,
candiessiteC y candiessiteD. Todas ellas importan PRONTO y crean las instancias
correspondientes a los productos que las Empresas A, B, C y D, respectivamente proveen.
Las relaciones entre las ontologías utilizadas se muestran en la Figura VI.11. Allí puede
observarse que las ontologías SUMO y catalogo.owl son importadas por PRONTO. y ésta a
su vez es importada por cada una de las cuatro ontologías de empresa definidas. La
ontología catalogo.owl corresponde a la representación parcial, que fue definida localmente,
de una parte de eclassOWL (Hepp, 2004).
212
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
«import»
«file»
SUMO
«file»
candiessiteA.ow l
«import»
«file»
«file»
«import»
PRONTO
«import»
«import»
«import»
«file»
candiessiteB.ow l
«file»
catalogo.ow l
«file»
candiessiteC.ow l
candiessiteD.ow l
Figura IV.11. Relaciones entre las ontologías utilizadas
Para la ontología candiessiteA.owl, se crearon instancias para representar los
productos del nivel de caramelo envuelto (Figura VI.12). Con esta figura se pretende mostrar
cómo un razonador clasifica estos individuos de acuerdo a las definiciones dadas para las
clases no primitivas. En particular, se muestran los browser de instancias para las clases
FamiliaC, FamiliaEnsamblada y MateriaPrima.
Después de aplicar el razonador
Figura VI.12. Clasificación de instancias efectuada con un razonador
213
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
En la parte superior de la Figura
VI.12 se observa, para las clases
FamiliasEnsambladas y MateriaPrima, las dos secciones que tiene dicho browser, la de
hechos explicitados (“Asserted”) y la de hechos inferidos (“Inferred”), antes de ejecutar el
razonador para la clasificación de individuos. En la parte inferior se exponen nuevamente la
sección de hechos inferidos para las tres clases mencionadas después de haber ejecutado
la clasificación de individuos en el razonador. Es posible apreciar, que ocho de las familias
cargadas fueron clasificadas como pertenecientes a la categoría FamiliaEnsamblada y el
resto fueron identificadas como MateriaPrima.
VI.4.2. Definición de una arquitectura para integrar información de productos
Para administrar la información de productos en una red de colaboración de
empresas de producción se definió una arquitectura integrada semánticamente a partir del
empleo de PRONTO. La arquitectura propuesta es del tipo mediador y está constituida por
un conjunto de nodos jerárquicamente equivalentes, uno por cada planta de producción
(cuatro en el escenario planteado). Cuando un usuario realiza una consulta desde uno de
los nodos éste se convierte en mediador entre el usuario y el resto de los nodos. La Figura
VI.13 presenta los componentes que conforman esta arquitectura.
Interface
Interface
Servicio de
Consultas Local
Nodo EmpresaA
Servicio de
Consultas Local
Servicio de
Consultas Global
Nodo EmpresaB
Servicio de
Consultas Global
Servicios de Red
Joseki
Consulta
SPARQL
JENA
Inferencia
OWL API
JENA
Ontología
candiessiteB.owl
Lectura/ Escritura
RDF API
Ontología
candiessiteA.owl
Ontología
candiessiteD.owl
Ontología
candiessiteC.owl
JENA
Servicio de
Consultas Local
Interface
Servicio de
Consultas Global
JENA
Servicio de
Consultas Local
Interface
Servicio de
Consultas Global
Nodo EmpresaD
Nodo EmpresaC
Figura VI.13. Arquitectura propuesta para una red colaborativa de empresas de
producción
En cada nodo se encuentra instalado el framework JENA, el cual mediante sus
componentes (Joseki, SPARQL, OWL API, RDF API, que se muestran en la Figura VI.13),
214
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
brinda el soporte tecnológico para la publicación y observación de las ontologías, así como
para la construcción de las consultas. Además, cada nodo de la arquitectura consta de:
Una interface que debe ser accedida por un navegador y que permite al
usuario seleccionar la consulta que desea realizar.
Una ontología que define las instancias del repositorio de información sobre el
que se realizan las consultas.
Un servicio de consultas local (LQC - LocalQueryService), que recibe los
requerimientos desde la interface, obtiene información del servicio SPARQL
local y delega la consulta en el servicio global de consultas (GQS GlobalQueryService).
Un servicio de consultas global (GQS - GlobalQueryService) que construye la
consulta en lenguaje SPARQL y la propaga hacia los nodos que pueden
responderla. A partir de la combinación de las respuestas recibidas, analiza si
ya cuenta con toda la información para dar una respuesta al usuario o si debe
volver a propagar consultas hacia los nodos.
Un nodo puede llevar a cabo dos roles principales: proveedor y explorador. Un nodo
actúa como proveedor cuando publica información acerca de los productos que tiene
almacenados localmente. En tanto que ejecuta su rol explorador cada vez que busca
información de un determinado producto (Bonifacio, 2006). La estructura de cada nodo se
presenta en la Figura VI.14. Allí puede observarse al nodo EA, su ontología local,
denominada candiessiteA.owl, y las actividades (indicadas por los círculos con números)
que se llevan a cabo cuando dicho nodo recibe una consulta, que se detallan en los
siguientes párrafos.
candiessiteA.owl
P
R
O
V
E
E
D
O
R
2
3
E
X
P
L
O
R
A
D
O
R
4
1
Consulta
5
7
?
8
+
EX
6
EA-GQS
Respuesta
EA
Otros Nodos de
la arquitectura
Figura VI.14. Roles que pueden adoptar los nodos de la arquitectura propuesta
215
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
Un nodo que actúa como explorador permite la búsqueda de información de
productos en otros nodos ya que provee el mecanismo para encontrar otras fuentes de
información a los cuales una consulta debe ser reenviada y lleva a cabo la propagación de
las consultas hacia ellas.
Por su parte, un nodo que actúa como proveedor contiene las funcionalidades
requeridas para resolver una consulta e identificar los resultados que deben ser devueltos a
los exploradores. Cuando un nodo proveedor recibe una consulta, trata de resolverla de
manera local. Si encuentra que la información que posee es incompleta, cambia su rol a
explorador y propaga la consulta a los nodos que pueden brindarle la información faltante.
Una vez recibidas las respuestas a las consultas que ha propagado, retoma el rol de
proveedor para combinarlas en una única expresión que se retorna al usuario. El
intercambio de mensajes que se produce entre los componentes de la arquitectura cuando
una consulta es ejecutada desde uno de los nodos se presenta en la Figura VI.15.
EA-LQS
:LocalQueryService
EA-GQS
:GlobalConfigurationServices
EX -GQS
:GlobalQueryService
:GlobalQueryService
modelo :Model
modelo= getCompleteProductModel(urlService,P1)
1
consulta
boolean= fabrica(urlService,P1)
2
conocidos= getKnownComponents(urlService,P1)
3
desconocidos= getUnknownComponents(urlService,P1)
modelo= getCompleteKnownModel(urlService,conocidos)
7
4
loop Por cada desconocido
servicios= getServicesForProduct(desconocidos[i])
5
loop Por cada serv icio
descModelo= getCompleteProductModel(servicios[j],desconocido[i])
Add(descModelo)
6
respuesta
8
Figura VI.15. Diagrama de secuencias correspondiente a una consulta sobre
estructuras
Las actividades presentadas esquemáticamente en las Figuras VI.14 y VI.15, que
expresan los pasos del proceso de ejecución de una consulta, son los siguientes:
216
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
1. Se hace la consulta a un nodo determinado (EA) acerca de la estructura
de una familia determinada (CarameloFrutaEnv). El servicio de consultas
local (EA-LQS) recibe la consulta desde la interface y la delega en el
Servicio de Consultas Global del nodo (EA-GQS).
2. EA-GQS analiza si posee información local sobre la estructura de
CarameloFrutaEnv.
3. Si EA-GQS posee información, identifica cuales son los componentes de
CarameloFrutaEnv para los que conoce la estructura y aquéllos para los
cuales no la conoce (lista de conocidos y desconocidos respectivamente)
4. Para cada familia perteneciente al conjunto de conocidos (por ejemplo
CarameloFrutaDes), obtiene el modelo inferido a partir de las definiciones
de la ontología (candiessiteA.owl).
5. Para cada familia perteneciente al conjunto de desconocidos, inicia
consultas remotas en cada GQS disponible (uno en cada nodo) acerca de
la estructura de dicha familia.
6.
Los modelos recibidos como respuestas (descModelo) se combinan con
el modelo local para ir construyendo las respuestas (modelo).
7. Si permanece alguna familia en la lista de desconocidos se vuelve al paso
4.
8. Se entrega la respuesta (modelo) al LQS que disparó la consulta y éste la
reenvía a la interface.
La decisión de si una familia es conocida o desconocida para un nodo determinado
descansa en el concepto MateriaPrima. Todas aquellas familias que son inferidas en cada
ontología local como MateriaPrima (no son ni FamiliaEnsamblada y ni FamiliaDerivada)
corresponden a familias desconocidas.
En cuanto a la interfaz que el sistema presenta al usuario, la cual se observa en la
Figura IV.16, ésta debe ser accedida mediante un navegador indicando el URL (Uniform
Resource Locutor) donde se está ejecutando el servicio. En la figura puede apreciarse un
inicio de sesión en la aplicación en el nodo EA. Los elementos de la interface son muy
simples: i) un control que permite seleccionar de una lista la familia para la cual se requiere
información (CarameloFrutaEnv en este caso) y ii) dos botones que permiten obtener para
dicha familia su estructura multinivel (botón Consultar) o su “lead time” (botón Cálculo Lead
Time).
217
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
Calcula sólo “lead
time“del producto
seleccionado
Calcula jerarquía
Estructural del producto
seleccionado
Figura VI.16. Interfaz de la aplicación ejecutándose en el nodo A
La Figura VI.17 presenta la respuesta que se obtiene al presionar el botón Consultar
para la selección de CarameloFrutaEnv. Dicha respuesta corresponde al primer nivel del
árbol de estructura de la familia. Se observan algunas propiedades que están definidas en la
ontología, a saber
Nombre Catálogo: Corresponde al URI que identifica la categoría definida
para dicha familia en la ontología catalogo.owl.
Nombre local: corresponde al identificador de la familia en la ontología local.
En dicho nombre, figura cuál es la ontología en la que se encuentra definido
ese recurso (candiessiteA.owl). A partir de dicha ontología, puede ser inferida
la organización que provee la Familia en cuestión.
“Lead time” relativo: indica el tiempo que demanda el ensamblado de sus
componentes. Esta propiedad, si bien no fue definida en el modelo
conceptual, se incorporó a la ontología PRONTO con el fin de verificar que
otro tipo de información de productos, más allá de las relaciones de
estructura, puede ser manipulado por la aplicación.
Componentes: en caso que la familia sea una FamiliaC, expandiendo esta
rama es posible acceder a la información de cada uno de sus componentes.
Figura VI.17. Primer nivel de la jerarquía estructural de CarameloFrutaEnv
218
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
En el escenario planteado, los componentes de una familia podrían ser suministrados
por más de un proveedor, con lo cual al momento de propagar la consulta sobre un
componente, es posible que se obtenga más de un respuesta para ésta. La cantidad de
respuestas se refleja en la cantidad de ramas etiquetadas con “Alternativa x” (con x entre 1
y N), que dependen de un componente dado y representan las N posibles formas de
obtenerlo. Estas formas podrían representar diferentes estructuras y/o distintos proveedores.
En la Figura VI.18 se muestran, señalados con un óvalo, los componentes de
CarameloFrutaEnv: PapelEnvoltorio, CarameloFrutaDes y PapelSeparador. Las ramas
correspondientes a los dos primeros se han expandido para mostrar su información. En
ambos casos puede observarse la existencia de una única alternativa (ramas etiquetadas
como Alternativa1).
En la información que se muestra para PapelEnvoltorio se aprecia que, además de
los datos que se explicaron para CarameloFrutaEnv, se presenta un atributo denominado
Cantidad Requerida que corresponde a la cantidad de composición asociada a la relación
entre CarameloFrutaEnv y el correspondiente componente. PapelEnvoltorio es una familia
simple, por lo tanto no tiene componentes. Los mismos datos se exponen para
CarameloFrutaDes; pero como se trata de un producto con estructura, tiene dos
componentes, MasaCAcido y RellenoFrutal, que se muestran también en la Figura VI.18.
Ontología donde está
definido PapelEnvoltorio
Indica alternativas posibles para
obtener el componente
PapelEnvoltorio
PapelEnvoltorio se
obtiene en 1.0 días
Se requiere 30.87 GR de
PapelEnvoltorio
Componentes de
CarameloFrutaDes
Figura VI.18. Expansión de una de las ramas de la estructura de CarameloFrutaEnv
En párrafos anteriores, se mencionó que los miembros de una familia pueden ser
provistos por más de un nodo de la red. Un ejemplo de esta situación se presenta con la
219
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
familia Ácido (uno de los componentes de MasaCAcido), el cual según la Tabla VI.1, es
provisto tanto por la Empresa C como por la Empresa D. Estas dos alternativas se pueden
observar en la Figura VI.19, donde puede inferirse que las mismas involucran diferentes
“lead times” para la provisión de la familia mencionada.
Ácido puede ser
provisto por
Empresa D con un
lead time de 3.0
Ácido puede ser
provisto por
Empresa C con un
lead time de 4.1
Figura VI.19. Alternativas para la obtención de un componente
El objetivo de la implementación de este prototipo ha sido poner a prueba la
factibilidad de una arquitectura para integrar información de productos entre participantes de
una cadena de colaboración, utilizando la ontología propuesta y tecnología de la Web
Semántica. Naturalmente, se trata de un caso muy simple que ha tratado de probar el
concepto, pero que necesariamente se deberá expandir en el futuro para considerar
diferentes requerimientos.
VI.5. CONCLUSIONES
En este capítulo se ha abordado la problemática asociada a una integración
inteligente de los sistemas de información, pertenecientes a una o varias organizaciones,
que trabajan de manera colaborativa, habiéndose planteado los inconvenientes ocasionados
por los diferentes tipos de heterogeneidad existentes entre ellos. Se ha concluido que una
integración integral impone la necesidad de lograr una interoperabilidad a nivel semántico.
Uno de los enfoques propuestos en la literatura para alcanzarla sugiere la definición de
ontologías, y su empleo de éstas en aplicaciones de la Web Semántica. Esta ha sido,
entonces, la orientación adoptada. A efectos de probar la factibilidad de esta propuesta se
efectúo:
220
____________________________ Uso del Modelo Propuesto en una Aplicación Basada en la Web Semántica
La implementación de una ontología de productos, denominada PRONTO,
que permite el uso de un vocabulario común para la representación de
información estructural de productos.
El desarrollo de un prototipo de aplicación que utiliza tecnología de la Web
Semántica para alcanzar la integración de información de productos a través
de un mecanismo de propagación de consultas entre nodos pares.
Tanto la ontología como el prototipo constituyen el resultado de una primera etapa
hacia la definición de un sistema PDM basado en la Web Semántica. En las siguientes
etapas de este proceso se abren dos líneas de trabajo:
Evolución de las ontologías: que abarca, por un lado, la incorporación a
PRONTO de nuevos conceptos relacionados con información no estructural
de productos y, por otro, su vinculación con la ontología SCOntology (Gonnet
y colab., 2007; Vegetti y colab., 2005b; Vegetti y colab., 2005c), la cual
provee la definición de conceptos relacionados con la gestión de las cadenas
de suministros.
Por otra parte, se debe analizar la definición de ontologías locales para
representar la información de productos particular a cada nodo de la red de
colaboración, las cuales deberán ser mapeadas con PRONTO.
Evolución de la aplicación: mediante la implementación incremental de
prototipos se pretende ir agregando funcionalidades al sistema y/o haciendo
más eficientes las existentes. En lo inmediato, se analizará la manera de
implementar un servicio de descubrimiento de nodos eficiente, por un lado y,
por otro, se tratará de resolver el problema de cómo la información de
productos gestionada por los sistemas de productos locales y almacenada en
diferentes formatos (tablas relacionales, archivos de texto o XML, bases de
datos orientadas a objetos), se mapean con instancias de las ontologías de
empresas.
221
VII. CONCLUSIONES FINALES Y FUTUROS TRABAJOS
VII.1. INTRODUCCIÓN
El presente capítulo tiene por objetivo resaltar las principales contribuciones de esta
Tesis, así como exponer las líneas de investigación que se abren a partir de los resultados
obtenidos.
VII.2. PRINCIPALES CONTRIBUCIONES
En las últimas décadas, las empresas de producción industrial han incrementado
significativamente el número de productos que entregan al mercado. El avance progresivo
de la tecnología ha afectado a los diferentes productos, en cuanto al número de variantes de
los mismos, su complejidad y el acortamiento de su ciclo de vida. Es por ello, que la forma
de representar (y almacenar) la información sobre los productos ha evolucionado para ir
adaptándose a estos cambios. En los últimos años, debido al acelerado avance de las
tecnologías de la información y las comunicaciones (TICs), estas transformaciones han sido
más importantes y complejas, y por lo tanto emerge la necesidad de contar con un modelo
de productos más eficiente, que además contemple los nuevos requerimientos impuestos
por estos avances.
Por otra parte, como se expuso en el Capítulo II, el modelo de productos de una
empresa se encuentra influenciado por la rama industrial a la que pertenece dicha
organización. En consecuencia, el conocimiento que deben representar estos modelos es
muy heterogéneo y está determinado por la naturaleza de los productos que cada industria
manufactura, y por el tipo de proceso productivo que emplea. Sin embargo, existe un
denominador común entre todos ellos, el cual está relacionado con la necesidad de
representar la forma en que los productos son elaborados. Esto es, su estructura, la cual
determina cómo las materias primas se transforman en semielaborados y éstos en
productos finales.
La influencia de las TICs y las particularidades de cada industria sobre las formas de
representar la información acerca de los productos, ha llevado a la necesidad de contar con
un modelo que posibilite la representación eficiente de:
estructuras de productos que posean un gran número de variantes;
221
____________________________________________________ Conclusiones Finales y Futuros Trabajos
productos con diferentes tipos de estructuras (descomposición, composición e
híbridas) y/o con estructuras alternativas; así como
distintas vistas de la estructura, de acuerdo a los requerimientos de diversas
unidades organizacionales.
Como respuesta a esta necesidad, el principal aporte de esta Tesis es la definición
de un modelo de productos que se centra en la información estructural de los mismos y que
brinda una solución a las exigencias antes mencionadas. Ello se logra mediante la
formalización del conocimiento a través de la integración de dos jerarquías que pueden
definirse para organizar la información relacionada con los productos, la jerarquía de
abstracción (AH) y la jerarquía estructural (SH).
La AH establece tres niveles de abstracción diferentes para la definición de
productos: Familia, Conjunto de Variantes y Producto. Esta jerarquía utiliza mecanismos
para mantener la consistencia de la información estructural entre los distintos niveles de
agregación. Además, podrían gestionarse a nivel de Familia o de Conjunto de Variantes
datos como demanda agregada, “lead time” agregado o costos agregados, los cuales no
necesariamente deberían estar almacenados sino que podrían ser calculados a través de
algoritmos que hagan uso de procesos de inferencia que empleen información del nivel más
bajo de la jerarquía (Producto). Contar con este tipo de información permite una gestión
adecuada de la información requerida en los procesos de toma de decisiones estratégicotácticos.
Por otra parte, la SH organiza el conocimiento relacionado con la información
estructural de los productos. Es una herramienta para manejar la información asociada con
las múltiples recetas o procesos disponibles para manufacturar un determinado producto o
grupo de productos similares. En cada uno de los niveles propuestos para la AH, la SH
define las relaciones que se establecen entre materias primas, semielaborados y productos
finales que participan en una estructura. Dichas relaciones se representan en el modelo por
el atributo componente, cuyos valores son inferidos de manera diferente en cada nivel. En
las entidades del nivel Familia dicho atributo infiere sus valores a partir de las clases
Estructura y Relación. En tanto que las clases Preselección y Selección permiten la
inferencia de los componentes en los niveles Conjunto de Variantes y Producto,
respectivamente. Una vista integral del modelo propuesto se presenta en la Figura VII.1, en
la cual pueden observarse las clases definidas para representar la información de productos
en cada uno de los niveles mencionados.
La Familia es el nivel más abstracto y define la información común a todos sus
miembros, los Conjuntos de Variantes. Cada familia, puede tener asociada más de una
222
____________________________________________________ Conclusiones Finales y Futuros Trabajos
estructura (estructuras alternativas), permitiendo así la definición de productos con múltiples
recetas de producción.
<<AP>>
<<AP>>
AbstraccionDeProducto
AbstraccióndeProducto
<<FS>>
FamiliaS
derivado
componente derivado
componente
<<F>>
Familia
<<FC>>
FamiliaC
estructuraDe
<<E>>
Estructura
<<RF>>
RestricciónF
<<RD>>
RelaciónD
<<ED>>
EstructuraD
<<RC>>
RelaciónC
<<EC>>
EstructuraC
estructuraAlternativa
tipoRelación
<<TR>>
TipoRelación
quantityPer
<<R>>
Relación prodFactor
max
<<VR>>
min
ValorRestringido
<<TR>>
<<Op>>
Optativa
Optativa
<<TR>>
<<Ob>>
Obligatoria
Obligatoria
<<TR>>
<<S>>
Selectiva
Selectiva
valor
<<
Presel>> preselecciona
<<Presel>>
Preseleccion
Preselección
Conjunto
Seleccionado
miembroDe
modificaciónAplicada
<<M>>
<<M>>
Modificacion
Modificación
<<Elim>>
Eliminación
Producto
<<RP>>
RestricciónP
<<U>>
Unidad
derivaDe
<<SVS>>
ConjuntodeVariantesS
miembroDe
miembroD
e <<P>>
<<UV>>
<<VU>>
ValorUnidad
ValorUnidad udeM
<<CVC>>
ConjuntodeVariantesC
<<CV>>
ConjuntodeVariantes
<<RCV>>
RestricciónCV
<<Num>>
<<Num>>
Numero
Número
nuevoQP
cambioAplicado
<<C>>
Cambio
relaciónModificada
<<Sele>>
<<SelFam>>
SelecciónFamilia
SelecciónFamilia
<<CC>>
CambioC
nuevoPF
<<Cpf>>
<<CPF>>
CambioPF
CambioPF
<<Cqp>>
<<CQP>>
CambioQP
CambioQP
<<PS>>
ProductoS
selecciona
<<PC>>
ProductoC
<< sele>>
Selección
Figura VII.1. Modelo de productos propuesto
A diferencia de las propuestas existentes, el modelo presentado posibilita la
representación de productos que se obtienen por ensamblado de partes, así como
productos pertenecientes a industrias que emplean materias primas no atómicas y las
descomponen o desagregan; es decir, a partir de las cuales se obtienen productos
intermedios que ingresan, luego, en el proceso productivo. Para lograr esto, el modelo
223
____________________________________________________ Conclusiones Finales y Futuros Trabajos
define dos tipos de estructuras (EstructuraC y EstructuraD), así como dos tipos de
relaciones (RelacionC y RelacionD).
En el nivel intermedio, denominado Conjunto de Variantes, se especifican
subconjuntos de miembros de una Familia, a partir de aspectos diferenciadores que los
distinguen unos de otros. Para el caso de familias compuestas, las diferentes estructuras
constituyen el punto a partir del cual se hace la separación de los distintos Conjuntos de
Variantes Compuestas. Para las familias simples, esta separación se puede dar de acuerdo
a varios criterios que están fuera del alcance de la Tesis.
Cada Conjunto de Variantes Compuestas plantea una estructura diferente, ya sea en
términos de modificaciones sobre la estructura de la familia que tiene asociada o, por medio
de la Preselección de Conjuntos de Variantes diferentes para cada uno de sus
componentes. Una Modificación define un conjunto de cambios, que pueden determinar la
eliminación de un componente o la alteración parcial de la cantidad de composición de
alguna relación, así como la elección de una de las relaciones selectivas (si existieran) de la
estructura que es modificada.
El último nivel propuesto, Producto, define los miembros de un Conjunto de Variantes
y corresponde a productos con existencia física real. Una instancia de Producto infiere su
estructura a partir de la definida para el Conjunto de Variantes del que es miembro. En este
nivel no se hacen modificaciones estructurales, sino que se definen aquéllos componentes
que aún no hubiesen sido especificados.
La propuesta incorpora el concepto de Restricción, el cual impide la derivación de
estructuras
de
productos
inválidas.
Esta
es
una
característica
importante
para
representaciones de productos en las cuales las especificaciones de los clientes tienen
influencia sobre el producto que se va a producir. De esta manera se evita que el cliente
requiera configuraciones incorrectas de productos. El modelo incorpora este concepto de
dos formas: i) explícitamente, a través de la definición de la clase Restricción, la cual permite
la especificación de restricciones tanto de incompatibilidad como de obligatoriedad entre las
relaciones que pueden establecerse entre entidades de un mismo nivel; y ii) de manera
implícita, al establecerse los límites mínimos y máximos a los valores de los atributos
quantityPer y prodFactor, que controlan los cambios que pueden hacerse a estos valores en
los diferentes conjuntos de variantes que se definen.
Las propuestas que han podido relevarse en la literatura ejemplifican los modelos
planteados mediante la aplicación de los mismos en situaciones o escenarios ficticios, que
no presentan la complejidad real que se debe administrar en los ámbitos productivos. A
diferencia de éstas, el modelo desarrollado en esta Tesis fue empleado con éxito en la
representación de los productos de dos empresas reales: una planta de golosinas y un
224
____________________________________________________ Conclusiones Finales y Futuros Trabajos
frigorífico. En el primer caso, se presenta una gran cantidad de productos con estructuras de
composición, y en el segundo, además del gran número de variantes, coexisten productos
que poseen estructuras de composición, descomposición e híbridas. En cualquiera de las
dos situaciones, el modelo fue aplicado de manera similar. Esto demuestra que éste es lo
suficientemente genérico como para representar información estructural de productos en
diferentes tipos de industria.
La adopción de la tecnología de objetos para la representación del modelo brindó
una herramienta flexible que ha permitido incorporar naturalmente cambios al mismo y dejar
explícitamente indicados sus puntos de extensión. Así, por ejemplo, podría adicionarse
información de utilidad para la función de planificación, relacionada con los pronósticos y
valores actuales de las demandas, proveedores y tiempos de entrega. También, podría
interesar mantener almacenados como parte del modelo algunos de los datos logísticos y
comerciales (tales como cubo logístico, condiciones de almacenamiento y transporte, etc.),
que generalmente son administrados por el área de Desarrollo de Productos, o los
parámetros correspondientes a las distintas políticas de abastecimiento y/o producción.
Asimismo, resultaría apropiado disponer de información que permita mantener la
trazabilidad.
Por otra parte, el modelo integrado que se propuso utilizando O-Telos como
lenguaje de formalización, provee un vocabulario común para la definición de estructuras de
productos y especifica la semántica de cada término de manera no ambigua, a través de la
lógica de predicados de primer orden. La implementación en ConceptBase de este modelo
permitió verificar la consistencia de la propuesta y posibilita la ulterior extensión del mismo
mediante la incorporación de atributos a las distintas clases y la inferencia de sus valores a
través de reglas.
Asimismo, a través del desarrollo del prototipo presentado en el Capítulo V, se
verificó la factibilidad del diseño e implementación de un sistema de procesamiento de
BOMs que se sustente en el modelo propuesto. Dicho prototipo posee gran flexibilidad de
adaptación a los cambios en virtud a la forma en que fue implementado. Otra característica
importante de la aplicación radica en que permite la incorporación de módulos adicionales,
con nuevas funcionalidades que den soporte a la integración entre tareas de planificación
con diferentes horizontes de tiempo (planificaciones estratégicas, tácticas y operativas),
debido a que especifica las dos jerarquías propuestas, de abstracción y estructural. Por otra
parte, permite el acceso de múltiples usuarios a través de navegadores de uso común y
desde sitios remotos a una única base de conocimientos. Este enfoque no posee la
suficiente flexibilidad para alcanzar la integración de la información de productos requerida
por la estrategia de manufactura colaborativa que actualmente están tratando de
implementar las empresas.
225
____________________________________________________ Conclusiones Finales y Futuros Trabajos
El Capítulo VI presenta una solución a este problema, permitiendo la distribución de
la información de productos en cada nodo participante de una cadena de colaboración, pero
manteniendo una integración semántica de la misma. Para ello, el modelo conceptual
propuesto en el Capítulo III, funda las bases para la definición de una ontología que permite
la integración semántica de la información que es gestionada y almacenada por los sistemas
de información de productos de cada organización.
Puntualmente, las principales contribuciones de esta Tesis son:
La definición de un modelo conceptual de productos que:
o
Formaliza el conocimiento acerca de los productos mediante la
integración de las jerarquías de abstracción y estructural.
o
Enfatiza la información estructural de los productos como núcleo de un
modelo de productos que puede ser extendido para incorporar
información no estructural.
o
Incorpora e integra los conceptos de familia de productos y BOMs
generativos para la representación eficiente de estructuras de
productos con un gran número de variantes.
o
Posibilita la representación de productos con diferentes tipos de
estructuras y de productos que poseen estructuras alternativas.
o
Limita la derivación de estructuras de productos inválidas por medio
de la aplicación del concepto de Restricción.
La representación del modelo a partir de una especificación que integra
tecnología de objetos y lógica de predicados de primer orden en el
lenguaje O-Telos y la construcción de una base de conocimientos en la
base de objetos deductiva ConceptBase, la cual permite:
o
Aplicar restricciones a la interpretación de los conceptos propuestos
en el modelo.
o
Extender el modelo con conceptos específicos de un tipo determinado
de industria.
o
Responder consultas sobre las estructuras de productos que pueden
derivarse.
o
Inferir nueva información a partir de lo explícitamente representado.
226
____________________________________________________ Conclusiones Finales y Futuros Trabajos
La definición de una ontología de productos, denominada PRONTO, que:
o
Especifica un vocabulario común para la representación de modelos
de productos, que permite la integración semántica de dichos
modelos.
o
Se ha implementado en OWL, el lenguaje estándar para la Web
Semántica, lo que posibilita la utilización de la ontología en
aplicaciones basadas en esta tecnología.
La definición de un prototipo de aplicación que utiliza tecnología de la
Web Semántica, el cual permite alcanzar la integración semántica de
información de productos (representada por medio de ontologías) a través de
un mecanismo de propagación de consultas entre nodos pares.
En síntesis, se puede afirmar que se ha formulado un modelo para representar y
gestionar la información estructural de productos que integra y extiende las propuestas
existentes, y que además brinda la posibilidad de incorporar otras dimensiones de la
información asociada a la manufactura de productos. La ontología del modelo conceptual ha
sido especificado formalmente (en O-Telos) y a partir de la misma, se generó una ontología
restringida (PRONTO) que pueda ser implementada en un lenguaje (OWL) interpretable en
el contexto tecnológico de la Web Semántica.
VII.3. TRABAJOS FUTUROS
A partir de la propuesta efectuada en esta Tesis se abren tres grandes líneas de
investigación que están relacionadas con la evolución:
del modelo conceptual;
de la ontología PRONTO y
del prototipo del sistema distribuido de información de productos.
La evolución de estas tres líneas no es totalmente independiente sino que se
influenciarán mutuamente. Así por ejemplo, la incorporación de nuevos conceptos al modelo
obligará su definición en PRONTO. Sin embargo, la ontología puede crecer aún sin la
incorporación de conceptos desde el modelo, ya que, por ejemplo, si se decide incorporar la
definición de reglas en base al cálculo de predicados, se podrían definir nuevas relaciones
cuyos valores se infieren mediante dichas reglas. Por otra parte, una evolución de la
ontología podría implicar un avance en el prototipo ya que posibilitaría la definición de
nuevas consultas basadas en los nuevos conceptos y/o reglas. Finalmente, el prototipo
podría evolucionar sin influencia de la ontología, por ejemplo, si se cambiara el mecanismo
de descubrimiento de nodos proveedores.
227
____________________________________________________ Conclusiones Finales y Futuros Trabajos
VII.3.1. Evolución del modelo conceptual
En cuanto a la evolución del modelo conceptual, pueden identificarse tres cuestiones
que el modelo debería contemplar en lo inmediato:
Unificación BOM-Routing
El “routing” detalla el proceso de manufactura de un ítem particular. Se especifica
para cada nodo del BOM convencional e incluye las operaciones a llevar a cabo, su
secuencia, los centros de trabajo involucrados, los tiempos de “setup” y producción.
Tradicionalmente existe una separación en la estructura de datos que se gestionan en el
piso de manufactura o “shop-floor”, un aspecto contiene la estructura del producto (BOM) y
otro la ruta a seguir por cada componente del producto en su proceso de fabricación
(“routing”). A efectos de mejorar la calidad de la información de productos y procesos es
necesario integrar estos dos aspectos dentro del modelo propuesto.
Manejo de versiones
Con el tiempo, las diferentes variantes de un producto (o el producto en sí mismo)
irán cambiando de acuerdo a lo que dicta la demanda de los clientes. Esta evolución
histórica es lo que se conoce como “versión” de un producto. Este concepto deberá ser
incorporado al modelo, para poder lograr “trazabilidad” sobre la evolución histórica del
producto, desde los procesos de diseño hasta la gestión de repuestos durante todo el ciclo
de vida de un producto. Si bien el atributo de trazabilidad de versiones no es crítico en el
caso de productos de consumo, sí lo es en industrias que fabrican productos que poseen
una vida útil considerable y debe ofrecerse servicio al cliente durante dicho período. Los
aviones, son un ejemplo de este tipo de productos, ya que un mismo modelo de avión,
fabricado en épocas diferentes, podría tener componentes distintos. Aquí, el manejo de
versiones es crítico, aún cuando el producto ya no se manufacture más. Este último caso
sería muy importante en los denominados Sistemas de Mantenimiento o de Gestión de
Activos.
Servicios de generación de información
La integración de las jerarquías de abstracción y estructural sienta las bases para la
formalización de mecanismos de generación de información de productos de importancia
para otros sistemas informáticos, a los cuales el modelo de productos abastece. Estos
mecanismos pueden extraer información a través de la AH, mediante procesos de
agregación o desagregación de información, o mediante la integración horizontal de
información definida para abstracciones de productos pertenecientes a un mismo nivel, las
que podrían estar vinculadas a través de la SH. Esta integración horizontal se da, por
ejemplo, en el cálculo de los tiempos mínimos y máximos de manufactura de un producto ya
228
____________________________________________________ Conclusiones Finales y Futuros Trabajos
que éstos se obtienen a partir de contabilizar los tiempos involucrados en los distintos
caminos existentes en su/s árbol/es de estructura.
Un proceso de agregación ocurre cuando el valor de una propiedad de una instancia
i de las abstracciones Familia o ConjuntodeVariantes es calculado a partir de los valores que
tiene esta propiedad en las instancias del correspondiente nivel inferior, relacionadas con i
por medio de una asociación miembroDe. Por ejemplo, el valor de la producción anual para
una familia determinada puede obtenerse por la agregación de los valores que dicho atributo
tiene en los conjuntos de variantes que son miembros de la familia. Dichos valores, a su vez,
pueden ser calculados por la agregación de los valores de producción anual de las
correspondientes instancias de Producto que son miembros de cada uno de los conjuntos
de variantes antes mencionados.
En sentido opuesto, un proceso de desagregación tiene como objetivo la generación
de información más detallada para los miembros de una determinada instancia de
AbstraccióndeProducto a partir de la información almacenada en el nivel superior. El
pronóstico de demanda para un conjunto de variantes determinado, por ejemplo, puede ser
usado para estimar la demanda de un producto que es miembro de dicho conjunto de
variantes, mediante la desagregación de información tomando como base a su participación
en el mercado.
VII.3.2. Evolución de PRoduct ONTOlogy y las ontologías locales
Independientemente de los cambios que deban hacerse sobre PRONTO, debidos a
modificaciones en el modelo conceptual, la evolución inmediata de la ontología consistirá en
la incorporación de la capacidad de definición de reglas deductivas en la misma.
La implementación de PRONTO mediante el lenguaje OWL define una base de
conocimientos que consiste de una terminología y un conjunto de aserciones acerca de los
individuos en términos de ese vocabulario. Un motor de inferencia basado en lógica
descriptiva, y que razona sobre dicha ontología, soporta patrones de inferencia como la
clasificación de conceptos y de individuos. La primera clasificación determina relaciones de
inclusión entre términos de un vocabulario, estableciendo una jerarquía de conceptos. Esta
clasificación, estipula que un concepto esté incluido dentro de otro más general
(superconcepto). Por su parte, la clasificación de individuos establece la pertenencia de
cada individuo a determinadas clases definidas en la ontología. Este proceso provee
información útil acerca de las propiedades de los individuos de un dominio de aplicación. Sin
embargo, dicho razonador no podría demostrar que un conjunto de afirmaciones implican
una conclusión, ya que no es posible la definición de reglas deductivas en el lenguaje
empleado para definir PRONTO. Esto impide por ejemplo, derivar los valores del atributo
229
____________________________________________________ Conclusiones Finales y Futuros Trabajos
componente para una FamiliaC determinada, razonamiento que sí es posible realizar en la
implementación efectuada en ConceptBase.
El problema de la incorporación de reglas a las ontologías definidas en OWL es
actualmente objeto de investigación, con lo cual no existen aún estándares definidos. Hay
sólo algunas propuestas enviadas al World Wide Web Consortium (W3C) para su análisis,
pero no tienen aún la categoría de recomendación. Una de ellas, es el lenguaje SWRL
(Semantic Web Rule Language) (Horrocks y colab., 2004), el cual extiende el conjunto de
axiomas OWL para incluir reglas tipo Horn. Por otra parte, las herramientas existentes para
definir reglas y razonar con ellas aún están en desarrollo. Protégé, por ejemplo, tiene un
“plug-in”, denominado SWRL Tab, que permite la definición de reglas, pero para poder
ejecutar la inferencia provee una interfaz con la máquina de inferencia Jess
(http://herzberg.ca.sandia.gov/jess/) y ejecuta un mapeo de la base de conocimientos OWL
en hechos Jess. SWRL.
Una de las actividades de investigación a corto plazo consiste, entonces, en analizar
cuál es la forma más conveniente de llevar a cabo la incorporación de reglas a la ontología
de manera de contar con capacidades deductivas como en la implementación desarrollada
en ConceptBase.
VII.3.3. Evolución del prototipo de sistema DPDM
En el Capítulo VI se presentó un sistema distribuido de consultas de información de
productos como resultado de una primera etapa hacia la definición de una infraestructura
para alcanzar la interoperabilidad de los sistemas de gestión de datos de productos,
directamente relacionados con el flujo de información y de materiales en cadenas de
colaboración entre empresas. Por tratarse de un prototipo, existen varias funcionalidades
que fueron implementadas de manera simplificada y que deberán ser mejoradas. Por
ejemplo, todo aquello asociado a la definición de instancias de la ontología que actualmente
está desconectada de los repositorios de información que utilizan las organizaciones. En
consecuencia, los pasos inmediatos en la evolución del prototipo consisten en la
implementación de un servicio de descubrimiento de fuentes de información eficiente, por
un lado y por otro, la incorporación de un servicio que lleve a cabo el mapeo entre instancias
almacenadas en una base de datos e instancias de la ontología.
El mecanismo de descubrimiento que utiliza actualmente el prototipo, si bien es
simple, no es eficiente ya que implica la propagación de consultas hacia todos los nodos (y
la recepción de las correspondientes respuestas) con la consecuente sobrecarga de las
redes de comunicaciones. Una posible mejora consistiría en determinar de antemano qué
nodos son capaces de responder la consulta y sólo propagarla hacia éstos. Las posibles
soluciones a este problema van desde mantener tablas con vinculaciones entre productos y
230
____________________________________________________ Conclusiones Finales y Futuros Trabajos
proveedores hasta la definición de ontologías que permitan inferir para una consulta dada
qué nodo posee “experiencia” para responderla. Se deberá determinar cuál de todas estas
alternativas es la más conveniente teniendo en cuenta un balance entre eficiencia y costo
computacional.
Actualmente, el prototipo utiliza como base de conocimientos archivos OWL donde
se encuentran definidas las instancias que representan la información de los productos de
cada una de las organizaciones. Sin embargo, si el sistema se ejecutara en una aplicación
real, debería obtener la información a partir de las bases de datos correspondientes a cada
uno de los nodos. Para ello, se deberán especificar mecanismos para definir los individuos
de las ontologías a partir de la información gestionada por los sistemas de información
locales. La forma en que dicha información se encuentra almacenada puede llegar a ser
muy diferente (tablas relacionales, archivos XML, archivos de texto, bases de datos
orientadas a objetos, etc.), implicando diversos grados de formalización. La integración de
estos mecanismos permitirá el empleo del sistema desarrollado en organizaciones reales.
Otro paso en la evolución del prototipo está vinculado con la incorporación de otras
ontologías que permitan representar los procesos logísticos que hacen uso del modelo de
productos. SCOntology (Gonnet y colab., 2007; Vegetti y colab., 2005b; Vegetti y colab.,
2005c) es una ontología que plantea la formalización y la extensión del modelo de referencia
SCOR (Supply Chain Operations Reference Model) (Stewart, 1997). Su integración con la
ontología de productos propuesta en esta Tesis debería ser analizada a mediano plazo, con
el fin de incluir SCOntology en el prototipo.
231
REFERENCIAS
Abramovici, M., y D. Gerhard. A Flexible Web-Based PDM Approach to Support
Abramovici y
Gerhard (2000)
Virtual Engineering Cooperation. Proceedings of the 33rd Hawaii International
Alexiev y
colab. (2004)
Alexiev, V., M. Breu, J. de Bruijn, D. Fensel, R. Lara y H. Lausen. Information
Conference on System Sciences, IEEE (2000).
Integration with Ontologies. John Wiley & Sons, Ltd. (2005).
ANSI/ISA-88.00.03-2003, Batch Control Part 3: General and Site Recipe Models
ANSI/ISA
(2003)
and Representation. Disponible en:
http://www.isa.org/MSTemplate.cfm?MicrositeID=275&CommitteeID=4737
(2003).
Baader, F. y W. Nutt. Basic Description Logics. En: The Description Logics
Baader y Nutt
(2003)
Handbook. Theory, Implementation and Applications. F. Baader, D. Calvanese,
D. McGuinness, D. Nardi y P. Pattel-Schenider Editores. Cambridge University
Press, 41-95 (2003).
Bechhofer, S.,
Bechhofer y
colab. (2004)
Berners-Lee y
colab. (2001)
Berners-Lee
(2003)
F. van Harmelen, J. Hendler, I. Horrocks, D. L. McGuinness, P.
F. Patel-Schneider y L. A. Stein. OWL Web Ontology Language Reference.
Recomendación del W3C. Disponible en: http://www.w3.org/TR/owl-ref/ (2004).
Bernes-Lee, T., J. Hendler, y O. Lassila. The semantic Web. Scientific American,
May (2001).
Bernes-Lee, T. WWW Past & Future. Presentación de la W3C. Disponible en:
http://www.w3.org/2003/Talks/0922-rsoc-tbl/ (2003).
Bonifacio, M. A Peer-to-Peer Solution for Distributed Knowledge Management.
Bonifacio
(2006)
En: Semantic Web and Peer-to-Peer. Decentralized Management and Exchange
of Knowledge and Information. S. Staab, y H. Stuckenschmidt Editores. Springer,
323-335 (2006).
233
________________________________________________________________________ Referencias
Booch y colab.
(1999)
Booch, G., J.Rumbaugh, e I. Jacobson. The Unified Modelling Language User
Guide. Addison Wesley (1999).
Borst, W.N. Construction of Engineering Ontologies for Knowledge Sharing and
Borst (1997)
Reuse. PhD. Thesis. University of Twente. (1997).
Brickley D., y Guha R. RDF Vocabulary Description Language 1.0: RDF Schema,
Brickley y
Guha (2004)
Recomendación del W3C. Disponible en: http://www.w3.org/TR/rdf-schema/
(2004).
Burkett, W. Product Data Markup Language: a New Paradigm for Product Data
Burkett (2001)
Exchange and Integration. Computer Aided Design, 33, 489-500 (2001).
Carboneras, M, C. Insa, y E. Salort. ERP Implementation in the Stone Industry:
Carboneras y
colab. (1992)
Special Difficulties and Solutions in the Production Area. Emerging Technologies
and Factory Automation. Proceedings. ETFA '03. IEEE Conference, 2, 146-150
(2003).
Chung, Y., y G. Fischer. Illustration of Object Oriented Databases for the
Chung y Fisher
(1992)
Structure of a Bill of Materials. Computers in Industry, 19, 257-270 (1992).
Chung, Y., y G. Fischer. A Conceptual Structure and Issues for an Object
Chung y Fisher Oriented Bill of Materials (BOM) Data Model. Computers and Industrial
(1994)
Engineering. 26, 321-339 (1994).
Dahchour, M. Integrated Generic Relationships into Object Models Using
Dahchour
(2001)
Metaclasses. Tesis (PhD). Université Catholique de Louvain, Faculté des
Sciences Appliquées (2001).
De Heij, J. Assessment of Business Information Systems by Data Structure.
De Heij (1996)
Ding y colab.
(2002)
Kluwer Bedrijfswetenschappen (1996).
Ding, Y., D. Fensel, M. Klein, y B. Omelayenko. The Semantic Web: Yet Another
Hip? Data and Knowledge Engineering, 41, 205-227 (2002).
234
________________________________________________________________________ Referencias
Fernandez-López,
FernándezLópez y colab.
(1997)
M.,
A.
Gómez-Pérez,
A.
Pazos,
y
J.
Pazos.
METHONTOLOGY: From Ontological Art Towards Ontological Engineering.
Spring Symposium on Ontological Engineering of AAAI. Universidad de Stanford
(1997).
Fisher, T. Batch control systems: design, application, and implementation.
Fisher (1990)
Resources for measurement and control series. Research Triangle Park, N.C.:
Instrument Society of America (1990).
Fox, M. The TOVE Project: A Common-sense Model of the Enterprise. Lecture
Fox (1992)
Notes in Artificial Intelligence, 604, 25-34 (1992).
Gennari, J., M. Musen, R. Fergerson, W. Grosso, M. Crubezy, H. Eriksson, N.
Genaro y
colab. (2002)
Noy, y S. Tu. The Evolution of Protégé: An Environment for Knowledge-Based
Systems Development. International Journal of Human-Computer Studies, 58,
89-123 (2002).
Giménez, D. Modelización de Información de Productos para Soportar la Gestión
Giménez (2005) Eficiente en una Empresa de Producción Industrial. Proyecto Final de Carrera
Ingeniería Industrial. Universidad Nacional del Litoral (2005).
Giménez, D., M. Vegetti, G. Henning, y H. Leone. Product Ontology. Defining
Giménez y
colab. (2006)
Product-related Concepts for Production Planning Activities. Computer Aided
Chemical Engineering, 21, 2219 – 2224 (2006).
Giménez, D., M. Vegetti, G. Henning, y H. Leone. PRoduct ONTOlogy. Defining
Giménez y
colab. (2007)
product-related concepts for logistics planning activities. Computers in Industry.
En prensa.
Gonçalves, R., y R. Scherer. From Design to Business, by Way of Product Life
Gonçalves y
Scherer (1999)
Cycle. The EAPPM initiative. Conference in Product Data Technology Europe
´99, Stavanger (1999).
235
________________________________________________________________________ Referencias
Gonnet, S. Un Modelo Integrado para la Captura y Administración del Proceso de
Gonnet (2003)
Diseño. Tesis Doctoral. Universidad Nacional del Litoral, Facultad de Ingeniería y
Ciencias Hídricas (2003).
Gonnet, S., M. Vegetti, H. Leone y G. Henning. SCOntology: A formal approach
towards a unified and integrated view of the supply chain. En: Adaptive
Gonnet y
colab. (2007)
Technologies and Business Integration: Social, Managerial and Organizacional
Dimensions. M. Cunha, B. Cortes y G. Putnik Editores. Idea Group, Inc., 137-158,
(2007).
Gruber, T. A translation Approach to Portable Ontology Specifications.
Gruber (1993)
Grüninger y
Fox (1995)
Knowledge Acquisition, 5, 199–220 (1993).
Grüninger, M., y M. Fox. Methodology for the design and evaluation of ontologies.
Workshop on Basic Ontological Issues in Knowledge Sharing (1995).
Gu, P. PML: Product Modelling Language. Computers in Industry, 18, 265-277
Gu (1992)
Gu y Chan
(1995)
(1992).
Gu, P., y K. Chan. Product Modelling Using STEP. Computer-Aided Design, 27,
163-179 (1995).
Gzara L., D. Rieub, y M. Tollenaerea. Product Information Systems Engineering:
Gzara y colab.
(2003)
an Approach for Building Product Models by reuse of patterns. Robotics and
Computer Integrated Manufacturing, 19, 239-261 (2003).
Hegge, H. Intelligent Product Family Descriptions for Business Applications. PhD
Hegge (1995)
Hepp (2004)
Herman (2007)
Thesis. Eindhoven University of Technology (1995).
Hepp, Martin F. (2004) Product Representation in the Semantic Web. Disponible
en SSRN: http://ssrn.com/abstract=545222 (2004).
Herman, I. Introduction to the Semantic Web. Conferencia en el congreso
"International Conference on Semantic Web & Digital Libraries" (2007).
236
________________________________________________________________________ Referencias
Horridge y
colab. (2004)
Horridge, M., H. Knublauch, A. Rector, R. Stevens, y C. Wroe. A Practical Guide
To Building OWL Ontologies Using The Protégé-OWL Plugin and CO-ODE Tools.
Edition 1.0 (2004).
Horrocks, I., D. Fensel , J. Broekstra, S. Decker, M. Erdmann, C. Goble, F. van
Horrocks y
colab. (2001)
Harmelen, M. Klein , S. Staab, R. Studer, y E. Motta. The Ontology Inference
Layer OIL. Technical Report (2001).
Horrocks, I., P. Patel-Schneider, H. Boley, S. Tabet, B Grosof, y M. Dean.
Horrocks y
colab. (2004)
SWRL: A Semantic Web Rule Language combining OWL and RuleML. W3C
Member Submision paper. Disponible en:
http://www.w3.org/Submission/2004/SUBM-SWRL-20040521/ (2004).
Hvan y colab.
(2003)
Hvan, L., J. Riis., y B. Hansen. CRC Cards for Product Modelling. Computers in
Industry, 50, 50-70 (2003).
Jarke, M., R. Gallersdörfer, M.A. Jeusfeld, M. Staudt, y S. Eherer. ConceptBase Jarke y colab.
(1995)
a Deductive Object Base for Meta Data Management. Journal of Intelligent
Information Systems, Special Issue on Advances in Deductive Object-Oriented
Databases, 4, 167-192 (1995).
Jarke, M., M. Jeusfeld, y C. Quix (Eds). ConceptBase V6.1. User Manual.
Jarke y colab.
(2003)
Disponible
en:
http://www-i5.informatik.rwth-aachen.de/CBdoc/userManual/
(2003).
Klein, M. DAML+OIL and RDF Schema representation of UNSPSC. Disponible
Klein (2002)
en: http://www.cs.vu.nl/~mcaklein/unspsc/ (2002).
Knutilla, A. C. Schelenoff, y R. Ivester. A Robust Ontology for Manufacturing
Knutilla y
colab. (1998)
Systems Integration. Proceedings of the 2
nd
International Conference on
Engineering Design and Automation (1998).
237
________________________________________________________________________ Referencias
Kondili, E., C. Pantelides, y R. Sargent. A General Algorithm for Short Term
Kondili y colab. Scheduling of Batch Operations – I. MILP Formulation. Computers and Chemical
(1993)
Engineering, 17, 211-227 (1993).
Liu, D., y W. Xiu. A review of Web-based Product Data Management Systems.
Liu y Xiu (2001)
Computers in Industry, 44, 251-262 (2001).
Manola, F., y E. Millar. RDR Primer. Recomendación del W3C. Disponible en:
Manola y Millar
(2004)
http://www.w3.org/TR/rdf-primer/ (2004).
Männistö y
colab. (1998)
Männistö
(2000)
Männistö y
colab. (2001)
Mc Guinness
(2001)
McGuinness y
van Harmelen
(2004)
Männistö, T., A. Peltonen, y R. Sulomen. Modeling Generic Product Structure in
STEP. Computer Aided Design, 30 (14), 1111-1118 (1998).
Männistö, T. A Conceptual approach to Product Families and their Evolution.
Ph.D. Thesis. Helsinki University of Technology (2000).
Männistö, T., H. Peltonen, y R. Sulomen. Multiple Abstraction Levels in Modelling
Product Structures. Data and Knowledge Engineering, 36, 55-78 (2001).
Mc
Guinness,
D.
UNSPSC
Ontology
in
DAML+OIL.
Disponible
en:
http://www.daml.org/ontologies/106 (2001).
McGuinness, D., y F. van Harmelen. OWL Web Ontology Language Overview.
Recomendación del W3C. Disponible en:
http://www.w3.org/TR/owl-features/
(2004).
Mervyn, F., A. Senthil Kumar, S. Bok, y A. Nee. Developing Distributed
Mervyn y
colab. (2004)
Applications for Integrated Product and Process Design. Computer Aided Design,
36, 679-689 (2004).
Motard, R. L., M. R. Blaha, N. L. Book, y J. J. Fielding, Process Engineering
Motard y colab. Databases -- From the PDXI Perspective. Proceedings de FOCAPD '94,
(1994)
Snowmass, Colorado (1994).
238
________________________________________________________________________ Referencias
Mylopoulos, J., A. Borgida, M. Jarke, y M. Kaubarakis. Telos: Representing
Mylopoulos y
colab. (1990)
Knowledge About Information Systems. ACM Transactions on Information
Systems, 8(4), 352-362 (1998).
Nahmias, S. Production and Operations Analysis, cuarta edición. McGraw-Hill/
Nahmias (2001)
Irwin, Nueva York (2001).
Niles, I. y A. Pease. Towards a Standard Upper Ontology. Proceedings de 2nd
Niles y Pease
(2001)
Olsen y colab.
(1997)
International Conference on Formal Ontology in Information Systems (FOIS2001). Chris Welty and Barry Smith Editores. (2001).
Olsen, K.A., P. Sætre, y A. Thorstenson. A Procedure- Oriented Generic Bill of
Materials. Computers and Industrial Engineering, 32, 29-45 (1997).
Persson-Dahlqvist, A., U. Asklund, I. Crnkovic, M. Larsson, y D. Svesson. PDM
Persson y
colab. (2002)
and SCM – Similarities and Differences. MRTC report ISSN 1404-3041 ISRN
MDH-MRTC-54/2002-1-SE, Mälardalen Real-Time Research Centre, Mälardalen
University (2002).
Rodríguez y
Al-Ashaab
(2005)
Rumbaugh y
colab. (1999)
Saaksvuori e
Immonen
(2005)
Rodríguez, K. y A. Al-Ashaab. Knowledge web-based system architecture for
collaborative product development. Computers in Industry, 56, 125-140 (2005).
Rumbaugh, J., I. Jacobson, y G. Booch. The Unified Modelling Language
Reference Manual. Addison Wesley (1999).
Saaksvuori, A., y A. Immonen. Product Lifecyle Management. Second Edition.
Springer-Verlag, Berlin- Heidelberg (2005).
Scheer, A.W. Business Process Engineering. Springer-Verlag, Berlin- Heidelberg
Scheer (1998)
Schönsleben
(1985)
(1998).
Schönsleben, P. Flexible Prodktionsplanung und Steuerung mit dem Computer.
CW- Publickationen, München (1985).
239
________________________________________________________________________ Referencias
Sheth, A. Changing focus on interoperability in information systems: from system,
syntax, structure to semantics, en Interoperating Geographic Information
Sheth (1998)
Systems. (Eds) Goodchild M., Eghenhofer M., Fegeas R., y Kottan R. Kluwer
(1998).
Simchi-levi y
colab. (2004)
Simchi-Levi, D., P. Kaminsky, y E. Simchi-Levi. Managing the Supply Chain,
McGraw-Hill, Nueva York (2004).
STEP. Product Data Representation and Exchange- Part 44, Product Structure
STEP (1991)
Configuration. Standard ISO 10303 (1991).
Stewart, G. Supply-chain operations reference model (SCOR): The first crossStewart (1997)
industry
framework
for
integrated
supply
chain
management.
Logistics
Information Management, 10, 62– 67 (1997).
Studer, R, V. Benjamins, y D. Fensel. Knowledge Engineering: Principles and
Studer y colab.
(1998)
Taleb y Gupta
(1997)
Uschold y
Grüninger
(1996)
Uschold y
colab. (1998)
Methods. IEEE Transactions on Data and Knowledge Engineering, 25, 161-197
(1998).
Taleb K, y S. Gupta Disassembly of Multiple Product Structures. Computers
industrial engineering, 32, 949-961 (1997).
Uschold, M. y M. Grüninger. Ontologies: Principles, Methods and Applications.
Knowledge Engineering Review, 11, 93-155 (1996).
Ushold, M., M. King, S. Moralee y S. Zorgios. The Enterprise Ontology. The
Knowledge Engineering Review, 13, 31-89 (1998).
Usher J. An Object-Oriented Approach to Product Modelling for Manufacturing
Usher (1993)
Van Veen y
Wortmann
(1992)
Systems. Computers and Industrial Engineering, 25, 557-560 (1993).
Van Veen, E.A., y J.C. Wortmann. Generative Bill of Materials Processing
Systems. Production Planning & Control, 3, 314-326 (1992).
240
________________________________________________________________________ Referencias
Vdovjak R., G.J. Houben, H. Stuchenschmidt y A. Aerts. RDF and Traditional
Vdovjak y
Query Architectures. En: Semantic Web and Peer-to-Peer. Decentralized
colab. (2006)
Management and Exchange of Knowledge and Information. S. Staab, y
H. Stuckenschmidt Editores. Springer. 41-58, (2006).
Vegetti, M., G. Henning y H. Leone. An Object Oriented Model for Complex Bill of
rd
Vegetti y colab. Materials in Process Industries. Proceedings de ENPROMER 2001- 3 Mercosur
(2001a)
Congress on Process Systems Engineering – 1st Mercosur Congress on
Chemical Engineering (2001).
Vegetti y colab.
(2001b)
Vegetti y colab.
(2002a)
Vegetti y colab.
(2002b)
Vegetti, M., G. Henning y H. Leone. Un Modelo de Estructura de Productos para
Industrias de Procesos. Proceedings de CAIP 2001 - 5º Congreso Interamericano
de Computación Aplicada a la Industria de Procesos (2001).
Vegetti, M., G. Henning y H. Leone. An Object Oriented Model for Complex Bill of
Materials in Process Industries. Brazilian Journal of Chemical Engineering,19,
491-497 (2002).
Vegetti, M., G. Henning y H. Leone. An Object Oriented Framework for Bill of
Materials in Process Industries. Computer-Aided Chemical Engineering, 10,
Elsevier, 991-996 (2002).
Vegetti, M., G. Henning y H. Leone. Hacia un Framework Orientado a Objetos
Vegetti y colab. para Bill of Materials Complejos. Proceedings de las 32 Jornadas Argentinas de
(2003)
Informática e Investigación Operativa (2003).
Vegetti, M., G. Henning y H. Leone. A PDM System for the Derivation of Products
Vegetti y colab. with Complex Structure in Process Industries. Proceedings de las 33 Jornadas
(2004)
Argentinas de Informática e Investigación Operativa (2004).
Vegetti, M., G. Henning y H. Leone. PRoduct ONTOlogy. Definition of an
Ontology for Complex Product Modelling Domain. Proceedings de ENPROMER
Vegetti y colab.
nd
th
(2005a)
2005 – 2 Mercosur Congress on Chemical Engineering and 4 Mercosur
Congress on Process Systems Engineering (2005).
241
________________________________________________________________________ Referencias
Vegetti, M., S. Gonnet, G. Henning y H. Leone. Information Logistics for Supply
Vegetti y colab. Chain Management within Process Industry Environments. Computer-Aided
(2005b)
Chemical Engineering, 20, Elsevier, 1231 -1236 (2005).
Vegetti, M., S. Gonnet, G. Henning y H. Leone. Towards a Supply Chain
Ontology of Information Logistics within Process Industry Environments.
Vegetti y colab. Proceedings de ENPROMER 2005 – 2nd Mercosur Congress on Chemical
(2005c)
Engineering and 4th Mercosur Congress on Process Systems Engineering.
(2005).
Versant (1998)
Vollman y
colab. (1992)
Wortmann
(1992)
Wortmann
(1995)
Zaniolo y
colab. (1997)
Versant Corporation, Versant Database Fundamentals 5.2 (1998).
Vollman, T., W. Berry, y D. Whibark. Manufacturing Planning and Control
rd
Systems. 3 edition. Business One Irwin, Honewood IL (1992).
Wortmann, J.C. Production Management Systems for One-of-a-Kind Products.
Computers in Industry, 19, 79-88 (1992).
Wortmann, J.C. Comparison of information systems for engineer-to-order and
make-to-stock situations. Computers in Industry, 26, 261-271 (1995).
Zaniolo, C. S. Ceri, Ch. Faloutsos, R. Snodgrass, V. Subrahmanian, y R. Zicari.
Advanced Database Systems. Morgan Kaufmann Publishers (1997).
Zha, X., y R. Sriram. Platform-based Product Design and Development: A
Zha y Sriram
(2006)
Zhou y colab.
(2003)
Knowledge Intensive support Approach and Implementation. Knowledge-Based
Systems, 19(7), 524-543 (2006).
Zhou, S., K. Chin, y Y. Xie. Internet-based Distributive Knowledge Integrated
System for Product Design. Computers in Industry, 50, 195-205 (2003).
242
APÉNDICE A. DEFINICIÓN DE VISTAS EN CONCEPTBASE
VII.4. INTRODUCCIÓN
Este apéndice tiene por objetivo introducir algunas de las vistas que pueden ser
definidas en el modelo para presentar la información de productos de acuerdo a diversos
requerimientos. Inicialmente se presentan algunas características de la definición de vistas
en ConceptBase.
VII.5. DEFINICIÓN DE CONSULTAS Y VISTAS EN CONCEPTBASE
ConceptBase (CB) significa base de conceptos, y tal como su nombre lo sugiere,
este lenguaje se puede utilizar para almacenar y consultar colecciones de descripciones
conceptuales. CB es considerada una base de datos de objetos deductiva debido a que
hereda las características de las bases de datos orientadas a objetos y de las bases de
datos deductivas. Las potencialidades de CB se sustentan en el modelo de objetos O-Telos,
un dialecto de Telos, que es un lenguaje de modelado conceptual para la representación del
conocimiento sobre sistemas de información. Telos ha sido uno de los primeros intentos de
integrar las propiedades de lenguajes deductivos y orientados a objetos.
Las principales características de CB son:
Provee distintas representaciones de los objetos almacenados en la base de
datos (lógica, basada en “frames” y gráfica).
Posee extensibilidad ilimitada por medio de jerarquías de meta clases.
El comportamiento de los objetos se representa a través de restricciones de
integridad y reglas deductivas que son asociadas a la clase como atributos.
Emplea reglas y restricciones de meta-nivel para la axiomatización de los
lenguajes definidos.
Los objetos pueden ser instancias de un número arbitrario de clases (múltiple
clasificación).
Las consultas se representan como clases con restricciones sobre los
miembros.
Provee el concepto de vistas complejas como extensión de las clases de
consultas.
243
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
Está dotado de una interfaz de programación basada en los métodos ASK y
TELL.
El presente apéndice está estructurado en base al manual del usuario de CB (Jarke y
colab., 2003) y a la introducción a CB realizada por Dahchour (2001), según lo presentado
en Gonnet (2003).
VII.5.1. Base de conocimientos y formas de representación. Conceptos generales
La base de conocimiento de CB está conformada por colecciones de objetos,
denominados proposiciones que representan individuos o atributos. Los individuos
representan
los
conceptos
de
objetos
(por
ejemplo,
una
familia
denominada
CarameloFrutalEnv) y clases (por ejemplo, FamiliaC) del modelo de objetos (Booch y colab.,
1999). Por otra parte, un atributo representa una relación binaria entre: i) dos individuos, ii)
un individuo y un atributo, o iii) dos atributos.
Existen tres constructores básicos utilizados en una base de conocimiento Telos, a
saber:
Instanciación: se denota como in y permite posicionar uniformemente a los
objetos en un número de niveles de instancias.
Especialización: se denota isA y permite especializar/generalizar objetos no
terminales (clases, metaclases, atributos, etc.).
Agrupamiento: se denota por with y permite agrupar en categorías de
atributos a una lista de estos últimos. Esta definición no se debe confundir
con el concepto de agregación, de la literatura de modelado orientado a
objetos.
La definición de atributos en CB es más versátil que la definición usual en el
modelado de objetos, principalmente porque el atributo es considerado una clase; por lo
tanto, es posible asignarle al mismo una estructura y puede ser instanciado.
VII.5.2. Sublenguaje Predicativo CBL
El ambiente CB utiliza el lenguaje predicativo CBL para expresar restricciones de
integridad, reglas deductivas, consultas y vistas. CB ofrece un conjunto de literales para el
lenguaje predicativo que provee acceso a la base de objetos que el mismo dispone. Las
sentencias de CB en la representación de “frame” poseen el formato simplificado indicado
en la Tabla A.1, en tanto las fórmulas (cláusulas) poseen el que se presenta en la Tabla A.2.
244
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
Tabla A.1: Formato de sentencias en un frame en CB
<objeto-o-nombreDeClase> in [<listaInstanciaDe>] [isA] [<listaSuperclase>] [with
[attribute  <nombreAtributoYaDefinido>
[<nombre> : <objeto-o-nombreDeClase> ;] * ]
[constraint  rule [<nombre> : $ <fórmula> $;] * ]
]
end
Tabla A.2: Formato de una fórmula
<fórmula>
→ exists <listaEnlaceVariable> <fórmula>
| forall <listaEnlaceVariable> <fórmula>
| not <fórmula>
| <fórmula> <= => <fórmula>
| <fórmula> = => <fórmula>
| <fórmula> and <fórmula>
| <fórmula> or <fórmula>
| <fórmula>
| <literal1>
|<literal2>
Las posibles alternativas a “literal1”, así como las correspondientes a “literal2”, que
aparecen en la tabla A.2, y su explicación se presentan en las Tablas A.3 y A.4. Cabe
destacar que las variables empleadas en “literal2” deben estar ligadas a un valor a través de
alguna de las alternativas de “literal1” antes de ser utilizadas.
Tabla A.3: Posibles alternativas para “literal1”
(x in c) o In(x, c)
El objeto x es instancia de la clase c.
(c isA d) o Isa(c, d)
El objeto c es una especialización de d.
(x m y) o A(x, m, y)
El objeto x tiene como atributo al objeto y; relación que es
una instancia de la categoría de atributo con etiqueta m.
A(x, m, p)
El objeto x tiene un atributo p, instancia de la categoría de
atributo m.
AL(x, m, l, y)
El objeto x tiene un objeto y con etiqueta l, instancia de la
categoría de atributo m.
245
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
Tabla A.4: Posibles alternativas para “literal2”
x < y, x > y, x <= y,
x >= y, x = y, x <> y
x menor a y, x mayor a y, x menor o igual a y, x mayor o
igual a y, x igual a y, x distinto a y.
x == y o IDENTICAL(x, y)
x e y son el mismo objeto.
Las variables utilizadas en las fórmulas deben ser cuantificadas y asignadas a un
determinado dominio; Esta cuantificación representa una relación de instancia y las
siguientes expresiones
forall x/C <formula>
exists x/C <formula>
son simplificaciones de:
forall x ( x in C) ==> <formula>
exists x (x in C) and <formula>
y serán utilizadas, en su forma simplificada, en la especificación de reglas y
restricciones asociadas a las definiciones de las clases que se presentan en el resto
del presente capítulo.
VII.5.3. Reglas Deductivas y Restricciones
Las reglas deductivas y las restricciones en CB son fórmulas (cláusulas) que se
definen en las clases como si fuesen atributos. Las reglas deductivas son aseveraciones
que imponen nuevos hechos, mientras que las restricciones controlan la información
provista por el usuario (son aseveraciones que deben ser satisfechas en todo momento).
Las restricciones y reglas pueden ser definidas por el usuario, aunque existen algunas
preestablecidas sobre el lenguaje y la semántica de los conceptos predefinidos en CB
(objeto, clase, metaclase, atributo, relaciones de instanciación y especialización). Ellas son
referidas como axiomas de O-Telos.
Cuando un usuario define restricciones y reglas, lo hace como atributos de una clase
dada. Estos atributos son instancias de constraint y rule, que a su vez son atributos
predefinidos de la meta clase Class. Entonces, una clase que especifica reglas y/o
restricciones debe explícitamente definirse como instancia de Class.
Por ejemplo, en la Especificación A.1 se presenta una regla denominada
compDirRule asociada a la clase FamiliaC, la cual permite inferir el/los componente/s de una
familia compuesta a partir de las relaciones que conforman su estructura.
246
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
Individual Familia in Class
FamiliaC with
attribute
componenteDirecto: Familia;
attribute, rule
compDirRule: $ forall f1/FamiliaC f2/Familia (exists e/EstructuraC
r/RelacionC (f1 estructuraDe e) and (e componente r) and
(r parte f2)) ==> (f1 componenteDirecto f2)$;
Especificación A.1. Ejemplo de regla deductiva en CB
En la Especificación A.2 se ejemplifica una restricción sobre los conjuntos de
variantes compuestas. La restricción RIII_1 especifica que para toda familia compuesta
debe existir al menos una estructura. Cabe aclarar que una restricción no permite incorporar
nuevos hechos a la base de conocimientos, sino que garantiza que la sentencia enunciada
se satisfaga en todo momento. En particular, la restricción presentada no permite incorporar
una FamiliaC sin una estructura asociada.
FamiliaC with
attribute
estructuraDe: Estructura
constraint
RIII_1:$forall f/FamiliaC (exists e/Estructura (f estructuraDe e))$
end
Especificación A.2. Ejemplo de restricción de integridad
VII.5.4. Consultas
En CB las consultas se definen como clases especiales cuyas instancias son las
respuestas a la consulta. A su vez, dichas clases se definen como instancias de la clase
predefinida QueryClass; clase que se introduce en la Especificación A.3.
Individual QueryClass in Class isA Class with
attribute
retrieved_attribute: Proposition;
computed_attribute: Proposition
end
Especificación A.3. Definición de la clase QueryClass
Si una QueryClass es definida como una especialización de otra clase definida (por
ejemplo FamiliaC) por el usuario, entonces todas las respuestas a dicha consulta deben ser
instancias de dicha clase. De esta manera, la consulta que se muestra en la Especificación
A.4 retorna todas las familias compuestas. En la misma puede observarse la definición de
retrieved_attribute. Éste permite recuperar los valores del atributo al cual se hace referencia
(estructuraDe), los cuales se asocian con cada una de las instancias de la superclase
FamiliaC, las que serán listadas como respuesta a la consulta. Si para alguna instancia de
247
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
FamiliaC este atributo no posee valor, dicha instancia no será incorporada como respuesta a
la consulta.
QueryClass FamiliaEnsamblada isA FamiliaC with
retrieved_attribute
estructuraDe: Estructura
end
Individual Estructura in Class end
Especificación A.4. Ejemplo de una consulta simple en CB
Si se desea construir consultas más expresivas es posible plantear restricciones en
las mismas, tal como se presenta en la Especificación A.5. En este caso, se restringen las
respuestas a aquellas familias que representan ensambladas. En la definición de la
restricción es posible utilizar la variable this, que asume como valor cualquier objeto de la
clase de consulta.
QueryClass FamiliaEnsamblada isA Familia with
retrieved_attribute
esEnsamblado : Boolean;
estructuraDe: Estructura
constraint
c : $ (this esEnsamblado TRUE) $
end
Especificación A.5. Ejemplo de una consulta con restricciones en CB
En una consulta también es posible definir nuevos atributos, los cuales se denominan
“computed_attributes” debido a que los valores asignados a los mismos se infieren por
medio de una restricción que se especifica en la consulta.
Por último, dado que las consultas se representan como clases, las mismas se
pueden almacenar en la base de conocimiento para su futuro uso. Además, CB permite la
definición de consultas genéricas (Especificación A.6) que serán ejecutadas luego con
ciertos parámetros. En este sentido, las consultas genéricas son consultas donde es posible
derivar nuevas consultas por medio de la sustitución de los parámetros.
Individual GenericQueryClass isA QueryClass with
attribute
parameter: Proposition
end
Especificación A.6. Definición de la clase GenericQueryClass
VII.5.5. Vistas
En ConceptBase las vistas extienden las consultas definidas en la sección previa. En
la Especificación A.7 se presenta la clase predefinida View.
248
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
Los atributos de la categoría inherited_attribute, que se utiliza en la definición de una
vista, son similares a retrieved_attribute mencionado en los párrafos previos, pero éstos no
deben necesariamente poseer instancias para pertenecer a las vistas. El atributo partof
permite la definición de vistas anidadas complejas, es decir, valores de atributos que
representan objetos complejos con sus propios atributos.
Class View isA GenericQueryClass with
attribute
inherited_attribute : Proposition;
partof : SubView
end
Especificación A.7. Definición de la Clase View
La vista que se muestra en la Especificación A.8 permite la visualización de las
relaciones con el valor, la unidad de medida y límites para el atributo quantityPer.
Se
muestran también algunas de las instancias que pertenecen a la vista.
View VistaRelaciones isA Relacion with
retrieved_attribute
parte:Familia
retrieved_attribute, partof
quantityPer : ValorRestringido with
retrieved_attribute
valor:Real;
udeM:Unidad;
min:Real;
max:Real
end
end
...
R03 in VistaRelacion with
quantityPer
quantityPer:30_87GR with
max
max : 50.0
min
min : 10.0
udeM
udeM : GR
valor
valor : 1046.530
end
parte
parte: PapelEnvoltorio
end
R04 in VistaRelacion with
quantityPer
quantityPer:930_233GR
with max
max : 1000.0
min
min : 900.0
udeM
udeM : GR
valor
valor : 930.233
end
parte
parte: CarameloFrutalDes
end
R05 in VistaRelacion with
quantityPer
quantityPer :33GR with
max
max : 50.0
min
min : 10.0
udeM
udeM : GR
valor
valor : 33.0
end
parte
parte : PapelSeparador
end
...
Especificación A.8. Definición y ejemplos de la vista VistaRelaciones
Tal como está definida la vista especificada en A.8, ésta devuelve todas las
instancias de Relación que se encuentren definidas en la base de datos. Si se desea filtrar
por una relación en particular debería agregarse una restricción como se muestra en la
Especificación A.9, en la cual se especifica que sólo forman parte de las vistas, aquellas
instancias equivalentes al individuo R04. Sin embargo, esta vista sirve sólo para ver dicha
249
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
relación. Si se desea la misma información sobre otra relación, es necesario armar otra vista
cambiando la restricción, lo cual hace que este tipo de vistas tenga relativa utilidad.
View VistaRelaciones2 isA Relacion
with
retrieved_attribute
parte:Familia
retrieved_attribute, partof
quantityPer : ValorRestringido
with
retrieved_attribute
valor:Real;
udeM:Unidad;
min:Real;
max:Real
end
constraint
c:$ (this == R04) $
end
R04 in VistaRelacionesv2 with
quantityPer
quantityPer : 930_233GR with
max
max : 1000.0
min
min : 900.0
udeM
udeM : GR
valor
valor : 930.233
end
parte
parte : CarameloFrutalDes
end
Especificación A.9. Definición e instancia de la vista VistaRelacionesv2
La vista previa puede hacerse más genérica a través de la definición de un
parámetro, tal como se muestra en la Especificación A.10. Al momento de ejecutar la vista,
se debe dar un valor para dicho parámetro.
View VistaRelacionesv3 isA Relacion with
attribute, parameter
unaRelacion: Relacion
retrieved_attribute
parte:Familia
retrieved_attribute, partof
quantityPer : ValorRestringido with
retrieved_attribute
valor:Real;
udeM:Unidad;
min:Real;
max:Real
end
end
Especificación A.10. Definición de la vista VistaRelacionesv3
Es importante mencionar que en las vistas presentadas como ejemplos, se define
otra vista anidada para el atributo quantityPer. La presencia de esta vista se indica por la
etiqueta partof (que en la Especificación A.10 está resaltada) la cual se agrega cuando se
introduce dicho atributo. Al igual que pueden establecerse restricciones para las vista
externas, como la que se muestra en la Especificación A.9, las vistas internas (o anidadas)
también pueden incorporar restricciones. Debe tenerse en cuenta en estos casos, que si se
utiliza la palabra clave this, ésta hace siempre referencia a los individuos que pertenecen a
la vista exterior.
Un ejemplo de una vista de este tipo se presenta en la Especificación A.11, en la
cual se muestra la vista VerRelacionesModificadas que recupera todas aquellas instancias
de Relación que están como valores del atributo relacionesModificadas de un conjunto de
250
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
variantes, mostrando para cada una de ellos cuales son los cambios que se aplican y el
valor del atributo newQP que cada uno de estos cambios establece. Se define la restricción
rint en la vista más interna, para asegurar que el cambio que se incluye en la vista se
corresponde con un cambio aplicado por un determinando conjunto de variantes. En dicha
restricción this hace referencia a una instancia de ConjuntodeVariantesC (que además es
instancia de la vista) y se navega por los atributos de las vistas internas utilizando los
caracteres “::”. Por ejemplo, this::relacioneModificadas::cambioAplicado, identifica el atributo
cambioAplicado que se encuentra en la vista más interna.
View VerRelacionesModificadas isA ConjuntodeVariantesC with
retrieved_attribute, partof
relacionesModificadas: RelacionC with
retrieved_attribute,partof
cambioAplicado : CambioC with
retrieved_attribute
newQP:ValorUnidad
constraint
rint:$ A(this, cambioAplicado, this::relacionesModificadas::cambioAplicado)$
end
end
end
Especificación A.11. Ejemplo de vistas anidadas
VII.6. ALGUNAS DE LAS VISTAS DEFINIDAS EN EL MODELO PROPUESTO
En primer lugar, se presenta en la Especificación A.12 la vista VistaAH, la cual infiere
la jerarquía de abstracción relacionada con cada una de las familias cargadas en la base de
datos. Los resultados se presentan en la vista A.13; en particular se muestra la jerarquía de
CarameloFrutalEnv.
En la Especificación A.14 se presenta la vista VistaFamilia, la cual permite visualizar
las estructuras de una familia con sus relaciones. Dicha vista es subclase de Familia y
hereda de ésta el atributo estructuraDe, el cual es especializado en VistaFamilia, como una
vista que obtiene los valores de los atributos conformadoPor, los cuales son mostrados
también a través de una vista anidada. Esta última permite recuperar los valores de los
atributos parte, quantityPer y tipoRelación para cada uno de los valores que se infieran para
el atributo conformadoPor
View VistaAH isA Familia with
retrieved_attribute,partof
miembros: ConjuntoVariante with
retrieved_attribute,partof
miembros:Producto with
retrieved_attribute
descripcion:String
end
end
end
Especificación A.12. Definición de la vista VistaAH
251
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
CarameloFrutalEnv in VistaAH with
miembros
COMPUTED_miembros_id_4773:BolsinFrutalROC
with
miembros
COMPUTED_miembros_id_5047:SE511605 with
descripcion
descripcion : "BolsínFrutilla5GREnv"
end ;
COMPUTED_miembros_id_5055:SE511606 with
descripcion
descripcion:"BolsínPera5GREnv"
end ;
COMPUTED_miembros_id_5063: SE511607 with
descripcion
descripcion:"BolsínPomelo5GREnv"
end ;
COMPUTED_miembros_id_5071:SE511609 with
descripcion
descripcion:"BolsínLima5GREnv"
end ;
COMPUTED_miembros_id_5079:SE511610 with
descripcion
descripcion:"BolsínCerez5GREnv"
end
end ;
COMPUTED_miembros_id_4850: VaritaKIM with
miembros
COMPUTED_miembros_id_4993 : SE508207 with
descripcion
descripcion : "Varita KIM Pera*Env"
end ;
COMPUTED_miembros_id_5001: SE508219 with
descripcion
descripcion : "Varita KIM Frutilla*Env"
end ;
COMPUTED_miembros_id_5023 :SE508246 with
descripcion
descripcion : "VaritaKIMDamascoEnv"
end ;
COMPUTED_miembros_id_5031: SE508247 with
descripcion
descripcion : "VaritaKIMPomeloEnv"
end ;
COMPUTED_miembros_id_5039: SE508253 with
descripcion
descripcion : "VaritaKIMLimaEnv"
end
end
end
...
Especificación A.13. Resultados de la vista VistaAH
View VistaFamilia isA FamiliaC with
inherited_attribute,partof
estructuraDe:Estructura with
retrieved_attribute ,partof
conformadoPor:Relacion with
inherited_attribute
parte:Familia;
quantityPer:ValorRestringido;
prodFactor:ValorRestringido;
tipoRelacion:TipoRelacion
end
end
end
CarameloFrutalDes in VistaFamilia with
estructuraDe
estructuraDe:CarameloFrutlDesSTR with
conformadoPor
conformadoPor1 : R09 with
parte
parte : MasaConAcido
quantityPer
quantityPer : 830GR
tipoRelacion
tipoRelacion : obligatoria
end ;
conformadoPor2 :R10 with
parte
parte : RellenoFrutal
quantityPer
quantityPer : 170GR
tipoRelacion
tipoRelacion : obligatoria
end
end
end
Especificación A.14. Definición e instancia de la VistaFamilia
A continuación se introducen una serie de vistas que permiten obtener información
sobre el nivel ConjuntodeVariantes. La primera que se presenta, en la Especificación A.15,
permite visualizar para cada conjunto de variantes, la familia de la que éste es miembro, sus
propios miembros, la estructura de la que se deriva y las modificaciones que se aplican a
ella.
En particular, la Especificación A.16 muestra el resultado de esta vista para los
conjuntos de variantes VaritaKIM y BolsínFrutalROC.
252
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
View VerInfoCVariantes isA ConjuntoVariante with
inherited_attribute
miembroDe:Familia;
derivaDe:Estructura
inherited_attribute, partof
modificacionAplicada: Modificacion with
inherited_attribute
cambioAplicado: Cambio
end
inherited_attribute, partof
preselecciona: Preseleccion with
inherited_attribute
conjuntoSeleccionado:ConjuntoVariante
end
end
Especificación A.15. Definición de la vista VerInfoCVariantes
BolsinFrutalKIM in VerInfoCVariantes2 with
modificacionAplicada
modificacionAplicada : Mod1BolsinFKIM with
cambioAplicado
cambioAplicado1 : CaR03m1;
cambioAplicado2 : CaR04m1;
cambioAplicado3 : CaR05m1
modifica
COMPUTED_modifica_id_3372:CarameloFrutlEnvSTR
end
preselecciona
preselecciona: PapelEnvKim with
ConjuntoSeleccionado
ConjuntoSeleccionado:EnvBolsinFrutalKIM
end ;
preselecciona2 : CarFrutal with
ConjuntoSeleccionado
ConjuntoSeleccionado : OvaloFrutal
end
miembroDe
miembroDe : CarameloFrutalEnv
derivaDe
derivaDe : CarameloFrutlEnvSTR
end
...
VaritaKIM in VerInfoCVariantes2 with
modificacionAplicada
modificacionAplicada : modVaritaKIM with
cambioAplicado
cambioAplicado : Ca2R03;
cambioAplicado2 : Ca2R04;
cambioAplicado3 : ElR05
modifica
COMPUTED_modifica_id_3372:CarameloFrutlEnvSTR
end
preselecciona
preselecciona1:CarVaritaFrutal with
ConjuntoSeleccionado
ConjuntoSeleccionado : VaritaFrutal
end ;
preselecciona2 : PreselVaritaKIM with
ConjuntoSeleccionado
ConjuntoSeleccionado : EnvVaritaKIM
end
miembroDe
miembroDe : CarameloFrutalEnv
derivaDe
derivaDe : CarameloFrutlEnvSTR
end
...
Especificación A.16. Algunos resultados de la vista VerInfoCVariantes
Las vistas que se presentan a continuación muestran las relaciones que son
afectadas por los diferentes cambios impuestos a una Estructura por una Modificación
establecida en un determinado ConjuntodeVariantes.
En la Especificación A.17 se presenta la vista RelacionesEliminadas, la cual es una
especialización de la clase Relación y tiene como parámetro una instancia de Modificación.
La misma hereda de la clase Relación el atributo parte y agrega el atributo cantidad que es
calculado por la vista. El resultado de esta vista son todas aquellas instancias de la clase
Relación que son eliminadas de una estructura al aplicar la Modificación que se recibe como
parámetro.
253
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
Individual RelacionesEliminadas in View isA Relacion with
attribute,parameter
mod : Modificacion
retrieved_attribute
parte:Familia
computed_attribute
cantidad: ValorUnidad
attribute,constraint
c:$exists c/Eliminacion (~mod cambioAplicado c) and(c relacionModificada this)and
((this quantityPer ~cantidad )or (this prodFactor ~cantidad ))$
end
Especificación A.17. Vista RelacionesEliminadas
La Especificación A.18 presenta la vista PreseleccionesRealizadas, la cual permite
recuperar los conjuntos de variantes que se preseleccionan para cada familia componente
que permanece en la estructura de un determinado ConjuntodeVariantesC. Estas familias
componentes son inferidas por la vista como valores del atributo parte de la vista anidada
definida para el atributo unReq. La restricción de la vista más externa permite filtrar aquellas
relaciones que corresponden a la estructura de la que deriva el conjunto de variantes y no
han sido eliminadas ni dejadas afuera de la misma por no ser seleccionadas. Para ello utiliza
el atributo enSTR, el cual se define en la clase ConjuntodeVariantesC y permite inferir,
cuales son estas relaciones según la Especificación A.19.
El resultado de la vista PreseleccionesRealizadas para los conjuntos de variantes
BolsínROC y VaritaKIM ya fueron presentados en la Especificaciones IV.11 IV.12 del
Capítulo IV.
Individual PreseleccionesRealizadas in View isA ConjuntoVarianteC with
retrieved_attribute,partof
unReq: Relacion with
attribute,retrieved_attribute,partof
parte : Familia with
retrieved_attribute,partof
miembros: ConjuntoVariante with
constraint
rint: $A(this, componenteDirecto,this::unReq::parte::miembros)$
end
end
attribute,inherited_attribute
tipoRelacion : TipoRelacion;
quantityPer : ValorRestringido;
prodFactor:ValorRestringido
constraint
rint:$ A(this,enSTR,this::unReq)$
end
end
Especificación A.18. Vista PreseleccionesRealizadas
254
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
Por otra parte, la restricción de la vista más interna (rint), que define los valores que
toma el atributo unReq, permite restringir los valores que puede tomar el atributo miembros,
a aquéllos que también sean inferidos por el atributo componenteDirecto. La definición de
este último y de las reglas que posibilitan inferir sus valores se introduce en la Especificación
A.20. En la Figura IV.13, que fuera presentada en el Capítulo IV, se pueden observar los
valores inferidos para este atributo para el conjunto de variantes BolsínROC.
ConjuntoVarianteC with
attribute
enSTR: Relacion
rule
enSTRrule1:$ forall r/Relacion (this unReq r) and
(this relacionesModificadas r) ==> (this enSTR r)$;
enSTRrule2:$ forall r/Relacion (this unReq r) and
(this relacionesSeleccionadas r) ==> (this enSTR r)$;
enSTRrule3:$ forall r/Relacion (this unReq r) and
(this relacionesNOAfectadas r) ==> (this enSTR r)$
end
Especificación A.19. Definición del atributo enSTR
ConjuntodeVariantesC with
attribute
componenteDirecto:ConjuntodeVariantes;
rule
compDirectoRule : $ $forall cv1/ ConjuntodeVariantesC cv2/ConjuntodeVariantes
( exists p/Preseleccion (cv1 preselecciona p) and
(p ConjuntoSeleccionado cv2))==> (cv1 componenteDirecto cv2)$;
compDirectoRule2 : $ forall cv2/ConjuntodeVariantesC (exists f/Familia
(this fliaComponente f) and not (this componenteAfectado f) and
(cv2 miembroDe f)) ==> (this componenteDirecto cv2) $
end
Especificación A.20. Definición de los atributos componenteDirecto en la clase
ConjuntodeVariantes
En el
nivel de Producto final se presenta la vista VistaProducto (Especificación
A.21), la cual permite conocer, para cada producto, de qué conjunto de variantes y de qué
familia es miembro; así como los productos que selecciona (mostrando también para ellos
los conjuntos de variantes y las familias a las que éstos pertenecen).
Individual VistaProducto in View isA Producto with
inherited_attribute
descripcion:String
inherited_attribute,partof
miembroDe:ConjuntoVariante with
inherited_attribute
miembroDe:Familia
end
inherited_attribute,partof
selecciona:Seleccion with
inherited_attribute
produtoElegido:Producto with
inherited_attribute,partof
miembroDe:ConjuntoVariante with
inherited_attribute
miembroDe:Familia
255
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
end
end
end
end
Especificación A.21. Definición de VistaProducto
El resultado de la ejecución de esta vista se presenta en la Especificación A.22. En
ella se observa sólo el producto SE508219 (VaritaKIMFrutillaEnv), el cual es miembro del
conjunto de variantes VaritaKIM, que a su vez, es miembro de la familia CarameloFrutalEnv.
Se presentan en la vista también los valores para el atributo selecciona. En particular se
muestran las instancias selCarVarita y SelEnvVaritaKIM, las cuales tienen como
productoElegido a
SE408193 y a ME308386, respectivamente. El primero es miembro del
conjunto de variantes VaritaFrutal y, transitivamente de CarameloFrutalDes. Por su parte, el
segundo producto seleccionado, pertenece al conjunto de variantes EnvVaritaKIM, el cual es
miembro de la familia PapelEnvoltorio.
SE508219 in VistaProducto with
miembroDe
miembroDe : VaritaKIM with miembroDe
miembroDe : CarameloFrutalEnv
end
selecciona
selecciona1 : selCarVarita with productoElegido
productoElegido : SE408193 with miembroDe
miembroDe : VaritaFrutal with miembroDe
miembroDe : CarameloFrutalDes
end
end
end ;
selecciona2 : selEnvVaritaKIM with productoElegido
productoElegido : ME308386 with miembroDe
miembroDe : EnvVaritaKIM with miembroDe
miembroDe : PapelEnvoltorio
end
end
end
descripcion
descripcion : "VaritaKIMFrutillaEnv"
end
Especificación A.22. Resultados de la vista VistaProducto para el producto
SE508219 (VaritaKIMFrutillaEnv)
256
VIII. APÉNDICE B. ESPECIFICACIÓN OWL DE PRONTO
VIII.1. INTRODUCCIÓN
El objetivo del presente apéndice es presentar la especificación OWL (Ontology Web
Language) de la ontología de productos propuesta, denominada PRONTO. Inicialmente se
explican brevemente algunos elementos del lenguaje para posteriormente presentar el
código mencionado.
VIII.2. ELEMENTOS DEL LENGUAJE OWL
El objetivo de OWL es proveer un lenguaje para la representación de información en
la Web Semántica. Una ontología definida en OWL consiste de individuos, propiedades y
clases. Existen tres sublenguajes (o especies), cuya intención es dar soporte a diferentes
grupos de usuarios con distintos niveles de expresividad. Estas especies son:
OWL Full: involucra todos los constructores de OWL. Brinda el mayor poder de
expresión, pero tiene baja performance para los razonamientos.
OWL DL: provee un dialecto de la lógica descriptiva. Define un compromiso entre
expresividad y decidibilidad. Impone restricciones en cómo deben usarse algunos
constructores del lenguaje; estas restricciones son necesarias para que OWL sea decidible.
OWL Lite: Provee el conjunto mínimo de constructores del lenguaje para usuarios
que requieren simplicidad para la definición de ontologías.
VIII.2.1.
Clases
Las clases proveen un mecanismo para agrupar recursos con similares
características. Cada clase OWL está asociada con un conjunto de individuos denominado
extensión de clase y tiene un significado intensional que está relacionado con su extensión
de clase pero no es igual a ésta. Así por ejemplo, dos clases pueden tener la misma
extensión pero ser diferentes clases, ya que su significado intencional es distinto.
Las clases en OWL se definen mediante axiomas de clase que se construyen a partir
de una o más descripciones de clase.
Descripciones de clases
Una
descripción de clase, define una clase OWL por su nombre o mediante la
especificación de su extensión de clase. Se distinguen seis tipos de descripciones de clases:
257
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
7. identificador;
8. una enumeración exhaustiva de los individuos que conforman su conjunto de
instancias;
9. la imposición de restricciones sobre alguna propiedad de la clase;
10.
la intersección de dos o más clases;
11.
la unión de dos o más clases;
12.
el complemento de una clase.
El primer tipo describe una clase por su nombre. Los cinco tipos restantes identifican
clases anónimas, a través de la imposición de restricciones sobre su extensión de clase.
Las descripciones de clases de tipo 2 a 6 describen, respectivamente, una clase que
contiene exactamente los individuos enumerados (tipo 2), una clase conformada por todos
los individuos que satisfacen una restricción sobre una de sus propiedades (tipo 3), o una
clase que satisface combinaciones booleanas de otras descripciones de clases (tipos 4, 5 y
6). La intersección, la unión y el complemento pueden ser vistos como los operadores
lógicos AND, OR y NOT. Por otra parte, los últimos 4 tipos conducen a descripciones de
clases anidadas.
La sintaxis de una descripción de tipo 1 se representa como instancia de owl:Class.
Un ejemplo de este tipo se introduce en la Especificación B.1, para la clase Estructura.
<owl:Class rdf:ID="Estructura"/>
Especificación B.1. Ejemplo de una descripción de clase tipo 1
OWL define dos identificadores de clases: owl:Thing y owl:Nothing. La extensión del
primero es el conjunto de todos los individuos. Por el contrario, la extensión de owl:Nothing
es el conjunto vacío.
Descripción de clase tipo 2: Enumeración
Se define mediante la propiedad owl:oneOf. El valor de ésta debe ser una lista de los
individuos que conforman la clase. La extensión de una clase descripta de esta manera
coincide exactamente con la lista de valores indicados para la propiedad mencionada. Por
ejemplo, la descripción presentada en la Especificación B.2 define la clase que contiene
todos los caramelos envueltos que se producen en la planta de caramelos del caso de
estudio.
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#CarameloFrutaEnv"/>
<owl:Thing rdf:about="#CarameloLecheEnv"/>
<owl:Thing rdf:about="#CarameloMielEnv"/>
258
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:Thing rdf:about="#CarameloMentolEnv"/>
</owl:oneOf>
</owl:Class>
Especificación B.2. Ejemplo de una descripción de clase tipo 2
Descripción de clase tipo 3: Restricción de propiedad
OWL distingue dos tipos distintos de restricciones de propiedad: restricciones de
valores y restricciones de cardinalidad. El primer tipo limita el rango de valores que puede
adoptar la propiedad, mientras que el segundo restringe la cantidad de valores que puede
tomar. En general tienen la forma que se indica en la Especificación B.3.
<owl:Restriction>
<owl:onProperty rdf:resource="(alguna propiedad)" />
(una restricción de valor o de cardinalidad)
</owl:Restriction>
Especificación B.3. Forma general de una descripción de clase tipo 3
Existen diferentes tipos de restricciones de valor y de cardinalidad. Los mismos se
presentan en la Tabla B.1.
Tabla B.1. Restricciones de propiedad definidas en OWL
Restricciones de Valor
Restricciones de Cardinalidad
owl:allValuesFrom
owl:cardinality
owl:someValuesFrom
owl:minCardinality
owl:hasValue
owl:maxCardinality
La restricción owl:allValuesFrom vincula una descripción de clase c1 con otra
descripción c2 o con un rango de valores. Describe la clase de todos los individuos que
tiene alguna instancia de c2 (o algún elemento del rango permitido) como valor de la
propiedad que está siendo restringida. La Especificación B.4 describe la clase anónima de
todos los individuos para los cuales la propiedad miembroDe sólo adopta valores de la clase
FamiliaC.
Es importante señalar que la restricción no indica que la propiedad sólo puede tener
como valores a instancias de FamiliaC, sino que esto es verdadero para las instancias de la
clase anónima que se está describiendo. Otro aspecto a resaltar es que esta restricción es
análoga al cuantificador universal de la lógica de predicados de primer orden (para cada
instancia de la clase que está siendo descripta todo valor de la propiedad debe cumplir la
restricción). Esto también implica que esta restricción es satisfecha trivialmente por aquellos
individuos que no tienen ningún valor para la propiedad que es restringida.
259
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:Restriction>
<owl:onProperty rdf:resource="#miembroDe"/>
<owl:allValuesFrom rdf:resource="#FamiliaC"/>
</owl:Restriction>
Especificación B.4. Descripción de clase tipo 3 - owl:allValuesFrom
Como en el caso anterior, la restricción owl:someValuesFrom, vincula una clase
anónima con una descripción de clase o un rango de datos. Describe la clase de todos los
individuos para los cuales al menos un valor de la propiedad restringida es instancia de la
descripción de clase. Es análoga al cuantificador existencial de la lógica de predicados de
primer orden.
El ejemplo que se presenta en la Especificación B.5 describe la clase de los
individuos que tiene al menos una instancia de estructura para la propiedad derivaDe.
<owl:Restriction>
<owl:onProperty rdf:resource="#derivaDe"/>
<owl:someValuesFrom rdf:resource="#Estructura"/>
</owl:Restriction>
Especificación B.5. Descripción de clase tipo 3 - owl:someValuesFrom
Finalmente, owl:hasValue vincula una descripción de clase con un valor v1 y
describe a la clase de todos los individuos para los cuales la propiedad restringida tiene al
menos un valor semánticamente igual a v1. Que dos individuos sean semánticamente
iguales implica que tienen el mismo URI (Unified Resource Identification) o que están
explícitamente definidos como el mismo individuo (owl: sameAs). Como ejemplo de uso del
constructor owl:hasValue, considérese la Especificación B.6 que define una clase anónima
cuyas instancias deben tener el valor True para la propiedad esDerivada.
<owl:Restriction>
<owl:onProperty rdf:resource="#esDerivada"/>
<owl:hasValue rdf:resource="#True"/>
</owl:Restriction>
Especificación B.6. Descripción de clase tipo 3 - owl:hasValuesFrom
En OWL, se supone que cualquier instancia de una clase puede tener un número
arbitrario de valores para una propiedad. Las restricciones de cardinalidad permiten imponer
limitaciones en la cantidad de valores que una propiedad puede tener. Los tres tipos de
restricciones de cardinalidad vinculan una descripción de clase con un valor de tipo
nonNegativeInteger (uno de los tipos de datos definidos por XML-Schema y que representa
a los números enteros positivos).
La restricción owl:maxCardinality describe la clase de todos los individuos que
tienen a lo sumo N valores semánticamente diferentes para la propiedad restringida. En
260
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
cambio, owl:minCardinality describe la clase de todos los individuos que tiene al menos N
valores semánticamente diferentes para la propiedad restrigida. Finalmente, owl:cardinality
define la clase de todos los individuos que tienen exactamente N valores semánticamente
distintos para dicha propiedad. La Especificación B.7 describe, por ejemplo, la clase de los
individuos que tiene como máximo dos estructuras.
<owl:Restriction>
<owl:onProperty rdf:resource="#estructuraDe" />
<owl:maxCardinality
rdf:datatype="&xsd;nonNegativeInteger">2</owl:maxCardinality>
</owl:Restriction>
Especificación B.7. Descripción de clase tipo 3 - owl:maxCardinality
En cambio, la Especificación B.8 define la clase de los individuos que tiene como
mínimo dos estructuras.
<owl:Restriction>
<owl:onProperty rdf:resource="#estructuraDe" />
<owl:minCardinality
rdf:datatype="&xsd;nonNegativeInteger">2</owl:minCardinality>
</owl:Restriction>
Especificación B.8. Descripción de clase tipo 3 - owl:minCardinality
Finalmente, la clase de todos los individuos que tiene exactamente dos estructuras
se define en la Especificación B.9.
<owl:Restriction>
<owl:onProperty rdf:resource="#estructuraDe" />
<owl:Cardinality rdf:datatype="&xsd;nonNegativeInteger">2</owl:Cardinality>
</owl:Restriction>
Especificación B.9. Descripción de clase tipo 3 - owl:Cardinality
Descripción de clase tipo 4: Intersección de dos o más clases
El elemento owl:intersectionOf vincula una clase con una lista de descripciones de
clases. Una sentencia de este tipo describe una clase para la cual la extensión de clase
contiene exactamente aquellos individuos que son miembros de la extensión de todas las
clases de la lista. En la Especificación B.10, el valor de owl:intersectionOf es una lista de
dos descripciones de clases definidas mediante enumeraciones. La primera posee cuatro
individuos y la segunda dos. El resultado de la intersección es una clase que contiene el
único individuo que pertenece a ambas enumeraciones: CarameloFrutaEnv.
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#CarameloFrutaEnv"/>
261
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:Thing rdf:about="#CarameloLecheEnv"/>
<owl:Thing rdf:about="#CarameloMielEnv"/>
</owl:oneOf>
</owl:Class>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#CarameloFrutaEnv"/>
<owl:Thing rdf:about="#CarameloMentolEnv"/>
</owl:oneOf>
</owl:Class>
</owl:intersectionOf>
</owl:Class>
Especificación B.10. Ejemplo de descripción de clase tipo 4
Es importante aclarar que el resultado es el indicado en el párrafo precedente con la
suponiendo que todos los individuos son diferentes. Esta situación no es por defecto
verdadera en OWL, ya que dicho lenguaje no aplica el criterio de unicidad de nombres (éste
indica que si dos individuos tienen identificadores diferentes, entonces son distintos). En
consecuencia, si se desea representar en OWL que dos individuos son diferentes esta
situación debe indicarse explícitamente mediante la sentencia owl:allDifferent.
Descripción de clase tipo 5: Unión de dos o más clases
Al igual que el tipo anterior, owl:unionOf vincula una clase con una lista de
descripciones de clase. Una sentencia de este tipo describe una clase anónima para la cual
la extensión contiene aquellos individuos que ocurren en al menos una de las extensiones
de clase de las descripciones de la lista. El ejemplo que se presenta en la Especificación
B.11
describe
una
clase
cuya
extensión
de
clase
contiene
cuatro
elementos:
CarameloFrutaEnv, CarameloLecheEnv, CarameloMielEnv y CarameloMentolEnv.
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
<owl:Thing rdf:about="#CarameloFrutaEnv"/>
<owl:Thing rdf:about="#CarameloLecheEnv"/>
<owl:Thing rdf:about="#CarameloMielEnv"/>
</owl:oneOf>
</owl:Class>
<owl:Class>
<owl:oneOf rdf:parseType="Collection">
262
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:Thing rdf:about="#CarameloFrutaEnv"/>
<owl:Thing rdf:about="#CarameloMentolEnv"/>
</owl:oneOf>
</owl:Class>
</owl: unionOf>
</owl:Class>
Especificación B.11. Ejemplo de descripción de clase tipo 5
Descripción de clase tipo 6: Complemento de una clase
Una sentencia owl:complementOf vincula una clase con una única descripción de
clase y describe una clase anónima cuya extensión contiene exactamente todos los
individuos que no pertenecen a la extensión de la clase que aparece como objeto de la
sentencia. El ejemplo que se presenta en la Especificación B.12 define una clase cuyos
individuos son todos aquellos que no poseen un valor para la propiedad derivaDe que
pertenezca a la clase Estructura.
<owl:complementOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#derivaDe"/>
<owl:someValuesFrom rdf:resource="#Estructura"/>
</owl:Restriction>
</owl:complementOf>
Especificación B.12. Ejemplo de descripción de clase tipo 6
Otro ejemplo más sencillo se muestra, a continuación, en la Especificación B.13. En
ésta se define una clase anónima cuyas instancias son todos aquellos individuos que no
pertenecen a la extensión de la clase FamiliaC.
<owl:Class>
<owl:complementOf>
<owl:Class rdf:about="#FamiliaC"/>
</owl:complementOf>
</owl:Class>
Especificación B.13. Otro ejemplo sencilla de descripción de clase tipo 6
Estas descripciones de clases que fueron presentadas constituyen los bloques
constructores a partir de los cuales se especifican los axiomas de clases, los cuales
permiten combinar varias descripiones para generar definiciones más complejas.
Axiomas de clases
Las descripciones de clases introducidas en los párrafos precedentes constituyen los
bloques básicos para la definición de clases a través de axiomas de clases. El axioma de
clase más simple consiste en una descripción de clase de tipo 1. Este axioma sólo indica la
existencia de la clase usando owl:Class con un identificador. Tal es el caso de la definción
de la clase Abstracción de producto que se muestra en la Especificación B.14.
263
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:Class rdf:ID="AbstracciondeProducto"/>
Especificación B.14. Ejemplo de un axioma de clase
Una definición de este tipo no brinda información sobre la clase excepto su nombre.
En general, los axiomas establecen condiciones necesarias y/o suficientes para que un
individuo sea instancia de la clase que dicho axioma define. Si una clase es descrita con su
nombre o solamente con condiciones necesarias, dicha clase es conocida como clase
primitiva. En caso de estar especificada a través de condiciones necesarias y suficientes se
la menciona como clase definida o no primitiva.
OWL provee tres constructores para combinar descripciones de clases en axiomas, a
saber: rdf:subClassOf, owl:equivalenteClass y owl:disjointWith, los cuales se introducen
a continuación
rdf: subClassOf
Este constructor es definido como parte de RDF-Schema y mantiene su significado
en OWL. Si una descripción de clase c1 se define como subclase de la descripción de clase
c2, entonces el conjunto de individuos en la extensión de clase de c1 es un subconjunto de
la extensión de clase de c2. Una clase es, por definición, subclase de si misma. Como
ejemplo, considérese el axioma de clase que define a FamiliaC.
En la Especificación B.15 se define que la clase FamiliaC es subclase de Familia y
de las clases anónimas definidas por las dos descripciones tipo 3.
Este axioma provee definiciones parciales; es decir, representa condiciones
necesarias pero no suficientes para determinar la pertenencia de un individuo a una clase.
Para efectuar especificaciones completas, OWL provee el constructor que se presenta en el
punto siguiente.
<owl:Class rdf:ID="FamiliaC">
<rdfs:subClassOf rdf:resource="#Familia"/>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#estructuraDe"/>
<owl:someValuesFrom rdf:resource="#Estructura"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#estructuraDe"/>
<owl:allValuesFrom rdf:resource="#Estructura"/>
</owl:Restriction>
</rdfs:subClassOf>
</owl:Class>
264
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
Especificación B.15. Ejemplo de uso del constructor owl:subClassOf
owl:equivalentClass
Un
axioma
de
clase
puede
contener
más
de
una
sentencia
de
owl:equivalenteClass. Esta sentencia vincula una descripción de clase con otra, indicando
que
ambas
poseen
el
mismo
conjunto
extensión.
Es
importante
aclarar
que
owl:equivalentClass no implica igualdad de clases (que las dos clases tengan el mismo
significado intencional), sino igualdad de sus extensiones de clase. La igualdad de clase se
define, en OWL, por el constructor owl:sameAs. Como ejemplo se presenta en la
Especificación B.16, el axioma que define a la clase MateriaPrima.
<owl:Class rdf:ID="MateriaPrima">
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="#esDerivada"/>
<owl:hasValue rdf:resource="#False"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#esEnsamblada"/>
<owl:hasValue rdf:resource="#False"/>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>
<rdfs:subClassOf rdf:resource="#Familia"/>
<owl:disjointWith rdf:resource="#FamiliaDerivada"/>
<owl:disjointWith rdf:resource="#FamiliaEnsamblada"/>
</owl:Class>
Especificación B.16. Ejemplo de uso del constructor owl: equivalentClass
En la Especificación B.16 se muestra la definición de una condición necesaria
(owl:subClassOf) y de axiomas owl:disjoinWith, los cuales se explican a continuación.
owl:disjointWith
Esta sentencia vincula dos descripciones de clase e indica que las extensiones de
clase de ambas no tienen individuos en común. Al igual que rdf:subClassOf define
condiciones necesarias para ser instancia de una clase. Un ejemplo simple, que se presenta
en la Especificación B.17, indica que las clases FamiliaC y FamiliaS son disjuntas.
<owl:Class rdf:ID="FamiliaC">
<owl:disjointWith rdf:resource="#FamiliaS"/>
</owl:Class>
Especificación B.17. Ejemplo de uso del constructor owl:disjointWith
265
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
Otro empleo de este constructor se presenta para la definición de axiomas de
cobertura, los cuales permiten restringir las instancias de una clase a una lista exhaustiva.
Un ejemplo es el axioma de cobertura que se define para la clase TipoRelacion y que se
muestra en la Especificación B.18. Para ello, el constructor owl:disjointWith se utiliza junto
con owl:unionOf y owl:equivalentClass.
<owl:Class rdf:ID="TipoRelacion">
<owl:equivalentClass>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Obligatoria"/>
<owl:Class rdf:about="#Optativa"/>
<owl:Class rdf:about="#Selectiva"/>
</owl:unionOf>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
<owl:Class rdf:ID="Obligatoria">
<rdfs:subClassOf rdf:resource="#TipoRelacion"/>
<owl:disjointWith rdf:resource="#Optativa"/>
<owl:disjointWith rdf:resource="#Selectiva"/>
</owl:Class>
<owl:Class rdf:ID="Optativa">
<rdfs:subClassOf rdf:resource="#TipoRelacion"/>
<owl:disjointWith rdf:resource="#Selectiva"/>
<owl:disjointWith rdf:resource="#Obligatoria"/>
</owl:Class>
<owl:Class rdf:ID="Selectiva">
<rdfs:subClassOf rdf:resource="#TipoRelacion"/>
<owl:disjointWith rdf:resource="#Obligatoria"/>
<owl:disjointWith rdf:resource="#Optativa"/>
</owl:Class>
Especificación B.18. Ejemplo de la definición de axiomas de cobertura
VIII.2.2.
Propiedades
Para vincular los individuos OWL utiliza las propiedades, las cuales se definen
mediante axiomas de propiedad y pueden ser de dos tipos:
Propiedades objeto: vinculan individuo con individuo, y se definen como una
instancia de la clase predefinida owl:ObjectProperty
Propiedades tipo de datos: asocian un individuo con valores de tipos de datos
XML-Schema y se definen como una instancia de la clase predefinida
owl:DatatypeProperty. Ambas son subclases de rdf:Property y en OWL-Full
no son disjuntas. En cambio, en OWL-DL no pueden contener instancias en
común.
266
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
Las propiedades se definen por medio de axiomas de propiedad, los cuales en su
forma más simple establecen la existencia de la propiedad. El axioma que se presenta en la
Especificación B.19 establece la existencia de una propiedad miembroDe, cuyos valores
deben ser individuos.
<owl:ObjectProperty rdf:ID="miembroDe"/>
Especificación B.19. Ejemplo de axioma de propiedad
A menudo los axiomas de propiedad definen otras características. OWL soporta los
siguientes constructores para estos axiomas:
Constructores de RDF-Schema
Relaciones con otras propiedades
Restricciones globales de cardinalidad
Características lógicas de las propiedades.
Constructores RDF-Schema
Un axioma rdfs:subPropertyOf define que una propiedad es subpropiedad de otra.
En otras palabras, si p1 es subpropiedad de p2, entonces las instancias de p1 deben ser un
subconjunto de las instancias de p2. Las instancias de una propiedad pueden verse como
pares cuyos elementos corresponden a los individuos (o valores) que dicha propiedad está
vinculando.
El constructor rdfs-domain vincula una propiedad con una descripción de clase,
indicando que los sujetos de dicha propiedad deben ser instancias de dicha descripción de
clase.
Por su parte, rdfs:range vincula una propiedad con una descripción de clase o con
una rango de datos. Especifica que los valores de la propiedad deben pertenecer a dicha
descripción de clase (owl:ObjetctProperty) o a valores de datos dentro del rango indicado
(owl:DatatypeProperty).
Como ejemplo de estos dos constructores se presenta, en la Especificación B.20, la
propiedad miembroDe, la cual vincula individuos de la clase ConjuntodeVariantes y con
instancias de Familia.
<owl:ObjectProperty rdf:ID="miembroDe">
<rdfs:domain rdf:resource="#ConjuntodeVariantes"/>
<rdfs:range rdf:resource="#Familia"/>
</owl:ObjectProperty>
Especificación B.20.
rdfs:range
Ejemplo de uso de los constructores rdfs:domain y
267
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
Para una propiedad pueden definirse más de un owl:domain (owl:range). En este
caso, se restringe el dominio (rango) de la propiedad a todos aquellos individuos que
pertenecen a la intersección de las descripciones de clases indicada por cada owl:domain
(owl:range) que se incorpore al axioma de dicha propiedad. Si se desea especificar que
múltiples clases pertenecen al dominio (al rango) de una propiedad, se debe utilizar una
descripción de clase owl:unionOf.
Relaciones con otras propiedades
Sintácticamente, este grupo de constructores son propiedades predefinidas de OWL
que poseen propiedades como dominio y rango.
El constructor owl:equivalentProperty indica que dos propiedades tienen la misma
extensión de propiedad pero representan conceptos distintos.
Las propiedades OWL tienen una dirección, es decir se interpretan de dominio a
rango. La sentencia owl:inverseOf permite definir una propiedad en el sentido opuesto. Un
axioma de la forma p1 owl:inverseOf p2 implica que para todo par (x,y) que es instancia de
p1, existe el par (y,x) como instancia de p2.
El ejemplo que la propiedad inversa de
miembroDe es la propiedad miembros
<owl:ObjectProperty rdf:ID="miembroDe">
<owl:inverseOf rdf:resource="#miembros"/>
</owl:ObjectProperty>
Especificación B.21. Ejemplo de uso del constructor owl:inverseOf
Restricciones de cardinalidad global sobre propiedades
El constructor owl:FunctionalProperty designa a una propiedad como funcional.
Una propiedad de este tipo tiene un único valor y por cada valor de x. En otras palabras no
pueden existir dos valores y1 e y2 tal que los pares (x, y1) y (x, y2) sean ambos instancias
de dicha propiedad. El ejemplo que se presenta en la Especificación B.22 indica que existe
una única Familia de la que un ConjuntodeVariantes es miembro.
<owl:ObjectProperty rdf:ID="miembroDe">
<rdf:type rdf:resource="&owl;FunctionalProperty"/>
<rdfs:domain rdf:resource="#ConjuntodeVariantes"/>
<rdfs:range rdf:resource="#Familia"/>
</owl:ObjectProperty>
Especificación B.22. Ejemplo de uso del constructor owl: FunctionalProperty
Una forma sintácticamente equivalente de expresar el axioma anterior se presenta en
la Especificación B.23.
<owl:ObjectProperty rdf:ID="miembroDe">
<rdfs:domain rdf:resource="#ConjuntodeVariantes"/>
268
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<rdfs:range rdf:resource="#Familia"/>
</owl:ObjectProperty>
<owl:FunctionalProperty rdf:about="miembroDe"/>
Especificación B.23. Constructor owl: FunctionalProperty.
Afirmar que una propiedad P es owl:InverseFuncionalProperty, implica que un
valor y sólo puede ser valor de P para un único valor de x; es decir, no existen dos
instancias distintas x1 y x2 tal que los pares (x1,y) y (x2,y) sean instancias de P. Un ejemplo
de este tipo de propiedad se presenta en la Especificación B.24.
<owl:ObjectProperty rdf:ID="miembros">
<rdf:type rdf:resource="&owl;InverseFunctionalProperty"/>
<rdfs:domain rdf:resource="#Familia"/>
<rdfs:range rdf:resource="#ConjuntodeVariantes"/>
<owl:inverseOf rdf:resource="#miembroDe"/>
</owl:ObjectProperty>
Especificación
B.24.
owl:InverseFunctionalProperty
Ejemplo
de
uso
del
constructor
El axioma presentado en la Especificación B.24 implica que para cada objeto de la
sentencia
miembros
(algún
ConjuntodeVariantes)
debería
ser
posible
identificar
unívocamente el sujeto (alguna instancia de Familia).
Características lógicas de las propiedades
Cuando se define una propiedad P como transitiva, esto significa que si los pares
(x,y) e (y,z) son instancias de P se puede inferir que el par (x,z) también es instancia de P.
En OWL esto se representa haciendo que P sea instancia de la clase predefinida
owl:TransitiveProperty.
Un ejemplo de este constructor se presenta en la Especificación B.25. A partir de
este axioma un razonador es capaz de inferir que si CarameloFrutalEnv, CarameloFrutalDes
y RellenoFrutal son instancias de Familia y, además, RellenoFrutal esComponente de
CarameloFrutalDes y CarameloFrutalDes esComponente de CarameloFrutalEnv, entonces
RellenoFrutal esComponente de CarameloFrutalEnv.
<owl:TransitiveProperty rdf:ID="esComponente">
<rdfs:domain rdf:resource="#Familia"/>
<rdfs:range rdf:resource="#Familia"/>
</owl: TransitiveProperty>
Especificación B.25. Ejemplo de uso del constructor owl:TransitiveProperty
Si se expresa una propiedad P como instancia de la clase predefinida
owl:SymmetricProperty, se está indicado que dicha propiedad es simétrica. Esto implica
que si el par (x,y) es instancia de P, entonces el par (y,x) también es instancia. Como
269
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
ejemplo de este tipo de propiedad se presenta, en la Especificación B.26, un axioma que
define la propiedad simétrica estructuraAternativa.
<owl:SymmetricProperty rdf:ID="estructuraAlternativa">
<rdfs:domain rdf:resource="#Estructura"/>
<rdfs:range rdf:resource="#Estructura"/>
</owl:ObjectProperty>
Especificación B.26. Ejemplo de uso del constructor owl:SymmetricProperty
A partir del axioma anterior, y considerando que CuadrilConTapaSTR1 y ,
CuadrilConTapaSTR2 son instancias de Estructura y que CuadrilConTapaSTR1 es
estructuraAlternativa de CuadrilConTapaSTR2, un razonador inferirá que CuadirlCon
TapaSTR2 es estructuraAlternativa de CuadrilConTapaSTR1.
VIII.2.3.
Individuos
Los individuos se definen mediante axiomas de individuos, también llamados hechos.
OWL permite la aseveración de
Hechos sobre pertenencia a una clase y valores de propiedades.
Hechos sobre la identidad de los individuos
La mayor parte de los hechos son sentencias que determinan que un individuo
pertenece a una clase o define los valores de las propiedades de dicho individuo. Por
ejemplo, en la Especificación B.27, se define el individuo CarameloFrutaEnv como instancia
de FamiliaC y se establecen los valores de sus propiedades.
<pronto:Family rdf:ID="CarameloFrutaEnv">
<esDerivada rdf:resource="#false"/>
<esEnsamblada rdf:resource="#true"/>
<pronto:equivalenteA rdf:resource="http://www.owlontologies.com/catalogo.owl#CarameloFrutaEnv"/>
<pronto:estructuraDe rdf:resource="#CarameloFrutaEnvSTR"/>
</pronto:Family>
Especificación B.27. Definición de la instancia CarameloFrutaEnv
Por otra parte, OWL provee tres constructores para especificar hechos sobre la
identidad de los individuos:
owl:sameAs: se utiliza para indicar que dos URI se refieren al mismo
individuo
270
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
owl:differentFrom: se utiliza para indicar que dos URI se refieren a dos
individuos diferentes
owl:allDifferent: permite especificar que los individuos que pertenecen a una
lista son todos diferentes.
VIII.3. CÓDIGO OWL DE PRODUCT ONTOLOGY
A continuación se presenta el código OWL de la ontología propuesta, generado a
través editor de ontologías Protégé versión 3.2.1. La primera parte del código define los
espacios de nombres que se utilizan y las ontologías que son importadas en PRONTO.
<?xml version="1.0"?>
<rdf:RDF xmlns="http://www.pronto.com/[email protected]#"
xml:base="http://www.pronto.com/[email protected]"
xmlns:sumo="http://www.owl-ontologies.com/sumo.owl#"
xmlns:eclass="http://www.owl-ontologies.com/[email protected]#"
xmlns:xsd="http://www.w3.org/2001/XMLSchema#"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:swrl="http://www.w3.org/2003/11/swrl#"
xmlns:protege="http://protege.stanford.edu/plugins/owl/protege#"
xmlns:swrlb="http://www.w3.org/2003/11/swrlb#"
xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#"
xmlns:daml="http://www.daml.org/2001/03/daml+oil#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:owl="http://www.w3.org/2002/07/owl#"
xmlns:cat="http://www.owl-ontologies.com/catalogo.owl#">
<owl:Ontology rdf:about="Ontología de productos">
<owl:imports rdf:resource="http://www.owl-ontologies.com/catalogo.owl"/>
<owl:imports rdf:resource="http://www.owl-ontologies.com/sumo.owl"/>
</owl:Ontology>
VIII.3.1.
Definición de conceptos incluidos en PRONTO
A continuación se presentan los axiomas de clase y de propiedades que forman
parte de la ontología de productos propuesta. Las clases y las propiedades definidas se
encuentran ordenadas alfabéticamente para una fácil localización.
<owl:Class rdf:ID="AbstracciondeProducto"/>
<owl:Class rdf:ID="Boolean">
<owl:equivalentClass>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Falso"/>
<owl:Class rdf:about="#Verdadero"/>
</owl:unionOf>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
271
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:Class rdf:ID="Cambio"/>
<owl:ObjectProperty rdf:ID="cambioAplicado">
<rdfs:domain rdf:resource="#Modificacion"/>
<rdfs:range rdf:resource="#Cambio"/>
<owl:inverseOf rdf:resource="#IdecambioAplicado"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="CambioC">
<rdfs:subClassOf rdf:resource="#Cambio"/>
<owl:disjointWith rdf:resource="#Eliminacion"/>
</owl:Class>
<owl:ObjectProperty rdf:ID="componente">
<rdf:type rdf:resource="owl:TransitiveProperty"/>
<rdfs:domain rdf:resource="#FamiliaC"/>
<rdfs:range rdf:resource="#Familia"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="componenteDirecto">
<rdfs:domain rdf:resource="#FamiliaC"/>
<rdfs:range rdf:resource="#Familia"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="conformadoPor">
<rdfs:domain rdf:resource="#Estructura"/>
<rdfs:range rdf:resource="#Relacion"/>
<owl:inverseOf rdf:resource="#perteneceA"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="ConjuntodeVariantes">
<rdfs:subClassOf rdf:resource="#AbstracciondeProducto"/>
</owl:Class>
<owl:Class rdf:ID="ConjuntodeVariantesC">
<owl:equivalentClass>
<owl:Class>
272
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:intersectionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="#derivaDe"/>
<owl:allValuesFrom rdf:resource="#Estructura"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#derivaDe"/>
<owl:someValuesFrom rdf:resource="#Estructura"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#miembroDe"/>
<owl:allValuesFrom rdf:resource="#FamiliaC"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#miembroDe"/>
<owl:someValuesFrom rdf:resource="#FamiliaC"/>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>
<rdfs:subClassOf rdf:resource="#ConjuntodeVariantes"/>
<owl:disjointWith rdf:resource="#ConjuntodeVariantesS"/>
</owl:Class>
<owl:Class rdf:ID="ConjuntodeVariantesS">
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="#miembroDe"/>
<owl:allValuesFrom rdf:resource="#FamiliaS"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#miembroDe"/>
<owl:someValuesFrom rdf:resource="#FamiliaS"/>
</owl:Restriction>
<owl:Class>
<owl:complementOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#derivaDe"/>
<owl:someValuesFrom rdf:resource="#Estructura"/>
</owl:Restriction>
</owl:complementOf>
</owl:Class>
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>
<rdfs:subClassOf rdf:resource="#ConjuntodeVariantes"/>
<owl:disjointWith rdf:resource="#ConjuntodeVariantesC"/>
</owl:Class>
273
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:ObjectProperty rdf:ID="conjuntoSeleccionado">
<rdfs:domain rdf:resource="#ConjuntodeVariantesC"/>
<rdfs:range rdf:resource="#Preseleccion"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="derivaDe">
<rdfs:range rdf:resource="#Estructura"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="derivado">
<rdf:type rdf:resource="owl:TransitiveProperty"/>
<rdfs:domain rdf:resource="#FamiliaC"/>
<rdfs:range rdf:resource="#Familia"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="derivadoDirecto">
<rdfs:domain rdf:resource="#FamiliaC"/>
<rdfs:range rdf:resource="#Familia"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="Eliminacion">
<rdfs:subClassOf rdf:resource="#Cambio"/>
<owl:disjointWith rdf:resource="#CambioC"/>
</owl:Class>
<owl:ObjectProperty rdf:ID="equivalenteA">
<rdfs:domain rdf:resource="#Family"/>
<rdfs:range rdf:resource="http://www.owlontologies.com/catalogo.owl#eClassCategory"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="esDerivada">
<rdfs:domain rdf:resource="#Familia"/>
<rdfs:range rdf:resource="#Boolean"/>
</owl:ObjectProperty>
274
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:ObjectProperty rdf:ID="esEnsamblada">
<rdfs:domain rdf:resource="#Familia"/>
<rdfs:range rdf:resource="#Boolean"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="Estructura"/>
<owl:ObjectProperty rdf:ID="estructuraAlternativa">
<rdf:type
rdf:resource="owl:SymmetricProperty"/>
<rdf:type
rdf:resource="owl:TransitiveProperty"/>
<rdfs:domain rdf:resource="#Estructura"/>
<rdfs:range rdf:resource="#Estructura"/>
<owl:inverseOf rdf:resource="#estructuraAlternativa"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="EstructuraC">
<rdfs:subClassOf rdf:resource="#Estructura"/>
<owl:disjointWith rdf:resource="#EstructuraD"/>
</owl:Class>
<owl:Class rdf:ID="EstructuraD">
<rdfs:subClassOf rdf:resource="#Estructura"/>
<owl:disjointWith rdf:resource="#EstructuraC"/>
</owl:Class>
<owl:ObjectProperty rdf:ID="estructuraDe">
<rdfs:domain rdf:resource="#Familia"/>
<rdfs:range rdf:resource="#Estructura"/>
<owl:inverseOf rdf:resource="#IdeestructuraDe"/>
</owl:ObjectProperty>
<Falso rdf:ID="False"/>
<owl:Class rdf:ID="Falso">
<rdfs:subClassOf rdf:resource="#Boolean"/>
</owl:Class>
<owl:Class rdf:ID="Familia">
<rdfs:subClassOf rdf:resource="#AbstracciondeProducto"/>
</owl:Class>
275
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:Class rdf:ID="FamiliaC">
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#estructuraDe"/>
<owl:someValuesFrom rdf:resource="#Estructura"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf>
<owl:Restriction>
<owl:onProperty rdf:resource="#estructuraDe"/>
<owl:allValuesFrom rdf:resource="#Estructura"/>
</owl:Restriction>
</rdfs:subClassOf>
<rdfs:subClassOf rdf:resource="#Familia"/>
<owl:disjointWith rdf:resource="#FamiliaS"/>
</owl:Class>
<owl:Class rdf:ID="FamiliaDerivada">
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="#esDerivada"/>
<owl:hasValue rdf:resource="#True"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#esEnsamblada"/>
<owl:hasValue rdf:resource="#False"/>
</owl:Restriction>
<owl:Class rdf:about="#Familia"/>
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>
<owl:disjointWith rdf:resource="#FamiliaEnsamblada"/>
<owl:disjointWith rdf:resource="#MateriaPrima"/>
</owl:Class>
<owl:Class rdf:ID="FamiliaEnsamblada">
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="#esDerivada"/>
<owl:hasValue rdf:resource="#False"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#esEnsamblada"/>
<owl:hasValue rdf:resource="#True"/>
</owl:Restriction>
<owl:Class rdf:about="#Familia"/>
</owl:intersectionOf>
</owl:Class>
276
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
</owl:equivalentClass>
<owl:disjointWith rdf:resource="#FamiliaDerivada"/>
<owl:disjointWith rdf:resource="#MateriaPrima"/>
</owl:Class>
<owl:Class rdf:ID="FamiliaS">
<rdfs:subClassOf rdf:resource="#Familia"/>
<owl:disjointWith rdf:resource="#FamiliaC"/>
</owl:Class>
<owl:ObjectProperty rdf:ID="IdecambioAplicado">
<rdfs:domain rdf:resource="#Cambio"/>
<rdfs:range rdf:resource="#Modificacion"/>
<owl:inverseOf rdf:resource="#cambioAplicado"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="IdeestructuraDe">
<rdfs:domain rdf:resource="#Estructura"/>
<rdfs:range rdf:resource="#Familia"/>
<owl:inverseOf rdf:resource="#estructuraDe"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="IdemodificacionAplicada">
<rdfs:domain rdf:resource="#Modificacion"/>
<rdfs:range rdf:resource="#ConjuntodeVariantesC"/>
<owl:inverseOf rdf:resource="#modificacionAplicada"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="Incompatibilidad">
<rdfs:subClassOf rdf:resource="#TipoRestriccion"/>
<owl:disjointWith rdf:resource="#Obligatoriedad"/>
</owl:Class>
<owl:Class rdf:ID="MateriaPrima">
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="#esDerivada"/>
<owl:hasValue rdf:resource="#False"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#esEnsamblada"/>
<owl:hasValue rdf:resource="#False"/>
</owl:Restriction>
277
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>
<rdfs:subClassOf rdf:resource="#Familia"/>
<owl:disjointWith rdf:resource="#FamiliaDerivada"/>
<owl:disjointWith rdf:resource="#FamiliaEnsamblada"/>
</owl:Class>
<owl:ObjectProperty rdf:ID="max">
<rdfs:range rdf:resource="http://www.owlontologies.com/sumo.owl#RealNumber"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="miembroDe">
<rdf:type rdf:resource="owl:FunctionalProperty"/>
<rdfs:domain rdf:resource="#ConjuntodeVariantes"/>
<rdfs:range rdf:resource="#Familia"/>
<owl:inverseOf rdf:resource="#miembros"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="miembroDecv">
<rdf:type rdf:resource="owl:FunctionalProperty"/>
<rdfs:domain rdf:resource="#Producto"/>
<rdfs:range rdf:resource="#ConjuntodeVariantes"/>
<owl:inverseOf rdf:resource="#miembrosDecv"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="miembros">
<rdfs:domain rdf:resource="#Familia"/>
<rdfs:range rdf:resource="#ConjuntodeVariantes"/>
<owl:inverseOf rdf:resource="#miembroDe"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="miembrosDecv">
<rdf:type rdf:resource="owl:InverseFunctionalProperty"/>
<rdfs:domain rdf:resource="#ConjuntodeVariantes"/>
<rdfs:range rdf:resource="#Producto"/>
<owl:inverseOf rdf:resource="#miembroDecv"/>
</owl:ObjectProperty>
278
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:ObjectProperty rdf:ID="min">
<rdfs:range rdf:resource="sumo:RealNumber"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="Modificacion"/>
<owl:ObjectProperty rdf:ID="modificacionAplicada">
<rdfs:domain rdf:resource="#ConjuntodeVariantesC"/>
<rdfs:range rdf:resource="#Modificacion"/>
<owl:inverseOf rdf:resource="#IdemodificacionAplicada"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="nuevoPF">
<rdf:type rdf:resource="owl:FunctionalProperty"/>
<rdfs:domain rdf:resource="#Cambio"/>
<rdfs:range rdf:resource="#ValorUnidad"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="nuevoQP">
<rdfs:domain rdf:resource="#Cambio"/>
<rdfs:range rdf:resource="#ValorUnidad"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="Obligatoria">
<rdfs:subClassOf rdf:resource="#TipoRelacion"/>
<owl:disjointWith rdf:resource="#Optativa"/>
<owl:disjointWith rdf:resource="#Selectiva"/>
</owl:Class>
<Obligatoria rdf:ID="obligatoria"/>
<owl:Class rdf:ID="Obligatoriedad">
<rdfs:subClassOf rdf:resource="#TipoRestriccion"/>
<owl:disjointWith rdf:resource="#Incompatibilidad"/>
</owl:Class>
<owl:Class rdf:ID="Optativa">
<rdfs:subClassOf rdf:resource="#TipoRelacion"/>
<owl:disjointWith rdf:resource="#Selectiva"/>
279
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:disjointWith rdf:resource="#Obligatoria"/>
</owl:Class>
<Optativa rdf:ID="optativa"/>
<owl:ObjectProperty rdf:ID="parte">
<rdf:type rdf:resource="owl:FunctionalProperty"/>
<rdfs:domain rdf:resource="#Relacion"/>
<rdfs:range rdf:resource="#Familia"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="perteneceA">
<rdfs:domain rdf:resource="#Relacion"/>
<rdfs:range rdf:resource="#Estructura"/>
<owl:inverseOf rdf:resource="#conformadoPor"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="Preseleccion"/>
<owl:ObjectProperty rdf:ID="presleciona">
<rdfs:domain rdf:resource="#Preseleccion"/>
<rdfs:range rdf:resource="#ConjuntodeVariantes"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="prodFactor">
<rdfs:domain rdf:resource="#Relacion"/>
<rdfs:range rdf:resource="#ValorRestringido"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="Producto">
<rdfs:subClassOf rdf:resource="#AbstracciondeProducto"/>
</owl:Class>
<owl:Class rdf:ID="ProductoC">
<rdfs:subClassOf rdf:resource="#Producto"/>
<owl:disjointWith rdf:resource="#ProductoS"/>
</owl:Class>
280
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:ObjectProperty rdf:ID="productoElegido">
<rdf:type rdf:resource="owl:FunctionalProperty"/>
<rdfs:range rdf:resource="#Producto"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="ProductoS">
<rdfs:subClassOf rdf:resource="#Producto"/>
<owl:disjointWith rdf:resource="#ProductoC"/>
</owl:Class>
<owl:ObjectProperty rdf:ID="quantityPer">
<rdfs:domain rdf:resource="#Relacion"/>
<rdfs:range rdf:resource="#ValorRestringido"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="Relacion"/>
<owl:Class rdf:ID="RelacionC">
<rdfs:subClassOf rdf:resource="#Relacion"/>
<owl:disjointWith rdf:resource="#RelacionD"/>
</owl:Class>
<owl:Class rdf:ID="RelacionD">
<rdfs:subClassOf rdf:resource="#Relacion"/>
<owl:disjointWith rdf:resource="#RelacionC"/>
</owl:Class>
<owl:ObjectProperty rdf:ID="relacionModificacda">
<rdf:type rdf:resource="owl:FunctionalProperty"/>
<rdfs:domain rdf:resource="#Cambio"/>
<rdfs:range rdf:resource="#Relacion"/>
</owl:ObjectProperty>
281
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:Class rdf:ID="RelacionObligatoria">
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="#tipoRelacion"/>
<owl:allValuesFrom rdf:resource="#Obligatoria"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#tipoRelacion"/>
<owl:someValuesFrom rdf:resource="#Obligatoria"/>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>
<rdfs:subClassOf rdf:resource="#Relacion"/>
<owl:disjointWith rdf:resource="#RelacionSelectiva"/>
<owl:disjointWith rdf:resource="#RelacionOptativa"/>
</owl:Class>
<owl:Class rdf:ID="RelacionOptativa">
<owl:equivalentClass>
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="#tipoRelacion"/>
<owl:allValuesFrom rdf:resource="#Optativa"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#tipoRelacion"/>
<owl:someValuesFrom rdf:resource="#Optativa"/>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>
<rdfs:subClassOf rdf:resource="#Relacion"/>
<owl:disjointWith rdf:resource="#RelacionSelectiva"/>
<owl:disjointWith rdf:resource="#RelacionObligatoria"/>
</owl:Class>
<owl:Class rdf:ID="RelacionSelectiva">
<owl:equivalentClass>
282
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:Class>
<owl:intersectionOf rdf:parseType="Collection">
<owl:Restriction>
<owl:onProperty rdf:resource="#tipoRelacion"/>
<owl:allValuesFrom rdf:resource="#Selectiva"/>
</owl:Restriction>
<owl:Restriction>
<owl:onProperty rdf:resource="#tipoRelacion"/>
<owl:someValuesFrom rdf:resource="#Selectiva"/>
</owl:Restriction>
</owl:intersectionOf>
</owl:Class>
</owl:equivalentClass>
<rdfs:subClassOf rdf:resource="#Relacion"/>
<owl:disjointWith rdf:resource="#RelacionOptativa"/>
<owl:disjointWith rdf:resource="#RelacionObligatoria"/>
</owl:Class>
<owl:Class rdf:ID="Restriccion"/>
<owl:Class rdf:ID="RestriccionCV">
<rdfs:subClassOf rdf:resource="#Restriccion"/>
<owl:disjointWith rdf:resource="#RestriccionP"/>
<owl:disjointWith rdf:resource="#RestriccionF"/>
</owl:Class>
<owl:Class rdf:ID="RestriccionF">
<rdfs:subClassOf rdf:resource="#Restriccion"/>
<owl:disjointWith rdf:resource="#RestriccionP"/>
<owl:disjointWith rdf:resource="#RestriccionCV"/>
</owl:Class>
<owl:Class rdf:ID="RestriccionIncomp">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="#tipoRestriccion"/>
<owl:someValuesFrom rdf:resource="#Incompatibilidad"/>
283
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
</owl:Restriction>
</owl:equivalentClass>
<rdfs:subClassOf rdf:resource="#Restriccion"/>
<owl:disjointWith rdf:resource="#RestriccionOblig"/>
</owl:Class>
<owl:Class rdf:ID="RestriccionOblig">
<owl:equivalentClass>
<owl:Restriction>
<owl:onProperty rdf:resource="#tipoRestriccion"/>
<owl:someValuesFrom rdf:resource="#Obligatoriedad"/>
</owl:Restriction>
</owl:equivalentClass>
<rdfs:subClassOf rdf:resource="#Restriccion"/>
<owl:disjointWith rdf:resource="#RestriccionIncomp"/>
</owl:Class>
<owl:Class rdf:ID="RestriccionP">
<rdfs:subClassOf rdf:resource="#Restriccion"/>
<owl:disjointWith rdf:resource="#RestriccionCV"/>
<owl:disjointWith rdf:resource="#RestriccionF"/>
</owl:Class>
<Incompatibilidad rdf:ID="RIncompatible"/>
<Obligatoriedad rdf:ID="RObligatoria"/>
<owl:ObjectProperty rdf:ID="selecciona">
<rdfs:domain rdf:resource="#ProductoC"/>
<rdfs:range rdf:resource="#Producto"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="Selectiva">
<rdfs:subClassOf rdf:resource="#TipoRelacion"/>
<owl:disjointWith rdf:resource="#Obligatoria"/>
<owl:disjointWith rdf:resource="#Optativa"/>
</owl:Class>
<Selectiva rdf:ID="selectiva"/>
<owl:Class rdf:ID="TipoRelacion">
<owl:equivalentClass>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Obligatoria"/>
<owl:Class rdf:about="#Optativa"/>
<owl:Class rdf:about="#Selectiva"/>
</owl:unionOf>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
284
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:ObjectProperty rdf:ID="tipoRelacion">
<rdf:type rdf:resource="owl:FunctionalProperty"/>
<rdfs:domain>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Relacion"/>
<owl:Class rdf:about="#RelacionObligatoria"/>
</owl:unionOf>
</owl:Class>
</rdfs:domain>
<rdfs:range rdf:resource="#TipoRelacion"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="TipoRestriccion">
<owl:equivalentClass>
<owl:Class>
<owl:unionOf rdf:parseType="Collection">
<owl:Class rdf:about="#Incompatibilidad"/>
<owl:Class rdf:about="#Obligatoriedad"/>
</owl:unionOf>
</owl:Class>
</owl:equivalentClass>
</owl:Class>
<owl:ObjectProperty rdf:ID="tipoRestriccion">
<rdf:type rdf:resource="owl:FunctionalProperty"/>
<rdfs:domain rdf:resource="#Restriccion"/>
<rdfs:range rdf:resource="#TipoRestriccion"/>
</owl:ObjectProperty>
<Verdadero rdf:ID="True"/>
<owl:ObjectProperty rdf:ID="udeM">
<rdf:type rdf:resource="owl:FunctionalProperty"/>
<rdfs:domain rdf:resource="#ValorUnidad"/>
<rdfs:range rdf:resource="sumo:UnitOfMeasure"/>
</owl:ObjectProperty>
<owl:ObjectProperty rdf:ID="valor">
<rdfs:range rdf:resource="sumo:RealNumber"/>
</owl:ObjectProperty>
<owl:Class rdf:ID="ValorRestringido">
<rdfs:subClassOf rdf:resource="#ValorUnidad"/>
</owl:Class>
285
_____________________________________________ Apéndice A. Definición de Vistas en Conceptbase
<owl:Class rdf:ID="ValorUnidad"/>
<owl:Class rdf:ID="Verdadero">
<rdfs:subClassOf rdf:resource="#Boolean"/>
</owl:Class>
</rdf:RDF>
286
Descargar