Applications of UML
UML (Unified Modeling Language) is very powerful modeling language. We can develop many diagrams using UML and provide users with ready-to-use, expressive modeling examples. UML can be applied in many areas like embedded systems, web applications, commercial applications etc. Some UML tools generate program language code from UML. UML can be used for modeling the whole system independent of platform language. UML is a graphical language for visualizing, specifying, constructing, and documenting information about software-intensive systems. UML gives us a standard way to write a system's view, covering conceptual things such as business processes and system functions, as well as things like classes written in a specific programming language, database schemas, and reusable software components. Because of the large community of software developers it is necessary to understand the importance of modeling, its applications and the use of UML to make the software development process more efficient.
- 1 History
- 2 Areas where UML is effectively used
- 3 Why modeling with UML is used
- 4 Modeling applications of UML using various diagrams
- 5 Web applications
- 6 Embedded systems
- 7 See also
- 8 References
- 9 External links
See Article: Unified Modeling Language (History).
Areas where UML is effectively used
UML has been used effectively in following areas
- Enterprise information systems.
- Banking and financial services.
- Medical electronics.
- Distributed Web-based services.
The UML can also be used to model nonsoftware systems, such as workflow in the legal system, a patient healthcare system, software engineering in aircraft combat systems, and the design of hardware.
Why modeling with UML is used
- Modeling provides structure for problem solving.
- If we model a system, we may find multiple solutions.
- Modeling helps us manage the complexity of systems before actually starting development work.
- With various diagrams from UML we can show clear views of system thus reducing time-to-market for business problem solutions.
- If we model any problem before its development there are fewer chances that our development plan will go wrong, thus decreasing development costs.
- Modeling reduces the risk of mistakes.
Modeling applications of UML using various diagrams
Below is the list of the UML diagrams and a summary of their functionalities to enable understanding of their applications in real life examples.
Structure diagrams and their applications
Structuring diagrams show a view of a system that shows the structure of the objects, including their classifiers, relationships, attributes and operations:
- Class diagram
- Component diagram
- Composite structure diagram
- Deployment diagram: show the static view of deployed system. Below example shows deployed view of system in which user communicates to server through web browser.
Behaviour diagrams and their applications
Behaviour diagrams are used to illustrate the behavior of a system, they are used extensively to describe the functionality of software systems. Few Behaviour diagrams are
Let us take the example of restaurant to understand how UML will be used to implement restaurant system. Here wait staff take order and serve food to patron. Then patron eat food, drink wine and pay bill. In this diagram patron, chef, cashier and wait staff are actors. Using this UML diagram one can understand the working of that restaurant. So Use Case Diagrams from UML are very useful to understand real time systems.
Interaction diagrams and their applications
Interaction diagrams are subset of behaviour diagrams and emphasize the flow of control and data among the things in the system being modelled:
- Communication diagram: Used for showing communication between objects or parts.
- Interaction overview diagram:
- Sequence diagram: used for communication between objects in terms of sequences.
- Timing diagram : a specific type of interaction diagram where the focus is on timing constraints.
- Web applications of UML can be summarized like...
- To model user interfaces of web applications and make the purpose of the website clear.
- Web applications are software-intensive systems and UML is the choice of language for modeling them.
- Minimize software complexity of the web applications using various UML tools.
- Representation of web applications using set of models like use case model, implementation model, deployment model, security model, site map.
- To model Pages, hyper links, and dynamic content on the client and server side.
- For modeling server side aspects of web page with one class and client side aspect with another and distinguishing the two by using UML's extension mechanism to define stereotype's and icons for each server and client page.
- Stereotypes in UML are used to define new semantics for modeling element.
- Forms in HTML can also be modeled using various UML constructs.
- UML can be used to express the execution of the system’s business logic in those Web-specific elements and technologies.
UML-based web engineering aims at offering a UML profile that matches the needs of web development better.
Software in embedded systems design needs to be looked carefully for software specification and analysis. Unified Modeling Language (UML), and a number of extension proposals in the realtime domain can be used for the development of new design flows. UML can be used for specification, design and implementation of modern embedded systems. A specific UML profile, called MARTE for Modeling and Analysis of Real-Time and Embedded systems, provides some extensions dedicated to the domain. UML can be used for modelling the system from functional requirements through executable specifications and for that purpose it is important to be able to model the context for an embedded system – both environmental and user-driven. Some key terms of UML related to embedded systems:
- UML is not a single language, but a set of notations, syntax and semantics to allow the creation of families of languages for particular applications.
- Extension mechanisms in UML like profiles, stereotypes, tags, and constraints can be used for particular applications.
- Use-case modelling to describe system environments, user scenarios, and test cases.
- UML has support for object-oriented system specification, design and modelling.
- Growing interest in UML from the embedded systems and realtime community.
- Support for state-machine semantics which can be used for modelling and synthesis.
- UML supports object-based structural decomposition and refinement.