CAPÍTULO 11: COMPORTAMIENTO DE LOS MATERIALES
3.6 EL MÉTODO DEL ANÁLISIS INCREMENTAL EN PROBLEMAS NO
The main goal of this section is to categorize business process management systems from a software systems point of view into major developments that information systems design underwent in the last decades. Figure 2.1 depicts the first stages in the evolution of information systems. The dates in that figure provide only rough estimates—the respective systems architectures were not uncommon at the dates given.
In the early days of computing, applications were developed from scratch, without taking advantage of prior achievements other than subroutines of fine granularity. Application programmers needed to code basic functionality such as, for instance, access to persistent storage and memory management. Basic functionality needed to be redeveloped in different applications, so that application programming was a costly and inefficient endeavour. As a result of the tight coupling of the programmed assembler code with the hardware, porting an application to a new computer system results in a more or less complete redevelopment.
Operating systems were developed as the first type of subsystem with dedicated responsibilities, realizing separation of operating systems concerns from the application. Operating systems provide programming interfaces to functionality provided by the computer hardware. Applications can implement functionality by using interfaces provided by the operating system, realizing increased efficiency in system development.
Specific properties of the computer hardware could be hidden from the application by the operating system, so that changes in the hardware could be
reflected by a modified implementation of the operating system’s interface, for instance, by developing a new driver for a new hardware device. An operating systems (OS) layer is depicted in Figure 2.1 as the lowest level subsystem.
OS Application 1970 OS GUI DBMS Application OS DBMS Application Database Database t 1980 1990
Fig. 2.1.Early systems achitectures
The next step in the evolution of systems architectures considers the man- agement of data. Before dedicated subsystems for handing data were devel- oped, each application program was responsible for storing its data persis- tently and for retrieving it. Programming interfaces were used to store data. Since the structure of the stored data matches the data structure in the appli- cation program, each change in the data structures of the application results in a change of the data structures in persistent memory, and vice versa. Due to the strong link between the data structures in the application and the data structures in persistent memory, any modification requires implementation or reorganization effort.
Two additional problems are associated with this approach: the design and implementation of data management takes considerable implementation effort because dedicated storage and retrieval functionality need to be implemented in each application. In addition, data consistency issues arise if multiple ap- plications store related data redundantly. In this case, the modification of a data item needs to be realized by a modification of each copy of the data item by different systems, introducing the potential for data inconsistency issues.
To provide a reusable set of functionality and to overcome the data in- consistency problem, database management systems were introduced. Follow- ing early data models, like the hierarchical data model and the network data model, relational databases were developed. Relational database systems allow modification of the structures of the physically stored data without affecting the application programs. This important property is known as physical data independence.
At the same time, logical data independence is covered, i.e., the ability to change the logical organization of the data without the need to change ap- plications. Efficient and convenient access to large amounts of data, declara-
tive query languages, most prominently the Structured Query Language SQL, transaction processing capabilities to cater for concurrent access and recovery from failure situations, security aspects, and many more features are realized in today’s database management systems. Today, relational database systems are an important backbone of modern information systems.
The layering of the subsystem—applications sit on top of database systems that sit on top of operating systems, as shown in Figure 2.1—is simplified. Applications do not only use the functionality provided by the database man- agement system—as the layering might indicate. Applications also directly use functionality provided by the underlying operating system.
The next step in the evolution of information systems is dedicated to graphical user interfaces which were developed to ease human interaction with application systems. Before the advent of graphical user interfaces, users in- teracted with application programs on the basis of mostly textual interfaces that required extensive user training before work could be done efficiently.
Since until then applications covered a comparatively narrow ground and the users of these systems were highly specialized employees, textual or simple graphical interfaces were adequate for most applications. Due to increased functionality of applications and the associated broadening of the competence and skills of the personnel, more elaborate user interfaces were required.
The new role of the employees can be characterized as that of a knowledge worker. Knowledge workers have a large set of capabilities and skills at their disposal, from which they can choose the one that best suits the current task. In order to be effective, knowledge workers require advanced user interfaces to access the required functionality from powerful information systems.
The separation of the business logic covered in applications and the inter- action between the system and the knowledge worker led to the development of graphical user interfaces, which also foster reuse of functionality at the user interface layer. Today, graphical user interfaces are developed using elaborate frameworks, increasing the efficiency of graphical user interface development.