In addition to developing software applications, software engineers select and track the processes that will be used throughout the development of an application. They apply statistical process control techniques to plan the project, estimate risk, and refine the process. Students studying software engineering complete a core of computer science courses to ensure they have solid software development skills. Specialized courses in the software engineering track include technical writing, formal methods, and statistics in addition to advanced computer science courses.