210 likes | 693 Views
Inception/Elaboration. Lecture OO08 Gymnastics System Example. References. The Booch Method Guide, for Rose 2.0. Teaching Points. Developing a Use Case Diagram Applying the Micro Process Developing a Class Diagram. Review. What is the Macro Process? What is the Micro Process?
E N D
Inception/Elaboration Lecture OO08 Gymnastics System Example
References • The Booch Method Guide, for Rose 2.0
Teaching Points • Developing a Use Case Diagram • Applying the Micro Process • Developing a Class Diagram
Review • What is the Macro Process? • What is the Micro Process? • How do we build a Use Case Diagram?
The Gymnastics System We are about to model a gymnastics scoring system. Our mission is to automate the definition, registration, scoring, and record keeping of a gymnastic season. Here is a quick description of a gymnastics league and one of their contests: A league is a group of teams that compete against each other. Each of these clubs recruits members to participate in the contests. A typical meet consists of several contests held in the course of one day. For example, there may be a women's all-around, a women's individual, a men's all-around, and so on. There may also be junior and senior competitions. When a team enters a meet, it enters all the competitions. For each contest, each team enters the same number of members, who must compete in all parts of the competition. Each competition is a series of events run on different equipment. For example, the women's competitions involve balance beam, vault, high bar, and floor exercise. All pieces of equipment are in operation at the same time; each team's competing gymnasts perform on one piece of equipment and then rotate to the next.
The Gymnastics System Each event has a judging panel assigned to it. These people are qualified scorers for this event. Each judge rates each gymnast on the event and reports the score to a scorekeeper. The scorekeeper throws out the high and low scores and averages the rest. This is the gymnast's score for the event. The team score is the sum of all gymnasts' scores. Competition scores are the sum of the scores for each of the events. Meet scores are the sum of the competition scores, and so on. In addition to running the individual meets, the league prepares the schedule of meets for the season, ensures that qualified judges are assigned, registers teams and gymnasts, and publishes seasonal standings.
Meet: Town InvitationalCompetition: Women’s Senior TeamDate: 12/3/92
The Gymnastics System • Work through developing Use Case Diagram in class
The Gymnastics System • Work through micro process to develop first iteration of domain analysis
Micro Process • Identify the classes and objects at a given level of abstraction • Identify the semantics of these classes and objects • Identify the relationships among these classes and objects • Specify the interface and then the implementation of these classes and objects
Naming Relationships • Name relationships and roles • Use meaningful concise names • A good name is simple and provides significant semantic information
Identifying New Classes • Apply the micro process again • Lets explore a use case in more detail
Discovering Operations It is useful to work with object interaction diagrams when discovering operations Some operations identified in the conceptual perspective; more are identified in the specification perspective
Discovering Attributes Attributes can be shown on class diagrams It is not necessary to show all attributes, just those that represent key properties Similar to associations Semantics depend on the perspective being used
Attributes vs. Associations Conceptual no difference, attributes are a different notation attributes are usually single valued Specification an attribute indicates that an object can provide some information as part of its interface implies navigability from type to attribute only Implementation attribute is a field of the class (i.e. by value - not by reference)
Gymnast Attributes • Now consider club membership? • Dates of membership?
Discovering Inheritance Look for opportunities for commonality and reuse Especially look for common interfaces!! Groups of objects treated in the same way
Teaching Points • Developing a Use Case Diagram • Applying the Micro Process • Developing a Class Diagram