The most basic functions that any grading software needs to have are the ability to add and remove students, add new projects that are to be graded and add their respective grades. It should then be able to perform basic arithmetic to calculate the total grade for each student by averaging all of the inputted grades. Additional functionality is showing an average of all the students' grades, so that they can see where they stand with regards to the rest of the class. A section for adding notes to provide any needed explanations is also helpful.
When they have multiple classes that each have over 30 students, the last thing teachers want to deal with is grading software that is difficult to use. Making the interface as user-friendly as possible by eliminating the need to use any coding languages and enabling the user to simply enter data is ideal. Making all the data values easily visible even in large lists will also help the user manage the grades easier.
Many students like to have periodic progress reports given to them that demonstrate all the projects they've turned in and a current total grade. Adding a presentable format for printing will enable teachers to easily print the grade lists and have them be easy to understand. Titles, headers and subheaders should be in regular English and avoid coding language that the program uses to perform the calculations.
Instead of having all the students' names appear on the list, they should each be given an ID number they can use to see their grade. That way teachers can post the grade list in a classroom freely and discreetly.