Approaches to software development

# A standard notation

In developing a software system, a developer will not just use a single ‘catch all’ model – a set of related models is more likely. It would be preferable to have a consistent way of representing each of the different models for a given software system. A modelling language allows the developer to make useful connections between those different models. In software development, a modelling language is often based on diagrams and their construction, meaning and use. There are two sets of rules within a diagram-based modelling language:

- one that determines what diagrams exist and what symbols are used on each one – its syntax
- one that determines what the diagrams and symbols mean – its semantics.

What should you look for when choosing a modelling language? On any given development project there are decisions to be made about every model. You should favour a modelling language that:

- allows you to express the many facets of the subject of your model
- helps you to resolve misunderstandings rather than introducing new ones
- is easy to learn and use – you want to make progress quickly
- is supported by tools that allow you to use your modelling skills rather than your drawing skills
- is widely used and is accepted within the industry.

It is advantageous if a modelling language is widely used. If you leave one team of developers and join another that uses the same modelling language, you need only learn about the new problem situation. The advantage is amplified if you move to a new team in a new company. Naturally, the team that you join will expect you to be more productive than you would be if you had to learn a completely new modelling language.

Unified Modeling Language (UML) is now accepted as the standard object-oriented modelling language. It is intended to be a general-purpose language for software development. It is not meant to be a complete language for modelling all aspects of all systems.

Its success is partly due to its separation from any particular method. It is available for anyone to include in their own method for software development. The Object Management Group (OMG), an industry consortium for modelling and integration standards, has adopted UML and is the main body responsible for its development.

UML is predominantly diagrammatic, but does allow developers to add text in appropriate places.

## Activity 12 Modelling

Allow approximately 15 minutes.

1. What is a model?
2. What is a ‘good model’?
3. What are the two kinds of rule that govern the use of a modelling language?
4. Does a modelling language need to be associated with a particular development process?
5. What are the required characteristics of a standard modelling language?
6. How does a standard modelling language contribute to software development?

## Answer

1. A model, in terms of software development, is an abstract representation of a specification, a design or a system, from a particular point of view. In general, it is a simplification of reality, created in order to understand an aspect or viewpoint of the system in question.
2. A ‘good model’ is an abstraction that allows those involved to concentrate on the essentials of a complex problem by excluding non-essential details while capturing those of interest.
3. A modelling language is normally diagrammatic, although it can be textual. In common with natural language, there are two distinct kinds of rule:
   - those that determine whether or not a diagram is legal – the syntax of a diagram
   - those that define what a legal diagram means – the semantics of a diagram.
4. No, a modelling language does not dictate how it should be used and it is up to a development process to define which notations are appropriate and how they should be used. With experience practitioners tend to pick and mix from different modelling languages and use the notations that are most appropriate to the task – most modelling languages do not provide notations for all types of tasks.
5. When choosing a modelling language, it should be:
   - sufficiently expressive
   - easy to learn and use
   - unambiguous
   - widely used
   - supported by suitable tools.
6. A standard modelling language helps when new people join a project – a common modelling language reduces the time needed to enable them to become productive team members. Also, when a modelling language is widely used, it is likely that project components will have been constructed using that language. This makes the software easier and cheaper to maintain.

OpenLearn - Approaches to software development
Except for third party materials and otherwise, this content is made available under a Creative Commons Attribution-NonCommercial-ShareAlike 4.0 Licence, full copyright detail can be found in the acknowledgements section. Please see full copyright statement for details.