Modelo orientado a objetos
El modelo de objetos representa la naturaleza estática y estructurada de los datos del sistema y describe la estructura estática del sistema. Se describe desde la perspectiva de las relaciones de objetos de las entidades en el mundo objetivo y expresa las relaciones mutuas entre los objetos. . Este modelo se preocupa principalmente por la estructura, propiedades y operaciones de los objetos en el sistema. Es el núcleo de los tres modelos en la etapa de análisis y el marco de los otros dos modelos.
⒈Objetos y clases
⑴Objetos.
El objetivo del modelado de objetos es describir objetos.
⑵ Clase.
Al abstraer objetos en clases, podemos abstraer el problema y la abstracción mejora la capacidad de inducción del modelo.
⑶ Atributos.
Los atributos se refieren a las propiedades (valores de datos) de los objetos de una clase.
⑷ Operaciones y métodos.
Una operación es una función o transformación utilizada por los objetos de una clase. Cada objeto de la clase puede compartir operaciones y cada operación tiene un objeto de destino como parámetro implícito.
Los métodos son los pasos de implementación de las operaciones de clase.
⒉Asociación y cadena
La asociación es un medio para establecer relaciones entre clases, mientras que las cadenas son un medio para establecer relaciones entre objetos.
⑴ El significado de asociación y cadena.
La cadena representa la conexión física y conceptual entre objetos, la asociación representa una relación entre clases, la cadena es una instancia de asociación y la asociación es la abstracción de la cadena.
⑵ Rol.
El rol describe el rol de la clase en la asociación. Está ubicado en el punto final de la asociación.
⑶ Asociación restringida.
La asociación restringida consta de dos clases y un calificador. El calificador es un atributo específico que se utiliza para reducir efectivamente la multiplicidad de la asociación. El calificador se especifica en el conjunto de objetos terminales asociados.
La calificación mejora la precisión de la semántica y mejora las capacidades de consulta. En el mundo real, los calificadores suelen aparecer.
⑷ Multiplicidad de asociaciones.
La multiplicidad de asociación se refiere a cuántos objetos de una clase están relacionados con un objeto de la clase asociada. La multiplicidad se describe a menudo como "uno" o "muchos".
⒊Jerarquía de clases
⑴ Relación de agregación.
La agregación es una relación de "parte entera". En esta relación hay categorías enteras y categorías parciales. La propiedad más importante de la agregación es la transitividad, que también tiene simetría inversa.
La agregación puede tener diferentes niveles y se pueden agregar diferentes categorías para obtener un árbol de agregación simple. El árbol de agregación es una representación simple, que es mucho más simple que dibujar muchas líneas para conectar algunas categorías. Los niveles de jerarquía deben reflejarse fácilmente.
⑵Relación generalizada.
Las relaciones generalizadas son una forma muy abstracta de compartir similitudes de objetos manteniendo sus diferencias. Es una relación "general-específica". Las clases generalizadas se denominan clases, y las clases específicas también se pueden llamar subclases. Cada subclase hereda las propiedades de la clase principal y algunas de las mismas propiedades y operaciones de cada subclase se resumen en su clase. Por tanto, las relaciones de generalización y de herencia existen simultáneamente. La representación simbólica de una relación generalizada es un pequeño triángulo en la línea que conecta la asociación de clases.
⒋Modelo de objeto
⑴Plantilla. Las plantillas son componentes lógicos de clases, asociaciones y estructuras generalizadas.
⑵Modelo de objetos.
El modelo de objetos se compone de una o varias plantillas. Las plantillas dividen el modelo en varios subbloques que son fáciles de administrar. Las plantillas proporcionan una unidad intermedia integrada entre todo el modelo de objetos y las clases y los bloques de construcción asociados. Los nombres de las clases y los nombres asociados en la plantilla son únicos. Los modelos dinámicos son las propiedades de un sistema que están relacionadas con el tiempo y el cambio. Este modelo describe la estructura de control del sistema. Representa la naturaleza instantánea y conductual del control del sistema. Se ocupa del control del sistema y la secuencia de ejecución de las operaciones. Representa los eventos y estados de los objetos esclavos. perspectiva, muestra el comportamiento mutuo de los objetos.
Las propiedades del sistema descritas por este modelo son eventos desencadenantes, secuencias de eventos, estados y la organización de eventos y estados. Utilice diagramas de estado como herramienta de descripción. Involucra conceptos importantes como eventos, estados, operaciones, etc.
⒈Evento
Un evento es algo que sucede en un momento específico.
⒉Estado
El estado es una abstracción de los valores de los atributos del objeto. Los valores de los atributos de un objeto se agrupan en un estado según las propiedades que afectan el comportamiento significativo del objeto. El estado especifica la respuesta del objeto a los eventos de entrada.
⒊Gráfico de estados
El gráfico de estados es un concepto informático estándar. Es una representación gráfica de un autómata finito. Aquí, el gráfico de estados se utiliza como herramienta gráfica para establecer modelos dinámicos. .
El diagrama de estados refleja la relación entre estados y eventos. Cuando se recibe un evento, el siguiente estado depende del estado actual y del evento recibido. El cambio de estado causado por el evento se denomina transición.
Un diagrama de estado es un diagrama que utiliza nodos para representar estados, y los nodos están representados por círculos; hay nombres de estados dentro de los círculos, y las flechas están conectadas para representar las transiciones de estado están marcadas en ellos. , y la dirección de la flecha representa la dirección de transición. El modelo funcional describe todos los cálculos del sistema. El modelo funcional indica lo que sucede, el modelo dinámico determina cuándo sucede y el modelo de objetos determina lo que sucede. Un modelo funcional muestra cómo un cálculo pasa de los valores de entrada a los valores de salida, independientemente del orden de los cálculos. El modelo funcional consta de múltiples diagramas de flujo de datos. El diagrama de flujo de datos se utiliza para representar el flujo de valores de datos desde el objeto de origen al objeto de destino. Al mismo tiempo, no contiene información de control. La información de control se representa en el modelo dinámico. no representa la organización de valores en el objeto. La organización de valores está en el objeto representado en el modelo.
El diagrama de flujo de datos contiene procesamiento, flujo de datos, objetos de acción y objetos de almacenamiento de datos.
⒈Procesamiento
El procesamiento en el diagrama de flujo de datos se utiliza para cambiar los valores de los datos. El procesamiento de nivel más bajo es una función pura y un gráfico de flujo de datos completo es un procesamiento de alto nivel.
⒉Flujo de datos
El flujo de datos en el diagrama de flujo de datos conecta la salida y el procesamiento de objetos, y el procesamiento y la entrada, el procesamiento y el procesamiento de objetos. En una computadora, se utiliza un flujo de datos para representar un valor de datos intermedio. El flujo de datos no puede cambiar el valor de los datos.
⒊Objeto de acción
Un objeto de acción es un objeto activo que impulsa el diagrama de flujo de datos generando o utilizando valores de datos.
⒋Objeto de almacenamiento de datos
El almacenamiento de datos en el diagrama de flujo de datos es un objeto pasivo, que se utiliza para almacenar datos. Es diferente del objeto de acción. El almacenamiento de datos en sí no produce ninguna operación. Solo responde a los requisitos de almacenamiento y acceso. El propósito del análisis orientado a objetos es modelar sistemas en el mundo objetivo. Esta sección se basa en el concepto de modelo presentado anteriormente, combinado con el ejemplo específico del "sistema de red bancaria" para construir un modelo de análisis preciso y riguroso de los problemas mundiales objetivos.
El modelo de análisis tiene tres usos: aclarar los requisitos del problema; proporcionar requisitos claros para los usuarios y desarrolladores; proporcionar una base para la negociación entre usuarios y desarrolladores como marco para el diseño y la implementación posteriores.
(1) Análisis orientado a objetos
El primer paso en el análisis del sistema es: establecer los requisitos. El analista debe trabajar con el usuario para refinar los requisitos porque esto representa la verdadera intención del usuario, que implica analizar los requisitos y encontrar la información faltante. A continuación se toma el "Sistema de red bancaria" como ejemplo para analizarlo utilizando el método orientado a objetos.
Declaración del problema del sistema de red bancaria: Diseño de software para soportar la red bancaria, que incluye estaciones de cajeros manuales y cajeros automáticos compartidos por sucursales. Cada sucursal utiliza la computadora de la sucursal para guardar su propia cuenta y procesar sus propios asuntos; la estación de caja de cada sucursal se comunica con la computadora de la sucursal, y la estación de caja ingresa los datos de la cuenta y las transacciones con el cajero automático; computadora de la sucursal, la computadora de la sucursal verifica con la sucursal de asignaciones, el cajero automático y la interfaz de usuario aceptan tarjetas de efectivo, se comunica con la computadora de la sucursal para completar transacciones, emitir efectivo e imprimir recibos; el sistema requiere mantenimiento de registros y medidas de seguridad; el sistema debe manejar correctamente las transacciones simultáneas en la misma cuenta Access; cada sucursal prepara un software para su propia computadora y las tarifas de la red bancaria se distribuyen entre cada sucursal según la cantidad de clientes y tarjetas de efectivo.
(2) Establecer el modelo de objetos
Primero identificar y asociar, porque afectan la estructura general y los métodos de resolución de problemas, en segundo lugar agregar atributos para describir con más detalle la red básica de clases y asociaciones, utilizan la herencia para combinar y organizar clases y, finalmente, se agregan operaciones a las clases como subproducto de la construcción de modelos dinámicos y funcionales.
⒈Determinar clases
El primer paso en la construcción de un modelo de objetos es identificar las clases de objetos relevantes del dominio del problema. Los objetos incluyen entidades físicas y conceptos. Todas las clases deben tener sentido en la aplicación, no todas las clases se dan explícitamente en el planteamiento del problema. Algunos están implícitos en el dominio del problema o en el conocimiento general.
Determine la clase de acuerdo con el proceso que se muestra en la Figura 10-19
Encuentre todos los sustantivos en el enunciado del problema y genere las siguientes clases tentativas.
Software Red Bancaria Cajero Cajero Automático Sucursal
Subprocesamiento Subprocesamiento Computadora Cuenta Transacción Estación de Cajero
Datos de transacción Sucursal Computadora Efectivo Tarjeta Usuario Efectivo
p >
Datos de la cuenta de gastos del cliente del sistema de recibos
Acceder al mantenimiento de registros de medidas de seguridad
Eliminar clases innecesarias e incorrectas según los siguientes criterios.
⑴ Clases redundantes: Si dos clases expresan la misma información, retenga la clase con mayor capacidad descriptiva. Por ejemplo, los usuarios y los clientes son descripciones repetidas, debido a que los clientes son los más descriptivos, se retienen.
⑵ Clases irrelevantes: Elimina las clases que no tienen nada que ver con el problema o que no son relevantes en absoluto. Por ejemplo, la amortización de comisiones se extiende más allá de la red del banco.
⑶ Clase difusa: la clase debe ser definida. Algunos límites de clase tentativos están vagamente definidos o son demasiado amplios. Por ejemplo, el mantenimiento de registros es una clase difusa, que es parte de la transacción.
⑷ Atributos: Algunos sustantivos describen atributos de otros objetos y se eliminan de la clase tentativa. Si la independencia de una determinada propiedad es importante, se debe asignar a una clase en lugar de a un atributo.
⑸ Operación: si el sustantivo en el enunciado del problema tiene un significado de acción, la operación descrita no es una clase. Pero las operaciones que tienen su propia naturaleza y necesitan existir de forma independiente deberían describirse como clases. Si solo construimos el modelo telefónico, la marcación es parte del modelo dinámico en lugar de una clase. Sin embargo, en el sistema de marcación telefónica, la marcación es una clase importante con atributos como fecha, hora y ubicación de la persona que llama.
En los sistemas de redes bancarias, las categorías difusas son sistemas, medidas de seguridad, mantenimiento de registros, red bancaria, etc. Las propiedades incluyen: datos de cuentas, recibos, efectivo y datos de transacciones. Perteneciente a implementación como: acceso, software, etc. Estos deberían eliminarse.
⒉ Preparar diccionario de datos
Preparar un diccionario de datos para todas las entidades de modelado. Describa con precisión el significado preciso de cada clase y describa el alcance de la clase en el problema actual, incluidas las suposiciones o restricciones sobre los miembros y el uso de la clase.
⒊Determinar la asociación
La dependencia mutua entre dos o más clases es la asociación. Una dependencia representa una asociación, que se puede implementar de varias maneras, pero las consideraciones de implementación deben eliminarse del modelo de análisis para permitir una mayor flexibilidad en el diseño. Las asociaciones a menudo se expresan mediante verbos descriptivos o frases verbales, incluida la expresión de ubicación física, acciones conductoras, comunicación, relaciones con los propietarios, satisfacción de condiciones, etc. Extraiga todas las posibles afirmaciones relevantes del planteamiento del problema y escríbalas, pero no las refine demasiado pronto.
Las siguientes son todas las asociaciones posibles en el sistema de red bancaria, la mayoría de las cuales se obtienen extrayendo directamente las frases verbales de la pregunta. En los enunciados, algunas frases verbales expresan conexiones que no son obvias. Finalmente, existen algunas correlaciones relacionadas con el mundo objetivo o suposiciones humanas que deben verificarse con el usuario porque esta correlación no se encuentra en el planteamiento del problema.
Relaciones en el planteamiento del problema de la red bancaria:
·La red bancaria incluye estaciones de cajeros y cajeros automáticos;
·Las sucursales comparten cajeros automáticos <; /p>
·La sucursal proporciona una computadora para la sucursal;
·La computadora de la sucursal guarda la cuenta;
·La computadora de la sucursal maneja los asuntos de pago de la cuenta;
·La sucursal tiene una estación de caja;
·La estación de caja se comunica con la computadora de la sucursal;
·El cajero ingresa transacciones para la cuenta;
·ATM acepta tarjetas de efectivo;
·ATM e interfaz de usuario;
·ATM dispensa efectivo;
·ATM La máquina imprime el recibo;
·El sistema maneja el acceso concurrente;
·La sucursal proporciona software;
·El costo se asigna a la sucursal.
Frase verbal implícita:
·Una sucursal consta de sucursales;
·Una sucursal posee una cuenta;
· Las sucursales tienen sucursal computadoras;
·El sistema proporciona mantenimiento de registros;
·El sistema proporciona seguridad;
·Los clientes tienen tarjetas de efectivo.
Asociaciones basadas en el conocimiento del dominio del problema:
·Contratar cajeros en sucursales;
·Cuentas de acceso a tarjetas de efectivo.
Utilice los siguientes criterios para eliminar asociaciones innecesarias e incorrectas:
⑴ Si se ha eliminado una clase, las asociaciones relacionadas con ella también deben eliminarse o restablecerse con otras clases. Expresión. En el ejemplo, hemos eliminado la red bancaria y también se deben eliminar las asociaciones relacionadas.
⑵ Asociaciones irrelevantes o asociaciones en la fase de implementación: elimine todas las asociaciones fuera del dominio del problema o asociaciones involucradas en la estructura de implementación. Por ejemplo, el manejo del acceso concurrente por parte del sistema es un concepto de implementación.
⑶ Acción: La asociación debe describir la naturaleza estructural del dominio de la aplicación en lugar de eventos transitorios, por lo que se deben eliminar el cajero automático que acepta tarjetas de efectivo, el cajero automático y la interfaz de usuario, etc.
⑷ Asociación derivada: Omitir aquellas asociaciones que puedan ser definidas por otras asociaciones. Porque esta asociación es redundante. El diagrama de objetos preliminar del sistema de red bancaria se muestra en la Figura 10-20. Hay una conexión.
⒋Determinar atributos
Los atributos son las propiedades de objetos individuales. Los atributos generalmente se expresan modificando frases nominales. Los adjetivos a menudo representan valores de atributos enumerables específicos. Los atributos no se pueden expresar completamente en el problema. declaración, deben encontrarse con la ayuda del conocimiento del dominio de aplicación y el conocimiento del mundo objetivo. Considere únicamente los atributos que sean directamente relevantes para la aplicación específica y no considere aquellos que estén fuera del alcance del problema. Primero descubra los atributos importantes, evite aquellos atributos que solo se usan para la implementación y asigne a cada atributo un nombre significativo. Elimine los atributos innecesarios e incorrectos de acuerdo con los siguientes estándares:
⑴Objeto: Si la existencia independiente de una entidad es más importante que su valor, entonces la entidad no es un atributo sino un objeto. Por ejemplo, en el catálogo postal la ciudad es un atributo, pero en el censo la ciudad se considera un objeto. En aplicaciones específicas, las entidades con sus propias propiedades deben ser objetos.
⑵ Determinador: Si el valor del atributo depende de un contexto específico, puedes considerar reformular el atributo como un determinante.
⑶ Nombre: el nombre se utiliza a menudo como calificador en lugar de como atributo del objeto. Cuando el nombre no depende del contexto, el nombre es un atributo del objeto, especialmente cuando no es único.
⑷Identificador: al considerar la ambigüedad del objeto, se introduce la representación del identificador de objeto. Estos identificadores de objeto no figuran en el modelo de objetos. Están implícitos en el modelo de objetos y solo enumeran los objetos que existen en el modelo de objetos. Propiedades del dominio de aplicación.
⑸ Valor interno: si un atributo describe el estado interno de un objeto que es opaco al mundo exterior, el atributo debe eliminarse del modelo de objeto.
⑹ Refinamiento: ignore los atributos que probablemente no tengan un impacto en la mayoría de las operaciones.
⒌Utilice la herencia para refinar las clases
Utilice la herencia para compartir instituciones públicas y organizar las clases de dos maneras.
⑴ Descubrimiento ascendente de la herencia generalizando las propiedades más idénticas de las clases existentes a las clases principales y buscando clases con atributos, relaciones u operaciones similares. Por ejemplo, las transacciones remotas y las transacciones de caja son similares y pueden generalizarse en transacciones. Algunas estructuras generales suelen basarse en clasificaciones existentes en los límites del mundo objetivo. Siempre que sea posible, intente utilizar conceptos existentes. Las simetrías a menudo ayudan a descubrir ciertas clases que faltan.
⑵ Refine las clases existentes en subclases más específicas de arriba a abajo. La cosificación suele ser evidente desde el dominio de la aplicación. Los casos de enumeración dentro de los dominios de aplicación son la fuente más común de cosificación. Por ejemplo: los menús pueden tener menús fijos, menús superiores, menús emergentes, menús desplegables, etc. Esto permite que la categoría del menú se refine específicamente en subcategorías de varios menús específicos. Cuando el mismo nombre de asociación aparece varias veces y tiene el mismo significado, debe ser lo más específico posible en clases relacionadas. Por ejemplo, cuando las transacciones ingresan desde una estación de caja y un cajero automático, la estación de entrada es la generalización del cajero. estación y puesto de cajero automático. En la jerarquía de clases, se pueden asignar propiedades y asociaciones a clases específicas. La suma de cada atributo debe asignarse a la clase más apropiada en general, a veces con algunas modificaciones.
Las enumeraciones dentro de un dominio de aplicación son la fuente más común de cosificación.
⒍Mejorar el modelo de objetos
El modelado de objetos no puede garantizar que el modelo sea completamente correcto una vez, y todo el proceso de desarrollo de software es un proceso de mejora continua. Los diferentes componentes del modelo se completan en su mayoría en diferentes etapas. Si se encuentran defectos en el modelo, se debe regresar a la etapa inicial para modificarlo. Algunos trabajos de refinamiento solo se inician después de que se completan el modelo dinámico y el modelo funcional.
⑴ Varias situaciones en las que se pueden perder objetos y soluciones:
·Si hay atributos y operaciones no relacionadas en la misma clase, descomponga la clase para que las partes estén relacionadas entre sí otro
·Si el sistema de generalización no está claro, es posible separar clases que desempeñan dos roles
·Si hay una operación sin una clase objetivo, busque y agregue la clase. que ha perdido su objetivo;
·Si hay asociaciones redundantes con el mismo nombre y propósito, cree la clase principal que falta mediante la generalización para organizar las asociaciones juntas.
⑵ Encuentra clases redundantes.
Si faltan atributos, operaciones y asociaciones en la clase, la clase se puede eliminar.
⑶Encuentra asociaciones faltantes.
Si se pierde la ruta de acceso a la operación, se agrega una nueva asociación para responder a la consulta.
⑷ Las condiciones específicas del sistema de red se modifican de la siguiente manera:
① Las tarjetas de efectivo tienen múltiples funciones independientes. Divídalo en dos objetos: permisos de tarjetas y tarjetas de efectivo.
a. Permisos de tarjeta: Es una tarjeta utilizada por los bancos para identificar los permisos de acceso de los usuarios, indicando los permisos de acceso de una o más cuentas de usuario; cada objeto de permiso de tarjeta puede tener varias tarjetas de efectivo, cada una de las cuales tiene. Junto con los códigos de seguridad y los códigos de tarjeta, se adjuntan a la tarjeta de efectivo y representan los permisos de la tarjeta del banco.
b. Tarjeta de efectivo: Es la tarjeta de datos de la que el cajero automático obtiene el código. También es el portador de datos del código bancario y del código de la tarjeta de efectivo.
②La transacción no puede reflejar la generalidad de la descripción de transferencia entre cuentas, porque solo involucra una cuenta. En términos generales, en cada cuenta, una transacción incluye una o más actualizaciones, y una actualización es una acción en. la cuenta, son de retiro, depósito y consulta. Todas las actualizaciones dentro de una actualización deben ser una operación atómica.
③La diferencia entre sucursales y procesadores separados, y entre sucursales y procesadores de sucursales no parece afectar el análisis. El procesamiento de comunicación por computadora es en realidad un concepto de implementación que combina sucursales con computadoras. integrar la computadora de la sucursal en la sucursal.
(3) Establecer un modelo dinámico
⒈Preparar guiones
El análisis dinámico comienza con la búsqueda de eventos y luego determina la posible secuencia de eventos para cada objeto. La ejecución del algoritmo no se considera durante la fase de análisis; el algoritmo es parte del modelo de implementación.
⒉Identificar eventos
Identificar todos los eventos externos. Los eventos incluyen toda la información desde o hacia el usuario, señales, entradas, conversiones y acciones de dispositivos externos. Se pueden encontrar eventos normales, pero no se pueden pasar por alto condiciones y eventos anormales.
⒊Preparar la tabla de seguimiento de eventos
Represente el script como una tabla de seguimiento de eventos, es decir, una tabla de clasificación de eventos entre diferentes objetos. Los objetos son columnas en la tabla y cada objeto es. asignado Una columna separada.
⒋Construya un gráfico de estado
Establezca un gráfico de estado para cada clase de objeto para reflejar los eventos recibidos y enviados por el objeto. Cada seguimiento de evento corresponde a una ruta en el gráfico de estado.
(4) Establecer modelado funcional
El modelo funcional se utiliza para explicar cómo se calculan los valores, las dependencias entre valores y las funciones relacionadas. El diagrama de flujo de datos ayuda a representar. dependencias funcionales, donde el procesamiento corresponde a actividades y acciones de un diagrama de estado, y donde los flujos de datos corresponden a objetos o propiedades en un diagrama de objetos.
⒈Determinar el valor de entrada y el valor de salida
Primero enumere los valores de entrada y salida. Los valores de entrada y salida son los parámetros del evento entre el sistema y el exterior. mundo.
⒉Construir un diagrama de flujo de datos
El diagrama de flujo de datos explica cómo el valor de salida proviene del valor de entrada. El diagrama de flujo de datos generalmente está organizado jerárquicamente.
(5) Determinar la operación
Al establecer el modelo de objetos se ha determinado la clase, asociación, estructura y atributos, pero aún no se ha determinado la operación. Sólo después de que se establezcan el modelo dinámico y el modelo funcional, es posible finalizar el funcionamiento de la clase.