CMP348 Software Engineering
Software Engineering notes
10 chapter notes, in syllabus order. Each starts with the key points.
Unit 1
Software Engineering: Definitions, Challenges & EvolutionUnit 1 of Software Engineering introduces the discipline’s core concepts—what software engineering is, its history, key challenges, and why it differs from traditional programming. It covers definitions, the software crisis, and the evolution of methodologies, with real-world examples from Nepali and global tech.7 min readUnit 2
Software Process Models: Models, Phases, and Real-World ApplicationsUnit 2 of Software Engineering explores the core software process models (waterfall, iterative, spiral, agile, V-model), their phases, workflows, and trade-offs, with real-world examples from Nepali and global tech (eSewa, Pathao, Google) and exam-focused comparisons.16 min readUnit 3
Requirements Engineering: Elicitation, Analysis, Specification & ValidationUnit 3 of Software Engineering 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, with real-world applications in Nepalese apps like eSewa and Daraz.20 min readUnit 4
UML Modelling: Diagrams, Classes, Use Cases & State MachinesUnit 4 of Software Engineering covers Unified Modeling Language (UML)—its 14 diagrams, class diagrams with associations/aggregations, use case diagrams for workflows, state machines for dynamic behavior, and activity diagrams for processes—with real-world examples from Nepalese apps (eSewa, Daraz) and global systems (G12 min readUnit 5
Architectural Design: Styles, Patterns, Trade-offs & Real SystemsUnit 5 of Software Engineering explores how to structure large software systems using architectural styles (layered, client-server, microservices), design patterns (MVC, Observer), and trade-offs (scalability vs. consistency). It covers key decisions like coupling, cohesion, and deployment models, with real-world examp19 min readUnit 6
OO Design & Patterns: Classes, UML, SOLID, Gang of FourUnit 6 of Software Engineering covers object-oriented design principles (encapsulation, inheritance, polymorphism), UML class diagrams, design patterns (creational, structural, behavioral), and their application in real-world systems like eSewa’s payment flow or Daraz’s order routing.13 min readUnit 7
User Interface Design: Principles, Types & EvaluationUnit 7 of Software Engineering explores the core principles of UI design, interaction styles, usability heuristics, and evaluation techniques, with real-world applications in Nepalese apps like eSewa and global platforms like Google.9 min readUnit 8
Software Testing: Types, Techniques & Best PracticesUnit 8 of Software Engineering covers the fundamentals of software testing, including its types (unit, integration, system, acceptance), testing techniques (black-box, white-box, grey-box), test case design, and automation. It also explores test metrics, defect tracking, and the role of testing in quality assurance, wi15 min readUnit 9
Software Maintenance & Evolution: Types, Challenges & StrategiesUnit 9 of Software Engineering explores the lifecycle beyond deployment, covering maintenance types (corrective, adaptive, perfective, preventive), evolution drivers (changing requirements, technology shifts), reengineering techniques, and cost-benefit analysis of maintenance activities. It also examines tools, metrics15 min readUnit 10
Project Mgmt & Quality: Plans, Metrics, Risks & StandardsUnit 10 of Software Engineering covers project management frameworks (Agile, Waterfall, Hybrid), quality models (ISO/IEC 25010, CMMI), risk management, cost/schedule estimation, and quality assurance techniques—with real-world examples from Nepali and global tech companies.15 min read