Set of programming tools that is used to perform a complex software development task or to create a software product