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 readUnit 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 readUnit 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 readUnit 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 readUnit 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 readUnit 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 readUnit 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 readUnit 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 readUnit 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 readUnit 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