Source: http://www.cs.unc.edu/Courses/comp585-s15/DesignDocTemplate.pdf