You are on page 1of 9

Generacin automtica de dietas

Enunciado

Se pretende modelar el funcionamiento de un servicio de atencin mdica, para llevar a cabo su


implementacin en lo que se ha definido como el Proyecto SGAD (Sistema para la Generacin Automtica de Dietas).
Este sistema software tendr como objetivo la ayuda a la toma de decisiones de los mdicos y facultativos del
Departamento de Nutricin, tanto para su atencin a pacientes como en procesos de investigacin y documentacin.
Para poder entender el entorno del problema que se pretende abordar, es decir, el problema de la nutricin, es
necesario conocer una serie de conceptos bsicos:
La nutricin es un proceso involuntario que comprende todos aquellos fenmenos, a travs de los cuales, el
organismo recibe y utiliza los nutrientes ingeridos. Obedece nicamente a leyes fisiolgicas.
Llamamos nutriente a toda sustancia asimilable contenida en los alimentos, que permite al organismo obtener
energa, construir y reparar los tejidos, y regular los procesos metablicos.
Alimento puede definirse como aquella sustancia que aporta al organismo materias tiles y asimilables. Todos
los alimentos contienen las mismas sustancias nutritivas. Lo que en realidad hace diferente un alimento de otro
es la proporcin en que contienen estas sustancias. Considerando estas diferencias podemos clasificar los
alimentos en los siguientes grupos segn su funcionalidad principal: plsticos (reparar los tejidos), reguladores
(regular los procesos metablicos) y energticos (proporcionar energa).
Todos los alimentos pueden reducirse a las siguientes sustancias nutritivas fundamentales, o nutrientes: los
macronutrientes o nutrientes energticos (segn su naturaleza se dividen en carbohidratos, grasas y protenas)
y los micronutrientes o nutrientes no energticos (elementos minerales y vitaminas).
Las vitaminas son compuestos orgnicos esenciales para la vida. Cada vitamina es una agrupacin especfica
de elementos responsables de la regulacin de nuestros procesos metablicos vitales. Hay que distinguir entre
dos clases de vitaminas: las liposolubles, que se disuelven en grasas y aceites, y las hidrosolubles, que se
disuelven en agua.
La protena es una necesidad vital en la dieta del hombre y de todos los animales. Sin embargo, no es la
protena por s misma la que se necesita, sino los aminocidos, que son la materia prima de las protenas. Los
aminocidos combinados pueden formar miles de protenas diferentes. Los aminocidos no son solamente
unidades para formar protenas, sino que son tambin el producto final de la digestin de stas. Hay 22
aminocidos conocidos, y ocho de ellos son llamados aminocidos esenciales. Esos aminocidos esenciales
no pueden, al contrario que los otros, ser fabricados por el cuerpo humano, sino que deben ser obtenidos de la
alimentacin o de los suplementos nutricionales.
El sistema posee informacin de los siguientes componentes: de todos los alimentos: nombre/definicin, origen
y funcionalidad principal; de todos los nutrientes: nombre/definicin, funcionalidad principal y el tipo y subtipo al que
pertenecen, enfermedades que produce su dficit, y las fuentes alimentarias de donde puede obtenerse; de todas las
vitaminas y los minerales: funciones asociadas, racin diettica recomendada y, slo para los minerales, nivel srico.
El sistema cuenta con un conjunto de dietas prediseadas. De todas ellas guarda informacin sobre sus
objetivos/indicaciones, definicin tcnica, aporte calrico, componentes bsicos, ingesta necesaria, va de
administracin recomendada, duracin, dosificacin, pauta y suplementos necesarios. Para simplificar, consideraremos
que la dieta se compone de un conjunto de alimentos.
El sistema cuenta con una gran coleccin de enfermedades relacionadas con disfunciones nutricionales,
contando para cada una de ellas con informacin sobre sus posibles causas, la patogenia que presentan, el modo de
diagnosis necesario, los diagnsticos diferenciales que presentan, el tipo de tratamiento ms adecuado y el objetivo de
dicho tratamiento.
La informacin de la historia clnica del paciente incluye nombre, apellidos, domicilio, telfono, nmero de la
seguridad social, fecha de nacimiento del paciente, peso, talla, las incompatibilidades que presenta, sus alergias, los
antecedentes familiares con los que cuenta y referencias a sus enfermedades.

Se pide
Representar en un diagrama de clases el vocabulario del problema (clases; asociaciones, agregaciones y
composiciones; jerarquas y atributos).

1
Solucin

Para construir el diagrama de clases del problema vamos a ir realizando las diferentes partes del
mismo en diferentes diagramas parciales que finalmente ensamblaremos en un diagrama final.
El primer diagrama que vamos a construir es el que representa la parte del enunciado que habla de
los alimentos y nutrientes.

