requirements and specification