TABFlux
HomeCoursesUniversitiesProgramsForum
Contact Us

© 2026 TABFlux. All rights reserved. Built for students, by students.

ForumPrivacy PolicyTerms of ServiceContact UsContributors

Software Engineering

Software engineering is the systematic, disciplined, and quantifiable approach to the development, operation, and maintenance of software. It applies engineering principles to create high-quality, reliable, and efficient software systems on time and within budget, covering the entire lifecycle from initial requirements to final maintenance.

Select University

TUFWU

Select Program

BSC-CSITBCA-OLDBITBCT-NEWBEI-NEW

TabFlux . Software Engineering . TU . BCT-NEW

Software Engineering

0%

Course Title: Software Engineering

Course No: ENCT352

Nature of the Course: Theory + Lab

Semester: 6

Full Marks: 60 + 40 + 25

Pass Marks: 24 + 16 + 10

Credit Hours: 3

Course Description

Course Objectives

Course Contents

1. Introduction
4 hrs5 marks
1.1. Software and software engineering
1.2. Nature and characteristics of software
1.3. Software application domains
1.4. Legacy software
1.5. Software crisis
1.6. Software myths
1.7. Software engineering practice: Essence of practice, general principles
2. The Software Process
8 hrs11 marks
2.1. Process framework and umbrella activities
2.2. Traditional (Plan-driven) process models
  • Waterfall model and its extensions
  • Incremental process model
  • Evolutionary process models (Prototyping, spiral)
2.3. Agile and adaptive process models
  • Agile manifesto and the 12 principles
  • Agile versus plan-driven development
  • Scrum framework (Roles, artifacts, ceremonies)
  • Extreme programming (XP) practices
  • Lean software development
2.4. Model selection considerations
3. Software Requirements Engineering
6 hrs8 marks
3.1. Requirement engineering process
3.2. SRS (Structure, characteristics, users)
3.3. Functional and non-functional requirements
3.4. Gathering requirements using use cases modeling and scenarios
3.5. Agile requirements engineering
  • User stories and acceptance criteria
  • Product backlog creation and prioritization
  • Story mapping basics
  • Continuous requirements refinement (Backlog grooming)
4. Architectural Design
3 hrs4 marks
4.1. Introductions and importance
4.2. Architectural design principles
4.3. Taxonomy of architectural styles
4.4. Modular design, cohesion and coupling
5. System Modeling
9 hrs12 marks
5.1. System modeling
  • Need for system modeling
  • Role of abstractions in managing complexity
5.2. Process modeling using DFD
5.3. Scenario-based analysis
  • Concept of scenarios
  • Use-case descriptions and diagrams
5.4. Behavioral and structural modeling
  • Activity diagrams
  • Class-based modeling
6. Coding and Testing
5 hrs7 marks
6.1. Coding standards and guidelines
6.2. Code review
  • Code walkthrough
  • Code inspection
  • Cleanroom technique
6.3. Software testing fundamentals
  • Verification and validation
  • Unit testing
  • Integration testing
  • System testing
  • Acceptance testing
6.4. Black-box and white-box testing approach
6.5. Agile testing practices
  • Test-driven development (TDD)
  • Continuous testing
  • Automated unit testing basics
  • Refactoring for code quality
7. Software Quality, Assurance, Maintenance
4 hrs5 marks
7.1. Quality concepts
7.2. Quality attributes
7.3. Reviews, inspections and QA concepts
7.4. ISO standards, CMMI levels
7.5. Software maintenance and its types
7.6. Maintenance effort and lifecycle considerations
8. Software Configuration Management
3 hrs4 marks
8.1. Software configuration management
8.2. Version control and continuous integration
8.3. Change management process
8.4. Branching strategies (Git-flow basics)
9. Recent Trends
3 hrs4 marks
9.1. DevOps and continuous deployment pipelines
9.2. Continuous integration/continuous delivery (CI/CD) in modern projects
9.3. Cloud-native, microservices architectures and infrastructure as code (IaC)
9.4. AI-assisted software development
9.5. Low-code/no-code, green software engineering

Laboratory Works

  1. 1.Preparation and organization of software requirements specification (SRS) using standard templates
  2. 2.Construction of UML diagrams (Use case, activity, class, and sequence) using modeling tools
  3. 3.Design of system architecture and component structure using CASE tools
  4. 4.Implementation of key system modules following coding standards and best practices
  5. 5.Execution of testing procedures (Unit and integration) and documentation of results
  6. 6.Application of version control (Git), CI/CD workflow setup, and containerization using docker
  7. 7.Term Project

Reference Books

  1. 1.Pressman, R. S., Maxim, B. R. (2019). Software engineering: A practitioner's approach. McGraw-Hill Education.
  2. 2.Mall, R. (2018). Fundamentals of software engineering. PHI Learning.
  3. 3.Sommerville, I. (2016). Software engineering. Pearson.
  4. 4.Martin, R. C. (2009). Clean code: A handbook of agile software craftsmanship. Pearson.
  5. 5.Schwaber, K., Beedle, M. (2002). Agile software development with Scrum. Prentice Hall.

Notes:

Source:

This course provides students with a foundation in software engineering, covering software characteristics, principles, process models, requirements engineering, system and object-oriented modeling, architectural and design principles, coding standards, testing and quality assurance, including modern practices such as CI/CD, containerization and AI-assisted development.

The objective of this course is to:

  • Provide students with a foundation in software engineering, covering software characteristics, principles, process models, requirements engineering, system and object-oriented modeling, architectural and design principles, coding standards, testing and quality assurance
  • Give students both theoretical understanding and practical experience in applying software engineering concepts to project development
  • Introduce modern practices such as CI/CD, containerization and AI-assisted development

Practical sessions cover preparation of SRS using standard templates, construction of UML diagrams, design of system architecture using CASE tools, implementation of key system modules, unit and integration testing, version control using Git, CI/CD workflow setup, containerization using Docker, and a term project. (22.5 hours)

This syllabus follows the official BCT curriculum of Tribhuwan University. In case of any doubt or revision, the university's published syllabus shall be considered authoritative. https://ioe.tu.edu.np/pages/computer-engineering-curriculum-structure-2635