There are certain terms (like "a software") that are never used by people who's first language is English. IANAL (I am not a linguist), but I'd consider myself a "descriptivist" when it comes to defining a language. I think that a living language is defined by its usage by native speakers. Forms that are never used by native speakers can be defined as "incorrect". Of course, languages change (especially English), so those forms can and do become incorporated into the language over time. But, as English stands in 2010, "a software" is less correct than simply saying "software".