ScholarGate
Avustaja

Software Modeling and UML

Software modeling represents a system through abstractions that capture its structure and behavior, and the Unified Modeling Language (UML) is the standard graphical notation for expressing such models.

Etsi aihe työkalulla PaperMindTulossaFind papers & topics
Tools & resources
Lataa diat
Learn & explore
VideoTulossa

Definition

Software modeling is the construction of abstract representations of a software system to analyze, design, and communicate it, and UML is a standardized general-purpose modeling language providing a unified set of diagram types for these representations.

Scope

This topic covers structural models such as class, component, and deployment diagrams; behavioral models such as use-case, sequence, activity, and state-machine diagrams; the role of models in analysis, design, and communication; model-driven engineering and code generation; and the appropriate level of modeling rigor for a given project.

Core questions

  • Which aspects of a system are captured by structural versus behavioral models?
  • How do the main UML diagram types represent a design?
  • How much modeling rigor is appropriate for a given project?
  • When is automatic code generation from models worthwhile?

Key theories

Multiple views of a system
A system is modeled from complementary viewpoints — static structure, interactions, state behavior, and deployment — each captured by appropriate diagram types, because no single view conveys all relevant design information.
Model-driven engineering
Models can serve as primary development artifacts from which implementations are partly or wholly generated through transformations, raising the level of abstraction and tying design directly to code.

Clinical relevance

Models make design intent explicit, support analysis before code exists, and provide a shared language across a team; their value depends on using the right amount of modeling, since excessive or stale models impose cost without benefit.

Evidence & guidelines

The OMG UML specification defines the standard notation and semantics, and related OMG standards such as SysML and MOF extend modeling to systems engineering and metamodeling.

History

UML emerged in the mid-1990s from the unification of the Booch, OMT, and Objectory methods, was adopted as an OMG standard in 1997, and evolved through UML 2; model-driven approaches and lightweight sketching coexist with debates over how much formal modeling pays off.

Debates

Heavyweight model-driven development versus lightweight sketching
Whether models should be authoritative artifacts that drive code generation or informal sketches for communication is contested; the model-as-program vision promises consistency, while sketch-oriented use values low overhead and adaptability.

Key figures

  • Grady Booch
  • James Rumbaugh
  • Ivar Jacobson
  • Martin Fowler

Related topics

Seminal works

  • booch2005
  • omg2017uml
  • fowler2003

Frequently asked questions

Is UML still relevant in agile development?
Yes, though often used more lightly. Agile teams tend to use UML diagrams as informal sketches for communicating and reasoning about design rather than as exhaustive specifications, applying just enough modeling to clarify the problem at hand.
Does modeling require UML?
No. UML is the most widely standardized notation, but modeling can use other notations or domain-specific languages; the essential idea is abstraction of structure and behavior, for which UML is one well-supported option.

Methods for this concept

Related concepts