Software Engineering

This course introduces the fundamental concepts, methods, tools, and procedures of software engineering. Students will learn software processes, life-cycle models, requirements engineering, software analysis and design, implementation, testing, quality assurance, design patterns, and software project management.

Instructor: Md. Shakil Ahmed

Term: Spring

Software Engineering

CSE 327 · Core Course · 3.0 Credit Hours

This course introduces the fundamental concepts, methods, tools, and procedures of software engineering. Students will learn software processes, life-cycle models, requirements engineering, software analysis and design, implementation, testing, quality assurance, design patterns, and software project management.
Software Engineering Software Processes Agile Development Requirements Engineering UML Software Architecture Design Patterns Software Testing Quality Assurance Project Management

Course Overview

This course provides a comprehensive introduction to software engineering principles, processes, methods, tools, and practices used in the development and maintenance of software systems.

Students will study software life-cycle models, Agile development, requirements engineering, analysis and modeling, architectural design, design patterns, implementation, software testing, quality assurance, maintenance, configuration management, project management, software metrics, and estimation techniques.

Course Learning Outcomes

CLO1 — Software Engineering Fundamentals

Explain fundamental software engineering concepts, software processes, life-cycle models, software architecture, quality, and project management principles.

CLO2 — Software Process and Analysis

Analyze software engineering problems using appropriate software processes, methodologies, tools, and analytical techniques.

CLO3 — Requirements Engineering

Apply requirements elicitation, analysis, specification, validation, and management techniques to software development problems.

CLO4 — Software Design

Design software systems using UML models, architectural principles, modular design, abstraction, and appropriate software design patterns.

CLO5 — Software Implementation

Apply software implementation, reuse, refactoring, and maintainable development practices to construct software solutions.

CLO6 — Testing and Quality Assurance

Apply software testing, verification, validation, quality assurance, software standards, and quality management techniques.

CLO7 — Software Project Management

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

CLO8 — Software Engineering Practice

Apply software engineering principles, methodologies, tools, and techniques to develop effective software solutions for real-world problems.

Prerequisites

  • CSE 317.
  • Basic programming and problem-solving knowledge.
  • Familiarity with fundamental computer science concepts.

Textbooks

  • Primary: Software Engineering by Ian Sommerville, 9th Edition.
  • Primary: 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 Modeling

UML modeling tools, software development environments, documentation tools, and related platforms for software analysis, modeling, and design.

Project and Quality Management

Git, GitHub, project management tools, software testing tools, issue tracking systems, and related platforms for software development and quality management.

Online Resources

Course Information

Attribute Details
Course Code CSE 327
Course Title Software Engineering
Course Type Core Course
Credit Hours 3.0
Academic Term Spring 2026
Instructor Md. Shakil Ahmed

Grading

Assessment Weight
Class Participation and Activity 5%
Assignment / Report and Presentation 10%
Class Tests 15%
Midterm Examination 30%
Final Examination 40%
Total 100%

Course Schedule

Week Topic Description
1 Introduction to Software Engineering Introduction to software, software engineering, software products, essential software attributes, software engineering ethics, legacy software, software process layers, framework activities, and software myths.
2 Software Processes and Process Models Introduction to software processes, process descriptions, plan-driven and Agile processes, Waterfall, V-Model, Incremental, and reuse-oriented software development models.
3 Agile Software Development Software prototyping, Spiral model, Rational Unified Process, Agile principles, Agile modeling, Agile Unified Process, Extreme Programming, refactoring, and pair programming.
4 Requirements Engineering Introduction to requirements engineering, functional and non-functional requirements, requirements documentation, specification, elicitation, analysis, validation, and requirements management.
5 Scenario-Based and Class-Based Modeling Development of Use Case, Activity, and Swim Lane diagrams, along with Class Diagrams, CRC cards, and analysis packages.
6 Behavioral Modeling Introduction to behavioral models including State Diagrams and Sequence Diagrams for representing system behavior and interactions.
7 Architectural Design Introduction to software architectural design, architectural views, architectural patterns, and software architecture principles.
8 Software Design and Design Patterns Study of software design principles, modularity, abstraction, design strategies, and commonly used software design patterns.
9 Software Implementation and Reuse Software implementation practices, component reuse, software development environments, and implementation-related design considerations.
10 Software Testing Introduction to software testing principles, testing strategies, unit testing, integration testing, system testing, and test case development.
11 Software Quality Assurance Software quality concepts, quality assurance activities, verification and validation, software standards, and quality management.
12 Software Maintenance and Evolution Software evolution, maintenance processes, legacy systems, software change, and techniques for maintaining software systems.
13 Software Configuration and Project Management Introduction to software configuration management, version control, project organization, planning, scheduling, and management activities.
14 Software Risk and Project Planning Software project planning, risk management, resource allocation, project scheduling, and software project management techniques.
15 Software Metrics and Estimation Process and product metrics, project metrics, software measurement, software project estimation, resources, and estimation techniques.
16 Brainstorming and Project Development Brainstorming activities, software project development, problem-solving, project discussion, and preparation for the final examination.
17 Case Study and Final Review Comprehensive case studies, problem-solving activities, course review, questions and answers, and preparation for the semester final examination.