Advantages And Disadvantages Of UML Notation For Object-Oriented Software Development

Advantage of UML notations

Unified Modeling Language (referred as UML) is a programming languages, which is used for understanding the functional requirements of a project with the help of graphical representation of requirements of project. It is having different diagram for understanding of requirement from different point of view and it is helpful for the designing of a project model. It explains about all the requirements of the system and if there are some issues, it provides solution for those problems.  It is totally object oriented-based approach for handling project management. Object- oriented modeling is the best way to explain requirement of a project (Bruegge, 2008). It is a graphical way to show data flow and control flow of project. Advantages and disadvantages of UML notation for object oriented software development based on UML will discuss in next parts of this report.    

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

UML notations are helping for development of software on the bases of object-oriented approach. In present time, software development is too complex, which is some time project failure, if project requirement is not properly understand by the developer. There are so many inconsistencies in the requirements, which are provided by the clients. Few issues will be avoided using development process, such as development software using notation language, like UML. It is communication between all parts of the development process of that project (Conallen, 2012).

UML is used for visualization, and documenting of software requirements of a project for better understanding. It is like blueprint of project, which covers many things of projects, such as conceptual things, identification of classes, database schema, and reusability of different components of software. Many software production, development and maintenance team is used this standard notation approach (Gomaa, 2011).  

UML is based on the object-oriented modeling. It is a part of system development and UML notations are highly used for object oriented software development. It is like reverse engineering process in which first design different diagrams of the bases of requirements and generates the code from those diagrams, which is useful for changing requirements (Van Lamsweerde, 2009). UML notations are helping to undressing the working process of a system, which is helpful for software development. It is based on the developer that how requirement put in the use case diagrams. Some basic concepts are making it more useful for software development.

UML notations are providing different interfaces for understanding the architecture of the system, which is helpful for the designing diagrams of UML. It is a process of coupling and decoupling of classes of a system. It is a large process for identification of issues in a system. Software development is a process in which objects are required for accessing the classes. Objects are instance of a real entity, and classes are collection of objects (Larman, 2012).      

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

                                                     

                                                                                Source: ( Oliver, 2017)

UML have nine diagrams for understanding project requirements and describing the system in a graphical view. These are the different notations of UML:

Class diagram describes about the relationship and interfaces of different classes of the system. It is helpful for static design of software. As shown in below figure.

Disadvantages of UML notations

                                                       

                                                                 Source: (sparxsystems.com.au, 2018)

Object diagram is providing set of objects and instances from the class diagrams of the system. As shown in below figure.

                                        

                                                                                          Source: Author

Use-case diagram are showing relationships of use cases and actors, which are used for system. It is useful for understanding behavior of a system. As shown in below figure.

                                 

                                                                     Source: (sparxsystems.com.au, 2018)

Sequence and collaboration diagrams are helpful for describing interaction between the object. Sequence diagrams easily converted into collaboration diagram and vice versa. As shown in below figure.

                                   

                                                                                Source: Author

Statechart diagrams are used for viewing dynamic view of the system. It shows transitions, activities, and events of the system in the diagram. As shown in below figure.

                                

                                                                 Source: (sparxsystems.com.au, 2018)

Activity diagrams are a special type of Statechart diagrams and it is used for understanding the concurrent activities in the project. As shown in below figure.

                                    

                                                                                 Source: Author

Component diagrams are used for describing different components of the organization and its dependencies.

                                                      

                                                                                 Source: Author

Deployment diagrams are used for static development of runtime processing of a system. It is helpful for understanding the current system working.

                                                                     

                                                                      Source: (sparxsystems.com.au, 2018)

UML is highly used language for understood platform for software development. It is used for software development, because of its flexibility. It is also good in effective communication about the software architecture (Tsang, et al., 2004). It is not only object-oriented software development approach, but it is also structure application, behavior understanding, and business process too. Biggest advantage of the UML is free tools for processing. It is open source software and it has millions of dollars costing too for more features (Liang, 2003).      

First disadvantage of UML notation is formal notation is not necessary. Anyone can draw a functional diagram using different tools, such as VISIO, power point, and many more. Sometimes, many complexities in the functional requirements of the system confuse the developer. It does not have proper architecture for designing a system in formal way. The biggest disadvantage of UML design is occurring in code generation. It generates the code of the basis of class diagrams. UML is not supporting the validation and verification for the system designing. It is very big disadvantage of the UML (Siau & Lee, 2004).

There are few disadvantages of UML notations for software development. It is a complex process and all the things are very important for designing different UML diagrams. If in starting process any class id=s missing from the class diagram than it create a big issues in the end of the completion of the project. Many projects are failed, because of less understanding of the system requirements. Coupling of all the use cases and actors, and relationship in diagrams is a tough work. Missing information is also creating different issues in a system (Tsang, et al., 2004).   

Conclusion

It is concluded from the previous parts of this report that, UML notation are having so many advantages for system designing. It is a free open source tool for system designing. UML is showing different views from the help of system requirements. It makes different diagrams based on requirement file. UML is helpful for the software development. It uses software requirement for designing use case diagrams. Use case diagrams are helpful for designing class diagrams and class diagrams are easily converted in a code. That code is used for software development. Code generation process is having too many errors, if the classes are not identified properly.

It is also concluded that UML is helping in understanding the system in a graphical view.  There is a high level of complexity in large project designing. However, it is also make easier to found out issues in the system.

Finally, it is concluded that UML notations are having so many benefits for software development, and it is easier to avoid delays and costing of a project.         

References

Oliver, R., 2017. Why the Software Industry Has a Love-Hate Relationship with UML Diagrams. [Online]
Available at: https://creately.com/blog/diagrams/advantages-and-disadvantages-of-uml/
[Accessed 17 November 2018].

Bruegge, B. a. D. A., 2008. Object-Oriented Software Engineering Using UML, Patterns and Java-(Required) (Vol. 2004).. 4 ed. London: Prentice Hall..

Conallen, J., 2012. Building Web applications with UML.. 6 ed. New York: Addison-Wesley Longman Publishing Co., Inc…

Gomaa, H., 2011. Software modeling and design: UML, use cases, patterns, and software architectures.. 2 ed. New York: Cambridge University Press..

Larman, C., 2012. Applying UML and patterns: an introduction to object oriented analysis and design and interative development.. 5 ed. New York: Pearson Education.

Liang, Y., 2003. From use cases to classes: a way of building object model with UML. Information and Software technology, 45(2), pp. 83-93.

Siau, K. & Lee, L., 2004. Are use case and class diagrams complementary in requirements analysis? An experimental study on use case and class diagrams in UML. Requirements engineering, 9(4), pp. 229-237.

sparxsystems.com.au, 2018. Deployment Diagram. [Online]
Available at: https://www.sparxsystems.com.au/enterprise_architect_user_guide/14.0/model_domains/deploymentdiagram.html
[Accessed 22 December 2018].

Tsang, . C. H., Leung, Y. . K. & Lau, C. S., 2004. Object-Oriented Technology. New York: McGraw-Hill.

Van Lamsweerde, A., 2009. Requirements engineering: From system goals to UML models to software (Vol. 10).. 2 ed. Chichester: John Wiley & Sons.