METODOLOGÍA SOMA:
Un método de análisis orientado a objetos semánticamente rico.
Entre los trece o más métodos que se han descrito hasta el momento, existe un
grado de variación considerable. Oscilan entre las notaciones complejas y
dificultosas de OMT, Ptech y Shlaer/Mellor y las más sencillas, propias de CRC
y Coad/Yourdon; van desde hacer hincapié en los procesos hasta hacer
hincapié en la representación, y van desde la dependencia de un lenguaje a las
más elevadas alturas de la abstracción. También se han examinado algunos
híbridos. Ninguno de estos métodos está completo, en el sentido de que se
traten todos los temas del desarrollo del software, o en el sentido de que sea
posible describir con facilidad cualquier sistema concebible.
Esta sección presenta una aproximación que comenzó a existir como una
extensión del método notación propuesto por Coad y Yourdon, pero que
contiene, ahora, tantas ideas procedentes de otros métodos de diseño y
análisis orientados a objetos, que la conexión con Coad/Yourdon es bastante
tenue. En principio, se podrían extender otras notaciones básicas, tales como
las de principio, se podrían extender otras notaciones básicas, tales como las
de OMT, empleando estructuras de SOMA; esto hace que SOMA sea más un
filtro de métodos que un método en sí. También contiene ideas técnicas
procedentes de los campos de Inteligencia Artificial y del modelado semántico
de datos.
Se intenta que SOMA sea un método semánticamente rico de análisis
orientado a objetos. En su forma básica que es la que se describe aquí, se
pretende que mantenga la simplicidad de notación del método de
Coad/Yourdon, pero añadiendo actividades adicionales y refinando la
semántica de temas (que se denominan capas en SOMA). También modifica la
notación, para ponerla de acuerdo con las convenciones de modelado de
entidad y relación propias del estilo de Chen. Al igual que Coad/Yourdon, se
admiten estructuras de clasificación y de composición, junto con asociaciones
generales. También se admiten condiciones previas, posteriores e invariantes.
Por último, añade reglas parecidas a las de los sistemas expertos a los objetos,
con objeto de aumentar la riqueza semántica de los modelos de análisis en
todos los casos y también para ayudar a modelar el análisis de sistemas
avanzados de conocimiento y de bases de datos. En el momento del diseño,
estas reglas se transforman en afirmaciones lógicas. SOM posee en exclusiva
el apoyo de objetos difusos y la herencia, según se describe en el apéndice I.
Las siete actividades de las que consta SOMA son las siguientes:
Identificar capas
Identificar objetos
Identificar estructuras de utilización, clasificación y composición.
Definir la semántica de datos y las asociaciones.
Añadir atributos a los objetos.
Añadir operaciones a los objetos.
Añadir la semántica declarativa de objetos (conjuntos de reglas).
En primer lugar, establezcamos algunos puntos de notación. Los objetos de
SOMA se muestran en la forma indicada en la figura. Si el icono posee
esquinas cuadradas, entonces, representa una instancia; si son redondas, será
una clase. De estar manera, cada objeto posee un identificador y tres listas.
El tratamiento explícito de los atributos viola el principio de ocultamiento de
información. Sin embargo, tal como hemos visto, la complejidad de las
estructuras de datos que están presentes en la mayoría de los sistemas
comerciales, comparada con abstracciones sencillas de programación, tales
como las ventanas o las filas, nos lleva a la necesidad de hacer que los
atributos sean explícito y visibles. Por tanto, en este método mantenemos la
ventana de atributos.
CAPAS
Las capas de SOMA no son solamente una forma de descomponer el dominio
del problema, tal como sucede en la mayoría de los demás métodos: son
objetos reales, con su propio derecho, con la semántica de objetos. Las capas
se diferencian de los demás objetos en dos aspectos: (a) se encuentran en la
cima de la estructura de composición; (b) cada uno de sus métodos debe ser
realizado por un método de algún objeto que se encuentra dentro de esa
estructura.
¿Que es lo que sucede cuando un objeto componente necesita enviar un
mensaje fuera de su continente? Aun cuando los mensajes que se envían a las
capas son tratas por la interfaz de la capa y delegados de esta manera a los
métodos de los componentes a lo largo de enlaces del tipo realizado-por, es
menos evidente lo que debería suceder cuando un componente requiera los
servicios de un objeto que se encuentra fuera de la capa que lo contiene.
BUSQUEDA DE OBJETOS
Los objetos se identifican como de costumbre utilizando los métodos de
modelos de datos, o bien los sugeridos por Coad y Yourdon o Shaler y Mellor,
la técnica de análisis textual de Abbott, tal como se utiliza dentro de Booch,
HOOD y CRC, o de cualquier otra manera (quizá examinando DFD, o de
diagramas de sucesos de Jackson, tal como sugiere Ince (1991), SOMA añade
técnicas de identificación e objetos que se han tomado de la práctica de la
captación de conocimientos y de HCI. Específicamente se incluyen: entrevistas
estructuradas y enfocadas, redes Kelly, análisis de tópicos y análisis de tarea.
Se ha añadido una nueva técnica de refinamiento denominada análisis de
objetos (todas estas técnicas se describen en el capítulo 9). Estas técnicas
sirven especialmente de ayuda cuando no existe una especificación escrita de
los requisitos y son necesarias las entrevistas.
Los modelos de estado de sistemas también se pueden utilizar para identificar
y refinar objetos, tal como se hace en OMT o en OSA. La respuesta de los
objetos asociados del sistema se puede indicar mediante cambios de estado
de entidades, transiciones de estados o diagramas de historia vital, con
diagramas de correspondencia de efectos que se han tomado SSADM. Versión
4. El uso de técnicas múltiples es recomendable para aumentar la confianza en
sus productos, que deberían ser los mismos, o al menos equivalentes, sea cual
fuere la técnica utilizada.
La notación de SOMA es únicamente el depósito final de toda la información
descubierta y unifica el modelo estático de objetos con el modelo de
comportamiento dinámico, empleando afirmaciones y reglas.
SEMANTICA DE ESTRUCTURAS Y DE DATOS
Las estructuras que deben ser identificadas son de tres tipos principales: de
utilización, de clasificación y de composición. Las estructuras de utilización
muestran las vías de acceso de mensajes admisibles a través del sistema; las
estructuras de clasificación muestran la herencia de características, y las
estructuras de composición muestran la formación de capas y objetos
agregados.
ESTRUCTURAS DE CLASIFICACION
Las notaciones de algunos métodos resultan ambiguas en algunas ocasiones
debido a la falta de expresividad, o quizá resulten un poco torpes. Un ejemplo
es la notación de Coad/Yourdon para la clasificación y composición que se da
en las figuras, se muestra una alternativa que nosotros sugerimos.
La notación que se encuentra dentro del rombo se interpreta exactamente
según se indicaba en el capítulo 5. esto es, E/O quiere decir
“exclusivo/opcional” e I/O significa “inclusive/opcional”. Recuérdes que el
término “exclusive” indica que la intersección de cada subclase con las demás
subclases está vacía y que “inclusive” indica que las subclases pueden
superponerse. El “opcional” indica que la lista no es exhaustiva: quizás hay
más subclases todavía no identificadas. La M “obligatorio” indica que un
miembro de la superclase debe estar, al menos, en una de las subclases con
una lista exhaustiva o partición de la clase.
También se puede argumentar, por parte de aquellos que estén dedicados una
aproximación basada en objetos al análisis que la herencia es un problema de
realización que no debería entrar en el proceso de análisis, que la herencia es
un problema de realización que no debería entra en el proceso de análisis y
que los usuarios se pueden confundir y pueden distraerse de los objetivos del
sistema. Este argumento es verdadero, pero tiene dos deficiencias. En primer
lugar, confunde la extracción de requisitos con el proceso conceptual de
análisis, que pretende abstraer los conceptos clave de la aplicación,
independientemente de las percepciones de los usuarios. En esto último, se
revelan las características estructurales del dominio, incluyendo las nociones
naturales de especialización y generalización. En segundo lugar, la herencia y
otras estructuras son
parte importante de la semántica del dominio: la forma en que se clasifican los
objetivos define el dominio y, a menudo, el propósito de la aplicación. Por
ejemplo, los objetos de la sociología y de la historia son el mismo, las personas
y las organizaciones, pero en la historia no se clasificará por grupos socio-
económicos, sino por clases sociales, o quizá, por nacionalidades. Las
estructuras representan el propósito del análisis.
ESTRUCTURAS DE COMPOSICION
Al igual que en Coad/Yourdon, toda estructura de composición es una capa.
Las estructuras de clasificación se consideran ortogonales a éstas, y no son
capas ni suelen mostrarse normalmente en los mismos diagramas que la
composición. Los mensajes llegan al exterior de las capas y son delegados a
subobjetos a través de enlaces del tipo realizado-por. Los mensajes pueden
llegar a cualquier parte de la estructura de clasificación, pero la mayoría de las
veces llegan a instancias.
Las ventanas de atributos de las clases o de las instancias que participan en
estructuras de composición deben contener los atributos especiales Partes y
APO. Los mismos comentarios se aplican exactamente al atributo APO: de las
partes y al atributo Miembros: de las superclases. Se trata de ayudas para la
navegación, que deben ser actualizadas automáticamente cuando se añada el
atributo Partes: o se elimine de ellas, puesto que, en caso contrario, cada vez
que se reestructurase un objeto compuesto, sería preciso alterar la
especificación de sus partes. Se pueden utilizar las notaciones E/O E/M I/O,
pero las partes no suelen superponerse.
ASOCIACIONES
También es preciso tener en cuenta otros tipos de asociaciones y su semántica
estática. La semántica de datos en Coad/Yourdon solamente se anota desde el
nivel de instancias. En SOMA, ha resultado útil permitir conexiones de este tipo
en el nivel de clases, al igual que en las estructuras de composición. Esto sirve
para enriquecer la semántica. Las conexiones de este tipo se pueden
considerar como asociaciones; esto es, relaciones estructurales que no son de
utilización ni de clasificación ni de composición. En algunos casos, estas
asociaciones poseen propiedades, y deberían ser expandidas para formar
objetos por sí mismas. En otras, la asociación puede ser tan importante para la
aplicación (por ejemplo, los parentescos en antropología) que será preciso
añadir una cuarta o quinta estructura al modelo. Los enlaces de semántica de
datos que se indican multiplicidad y modalidad se pueden utilizar en enlaces de
estructuras de composición.
Los elementos de la rica notación de OMT se utilizan para registrar complejas
estructuras de composición y asociaciones. En particular, la notación para la
composición recursiva que se muestra en la figura resulta recomendable.
TRIBUTOS Y OPERACIONES
Los atributos se descubren utilizando técnicas estándares de modelados de
datos. Se utilizan dos atributos especiales cuyo valor son listas: AKO y Parts:.
El atributo AKO: tiene como valor una lista, y contiene los nombres de las
superclases de un objeto. El atributo Partes: contiene una lista de los objetos
que forman el objeto. Cuando está disponible el apoyo automatizado, se
pueden emplear los atributos duales Miembros: y APO: como ayuda para la
navegación por el modelo, pero es preciso actualizarlos automáticamente,
porque, en caso contrario, la reutilización queda comprometida.
En SOMA, cada tributo posee un tipo, que debe ser una clase válida definida
por un usuario o primitiva del sistema. El analista tiene libertad para decidir lo
que es primitivo, pero deberá confeccionar una lista. Entre las primitivas típicas
se incluyen los reales, enteros, listas, fechas, etc., En los atributos también se
almacenan asociaciones. Por ejemplo, si se posee la relación semántica que
dice que los empleados deben trabajar exactamente para un departamento
mientras que los departamentos pueden dar empleo a uno o más empleados,
entonces, podríamos registrar.
REGLAS
Al realizar el análisis orientado a objetos y construir un modelo, se puede
aprender mucho de los sistemas de Inteligencia Artificial que se construyen
utilizando redes semánticas, y también del modelado semántico de datos. Las
especificaciones que muestran reutilizabilidad y extensibilidad son una gran
cosa, pero no contienen necesariamente el significado que deseaba darle el
analista o el usuario. Para reutilizar una especificación de un objeto, debería
ser posible leer de ella lo que es (la estructura de datos), lo que hace (sus
operaciones), por que lo hace y de qué forma está relacionada con otros
objetos. Mi punto de vista es que este contenido semántico es´ta contenido
parcialmente en las estructuras de clasificación, de composición y de utilización
y en las reglas que describen su comportamiento.
El hecho es que todas las semánticas comprometen la reutilización. Vimos en
el capítulo I que la herencia lo hace, y que también lo hace cualquier cosa que
haga que el significado de un objeto sea más específico. En la especificación
de sistemas, ambos aspectos son igualmente importantes y el equilibrio entre
ambos debe ser comprendido bien y tratado cuidadosamente, dependiendo de
los objetivos de los analistas y de sus clientes.
Lo mejor es separar la definición de la semántica de datos de la definición tanto
de objetos como de atributos. Deberíamos considerarla como una tarea
importante y distinta. Tal como ya se ha mencionado, las DBMS relacionales
suelen requerir que gran parte de esta información se descarte, o que se
incorpore a programas de aplicación. Por tanto, una justificación de las bases e
datos orientada a objetos, o incluso de las bases de datos relacionales
extendidas o semiorientadas a objetos, es que estas semánticas se pueden
captar en el entorno de desarrollo tenido como blanco, así como en el análisis
en su forma completamente explícita. Al hacerlo explícitamente se consigue la
flexibilidad, en tanto en cuanto la semántica de datos o las reglas de negocios
que modifican la aplicación pueden evolucionar. Si vamos a construir
especificaciones ejecutables y reversibles, es crucial que la información no se
pierda al codificar. Esto incluye todo los tipos de información semántica. La
semántica de datos se puede captar en relaciones, y se puede almacenar
explícitamente en bases de datos orientadas a objetos o deductivas. La
semántica funcional se puede captar explícitamente en forma de reglas.
Pasaremos a continuación, al tema de las reglas y de su representación.
En mi opinión, el defecto más serio de muchos métodos de análisis orientados
a objetos es su carencia de apoyo para la semántica funcional, para la
descripción global del control o para las reglas de negocios. Pasaremos ahora
a todo este tema, que yo denomino semántica declarativa, porque la semántica
de procedimiento se codifica en forma de métodos.
Resulta necesario, en esta etapa de análisis, registrar las reglas de negocios y
el comportamiento de tratamiento de excepciones y de pasos de parámetro del
objeto. El método Coad/Yourdon carece denotación para el tratamiento de
excepciones. Esto no es siempre muy importante, pero, para aquellas
aplicaicoens en que lo es, se puede utilizar una notación similar a OOSD en
las anotaciones hechas en cada objeto, sin violentar la sencillez de la notación
que recomendamos. Yo sugiero más adelante, un método para anotar
excepciones de forma no procedimental, y deberá compararse con la notación
de procedimientos de HOOD o OOSD.
Los métodos orientados a objetos, tales como el de Coad/Yourdon, pueden
extenderse, evidentemente, para tratar la herencia múltiple, aunque ésta no
esté incluida en su descripción, salvo el nivel de la notación. Esta extensión
debe incluir las providencias necesarias para anotar el tratamiento de conflictos
que surjan cuando un mismo atributo o método es heredado de forma distinta a
partir de dos objetos predecesores. También deben permitir una semántica
diferente para las subclases que patricionan a sus superclases en un conjunto
de subclases exhaustivo, y aquellas que sean incompletas, en el sentido de
que las subclases no especificadas en ese momento todavía se pueden añadir.
La sugerencia evidente para abarcar esta semántica declarativa consiste en
añadir reglas a los objetos de SOMA, que no sólo podrán evitar la ambigüedad
en la herencia múltiple, sino, también definir reglas de prioridad para los valores
por omisión y los diablillos. Un diablillo es un método que se despierta cuando
se le necesita: cuando cambia un valor, o cuando este valor se añade o se
borra. Esto es, estas reglas pueden determinar la forma de resolver el conflicto
que surge cuando un atributo hereda dos valores diferentes, o quizá especificar
si el valor por omisión debería ser aplicado antes o después de que se
produzca la herencia, o antes o después de que se active el diablillo. También
pueden especificar las prioridades relativas de la herencia y de los diablillos.
Estas reglas, en sí mismas, pueden tener valores por omisión. Las reglas de
negocios especifican información de segundo orden, tal como las
dependencias entre atributos, por ejemplo, una dependencia entre la edad de
un empleado y su derecho de vacaciones. Por último, quizá sea necesario
especificar como reglas las condiciones previas y posteriores que se aplican a
todos los métodos. Una regla de negocios típica en una aplicación de personal
podría contener “cambiar el derecho de vacaciones a seis semanas cuando el
tiempo en la empresa sobrepase los cinco años” como regla en la ventana de
reglas del objeto Empleado. Con esta extensión, la notación puede enfrentarse
a problemas de análisis en los cuales se tenga como entorno de destino una
base de datos relacional o deductiva con características orientadas a objetos.
Estas reglas se encapsulan dentro de objetos, en lugar de ser declaradas
globalmente, tal como sucede con todas las realizaciones actuales de
lenguajes de programación orientados a objetos. También se pueden heredar e
invalidar. El beneficio de todo esto es que son posibles variaciones locales de
la estrategia de control. Además, el analista puede inspeccionar el impacto de
la estructura de control en todos los objetos (utilizando, quizá, un ojeador
(browser) y no tiene que realizar anotaciones en complejos diagramas para
describir los efectos locales del control global. Si se desea una misión global de
estas características, entonces e pueden utilizar, opcionalmente, STD o
diagramas de sucesos de Ptech. Las reglas realmente globales están
contenidas en un objeto del más alto nivel, denominado “objeto” y serán
heredadas por todos aquellos objetos que no las invaliden. Del mismo modo
que los diagramas de transición de estado, o de cambio de estado, se pueden
utilizar para describir la semántica procedural de métodos, también los árboles
de decisión pueden resultar útiles al describir conjuntos complejos de reglas.
La actividad de semántica declarativa (reglas) es el aspecto más novedoso de
SOMA. Mejora el modelo de objeto habitual al añadir un conjunto de reglas de
un conjunto de conjuntos de reglas a cada objeto. De esta manera, aún cuando
un objeto se considera normalmente como formado por identificador, atributos,
y métodos, los objetos de SOMA constan de identificador, atributos, métodos y
reglas. Las reglas se pueden subdividir, a su vez, en tipos.
Esto tiene un cierto número de consecuencias interesantes, la más notable de
la cuales es que aquellos objetos que sean entidades locales podrán
encapsular las reglas del comportamiento global del sistema, de forma
bastante parecida a como se supone que el DNA encapsula los morfemas.
Otra consecuencia es que se pueden considerar como objetos los conjuntos
de reglas, para el desarrollo de sistemas expertos. En ese caso, una
aproximación natural es considerar los objetos del tipo conjunto de reglas con
sí poseyeran un pequeño número de atributos y métodos. Por ejemplo,
podríamos tener el atributo variable –Objetivo: y el método Encadenamiento-
regresivo: heredados, por supuesto, del objeto del conjunto general de reglas.
Al igual que los atributos y los métodos, la interfaz del objeto muestra
solamente el nombre de una regla o conjunto de reglas. En el caso de un
conjunto de reglas de encadenamiento regresivo esto podría consistir
perfectamente en el nombre del valor que se esta buscando: por ejemplo, Si
Ruta: necesitase BUSCAR Ruta:
A parte de este uso especializado, las reglas pueden ser de diferentes tipos,
Por ejemplo, se pueden tener activadores, reglas de negocios y reglas de
control. La reglas de negocio, típicamente, relacionan dos o más atributos, y los
activadores relacionan atributos con métodos.
Las reglas de negocio especifican información de segundo orden, tal como las
dependencias entre atributos, por ejemplo, una dependencia entre la edad de
un empleado y sus derechos de vacaciones. Por último, quizá sea necesario
especificar condiciones globales previas y posteriores que sean aplicables a
todos los métodos. Una regla de negocio típica en una aplicación de personal
podría incluir “cambiar el derecho de vacaciones a cinco semanas cuando el
tiempo de permanencia en la empresa sobrepase los cinco años”, como regla
en la ventana de reglas del objeto Empleado, Con esta extensión, la notación
puede resolver problemas de análisis en los que se tenga como entorno de
destino una base de datos relacional o deductiva o caracterizas orientales a
objetos. Es posible expresar de forma bastante sencilla unas reglas bastantes
complejas empleando conjuntos de reglas.
Las reglas de integridad se consideran como parte de la semántica de datos, y
se almacenan como parte de la información de tipo. Lo mas interesante en lo
que sucede en las reglas de control.
Examinemos un ejemplo sencillo, pero divertido, que implica herencia múltiple
y valores por omisión de los atributo. Supongamos que se desea construir un
juego de aventuras basado en texto. Acordemos llamemos “ búsqueda”. En una
ventura del tipo representado por la Caverna Colosal se suelen tener las
siguientes clases de entidades: situaciones, actores y cosas. El juego tiene
situaciones que pueden contener objetivo móviles (los llamaremos “ cosas”,
para evitar la confusión), objetos que están enumerados en el atributo
contenido o que poseen propiedades misteriosas descritas mediante métodos.
La vida se vuelve interesante cuando se examina la estructura de la capa
Cosa. Las cosas se pueden desglosar en tesoro que tiene un valor en puntos,
armas, que no lo tiene, y objetos útiles como comida, sacos cosas por el estilo,
se muestra una estructura provisional, en la cual se puede ver que la herencia
múltiple ha hecho su aparición: la espada enjoyada es, a la vez, un tesoro y un
arma. El tesoro contiene un valor positivo en puntos, y a las armas no tiene,
Entonces, ¿Cuáles es el valor de la espada enjoyada que podría heredar tanto
de arma como de tesoro?
Para solucionar conflictos de herencia de este tipo existen varias estrategias. El
sistema puede informar del conflicto al usuario, y pedir un valor, y esta es la
estrategia más común. Lamentablemente, detener la ejecución en un entorno
por lotes suele ser más enojoso: resulta costoso. Todas las demás
aproximaciones requieren que se codifique en el sistema parte de la semántica
de la aplicación.
También puede servir de ayuda para la semántica del objeto sea explicita y
visible. Esto ayuda a realizar la descripción de información que residía
normalmente en un depósito, tal como en las reglas de negocio para la
empresa.
Si esta regla forma parte de la interfaz, todos los demás sistemas y
componente del sistema pueden ver el significado del objeto solo a partir de si
interfaz, eliminando, de esta manera, algunas de las complejidades de la
tecnología de depósitos, llevándola al modelo objeto.
Todavía no han aparecido herramientas que hagan esto forma correcta.
Algunas veces es posible, en casos sencillos, especificar reglas que deban ser
obedecidas por todas las estrategias de control para la herencia múltiple.
Tal como se ha visto, las reglas de control no son las únicas reglas que existen
enana aplicación. Ya hemos mencionado las reglas de negocios. En ambos
casos, tiene sentido encapsular esas reglas en objetos, y mejora la
reutilizabilidad y la extensibilidad, Las reglas cuya validez en todo el sistema
pertenecen a los objetos mas grandes del sistema.
Puede resultar interesante del análisis orientado a objetos, basadas en regla ,
ayudan a enriquecer la semántica de modelos de sistemas comerciales
convencionales. Esto hace que estos modelos sean más legibles y mas
reversibles: en el modelo resulta evidente una mayor parte de las intenciones
del analista. Además, proporciona una aproximación verdaderamente orientada
a objetos a la especificación de sistemas avanzados de base de datos y de
conocimiento.
PASO AL DISEÑO – CONDICIONES FORMALES FRENTE A REGLAS
Cualquier cosa que pueda expresarse en forma de reglas podrá, en principio,
ser expresada como una combinación de condiciones previsa, posteriores e
invariantes, Sin embargo, hacer esto puede resultar complejo e ilegible. La
ventaja que aportan las reglas es la claridad y la concision. El analista podrá
juzgar qué es lo mejor en casos concretos.
A no ser que la realización vaya a ser desarrollada en un lenguaje basado en
reglas, los diseñadores que empleen SOMA sustituirán las reglas de los
análisis de SOMA por afirmaciones.
Esto es mas preciso, pero resulta menos comunicable a los usuarios, así que
es importante seguir la conversión, incluso, automatizarla.
En SOMA, las clases constan de un identificador, punteros de superclases,
punteros de clases componentes, atributos, métodos y conjuntos de reglas. Los
atributos pueden ser simplemente reservas de espacio para objetos, o bien
pueden denotar relaciones con una formación adecuada acerca de la
multiplicidad de la modalidad. Los atributos son una notación taquigráfica para
los métodos estándares de tomar y poner. Los métodos pueden especificar
afirmaciones de tres clases: condiciones previas, condiciones posteriores y
condiciones invariantes.
CASO PRÁCTICAS: SACIS
Para ver un ejemplo más concreto y realista, examinaremos algunos objetos en
SACIS, junto con sus reglas. El escenario implica una clase concreta de
suceso, una venta. Las ventas implican un cliente, que puede ser un adulto o
un niño, y una lista de objetos, que pueden ser de diferentes tipos. Se dispone
de un lector de código de barras que lee y actualiza el sistema de almacenaje,
y de un sistema, cuya tarea es asegurarse de que los objetos vendidos sean
adecuados para los propósitos del cliente.
El termino adecuado abarca varios criterios de “ajuste a nuestra necesidades”,
uno de los cuales es la seguridad.
Supongamos que un cierto cliente está intentando comprar un tubo de
pegamento. El modelo de datos convencional se ha esbozado, la decisión de si
las relaciones que se muestran como rombos en la figura deberían o no ser
objetos se posponen por el momento.
Obsérvese que existe un cierto número de estructuras de herencia múltiple
implicadas: específicamente, son las correspondientes al pegamento y al
cliente, a veces resulta conveniente indicar una herencia múltiple disyuntiva
cuando unja subclase es, o bien un B. La convención es que se utiliza una
barra doble por encima del icono AKO. Esto debe evitarse siempre que sea
posible.
La cuestión es como se puede modelar la derivación de la seguridad para este
tubo de pegamento. Dado que el tubo es pegamento hereda del material de
oficina y de juguete, no debería haber problemas de seguridad. Sin embargo,
las estructuras ilustradas muestran que hemos modelado el hecho de que se
puede abusar del pegamento, utilizándolo como droga intoxicante. En la
actualidad, la mayoría de las tiendas se niegan a vender pegamento a los niños
por esta razón; el modelado estructural de este hecho representa una regla de
negocio para tales tiendas.
En tal caso, el sistema debería permitir la venta o quizás, más estrictamente,
negarse a vender el pegamento o el modelo (que, en todo caso, resulta inútil
sin el pegamento).
Para realizar esto, el sistema debería indicar el valor de seguridad del
pegamento como muy bajo, y exploraría toda la transición completa para
buscar adquisiciones relacionadas con le pegamento.
En resumen, SOMA extiende el nemónica SOSAS de Coad, y Yourdon para
formar un eslogan más extenso: LOSAAMR. En otras palabras, los analistas
deberían desarrollar su actividad identificando.
El método que se recomienda es enfrentarse a estos pasos aproximadamente
por el orden dado, aunque la creación de capas es una actividad que está
sometida a revisiones en la mayoría de las frases. Se puede considerar el
modelo como una cascada con interacción o, preferiblemente, creo yo, como
una espiral. Es problema de estos modelos de ciclo vital se tratará.
En resumen SOMA extiende el nemónico SOSAS de Coad y Yourdon para
formar un eslogan más extenso. LOSAAMR. En otras palabras, los análisis
deberían desarrollar su actividad identificando:
Capas
Objetos
Estructuras
- Estructuras de utilización
- Estructuras de clasificación
- Estructuras de composición
Asociaciones y su semántica de datos
Atributos con una notación que represente el tipo, validación, seguridad
y valores por omisión.
Métodos, con una notación que represente el tratamiento de
excepciones las afirmaciones y el paso de parámetros.
Reglas:
- Reglas de control
- Reglas de negocios
- Activadores
El método que se recomienda es enfrentarse a estos pasos aproximadamente
por el orden dado, aunque la creación de capas es una actividad que está
sometida a revisiones en la mayoria de las fases. Se puede considerar el
modelo con una cascada con interacción o preferiblemente, creo yo, como un
espiral. El proceso es controlado por riesgos, tal como sucede con la mayoría
de los modelos espirales.