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.9k
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
CSC364 Lecture 10
javiergs
PRO
0
82
CSC364 Lecture 09
javiergs
PRO
0
100
CSC307 Lecture 09
javiergs
PRO
1
840
CSC307 Lecture 08
javiergs
PRO
0
670
CSC364 Lecture 08
javiergs
PRO
0
33
CSC307 Lecture 07
javiergs
PRO
0
550
CSC364 Lecture 07
javiergs
PRO
0
93
CSC307 Lecture 06
javiergs
PRO
0
690
CSC364 Lecture 06
javiergs
PRO
0
83
Other Decks in Programming
See All in Programming
izumin5210のプロポーザルのネタ探し #tskaigi_msup
izumin5210
1
130
Automatic Grammar Agreementと Markdown Extended Attributes について
kishikawakatsumi
0
200
AWS re:Invent 2025参加 直前 Seattle-Tacoma Airport(SEA)におけるハードウェア紛失インシデントLT
tetutetu214
2
110
生成AIを使ったコードレビューで定性的に品質カバー
chiilog
1
270
Oxlintはいいぞ
yug1224
5
1.3k
dchart: charts from deck markup
ajstarks
3
990
ぼくの開発環境2026
yuzneri
0
230
OSSとなったswift-buildで Xcodeのビルドを差し替えられるため 自分でXcodeを直せる時代になっている ダイアモンド問題編
yimajo
3
620
責任感のあるCloudWatchアラームを設計しよう
akihisaikeda
3
180
なるべく楽してバックエンドに型をつけたい!(楽とは言ってない)
hibiki_cube
0
140
Amazon Bedrockを活用したRAGの品質管理パイプライン構築
tosuri13
5
730
AIエージェントのキホンから学ぶ「エージェンティックコーディング」実践入門
masahiro_nishimi
5
470
Featured
See All Featured
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
55
3.2k
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
67
VelocityConf: Rendering Performance Case Studies
addyosmani
333
24k
Exploring anti-patterns in Rails
aemeredith
2
250
How to build a perfect <img>
jonoalderson
1
4.9k
Building Applications with DynamoDB
mza
96
6.9k
So, you think you're a good person
axbom
PRO
2
1.9k
Agile that works and the tools we love
rasmusluckow
331
21k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
22k
Unlocking the hidden potential of vector embeddings in international SEO
frankvandijk
0
170
Unsuck your backbone
ammeep
671
58k
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.