Designing SCADA Application Software: A Practical Approach