Algebras for Feature-Oriented Software Development