Download presentation
Presentation is loading. Please wait.
Published bySybil Gilbert Modified over 9 years ago
1
Edsger W. Dijkstra Simplicity is prerequisite for reliability
2
CSC 213 – Large Scale Programming
3
Today’s Lecture
4
Our Goal
5
Our Nemesis
6
Other Nemesis
8
Electric Boogaloo Developing automated DJ for clubs Plays music at raves Chooses songs using party-goers requests Removes people who do not belong Colleague already wrote user stories Then went on vacation for next few months
9
Electric Boogaloo Developing automated DJ for clubs Plays music at raves Chooses songs using party-goers requests Removes people who do not belong Colleague already wrote user stories Then went on vacation for next few months you are the sucker For this project, you are the sucker
10
Electric Boogaloo User Stories User wants hip-hop Partier realizes there is a real lack of hip-hop. They request a hip-hop song be played. The system randomly selects a song from its list of hip-hop songs and adds it to the song queue. When removed from the queue, the system plays the song and displays its name and artist. (Similar stories exist for electronica & Stevie Wonder)
11
Oops… Forgot Something User wants Jonas Brothers A user requests a Jonas Brothers song be played. The system takes their picture and sends it to the security guards.
12
Oops… Forgot Something User wants Jonas Brothers A user requests a Jonas Brothers song be played. The system takes their picture and sends it to the security guards. The guards taze the undeserving guest and physically throw them out of the party.
13
What’s Next?
14
Find the Classes Designing classes next step in process Could help find & fix inconsistent requirements Unclear requirements clarified and made easy Outlining classes makes coding easy Already know methods to call from other classes Will provide chance to do some easy debugging Pretty pictures drawable from your design This is an IMPORTANT consideration
15
Find the Classes Designing classes next step in process Could help find & fix inconsistent requirements Unclear requirements clarified and made easy Outlining classes makes coding easy Already know methods to call from other classes Will provide chance to do some easy debugging Pretty pictures drawable from your design This is an IMPORTANT consideration
16
Pictures Worth 1,000 Words
21
Why Draw Classes? Pictures used to share ideas easily Gets everyone up & coding at once Group spends lab watching you code… …or get suckers to do work while you relax Now want team of suckers to work in parallel
22
Why Draw Classes? Pictures used to share ideas easily Gets everyone up & coding at once Group spends lab watching you code… …or get suckers to do work while you relax Now want team of suckers to work in parallel
23
Why Draw Classes? Pictures used to share ideas easily Gets everyone up & coding at once Group spends lab watching you code… …or get suckers to do work while you relax Now want team of suckers to work in parallel Methods & their signatures included in diagrams Can write code using all classes, even unwritten ones
24
From User Stories to Classes Classes represent things Look for nouns This process is much more art than science Actors are nouns, but often external to system Actions may need classes to transmit data Develop rules of thumb as you go along
25
From User Stories to Classes Classes represent things Look for nouns This process is much more art than science Actors are nouns, but often external to system Actions may need classes to transmit data Develop rules of thumb as you go along Good judgment comes from experience, and experience comes from bad judgment. – Fred Brooks
26
Start Your (mp3) Engines Classes neededUser wants hip-hop Partier requests a hip- hop song be played. Randomly select a song from the list of hip-hop songs & add it to the song queue. When removed from the queue, play the song & displays its name and artist.
27
Start Your (mp3) Engines Classes neededUser wants Jonas Bros. A user requests a Jonas Brothers song be played. The system takes their picture and sends it to the security guards. The guards taze the undeserving guest and haul them out of the party.
28
UML Class Diagrams Classes drawn in 3-part box Top portion shows class name Middle portion has field names & types In bottom, methods with params & return types Language-independent diagrams used in this Work with & used by many languages All variables written using following format : name : type
29
Class Relations Generalization for extends & implements Use open triangle ( ) from subclass to superclass Declaring class lists methods & field only Solid line for extends ; dashed for implements Important fields drawn as associations Use open arrow ( ) to fields class Label with multiplicity & field name Do not list field in middle section of class
30
More Relationships Aggregation if source has target in a collection Collection is field in source class & holds targeted items Drawn using open diamond ( ) toward the source Composition when target depends on source Target object used only by source Cannot have getter & cannot return reference to target Collection often used to hold target (but not always) Drawn using closed diamond ( ) toward the source
31
Drawing Relationships Nearly all relationships must be labeled
32
Drawing Relationships Nearly all relationships must be labeled Boyfriend-Girlfriend Just Friends Friends “with benefits” Sweeties Married Best Friends
33
Drawing Relationships Nearly all relationships must be labeled Except generalizations; means different thing Near midpoint of arrow, specify name of field Also specify numbers involved on each side Number written down on each end of the link Can be specific number of objects included Could be some range of numbers like ‘2..5’ + means 1 of more objects required to be used Use Kleene’s star ‘*’ for 0 or more objects
34
From User Stories to Classes public Uses should become public methods Start assuming this until proven otherwise User stories verbs become methods in the classes Pre- & post-conditions should be also be added Think and then add to javadoc comments Private methods may add to the preconditions Always specify assumptions explicitly Will save TONS of debugging time
35
Draw the Classes Used User wants Stevie Wonder Partier needs more funk & requests Stevie Wonder. The system randomly selects a Stevie Wonder song & adds it to the queue. When its turn arrives, the system will play the song and display its name and artist.
36
For Next Lecture Week #2 homework available on web/Angel Due by 5:00PM Tuesday Submit assignment via e-mail Link to article for lab found on lecture page Reading for Friday available on web/Angel What else can we do before coding? Is there something more that enables our laziness? How to trick smarter suckers into doing our work?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.