Object Oriented Analysis And Design: Advantages, Disadvantages, And Comparison With Other Approaches

IMAT5205 Systems Analysis and Design

What is Object-Oriented Analysis and Design method?

For software development projects, most people use a standard process, which is defined as the Systems Development Lifecycle (SDLC). The process of SDLC combines typical steps like planning, analysing, designing and implementation and maintenance of the software (Zykov 2018). However, designing and analysis of the software development are considered as second and third step of the overall process. A detailed analysis has two major steps to follow which are determination of requirements and analysing them. Combining these two steps are important to carry on a careful analysis of the recent situation of the project. After analysis comes the design phase, where the analysis cum software developer designs all the parts of the software and provides specific details of different parts of the system, like input and output process of the system, databases and other details. There are different approaches used for analysis and design process to achieve accuracy. The agile approach of software development utilizes self-adaptive procedure; to do this individual effort is important. Unlike agile method, in waterfall approach the software developer focuses on breaking the overall project in several steps and defines the objective of each process after completing the previous step (Stoica, Mircea and Ghilic-Micu 2013). Unlike all these methods, the object-oriented analysis and design approach utilizes combination of data and processes into the objectives of the software and combines it with iterative development approach of the traditional agile method. This last process is one of the most effective one for software development projects. However, this process has some typical advantages and disadvantages over the traditional approaches to provide the optimal results of software development.

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper

The object-oriented analysis and design process has been divided into two sub-processes to utilize the benefits of the process totally. They are object-oriented analysis and object-oriented design method (Subhan and Bhatti 2015). However, to define the overall process a clear understanding of “Object” in terms of software development is important. In terms of software development, an “Object” can be anything from data models to any variables to a typical function or process of implementation. However, as per the idea of object-oriented analysis and design method, “Object” closely echoes the concept of real world “Object”, which has typical characteristics and states and behaviours.

The object-oriented analysis process is the constant step of analysing the overall process, which analyses the functional necessity of the product while staying independent of any implementation requirements suggested before (Vijayasarathy and Butler 2016). To perform the task in this step, a thorough analysis of the process is performed using the lens of “Object” of the software. Defining every object makes the overall process of analysis more simple and accurate. The overall process of OOA is divided into five sub-parts, which are as follows.

  • Defining the exact objects.
  • Assemble the objects.
  • Defining the relation and interaction of the objects.
  • Defining the external nature of the objects.
  • Defining the internal nature of the objects.

Object-oriented design can be simplified as an extension of the previous sub-process but with a crucial warning of consideration and implementation of restrictions in the process. In this step the developer actually describes how the object is designed and implemented, for which the application of restrictions is important (Pane and Sarno 2015). The list of restrictions includes constraints of hardware and software platforms, time and financial constraints, developer limitations and knowledge and many more. In other words, the object-oriented design process uses the theoretical ideas pointed out during the previous analysis stage and focus on a typical design for developing the software via coding in a specific language and platform, which the developers have settled with. It can be said that object-oriented analysis defines different designs, which can be utilized and object-oriented design is the process to define the most suitable one.

Advantages of Object-Oriented Analysis and Design method

The advantages of Object-Oriented Analysis and Design are as follows.

Save Time On Research and Writing
Hire a Pro to Write You a 100% Plagiarism-Free Paper.
Get My Paper
  • The process of OOAD is easier to understand than traditional methods: As the OOAD is based on the concept of the real world ideology of objects. This is why, the method of Object-Oriented Analysis and Design method is quite understandable for everyone in a team of software developer (Pasupathy and Bhavani 2013). This helps in keeping the overall development life cycle smoother process in case a team needs frequent interaction with their customers and different non-technical users of the software about the components and objectives of the software. In case of this, people will still get to know different system components and objective of the software as they are based on real world object and ideas.
  • The OOAD encourages boxing of the process: as the process of OOAD revolves around the concept of real world “Object”, this process encourages planning and development of part-by-part system, which are independent from each other (Popovic,  Bojic and Korolija 2015). However, all the object-oriented processes, designs developed during the OOAD development cycle of the software development project, can be mixed as per necessity as they are self-contained.

