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