SYSTEMS DEVELOPMENT
Introduction
The development of quality systems in the field of software engineering has been a core driving goal in the previous two decades of system development. Other core qualities that a system must have include maintainability and reusability. The concept of object-oriented system development is helpful in the development of systems that have high levels of maintainability and usability. Languages and development environment that are object-oriented are already effective in ensuring the development such quality systems. The limitations however is that they cannot be used for the development of quality systems on their own, there is need to integrate them with lifecycle model that provides support associated with reusability and the development of maintainable systems. The reusability of components poses the need to initially develop reusable components, which comprises if analysis and design results, and the software components. This implies that a lifecycle model that enhances reusability must support the development of components that can be reused. Open systems that are maintainable poses the need for the systems to have the capacity to adapt to the changing user requirements. This implies that a lifecycle used for the development of open systems has to integrate maintainability as an integral element of the system development process. This paper discusses the views regarding object orientation as a system development approach. In addition, the paper discusses the alternative approaches and how they compare in terms of satisfying the real world business needs.
With the changing business requirements and the need to adapt to the changing business need using minimal costs, object orientation as a model for systems development plays a significant role in meeting this objective. Owing to the fact that the costs associated with the development of robust systems is relatively high, a modular approach to systems development is preferred in such a case, which facilitates the identification and the development of components that can be reused and then integrated in order to develop a robust system. The value of object orientation plays an integral role in the achievement of reusability, extensibility and the capability to be integrated with other external systems. A widely accepted view is that the development of robust and complex systems consumes more time and money. Robust and complex systems usually have a longer lifetime when compared to simple systems. In general, software systems developed for present businesses are complex and subject to change over time. Systems with such characteristics have the capacity of retaining the core business functions. Additionally, they play an integral role in adding the business functions that are needed to adapt to the emerging business needs from time to time. The criteria for ascertaining the quality of systems include easy and cost effective in terms of maintenance because change in the software is unavoidable due to the ever changing business needs; extensibility in the design of the systems in the sense that adding new functionality and integrating with external legacy systems must be easy; and that it must be simple to leverage existing system components and develop a new functionality through their reusability and integration. In the light of this view, it is arguably evident object orientation plays an integral role in the achievement of the criteria need for building quality systems. When applied carefully, object orientation in systems development can be useful in the development of systems that are relatively less complex while still meeting the business requirements. Object orientation also helps in the development of systems that can be maintained easily and are extensible and usable. The principal advantages associated with object orientation in systems development include the encapsulation of data and functions into object classes; the use of same concepts during the phases of analysis, design and implementation; and that database view and application program view usually grow together. It can be summed up that object orientation in systems development is almost fulfilling its objectives including enhancing productivity and reducing the costs associated with maintenance. The only limitation is that it must overcome the barriers associated with the technicality of its nature and organizational barriers. Organizational barriers are mainly due to the absence of effective project management principles. The obstacles associated with object orientation in systems development are already being resolves, this makes the object oriented systems development a perfect alternative for the development of quality systems that can effectively address the ever changing business needs.
Apart from object orientation, there are other alternatives in systems development including Dynamic systems development method (DSDM), Ad-hoc development and the Waterfall Model. Ad-hoc systems development relies on the skills and expertise of the project team members during the process of system development. Ad hoc development is an effective methodology for small projects. However, its process capability cannot be predicted due to the fact that the software process is persistently changed and modified as the system development process continues. There is inconsistency with regard to the schedules, the functionality and the quality of the system. The effectiveness of this systems development approach in meeting the business requirements depends on the individual capabilities. In addition, this methodology is static in meeting the business requirements. The waterfall model is an example of the structured system development and has been criticized as being extremely mechanistic in meeting the business requirements on grounds that it resembles a generic method for systems development. Such a state of affairs posed the need to devise an effective project management approach that can be implemented to address the changing needs and eliminates the linearity and sequential properties of conventional project management in order to ensure that inconsistent business needs are met. Such limitations provided a background framework for the establishment of system development methods that are agile, which are integral in ensuring that the project system development process that ensures the participation of the stakeholders, the use of performance objective metrics, constant feedback and effective controls and planning. Dynamic systems development method (DSDM) is used for determining the requirements for project developments in a manner that embraces flexibility and is highly interactive. Agility during system development is needed in projects that are too complex which ensures that the client understands and specifies the requirements prior to the testing of prototypes. In addition, agile project management is an effective approach is cases characterized by high levels of uncertainty. The core aspects of iterative systems development is simplicity and speed, whereby the development team lays much focus on the functions that are required at firsthand, after which they collect feedback and react in accordance to the collected information. The core characteristics of agile iterative system development are that the process is incremental, cooperative, straightforward and adaptive. Incremental means that the system is developed in rapid cycles; cooperative implies that the client and the development team work closely together and maintain close communication; straightforward means that the project development method used is easy, well documented and can be modified when need arises; while the aspect of adaptive implies that there is capability to make adjustments at the last moment.
Conclusion
A cross analysis of the development methods reveals the four kinds of relations among the systems development process including the unchanging, turbulent, uncertain and the uncertain environment. The waterfall and other structured system development approaches are effective in addressing the business needs of unchanging environment. Adaptive business environments poses the need to use object orientation in systems development, which lays emphasis on the development of reusable, extensible and open systems that can be maintained at a relatively lower cost.
References
Bennett, S., McRobb, S. & Farmer, R., 2010. Object Oriented systems Analysis and design using
UML. 4th ed. Berkshire: McGraw-Hill.
Jacobson, I., Booch, G. & Rumbaugh, J., 1999. The unified Software Development Process. New
York: Addison-Wesley.
Sircar, S., Nerur, S. & Mahapatra, R., 2001. Revolution or evolution? A comparison of object
orineted and structured systems development method. MIS Quartely, 25(4), pp.457-71.
Stapleton, J., 2003. DSDM-Dynamic System Development Method. 2nd ed. New York: Addison
Wesley.