3. Clases del Sistema



Descargar 257,64 Kb.
Página1/3
Fecha de conversión23.03.2017
Tamaño257,64 Kb.
  1   2   3
3. Clases del Sistema
La primera tarea en el diseño de un sistema es encontrar las clases que lo componen. Para esto comenzamos con la especificación de requerimientos del sistema1. Esta debe incluir los objetivos de la aplicación, las entradas esperadas y las respuestas deseadas. Se debe leer cuidadosamente la especificación de requerimientos en busca de frases nominales. Se cambian plurales a singulares y se crea una lista preliminar. En esta lista aparecerán frases que incluyen clases obvias, frases que no tienen nigún sentido y frases sobre las cuales no se puede estar seguro. No todas las clases candidatas aparecerán en diseño final y algunas de las clases del sistema serán pasadas por alto en esta etapa. Se debe tener en cuenta que el lenguaje es muy flexible y que no existe la especificación de requerimientos completa. Además del sentido común se debe tener en cuenta entonces la siguiente guía:


  • Se deben modelar los los objetos físicos, tales como Mouse, Disco, Impresora, etc.




  • Se deben modelar las entidades conceptuales que representen una abstracción coherente, tales como Ventana, Archivo, etc.




  • Si aparece más de un nombre para un mismo concepto, se debe elegir el que sea más significativo en términos del resto del sistema.




  • Se debe tener cuidado con los adjetivos. Un adjetivo puede ser utilizado para sugerir una clase diferente de objetos o para sugerir un uso diferente del mismo objeto. Si el uso de un adjetivo marca un comportamiento diferente, entonces se trata de una nueva clase.




  • Se debe tener cuidado con las frases en voz pasiva. Las frases escritas en voz pasiva tienen implícito un sujeto. Se deben reescribir en voz activa y evaluar si el sujeto es una clase del sistema o no. De forma similar, hay que tener cuidado con las frases en voz activa donde el sujeto es algo que está por fuera del sistema, "el usuario", por ejemplo.




  • Se deben modelar categorías de clases. Estas categorías serán superclases abstractas en el diseño final, sin embargo en esta primera etapa se deben modelar como clases específicas.




  • Se deben modelar las interfaces con el mundo externo, tales como la interfaz de usuario, interfaz con otros programas o con el sistema operativo.




  • En esta fase se debe modelar el valor de los atributos de los objetos, y no los atributos en sí.

El resultado de esta etapa es una lista preliminar de clases. Muchas clases faltarán y otras serán eliminadas despúes.

________________________________________________________________________
Especificación de requerimientos para un editor gráfico básico.

________________________________________________________________________


Un editor gráfico es una aplicación gráfica interactiva. En esta aplicación el usuario puede crear y editar dibujos compuestos de líneas, rectángulos, elipses y textos. Estos dibujos pueden ser almacenados en disco y posteriormente recuperados como dibujo en edición (persistencia).
El usuario interactúa con el editor por medio de herramientas. Estas serán de dos tipos: herramientas de creación y herramientas de selección. Sólo una herramienta estará activa en determinado momento y ésta será seleccionada por menú o por interacción con el ícono correspondiente. Cada herramienta tendrá asociado un cursor en particular que la represente.
Cuando la herramienta de selección está activa los elementos del dibujo pueden ser seleccionados con el mouse. Se pueden seleccionar uno o más elementos. En este caso los elementos seleccionados pueden ser manipulados como si se tratara de un sólo elemento. La manipulación de elementos se reduce a cambio en los atributos de tamaño, posición, color y estado (activo/no activo). El grupo de elementos seleccionados debe mostrar sus puntos de control. Presionando el botón izquierdo del mouse sobre un punto de control y luego moviendo el mouse ocasiona el cambio de tamaño del elemento asociado. Presionando el botón dentro de la selección y luego moviendo el mouse ocasiona un cambio de posición.
Cuando la herramienta de creación está activa el grupo de elementos seleccionados esta vacio. Cada vez que un elemento es creado, la herramienta de selección es activada y el elemento pasa a ser el nuevo grupo seleccionado.
La herramienta de creación de texto cambia el cursor a una línea vertical proporcional al tamaño de letra en uso (I-beam). El texto insertado comienza en la posición donde el usuario oprime el botón izquierdo del mouse.
Las demás herramientas de creación comienzan la secuencia de eventos cuando el botón izquierdo es oprimido y terminan cuando el botón es liberado. En el caso de creación de líneas estos eventos representan el punto inicial y final. En los otros casos representan los puntos diagonales del área rectángular que contiene al elemento.
En el caso de las líneas, los puntos de control coinciden con sus puntos extremos. En los demás casos, los puntos de control coinciden con los vértices del rectángulo que contiene al elemento.
________________________________________________________________________
Lo que no dice

________________________________________________________________________


Se necesita una ventana donde crear los dibujos.

¿Qué sucede cuando ésta cambia de tamaño?

¿Cómo se cambia el color de un elemento?

¿Cómo se especifica el color de relleno de un elemento?

¿Cómo se especifica el color y tipo de texto en uso?

¿Cómo se borra un elemento?

¿Cómo se recupera?

¿Cómo se deshacen otras operaciones?

¿Se pueden imprimir los dibujos creados?

etc.
________________________________________________________________________


Especificación de requerimientos para un editor gráfico elemental.

