📗 -> Software Engineering
short mode
not done
tags include #SWE
description includes foo🔗 Critical Links
🔶 Course Description
Requirements, specification, design, implementation, testing, and verification of large software systems. Study and use of software engineering methodologies
The course will focus on the following three modules:
- Building components (design patterns, reflective programming)
- Composing systems (microservices, message-queues and pub/sub, Kafka, orchestration frameworks)
- Validating components (property-based testing, fuzz testing, advanced topics)
❗ Important
Instructor:
- Tapti Palit - tpalit@ucdavis.edu
TA:
- Gabe Bai - gabbai@ucdavis.edu
📄 Class Material
Week 1 - Course intro, OO, Design Patterns
- ECS160-L1 - Course overview and intro to OO
- ECS160-L2
- ECS160-L3 - Java Basic
- Design Patterns
- Finished on slide 71/123
Week 2 - Design Patterns, JDK
Week 3 - Redis + Dynamic Proxies
MLK Day
Week 4 - Annotations, Microservices, Messaging
Week 5 - Kafka, Broker architecture, Fault Tolerance
Week 6 - Metadata and Coordination
Midterm
Week 7 - Kubernetes
Holiday
Week 8 - Kubernetes + FaaS
Week 9 - Software Testing
Week 10 - Symbolic execution, Abstract Interpretation
Summary of Slides:
L1: Course Intro (1d)
D1: Java Basic
L2: Design Patterns (4d)
OO + Creational design patterns
Structural design patterns
Java Basic
Behavioral design patterns
Design patterns contd.
D2: JDK and Maven
L3: Java Annotations and Reflection (4d)
Annotations and runtime reflection
Java Dynamic proxies
Java Annotation processor
1/21 - Case study: redis perssistence network