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 . BCA-OLD

Software Engineering

0%

Course Title: Software Engineering

Course No: CACS253

Nature of the Course: THEORY

Semester: 4

Full Marks: 20 + 20 + 60

Pass Marks: 8 + 8 + 24

Credit Hours: 3

Course Description

Course Objectives

Course Contents

1. Introduction
4 hrs
1.1. Definition of Software, Type of Software, Characteristic of Software
1.2. Attributes of Good Software, Definition of Software Engineering
1.3. Software Engineering Facing, System Engineering Costs
1.4. Key Challenges that Software Engineering Facing
1.5. Professional Practice
2. Software Development Process Model
8 hrs
2.1. Software Process, Software Process Model
2.2. The Waterfall Model, Evolutionary Development
2.3. Component-Based Software Engineering (CBSE)
2.4. Process Iteration: Incremental Delivery, Spiral Development
2.5. Rapid Software Development: Agile Methods, Extreme Programming, Rapid Application Development
2.6. Software Prototyping, Rational Unified Process (RUP)
2.7. Computer Aided Software Engineering (CASE): Overview of CASE Approach, Classification of CASE tools
3. Software Requirement Analysis and Specification
10 hrs
3.1. System and Software Requirements
3.2. Type of Software Requirements: Functional and Non-Functional Requirements
3.3. Domain Requirements, User Requirements
3.4. Elicitation and Analysis of Requirements: Overview of Techniques
3.5. View Points, Interviewing, Scenarios, Use-Case, Ethnography
3.6. Requirement Validation, Requirement Specification, Feasibility
4. Software Design
10 hrs
4.1. Design Concept: Abstraction, Architecture, Patterns, Modularity
4.2. Cohesion, Coupling, Information Hiding, Functional Independence, Refinement
4.3. Architectural Design: Repository Model, Client Server Model, Layered Model
4.4. Modular Decomposition, Procedural Design Using Structured Methods
4.5. User Interface Design: Human-Computer Interaction, Information Presentation
4.6. Interface Evaluation, Design Notation
5. Coding
2 hrs
5.1. Programming Language and Development Tools
5.2. Selecting Languages and Tools
5.3. Good Programming Practices
6. Software Testing and Quality Assurance
6 hrs
6.1. Verification and Validation
6.2. Techniques of Testing: Black-box and White-box Testing
6.3. Inspections, Level of Testing: Unit Testing, Integration Testing
6.4. Interface Testing, System Testing, Alpha and Beta Testing
6.5. Regression Testing, Design of Test Cases
6.6. Quality Management Activities, Product and Process Quality
6.7. Standards: ISO9000, Capability Maturity Model (CMM)
7. Software Maintenance
3 hrs
7.1. Evolving Nature of Software
7.2. Different Types of Maintenance: Fault Repair, Software Adaptation
7.3. Functionality Addition or Modification
7.4. Maintenance Prediction, Re-Engineering
7.5. Configuration Management (CM): Importance of CM, Configuration Items, Versioning
8. Managing Software Projects
2 hrs
8.1. Needs for the Proper Management of Software Projects
8.2. Management Activities: Project Planning, Estimating Costs
8.3. Project Scheduling, Risk Management, Managing People

Text Books

  1. 1.Roger S. Pressman, “Software Engineering: A Practitioner’s approach”, 6th Edition, McGraw Hill International edition, 2005

Reference Books

  1. 1.Ali Behforooz and Frederick J. Hudson, “Fundamentals of Software Engineering”, OUP, 1996
  2. 2.Ian Sommerville, “Software Engineering”, 9th Edition, Addison-Wesley, 2010, ISBN: 978-0137035151
  3. 3.Pankaj Jalote, “An Integrated Approach to Software Engineering”, 2nd Edition, Springer, 1997

Notes:

Source:

This course includes the topics that provide fundamental concept and standard of software engineering so that students will be able to develop software and/or handle software project using the global standard of software.
This Course is designed to provide the students with the basic competencies required to identify requirements, documents the system design and maintain a developed system. It presumes a general understanding of computers and programming which are covered in the first and second semester of the degree.
This syllabus follows the official BCA curriculum of Tribhuvan University. In case of any doubt or revision, the university's published syllabus shall be considered authoritative.