Copies of this book may be redistributed, verbatim, and for non-commercial purposes. The license for this book is by-nc-nd license. As software is becoming increasingly complex, the process of creating software is becoming more complex too. Today’s software uses various languages, requires various compilers, and the input data is spread into many files. Software is now used to express the process