The prime objective of Systems analysis and design regardless of whether it uses a traditional approach or object-oriented approach is to develop an effective Information System to address specific organizational needs and support its business functions or processes to increase the productivity, deliver quality products and services, maintain customer loyalty and make sound decisions.(Shelly et al. 2007) Such an Information system can be developed only with proper planning, analysis, design and implementation. This process is termed as Systems Development Life Cycle (SDLC). There are four categories of Information systems and they are: Transaction Processing systems, Management Information Systems, Decision support systems and Expert systems. (Valacich et al.2001) Systems analyst has to determine the category of the system required to be developed and then follow suitable methodologies, tools and techniques for developing the required Information System. These development methodologies are categorized into process-centred, data-centred and object-oriented by looking at whether they focus on business processes or on the data that supports the business. (Dennis & Wixom 2000)
Shelly et al. (2007) referred that structured analysis is traditional and is the most popular systems development technique that is process-centred and focuses on the processes that transform data into useful information. It is a step by step top-down approach to Systems Development Life Cycle that moves logically from one phase to the other. Dennis & Wixom (2000) quoted that Object-oriented methodology is a newer approach preferred by many analysts that balances the focus between processes and data by combining them into things called objects. It is a bottom-up approach that modularizes a complex system into smaller and more manageable individual components and combines them back together to form a complete system.
This essay describes the structured and object-oriented methodologies of Information Systems development, compares them and brings out the conceptual differences of both approaches. It explains where each of the methodologies is effective and appropriate and their merits and the pitfalls associated with both methodologies.
According to Shelly et al. (2007) structured analysis is a traditional systems development technique that adopts formal step-by-step approach to SDLC. In the first and foremost phase of planning, the business case is analysed with SWOT (Strengths, weaknesses, opportunities and threats) analysis and the problem is understood. Then the scope of the project is defined and the constraints on the system are identified. After performing fact-finding, the feasibility of the project is evaluated and its development time as well as cost is estimated. At last, final results and recommendations using the traditional approach are presented to the management. In the analysis phase requirements modelling, data and process modelling and consideration of development strategies are the main activities to be performed. Requirements modelling again involves fact-finding to describe the current system and identify the requirements for the new system. Systems data and processes are represented graphically in data and process modelling. A logical model is developed in data and process modelling that shows what the system must do, regardless of how it will be implemented physically. Many graphical techniques are used to describe the Information system. Data flow diagrams help in creating visual model of the Information system. These DFD’s are documented separately in a data dictionary, which is the second component of structured analysis. Development of new system typically follows one of the three main paths: in-house development, purchase of a software package with possible modification, or use of outside consultants. After thorough and accurate systems analysis, a System Requirements document is drafted, which is an overall design for the new system. The third phase of SDLC takes care of output, input and user-interface design issues and finally develops a good design. Later a physical plan is developed for data organization, storage and retrieval. Entity-Relationship diagrams play a major role in data design. To reduce the redundancy and eliminate anomalies normalization process is adopted and the relations are developed as a part of database design. Then the overall system architecture has to be determined to translate the logical design of an Information system into a physical structure. These hardware, software, network support, processing methods and security aspects are mentioned in system design specifications document. In the final phase of implementation, the real application development, testing, documentation, training, data conversion, system changeover and post-implementation evaluation of results are taken care of.
Whitten et al. (2001) stated that Object oriented system analysis and design methods represent the cutting edge of model-driven systems development. They accelerate the productivity and improve quality of systems development, enhancement and maintenance. Rob (2006) in his journal article specified that SDLC consists of a progressively developing representation of objects through analysis, design and implementation phases. In each phase the developers move through the activities of gathering requirements, analysing them, designing the system, implementing the design and testing the system. Thus this approach can be considered two-dimensional. Whitten et al. (2001) in their system analysis and design methods explained that in the analysis phase, a real world application model is developed with the help of use-case modelling and UML diagramming techniques are used to analyse the functional requirements and behaviour of the system. OOA techniques are used to study the possibility of reusing existing objects and to define new or modified objects to combine them with the existing ones to develop a useful business application. In the design phase, the analysis model is refined and updated to suit the implementation. Many technical details are added to the analysis model in this stage. UML defines a set of nine object diagramming techniques throughout all the phases of SDLC (Dennis & Wixom 2000). The building blocks of UML are Use-cases which are small logical pieces of the system. Use-case, object, class, sequence, collaboration, state-chart and activity diagrams are used in the analysis and design phases. Component and deployment diagrams are used in the architectural analysis, design and implementation phases. According to Whitten et al. (2001) as a first step in this approach, the business objects are identified with the help of use case modelling and the system functionalities are modelled. After identifying the objects, they are categorized into classes and the relationships between those object classes are depicted in the class diagram. For better understanding of the system structure, actual object instances are modelled showing the current values of the instance’s attributes in object diagrams. The sequence of interaction between objects by transmitting messages is depicted in sequence diagrams. Other type of diagrams called collaboration diagrams represents the interaction between objects in a network format. They do not focus on the sequence. The dynamic behaviour of objects is modelled in state diagrams. They also illustrate the events that cause the transition of states and life cycle. Activity diagrams are used to model actions that will be performed when an operation is executing and also the results. The physical architecture of the system is depicted in component diagrams that show how the program code is divided into modules. Deployment diagram describes physical architecture such as hardware, software, processors and devices used in the system architecture. However, in each increment, activities of one phase predominate over the others- causing the systems development process to move round about the phases. This is an iterative and incremental approach based on the concept of identifying the objects that exist within a system’s environment, their attributes, associated behaviour and associations that support the business requirements (Whitten et al. 2001). The system development is modularized, leading to creation of reusable components that can serve as starting points for other projects which saves time and effort.
As discussed earlier traditional approach is a step-by-step top down process whereas the object-oriented approach is a bottom-up procedure adopted for Information Systems development. The former approach develops the system from the scratch whereas the later thinks about the reusability of existing code components, development of new components and their integration depending upon the requirement. Visualisation of information system with the aid of case tools is common for both the approaches but of course the diagramming techniques differ. The former involves Data Flow diagrams in three levels and Entity-Relationship diagrams in design phase but the later takes the help of UML (unified modelling language) diagramming techniques for visualizing and documenting the information system in different stages as discussed above. Dennis & Wixom (2000) argued that the traditional approach focuses on the data and processes separately whereas the OOA balances the focus between data and processes with real world representation. Shelly et al.(2007) in their text book refer that there is an end product document after each phase of SDLC in structured approach but OOA produce no such specific document except for the object model after the analysis. The application is developed with the help of structure charts, flow charts and pseudocode and finally this pseudocode is converted into program by using procedure oriented programming languages in the former. No structure charts are required OO approach since the relationship between the objects already exists and object interaction is defined during analysis process itself. Necessary revisions are made to the earlier developed class, sequence, state transition and activity diagrams. Polymorphism, inheritance, encapsulation and dynamic binding are the concepts that are unique to Object-oriented approach, making it much more effective and efficient. But the processes in the structured analysis method do not have these concepts and the data flow is not monitored thus leading to insecurity.
Mostafavi (1998) in his recent study on the performance effects of applying design patterns to a telecom system discussed that in procedure oriented or structured approach a problem is divided in terms of its functionality and procedures which never change when a program runs. The entire focus of this approach is on how to do rather than what to do. Not only in the phase of implementation where the design is implemented using procedure oriented programming languages but even in the earlier phases of systems development life cycle, while analysing the system to develop a logical model, the emphasis was on processes that transform the data and produce required results. It is explained that the functionality of the system is visualized with data flow diagrams in different levels with levelling and balancing techniques (Shelly et al. 2007). During this process of decomposition, analysts must work through many levels to identify the primitive functions or procedures and the system complexity increases with increasing number of processes, data stores and data flows. The same pattern is followed during implementation phase while developing the program code with the help of procedure oriented programming languages like COBOL, Lisp, Pascal, C etc., where the functions are the prime focus. The entire program is split into more manageable components and then a number of data structures are designed to hold the data and finally multiple functions are implemented to operate on this data (Mostafavi 1998). These changes brought about by the functions on the data structures are complex and difficult to understand. Also it is difficult to trace the functions that modify the data in the case of complex systems. Once a system is implemented, making some enhancements to an existing system is difficult because the new procedures drafted for this purpose has to work along with the existing ones and obviously deal with the data flows leading to adverse affects in the system performance in some cases. These disadvantages of structured approach to Information systems development are addressed by object-oriented approach which emphasize on what to do rather than how to do, by shifting the focus of modelling from solution area towards the problem area. It can be stated that the traditional techno-centric view is replaced with anthropocentric view (Oestereich 20002).
Boer (1999) referred that traditional solutions do not go in-line with rapid evolution of game development techniques because of some pitfalls associated with procedural programming. In this procedural programming data is considered distinct from the code that operates on the data. Thus there is every chance for that data to get modified by numerous code modules. As the number of data and code modules increases in the project, they become more interdependent and this dependency leads to code cohesion which makes it difficult to alter a single component without affecting the others. Due to lack of flexibility, the entire system has to be redesigned or discarded in such situations. Such critical situations are unavoidable in one stage or the other because it is not possible to anticipate the future requirements to the degree that it will never need to be redesigned. But developers can avoid them at the fundamental level and increase the lifespan of the code. This goal is achieved by using reusable components of cod that encapsulate both data and code to manipulate that data together into things called objects.
Rob (2006) argued that there are some pitfalls associated with OOAD. In this approach there is no single storage or repository to hold all the details of inputs, outputs, processes and datastores together. However, in structured approach, there is a data dictionary to serve the purpose. He also argued that even though the very thinking of object-oriented approach differs from the structured analysis right from the initial phases of systems development, final implementation phase of object-oriented approach uses relational database but not the object-oriented database to model the system. In this way the relational database model is proven appropriate and implementation of the system finally has to use traditional method, regardless of the method it has been developed.
After numerous references and extensive research, it can be concluded that selection of an approach for Information systems development depends upon the economic, legal, social and physical environments (Kendall & Kendall 2006) and the effectiveness of a development methodology depends on its ability to support the decision making process (Sim 1996). Merits and demerits are associated with each of the approaches in various stages of development but it is the role of systems analysts to decide which approach suits the current business requirement scenario and wisely make the decision. Traditional approach is application specific, time tested and easy to understand whereas object approach is flexible, efficient and easily transformable into programming language code. According to Valacich et al. (2001) various concepts associated with OOAD provides several benefits including improved communication among users, analysts, designers and programmers as well as the reusability of results in analysis, design and programming stages. This approach facilitates logical, rapid and fast paced system development meeting the changing business requirements scenario.
Boer, J 1999, ‘Making a break from fragile code design’, Game Developer, vol. 6, Iss. 12, pp 56-62, (Online ProQuest).
Dennis, A & Wixom, BH 2000, Systems analysis and design: an applied approach, John Wiley & Sons, New York.
Kendall, KE & Kendall, JE 2006, Systems analysis and design, 7th edn, Prentice Hall, New Jersey.
Mostafavi, H 1998, ‘performance effects of applying design patterns to a telecommunication system ’, (Online ProQuest).
Oestereich, B 2002, Developing software with UML, 2nd edn, Addison-Wesley, London.
Rob, MA 2006, ‘Dilemma between the structured and object-oriented approaches to systems analysis and design’, The journal of computer information systems, Vol.46, Iss.3, pp 32-43, (Online ProQuest).
Shelly, G, Chasman, T & Rosenblatt, H 2007, Systems analysis and design, 7th edn, Thomson Course Technology, Boston.
Sim, ER 1996, ‘An investigation into the effectiveness of object-oriented analysis’, (Online ProQuest).
Valacich, JS, George, JF & Hoffer, JA 2001, Essentials of Systems analysis and design, 2nd edn, Prentice Hall, New Jersey.
Whitten, JL, Bentley, LD & Dittman, KC 2001, Systems analysis and design methods, 5th edn, McGraw-Hill & Irwin, Boston.