Programming languages

AT A GLANCE

  • Our core programming language is C++.
  • For WinCC OA-related projects, we mainly employ CTRL.
  • When it comes to web applications, we rely on JAVA and JavaScript. 
  • Please see further down below on this page for an overview of all the programming languages we use. 

‘Just like a natural language’s sentences, a programming language’s programmes are made up of words and signs, and put together according to specific rules.

Programming languages, however, are formal languages - that is to say, their rules and words, as well as the meaning of their language constructs, are precisely defined. Thus, programmes can be automatically tested and translated, and their execution’s effect is unambiguously defined.’ (Prof. Dr. Uwe Kastens, Universität Paderborn1, our translation.)

Over time, and as a consequence of our practical activity as a software developer, our team acquired knowledge in and experience of a broad range of programming languages.
The most salient one for our team is C++, a general-purpose programming language standardised by the International Standard Organisation (ISO). It acts as the shared basis for software development across the team, and is the programming language each and every one of our software developers is proficient in. Our shared proficiency in C++ software development across the team is outstanding. 

We primarily use C++ for developing technical software systems, which account for the majority of our software development projects. When developing WinCC OA-related software we mainly employ the programming language CTRL, while we usually rely on JAVA or JavaScript when it comes to web applications. The following list gives an overview of further programming languages we possess proficiency in:

AssemblerCRTLnesCSchemeVB.net
BASHDelphiObjectiv-CSQLVB6
C++ErlangPascalTCL/TKVHDL
CJavaPythonTypescriptVisual Basic
C#JavaScriptPerlVBAWinCC OA Control

1www.wi-lex.de/lexikon/technologien-methoden/Sprache/Programmiersprache/index.html

Operating systems

AT A GLANCE

  • Our team is proficient in all commonly used operating systems of PCs, notebooks and servers.
  • Our team is able to work with a wide range of operating systems.
  • Our video management system vimacc works on both Windows and Linux.

There is a fairly straightforward definition for computer operating systems: A computer operating system is the total of all programs in a computer system controlling and surveying the operation of the system. In the decades that have gone by since the computer was first invented, however, a countless number of operating systems have emerged. In consequence, definitions and concepts have shifted as well. We are proficient in all commonly used operating systems of PCs, notebooks and servers, as well as their derivatives.

When we speak of derivatives, we refer to, for example, versions of Windows 3.xx to 10 or Linux derivatives such as Suse, CentOS, Ubuntu, and many more. The vast majority of the software systems we develop are intended for use with Windows and Linux derivatives. Our product vimacc, for example, runs on both Windows and various versions of Linux. Other and recent operating systems (Android, iOS) increasingly also form part of the pool of operating systems we possess software development experience for, and thanks to our team of software developers’ expertise, we are well versed in older operating systems, too.

Methodology

AT A GLANCE

  • At the beginning of the project, we diligently collect and analyse its requirements.
  • With our our customer’s project requirements in mind, we select the necessary components.
  • Our team and the customer jointly devise a project plan.
  • Regularly scheduled review meetings serve to jointly evaluate the attained status, and offer the opportunity to modify the future course of action, if deemed necessary. (change management).
  • The project’s method and the type of documentation we compile for it depend on our customer’s preferences and are based either on the V-model or on the agile process model.
  • We are certified according to DIN EN ISO 9001:2000. 

Software development requires sound planning, and there is a range of different approaches to draw on in devising a plan for software development. One may, for example, develop software using the waterfall model.

An alternative method of developing software is that of the V-model. This is a well-established procedure of software development, which may be considered an extension of the waterfall model and relies on a graphical representation of the software development life cycle. It describes the activities to be performed and the results that have to be produced during the software’s development. The individual steps of the software’s development are represented in the shape of a ‘V’. The left side of the ‘V’ represents the system specifications, and the right side represents the resulting steps taken towards their realisation.

A more recent method or approach, which nevertheless has already been in use for some years now is that of so-called agile software development. It is particularly useful for cases, where, due to not yet foreseeable factors, which may impact on the software development life cycle, a constant cross checking of the project’s goals and the necessary steps towards their realisation may be required.

Our team uses both the V-model and the agile software development approach, utilising the SCRUM framework, a well-known agile framework for developing, delivering and sustaining complex products. Our methods and approaches are conform to the quality management system DIN EN ISO 9001:2000.

Garbsener Landstr. 10
30419 Hanover, Germany