SWE 2410 Weekly Outcomes, Spring 2025

This is a draft for weekly, detailed outcomes for SWE 2410. It was based on the slide decks used by Dr. Hasker in Spring, 2025, and generally captures the main point on each slide or group of two or three slides. Some material may be off by a week either direction, and there may be mistakes. See the course notes for additional detail.

The overall structure of the course, with Bloom’s Taxonomic level in parentheses:

  1. Choosing classes to capture in designs: domain-driven development (Analysis)
    • Understanding requirements vs. design
    • Understanding classes using RIBS: Responsibilities, Identity, Behavior, and State
    • Using UML class and sequence diagrams to capture designs (Application)
    • Using UML at requirements, design, and implementation levels
  2. Coupling and cohesion as it relates to OO designs (Analysis)
  3. Design patterns: capturing common solutions (Application)
    • What is a design pattern?
    • Key design principles related to patterns:
      • DRY: Don’t Repeat Yourself
      • Programming to interfaces rather than implementations
      • Classes should be open to extension, closed to modification
      • Liskov Substitution Principle
    • Applying MVC to structure projects
    • Implementing several design patterns: Strategy, Observer, Decorator, Command
  4. Thread-based programming (Understanding)
    • What are threads
    • How synchronize can control concurrent access to shared memory
  5. Cloud computing concepts (Remembering)
  6. Cloud patterns (Applying)
  7. Additional design patterns (Understanding)
    • Coverage of well-known patterns with the additional goal of illustrating how patterns would be presented (see next bullet)
    • Currently covered: Adapter, Facade, Composite, Factory
    • Optional: Proxy, Iterator
  8. Student presentations of a pattern with illustrating code
    • This is a group project worth 10% of their grade
    • Groups are created midterm, and class and lab time is allocated for additional work
    • Bloom’s level: Analyzing the pattern
    • Practical impact: experience presenting technical material

Note that many of these topics are introduced early and reiterated throughout the course. In addition, the course has a heavy empahsis on using Git and participating in small teams (2–4 students) on projects.

Week 1: Motivating design, Introduction for Strategy Pattern

Week 2: Design principles, RIBS

Week 3 and 4: Coupling, Cohesion

Week 5: Decorator Pattern

Week 6: Observer Pattern

Week 7: MVC

Week 8: Command Pattern

Week 9: Threads

Week 10: Cloud Computing

Week 11: Midterm, Cloud Computing

Week 12: Cloud Computing

Week 13: Additional patterns: Adapter, Facade

Week 14: Composite, Factory

Week 15: Presentations, Final