Three Main Aspects That Can Ensure Software Quality