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

CSC509 Lecture 10

CSC509 Lecture 10

Software Design
Library, Framework, and Platform
(202311)

Javier Gonzalez-Sanchez

November 13, 2023
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs CSC 509 Software Engineering II: Modeling and Design Lecture

    10: Library vs. Framework vs. Platform Dr. Javier Gonzalez-Sanchez [email protected] www.javiergs.com Building 14 -227 Office Hours: By appointment
  2. jgs Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 |

    3 Timeline 1989 Beck OO Thinking Architecture 1993 Gamma et al. GoF Patterns 1994 Garlan 1997 Johnson et al. Components Frameworks And Patterns
  3. jgs Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 |

    6 Design § Sequence § Calls and Parameters § Association, Aggregation, Composition, Inheritance et al. § Interfaces
  4. jgs Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 |

    7 David Garlan and Mary Shaw § 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).
  5. jgs Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 |

    8 Architecture § 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.
  6. jgs Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 |

    9 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
  7. jgs Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 |

    10 Goal § A system with subsystems § Software Reuse Hardware OS Java VM Apache Log4J SLF4J Hadoop Spark nd4j deeplearning4J
  8. jgs Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 |

    11 Johnson et al. § Component represent code reuse A framework is a reusable design represented by a set of components and the way they interact. A framework implement an architecture § Framework = Components + Design + Domain Specific Solution
  9. jgs Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 |

    12 Framework vs Library § Inversion of Control: the framework determines the flow of control i.e., reuse of main § Model-View-Controller - a framework or an architectural pattern?
  10. jgs Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 |

    13 § Library § Framework § Platform § API Explain
  11. jgs CSC 509 Software Design Javier Gonzalez-Sanchez, Ph.D. [email protected] Fall

    2023 Copyright. These slides can only be used as study material for the class CSC509 at Cal Poly. They cannot be distributed or used for another purpose.