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 the core concepts of software engineering, distinguishing it from programming, exploring its challenges, and explaining key principles like abstraction, modularity, and maintainability. This note covers definitions, the software crisis, the evolution of software engi11 min readUnit 2
Software Process Models: Waterfall, Iterative, Agile, SpiralUnit 2 of Software Design and Development explains software process models—structured approaches to building software, including the Waterfall, Iterative, Agile, and Spiral models. It covers their definitions, workflows, advantages, disadvantages, and real-world applications, with comparisons and practical examples lik9 min readUnit 3
Requirements Engineering: Elicitation, Analysis & SpecificationUnit 3 of Software Design and Development covers the systematic approach to gathering, analyzing, and documenting software requirements—from stakeholder interviews to use cases, SRS documents, and validation techniques—with real-world examples from Nepali apps and global tech.14 min readUnit 4
UML Diagrams, Use Cases & Class ModelsUnit 4 of Software Design and Development covers Unified Modeling Language (UML)—its 14 diagrams, use-case modeling, class diagrams, object diagrams, sequence diagrams, state machines, and activity diagrams—with real-world examples from Nepali apps (eSewa, Daraz) and global tech (Google Maps, WhatsApp). Learn how to mo11 min readUnit 5
Architectural Design: Styles, Patterns, Trade-offs & Real SystemsUnit 5 of Software Design and Development explores architectural design principles, covering architectural styles (layered, client-server, event-driven), design patterns (MVC, microservices), trade-offs (scalability vs. consistency), and real-world applications in Nepalese and global software systems.22 min readUnit 6
Object-Oriented Design & Design Patterns: Classes, Inheritance, Polymorphism, SOLID, Gang of Four PatternsUnit 6 of Software Design and Development explores core object-oriented principles (encapsulation, inheritance, polymorphism, abstraction) and the Gang of Four design patterns (Singleton, Factory, Observer, Strategy, etc.), with real-world applications in Nepalese apps like eSewa and global systems like YouTube.16 min readUnit 7
UI Design Principles, Types, Heuristics & PrototypingUnit 7 of Software Design and Development covers user interface (UI) design fundamentals, including design principles, types of interfaces (CLI, GUI, NUI), usability heuristics, prototyping techniques, and evaluation methods, with real-world examples from Nepali apps and global tech.14 min readUnit 8
Software Testing: Types, Techniques & StrategiesUnit 8 of Software Design and Development covers test planning, test types (unit, integration, system, acceptance), test case design, black-box vs. white-box testing, and automation, with real-world examples from Nepalese apps like eSewa and Daraz, and global tech like Google’s CI/CD pipelines.13 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 types of maintenance (corrective, adaptive, perfective, preventive), evolutionary processes, reverse engineering, maintenance challenges, and strategies for long-8 min readUnit 10
Software Project Mgmt & Quality: Metrics, Models & StandardsUnit 10 of Software Design and Development explores project management frameworks (Agile, Waterfall, Spiral), quality models (ISO/IEC 9126, CMMI), defect tracking, risk management, and cost-benefit analysis—with real-world case studies from Nepali tech firms like eSewa and Ncell, and global giants like Google.7 min read