$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 javiergs@asu.edu javiergs.engineering.asu.edu | javiergs.com PERALTA 230U Office Hours: By appointment
  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
  3. jgs Previously … GoF Patterns

  4. jgs 564 00010100 GoF Patterns

  5. jgs Assignment 03 + 04 Assignment

  6. jgs 564 00010100 GUI Box

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

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

    (as many as possible) 2. Ask for a name (a String)
  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 { }
  10. jgs 564 00010100 GUI Box Name1 Name2 class Name1 {

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

    } class Name2 { } class Cat { } Cat 3. Did you notice the opportunity for Observer
  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
  13. jgs 564 00010100 GUI Box Name1 Name2 class Name1 {

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

    } class Name2 { method(){ Name1 Cat } } class Cat { } Cat
  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
  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
  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
  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
  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
  20. jgs 564 00010100 GUI § Add a JMenuBar with a

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

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

    Jmenu (Load) to load all coordinates for the cities
  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)
  24. jgs Ideas Drag and Drop

  25. jgs 564 00010100 Demo

  26. jgs 564 00010100 Main.java

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

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

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

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

  31. jgs 564 00010100 Questions

  32. jgs CSE 564 Software Design Javier Gonzalez-Sanchez, Ph.D. javiergs@asu.edu 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.