The cons of Object-Oriented Analysis and Design process of the life cycle of software project are as follows:

  • The process of OOAD is quite complicated for any simple applications: For many, this is not a disadvantage for a software development project. However, the concept of object oriented analysis and design is not ideally suitable for simple projects. Most of the developers have their own set of objects and rules for software development (Kumar and Bhatia 2014). In most cases, the developer decides whether the process will be procedural or object oriented approach. However, in most cases simplicity of the needs of the project defines the necessity of structured object oriented approach or procedural approach. However, in most cases, the judgement is typically personal for the developer.
  • The Object Oriented Analysis and Design method is not suitable for any procedural application approach: As the nature of Object, oriented Analysis and Design method is not suitable for procedural programming approach for software development method or non-objective programming methods, so it is not suitable to use OOAD with such programming languages and platforms (Shukla and Marwala 2013). In contradiction to object oriented analysis and design method the procedural language focuses on modularity and scope of the software. This is why, the object oriented analysis and design method is not suitable for procedural language for software designing.

If the traditional approaches are compared with the object oriented analysis and design method, then it is clear that the later one is a two dimensional approach and the first one is the single dimensional approach. In OOAD process all the aspects of the overall process of SDLC are analysed thoroughly under the lens of real world Object to satisfy the requirements of the developer (Batool et al. 2013). In case of a large project this method of approach is quite helpful than traditional waterfall or agile method of approach. However, in practical, a comparison between traditional waterfall, agile and object oriented analysis and design method no single one can be given highest preference. This is because each one of these methods have its own set of advantages and disadvantages. It is the decision of the software developer team solely to choose one of the three approaches.

Conclusion

Different approaches used in SDLC has different advantages of their own. It is solely the decision of the software developer to use one of these. However, the object oriented analysis and design approach of choosing the exact process of software development is quite helpful in exploring all the possibilities of the real world Object of the software and how to design it.  The object oriented analysis and design is a better systematic approach to define any software development project. However, in case of a simple project implementing such a thorough process in unnecessary unless the developer is focusing on the object of the software.

References:

Batool, A., Motla, Y.H., Hamid, B., Asghar, S., Riaz, M., Mukhtar, M. and Ahmed, M., 2013, January. Comparative study of traditional requirement engineering and agile requirement engineering. In Advanced Communication Technology (ICACT), 2013 15th International Conference on(pp. 1006-1014). IEEE.

Kumar, G. and Bhatia, P.K., 2014, February. Comparative analysis of software engineering models from traditional to modern methodologies. In Advanced Computing & Communication Technologies (ACCT), 2014 Fourth International Conference on (pp. 189-196). IEEE.

Pane, E.S. and Sarno, R., 2015. Capability Maturity Model Integration (CMMI) for Optimizing Object-Oriented Analysis and Design (OOAD). Procedia Computer Science, 72, pp.40-48.

Pasupathy, S. and Bhavani, R., 2013. Measuring the Quality of Software through Analytical Design by OOAD Metrics. International Journal of Computer Applications, 63(13).

Popovic, J., Bojic, D. and Korolija, N., 2015. Analysis of task effort estimation accuracy based on use case point size. IET Software, 9(6), pp.166-173.

Shukla, R. and Marwala, T., 2013. Component Based Software Development Using Component Oriented Programming. In Proceedings of International Conference on Advances in Computing (pp. 1125-1133). Springer, New Delhi.

Stoica, M., Mircea, M. and Ghilic-Micu, B., 2013. Software Development: Agile vs. Traditional. Informatica Economica, 17(4).

Subhan, Z. and Bhatti, A.T., 2015. Requirements analysis and design in the context of various software development approaches. International Journal for Research in Applied Science & Engineering, 3, pp.812-820.

 . Choice of software development methodologies: Do organizational, project, and team characteristics matter?. IEEE software, 33(5), pp.86-94.

Zykov, S.V., 2018. Crisis Response and Management. In Encyclopedia of Information Science and Technology, Fourth Edition (pp. 1396-1406). IGI Global.