Thursday, November 8, 2007

System Modelling

1. Overview
System modelling is a technique to express, visualise, analyse and transform the architecture of a system. Here,
a system may consist of software components, hardware components, or both and the connections between these
components. A system model is then a skeletal model of the system.
System modelling is intended to assist in developing and maintaining large systems with emphasis on the
construction phase. The idea is to encapsulate complex or changeable aspects of a design inside separate
components with well-defined interfaces indicating how each component interacts with its environment.
Complete systems are then developed by composing these components. System modelling can increase
reliability and reduce development cost by making it easier to build systems, to reuse previous built components
within new systems, to change systems to suit changing requirements such as functional enhancement and
platform changes, and to understand systems. In this way, a system model can satisfy different requirements
such as documenting the system, providing a notation for tools such as consistency checkers and can also be
used in the design stage of system development.
Thus, system modelling is used to ensure that a developing piece of software evolves in a consistent manner
and that the task of integrating software components is simplified.
1.1 Modelling framework and language
For system modelling, we need a conceptual framework and a system modelling language, textual and/or
diagrammatic. Besides textual notations like tables or prose, diagrammatic notations like graphs are common
today. Within these diagrams, there are symbols representing the parts of the system, e.g. objects and groups of
objects, and other symbols visualising the connections between these parts. The number of symbols for each
purpose differs noticeably between notations.
During the past decades four main conceptual frameworks have evolved:
· Design Methods
· Module Interconnection Languages (MILs)
· Software Architectures
· Design Patterns
Design methods focusing on program language modules date back to the early seventies; modelling systems
with objects is a technique of the late eighties. The first MIL was presented 1975, and in the following years a
lot of different MILs have been developed. In contrast, software architectures and design patterns are more
recent techniques and are each only about five years old.
1.2 Design methods
Design methods consist of a concept, a language, and a design process. The concept defines which parts of the
program are to be represented by the components of the system model. The language is used to describe the
system model. To carry out the design of the system according to the software lifecycle or a part of it, a step-bystep
process is given to be followed by the designer.
When modelling a system with a modular design method, program modules are used as the components of
which the system is composed. Modules include related functions of a specific program language and may keep
the data used by these functions. Further, a module offers an interface with the functions that may be used from
this module.
An interrelationship between two modules is established by a function contained in one module calling a
function contained in an other. Thus, this modelling method describes systems in terms of function calls and
composition of modules containing functions.
A commonly used example is Structured Design (SD) introduced by Constantine and Yourdon at the end of the
Seventies; Modular Design (MD) is an extension of SD, subdividing the system to be designed into modules
which can be developed independently of each other.
Object-oriented design methods, on the other hand, do not focus on the functional aspect. An object component
includes data and functions. These functions constitute an external interface, and represent the only possibility
2
to manipulate and/or access the data within an object. Another type of components are classes, which serve as
templates from which objects can be instantiated, i.e. derived.
The connections between the objects of a system model are manifold, e.g. instantiation of an object from a class,
composition, and use. Interacting objects often are not viewed as calling each other’s functions, but requesting
each other via messages to perform a desired action on their data. An object is responsible that its
representation is hidden from other objects. Thus, the object-oriented modelling method adds behaviour over a
mere structural solution.
A design method on the verge to object-oriented design is MD++, mainly MD with an object-oriented
extension. Other methods focus on a particular implementation language, e.g. HOOD (Hierarchical Object-
Oriented Design) is used to develop systems with the ADA implementation language. Today’s widely used
object-oriented methods include the Object Modelling Technique (OMT) by Rumbaugh, the Object-Oriented
Design and Analysis (OODA) by Booch, the Object-Oriented Design LanguagE (OODLE) by Shlaer, and
Ooram (Object-Oriented role modelling) by Reenskaug.
For both modular and object-oriented design methods there exist textual and diagrammatic notations coming
with the specific design methods, with diagrammatic notations becoming common during the last years.
Besides these two main design methods there exist design methods for special purposes like task design, which
is focusing on processes and their communications, and real-time systems design.

No comments: