Written by four experienced Nokia Telecommunications software developers, this practical book focuses on object-based and component-based software development. The authors concentrate on the most important issues in real-life software development, such as the development process itself, software architecture, the development of user interfaces, data management, and the development of large commercial software products. They illustrate the presented practices by means of the Unified Modeling Language (UML).
Most modern software systems are interactive by nature. Systems communicate with a variety of external elements, such as end users, databases, printers, networks, and sensors. These entities communicate with the software systems by sending and receiving various types of events. Events emerge randomly and the systems must always be ready to handle them. The majority of software systems are thus event-driven. Communication is flexible; it is the interaction among these entities that typically is the most critical element of a system. Thus, software systems must handle events coming from various sources, and the main concern of software developers is developing applications that provide smooth communication with the outside world.
On the other hand, systems are just tools for end users. End users perform certain tasks with a system. The primary goal of the end user, for example, is to write a letter, to finalize the balance sheet of a company, or to send an e-mail. Thus, although events come from various sources and a system must respond to them, it is the end users who typically are in charge. The most important task of almost any system is to serve the end users. In this respect, the main concern of a software developer is to develop applications that provide the best possible support for the needs of end users.