This document provides an overview of requirements engineering for software projects. It discusses eliciting requirements through user scenarios and collaboration. It then gives an example user scenario for a home security system called SafeHome. The document outlines principles for software specifications and representation formats. Finally, it discusses reviewing specifications to ensure completeness, consistency and accuracy.