7.1 Introduction Earlier on I indicated that in order for a processor to perform a defined function it needs to be supplied with a list of instructions called a program. In this section I shall explore this idea a little further. Software can be split into two categories, application software and operating systems. Application software is the name given to programs which enable a computer to perform specific tasks. The program that processes the image in the digital camera is one example; a word
6 A look to the future So what will computers do for you next? Perhaps they will be the key to solving transport problems. Driverless cars, controlled by computers, are under development. If these ever come to fruition perhaps they could help to reduce the number of road traffic accidents by automatically reducing their speed when they come too close to another car. Or perhaps journeys could be made faster and less frustrating because cars will use communicating computers to analyse traffic density and move along t
5.2 Electronic kitchen scales A set of electronic kitchen scales is shown in Figure 7. Their basic operation is relatively simple. When they are switched on and, for example, a 500-gram object is placed in the scalepan, the display shows the digits 500 and the letter g. General principles In principle, online shopping is simple and involves the following stages: You find a site that sells what you want (possibly using a search engine, but more frequently going to a site which you know (from personal experience, word of mouth or advertising) sells the desired goods. Having found on the site, you then locate – by searching or browsing – the goods in its online catalogue. You then fill in an online fo Acknowledgements The content acknowledged below is Proprietary (see terms and conditions) and is used under licence. Grateful acknowledgement is made to the following sources for permission to reproduce material within this unit. Figure 6 NanoElectronics Japan Figure 30 The Cottingley Fairies © Science and Society Picture Library 6.4 Pictures It used to be thought that a photograph could provide proof of an event – someone could be caught red-handed by a photograph, as proof of their guilt. ‘The camera never lies’, it was said. If you have a digital camera and have been ‘touching up’ photographs on your home computer you will know that this is far from true now. It is easy to lie with a digital photograph. The idea that the camera never lies has always been a myth, however. As far back as 1917 the photographs of th 6.2 Authority and the variety of information sources Technology has massively increased the number and variety of news sources that we have access to. We still have printed books, magazines and newspapers, while digital techniques have increased the number of broadcast radio and TV channels that we can get. On the Web we have access to online versions of many of these. This allows us access to media that previously would have been inaccessible. With traditional news sources such as these, we have some understanding of the authority that t Acknowledgements Except for third party materials and otherwise stated (see terms and conditions), this content is made available under a Creative Commons Attribution-NonCommercial-ShareAlike 2.0 Licence All materials in this unit are derived from content originated at the Open University. 1. Join the 200,000 students currently st 6.3 Networks of objects No serious program consists of a single object. Instead there will be a network of objects, which collaborate to achieve the functionality of the whole system. Figure 4 shows a network of objects representing a hotel, some guests and some rooms. This sort of diagram is called an object diagram or a snaps 6.1 Modularity and the object-oriented approach In the previous sections we discussed software development processes and the role of modelling. In this section you will meet the main object concepts. Object-oriented programming preceded object-oriented development by many years, and it is where the object concepts originate. Once we have explained these concepts, we shall revisit software development and modelling in object terms. One of the great successes of software engineering over the past 50 years has been the introduction of m 5.1 Domain, specification and design modelling Building quality software is often a complex and lengthy task. Software developers build models that represent what is important, devoid of unnecessary detail. These models help them to deal with the complexity and to understand what is being developed. This is not unlike other forms of design. For instance, when an architect develops model of a house as a set of drawings they will probably show where the walls and windows are and their relative sizes, but not any details about t 2.2 From waterfall to iterative development Historically, the first widely adopted software development process was the waterfall development process (or simply, waterfall). The waterfall process relies on the definition of sequential phases, as shown in Figure 1. Each phase starts only after the previous one has finished; all the analysis i 6.9 Alternatives to the main success scenario If a use case incorporates a scenario that is significantly different from the main success scenario, you may decide to create a new subsidiary use case. There may even be a need to create more than one subsidiary, depending on what happens in different circumstances. For example, when making a reservation in a typical hotel the receptionist would first determine whether the guest was already known to the hotel (among other advantages, this would speed up the reservation process since re-ente 6.5 More about actors In the hotel example, you saw two actors in the use case diagram shown in Figure 3 (reproduced below). Why is the actor Guest associated with the use case for making a reservation but not associated with the use cases for checking in and out? The answer comes from an understanding of what happens when someone, a guest, arrives at a hotel. Hotels are service oriented. That is to say, they offer certain services to their guests with the intention of earning money for the business. A hote 3.1 Distributed objects technology This technology virtually hides the network from the designer and programmer. A distributed object is an object which is resident on one computer and for which methods can be invoked associated with code resident on other computers. A good distributed objects technology should totally hide the underlying communication details from the programmer, for example when a programmer wants to invoke the method 2.4 The message passing idea Figure 1 shows the central idea behind the message passing paradigm. It involves an architecture in which clients and servers communicate using communication lines. In this model, in contrast with the others that are to be presented in this unit, the underlying structure of the network is visible via the communication media used to connect servers and clients and devices such as sockets, ports and server sockets which are involved in the transfer of a message from one computer to another. 2.2 Fixed and adaptive protocols The protocol described above for a simple naming service is an example of a fixed protocol. This is a protocol whose vocabulary is fixed: it is embedded in the client and server's code and data and does not change. An adaptive protocol is one where the protocol changes. A fixed protocol could change over a period of time because the functionality provided by a server changes. However, this change will be over months or years rather than over seconds. There are some instances wher Introduction In this unit I look at a number of different programming and design styles associated with distributed system development. The unit first examines message passing and the role of protocols – both fixed and adaptive protocols. Two styles of message passing are also examined: synchronous and asynchronous message passing. The next part of the unit introduces distributed object technology. Event-based development relies on listener objects listening to events which are propagated along a bus; t Acknowledgements The following material is Proprietary (not subject to Creative Commons) and used under licence (see terms and conditions). Grateful acknowledgement is made to the following for permission to reproduce material: Ince, D. Developing Internet Applications, chapters 1 and 4, published by Pearson Education Limited in collaboration with The Open University, © Pearson Education Limited, 2002, 2003. This publication forms part of an Open University course M360 Developing References
Figures
Author(s):
Author(s):













