CS708 - Software Requirement Engineering
Course Page
Q & A
Course Category: Computer Science/Information Technology
Course Level: Graduate
Credit Hours: 3
Pre-requisites: CS504

Course Synopsis

This is a graduate level course. The course will introduce the basics of requirements engineering. It will discuss the issues, processes, and techniques in requirements engineering. The course will teach different modeling approaches in problem solving. It will introduce advance and potential research topics in requirements engineering.

Course Learning Outcomes

After the completion of this course, student should be able to:
  • Understand the basics of requirements engineering
  • Understand the social, cultural, political, and technical issues in requirements engineering
  • Understand activities in requirements engineering (requirements elicitation, analysis and negotiation, validation, and management)
  • Understand requirements traceability
  • Understand requirements documentation
  • Understand use-case modeling, object-oriented static modeling, functional modeling, and dynamic modeling techniques applicable in requirements engineering
  • Understanding the need for research in selected topics in requirements engineering
  • To know how to apply the learnt concepts, knowledge and techniques to solve real world problems

Course Contents

Introduction to Software Requirements Engineering, Non Functional Requirements, Kinds of Software Requirements, Requirements from the User/Customer’s Perspective, Process Models and Requirement Engineering Process, Actors and Stakeholders in the Requirements Engineering Process, Social and Cultural Issues in Requirements Engineering, Requirements Elicitation - Stages, Basics of Knowledge Acquisition, Knowledge Structuring Techniques, Specific Elicitation Techniques Including: Interviewing, Scenarios, Prototyping and Participant Observation; Requirements Analysis - Incomplete Requirements, Inconsistent Requirements, Analysis Checklists; Requirements Analysis and Negotiation, Requirements Errors - Impact of Requirements Errors, Error Prevention in Requirements, Defect Removal, Requirements Validation, Requirements Management - Stable and Volatile Requirements, Requirements Identification Techniques, Change Management; Requirements Traceability, Prototyping, Writing Requirements, Requirements Document, Quality Attributes of Requirements Document, Use Case Modeling (Case Study: Banking System), Software Modeling, Object-Oriented Modeling Using UML, Object-Oriented Static Modeling (Case Study: Banking System), Functional Modeling (Case Study: Banking System), Dynamic Modeling (Case Study: Banking System), Requirements Engineering for Agile Methods, Requirements Engineering for Web-Based Systems, Requirements Engineering for Product Lines, Requirements Prioritization.

Course Related Links

Good Material provided by University of Kentucky
Requirements Engineering International Doctoral Theses Research link provided by North Carolina State University
Very good course related material provided by Lawrence Chung at The University of Texas at Dallas
Course Instructor

Dr. Ghulam A Farrukh
Ph.D Software Engineering
George Mason University, USA

Customer Oriented Software Quality Assurance by Frank P. Ginac

Inroads to Software Quality by Alka Jarvis and Vern Crandell

Requirements Engineering: Processes and Techniques by Gerald Kotonya and Ian Sommerville

Software Assessments, Benchmarks, and Best Practices by Capers Jones

Software Engineering: A Practitioner’s Approach by Roger S. Pressman

Software Engineering by Ian Sommerville

Software Engineering Quality Practices by Ronald K. Kandt

Software Quality: Analysis and Guidelines for Success by Capers Jones

Software Requirements: Objects, States, and Functions by Alan M. Davis

High Quality Low Cost Software Inspections by Ronald A. Radice