Definition of Software Model
Software Model: “A description (textual or
visual) of any aspect of a software system
such as requirements, architecture,
behavior, deployment: the development
process model, a requirements model,
concurrency model.",,.)
Software Modeling: “The practice of creating
and analyzing software models.” ne again]
Andrew Sutton Kent State University 4Software Modeling
Andrew Sutton
Department of Computer Science
Kent State University
Andrew Sutton Kent State UniversityObject-Oriented Modeling
OO Modeling (in general): starts in late 70's
Typically associated with engineering methodologies
Descriptive (not formal) visual representations of
classes in a software system
During the 80's number of OO modeling languages or
techniques jumps from ~10 to ~50
Modeling Language
Set of elements used to pictorally represent ideas
Andrew Sutton Kent State University 1Definition of Model
“A schematic description of a system, theory,
or phenomenon that accounts for its known
or inferred properties and may be used for
further study of its characteristics: a model
of generative grammar; a model of an
atom; an economic Mode?” wy dictionary com|
Andrew Sutton Kent State University 3Why Do We Model Software?
Several camps in modeling:
Those who use models to communicate about
software
Those who use models to validate software
Those who use models to generate software
Andrew Sutton Kent State UniversityA History of Software Modeling
Pseudo-code: The orginal software model
Has origins in mathematics
Used to informally describe the behavior of
algorithms using code-like constructs
Flowcharts: mid 20" century?
Probably came from the business world
Used to visually model processes, business
logic
Andrew Sutton Kent State UniversityThe Standardization of UML
1997 — Rational proposes UML as a
standard notation to the Object
Management Group, UML 1.1 adopted
2003 — OMG publishes UML 1.5, most
recent “stable” version of UML
2004 — OMG publishes UML 2.0, the newest
version of the standard
Andrew Sutton Kent State UniversityOverview
What is software modeling?
Why do we model software?
Modeling past and present
Modeling in the future
Modeling Tools
Andrew Sutton Kent State UniversityObject Oriented Modeling
OOSE: Jacobson 1992
Describes visual notation for use cases
(requirements modeling)
OOSE is a “use case driven approach” to
engineering
The Booch Method: Booch 1993
Combines different models for logical,
physical, static and dynamic aspects of a
system
Andrew Sutton Kent State University 13The Origins of UML
1994 — Booch, Rumbaugh join Rational,
anounce merging of methodologies at
OOPSLA
1995 — Booch, Rumbaugh publish the
Unified Method at OOPSLA, Jabson joins
Rational
1996 — The “three amigos” rename the
Unified Method to the Unified Modeling
Language
Andrew Sutton Kent State University 14Who Is the OMG?
Object Management Group
Consortium of corporations collaborting on
industry (not ISO) standards.
Responsible for CORBA
Who is involved?
See next slide
Andrew Sutton Kent State University 16Modeling Now and Later
Model Driven Architecture (MDA)
Generate software through models (code
generation, generative programming)
Metamodeling
Define or extend modeling languages for
different purposes
Model transformations, mappings, etc.
Andrew Sutton Kent State University 18Modeling State and Sequence
Statecharts: mid 20" century?
Specification & Description Language (SDL):
1976
Describes state machines, events and
constraints
Used by telecom industry to validate WAN
protocol stacks
Has both textual description language and
visual representations
Andrew Sutton Kent State UniversityOMG Members
Borland
DaimlerChrysler Gentelware
Computer Associates DARPA
EDS Bank of America
Hewlitt Packard France Telecom R&D
Sun Microsystems ie Transportation
oe loneywell
Fujitsu GlaxoSmithKline
Raytheon Oracle
Lockheed Martin Sandia National Laboratories
W3c NATO
Boeing Arizona State University
GNOME Ohio University
Motorola Johns Hopkins University
NEC Syracuse University
Nokia Kings College London
Andrew Sutton Kent State University 17Data Modeling
Various data models: late 60's to early 80's
Network model, file system model, hierarchy
model
Entity-Relation Model: Chen, 1976
Formal definition of entities and relations
Supercedes previous data models
Entity-relation diagrams (ERD)
Andrew Sutton Kent State University 10Object Oriented Modeling
Three personalities
Grady Booch, Ivar Jacobson, James Rumbaugh
Introduce engineering methodology with
software modeling
OMT: Rumbaugh 1991
Provides notation for static and dynamic
software modeling (classes and behaviors)
Andrew Sutton Kent State University 12Examples of Software Models
Development methodologies are models of how
people collaborate to produce software.
A system design is a model of the structure of
classes or modules in a system's
implementation.
A flow chart visually models an algorithm's logic.
Pseudo code textually models an algorithm's logic.
Andrew Sutton Kent State UniversityModeling State and Sequence
Message Sequence Charts (MCS): mid 80's
Describes sequence of state changes and
communications between objects/modules
State machines don't show time ordering
Extended MCS (EMCS) combines SDL, MCS
for more accurate sequence modeling
Andrew Sutton Kent State University