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

CSE564 Lecture 21

CSE564 Lecture 21

Software Design
Assignment
(202211)

Javier Gonzalez-Sanchez
PRO

September 21, 2020
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs
    CSE 564
    Software Design
    Lecture 21: Assignment
    Dr. Javier Gonzalez-Sanchez
    [email protected]
    javiergs.engineering.asu.edu | javiergs.com
    PERALTA 230U
    Office Hours: By appointment

    View Slide

  2. jgs
    564 00010100
    § Monday 11/14 – We are here
    § Wednesday 11/16
    § Monday 11/21
    § Wednesday 11/23
    § Monday 11/28 – Final Review
    § Wednesday, 11/30 – Final Exam vs. Monday, December 5
    Assignment (04 + 05)
    Quiz 04,
    Quiz 05

    View Slide

  3. jgs
    Previously …
    GoF Patterns

    View Slide

  4. jgs
    564 00010100
    GoF Patterns

    View Slide

  5. jgs
    Assignment 03 + 04
    Assignment

    View Slide

  6. jgs
    564 00010100
    GUI
    Box

    View Slide

  7. jgs
    564 00010100
    GUI
    Box
    1. Click to create
    boxes

    View Slide

  8. jgs
    564 00010100
    GUI
    Box
    1. Click to create
    boxes (as many as
    possible)
    2. Ask for a name
    (a String)

    View Slide

  9. jgs
    564 00010100
    GUI
    Box
    1. Click to create
    boxes (as many as
    possible)
    2. Ask for a name
    (a String)
    Name1
    class Name1 {
    }

    View Slide

  10. jgs
    564 00010100
    GUI
    Box
    Name1
    Name2
    class Name1 {
    }
    class Name2 {
    }

    View Slide

  11. jgs
    564 00010100
    GUI
    Box
    Name1
    Name2
    class Name1 {
    }
    class Name2 {
    }
    class Cat {
    }
    Cat
    3. Did you notice
    the opportunity
    for Observer

    View Slide

  12. jgs
    564 00010100
    GUI
    Box
    Name1
    Name2
    class Name1 {
    }
    class Name2 {
    }
    class Cat {
    }
    Cat
    4. Make
    connections
    between boxes.
    Detect a click on
    a box and a second
    click on another
    box

    View Slide

  13. jgs
    564 00010100
    GUI
    Box
    Name1
    Name2
    class Name1 {
    }
    class Name2 {
    method(){
    Name1
    }
    }
    class Cat {
    }
    Cat
    5. Update text with
    the connection.
    Automatically!

    View Slide

  14. jgs
    564 00010100
    GUI
    Box
    Name1
    Name2
    class Name1 {
    }
    class Name2 {
    method(){
    Name1
    Cat
    }
    }
    class Cat {
    }
    Cat

    View Slide

  15. jgs
    564 00010100
    GUI
    Box
    Name1
    Name2
    class Name1 {
    }
    class Name2 {
    method(){
    Name1
    Cat
    }
    }
    class Cat {
    }
    Cat
    6. Allow the
    selection of 3
    types of
    connections

    View Slide

  16. jgs
    564 00010100
    GUI
    Box
    Name1
    Name2
    class Name1 {
    }
    class Name2 {
    method(){
    Name1
    Cat
    }
    }
    class Cat
    extends Name1 {
    }
    Cat
    6. Allow the
    selection of 3
    types of
    connections

    View Slide

  17. jgs
    564 00010100
    GUI
    Box
    Name1
    Name2
    class Name1 {
    }
    class Name2 {
    method(){
    Name1
    Cat
    }
    }
    class Cat
    extends Name1 {
    Car
    }
    Cat
    6. Allow the
    selection of 3
    types of
    connections
    Car

    View Slide

  18. jgs
    564 00010100
    GUI
    Box
    Name1
    Name2
    class Name1 {
    }
    class Name2 {
    method(){
    Name1
    Cat
    }
    }
    class Cat
    extends Name1 {
    Car
    }
    Cat
    7. Allow
    Drag and Drop
    Car

    View Slide

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

    View Slide

  20. jgs
    564 00010100
    GUI
    § Add a JMenuBar with a Jmenu (New) to delete all

    View Slide

  21. jgs
    564 00010100
    GUI
    § Add a JMenuBar with a Jmenu (Save) to store all coordinates for the cities

    View Slide

  22. jgs
    564 00010100
    GUI
    § Add a JMenuBar with a Jmenu (Load) to load all coordinates for the cities

    View Slide

  23. 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)

    View Slide

  24. jgs
    Ideas
    Drag and Drop

    View Slide

  25. jgs
    564 00010100
    Demo

    View Slide

  26. jgs
    564 00010100
    Main.java

    View Slide

  27. jgs
    564 00010100
    Workspace.java (part 1 / 2)

    View Slide

  28. jgs
    564 00010100
    Workspace.java (part 2 / 2)

    View Slide

  29. jgs
    564 00010100
    City.java (part 1 / 2)

    View Slide

  30. jgs
    564 00010100
    City.java (part 2 /2)

    View Slide

  31. jgs
    564 00010100
    Questions

    View Slide

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

    View Slide