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

CSE564 Lecture 21

CSE564 Lecture 21

Software Design
Software Architecture
(202103)

B546a9b97d993392e4b22b74b99b91fe?s=128

Javier Gonzalez
PRO

September 21, 2020
Tweet

Transcript

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

    Javier Gonzalez-Sanchez javiergs@asu.edu javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  2. jgs 564 00010100 Announcement Assignment 04 is due March 31

    § Source Code in Java – it should compile and run. Carefully review what you are submitting. § Class diagram – it should match 100% the source code submitted § A document describing your decision-making criteria: patterns, relationships, modularization, stepwise refinements, etc.
  3. jgs 564 00010100 Announcement Reading: § Components Frameworks and Patterns

    by Ralph Johnson (1997) § Patterns Frameworks and Middleware by Schmidt and Buschmann (2003)
  4. jgs Previously …

  5. jgs 564 00010100 Patterns

  6. jgs Next Step Software Architecture

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

    Gamma et al. GoF Patterns 1994 Garlan 1997 Johnson et al. Components Frameworks And Patterns
  8. jgs 564 00010100 David Garlan and Mary Shaw (1994) §

    As the size of software systems increases, the algorithms and data structures of the computation no longer constitute the major design problems § Architectural representations can improve our understanding of complex software systems § Just as good programmers recognized useful data structures in the late 1960s, good software system designers now recognize useful system organizations (1994).
  9. jgs 564 00010100 Goal § A system with subsystems §

    Software Reuse Hardware OS Java VM Apache Log4J SLF4J Hadoop Spark nd4j deeplearning4J
  10. jgs 564 00010100 Component § Instruction, Statement, § Function, Method

    § Structure, Class, Module § Packages § Components: a software package, a web service, a web resource, or a module that encapsulates a set of related functions (or data)
  11. jgs 564 00010100 Relationships § Sequence § Calls and Parameters

    § Association, Aggregation, Composition, Inheritance et al. § Interfaces
  12. jgs 564 00010100 Interfaces § protocols for communication, § synchronization,

    and data access; § functionality to design elements; § physical distribution; § composition of design elements; § scaling and performance; and § selection among design alternatives.
  13. jgs 564 00010100 Architectural Patterns § 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
  14. jgs Architecture Patterns Model-View-Controller

  15. jgs 564 00010100 Model-View-Controller

  16. jgs 564 00010100 Model-View-Controller

  17. jgs 564 00010100 Implementation :: View

  18. jgs 564 00010100 Implementation :: Controller

  19. 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.