software assessment