En este diagrama aparecen las clases Alimento y Nutriente, que estn relacionadas por una
agregacin (Alimento es un agregado de Nutriente), y se describen a su vez las subclases que le
corresponden a este ltimo: Macronutriente y Micronutriente.
Aparece una clase asociacin Compone entre Alimento y Nutriente, que almacena la informacn
de la proporcin con que cada nutriente aparece en cada alimento en su atributo proporcin. A travs de
esta informacin el atributo funcionalidad principal de Alimento se puede calcular en funcin del atributo
funcionalidad principal de Nutriente, siendo el primero, pues, un atributo derivado.
Continuando con la lectura del enunciado nos describen ahora los macro y micronutrientes. Los
ltimos se pueden representar as:

2
En este diagrama se describen las jerarquas que existen entre las clases Micronutriente, Vitamina,
Mineral, (vitamina) Liposoluble y (vitamina) Hidrosoluble.

Pasando a la parte del enunciado que describe los macronutrientes, el diagrama correspondiente
quedara de la siguiente forma:

Vemos que, como se describe en el enunciado, los macronutrientes pueden ser de tres tipos,
carbohidratos, grasas y protenas, que stas a su vez estn fomadas por aminocidos (relacin de
agregacin con la multiplicidad 1..22 en el lado de los aminocidos (una protena puede estar formada por,
desde un aminocido hasta por los 22). Se trata de una agregacin porque un mismo aminocido puede
formar parte de diferentes protenas. Evidentemente las instancias de estas clases son objetos abstractos,
no entidades fsicas. Cada instancia de la clase protena no es una cadena rganica fsica, sino el concepto
de todas aquellas que tienen la misma composicin y estructura.
La clase Aminocido, a su vez tiene una subclase que es la clase Esencial. Esto ltimo se podra
haber representado tambin de la siguiente forma:

3
Lo nico destacable en este caso es que hay que describir ahora la clase Aminocido como clase
abstracta.
En el siguiente bloque de informacin, el enunciado nos da las pautas para dibujar otra parte del
diagrama:

De este diagrama hay algunos puntos que merecen ser comentados:


En primer lugar vemos la relacin de agregacin entre Alimento y Dieta. Segn dice el enuciado,
...consideraremos que la dieta se compone de un conjunto de alimentos. A pesar de que el texto utilice la
palabra compone, no quiere decir que la relacin que hay entre ambas clases sea una composicin. De
hecho no lo es. Hay que recordar que el texto utiliza el lenguaje natural, que no tiene por qu coincidir en los
trminos tcnicos con el lenguaje UML. As pues, cuando en un texto se utilice la palabra composicin, en
el lenguaje de la orientacin a objetos se podr interpretar como una composicin o como una agregacin,
dependiendo de su naturaleza.

4
En nuestro caso, diferentes dietas estn formadas por combinaciones diferentes de alimentos, cada
uno de los cuales formar parte de una o varias dietas (o quiz de ninguna). Una relacin de esta naturaleza
no es una composicin por lo que debemos representarla como una simple agregacin.
Otra clase nueva que aparece, continuando con la lectura del enunciado, es la clase Enfermedad.
Dicha clase aparece relacionada con otras dos clases: por una parte con la clase Dieta, asociacin a la que
hemos puesto como nombre cura, siendo el sujeto de dicha frase la clase Dieta y predicado la clase
Enfermedad. Por otra parte, est asociada a la clase Nutriente, con una asociacin que hemos llamado
produce (por falta), siendo el sujeto en este caso la clase Nutriente y el predicado la clase Enfermedad. En
ambas asociaciones hemos seguido la recomendacin de utilizar verbos para nombrar a las asociaciones.
Con respecto a la clase Dieta, quiz puede surgir la duda de por qu no se han incluido entre sus
atributos dos conceptos que aparecen en el texto como informacin propia de ella, como
objetivos/indicaciones y componentes bsicos. La razn de ello est basada en el principio constructivo
de los diagramas de UML, que recomienda no repetir la misma informacin como atributo y como
asociacin. Los componentes bsicos, por ejemplo, los obtenemos para una dieta a partir de la asociacin
entre la clase Dieta y la clase Alimento, por lo que si lo ponemos adems como atributo de la primera,
estamos repitiendo la infomacin.
Exactamente lo mismo ocurre con los conceptos causas, tratamiento y objetivo de la clase
Enfermedad. Las causas, como hemos visto, son la ausencia de los diferentes nutrientes, el tratamiento
ser la correspondiente dieta o dietas asociadas y el objetivo ser la reposicin o suministro al organismo
del nutriente cuya ausencia ha provocado la enfermedad. Dichos conceptos estn pues presentes en las
asociaciones entre las tres clases, por lo que no son atributos de Enfermedad.
Finalizamos el comentario sobre esta parte del diagrama explicando las multiplicidades de las
relaciones representadas. La agregacin Alimento-Nutriente ha sido ya comentada. La agregacin Dieta-
Alimento tiene multiplicidad 1..* en el lado de Alimento ya que una dieta debe estar al menos formada por
un alimento (aunque pueden ser muchos); y en el lado de Dieta 0..* , o sea, desde cero hasta un nmero
indefinido de ellas (cero si an no se ha definido una dieta que incluya un determinado alimento, pero puede
definirse en el futuro). La relacin cura tiene multiplicidad 0..* en el lado de dieta porque puede haber
enfermedades que no tengan ninguna dieta que la cure (si el nutriente que la causa no se encuentra en
ninguna todava) o que tengan varias; y en el lado de Enfermedad, 1..* porque una dieta debe al menos
curar una enfermedad (si no, no tiene razn de ser), pero puede curar varias. Finalmente, en la asociacin
produce (por falta), la multiplicidad es 1..* en ambos lados porque la falta de un nutriente produce al
menos una enfermedad, pero puede ser causa de varias, y por otro lado, una enfermedad es consecuencia
de la ausencia de al menos un nutriente (tratndose como dice el enunciado de un departamento de
nutricin, lo lgico es que la informacin que manejen est relacionada slo con la nutricin, por lo que
enfermedades relacionadas con otros problemas no figuren en el sistema), pero puede ser por la ausencia
de varios.
Para finalizar nuestro diagrama, vamos a incluir en l la informacin que se nos da en el ltimo
prrafo del enunciado, la correspondiente a los pacientes. Evidentemente, hay que definir la clase Paciente
a la que asignamos los atributos que nos dan en el texto. En este punto surge la duda de cmo se relaciona
esta informacin con la de el resto del sistema y de si la naturaleza de estas relaciones puede hacer que lo
que pensbamos que es atributo, sea en realidad una asociacin con otra clase.
La primera consideracin que vamos a hacer es sobre la naturaleza de lo que el enunciado define
como alergias e incompatibilidades. A falta de conocimientos mdicos suficientes parece que ambos
conceptos pueden tener el mismo significado, esto es, sustancias que el paciente no puede ingerir porque a
l particularmente le producen trastornos. En una primera interpretacin simplista de este enunciado, sera
vlido admitir que dichas sustancias no son alimentos o nutrientes, es decir, que no se encuentran en las
posibles dietas a administrar a un paciente (por ejemplo, que el paciente fuera alrgico a medicamentos
suplementarios del tratamiento diettico). Bajo dicha interpretacin, podemos considerar que cada
enfermedad se trata con unas u otras dietas independientemente del paciente que las sufre, en cuyo caso
tendremos un diagrama con el siguiente aspecto

5
En este caso tambin entendemos que cada enfermedad causada por la falta de un determinado
nutriente. La multiplicidad de la asociacin afecta a (con sujeto la claseEnfermedad y predicado la clase
Paciente) es 1..* en el lado de Enfermedad, pues un paciente al menos tiene que tener una enfermedad,
pero puede tener varias (varias carencias de nutrientes simultneas); y 0..* en el lado de Paciente, porque
una enfermedad puede estar en el sistema sin estar afectando a ningn paciente en ese momento, pero
puede afectar a muchos.
Sin embargo, esta simplificacin se podra considerar poco realista, por cuanto que una lectura del
texto con cierto sentido comn da a entender que se alude a alergias e incompatibilidades (a los que s que
vamos a seguir considerando sinnimos) como producidas por un determinado nutriente en un determinado
paciente. Esto implicara que habra una serie de dietas indicadas para alguna enfermedad, que no se
pueden asignar a un cliente alrgico a alguno de los nutrientes que forman parte de los alimentos incluidos
en la misma. Desde este punto de vista, el diagrama de clases quedara de la siguiente manera:

6
Como vemos, aparecen una nueva asociacin que recoge la semntica expresada en el prrafo
anterior. La primera, la hemos llamado produce alergia a y tiene multiplicidad 0..* en ambos extremos: en
el de la clase Nutriente porque un paciente puede tener alergia a ninguno o a muchos nutrientes y en el de
la clase Paciente porque un nutriente puede producir alergia en ninguno o en muchos pacientes. Ha
desaparecido ahora el atributo incompatibilidades y alergias porque la informacin que aportaban antes,
ahora se representa en la asociacin que acabamos de introducir.
Finalmente, slo queda un comentario con respecto a los ltimos diagramas. Aunque no lo pone
explcitamente en el enunciado, y por tanto no lo vamos a considerar dentro de la solucin recomendada,
parece lgico que el sistema registre qu dieta est asignada a qu paciente. Esto nos obligara a modificar
el diagrama aadiendo la asociacin asignada a que mostramos en el diagrama siguiente:

7
8
Hechas estas consideraciones, slo queda mostrar el diagrama de clases completo de todo el
problema. Lo representamos segn la interpretacin de alergias e incompatibilidades que hemos descrito en
segundo lugar (la visin ms realista) y sin considerar que el sistema lleva el registro de qu dieta est
asignada a qu paciente: