Slide 1

Slide 1 text

Dr. Javier Gonzalez-Sanchez [email protected] www.javiergs.info o ffi ce: 14 -227 CSC 508/9 Software Engineering (Design & Deployment) Lecture 02. Architecture

Slide 2

Slide 2 text

Course Content

Slide 3

Slide 3 text

This Course 3

Slide 4

Slide 4 text

This Course 4

Slide 5

Slide 5 text

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

Slide 6

Slide 6 text

Concepts Architecture Design Code

Slide 7

Slide 7 text

Eric Gamma 7

Slide 8

Slide 8 text

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

Slide 9

Slide 9 text

Foundations 9

Slide 10

Slide 10 text

Architecture

Slide 11

Slide 11 text

Architecture 11 Aerial Perspective of Kunming Campus-Howard Rideout Architect

Slide 12

Slide 12 text

Blueprint Architecture Design Code

Slide 13

Slide 13 text

Environment

Slide 14

Slide 14 text

Architecture Patterns • Model - View - Controller • L a yered • Bl a ckbo a rd • Client-Server • Publisher-Subscriber 14

Slide 15

Slide 15 text

Model-View-Controller

Slide 16

Slide 16 text

MVC Architecture 16

Slide 17

Slide 17 text

Design | MVC applied to Java Desktop Apps 17

Slide 18

Slide 18 text

Code 18

Slide 19

Slide 19 text

19

Slide 20

Slide 20 text

Homework • Read Gamma et al. paper • Read Garlan and Shaw paper • Available on Canvas

Slide 21

Slide 21 text

Review your Java Programming Skills (Including Java Swing GUI) Homework 21

Slide 22

Slide 22 text

CSC 509 Software Engineering Javier Gonzalez-Sanchez, Ph.D. [email protected] 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.