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