Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
CSC509 Lecture 05
Search
Sponsored
·
Ship Features Fearlessly
Turn features on and off without deploys. Used by thousands of Ruby developers.
→
Javier Gonzalez-Sanchez
PRO
October 03, 2025
Programming
360
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
CSC509 Lecture 05
Software Design
Software Architecture II
(202410)
Javier Gonzalez-Sanchez
PRO
October 03, 2025
More Decks by Javier Gonzalez-Sanchez
See All by Javier Gonzalez-Sanchez
CSC510 Lecture 25
javiergs
PRO
0
29
CSC310 Lecture 17
javiergs
PRO
0
28
CSC310 Lecture 16
javiergs
PRO
0
26
CSC510 Lecture 24
javiergs
PRO
0
22
CSC310 Lecture 15
javiergs
PRO
0
30
CSC310 Lecture 14
javiergs
PRO
0
32
CSC510 Lecture 23
javiergs
PRO
0
20
CSC510 Lecture 22
javiergs
PRO
0
40
CSC510 Lecture 21
javiergs
PRO
0
22
Other Decks in Programming
See All in Programming
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
290
PyConTW 2026 - AI Coding 不只是工具升級, 區域醫院醫療資訊系統協作開發與資訊團隊轉型實踐
cclai999
0
230
あなたの await、OS まで届いてる? strace で覗く JavaScript の非同期
hasutosasaki
1
2.2k
社内AIエージェント「Askワンバン」における コストチューニングの取り組み
t0yohei
0
150
FactoryBotをやめればRSpecは速くなるのか?
yuta_onishi_97
0
1.5k
ChromeでローカルLLM
ryu1013
0
200
AI駆動開発4年目の現在地(『あなたはFDEになるべきか?』イベント資料)
kumaiu
0
140
선언형 햅틱 라이브러리 진동을 소개합니다
l2hyunwoo
1
290
小さなアプリを作って公開するまで
onozaty
0
120
Snowflake Openflow Connector利用の勘所 / 20261024developersio2026tokyo-snowflake-openflow
kasacchiful
PRO
0
300
baseline으로 마이그레이션, 리팩토링 안전하게 맡기기
fornewid
1
880
Featured
See All Featured
Site-Speed That Sticks
csswizardry
13
1.6k
The Cult of Friendly URLs
andyhume
79
7.1k
Prompt Engineering for Job Search
mfonobong
0
570
Color Theory Basics | Prateek | Gurzu
gurzu
1
510
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
660
VelocityConf: Rendering Performance Case Studies
addyosmani
331
25k
Between Models and Reality
mayunak
4
560
The Power of CSS Pseudo Elements
geoffreycrofte
82
6.6k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
47k
<Decoding/> the Language of Devs - We Love SEO 2024
nikkihalliwell
1
380
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
460
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.