IT242 Software Design and Development

Software Design and Development notes

10 chapter notes, in syllabus order. Each starts with the key points.

Unit 1

Software Engineering: Definitions, Challenges & PrinciplesUnit 1 of Software Design and Development introduces core concepts of software engineering, including its definition, characteristics, challenges, and fundamental principles like abstraction, modularity, and reusability, with real-world applications and exam-focused insights.11 min read

Unit 2

Software Process Models: Types, Phases & Selection CriteriaUnit 2 of Software Design and Development explores software process models (waterfall, iterative, agile, spiral, V-model), their phases (requirements, design, implementation, testing, maintenance), and how to choose the right model for a project. Learn with real-world examples (e.g., eSewa’s agile updates, NTC’s waterf14 min read

Unit 3

Requirements Engineering: Elicitation, Analysis & SpecificationUnit 3 of Software Design and Development covers the systematic process of gathering, analyzing, documenting, and validating software requirements—from stakeholder needs to formal specifications—using techniques like interviews, use cases, and SRS documents.16 min read

Unit 4

UML Modelling: Diagrams, Use Cases & Class DesignUnit 4 of Software Design and Development covers Unified Modeling Language (UML)—its 14 diagrams, use case analysis, class diagrams, sequence diagrams, and activity diagrams—with real-world applications in Nepalese software (eSewa, Daraz) and exam-focused techniques.10 min read

Unit 5

Architectural Design: Styles, Patterns, Trade-offs & Real SystemsUnit 5 of Software Design and Development explores how to structure large-scale software systems using architectural styles (layered, client-server, microservices), design patterns (MVC, Observer), and trade-offs between scalability, maintainability, and performance. It covers real-world examples from Nepali apps (eSew19 min read

Unit 6

OO Design & Patterns: Classes, Inheritance, SOLID, GoF PatternsUnit 6 of Software Design and Development covers object-oriented design principles (encapsulation, inheritance, polymorphism), SOLID principles for maintainable code, and Gang of Four design patterns (creational, structural, behavioral) with UML diagrams and real-world applications in Nepalese software systems.17 min read

Unit 7

UI Design Principles, Heuristics, Prototyping & EvaluationUnit 7 of Software Design and Development covers user interface design fundamentals—principles, heuristics, prototyping techniques, and evaluation methods—with real-world examples from Nepali apps (eSewa, Daraz) and global platforms (Google, WhatsApp), plus visual breakdowns of UI layers, interaction flows, and heurist13 min read

Unit 8

Software Testing: Types, Techniques & StrategiesUnit 8 of Software Design and Development covers the fundamentals of software testing, including test types (unit, integration, system, acceptance), test techniques (black-box, white-box, grey-box), test case design, and test automation, with real-world applications and exam-focused insights.18 min read

Unit 9

Software Maintenance & Evolution: Types, Challenges & StrategiesUnit 9 of Software Design and Development explores the lifecycle beyond deployment—how software is updated, repaired, adapted, and optimized over time. Learn corrective, adaptive, perfective, and preventive maintenance, cost models (e.g., Lehman’s Laws), reverse engineering, reengineering, and tools like version contro14 min read

Unit 10

Project Mgmt & Quality Assurance: Metrics, Models, StandardsUnit 10 of Software Design and Development covers project management frameworks (Agile, Waterfall, Hybrid), quality models (ISO/IEC 25010, CMMI), risk management, and quality assurance techniques—with real-world applications in Nepali tech (e.g., eSewa’s Agile sprints, Ncell’s CMMI compliance) and exam-focused worked e8 min read