UML Modeling, Software Process and Tool
6-8 minutes
Visual Modeling is a way of thinking about problems using models organized around real-world ideas. Models are useful for understanding problems, communicating with everyone involved with the project (customers, domain experts, analysts, designers, etc.),modeling enterprises, preparing documentation, and designing programs and databases. Modeling promotes a better understanding of requirements, cleaner designs, and more maintainable systems.
What is a Model?
Models are abstractions that portray the essentials of a complex problem or structure by filtering out nonessential details, thus making the problem easier to understand.
What is Abstraction?
Abstraction is a fundamental human capability that permits us to deal with complexity. Engineers, artists, and craftsmen have built models for thousands of years to try out designs before executing them. Development of software systems should be no exception. Importance of Modeling Modeling is a proven & well-accepted engineering technique. In building architecture, we develop architectural models of houses & high rises to help visualize the final products. In Unified Modeling Language (UML), a model may be structural, emphasizing the organization of the system or it may be behavioral, emphasizing the dynamics of the system. A model is a simplification of reality, providing blueprints of a system. UML, in specific:
- Permits you to specify the structure or behavior of a system.
- Helps you visualize a system.
- Provides a template that guides you in constructing a system.
- Helps to understand complex system part by part.
- Document the decisions that you have made.
We build a model so that we can better understand the system we are developing. A model may encompass an overview of the system under consideration, as well as detailed planning for system design, implementation, and testing.
Dealing with Complexity with Abstraction and Views
To build complex systems, the developer must abstract different views of the system, build models using precise notations, verify that the models satisfy the requirements of the system, and gradually add detail to transform the models into an implementation.
Different Level of Complexity
We build models of complex systems because we cannot comprehend such systems in their entirety. There are limits to the human capacity to understand complexity. This concept may be seen in the world of architecture.
- If you want to build a shed in your backyard, you can just start building;
- If you want to build a new house, you probably need a blueprint;
- If you are building a skyscraper, you definitely need a blueprint.
The same is true in the world of software. Staring at lines of source code or even analyzing forms in Visual Basic does little to provide the programmer with a global view of a development project. Constructing a model allows the designer to focus on the big picture of how a project’s components interact, without having to get bogged down in the specific details of each component.
Increasing complexity, resulting from a highly competitive and ever-changing business environment, offers unique challenges to system developers. Models help us organize, visualize, understand, and create complex things. They are used to help us meet the challenges of developing software today and in the future.