Entwickeln Sie effizienter, steigern Sie die Qualität und straffen Sie Ihre Prozesse von Anfang bis Ende

Methodik­beratung und Tool­entwicklung

Systeme werden immer größer und komplexer. Sie werden zunehmend von multidisziplinären Teams in immer kürzeren Zyklen entwickelt. Für Sie wird es deshalb immer wichtiger, sich darauf zu konzentrieren, wie Sie Ihr System entwickeln.

Wir kennen Antworten auf die Fragen:

  • Welche Aspekte können Sie automatisieren?
  • Wie können Sie Probleme und Fehler in der Entwicklung frühzeitig erkennen?
  • Wie integrieren Sie alle Ihre Interessengruppen effizient, ohne in Dokumenten und Besprechungen zu ertrinken?

Wirksame Werkzeuge sind ein wesentlicher Bestandteil zur Bewältigung dieser Herausforderung.

Maß­geschnei­der­te Werk­zeuge bieten zahl­reiche Vorteile!

  • Höhere Produk­tivi­tät durch Auto­mati­sie­rung

    Wiederkehrende Teile des Codes, sowie jene, die von Modellen abgeleitet werden können, können von Generatoren generiert werden, die Ihre Architektur- und Code-Richtlinien respektieren.

  • Erhöhte Quali­tät durch Ana­lysen

    Modelle enthalten mehr Domänen­semantik als Code und machen so aussage­kräftige Analysen wesentlich einfacher. Fehler werden früher erkannt.

  • Ratio­nali­sierter Prozess durch Inte­gration von Inter­essen­gruppen

    Dank benutzer­freundlicher Notationen in Form von Formeln, Tabellen und Diagrammen können auch Nicht­programmierer einen direkten Beitrag leisten, ohne dass dafür zusätzliche Dokumente benötigt werden.

  • Langlebig­keit durch ge­trennte Betrach­tungs­weise

    Halten Sie das Kernwissen Ihrer Domäne getrennt von seiner Implemen­tierung im Quellcode, damit es leichter wieder­verwendet werden kann.

Was wir tun.

Unsere Hauptaktivität ist die Entwicklung von Werkzeugen für Softwareentwickler, Systemingenieure und Geschäftsanalysten, zur Erfassung und Analyse von Informationen und zur automatischen Erstellung einer Reihe von abgeleiteten Artefakten. Modelle sind das Rückgrat dieser Werkzeuge. Sie stellen sicher, dass die erfassten Informationen gut strukturiert sind und einem formell definierten Schema entsprechen. Diese Modelle werden mit einer auf die Domäne zugeschnittenen Sprache ausgedrückt, um die Ausdruckskraft und Analysefähigkeit zu maximieren.

Language Engineering bezieht sich auf die Aktivität der Analyse einer Domäne, des Verstehens ihrer Kernabstraktionen und der anschließenden Implementierung in eine Sprache. Wir verwenden Sprach-Workbenches, um den Sprachentwicklungsprozess zu beschleunigen. Das Team steht an vorderster Front des Language Engineering und seiner Anwendung in der Industrie. Die Sprachen können grafische, tabellarische, symbolische oder textliche Notationen verwenden, je nachdem, was das Zielpublikum erwartet.

Dienstleistungen

  • Beratung - wir helfen Ihnen, Ihre Domäne und Ihre Prozesse zu verstehen
  • Coaching - wir helfen Ihrem Team beim Aufbau von Fähigkeiten im Language Engineering und den entsprechenden Werkzeugen
  • Werkzeugentwicklung - wir entwickeln Komplettlösungen für Ihr Unternehmen

Technologien

Wir verwenden hauptsächlich die Jetbrains MPS- und Xtext-Ökosysteme. In beiden haben wir weltweit führende Experten in unserem Team.

Wir tragen auch zur Entwicklung der Plattformen selbst bei, zum Beispiel über die MPS Erweiterungen.

