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

CSC509 Lecture 05

CSC509 Lecture 05

Software Design
Patterns
(202310)

Javier Gonzalez-Sanchez

October 22, 2023
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSC 509
    Software Engineering II:
    Modeling and Design
    Lecture 05:
    Patterns
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    www.javiergs.com
    Building 14 -227
    Office Hours: By appointment

    View full-size slide

  2. jgs
    Previously…

    View full-size slide

  3. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 3
    Reference
    Read:
    Wettel, R. & Lanza, M. (2007). Visualizing Software Systems as Cities. 2007
    4th IEEE International Workshop on Visualizing Software for Understanding
    and Analysis, 92–99. https://doi.org/10.1109/vissof.2007.4290706

    View full-size slide

  4. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 4
    Project

    View full-size slide

  5. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 5
    § A Tree is an Interface.
    § A rock is an Abstract Class.
    § A house is a Class.
    The size of the house represents the size (number of
    methods and attributes) of a Class.
    Project

    View full-size slide

  6. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 6
    SE 101 (Undergraduate Course)

    View full-size slide

  7. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 7
    Engineering vs Coding

    View full-size slide

  8. jgs
    Review Time

    View full-size slide

  9. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 9
    Solution (from 12 Junior Software Engineers)

    View full-size slide

  10. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 10
    Design (Part 1)
    A
    B
    !

    View full-size slide

  11. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 11
    Design (Part 2)
    A B
    C
    "
    #
    $
    $
    $
    $
    $ $
    $
    D

    View full-size slide

  12. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 12
    Design (Part 3)
    C
    D
    #
    #
    #
    #
    $
    " "
    "
    "
    #

    View full-size slide

  13. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 13
    Communication
    Date: Wednesday, October 11, 2023 at 5:11 PM
    Professor,
    Will we be working on this project beyond the first 2D version?
    Should we plan to create a fully-fledge 3D project as defined
    in the research paper or just the version we discussed in
    class?
    Date: Wednesday, October 11, 2023 at 8:28 PM
    It will stay 2D (the visualization), but the project will be
    extended and modified in other parts.

    View full-size slide

  14. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 14
    Engineering Requirements

    View full-size slide

  15. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 15
    § A Tree is an Interface.
    § A rock is an Abstract Class.
    § A house is a Class.
    The size of the house represents the size (number of
    methods and attributes) of a Class.

    View full-size slide

  16. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 16
    Requirements

    View full-size slide

  17. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 17
    Requirements

    View full-size slide

  18. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 18
    Back to School

    View full-size slide

  19. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 19
    PS. Review Your Code

    View full-size slide

  20. jgs
    What Next ?

    View full-size slide

  21. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 21
    § Gamma, E., Helm, R., Johnson, R. E. & Vlissides, J. (1993). Design
    Patterns: Abstraction and Reuse of Object-Oriented Design. Proceedings
    of the European Conference on Object-Oriented Programming, 707, 406–
    431.
    § Garlan, D. & Shaw, M. (1994). An Introduction to Software
    Architecture (CMU Software Engineering Institute). CMU Software
    Engineering Institute.
    Homework :: Read

    View full-size slide

  22. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 22
    GoF Patterns

    View full-size slide

  23. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 24
    Let’s Work

    View full-size slide

  24. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 26
    Not Everything that Can be … Should be …

    View full-size slide

  25. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 27
    Eric Gamma

    View full-size slide

  26. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 28
    Download Eclipse Modeling Tools

    View full-size slide

  27. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 30
    Eclipse
    § Eclipse is a universal platform for integrating development tools
    § Architecture based on plug-ins
    § SWT (Standard Widget Toolkit) is a generic graphics and GUI widget set
    § JFace is a set of UI frameworks for common UI tasks
    § Workbench and Workspace are core – Editors, Views, and Perspectives

    View full-size slide

  28. jgs
    Javier Gonzalez-Sanchez | CSC 509 | Fall 2023 | 32
    Questions

    View full-size slide

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

    View full-size slide