Many light curve analysis codes have been written, usually in conjunction with eclipsing light curve code, but the spot algorithms used in some of these will work on ellipsoidal and non-eclipsing systems also. Check out the biblios of R. E. Wilson, Lanza & colleagues at Catania, Vogt at Lick, and Mochnacki at Toronto for the techniques and references. Other work is summarized and cited in Kallrath & Milone (2009). Explicitly non-spherical spots were introduced by Graham Hill in his code.