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 02
Search
Javier Gonzalez-Sanchez
PRO
September 27, 2024
Programming
0
290
CSC509 Lecture 02
Software Design
Model-View-Controller
(202309)
Javier Gonzalez-Sanchez
PRO
September 27, 2024
Tweet
Share
More Decks by Javier Gonzalez-Sanchez
See All by Javier Gonzalez-Sanchez
CSC307 Lecture 16
javiergs
PRO
0
150
CSC570 Lecture 13
javiergs
PRO
0
37
CSC307 Lecture 17
javiergs
PRO
0
110
UP Lecture 30
javiergs
PRO
0
82
UP Lecture 25
javiergs
PRO
0
72
CSC486 Lecture 14
javiergs
PRO
0
150
CSC486 Lecture 13
javiergs
PRO
0
110
CSC486 Lecture 12
javiergs
PRO
0
110
CSC486 Lecture 11
javiergs
PRO
0
64
Other Decks in Programming
See All in Programming
List Unfolding - 'unfold' as the Computational Dual of 'fold', and how 'unfold' relates to 'iterate'"
philipschwarz
PRO
0
180
関数型まつり2025登壇資料「関数プログラミングと再帰」
taisontsukada
2
610
Babylon.js 8.0のアプデ情報を 軽率にキャッチアップ / catch-up-babylonjs-8
drumath2237
0
120
単体テストの始め方/作り方
toms74209200
0
370
事業戦略を理解してソフトウェアを設計する
masuda220
PRO
19
5.6k
イベントストーミングから始めるドメイン駆動設計
jgeem
4
760
コードに語らせよう――自己ドキュメント化が内包する楽しさについて / Let the Code Speak
nrslib
6
1.4k
少数精鋭エンジニアがフルスタック力を磨く理由 -そしてAI時代へ-
rebase_engineering
0
150
RubyKaigi Hack Space in Tokyo & 函館最速 "予習" 会 / RubyKaigi Hack Space in Tokyo & The Fastest Briefing of RubyKaigi 2026 in Hakodate
moznion
1
130
Enterprise Web App. Development (2): Version Control Tool Training Ver. 5.1
knakagawa
1
110
つよそうにふるまい、つよい成果を出すのなら、つよいのかもしれない
irof
0
240
Javaに鉄道指向プログラミング (Railway Oriented Pro gramming) のエッセンスを取り入れる/Bringing the Essence of Railway-Oriented Programming to Java
cocet33000
2
500
Featured
See All Featured
RailsConf 2023
tenderlove
30
1.1k
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
331
22k
4 Signs Your Business is Dying
shpigford
183
22k
GraphQLの誤解/rethinking-graphql
sonatard
71
11k
Building an army of robots
kneath
306
45k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
2.8k
YesSQL, Process and Tooling at Scale
rocio
172
14k
Measuring & Analyzing Core Web Vitals
bluesmoon
7
470
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
32
2.3k
Build your cross-platform service in a week with App Engine
jlugia
231
18k
Git: the NoSQL Database
bkeepers
PRO
430
65k
GitHub's CSS Performance
jonrohan
1031
460k
Transcript
Dr. Javier Gonzalez-Sanchez javiergs@calpoly.edu www.javiergs.info o ffi ce: 14 -227
CSC 508/9 Software Engineering (Design & Deployment) Lecture 02. Architecture
Course Content
This Course 3
This Course 4
This Course covers CSC 509 • Apply wh a t
you know • Deepen into Design (decision-m a king) • Apply development skills (le a rn, a s needed, new fr a meworks, libr a ries, APIs) • Cre a te a product th a t not only works but h a s Qu a lity (reuse, extensibility, a nd modi f i a bility) 5
Concepts Architecture Design Code
Eric Gamma 7
Robert Martin Design principles a re not a perfume to
be liber a lly sc a ttered a ll over the system. Robert M a rtin (Agile m a nifesto, SOLID principles, Cle a n Code Book) 8
Foundations 9
Architecture
Architecture 11 Aerial Perspective of Kunming Campus-Howard Rideout Architect
Blueprint Architecture Design Code
Environment
Architecture Patterns • Model - View - Controller • L
a yered • Bl a ckbo a rd • Client-Server • Publisher-Subscriber 14
Model-View-Controller
MVC Architecture 16
Design | MVC applied to Java Desktop Apps 17
Code 18
19
Homework • Read Gamma et al. paper • Read Garlan
and Shaw paper • Available on Canvas
Review your Java Programming Skills (Including Java Swing GUI) Homework
21
CSC 509 Software Engineering Javier Gonzalez-Sanchez, Ph.D. javiergs@calpoly.edu Fall 2024
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.