IT643 — Software Design and Testing | Lecture Index
Instructor: Ankush Chander | Institute: DA University
Overview
This course covers the foundations of software engineering in the post-LLM era — from requirements discovery through design, testing, and deployment. Each lecture is available as Markdown (for reading) and as Slides (for presentation).
Lecture Map
Module 1: Requirements Discovery
- 0: Software Engineering in post LLM era
- 1: Requirement Engineering
- 2: Elicitation & Stakeholder Interactions
Module 2: Taming Complexity
- 3: Deep modules vs Shallow modules
- 3b. Complexity: measured on your own code
- 4: Refactoring
- 5-6: Smells in the data
Module 3: Testing
- 7_8: Unit testing fundamentals & the AAA framework
- 9_10: Choosing what to test, and what makes a test good
- 11_12: Testing with external dependencies: test doubles
- 13_14: Testability and design
- 15_16: Test code quality
Module 4: Design beyond a class
- 17_18: SOLID Principles
- 19_20: The data model
- 21_22: Component principles
- 23: Architecture: boundaries
Prerequisites
- Basic understanding of how software systems work
- Familiarity with at least one programming language
- No prior formal software engineering training required
Reference Texts
- Ian Sommerville — Software Engineering (Chapters 3–5 for this block)
- Suzanne \& James Robertson — Mastering the Requirements Process (Volere method)