Programming code abstract technology background of software deve