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
CSC305 Lecture 06
javiergs
PRO
0
17
CSC305 Lecture 05
javiergs
PRO
0
20
CSC509 Lecture 03
javiergs
PRO
0
130
CSC305 Lecture 04
javiergs
PRO
0
77
CSC509 Lecture 02
javiergs
PRO
0
160
CSC305 Lecture 03
javiergs
PRO
0
83
CSC305 Lecture 02
javiergs
PRO
1
96
CSC509 Lecture 01
javiergs
PRO
1
200
CSC305 Lecture 01
javiergs
PRO
1
140
Other Decks in Programming
See All in Programming
WEBアプリケーションにおけるAWS Lambdaを用いた大規模な非同期処理の実践
delhi09
PRO
7
3.7k
ROS 2のZenoh対応とZenohのROS 2対応
takasehideki
2
250
実践Dash - 手を抜きながら本気で作るデータApplicationの基本と応用 / Dash for Python and Baseball
shinyorke
2
220
Removing Corepack
yosuke_furukawa
PRO
9
1.1k
Unlocking Python's Core Magic
leew
0
110
色んなオートローダーを覗き見る #phpcon_okinawa
o0h
PRO
5
360
いまあるチームにフィットさせる Serverless そして Platform Engineeringへの挑戦 / Serverless Fits the Team You Have and Platform Engineering
seike460
PRO
2
1.2k
M5Stack に色々な M5ユニットをつないで扱う為の新たなアプローチ
gob
0
200
全方位強化 Python 服務可觀測性:以 FastAPI 和 Grafana Stack 為例
blueswen
1
360
pytest プラグインを開発して DRY に自動テストを書こう
inuatsu
2
240
M5Stackボードの選び方
tanakamasayuki
0
200
型付きで行うVSCode拡張機能開発 / VSCode Meetup #31
mazrean
0
220
Featured
See All Featured
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
25
640
Building Flexible Design Systems
yeseniaperezcruz
327
38k
The World Runs on Bad Software
bkeepers
PRO
65
11k
The Cost Of JavaScript in 2023
addyosmani
43
5.8k
Scaling GitHub
holman
458
140k
Teambox: Starting and Learning
jrom
131
8.7k
For a Future-Friendly Web
brad_frost
174
9.3k
Practical Orchestrator
shlominoach
185
10k
GitHub's CSS Performance
jonrohan
1030
450k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
158
15k
Ruby is Unlike a Banana
tanoku
96
11k
Testing 201, or: Great Expectations
jmmastey
38
7k
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.