Key to concept example:
Suppose you were developing a graphics
program like Microsoft Paint. Given this use case for
the system function "draw a polygon,"
- List the candidates for key concepts (classes) in a conceptual
model.
user, polygon, picture, current function,
position, vertex, sequence, visual marker, edge.
- Briefly explain why each candidate is or is not a good choice for a
concept.
user: no, there is no attribute we
need to capture or behavior we need to model - we don't need to store user
id data or carry out actions for the user
polygon: yes, will
capture its attributes and behaviors to draw and manipulate
it
picture: yes, this will aggregate
the graphics objects that make up the image, and will have to
respond to
messages like "insert graphics object"
current function: possibly, so yes, because we may want to be
able to ask "what is the current function?" and we may store the value as a
non-primitive type like an enumeration
position: yes, it has
an internal structure
vertex: yes, has behaviors and
attributes we want to capture
sequence: reasonable to argue
either way:
no, just a numerical value, OR
yes, represents
the collection of vertices so has internal structure and behaviors to
model
display: no, just a representation of the
picture
visual marker: yes, we'll have to capture its position
and representation, and model its behavior
edge: yes, has
internal structure and behaviors we want to model