Advertisement
Bladtman

Untitled

Oct 30th, 2012
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.79 KB | None | 0 0
  1. Creator
  2. We don't have a full "chain of creation"
  3. So far we have considered only parts of the system
  4. (for example fig 3 shows that "the user" creates an event)
  5. but not gone into detail concerning actual object creation.
  6. For this reason, it seems our diagrams do not adhere the creator principle.
  7. Creation is unclear concerning:
  8. -User
  9. -Group
  10. -Calendar
  11. It is clear that an event is created trough some kind of GUI interaction,
  12. but not which objects are responsible.
  13. Likewise the Store and GUI must be created somewhere, but it seems
  14. logical to make theese as part of the system startup (mvc, anyone?)
  15.  
  16. Information Expert or just Expert
  17. Experts are a bit better defined.
  18.  
  19. -A User object is knows user info - such as name, employment status (Generel Manager or not?).
  20. It represents a user, and can as such be considered as infromation
  21. used elsewhere, rather than seen as containing information.
  22.  
  23. -A Group object knows all its member users (or member groups) and its manager(s).
  24. it contains the group name aswell, and probably a member count, but this getting a little implementation bound.
  25. It probably goes that any group must know all groups that it is in.
  26. Though this is not currently reflected in the diagrams
  27.  
  28. Currently, it is unclear whether Groups are able to present their
  29. calendars, or whether another object must ask the store for them events to create them.
  30. Either way, the group knows it's own id, so it would be able to ask the
  31. store, or provide the id for another object to ask the store for the relevant events.
  32. It is not a matter of great importance.
  33.  
  34. -Calendars are a volatile but essential entity.
  35. They are the only objects that knows events in a relevant format, yet
  36. that format is arbitrarily defined during execution.
  37. They are used to answer questions such as "what events does [group name] have in [period]".
  38. This question is more complex than it sounds. As all users are
  39. considered groups, and groups can contain groups, this will include
  40. events from groups the group/user is a member of, and groups that they are members of.
  41. In short: they know events. It might be practical for them to know the
  42. groups the events concern, but it is not essential.
  43.  
  44. Low Coupling
  45. The system seems quite uncoupled, except perchance the connection
  46. between User and Store (user could be represented through the group
  47. entity, but it complicates the 'mental model' about user specific data.).
  48. A cleaner model could be using the "composite" design pattern with Group and User.
  49.  
  50. -The calendar uses only events, and perhaps the store to
  51. retrieve them (see the section on Experts).
  52. -Events uses its atendees (groups, not users), and maybe the
  53. store to save themselves.
  54. -Groups uses their users, and maybe the store.
  55. -Users use only themselves, and perhaps the store.
  56. -The store is coupled to almost all other entities.
  57. this is necessary, and can be eased by eg. using interfaces or
  58. reflection (entity framwork) for saving entities.
  59.  
  60. Controller
  61. Control is a gaping hole in the current design.
  62. This problem is proabably do to the lack of focus on a user interface,
  63. which would demand focus on controll.
  64. It seems the MVC pattern might be clear-cut for this application, so
  65. perhaps the sollution is to add an entity with the specific purpose of
  66. controlling.
  67.  
  68. High Cohesion
  69. This system is failry small, and its primary job is ordering,
  70. displaying, and saving data. Therefore it seems almost ridiculous to
  71. talk about cohesion.
  72. The most interresting part of the system, cohesion wise, is probably the
  73. Calendar entity. It is an utterly artificial class, but it will probably
  74. be responsible for ordering the events.
  75. Though it could be argued that, as different UIs may have different
  76. goals, ordering events should be job of the UI.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement