Course Layout

  1. Continuing System Design
    • System Design (A not that brief recap)
    • Addressing design goals
    • Software Architectures
  2. Patterns and Anti-Patterns
    • A detailed review of design patterns
      • Structural
      • Behavioral
      • Creational
    • Anti Patterns
      • Development Anti patterns
      • Architectural Anti patterns
      • Management Anti patterns
      • Testing Anti patterns
  3. Aspect Oriented Programming
    • Why?
    • When?
    • Concepts
      • Cross cutting
      • Joint Points
      • Advices
      • Pointcuts
  4. Service Oriented Software Engineering
    • Why?
    • When?
    • Concepts
      • Service
      • Abstractions
      • Communications
      • Design Principles
  5. Agile Methodologies(No need! We have covered this part!)
    • Agile Manifesto
    • Agile Framework
    • Methodologies
    • Agile Estimation
    • Agile Management and Organization
    • XP
    • SCRUM
    • Kanban
  6. Microservice Architecture(Exciting new stuffs instead!)
    • things microservice
      • Concepts
      • Containarization
      • Migration from Monolith to Microservices
      • Challenges and Concerns
  7. Software Testing
    • Software testing types
      • Black Box
      • Grey Box
      • White Box
      • Functional and Non-Functional
    • How Google test software?
    • Verification and Validation
  8. Reliability, Security and Real-time Software Engineering(If we had enough time!)
    • Availability and reliability
    • Reliability requirements
    • Fault-tolerant architectures
    • Programming for reliability
    • Reliability measurement
    • Security and dependability
    • Security and organizations
    • Security requirements
    • Secure systems design
    • Security testing and assurance
    • Embedded system design
    • Architectural patterns for real-time software
    • Timing analysis
    • Real-time operating systems

Things that are expected from you!

  1. Continuing your SE 1 Project
    • Design
    • Patterns
    • Implementation ( every sprint a working feature!)
    • Testing
    • I am trying to hold a Demo day!
  2. Mandatory Group Presentation ( from the list of subjects I give you)
  3. Final Exam