Introduction
In the current developed world, Object Oriented (OO) system development approach has attracted a lot of attention. Many software development companies have shifted their attention to graduates with knowledge on Object Oriented development. This change has also taken effect and is largely being implemented in the System Analysis and Development texts, which are increasingly adapting Object Oriented approach as well as the Unified Process of system development (Rob, 2011, p.2). While this seems to be the issue, traditional approaches are not being left being since they have managed to outline the necessary processes including phases and activities, which have led to successful development of information systems.
The argument, however, is that Object Oriented approach is more intuitive, which means its application results in more robust systems and that it is, as a result, becoming increasingly influential on system development. Despite this argument, opponents of this approach still continue to advocate for traditional approach, their argument being that they still play an essential role in the current database driven information world. According to Rob (2011, p.2), System Development Lifecycle (SDLC) has managed to outline the required processes including a number of phases and activities required to successfully develop an information system.
However, the text used for System Analysis and Design (SAD) in a structured approach mostly known as Waterfall model, which has seen some of its texts adopting OO models and techniques. Despite its speedy development and integration into system development, Fichman and Kemerer (1992, p.22) argue that, OO approach to system development concepts go back decades ago, and that it is recently that this programming method has began to emerge. With many programmers currently adapting to this programming method, the question that most scholars are asking themselves is: “why has object orient approach to system development surpassed other methods?” What are the alternatives to this system development method?
This means there is still concerns as to whether object oriented approach to system development represents a radical change over traditional methods like structured approaches. This paper aims at providing real answers to these questions as well as trying to find out how alternative methods compare to OO approach as far as satisfying real world business needs is concerned.
The Value of Object Oriented as a System Development Approach
Booch (1986, p.211) referred to Rentsch’s prediction, which suggested that; object oriented approach was going to be, in 1980s, what structured programming was in 1970s. In this prediction, Rentsch asserted that; object oriented is an approach used in software development, in which the decomposition of the system is based on the concept of an object (Booch, 1986, p.211). To make this system development approach to seem sensible, Booch (1986, p.211) defined an object as an entity with behavior being characterized by the actions that the entity suffers and that it requires of other objects.
With the current shift from structured approach to object oriented approach, it is proper to ascertain that, Rentch’s prediction has come true. Not only has it taken the world of programmers by storm, but according to Shah and Martin (2011), object oriented development approach is being touted as advancement in next generation software engineering. The reason why some developers are still holding onto traditional approached is because they do not understand the value of object oriented programming. As Shah and Martin assert, OO approach to system development helps to reduce both time and resources, which are required to maintain an existing application.
Code reuse, which emerges as one of the benefits of adopting OO approach appears to be one of the reasons why many program developers are switching from traditional methods to object oriented approach. Code reuse provides a competitive advantage to institutions that have adopted object oriented approach to system development. Object oriented approach is valuable because it encompasses many novel concepts, with some people calling it a new paradigm for software development. To better understand the values of object oriented approach, Yourdon divided a number of object oriented approached into two camps, which are revolutionaries and synthesists (Fichman and Kemerer, 1992, p.22).
According to revolutionaries, object oriented approach is a radical change, which has given birth to conventional techniques and means of thinking about design obsolete (Fichman and Kemerer, 1992, p.22). On the other hand, synthesists view object oriented approach simply as an accumulation of software engineering principles that are sound and one that adopters are capable of grafting onto their existing methodologies with ease (Fichman and Kemerer, 1992, p.22). While both sides view object oriented approach differently, their views tries to provide the value of object oriented approach.
Considering the revolutionaries side, Booch provides that, there is no doubt that object oriented approach is different from traditional structured approaches (Shah and Martin, 2011). OO approach requires a system developer to think in a different way about various aspects of system development. A developer needs to think differently about decomposition, not forgetting that it has the ability to produce software architectures, which are largely outside the realm of the structured design culture (Fichman and Kemerer, 1992, p.22). On the other hand, synthesists provides that; object oriented approach is vitally an elaboration of structured approach.
In this argument, synthesists argue that, OO approach’s foundation is in structured approach, and that structured approach incorporates the most approaches that are necessary for OO approach (Fichman and Kemerer, 1992, p.22). In that case, the value of object oriented approach is more realized on revolutionaries’ side than the synthesists side. Object oriented programming is being touted as a revolutionary approach, which is a complete break with the past. What makes object oriented approach more valuable in system development world include the following:
- Faster development: OO approach has long been publicized as the leading system development approach when it comes to faster development of systems. Claims are that; this method reduces development time due to the use of objects and classes.
- Reuse of code: this is the benefit that has been cited by most scholars, and particularly in business periodicals. Procedures used in OO approach can be implemented in another, thus making it easy to create new programs.
- Quality increment: code reuse has been argued to increase the quality of programs developed using this approach. For instance, if 90% of new applications consists of components that already exist, then the program will only text 10% of the code, which has been written from scratch (Shah and Martin, 2011).
- Modular architecture: OO approach provides a natural structure for its modular design. The structure consists of objects, frameworks, subsystems and many more. Also, it is essential to ascertain that OO approach is easier to modify. Systems developed using this approach can be altered in various ways without breaking up considering that their changes are neatly encapsulated (Shah and Martin, 2011).
Despite these values, it is argued that most of them have been exaggerated. For instance, faster development, which includes reduction of time, has been overstated. On the other hand, code reuse is not a concept that is easy to implement. This concept requires a lot of planning and investment. The best thing about this approach is that it considers every concept of the program. If we consider a control cruise program developed using this OO approach, the following diagram shows all the objects and sub objects.
Alternative Approaches and how they compare in terms of Satisfying Real Business Needs
While the value of object oriented approach to system development is real, excessive publicity has brought up expectations that are unrealistic among managers and executives. It is essential to remember that, software developers might miss the subtle regarding the differences between OO approach and alternative approaches. In that case, it is essential to evaluate alternative approaches to OO approach and try to evaluate them on how they satisfy real business needs. However, before we look at the alternatives, it is essential to note that, OO approach and its alternative approaches fall under the same umbrella, which is SDLC (System Development Lifecycle).
- Structured Approach
Structured method has adopted a formal step-by-step approach to the phased and activities required by SDLC (Wang, 2001). Regarding the structured approach, activities of one phase need to be completed before a developer can move to the next phase.
After each phase has been completed, the developer is required to come up with documentation, which is approved by stakeholders before he can move to the next phase. The benefit of a structured approach is its process model, which depicts business processes of the system being developed. Also, this approach has been beneficial regarding its ability to present the tool required to present data flow diagram (DFD) (Booch, 1986, p.213). DFDs and the data dictionary that is associated with them contain data about the system components, which needs to be designed and ultimately be built (Booch, 1986, p.213).
Structured approach is known to satisfy real business needs because of how its construct has been developed. For instance, data stores in structured approach contribute to files and database design. Its input data flows is a significant concept and contributes data entry forms designing while output data flows contributes to designing of statements and reports. It is essential to note that, structured approach is not a new system development approach but part of what researchers and scholars have come to term as traditional approaches.
Comparison between Structured Approach and Object Oriented Approach
According to Sircar, Merur and Mahapatra (2001, p.460), common misunderstanding not only lies with the fact that object oriented approach is the latest approach to system development and also lies with the fact that it is not the right approach for every programmer. According to Fichman and Kemerer (1992, p.23), a company needs to make important assessments before considering the adopting of system development technique. Critics have argued that, while object oriented approach is being touted as the next generation system development technique, this approach is a refinement of some of the best software engineering ideas developed in the past (Booch, 1986, p.213).
Distinguishing between OO approach and structured approach should be done with an understanding that OO approach is based on incremental innovation and its current practices (Booch, 1986, p.213). The other innovation is known as radical innovation, which is mostly associated with structured approach. The difference between incremental and radical innovations is that, incremental innovation arguably introduces extremely little changes to a process that already exists by reinforcing its established competencies of the firm that is adopting it (Booch, 1986, p.213). On the other hand, radical innovations are based on engineering and scientific principles, which are different, while it tries to draw onto new skills and techniques used in problem solving (Rob, 2004, p.278). Consequently, it has been argued that, if OO approach was to be regarded as a radical innovation by most organizations, then the probability of a negative impact on the average adoption rate of the technology will be expected (Rob, 2004, p.278).
A disadvantage of radical change, which is implemented by structured approach, is that, it involves risks and expenses that are greater and requires a management strategy that is different (Rob, 2004, p.278). Many system development firms have already invested heavily on considerable resources on structured approach, which includes training in order of the structured method specifics, automated tools acquisition and analysis of repositories and design models that are accumulated after this approach has been adopted. While this can be used to ascertain the expenses required to adapt to the structured approach, shifting to OO approach will be more costly since it will require more training.
An essential difference between the two system development approaches is the fact that, structured approach bases its concepts around data structures and subroutines while object oriented approach focuses its attention on the actual data. Object oriented approach is more concerned with the required objects and not the actual program.
Conclusion
Although critics have refuted the value of object oriented approach providing that its benefits have been overstated, the fact remains that it is the system development approach that is currently being used. However, it is with no doubt that object oriented approach has its own drawbacks when compared to other system development approaches. For instance, when compared with structured approach, object oriented approach lacks clear cut steps showing movement from analysis to design state. However, its incremental approach is essential since it reduces the amount of time required to test a program and develop it.
Bibliography
Fichman R & Kemerer C, 1992. Object-Oriented and Conventional Analvsis and Design Methodologies. IEEE, 3(6), pp. 22 - 39.
Booch, G., 1986. Object Oriented Development. IEEE, 12(2), pp. 211 - 221.
Rob, M. A., 2004. Issue of structured vs. object oriented methodology of systems analysis and design. Issues in Information Systems, 5(1), pp. 275 - 280.
Shah V & Martin R, 2011. Pitfalls of object oriented development. [Online] Available at: http://www.westga.edu/~bquest/1997/object.html[Accessed 31 12 2012].
Sircar S, Sircar S & Mahapatra R, 2001. Revolution or Evolution? A Comparison of Object-Oriented and Structured Systems Development Methods. MIS Quarterly, 25(4), pp. 457-471.
Wang, J., 2001. Object-Oriented Analysis Methodology. [Online] Available at: http://www.umsl.edu/~sauterv/analysis/488_f01_papers/wang.htm[Accessed 31 12 2012].