Tabular Application Development Talib Damij and Janez Grad University of Ljubljana, Faculty of Economics, 1000 Ljubljana, Slovenia Keywords: MIS, object-oriented methods, systems analysis Edited by: R. Murn Received: January 15, 1996 Revised : July 18, 1996 Accepted : August 22, 1996 The aim of this work is to introduce an effective object-oriented approach which guides the analyst through ali phases ofthe application development and puts the whole process under the complete control of the analyst. Tabular application development is a method which develops the application by crea­ting several tables. It has four phases and introduces a new idea for developement an application. The first phase defines the problem to be solved. The second phase deals with the analysis of the application. The third phase designs the application in detail, and the fourth phase deals with the implementation of the application. Introductio n This work represents an effective approach cal­led tabular application development (TAD). This approach defines an order in which the whole pro­cess of application development is put under the complete control of the analyst. TAD is a new approach, because it introduces a new idea for developing the application by creating several ta­bles. It has four phases. The first phase is the pro­blem definition which identifies the critical success factors, the objectives and the entities of the or­ganization using the factor-objective and entity tables. The second phase is the analysis which defines the actions of the system using the ac­tion table, identifies the application's data struc­tures, develops the object model and analyses the outputs of the application. The third phase is the design which ušes the information gathered in the factor-objective, action, linkage tables and in the. object model to create the application mo­del. This phase also defines the algorithms and generates priority order values. The final phase is implementation which transfers the objects into \ classes and writes a code according to the algori­thms. The first phase of TAD defines the problem to be solved. The best way to do this is to organize interviews with ali users. First we interview the management and then continue with other users. This phase has two steps: the first is to iden­tify the management's critical success factors and objectives, and the second to identify the enteties of the organization. 2 Problem definition This work will treat a simplified example of a sales organization. 2.1 Critical success factors and objectives This step tries to identify the critical success fac­tors and the objectives of management. The ana­lyst may start with the second step if it is not possible to perform this stage. Usually we start the process of interviewing with the top management and continue with the management at lower levels. The purpose of these interviews is to discover the management's expec­tations and to ensure that each of their require­ments and objectives is considered. The management has to define the critical success factors and the objectives of the organi­zation. The analyst will first ask the top manage­ment to determine these factors. In most corpo­rations there are a small number (3-6) of factors which are vital to the success of the organization [Martin, 1982]. When the top management has defined a list of critical success factors and a list of objectives they will be asked to define measu­rements which enable the application to control these factors and objectives. This means that for each critical success factor or objective the mana­gement has to define the information sources and the way in which these sources will be controlled. This process will be repeated with the manage­ment at different levels. The result of these interviews is a list of critical success factors, a list of objectives, their informa­tion sources and the ways in which they will be realized. These results will be collected in a table called the factor-objective table. In the example of a sales organization the fol­lowing success factors are identified: 1. The organization has to assure a 5% growth per year. 2. The tirne from the acceptance of an order to the shipment of the ordered products must not be longer than one day. 3. Customers have to complete their payments in eight days. The management also defines the following three objectives: 1. Permanent profit-making which enables the organization to invest in new technology. 2. Increasing the organization's market. 3. Increasing the organization's export. These critical success factors and objectives are recorded in Table 1, which shows the factor-objective of the sales organization. An asterisk in­dicated in any square (i,j) ,in the factor-objective table means that the source defined in column j must generate information required by the critical success factor or the objective defined in the row i. 2.2 Th e entitie s An entity is any source which is part of the system or is connected with the system by some interac­tion. So, an entity may be a user or any other source which receives an action (event) from the system or sends an action to the system. The management helps in identifying the sy­stem's entities and creating a plan of inteviews with ali users. This plan should be developed in accordance with the hierarchical view of the orga­nization. In this way every user will be consulted and each of his/her requirements or objectives will be registered. Identifving the entities, their requirements and actions will be achieved by developing a table cal­led the entity table. This table is structured as follows: The rows and also the columns of the table represent the entities of the system. Accor­ding to this idea every entity occupies one row and one column of the table. The entity table is developed as a result of the interviews. These interviews should be organi­zed only with the internal users. Internal users inform us about the behaviour of external users and other entities. The internal entity is a part of the system. The external entity is not a part of the system, but it has one or more interactions with the system. To create this table we usually start the process of interviews with the users as they are specified in the rows of the table. So, we start the interviews with the entity defined in the first row, if this entity is an internal user , and then move to the entity defined in the second row. Following this order we continue until we have dealt with ali the rows. Every entity creates a part of the entity table. Let us deal with the entity defined in row i, where i is from 1 up to the number of entities. For this entity we register ali actions using the following rules: 1. The name(s) of the action(s) will be written in square (i,i) if the entity in row i creates some action for its use only. 2. The name(s) of the action (s) will be written in square (i,j) if the entity in row i sends this action to the entity defined in column j . Table 2 illustrates the entities of the sales or­ganization. The analyst identifies five entities. These are Customer, Salesman, Sales Depart­ment, Shipping Department and Accounts De­partment. From the interview with the internal users he found that each Salesman covers a de­termined number of customers. The Salesman visits his Customers from time to tirne and col­lects their orders. The Sales department recei­ Source Manage Factor, Ob j . Order Shipment Invoice Payment ment level Result 1. factor 2. factor 3. factor 1. objective 2. objective 3. objective * * * * * * * * * Top Top Top Top Top Top Report Report Report Report Report Report Table 1: The factor-objective table of the sales organization ves these orders from Salesmen and sends a copy of these documents to the Shipping Department. For this reason he writes ORDER in the squares (1,2), (2,3) and (3,4). Furthermore, he found that the Shipping Department creates a shipment for every order received. One copy of the shipment is sent to the Customer and an other copy to the Accounts Department. So, he registers SHI­PMENT in squares (4,1) and (4,5). Finally he finds that the Accounts Department creates an invoice and sends it to the Customer and then receives a payment from the Customer. For this reason he writes INVOICE in square (5,1) and PAYMENT in square (1,5). Table 2 also shows that the actions in the entity table are numbered as they happened in the real world. The result of the problem definition phase is identifying the strategic or business objectives of the management, the critical success factors of the organization, the system's entities and their acti­ons. Th e analysis This phase in TAD has five steps. The first step deals with the actions of the entities. The second step defines the data structures of the application. The third step identifies the application's objects and their relationships. The fourth step develops the object model. The last step deals with crea­ting the outputs required by the management. is by developing a table called the action table. Creating this table leads to discovery of the whole application system, its subsystems and its actions. The action table is organized as follows: The actions of the system are represented by the rows and the entities are represented by the columns. To create this table we list the actions in the same order as they occur in the real world. So, the first action occurring (event) will be denned in the first row, second action in the second row and so on. For every action denned in row i, where i is from 1 up to the number of actions, we list the entities in the columns and try to link this action with each of these entities. If any connection exi­sts between action i and entity j , where j is from 1 up to the number of internal entities, then an asterisk is written in square (i,j). Table 3 shows the action table of the sales or­ganization. From this table we can see that the complete application system is represented by the whole table. Furthermore any column of the table gives a clear picture of the connections of the en­tity defined in this column and the actions in the rows which are indicated by letters S or T. Letter S indicates a source entity and letter T means a target entity. So, each column represents a deter­mined subsvstem. Every subsystem includes one or more actions. On the other hand every row of the table shows exactly what is happening with the action denned in this row. Hence the Table 3 shows the action table of the sales organization. 3.1 The actions 3.2 Data structures To identify the application's actions let us link The second step of the analysis transforms the every action defined in the entity table with the user's models into stable data structures. This entities of this table. The best way to do this will be achieved by using the normalization te­chnique. The result of this step is a set of nor­malized relations. The following relations are the normalized relations of the šale organization. Entity Customer Customer Salesman 1 ORDER Sales Department Shipping Department Accounts Depatrment 4 PAYMENT Salesman Sales Department Shipping Depatrment Accounts Depatrment 2 SHIPMENT 3 INVOICE ORDER ORDER SHIPMENT Table 2: The entity table of the sales organization Action 1. Order 2. Shipment 3. Invoice 4. Payment Customer SI T S Salesman TI , S2 Sales Department T2, S3 Shipping Department T3 S Accounts Depatrment T S T Table 3: The action table of the sales organization - Order (Order#, Cust# , Date) - Shipment (Ship#, Cust# , Order# , Date) - Invoice (Inv#, Cust# , Ship#, Date, Value) - Payment(Pay#,Cust#,Inv#,Date,Value) - Customer (Cust# , Name, Address) - Product (Product# , description, Priče) - Order-Product (Order#,Product# , Qty) - Ship-Product (Ship#,Product# , Qty) 3.3 The objects The process of identifying the objects has two steps. The first step defines different groups of objects and the second step merges these groups together in a unique group. An object is any thing, real or abstract, about which we store data and those operations that manipulate the data [Martin,1993]. Correspon­ding to this definition and to the TAD methodo­logy we may conclude that an object is any entity, action and data structure about which the user stores information. For this reason we define three groups of objects. The first group is obtained by analyzing the entities which are presented in the entity ta­ble. If the user collects information about any of these entities then we transform this entity into an object. In the example of the sales organization we fo­und five entities (Table 2). These are Customer, Salesman, Sales Department, Shipping Depart­ment d anthe Accounts Department. Further­more, the organization stores information about Customers and Salesmen. So, the first group of objects contains the following two objects: Cu­stomer, Salesman. The second group of objects is gained by trans­forming every action listed in the action table into an object. In our example the action table (Ta­TABULAR APPLICATION DEVELOPMENT ble 3) represents four actions. These actions we transform into objects. For this reason the se­cond group has the following four objects: Order, Shipment, Invoice and Payment. The third group of objects is found by trans­forming the data structures into an objects. In our we have eight data structures defined in 3.2. So, in the third group of objects we define ei­ght objects. These are: Order, Shipment, Invo­ice, Payment, Customer, Product, Order-Product and Ship-Product. The second step of identifying the objects deals with merging these three groups of objects toge­ther. The result of this step is a unique group of objects about which the user wants to store data and operations which manipulate this data. In the example of the sales organization we merge the above defined three groups to a sin­gle group which contains the following objects: Order, Shipment, Invoice, Payment, Customer, Salesman, Product, Order-Product and Ship-Product. 3.4 The object model From the previous step we obtain a set of objects. To develop the object model we need to identify the attributes of these objects, their associations and their operations. So, the process of creating the object model has three steps. The first step deals with analyzing every object and identifying its attributes if these attributes have not yet been identified. In our example we find that the only object which needs further analysis to identifiy its attri­butes is Salesman. The attributes of other objects were defined in 3.2. From the problem defini­tion phase we find that the organization wants to obtain information about the sales realization of every salesman. Moreover we find that every sa­lesman covers a determined number of customers. This means that every customer has a determined salesman. For this reason we connect the object Salesman with attributes such as Identity num­ber and Name. To link the salesman with his customers we extend the object Customer by one attribute, and this is the identity number of the salesman. The second step analyses the associations be­tween the objects. The best way to do this is by developing a table called the linkage table. This Inforraatica 20 (1996) 373-380 377 table is structured as follows: ali objects are re­presented in the rows and also in the columns in the same order. So, every object occupies one row and one column with the same index value. In the linkage table we try to link the objects listed in the rows with the objects listed in the columns. Links existing between objects may be identified successfully by searching for foreign and part keys. To this purpose we create the linkage table by listing the objects defined in the rows. For every object in the row i, where i is from 1 up to m and m is the number of objects, we list ali objects defined in the columns. If object(i) contains a key attribute or part of the key attribute of object(j) in the columns, where j is from 1 up to m, then a letter (K, F or P) will be written in square (i,j). Letter K ( key) means that object (i) and object(j) have a key attribute. Letter F (foreign key) means that object(i) contains a key attribute of object(j). Letter P (part key) means that the key attribute of object(i) is part of the key attri­bute of object (j). For these reasons we may say that: letter K indicates an Isa structure, letter F incadites an Is-associated-with structure and letter P indicates an Is-part-of or Is-asociated-with structure. Table 4 shows the result of implementing this procedure in our example. The third step ušes the information in the lin­kage table to develop the object model of the application and to identify the operations of each object. To do this we create the following proce­dure: for every object(i) defined in the rows of the lin­ kage table, where i = 1 to m if object(i) is not drawn yet then draw object(i), vvrite its attributes and iden­ tify the operations vvhich manipulate its data. for every object(j) in the columns of the linkage table, vvhere j = 1 to m if object(j) is not dravvn yet then draw object(j), vvrite its attributes and identify the operations vvhich manipulate its data. if square(i,j) is not empty then connect object(i) to object(j) add to object(i) the needed operations to manipulate the data of object(j). Implementing the above defined procedure re­sults in the object model listed in Figure 1. Salesman Sman# Sname Salesman operations / \ Customer Cust# Name Address Sman# Customer operations Salesman operations Order Order# Cust# / Date \ Order operations Customer operations / \ Shipment Ship# Cust# Order# Date Shipment operations Customer operations Order operations L / \ / Invoice Inv# Cust# / Ship# S Date Value Invoice operations Customer operations Shipment operations Pavment Pav# Cust# Inv# Date Value Pavment operations Customer operations Invoice operations Order-Product Order# Product# Qty Order-Prod operation: Product operations \/ Product Prod# Description Priče Product operations / ^ Ship-product Ship# Product# Qty Ship-Prod operations Product operations Figur e 1: Th e object model of th e sales organization Order- Ship- Object Order Shipment Invoice Payment Customer Salesman Product Product Prodiict Order F P Shipment F F P Invoice F F Payment F F Customer F Salesman Product P P Order-Prod Ship-Prod Table 4: Linkage table of the sales organization 3.5 The outputs This step deals with analyzing and defining the outputs of the application. We try to find out if the object model defined (Figure 1) enables us to create ali the outputs expected by the manage­ment and other users. In this step we consider particularly the outputs which are required by the critical success factors and the objectives defined in the factor-object ta­ble. If one or more outputs cannot be generated from the existing data, then we have to return to the users for more information to eleminate this incompleteness. This means that we have to re­turn to the problem definition phase for greater clarity and accuracy in the definition of the user's requirements. From this we can conclude that TAD is an ite­rative process. With every new iteration more problems may be solved and clarification achie­ved, and the system made more complete. 4 Th e design This phase has three steps. The first step develops the application model, the second step writes an algorithm for each action and the third step de­fines the order of implementation the application model. 4.1 The application model The first step of the design develops a model of the application using the information existing in the action, and factor-objective tables. According to the action table we may see that the complete application system is represented by the whole table. Each column of this table is occu­pied by an entity, which means that every column represents a subsystem. Each subsystem contains one or more actions which are indicated by the asterisks in this column. For this reason we may say that the action table enables us to create the model of the application with aH its subsystems and actions. The action table is very valuable for determi­ning convenient entity access to the data. So, every entity in any column may access those acti­ons (objects) which are indicated by asterisks in that column. In addition to this, we have to extend the cre­ated model of the application by the required ou­tputs. Information about these outputs is con­tained in the factor-objective table. These ou­tputs are very important to management and may guarantee their support. Figure 2 shows the application model for the sales organization. 4.2 The algorithm The second step of the design deals with creating the data flow diagrams and the algorithms of the application. According to the application model the a'nalyst creates a DFD and writes an algori­thm for every defined action. To do this we use the information existing in the application model, the object model, the factor-objective table and the action table. Sales organization Management Salesman Sales Department Shipping Department Accounts Department Reports Šale realizaton Reports Create Order Reports ReadOrder Create Shipment Reports Read Shipment Create Invoice Create Payment Figure 2: The application model of the sales organization 5 Th e implementation In this phase the analyst converts the objects into classes and the operations into methods. Further­more, we generate a code according to the me­thod specifications and to the defined data flow diagrams and algorithms. The analyst may also define a convenient data access for every user corresponding to informa­tion in the action table and to the model of the application. 6 Conclusion The aim of this work was to introduce an effective object-oriented approach which guides the ana­lyst through ali phases of the application deve­lopment. This approach puts the whole process of application development under the complete con­trol of the analyst. For this reason it is indepen­dent of the analyst and his/her experience. Developing an application using TAD minimi­zes the time needed to complete this process and puts the application under the full control of the developer the whole time. These characteristics to make this approach very acceptable and useful in practice. References [1] T. DAMIJ, An Approach for Information Sy­stems Development. Proceeding of The Interna­tional Conference on Information Systems De­velopment - ISD '94, Methods k Tools & The­ory & Practice, University of Maribor, School of Organizational Scienes, Kranj, 1994, str. 173­ 182. [2] T.DAMIJ, Tabular Based Approach for Sy­stems Development. Proceeding of The Inter­national Conference on Organization and Infor­mation Systems, University of Maribor, School of Organizational Scienes, Kranj, 1995, str. 457­ 461. [3] J. MARTIN, Strategic Data-Planning Metho­dologies. Prentice-Hall, Inc., Englewood Cliffs, New Jersey, 1982. [4] J. MARTIN, Principles of Object-Oriented Analysis and Design. Prentice-Hall, Inc., En­glewood Cliffs, New Jersey, 1993. [5] G. L. SANDERS, Data Modeling. Boyd & Frase Publishing Company, Danvers, 1995. [6] T.W. OLLE et al., Information Systems Design Methodologies: A Comparative Re­view. Elsevier Science Publishers B.V., North-Holland, 1982. [7] J. RUMBAUGH et al., Object-oriented Mode­ling and Design. Prentice-Hall, Inc., Englewood Cliffs, New Jersev, 1991. [8] J. ZUPANČIČ, S. WRYCZA, Information Sy­stems Development. ISD '94, Proceedings The Fourth International Conference, University of Maribor, Slovenia, 1994.