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

CSE564 Lecture 22

CSE564 Lecture 22

Software Design
Software Architecture

Javier Gonzalez-Sanchez

September 22, 2020

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming


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

    Javier Gonzalez-Sanchez [email protected] javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  2. 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
  3. 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)
  4. 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.
  5. 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.
  6. 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
  7. jgs 564 00010100 Architectural Patterns 1. Model-View-Controller (MVC) 2. Layered

    Architecture 3. Repository Architecture (Blackboard) 4. Client-Server architecture
  8. 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) ?
  9. jgs CSE 564 Software Design Javier Gonzalez-Sanchez, Ph.D. [email protected] 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.