A model is an abstract representation of a system, constructed to understand the system prior to building or modifying it.
Language for specifying, constructing, visualizing and documenting the software system and its components
Graphical language with sets of rules and semantics (expressed in English, known as object constraint language (OCL)
Viewed as a snapshot of a system’s parameters at rest or at a specific point in time.
Represent the structural or static aspect of a system
UML class diagram – e.g. of static model
Viewed as a collection of procedures or behaviors taken together, reflect the behavior of a system over time
Show how the business objects interact to perform tasks
E.g. UML interaction diagram, activity models
Good models are essential for communication among project teams
Modeling language includes
Model elements – fundamental modeling concepts and semantics
Notation – visual rendering of model elements
Guidelines – expression of usage within the trade
Clarity – Pick out errors and omissions from a graphical or visual representation much better than from listing of codes
Familiarity – more comfortable to work with this type of representation because it is similar to the way the information actually is represented and used by the employees currently working in the problem domain
Maintenance – visual notation can improve the maintainability of a system. .visual identification of locations to be changed and the visual confirmation of those changes will reduce errors.
Simplification – use of a higher level representation generally results in the use of fewer but more general constructs, contributing to simplicity and conceptual understanding.
Primary goals in the design of the UML