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

CSC308 Lecture 20

CSC308 Lecture 20

Software Engineering I
Final Project
(202211)

Javier Gonzalez-Sanchez
PRO

November 06, 2022
Tweet

More Decks by Javier Gonzalez-Sanchez

Other Decks in Programming

Transcript

  1. jgs CSC 308 Software Engineering I Lecture 20: Final Project

    Dr. Javier Gonzalez-Sanchez j[email protected] users.csc.calpoly.edu/~javiergs | javiergs.com Building 14 -227 Office Hours: By appointment
  2. jgs Final Project Customer Needs

  3. jgs Fall 2022 | 00000010 GUI Box

  4. jgs Fall 2022 | 00000010 GUI Box 1. Click to

    create boxes
  5. jgs Fall 2022 | 00000010 GUI Box 1. Click to

    create boxes (as many as possible) 2. Ask for a name (a String)
  6. jgs Fall 2022 | 00000010 GUI Box 1. Click to

    create boxes (as many as possible) 2. Ask for a name (a String) Name1 class Name1 { }
  7. jgs Fall 2022 | 00000010 GUI Box Name1 Name2 class

    Name1 { } class Name2 { }
  8. jgs Fall 2022 | 00000010 GUI Box Name1 Name2 class

    Name1 { } class Name2 { } class Cat { } Cat 3. Did you notice the opportunity for Observer
  9. jgs Fall 2022 | 00000010 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
  10. jgs Fall 2022 | 00000010 GUI Box Name1 Name2 class

    Name1 { } class Name2 { method(){ Name1 } } class Cat { } Cat 5. Update text with the connection. Automatically!
  11. jgs Fall 2022 | 00000010 GUI Box Name1 Name2 class

    Name1 { } class Name2 { method(){ Name1 Cat } } class Cat { } Cat
  12. jgs Fall 2022 | 00000010 GUI Box Name1 Name2 class

    Name1 { } class Name2 { method(){ Name1 Cat } } class Cat { } Cat 6. Allow the selection of 3 types of connections
  13. jgs Fall 2022 | 00000010 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
  14. jgs Fall 2022 | 00000010 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
  15. jgs Fall 2022 | 00000010 GUI Box Name1 Name2 class

    Name1 { } class Name2 { method(){ Name1 Cat } } class Cat extends Name1 { Car } Cat 7. Allow Drag and Drop Car
  16. jgs Fall 2022 | 00000010 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
  17. jgs Fall 2022 | 00000010 GUI Box Name1 Name2 class

    Name1 { } class Name2 { method(){ Name1 Cat } } class Cat extends Name1 { Car hello(){ } move(){ } } class Car { Cat 8. Reverse Car hello move
  18. jgs Fall 2022 | 00000010 GUI Box Name2 class Name1

    { aaa bbb } class Name2 { method(){ Name1 Cat } } class Cat extends Name1 { Car hello(){ } move(){ } } Cat 8. Reverse. It is a Decorator / Composition Car hello move Name1 aaa bbb
  19. jgs Fall 2022 | 00000010 GUI § Add a JMenuBar

    with a Jmenu (New) to delete all
  20. jgs Fall 2022 | 00000010 GUI § Add a JMenuBar

    with a Jmenu (Save) to store all coordinates for the cities
  21. jgs Fall 2022 | 00000010 GUI § Add a JMenuBar

    with a Jmenu (Load) to load all coordinates for the cities
  22. jgs Fall 2022 | 00000010 § User Stories in Taiga

    § Sprint(s) § Tasks and their responsible § Daily report (Burndown Chart) § UML Class Diagram § Model-View-Controller § Observer § Singleton (Blackboard) § Decorator § Source Code § JavaDoc (Classes and Methods)
  23. jgs Ideas Drag and Drop

  24. jgs Fall 2022 | 00000010 Demo

  25. jgs Fall 2022 | 00000010 Main.java

  26. jgs Fall 2022 | 00000010 Workspace.java (part 1 / 2)

  27. jgs Fall 2022 | 00000010 Workspace.java (part 2 / 2)

  28. jgs Fall 2022 | 00000010 City.java (part 1 / 2)

  29. jgs Fall 2022 | 00000010 City.java (part 2 /2)

  30. jgs Fall 2022 | 00000010 Questions

  31. jgs

  32. jgs CSC 308 Software Engineering I Lab 20: Final Project

    Dr. Javier Gonzalez-Sanchez [email protected] users.csc.calpoly.edu/~javiergs | javiergs.com Building 14 -227 Office Hours: By appointment
  33. jgs Fall 2022 | 00000010 Let’s Work

  34. jgs CSC 308 Software Engineering I Javier Gonzalez-Sanchez, Ph.D. [email protected]

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