Application development = documentation processing Software is documented information about activities, that can be transformed into executable computer instructions performing the activities as documented. Common business application development involves several levels of documentation, where IT specialists work together with businessmen to compose the documentation. At the higher levels of development the transformation to the next level is mainly an activity to guide the transition of the documented information from a business oriented approach into a computer oriented one. The documentation producing human brain has to perform the transition and must resolve incompleteness and inconsistencies. The transformation to the lowest level is mainly an automated translation of a programming language into executable code, a series of operations that the computer can perform to accomplish an activity. The objective of this analysis: Look after the best documentation processing techniques that suit application development in assisting the human mind of IT specialists and businessmen.
Some key obstacles in documentation Software developers and businessmen speak different languages It is difficult to document the development process in such a way that both software developers and businessmen can sufficiently comprehend it. Software techniques insufficiently match business approaches Traditional programming languages have severe technical limitations in the way (sub-)activities can communicate with each other. A lack of rigid interconnections between the subsequent levels of documentation As the structure of the documentation is different at each development level, it is hard to almost impossible to maintain relationships, inhibiting thorough verification for completeness and correctness. A program as a list of instructions is an inferior documentation method Reading a sequence of instructions results in a restrictive use of the human brain. Graphical structuring could highly improve the documentation. Dynamic links should improve the access and overview.
Optimize the opportunities of the human brain To improve the efficiency of development: Ease and stimulate the achievements of the brain of everybody involved in the development process The development tool should support this by: structuring natural simplicity attracting attention avoiding distraction suiting the personal needs
Business application development can be enhanced by addressing some main problem areas. + = Two different worlds 1 + 1 = 2 The business world looks at a software application as a logical manipulation of business data, where the computer is replacing the activities of its personnel. In that perception, business information is passing on between (automated) persons and/or departments performing the required sub-activities. Each of them has the necessary knowledge about the data to be manipulated, how to access the data, and how and when to pass on the resulting information. The timing of the (sub-)activities can be very flexible, based on their interdependencies, such as an implicit logical or practical sequence and the availability of the (intermediate) information. Distributed and parallel activities fit together in a natural style. The data manipulation process comes into existence in a natural way. It may grow and change very easily. Unexpected situations are generally resolved rather simply, as the knowledge is nearby. The common software development world looks at an application as a technical process, in line with the way the computer manipulates data. As such, an application consists of an explicitly predetermined sequence of nested (sub-)processes that pass on pieces of data storage containing business data, but also temporary data and other information that may be required to control elements of the process. Execution flow and data flow are intermixed in a rigid pattern, technically related to the procedural type of execution and storage management of the computer system. Distributed and parallel processing require sophisticated technical implementations. The software application should cover all possibilities even the (initially) unexpected, unknown situations from the first moment on. Shortcomings and errors may be difficult and time-consuming to be resolved. to be brought together
Page 5 Can the precise and abstract thinking IT technicians build quality software based on the intricate composition of faintly defined activities of a business world they are not familiar with? Can trade-oriented businessmen verify the correctness of software that is presented to them in computer terminology and technology they are not familiar with?
How tto iimprrove tthe cooperattiion bettween busiiness and applliicattiion devellopmentt? Software development tools should make it possible for businessmen to participate more actively, intensively and vigorously in the development process. This should force them into a position of business designer and controller, at global and specific levels, where deficiencies are not acceptable. Both parties have to share to some extent a common documentation, to clarify the intended and proposed application structures to both, allowing mutual verification. Use a bridging development tool, with a common view but with individualizing faces common types of relationship between activities a common style of decomposition of activities and data
A development tool that suits IT specialists and businessmen A tool that supports the human brain, in line with the way the brain deals with information in the analysis and synthesis steps of both business oriented and IT people. Graphical elements should play a major role, as they express ideas in a more abstract way, reducing the actual need of specific knowledge and they enhance the recognition and the recording in the brain.
A key warning sign on the road to business application development:? Stay as close as possible to the approach of the businessmen. UNEXPECTED SITUATIONS HAVE TO BE EXPECTED ALONG THE WHOLE ROAD
Some differences between the way of thinking about activities in the regular world and in the current IT world A deliberately chosen unrealistic example, to emphasize some of the differences: How do we do the dishes? wash yourself! dry yourself! communicating activities communicating objects a familiar, human style of interacting subdivided activities using a natural flow through of items enabling the subsequent activities controlling the execution sequence in a naturally limited way a style as could be expected in a world of robots, only familiar to trained programmers using a message interface to command the objects to execute activities on themselves controlling the execution sequence stringently as defined by the sequence of the list of messages
wash yourself! Communicating activities or? dry yourself! communicating objects The Object-Oriented development approach is based on communicating objects and Flow-Based Programming is based on communication between activities. But, both have limited, rigid coordination concepts. In real life, coordination is more open-ended. The lack of a flexible coordination of data and activities is a major bottleneck in business application development.
A next step in the humanization of the computer interface? For decades applications have been built using the features of operating systems closely following the Von Neumann computer architecture. Such an application consists of nested modules, each owning the data storage obtained at that level, suiting the (mathematical) function approach. In order to support object-oriented programming, the ownership of the data storage keeping the object data has to be centralized at a high level. The storage management has to be upgraded. The execution management has been upgraded to a more dynamic level. To support coordination-based programming, execution management needs an additional coordination facility to guide the local exchange of data and information and to control the execution sequence. The degree of flexibility that can be provided by the coordination facility will define that gap that may remain between the human brain and the computer.
Decompose + coordinate DIVIDE ET IMPERA divide and rule a well-known historical advise. Although it was intended as a combination of political and military strategy, this maxim is often used as a powerful natural strategy in daily complex situations. Divide complex items such that each part will be easier to comprehend, to describe, to manage. But dividing into parts introduces new load: the coordination of the parts has to be managed. All application development methods use decomposition techniques. But at the various stages they only deal with part of the interrelationships. Different types of charts show a specific type of relationship between items, but only in the program code itself all relationships will be expressed together. The documentation should provide a clear picture, as a structure of building blocks showing all the interrelations between the components. Show how it is divided and how it is being coordinated.