Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
CSE564 Lecture 21
Search
Javier Gonzalez-Sanchez
PRO
September 21, 2020
Programming
0
1.8k
CSE564 Lecture 21
Software Design
Assignment
(202211)
Javier Gonzalez-Sanchez
PRO
September 21, 2020
Tweet
Share
More Decks by Javier Gonzalez-Sanchez
See All by Javier Gonzalez-Sanchez
CSC509 Lecture 13
javiergs
PRO
0
110
CSC305 Lecture 22
javiergs
PRO
0
64
CSC305 Lecture 22
javiergs
PRO
0
25
CSC509 Lecture 12
javiergs
PRO
0
160
CSC305 Lecture 21
javiergs
PRO
0
76
CSC305 Lecture 20
javiergs
PRO
0
59
CSC305 Lecture 19
javiergs
PRO
0
54
CSC509 Lecture 11
javiergs
PRO
0
180
CSC305 Lecture 18
javiergs
PRO
0
75
Other Decks in Programming
See All in Programming
Jakarta EE meets AI
ivargrimstad
0
730
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
見せてあげますよ、「本物のLaravel批判」ってやつを。
77web
7
7.8k
Amazon Bedrock Agentsを用いてアプリ開発してみた!
har1101
0
340
Amazon Qを使ってIaCを触ろう!
maruto
0
420
イベント駆動で成長して委員会
happymana
1
340
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.2k
Tauriでネイティブアプリを作りたい
tsucchinoko
0
370
RubyLSPのマルチバイト文字対応
notfounds
0
120
3rd party scriptでもReactを使いたい! Preact + Reactのハイブリッド開発
righttouch
PRO
1
610
色々なIaCツールを実際に触って比較してみる
iriikeita
0
340
TypeScriptでライブラリとの依存を限定的にする方法
tutinoko
3
710
Featured
See All Featured
Principles of Awesome APIs and How to Build Them.
keavy
126
17k
A Tale of Four Properties
chriscoyier
156
23k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
Designing for Performance
lara
604
68k
How STYLIGHT went responsive
nonsquared
95
5.2k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
506
140k
Practical Orchestrator
shlominoach
186
10k
The Cult of Friendly URLs
andyhume
78
6k
Happy Clients
brianwarren
98
6.7k
YesSQL, Process and Tooling at Scale
rocio
169
14k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Transcript
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
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
jgs Previously … GoF Patterns
jgs 564 00010100 GoF Patterns
jgs Assignment 03 + 04 Assignment
jgs 564 00010100 GUI Box
jgs 564 00010100 GUI Box 1. Click to create boxes
jgs 564 00010100 GUI Box 1. Click to create boxes
(as many as possible) 2. Ask for a name (a String)
jgs 564 00010100 GUI Box 1. Click to create boxes
(as many as possible) 2. Ask for a name (a String) Name1 class Name1 { }
jgs 564 00010100 GUI Box Name1 Name2 class Name1 {
} class Name2 { }
jgs 564 00010100 GUI Box Name1 Name2 class Name1 {
} class Name2 { } class Cat { } Cat 3. Did you notice the opportunity for Observer
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
jgs 564 00010100 GUI Box Name1 Name2 class Name1 {
} class Name2 { method(){ Name1 } } class Cat { } Cat 5. Update text with the connection. Automatically!
jgs 564 00010100 GUI Box Name1 Name2 class Name1 {
} class Name2 { method(){ Name1 Cat } } class Cat { } Cat
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
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
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
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
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
jgs 564 00010100 GUI § Add a JMenuBar with a
Jmenu (New) to delete all
jgs 564 00010100 GUI § Add a JMenuBar with a
Jmenu (Save) to store all coordinates for the cities
jgs 564 00010100 GUI § Add a JMenuBar with a
Jmenu (Load) to load all coordinates for the cities
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)
jgs Ideas Drag and Drop
jgs 564 00010100 Demo
jgs 564 00010100 Main.java
jgs 564 00010100 Workspace.java (part 1 / 2)
jgs 564 00010100 Workspace.java (part 2 / 2)
jgs 564 00010100 City.java (part 1 / 2)
jgs 564 00010100 City.java (part 2 /2)
jgs 564 00010100 Questions
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.