Modify existing software to adapt to new hardware or to improve its performance Design, develop, and modify software systems using scientific analysis and mathematical models to predict and measure outcomes and consequences of design decisions Java development using the Eclipse IDE (Integrated Development Environment)