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

CSE564 Lecture 15

CSE564 Lecture 15

Software Design
Midterm Review
(202010)

B546a9b97d993392e4b22b74b99b91fe?s=128

Javier Gonzalez

September 15, 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. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 2 jgs

    Announcements § Assignment 03 is due today (October 15) § Midterm Exam is Tuesday (October 20). During the lecture time. No exceptions. Final Exam will be Tuesday December 1st
  3. jgs Proctoring Respondus LockDown Browser

  4. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 4 jgs

    Proctoring
  5. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 5 jgs

    Proctoring You need A camera
  6. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 6 jgs

    Proctoring
  7. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 7 jgs

    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 October 20 only during lecture time from 6:00 pm to 7:15 pm. § 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 14)
  10. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 10 jgs

    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 6. An Introduction to Software Architecture. D. Garlan et al. 1994 7. Components, Frameworks, Patterns. R. Johnson. 1997
  11. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 11 jgs

    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. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 12 jgs

    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. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 13 jgs

    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. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 14 jgs

    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. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 15 jgs

    4. Teaching Object-Oriented Thinking Association Directed Association Reflexive Association Multiplicity Aggregation Composition Generalization Realization
  16. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 16 jgs

    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. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 17 jgs

    5. Design Patterns
  18. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 18 jgs

    6. Software Architecture § Architecture vs Design § Component: a software package, a web service, a web resource, or a module that encapsulates a set of related functions (or data) § Interface § Instruction, Statement, Function, Method, Structure, Class, Module, Packages, § Architectural Patterns
  19. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 19 jgs

    6. Software Architecture § Model-view-controller pattern § Layered pattern § Client-server pattern § Master-slave pattern § Pipe-filter pattern § Broker pattern § Peer-to-peer pattern § Event-bus pattern § Blackboard pattern
  20. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 20 jgs

    7. Frameworks § What is a Framework? § Library vs Framework § Components + Design + Domain Specific Solution § Inversion of Control: the framework determines the flow of control § Examples (source code)
  21. Javier Gonzalez-Sanchez | CSE564 | Fall 2020 | 21 jgs

    From the Assignments § Programming with Java § Clean Code (basics) § GUI in Java (Swing / AWT) § Patterns in Java Libraries / Frameworks
  22. 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.