Ausgewählte Kunden und Projekte.

  • Mit den neuen Tools von itemis konnten wir massiv Aufwände sparen und gleichzeitig eine hohe Akzeptanz bei unseren Nutzern erzielen. Die Tipparbeit von 1.000 Lines Of Code konnte in vielen Fällen auf nur eine Zeile reduziert werden.

    Jochen Schmich, Software Engineer, Fiducia & GAD IT AG
    Jochen Schmich
  • Für Voluntis haben wir eine Reihe domänenspezifischer Sprachen (DSLs) für die Entwicklung von Algorithmen für die Gesundheitsfürsorge für digitale therapeutische Anwendungen entwickelt.

    Sehen Sie sich für weitere Informationen das Dokument "Using language workbenches and domain specific languages for safety-critical software development" an.

    Voluntis Logo
  • Mit DATEV arbeiten wir an der Entwicklung von domänenspezifischen Sprachen (DSL) für Steuerberechnungen sowie Lohn- und Gehaltsabrechnungs-Anwendungen.

    Lesen Sie diese Vorabveröffentlichung für weitere Details.

    DATEV Logo
  • Wir helfen Workday bei der Entwicklung ihrer internen Programmiersprache und der dazugehörigen Werkzeuge.

    Dieses Video bietet einen Überblick, ebenso wie diese Folien.

    Workday Logo
  • Für Zürich haben wir einen Word-basierten Entwicklungsprozess in eine DSL, mit nachgeschalteter Codegenerierung nach C, formalisiert.

    Zürich Logo
  • Wir unterstützen SIGI bei der Entwicklung einer DSL für administrative Webanwendungen.

    Sigi Logo

Ihr nächster Schritt.

Sie wissen jetzt, was wir tun und wie wir Sie bei der Entwicklung Ihrer Systeme unterstützen können. Nehmen Sie jetzt Kontakt mit uns auf, um konkrete Lösungen zu diskutieren.

Nachricht senden

Ihr Ansprechpartner für Methoden und Tools: Dr. Klaus Birken, itemis AG

Weitere Aktivitäten und Ressourcen.

Kommer­zielle Produkte und Open-Source-Projekte

  • Security Analyst ist ein kommerzielles Produkt zur Analyse von Security Threads in technischen Systemen.
  • mbeddr (Homepage, GitHub) ist eine erweiterbare Version von C, die in MPS implementiert ist, sowie eine Reihe von mehr als 30 Erweiterungen von C, für die Entwicklung eingebetteter Software.
  • IETS3 ist eine Reihe von Sprachen für das Systems-Engineering, die im Rahmen eines Forschungsprojekts entwickelt wurden.
  • KernelF (Github als Teil von IETS3, Dokument) ist eine funktionale Sprache, die wir als Grundlage für viele der von uns entwickelten DSLs verwenden.
  • Mit Modelix entwickeln wir eine Cloud-basierte Sprach-Workbench.

Aktive For­schungs­pro­jekte

In allen unseren aktiven Projekten verwenden wir MPS, um innovative Ansätze zu verfolgen. SAFE4I und SecForCARS werden beide vom deutschen BMBF gefördert.

  • SAFE4I: Beschleunigung der Entwicklung funktional sicherer Software durch werkzeugunterstützte Automatisierung.
  • SecForCARs: Sicherheit für vernetzte, autonome Fahrzeuge.

Siehe auch die Liste aller Forschungsprojekte unter itemis.

Ausge­wählte Publika­tionen und Vor­träge

  • "Build your own language - why and how" (Video). Markus Völter, GOTO Amsterdam 2018.
  • "Using C language extensions for developing embedded software - a case study" (Paper). Voelter, van Deursen, Kolb, Eberle. OOPSLA 2015.
  • "Using language workbenches and domain-specific languages for safety-critical software development" (Paper). Voelter, Kolb, Birken, Tomassetti, Alff, Wiart, Wortmann, Nordmann. SOSYM Journal 2018.
  • "Automated testing of DSL implementations - experiences from building mbeddr" (Paper). Ratiu, Völter, Pavletic. 2017
  • "Fusing modeling and programming into language-oriented programming" (Paper). Voelter. 2018.