On Non-Functional Requirements in Software Engineering