Upgrade to Pro — share decks privately, control downloads, hide ads and more …

CSE564 Lecture 16

CSE564 Lecture 16

Software Design
Midterm Review
(202103)

B546a9b97d993392e4b22b74b99b91fe?s=128

Javier Gonzalez
PRO

September 16, 2020
Tweet

Transcript

  1. jgs CSE 564 Software Design Lecture 15: Midterm Review Dr.

    Javier Gonzalez-Sanchez javiergs@asu.edu javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  2. jgs 564 00010000 Announcements § Assignment 03 is due Wednesday

    (March 10) : Observer + Decorator § Midterm Exam is Wednesday (March 10). During the lecture time. No exceptions. Final Exam will be Wednesday April 21
  3. jgs Proctoring Respondus LockDown Browser

  4. jgs 564 00010000 Proctoring

  5. jgs 564 00010000 Proctoring You need A camera

  6. jgs 564 00010000 Proctoring

  7. jgs 564 00010000 Agenda § Sample Exam is available. Test

    your system ASAP § Read the Online Proctored Exam Guidelines to know what to do in case of a problem during the exam § Midterm Exam available only during lecture time § No lecture that day. Go directly to your exam § It is a CLOSED BOOK exam. Do not use any material § Scratch paper is allowed. Empty White Paper. Show it on camera when you show your environment!
  8. jgs Topics

  9. jgs The following slides shows some examples related to some

    topics This is NOT a comprehensive list of topics Topics in the exam can be found Weeks 1 to 9 (Lectures 1 to 16)
  10. jgs 564 00010000 Topics 1. Program Development by Stepwise Refinement,

    N. Wirth. 1971 2. On the Criteria To Be Used in Decomposing Systems into Modules, D.L. Parnas. 1972 3. A Laboratory For Teaching Object-Oriented Thinking, K. Beck. 1989 4. Programming in the Large vs Programming in the Small, F. DeRemer et al. 1975 5. Design Patterns: Abstraction and Reuse of Object-Oriented Design, E. Gamma et al. 1993
  11. jgs 564 00010000 1. Stepwise Refinement • Niklaus Wirth. §

    Modularity § Function § Function-driven development § Decomposition § What criteria to use in dividing the system into modules? § Task § Steps § Quality attributes § Software Design is …
  12. jgs 564 00010000 2. Decomposing Systems into Modules § Module

    § What criteria to use in dividing the system into modules? § Information Hiding § Data Structure § What is the difference of Function vs Module? § What is the difference of Task vs Responsibility? § Software Design is …
  13. jgs 564 00010000 3. Programming in the large § High-cohesion

    and loose-coupling § Software Design is … § Programming versus Structuring § Development: Many small programs(modules) written by different people. § Architecture: Structuring a large collection of modules to form a "system" § Composition § Decomposition § Accessibility (public, private) § Hierarchy
  14. jgs 564 00010000 4. Teaching Object-Oriented Thinking § Designs as

    an abstract level as having processes, data flows, and data stores, regardless of implementation language or operating environment. § Procedure, Function Method, Module, Unit, System § Class, Object § Task, Responsibility, Collaborator § Encapsulation / Accessibility § Hierarchical Relationships § Composition / Decomposition § Levels § Linking
  15. jgs 564 00010000 4. Teaching Object-Oriented Thinking Association Directed Association

    Reflexive Association Multiplicity Aggregation Composition Generalization Realization
  16. jgs 564 00010000 5. Design Patterns § Solutions to software

    design problems you find again and again in real-world application development. § Reusable designs and interactions between objects. § Behavior, Creation, Structure
  17. jgs 564 00010000 5. Design Patterns

  18. jgs 564 00010000 From the Assignments § Programming with Java

    § Clean Code (basics) § GUI in Java (Swing / AWT) § Patterns in Java Libraries / Frameworks
  19. jgs 564 00010000 Assignment 03 | Solution Main JFrame *Listener

    PlotPanel JButton Observable Source Observer Drawable SimplePlot DecoratedPlot MarkedPlot BarPlot
  20. jgs 564 00010000 Assignment 03 | Question PlotPanel Run <<

    Singleton >> Evaluator
  21. jgs CSE 564 Computer Systems Fundamentals Javier Gonzalez-Sanchez javiergs@asu.edu Fall

    2020 Disclaimer. These slides can only be used as study material for the class CSE564 at ASU. They cannot be distributed or used for another purpose.