Software Engineering - Syllabus

Embark on a profound academic exploration as you delve into the Software Engineering course () within the distinguished Tribhuvan university's CSIT department. Aligned with the 2074 Syllabus, this course (CSC364) seamlessly merges theoretical frameworks with practical sessions, ensuring a comprehensive understanding of the subject. Rigorous assessment based on a 80+20 marks system, coupled with a challenging passing threshold of , propels students to strive for excellence, fostering a deeper grasp of the course content.

This 3 credit-hour journey unfolds as a holistic learning experience, bridging theory and application. Beyond theoretical comprehension, students actively engage in practical sessions, acquiring valuable skills for real-world scenarios. Immerse yourself in this well-structured course, where each element, from the course description to interactive sessions, is meticulously crafted to shape a well-rounded and insightful academic experience.


Course Description:

This course familiarizes students with different concepts of software engineering mainly focusing on software process models, agile development, requirements engineering, models, design, implementation, testing, evolution, and software project management.

Course Objectives:

The main objective of this course is to provide knowledge of different concepts of software engineering so that students will be able to develop high quality software using different software management skills.

Units

Introduction

Software and its Types; Attributes of Good Software; Software Engineering and its Importance; Fundamental Software Engineering Activities; Difference between Software Engineering and Computer Science; Difference between Software Engineering and System Engineering; Challenges and Cost of Software Engineering; Professional Software Development; Software Engineering Diversity; Internet Software Engineering; Software Engineering Ethics


Software Processes

Software Process; Software Process Models (Waterfall Model; Incremental Development; Integration and Configuration); Software Process Activities (Software Specification, Software Design and Implementation; Software Validation; Software Evolution); Coping with Change (Prototyping, Incremental Delivery); Process Improvement


Agile Software Development

Agile Development; Plan-Driven vs. Agile Development; Agile Methods; Agile Development Techniques; Introduction to Agile Project Management


Requirements Engineering

Concept of User and System Requirements; Functional and Non-Functional Requirements; Requirements Engineering Process; Requirements Elicitation; Requirements Specification; Requirements Validation; Requirements Change


System Modeling

Introduction to System Modeling; Context Models; Interaction Models; Structural Models; Behavioral Models; Model-Driven Architecture


Architectural Design

Introduction; Architectural Design Decisions; Architectural Views; Architectural Patterns; Application Architectures


Design and Implementation

Introduction; Object-Oriented Design using UML; Design Patterns; Implementation Issues; Open-Source Development


Software Testing

Introduction; Validation and Verification Testing; Software Inspection; Software Testing Process; Development Testing; Test-Driven Development; Release Testing; User Testing


Software Evolution

Evolution Process; Legacy Systems; Software Maintenance


Software Management

Software Project Management; Project Management Activities (Project Planning, Risk Management, People Management, Reporting and Proposal Writing); Project Planning (Software Pricing, Plan-Driven Development, Project Scheduling, Estimation Techniques, COCOMO Cost Modeling); Introduction to Quality Management and Configuration Management


Lab works

Laboratory / Project Work:

Students should prepare a project report along with software product using different concepts of software engineering. The project can be done in groups with at most four members in each group using any suitable database, programming, interfacing technologies, and project management concepts.