UML – What Are UML Models For?
Question: What Are UML Models For?
Models are used for several purposes
- Different models of a software system may capture requirements about its application domain, the ways users will use it, its breakdown into modules, common patterns used in its construction, and other things. Stakeholders include the architect, analysts, programmers, project manager, customers, end users, and operators.
- A model of a software system helps developers explore several architectures and design solutions easily before writing code. A good modeling language allows the designer to get the overall architecture right before detailed design begins.
- A model of a software system can be used to generate class declarations, procedure bodies, user interfaces, databases, scenarios of legal use, conﬁguration scripts, and lists of race conditions.
- A model of a software system organizes information into several views: static structure, state machines, interactions, requirements, and so on. Each view is a projection of the information in the complete model as selected for a purpose.
- Models of a large software system permit several designs to be proposed and compared. The models are not constructed in full detail, of course, but even a rough model can expose many issues the ﬁnal design must deal with. Modeling permits several designs to be considered, at a small cost of implementing any one design.
- A model of a large software system permits dealing with complexity that is too difﬁcult to deal with directly. A model can abstract to a level that is comprehensible to humans, without getting lost in details. A computer can perform complicated analyses on a model in an effort to ﬁnd possible trouble spots, such as timing errors and resource overruns. A model can determine the potential impact of a change before it is made, by exploring dependencies in the system. A model can also show how to restructure a system to reduce such effects.