Event-based programming is the next logical step in component-based development, making components more reusable due to their decoupled nature. Event-based systems are easier to develop, making them cheaper and more reliable than traditional OOP or CBD systems. This book shows how to develop software based on parts that interact primarily through an event mechanism. The book shows how to use events in all sorts of situations, to solve recurring development problems without incurring coupling. A novel form of software diagram is introduced, called Signal Wiring Diagram. These diagrams are similar to the circuit diagrams used by hardware designers. A series of case studies concludes the book, bringing all the next concepts introduced together.