Introduction to Software Engineering


I am teaching CSE360 Introduction to Software Engineering this Summer and Fall. This course presents an overview of software life cycle models, project management, team development environments and methodologies, software architectures, and quality assurance and standards.

Syllabus

Summer 2017 version

Lessons

  1. Course Presentation
  2. Linear and iterative process models
  3. Evolutionary models
  4. The unified process
  5. Agile methods
  6. Requirements
  7. Requirement specification I
  8. Requirement specification II
  9. Use cases I
  10. Use cases II
  11. Building use cases II
  12. Activity diagram and State machine diagrams
  13. Case study: Pac-Man video game
  14. Validating requirements
  15. Software requirement specification (SRS)
  16. Requirement patterns
  17. Structure modeling
  18. Midterm Review
  19. Class diagrams I
  20. Class diagrams II
  21. Software design patterns: Observer
  22. Software design patterns: Singleton
  23. Software design patterns: Decorator
  24. Software architecture
  25. Architecture patterns: MVC
  26. Architecture patterns: Layered, Blackboard, and Client/Server
  27. Final project I
  28. Final project II
  29. Software metrics I
  30. Software metrics II
  31. Tools for software measurements
  32. Software cost estimation
  33. Size and scale factors
  34. UML workshop
  35. Cost factors
  36. Verification, validation, and testing
  37. Final review