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
CSC509 Lecture 05
Search
Javier Gonzalez-Sanchez
PRO
October 03, 2025
Programming
0
310
CSC509 Lecture 05
Software Design
Software Architecture II
(202410)
Javier Gonzalez-Sanchez
PRO
October 03, 2025
Tweet
Share
More Decks by Javier Gonzalez-Sanchez
See All by Javier Gonzalez-Sanchez
CSC509 Lecture 11
javiergs
PRO
0
290
CSC509 Lecture 10
javiergs
PRO
0
170
CSC509 Lecture 09
javiergs
PRO
0
290
CSC509 Lecture 08
javiergs
PRO
0
280
CSC305 Lecture 14
javiergs
PRO
0
230
CSC305 Lecture 13
javiergs
PRO
0
370
CSC509 Lecture 07
javiergs
PRO
0
260
CSC305 Lecture 12
javiergs
PRO
0
250
CSC305 Lecture 11
javiergs
PRO
0
320
Other Decks in Programming
See All in Programming
Kotlin 2.2が切り拓く: コンテキストパラメータで書く関数型DSLと新しい依存管理のかたち
knih
0
340
フロントエンド開発のためのブラウザ組み込みAI入門
masashi
7
3.7k
contribution to astral-sh/uv
shunsock
0
580
Blazing Fast UI Development with Compose Hot Reload (Bangladesh KUG, October 2025)
zsmb
2
480
三者三様 宣言的UI
kkagurazaka
0
360
What’s Fair is FAIR: A Decentralised Future for WordPress Distribution
rmccue
0
120
業務でAIを使いたい話
hnw
0
240
AIのバカさ加減に怒る前にやっておくこと
blueeventhorizon
0
160
Verilator + Rust + gRPC と Efinix の RISC-V でAIアクセラレータをAIで作ってる話 RTLを語る会(18) 2025/11/08
ryuz88
0
310
Kotlin + Power-Assert 言語組み込みならではのAssertion Library採用と運用ベストプラクティス by Kazuki Matsuda/Gen-AX
kazukima
0
100
Module Proxyのマニアックな話 / Niche Topics in Module Proxy
kuro_kurorrr
0
2.5k
퇴근 후 1억이 거래되는 서비스 만들기 | 내가 AI를 사용하는 방법
maryang
2
490
Featured
See All Featured
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
34
2.3k
jQuery: Nuts, Bolts and Bling
dougneiner
65
8k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
What’s in a name? Adding method to the madness
productmarketing
PRO
24
3.7k
Speed Design
sergeychernyshev
32
1.2k
Side Projects
sachag
455
43k
Visualization
eitanlees
150
16k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
10
920
Fantastic passwords and where to find them - at NoRuKo
philnash
52
3.5k
Bootstrapping a Software Product
garrettdimon
PRO
307
110k
Six Lessons from altMBA
skipperchong
29
4.1k
[RailsConf 2023] Rails as a piece of cake
palkan
57
6k
Transcript
Dr. Javier Gonzalez-Sanchez
[email protected]
www.javiergs.info o ffi ce: 14 -227
CSC 508/9 Software Engineering (Design & Deployment) Lecture 05. Software Architecture II
Environment 2
Blueprint 3 Architecture Design Code
Model-View-Controller
Model-View-Controller 5
None
None
None
None
Appendix Observer Pattern
Observer 11
Classroom | Initial Version 12 https://github.com/CSC3100/Patterns
Student | Initial Version class Student { public String answerQuestion
(String question) { String answer; // solve the question return answer; } } 13 https://github.com/CSC3100/Patterns
Teacher | Initial Version 14 https://github.com/CSC3100/Patterns
Observer 15
https://github.com/CSC3100/Patterns
https://github.com/CSC3100/Patterns
https://github.com/CSC3100/Patterns
https://github.com/CSC3100/Patterns
https://github.com/CSC3100/Patterns
Important 21 Do not reinvent the wheel! (Do not make
another implementation for classes Observer or Observable -they already exist in libraries!)
Important 22 Depreciated java.util.Observer java.util.Observable The implementation of these packages
That is NOT about the Observer pattern being depreciated.
Important 23 Use java.beans.PropertyChangeListener java.beans.PropertyChangeSupport
https://github.com/CSC3100/Patterns
https://github.com/CSC3100/Patterns
https://github.com/CSC3100/Patterns
Thoughts? 27
Questions 28
CSC 509 Software Engineering Javier Gonzalez-Sanchez, Ph.D.
[email protected]
Fall 2025
Copyright. These slides can only be used as study material for the class CSC509 at Cal Poly. They cannot be distributed or used for another purpose.