$30 off During Our Annual Pro Sale. View Details »

CSE564 Lecture 22

CSE564 Lecture 22

Software Design
Software Architecture
(202211)

Javier Gonzalez-Sanchez
PRO

September 22, 2020
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs CSE 564 Software Design Lecture 22: Software Architecture Dr.

    Javier Gonzalez-Sanchez javiergs@asu.edu javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  2. jgs Previously … GoF Patterns

  3. jgs 564 00010100 GUI Box Name1 Name2 class Name1 {

    } class Name2 { method(){ Name1 Cat } } class Cat extends Name1 { Car } class Car { } Cat 7. Allow Drag and Drop Car
  4. jgs 564 00010100 § UML Class Diagram § Model-View-Controller §

    Observer § Singleton (Blackboard) § Decorator § Other: chain of responsibilities, strategy, bridge, § Source Code § JavaDoc (Classes and Methods)
  5. jgs 564 00010100 Questions

  6. jgs 564 00010100 It is This Time of the Semester

    When …
  7. jgs 564 00010100 It is This Time of the Semester

    When … § Do NOT be a Grade Grubber § Grading is done by applying the same policies to all students as it is described in the syllabus. § It is unethical to bring to your instructor's attention the possible impact of your course grade on your plans, including graduation, scholarships, jobs, etc. Do not send requests to your instructor asking for a grade you did not earn with your work.
  8. jgs Next Step Software Architecture

  9. jgs 564 00010100 Timeline 1989 Beck OO Thinking Architecture 1993

    Gamma et al. GoF Patterns 1994 Garlan
  10. jgs 564 00010100 Definition § Software design It is responsible

    for the code level design: what each class is doing, its relationships, and scope. § Software architecture It is responsible for the skeleton and the high-level organization of a software. It identifies the main structural modules (or components) in a system and the relationships between them.
  11. jgs 564 00010100 Architecture Goals § Define separate branches for

    each major function § Coordinate communication between modules § Limit propagation of side effects § Facilitate extensibility, modifiability and reuse
  12. jgs 564 00010100 Architectural Patterns 1. Model-View-Controller (MVC) 2. Layered

    Architecture 3. Repository Architecture (Blackboard) 4. Client-Server architecture
  13. jgs Architecture Patterns Model-View-Controller

  14. jgs 564 00010100 Model-View-Controller

  15. jgs 564 00010100 Implementation :: View

  16. jgs 564 00010100 Implementation :: Controller

  17. jgs Architecture Patterns Blackboard

  18. jgs 564 00010100 Blackboard

  19. jgs 564 00010100 Drafting an Implementation

  20. jgs 564 00010100 What about Blackboard § Singleton (yes or

    not)? § Create Blackboard in main method (yes or not)? § Connection between Blackboard and Professor (association, aggregation, composition, realization, generalization) ? § Connection between Blackboard and Student (association, aggregation, composition, realization, generalization) ? § Connection between Blackboard and Classroom (association, aggregation, composition, realization, generalization) ?
  21. jgs 564 00010100 Implementation :: Classroom

  22. jgs 564 00010100 Implementation :: Professor

  23. jgs 564 00010100 Implementation :: Student

  24. jgs 564 00010100 Implementation :: Blackboard

  25. jgs 564 00010100 Drafting an Implementation

  26. jgs 564 00010100 Let’s Work

  27. jgs To be continued …

  28. jgs CSE 564 Software Design Javier Gonzalez-Sanchez, Ph.D. javiergs@asu.edu Fall

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