Software Engineering - Syllabus

Course Overview and Structure

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

Key Topics

  • Introduction to Computers
    IN-01

    An overview of computers and their significance in today's world. This topic sets the stage for understanding the basics of computers.

  • Digital and Analog Computers
    IN-02

    Understanding the difference between digital and analog computers, their characteristics, and applications.

  • Characteristics of Computers
    IN-03

    Exploring the key characteristics of computers, including input, processing, storage, and output.

  • History of Computers
    IN-04

    A brief history of computers, from their inception to the present day, highlighting key milestones and developments.

  • Generations of Computers
    IN-05

    Understanding the different generations of computers, including their features, advantages, and limitations.

  • Classification of Computers
    IN-06

    Categorizing computers based on their size, functionality, and application, including desktops, laptops, and mobile devices.

  • The Computer System
    IN-07

    An in-depth look at the components of a computer system, including hardware and software.

  • Applications of Computers
    IN-08

    Exploring the various applications of computers in different fields, including business, education, and healthcare.

  • Overview of Electronic Transaction Act of Nepal
    IN-10

    Understanding the legal framework governing E-commerce in Nepal.

  • Application Areas
    IN-09

    This topic explores the various application areas of simulation, including engineering, economics, and healthcare.

  • Software Engineering Ethics
    IN-11

    Ethical considerations and principles in software engineering, including accountability, privacy, and intellectual property.

Key Topics

  • Errors in Numerical Calculations
    SO-1

    This topic covers the sources of errors in numerical calculations, propagation of errors, and a review of Taylor's Theorem.

  • Trial and Error Method
    SO-2

    This topic explains the trial and error method for solving non-linear equations, including its convergence.

  • Half-Interval Method
    SO-3

    This topic covers the half-interval method for solving non-linear equations, including its convergence.

  • Newton's Method
    SO-4

    This topic explains Newton's method for solving non-linear equations, including its convergence and application to calculating multiple roots.

  • Secant Method
    SO-5

    This topic covers the secant method for solving non-linear equations, including its convergence.

Key Topics

  • Agile Development
    AG-1

    Introduction to Agile development, its principles, and benefits. Understanding the Agile mindset and its application in software development.

  • Plan-Driven vs. Agile Development
    AG-2

    Comparing and contrasting plan-driven and Agile development approaches. Understanding the strengths and weaknesses of each approach.

  • Agile Methods
    AG-3

    Overview of popular Agile methods such as Scrum, Kanban, Lean, and Extreme Programming (XP). Understanding the core values and principles of each method.

  • Agile Development Techniques
    AG-4

    Exploring Agile development techniques such as user stories, acceptance testing, continuous integration, and refactoring. Understanding how these techniques support Agile development.

  • Introduction to Agile Project Management
    AG-5

    Understanding the role of project management in Agile development. Introduction to Agile project management frameworks and tools.

Key Topics

  • Concept of User and System Requirements
    RE-01

    Understanding the different types of requirements from the user and system perspective. This topic covers the fundamental concepts of user requirements and system requirements.

  • Functional and Non-Functional Requirements
    RE-02

    Distinguishing between functional requirements that define what the system must do and non-functional requirements that define how the system should perform.

  • Requirements Engineering Process
    RE-03

    The systematic approach to defining, analyzing, documenting, and maintaining requirements throughout the software development lifecycle.

  • Requirements Elicitation
    RE-04

    The process of gathering requirements from stakeholders through various techniques such as interviews, surveys, and observation.

  • Requirements Specification
    RE-05

    Documenting and specifying requirements in a clear, concise, and unambiguous manner to ensure stakeholder understanding.

  • Requirements Validation
    RE-06

    Ensuring that the specified requirements meet the stakeholder needs and are feasible to implement.

  • Requirements Change
    RE-07

    Managing changes to requirements throughout the software development lifecycle to ensure that the system meets the evolving stakeholder needs.

