Lesson plan /

Lesson Information

Course Credit
Course ECTS Credit
Teaching Language of Instruction İngilizce
Level of Course Bachelor's Degree, TYYÇ: Level 6, EQF-LLL: Level 6, QF-EHEA: First Cycle
Type of Course
Mode of Delivery Face-to-face
Does the course require compulsory or optional work experience?
Course Coordinator Assist. Prof. Dr. HASAN ÇİFCİ
Instructor (s)
Course Assistant

Purpose and Content

The aim of the course Gain a comprehensive understanding of the principles and importance of requirements engineering in the software development process. Develop proficiency in eliciting, analyzing, and documenting software requirements. Learn to ensure the quality, verification, and effective management of software requirements. Acquire knowledge about various requirements engineering tools, frameworks, and best practices. Understand the application of requirements engineering techniques in various project environments, including agile and traditional methodologies.
Course Content This course is crucial for grasping a key phase in the software development lifecycle, focusing on imparting skills and knowledge essential for effectively handling software requirements. It covers foundational concepts, various types of requirements (functional, non-functional, domain-specific), and their impact on software development and quality. Students learn practical techniques for eliciting requirements through interviews, surveys, and observations, coupled with strategies for analyzing and resolving conflicting or ambiguous information. Further, the course provides detailed guidance on documenting requirements, emphasizing clarity and completeness, and explores methods to ensure that these requirements are both feasible and meet stakeholder needs through validation and quality assurance practices. It also delves into the management of requirements, covering version control and change management processes, crucial for adapting to project shifts. In addition to theoretical knowledge, the course emphasizes practical application, showcasing the latest tools and technologies in requirements engineering. It discusses industry best practices, frameworks, and standards, such as IEEE standards, and contrasts requirements engineering approaches in agile versus traditional waterfall project management frameworks. Through case studies, group projects, and discussions, students gain hands-on experience, preparing them for real-world challenges in software development and project management.

Weekly Course Subjects

1Foundations of Requirements Engineering
2Requirements Elicitation
3Requirements Analysis
4Requirements Specification: Writing the Requirements Document
5Requirements Verification and Validation
6Requirements Management
7Good Practices for Requirements Engineering
8Requirements Engineering Frameworks, Templates and Standards
9Tools and Techniques for Requirements Engineering
10Quality Assurance in Requirements Engineering
11Requirements Change Management
12Requirements Tracing, Tracking and Reporting
13Requirements Engineering in Agile Projects
14Term Assignment (SRS) Presentations

Resources

1. ISO/IEC/IEEE 29148-2018. Systems and software engineering - Life cycle processes - Requirements engineering.
2. Claus Pohl, Chris Rupp, “Requirements Engineering Fundamentals”, RockyNook, 2nd Edition.
3. Philip A. Laplante, “Requirements Engineering for Software and Systems”, CRC Press, 3rd Edition.
4. Karl Wiegers, Joy Beatty, “Software Requirements”, Microsoft Press, 3rd Edition.
5. Murali Chemuturi, “Requirements Engineering and Management for Software Development Projects”, Springer.
6. Other selected readings and research papers.