Page 30 -
P. 30

1.1   Professional software development  13


                                1.1.3 Software engineering and the Web

                                       The development of the World Wide Web has had a profound effect on all of our
                                       lives. Initially, the Web was primarily a universally accessible information store and
                                       it had little effect on software systems. These systems ran on local computers and
                                       were only accessible from within an organization. Around 2000, the Web started to
                                       evolve and more and more functionality was added to browsers. This meant that
                                       web-based systems could be developed where, instead of a special-purpose user
                                       interface, these systems could be accessed using a web browser. This led to the
                                       development of a vast range of new system products that delivered innovative serv-
                                       ices, accessed over the Web. These are often funded by adverts that are displayed on
                                       the user’s screen and do not involve direct payment from users.
                                         As well as these system products, the development of web browsers that could
                                       run small programs and do some local processing led to an evolution in business and
                                       organizational software. Instead of writing software and deploying it on users’ PCs,
                                       the software was deployed on a web server. This made it much cheaper to change
                                       and upgrade the software, as there was no need to install the software on every PC. It
                                       also  reduced  costs,  as  user  interface  development  is  particularly  expensive.
                                       Consequently, wherever it has been possible to do so, many businesses have moved
                                       to web-based interaction with company software systems.
                                         The next stage in the development of web-based systems was the notion of web
                                       services. Web services are software components that deliver specific, useful function-
                                       ality and which are accessed over the Web. Applications are constructed by integrating
                                       these web services, which may be provided by different companies. In principle, this
                                       linking can be dynamic so that an application may use different web services each time
                                       that it is executed. I cover this approach to software development in Chapter 19.
                                         In the last few years, the notion of ‘software as a service’ has been developed. It
                                       has been proposed that software will not normally run on local computers but will
                                       run on ‘computing clouds’ that are accessed over the Internet. If you use a service
                                       such as web-based mail, you are using a cloud-based system. A computing cloud is
                                       a huge number of linked computer systems that is shared by many users. Users do
                                       not buy software but pay according to how much the software is used or are given
                                       free access in return for watching adverts that are displayed on their screen.
                                         The advent of the web, therefore, has led to a significant change in the way that
                                       business software is organized. Before the web, business applications were mostly
                                       monolithic, single programs running on single computers or computer clusters.
                                       Communications were local, within an organization. Now, software is highly distrib-
                                       uted, sometimes across the world. Business applications are not programmed from
                                       scratch but involve extensive reuse of components and programs.
                                         This radical change in software organization has, obviously, led to changes in the
                                       ways that web-based systems are engineered. For example:


                                       1.  Software reuse has become the dominant approach for constructing web-based
                                          systems. When building these systems, you think about how you can assemble
                                          them from pre-existing software components and systems.
   25   26   27   28   29   30   31   32   33   34   35