COMPUTER SCIENCE 2P05
Programming Languages Planning, object-orientation... stuff?
Brock University
Brock University (Planning, object-orientation... stuff?)Programming Languages 1 / 26
COMPUTER SCIENCE 2P05 Programming Languages Planning, - - PowerPoint PPT Presentation
COMPUTER SCIENCE 2P05 Programming Languages Planning, object-orientation... stuff? Brock University Brock University (Planning, object-orientation... stuff?)Programming Languages 1 / 26 Object-Oriented(OO) Design We know the basic approach to
Brock University (Planning, object-orientation... stuff?)Programming Languages 1 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 2 / 26
◮ Of course, this relates to the object being the one with the
◮ We can envision many programs as largely being behaviours delegating
Brock University (Planning, object-orientation... stuff?)Programming Languages 3 / 26
◮ Top-level behaviours a user might invoke/select
◮ People or systems external to the project, that participate in use cases Brock University (Planning, object-orientation... stuff?)Programming Languages 4 / 26
◮ Describe the action/goal ◮ Actors? ◮ A brief description ◮ Preconditions (what must be true for the use case to apply) ◮ Postconditions (what’ll be true after it finishes) ◮ Summary of steps ◮ Includes (dependencies on other use cases) ◮ Extensions (variations or alternate versions)
◮ These give a broader view of how a system operates Brock University (Planning, object-orientation... stuff?)Programming Languages 5 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 6 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 7 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 8 / 26
◮ Though we’ll now start making distinctions betwen associations and
Brock University (Planning, object-orientation... stuff?)Programming Languages 9 / 26
◮ When an object is instantiated, with relation to the lifespans of other,
◮ When that object is deallocated
Brock University (Planning, object-orientation... stuff?)Programming Languages 10 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 11 / 26
◮ Start similar to CRCs ◮ May show inheritance with hollow arrows (a realization includes a
◮ Aggregation is shown via hollow diamond; composition via filled
◮ An association may be shown via an arrow (or just a line); a
◮ Honestly, the diagrams here and here are pretty good
Brock University (Planning, object-orientation... stuff?)Programming Languages 12 / 26
◮ Association is a uses relationship ◮ Aggregation is a has a relationship ◮ Inheritance is an is a relationship
◮ If a member component could reasonably exist without the enclosing
◮ Otherwise, it’s composition ◮ e.g. a course may contain any number of students, who are free to
⋆ A department is a composition of several courses, that wouldn’t really
Brock University (Planning, object-orientation... stuff?)Programming Languages 13 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 14 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 15 / 26
◮ The collection creates the iterator ◮ The iterator has a dependent association with the collection
Brock University (Planning, object-orientation... stuff?)Programming Languages 16 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 17 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 18 / 26
◮ It might filter data, render, etc.
Brock University (Planning, object-orientation... stuff?)Programming Languages 19 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 20 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 21 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 22 / 26
◮ There’s a file object, a buffered reader, a tokenizer, a parser...
Brock University (Planning, object-orientation... stuff?)Programming Languages 23 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 24 / 26
◮ A Stack Is-A Deque ◮ We simply add extra behaviours for what we want ◮ (Depending on the language, we may be stuck with Deque’s as well)
◮ A Stack Has-A Deque ◮ We only add those behaviours we actually want
Brock University (Planning, object-orientation... stuff?)Programming Languages 25 / 26
Brock University (Planning, object-orientation... stuff?)Programming Languages 26 / 26