Key Topics

  • Introduction to System Modeling
    SY-01

    Overview of system modeling, its importance, and applications in software engineering.

  • Context Models
    SY-02

    Understanding the context of a system, including its environment, boundaries, and interactions.

  • Interaction Models
    SY-03

    Modeling interactions between systems, including communication, data exchange, and dependencies.

  • Structural Models
    SY-04

    Representing the internal structure of a system, including components, relationships, and architecture.

  • Behavioral Models
    SY-05

    Modeling the behavior of a system, including its dynamics, processes, and responses to stimuli.

  • Model-Driven Architecture
    SY-06

    Using models to drive the design, development, and deployment of software systems.

Key Topics

  • Introduction to Architectural Design
    AR-101

    Overview of architectural design in software engineering, its importance, and role in the software development life cycle.

  • Architectural Design Decisions
    AR-102

    Key considerations and factors that influence architectural design decisions, including functional and non-functional requirements.

  • Architectural Views
    AR-103

    Different perspectives or views of a software system's architecture, including logical, physical, and conceptual views.

  • Architectural Patterns
    AR-104

    Reusable solutions to common architectural design problems, including creational, structural, and behavioral patterns.

  • Application Architectures
    AR-105

    High-level structures of software applications, including monolithic, microservices, and event-driven architectures.

Key Topics

  • Designing Databases
    DE-1

    This topic covers the fundamentals of designing databases, including the relational database model, normalization, and transforming E-R diagrams into relations.

  • Designing Forms and Reports
    DE-2

    This topic focuses on designing forms and reports, including formatting and assessing usability to create effective user interfaces.

  • Designing Interfaces and Dialogues
    DE-3

    This topic explores the design of interfaces and dialogues, including interaction methods and devices, and designing interfaces and dialogues in graphical environments.

  • Implementation Issues
    DE-4

    Addressing common challenges and considerations that arise during the implementation phase of software development.

  • Open-Source Development
    DE-5

    Exploring the principles, benefits, and best practices of open-source software development.

Key Topics

  • Software Project Management
    SO-01

    Overview of software project management, including activities and best practices to ensure successful project delivery.

  • Project Planning
    SO-02

    Detailed planning of software projects, including software pricing, plan-driven development, project scheduling, estimation techniques, and COCOMO cost modeling.

  • Risk Management
    SO-03

    Identifying, assessing, and mitigating risks in software projects to minimize potential threats and ensure successful project delivery.

  • People Management
    SO-04

    Effective management of project team members, including communication, collaboration, and conflict resolution.

  • Reporting and Proposal Writing
    SO-05

    Creating effective reports and proposals to stakeholders, including project status updates, progress reports, and bid proposals.

  • Introduction to Quality Management
    SO-06

    Fundamentals of quality management in software development, including quality assurance, quality control, and quality metrics.

  • Configuration Management
    SO-07

    Managing changes to software configurations, including version control, change control, and release management.

  • User Testing
    SO-08

    Testing techniques and methods used to validate software from the user's perspective.

Key Topics

  • Errors in Numerical Calculations
    SO-1

    This topic covers the sources of errors in numerical calculations, propagation of errors, and a review of Taylor's Theorem.

  • Trial and Error Method
    SO-2

    This topic explains the trial and error method for solving non-linear equations, including its convergence.

  • Half-Interval Method
    SO-3

    This topic covers the half-interval method for solving non-linear equations, including its convergence.

Key Topics

  • Software Project Management
    SO-01

    Overview of software project management, including activities and best practices to ensure successful project delivery.

  • Project Planning
    SO-02

    Detailed planning of software projects, including software pricing, plan-driven development, project scheduling, estimation techniques, and COCOMO cost modeling.

  • Risk Management
    SO-03

    Identifying, assessing, and mitigating risks in software projects to minimize potential threats and ensure successful project delivery.

  • People Management
    SO-04

    Effective management of project team members, including communication, collaboration, and conflict resolution.

  • Reporting and Proposal Writing
    SO-05

    Creating effective reports and proposals to stakeholders, including project status updates, progress reports, and bid proposals.

  • Introduction to Quality Management
    SO-06

    Fundamentals of quality management in software development, including quality assurance, quality control, and quality metrics.

  • Configuration Management
    SO-07

    Managing changes to software configurations, including version control, change control, and release 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.