📗 -> 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
Week 2 - Design Patterns, JDK
- ECS160-L4 - More design patterns, decorators thru state design
- ECS160-L5 - Template method deisng through visitor design
- ECS160-D2 - Setting up Java Dev Env
- ECS160-L6 - Quiz + Java Reflection, proxies, annotations
Week 3 - Redis + Dynamic Proxies
MLK Day
- ECS160-L7 - Reflection cont.
Class canceled, prof sick
Week 4 - Annotations, Microservices, Messaging
- ECS160-L9 - Reflection cont.
- ECS160-L10 - Dynamic Proxies
- ECS160-L11 - Relational Databases and SQL + Quiz
ECS160-Quiz2-Prep
Week 5 - Kafka, Broker architecture, Fault Tolerance
- ECS160-L12 - Modern Software Architectures
- ECS160-L13 - Modern Software Architectures
Class canceled, prof sick
Week 6 - Metadata and Coordination
Midterm - 2/9
- ECS160-L15 - Modern Software Architectures
- ECS160-D6 - MSA cont
- ECS160-L16 - MSA cont: Communication styles
Week 7 - Kubernetes
Holiday - 2/16
- ECS160-L17 - Kafka: use case for high-throughput datasystems
- ECS160-D7 - Mock Testing
- ECS160-L18 - Kafka: Architecture + Quiz
Week 8 - Kubernetes + FaaS
2/23
- ECS160-L19 - Modern Application Deployment
- ECS160-D8 - ???? Recording muted and no projector
- ECS160-L20 - Modern Application Deployment
Week 9 - Software Testing
3/2
- ECS160-L21 - Software Testing
- ECS160-L22 - Software Testing
- ECS160-D9 - Software Testing (Coverage granularity spectrum) + Docker
- ECS160-L23 - Software Testing (coverage branching) + Quiz
ECS160-P6
Week 10 - Symbolic execution, Abstract Interpretation
3/9
- ECS160-L24 - Software Testing (Fuzz Testing - Sanitizers)
- ECS160-L25 - Software Testing (Symbolic Execution)
- ECS160-D10 - Software Testing & Topics for Final Exam (cont. from lecture, talking about challenges in coverage branching)
- ECS160-L26 - Software Testing (Miscellaneous Testing Topics)
Summary of Slides:
L1: Course Intro (1d) - ECS160-LS1
D1: Java Basic
L2: Design Patterns (4d)
D2: JDK and Maven - ECS160-D2
L3: Java Annotations and Reflection (4d)
ECS160-LS3
Annotations and runtime reflection
Java Dynamic proxies
Java Annotation processor
1/21 - Case study: redis perssistence network
D3: Unit Test
L4: Microservices (2d)
ECS160-LS4 <- Annotate 2nd half (LSM trees)