________________________________________________________________________


Un editor gráfico es una aplicación gráfica interactiva. En esta aplicación el usuario puede crear y editar dibujos compuestos de líneas, rectángulos, elipses y textos. Estos dibujos pueden ser almacenados en disco y posteriormente recuperados como dibujo en edición (persistencia).
El usuario interactúa con el editor por medio de herramientas. Estas serán de dos tipos: herramientas de creación y herramientas de selección. Sólo una herramienta estará activa en determinado momento y ésta será seleccionada por menú o por interacción con el ícono correspondiente. Cada herramienta tendrá asociado un cursor en particular que la represente.
Cuando la herramienta de selección está activa los elementos del dibujo pueden ser seleccionados con el mouse. Se pueden seleccionar uno o más elementos. En este caso los elementos seleccionados pueden ser manipulados como si se tratara de un sólo elemento. La manipulación de elementos se reduce a cambio en los atributos de tamaño, posición, color y estado (activo/no activo). El grupo de elementos seleccionados debe mostrar sus puntos de control. Presionando el botón izquierdo del mouse sobre un punto de control y luego moviendo el mouse ocasiona el cambio de tamaño del elemento asociado. Presionando el botón dentro de la selección y luego moviendo el mouse ocasiona un cambio de posición.
Cuando la herramienta de creación está activa el grupo de elementos seleccionados esta vacio. Cada vez que un elemento es creado, la herramienta de selección es activada y el elemento pasa a ser el nuevo grupo seleccionado.
La herramienta de creación de texto cambia el cursor a una línea vertical proporcional al tamaño de letra en uso (I-beam). El texto insertado comienza en la posición donde el usuario oprime el botón izquierdo del mouse.
Las demás herramientas de creación comienzan la secuencia de eventos cuando el botón izquierdo es oprimido y terminan cuando el botón es liberado. En el caso de creación de líneas estos eventos representan el punto inicial y final. En los otros casos representan los puntos diagonales del área rectángular que contiene al elemento.
En el caso de las líneas, los puntos de control coinciden con sus puntos extremos. En los demás casos, los puntos de control coinciden con los vértices del rectángulo que contiene al elemento.
_____________________________________________________________________________
Editor Gráfico: exploración inicial, lista preliminar de clases

_____________________________________________________________________________


editor gráfico aplicación

aplicación gráfica interactiva idem anterior

dibujo

línea


rectángulo

elipse


texto

disco ya modelado por el compilador: streams

usuario aplicación sencilla: no se modela

herramienta

herramientas de creación (de líneas, de rectángulos, de elipses, de textos)

herramientas de selección una sola

menú (vista ya modelada, comportamiento no)

ícono correspondiente (herramienta) dónde?

elementos del dibujo objetos gráficos: líneas, rectángulos, elipses, textos

grupo de elementos seleccionados

puntos de control

mouse ya modelado por Windows

botón izquierdo del mouse idem anterior

herramienta de selección ya

herramienta de creación de texto

evento (undo/redo)

punto inicial y final atributos, no clases

puntos diagonales idem anterior

rectángulo que contiene al elemento bounding box: atributo
______________________________________________________________________________

Lo que dice la especificación de requerimientos:


Jerarquía de las herramientas:

______________________________________________________________________________

Lo que no dice la especificación de requerimientos:
¿dónde se pinta? (ventana principal, ventana de edición)

¿íconos de herramientas, dónde? (ventana flotante/speed bar)

¿cómo se cancela una operación? (ESC)

¿cómo se cambia el color de un elemento? (ventana de colores)

¿cómo se borra uno o más elementos? (selección, DELETE)

¿undo/redo? (eventos)

¿cómo se selecciona un grupo de elementos? (SHIFT)

¿retícula de posicionamiento? (snap on/off)

¿los elementos pueden ser rellenos? (¿dónde se especifica/cambia?)

¿los elementos siempre tienen borde? (¿dónde se especifica/cambia?)

¿impresión?

¿ayuda en línea?

¿que pasa con dibujos más grandes que la pantalla?

3.1 Clases concretas y clases abstractas

En esta lista preliminar ya se pueden diferenciar dos tipos de clases: clases que representan conceptos genéricos, tales como herramienta, elemento gráfico o evento, y clases que representan conjuntos de uno o más objetos concretos que han de conformar la aplicación: dibujo, herramienta para la creación de líneas, línea, elipse, etc.. La primera categoría está formada por las clases llamadas superclases abstractas. Estas clases sirven para encapsular el comportamiento y los atributos comunes a un grupo de clases y no se espera crear objetos a partir de ellas. Por el contrario, las clases del segundo grupo son llamadas concretas porque a partir de ellas se han construir los objetos de la aplicación. Muchas de estas clases concretas serán descendientes de las abstractas (elemento gráfico ® línea, rectángulo, elipse, texto) y de ahí que estas últimas sean llamadas superclases. A nivel de diagrama es usual diferenciar las clases abstractas de las concretas por medio de una marca en la esquina superior-izquierda.




_____________________________________________________________________________


 Editor Gráfico: exploración inicial, lista de clases

_____________________________________________________________________________


Herramientas, jerarquía de clases revisada:

Jerarquía de elementos gráficos

  1   2   3


La base de datos está protegida por derechos de autor ©absta.info 2016
enviar mensaje

    Página principal