A set of computer science activities dedicated to the process of creating, designing, deploying and supporting software.