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.


