- Full software life-cycle knowledge, participation and support are required, including qualifications engineering, system design, software engineering, unit and integration testing, formal software testing procedures, configuration management, and quality assurance techniques.