📗 -> Software Engineering

short mode
not done
tags include #SWE
description includes foo

🔶 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:

TA:

📄 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-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

Week 5 - Kafka, Broker architecture, Fault Tolerance

  • ECS160-L12 - Modern Software Architectures
  • ECS160-L13 - Modern Software Architectures
    Class canceled, prof sick

ECS160-P3
ECS160-MT1

Week 6 - Metadata and Coordination

Midterm - 2/9

Week 7 - Kubernetes

Holiday - 2/16

Week 8 - Kubernetes + FaaS

2/23

Week 9 - Software Testing

3/2

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)

ECS160-Final-Prep

Summary of Slides:

L1: Course Intro (1d) - ECS160-LS1
D1: Java Basic
L2: Design Patterns (4d)

ECS160-LS2

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)

D4: Reflection
L5: SQL (1d) - ECS160-L11
D5: SQL
L6: Kakfa (2d)

ECS160-LS6

L7: Kubernets (2d)

ECS160-LS7

L8: Software Testing

ECS160-LS8