UML (Unified Modeling Language) is the language you use to describe the structure and behavior of a software system, and this page is for anyone starting to model an application in MDriven.
UML is a general-purpose modeling language used in software engineering to visualize, specify, and document a system. It was created by Grady Booch, Ivar Jacobson, and James Rumbaugh at Rational Software during 1994–1995, with further development through 1996.
In MDriven, UML is not only documentation. You use UML to create a model of the problem domain: the information the system manages, the rules that apply to it, and the relationships between its concepts. MDriven can execute that model.
What UML helps you describe
A software system has a system gist: the domain-specific ideas and rules that make that system different from other systems. UML gives you a structured, partly visual way to describe that gist.
For example, a library system may need to describe:
- A
Bookwith a title and ISBN. - A
Memberwho can borrow books. - A
Loanthat connects one member to one book and records a loan date. - A rule that a loan must have both a member and a book.
These are domain concepts, not user-interface fashion or the technical framework used to run the application. Describing them explicitly makes the system easier to discuss, maintain, and evolve.
UML in MDriven
MDriven focuses on the information structure of the problem you want to solve. You define classes, attributes, associations, and other model elements in MDriven Designer, then use the model as the basis for the running application.
| UML concept | Meaning | Library example |
|---|---|---|
| Class | A description or blueprint for a kind of object in the domain. | Book, Member, and Loan
|
| Attribute | A named piece of information held by an object. | Book.Title and Loan.LoanDate
|
| Association | A relationship between objects or classes. | A Loan is associated with a Member and a Book.
|
| Class diagram | A UML diagram that shows classes and the relationships between them. | A diagram showing Member, Loan, and Book.
|
A class diagram makes this structure visible. For the library example, you can see that a loan connects a member with a book before you decide how a screen or database query should look.
Why model the system gist
Software work includes more than the domain model. The MDriven training material distinguishes three areas:
- System gist is the domain-specific structure and rules of the system. In the library example, this includes books, members, loans, and how they relate.
- Modernity is the current set of technical tools and strategies used to build software.
- Fashion concerns choices that users or the market find appealing, such as interaction and presentation patterns.
UML is primarily a way to work with system gist. Keep discussions in the right category. If the question is whether a loan may be created without a member, research the library domain and model the rule. If the question is which technical approach to use, evaluate the relevant development practices. If the question is which visual style users prefer, let users or the market guide the decision.
Read Training:Praise to UML for the full explanation of system gist, modernity, and fashion.
Start modeling with UML in MDriven
- Open UML School to learn the main modeling concepts.
- Create or open a model in MDriven Designer.
- Identify the nouns in the domain. For a library, start with
Book,Member, andLoan. - Create a class for each domain concept.
- Add attributes that the system must remember, such as
TitleforBookandLoanDateforLoan. - Add associations to express the domain relationships. For example, connect
Loanto bothMemberandBook. - Review the resulting class diagram with people who know the domain. Ask whether it describes the real business concepts and rules.
Do not start by forcing the domain into a generic list or meta-system structure. Give each problem domain its own explicit UML description so that the model can be understood, maintained, and changed over time.
UML as an executable model
UML is commonly used to reason about, visualize, specify, and document software systems. In MDriven, the model also has a direct role in execution: MDriven Designer works with the modeled information structure, and the wider MDriven ecosystem can run a model through MDrivenServer and Turnkey front ends.
This makes it important that the model represents the domain accurately. A model that only looks plausible as documentation is not enough; it must express the information structure that the application uses.
Learn the notation
Start with class diagrams because they show the concepts, data, and relationships at the center of an information system. Continue with Short introduction to UML – class diagram for a focused introduction, and use UML School for the broader walkthrough.
