Abstract
Abstract Developer Center
docs.aasii.org

Design Background

From ADC

XPCOM

XPCOM provides framework to decouple classes implementing Abstract Factory design pattern. All implementation details of XPCOM components are hidden below XPIDL (Cross Platform Interface Definition Language) interfaces. Interfaces are translated to C++ virtual classes with no data members and only pure virtual member functions. In addition to C++, XPCOM components may be implemented in JavaScript, Python or Java.

See mozilla.org for more details.

XUL

XUL stands for XML User Interface Language. It allows for application UI design at the speed of web-design. And it requires similar skills.

There is a number of resource on XUL, among which Nigel McFarlane's Rapid Application Development with Mozilla I like most.

See mozilla.org for more details.

Extreme Programming

Abstract is developed in eXtreme Programming style. If you need to glance at it use wikipedia link. I recommend Ken Auer's and Roy Miller's book "Extreme Programming Applied: Playing To Win", if need to learn more.