Software Engineering Laboratory

This laboratory course provides hands-on experience in applying software engineering methods, tools, and techniques to practical software projects. Students will apply software process models, Agile methodologies, requirements engineering, UML modeling, architectural design, software testing, configuration management, project management, software metrics, and estimation techniques to real-world software projects.

Instructor: Md. Shakil Ahmed

Term: Spring

Software Engineering Laboratory

CSE 328 · Laboratory Course · 1.5 Credit Hours

This laboratory course provides hands-on experience in applying software engineering methods, tools, and techniques to practical software projects. Students will apply software process models, Agile methodologies, requirements engineering, UML modeling, architectural design, software testing, configuration management, project management, software metrics, and estimation techniques.
Software Engineering Agile Requirements Engineering UML Software Architecture Design Patterns Software Testing Git & GitHub Project Management Software Metrics

Course Overview

This laboratory course provides hands-on experience in applying software engineering principles and techniques to practical software projects. Students will work with commonly used software engineering tools and development practices to understand how software systems are analyzed, designed, implemented, tested, managed, and evaluated.

The course combines practical laboratory exercises with project-based activities. Students will develop software artifacts, create UML models, practice Agile development, use version control systems, implement software testing strategies, and apply project management and software quality techniques.

Course Learning Outcomes

CLO1 — Software Development Processes

Apply software development process models and Agile methodologies to practical software projects.

CLO2 — Requirements Engineering

Analyze, document, and validate software requirements using appropriate requirements engineering techniques.

CLO3 — UML Modeling and Design

Develop UML models and apply software architecture and design patterns to represent and structure software systems.

CLO4 — Software Implementation

Implement maintainable software systems using systematic development practices, version control, and code quality principles.

CLO5 — Software Testing and Quality

Design and execute software testing activities and apply software quality assurance practices to identify and improve software defects and quality issues.

CLO6 — Software Project Management

Apply configuration management, project planning, software metrics, estimation, scheduling, and project monitoring techniques.

Prerequisites

  • CSE 327: Software Engineering.
  • Basic programming knowledge.
  • Basic understanding of software development processes.
  • Familiarity with object-oriented programming concepts.

Textbooks

  • Primary: Software Engineering by Ian Sommerville, 9th Edition.
  • Reference: Software Engineering: A Practitioner's Approach by Roger S. Pressman.

Reference Books

  • Fundamentals of Software Engineering by R. Mall.
  • An Integrated Approach to Software Engineering by P. Jalote.

Tools and Platforms

Development and Version Control

Visual Studio Code, Git, GitHub, and related development and version control tools for collaborative software development.

Modeling and Testing Tools

UML modeling tools, project management platforms, software testing tools, and related tools for software design, testing, and project management activities.

Online Resources

Course Information

Attribute Details
Course Code CSE 328
Course Title Software Engineering Laboratory
Course Type Laboratory Course
Credit Hours 1.5
Academic Term Spring 2026
Instructor Md. Shakil Ahmed

Grading

Assessment Weight
Class Participation and Lab Activity 5%
Lab Assignments / Reports and Presentation 10%
Class Test / Lab Performance 15%
Midterm Examination / Project Evaluation 30%
Final Examination / Project Evaluation 40%
Total 100%

Course Schedule

Week Topic Description
1 Introduction to Software Engineering Tools Introduction to software engineering laboratory tools, development environments, version control systems, project repositories, and collaborative software development platforms.
2 Software Process Models Practical exploration of software development process models including Waterfall, Incremental, Iterative, and Spiral models and their application to software projects.
3 Agile Software Development Hands-on activities involving Agile principles, Scrum framework, user stories, sprint planning, sprint execution, and Agile project management practices.
4 Requirements Engineering Practical requirements elicitation, analysis, specification, documentation, and validation using appropriate requirements engineering techniques.
5 Use Case and Activity Diagrams Development of UML Use Case and Activity Diagrams to model system functionality, actors, workflows, and business processes.
6 Class and Object Modeling Development of UML Class and Object Diagrams to represent system structure, classes, attributes, methods, objects, and relationships.
7 Behavioral Modeling Creation of UML Sequence and State Diagrams to model system interactions, object behavior, events, and state transitions.
8 Software Architecture and Design Practical application of software architecture principles, architectural styles, modular design, component identification, and system-level design.
9 Software Design Patterns Implementation and application of common software design patterns such as Singleton, Factory, Observer, and Strategy patterns to improve software structure and maintainability.
10 Software Implementation and Version Control Practical software implementation using coding standards, Git-based version control, branching, merging, commit management, and collaborative development practices.
11 Software Testing Practical implementation of unit testing, integration testing, system testing, test case development, test execution, and defect identification.
12 Software Quality Assurance and Metrics Application of software quality assurance practices, software metrics, code quality measures, defect tracking, and quality evaluation techniques.
13 Configuration Management and Project Management Practical configuration management, project planning, task allocation, scheduling, progress tracking, risk management, and project monitoring.
14 Software Estimation and Project Planning Application of software estimation techniques, effort and cost estimation, scheduling, resource planning, and project documentation.
15 Software Project Development Development and integration of the laboratory project using requirements, UML models, software architecture, implementation, version control, and testing practices.
16 Project Evaluation and Problem Solving Project demonstration, software evaluation, problem-solving activities, debugging, documentation review, and preparation for final project assessment.
17 Final Project Evaluation and Review Final project presentation and evaluation, comprehensive review of software engineering laboratory activities, questions and answers, and final assessment preparation.