Produkte und Leistungen

À la Carte Software GmbH
Meisenweg 4
D-97261 Güntersleben
Tel: +49 – 9365 / 88996 – 03
Fax: +49 – 9365 / 88996 – 04
E-Mail: [email protected]

[Produkte und Leistungen]
[Tätigkeitsfelder]
[Software à la Carte]
[Referenzen/Partner]
[Kontakt/Impressum]
[À la Carte Home]

Produkte und Leistungen

  • „Communication Engine“:
    Online-Vernetzung von Rechnern und Datenbanken
    diverse Kommunikationsprotokolle
    spezielle Einsatzgebiete:
    Zellenleitrechner in der automatisierten Fertigung, Anlagensteuerung
  • Konfiguration à la Carte:
    Produkt- und Auftragskonfiguration für Variantenfertiger
  • Klassen- und Funktionsbibliotheken:
    Unser bewährtes Konzept für effiziente und sichere Software-Entwicklung mit wiederverwendbaren Komponenten
  • Regel- und Befehlssprachen:
    Definition und Implementierung von Regel- und Befehlssprachen als flexibles Instrument zur Interaktion verschiedener Systeme sowohl untereinander als auch mit den Bedienern
  • Mitwirkung in Software-Projekten:
    Wir bringen unsere Erfahrung in Ihre Projekte ein
    Unterstützung in allen Phasen, von der Konzeption bis zur Wartung
    Hilfe auch in kritischen Phasen und Engpässen
    Unser stärkstes Angebot: Coaching.

„Communication Engine“

Die „Communication Engine“ ist aus diversen Projekten der Fertigungsautomatisierung, speziell in der Automobilbranche, entstanden.

In der automatisierten Fertigung ist es von entscheidender Bedeutung, für den Datentransport von und zu den Fertigungsanlagen leistungsfähige Lösungen zu finden. Aus der Erfahrung mehrerer einschlägiger Projekte haben wir einen flexiblen Kommunikationsserver entwickelt, der diverse Datenübertragungsprotokolle mit hoher Performance abwickeln kann.

Im Zusammenspiel mit einer Datenbank ist dieser Server in der Lage, einerseits auftragsspezifische Daten für einen Arbeitsgang vorzubereiten und bei Bedarf bereitzustellen, andererseits Rückmeldungen der Anlage (z.B. für Zwecke der Qualitätssicherung) zu speichern. Mit einem zusätzlichen Dialogsystem werden Steuerungs- und Überwachungsfunktionen ermöglicht, so dass sich eine maßgeschneiderte Leitrechner- bzw. Leitstandskonfiguration ergibt.

Die „Communication Engine“ besteht aus einem Gerüst von C++-Klassen. Dieses beinhaltet:

  • Die Grundfunktionen eines Kommunikationsservers:
    • ständige Empfangsbereitschaft auf einem oder mehreren Kommunikationskanälen (passiver Server)
    • aktive Abfrage eines oder mehrerer Kommunikationskanäle in vorgegebenen Zeitintervallen (aktiver Server)
    • Verbindung zur Datenbank
    • Bereitstellung von Logfile- und Statistikfunktionen
    • Überwachung von Kommunikationskanälen, Alarm bei Ausfällen oder Störungen
  • Die Basisklasse „Port“, die eine Kommunikationsverbindung repräsentiert:
    • Ein Kommunikationsserver bedient einen oder mehrere, gleiche oder verschiedene Ports.
    • Ports beinhalten die Details spezieller Kommunikationskanäle. Standard-Ports für gängige Kommunikationskanäle (z.B. serielle Schnittstelle, TCP/IP-Socket) liegen uns als Bibliotheken vor, weitere Ports können wir durch Ableitung von bestehenden Klassen schnell und effizient entwickeln.
    • Auch spezielle Anschlüsse werden als „Ports“ in die „Communication Engine“ integriert, z.B. Datenbanken (ODBC-Port), User Interface u.a.
  • Die Basisklasse „Datagramm“, die eine kommunizierte Nachricht repräsentiert:
    • In Ableitungen dieser Klasse werden die Inhalte der Nachrichten behandelt.
    • Parameter der Nachricht werden interpretiert, gespeichert, weitergeleitet.
    • Eine Beantwortung (Quittung) kann durch Methoden eines Datagramm-Objektes automatisch erzeugt und wieder an die „Communication Engine“ zurückgeleitet werden.

Weiterführende Informationen zum Thema „Communication Engine“
erhalten Sie über unser Download:

comm_eng.zip (gezipptes Word-Dokument: 165 kByte)

Konfiguration à la Carte

Für Variantenfertiger haben wir ein modular aufgebautes Software-System für die Konfiguration von Produkten bzw. Aufträgen entwickelt.

Das Herzstück dieses Systems ist eine Produktdatenbank, die alle Teile und Komponenten sowie die Beziehungen untereinander enthält.

Die Produkt-Konfiguration geht so vor sich, dass der Bediener das Produkt aus den in der Datenbank gespeicherten Teilen und Komponenten sukzessive aufbaut. Es entsteht der sogenannte Konfigurationsbaum.

Das System stellt sicher, dass der Bediener nur zulässige Kombinationen von Teilen auswählt.

Aus dem zentral vorliegenden Konfigurationsbaum werden diverse Datensichten bzw. Darstellungen abgeleitet, z.B.

  • Angebotstexte,
  • Stücklisten zur Übernahme in das PPS-System,
  • Kosten- und Preiskalkulationen,
  • Fertigungsaufträge,
  • technische Zeichnungen für die Fertigung und/oder für den Kunden,
  • Versandlisten, Platzbedarf, Gewichtsberechnungen,
  • u.v.a.m.

Ein interessanter und wichtiger Aspekt unseres Systems ist, dass verschiedene Abteilungen auf der Basis der gleichen Konfiguration ihre jeweiligen Aufgaben erfüllen können, z.B. ist folgendes Szenario denkbar:

Der Vertriebsmitarbeiter im Aussendienst erstellt mit dem Kunden eine Konfiguration und sendet sie auf elektronischem Weg in die Angebotsabteilung. Hier werden technische Details ergänzt, eine Preiskalkulation durchgeführt und ein Angebot erstellt. Nachdem der Kunde den Auftrag erteilt hat, wird die Konfiguration um weitere für die Auftragsbearbeitung wichtige Details ergänzt, und es werden Daten für das PPS-System, für die Fertigung und den Versand erzeugt. Die Konfiguration wird archiviert und stellt die Grundlage für spätere Wartungs- und Servicemaßnahmen dar.

Damit das Zusammenspiel der verschiedenen beteiligten Abteilungen funktioniert, wird mit Rollen und Detaillierungsgraden gearbeitet:

  • Rollen definieren, auf welche der Daten in der Konfiguration ein Bearbeiter lesend und/oder schreibend zugreifen kann. Jeder Bearbeiter sieht nur „seinen Teil“ der Konfiguration.
  • Mit Detaillierungsgraden wird festgelegt, bis zu welchem Detail ein Bearbeiter eine Konfiguration festlegen oder ändern darf. Es gilt: Je höher der Detaillierungsgrad
    • desto mehr Teile aus der Datenbank können gewählt werden,
    • desto mehr Eigenschaften der Konfiguration können manuell geändert werden,
    • desto vielfältiger sind die Möglichkeiten der Bearbeitung,
    • desto geringer ist aber auch die Unterstützung des Systems bei der Erzeugung „richtiger“ Konfigurationen.

Der Vertriebspartner (oder sogar der Kunde selbst) erstellt Konfigurationen mit niedrigem Detaillierungsgrad. Diese sind, durch die Unterstützung des Systems, auf jeden Fall richtig. Etwaige Sonderwünsche werden von einem Bearbeiter mit höherem Detaillierungsgrad nachgetragen. Dieser hat die entsprechenden Fachkenntnisse, um entscheiden zu können, welche Abweichungen vom Standard möglich sind, und hat Kontakt zu den Fachabteilungen, um abklären zu können, wie sich Änderungen z.B. auf den Fertigungsprozess sowie auf Kosten und Preise auswirken.

Softwaretechnisch besteht das System aus folgenden Hauptmodulen:

  • Flexibles Objektmodell zur Darstellung des Konfigurationsbaumes (Objekte der speziellen Anwendung werden aus generischen Objekten abgeleitet),
  • Datenbank-Interface zum Zugriff auf die Produkt-Datenbank,
  • Universelle File-Schnittstelle,
  • User-Interface zur Teile-Auswahl, Baumdarstellung der Konfiguration mit Navigations- und Bearbeitungsfunktionen
  • optional: Regelinterpreter: Vorgaben und Einschränkungen werden vom Administrator als Regeln formuliert und bei der Bearbeitung automatisch berücksichtigt. Mit dieser Erweiterung können auch komplexe Abhängigkeiten zwischen Teilen und Komponenten beschrieben werden.
  • optional: 2-D-Schemadarstellung zur graphisch-interaktiven Konfiguration

Anwendungsgebiete

u.a.: Geräte- und Anlagenbau, (Spezial-)Fahrzeugbau, Produkte mit „Baukastensystem“, Türen und Fenster, Einbaumöbel, Erstellung und Verwaltung von Rezepturen

Weiterführende Informationen zum Thema „Konfiguration à la Carte“
erhalten Sie über unser Download:

konfig.zip (gezipptes Word-Dokument: 90 kByte)

lassen- und Funktionsbibliotheken

Klassen- und Funktionsbibliotheken stellen das „Herzstück“ der À la Carte Software-Philosophie dar.

In jedem Projekt identifizieren wir allgemeingültige Lösungen und bereiten den zugehörigen Programmcode so auf, dass er in folgenden Projekten mit ähnlichen Aufgabenstellungen wiederverwendet werden kann.
Wenn in einem neuen Projekt weitergehende Anforderungen bestehen, so nutzen wir die Gelegenheit, unsere Bibliotheken zu erweitern und zu verbessern.

So können wir aus einem wachsenden Vorrat von bestehenden, ausführlich geprüften und deshalb sehr verlässlichen Bibliotheksklassen und -funktionen wählen und erreichen damit, dass unsere Produktivität ständig wächst. Die Erfahrung lehrt, dass Projektlaufzeiten vor allem dadurch deutlich reduziert werden, dass grundlegende Funktionen wiederholt getestet wurden und somit garantiert fehlerfrei sind.

Wenn wir für Sie Software entwickeln, setzen wir automatisch unsere Bibliotheken ein und liefern sie im Quellcode mit aus. Aber auch wenn Ihr Team Software selbst entwickeln will, können wir unsere Bibliotheken zur Verfügung stellen. Fragen Sie uns!

Noch ein Aspekt: Wir überarbeiten unsere Bibliotheken laufend, um die Funktionen noch besser, effizienter und flexibler zu gestalten. Die Schnittstellen zur Anwendung werden selbstverständlich kompatibel gehalten. So können heute entwickelte Anwendungen von Verbesserungen in der Zukunft profitieren.

Im Folgenden finden Sie eine Auswahl der Themenbereiche, die von unseren Bibliotheken abgedeckt werden:

Basics

  • Strings mit zahlreichen Operatoren zur einfachen und dennoch 100% sicheren Behandlung von Zeichenreihen. Schluss mit „strcmp“, „strcpy“ etc.
  • Listen beliebiger Objekte, implementiert als Arrays oder verkettete Listen; wenn mal mehr Objekte gespeichert werden sollen als ursprünglich erwartet, erweitern sich die Listen selbständig und ohne dass im Anwendungscode ein zusätzliches Statement erforderlich wird.
  • Zeit– und Datumsfunktionen
  • Fehlerbehandlung: Jeder, der bestrebt ist, gute Software zu entwickeln, weiss, wie viel Arbeit es macht, eine vernünftige Fehlerbehandlung und adäquate Fehlermeldungen zu bekommen. Wir besitzen ein mächtiges Konzept und Klassen, mit denen alle Anforderungen einfach und dennoch flexibel erfüllt werden.

Analyse und Ausführung von Programm- und Steuersprachen

  • Abstrakte Syntax für Ausdrücke und Anweisungen – das Kernstück für jeden Interpreter: Die konkrete Sprache kann individuell nach den Anforderungen eines Projektes definiert werden. Aber was am meisten Arbeit macht, die interne Darstellung von Ausdrücken und Anweisungen, ist bei uns schon fertig. Darum sind wir so leistungsfähig bei der Entwicklung von regelbasierten Systemen und bei der Implementierung von Protokollen und Steuerbefehlen.
  • Eine allgemeingültige Symboltabelle: Wenn in einer Sprache symbolische Bezeichner vorkommen, greifen wir auf diese allgemeingültige Klasse zurück. Was ohne Hilfsmittel ein Projekt von Wochen ist, schaffen wir in wenigen Stunden.

Generische Objekte

Unsere generischen Objekte bringen folgende Fähigkeiten bereits mit:

  • Aufnahme von beliebig vielen Attributen diverser, auch komplexer Datentypen,
  • Bildung von baumartigen Strukturen (s. Produkt-Konfiguration),
  • Speichern in Files, Wiedereinlesen von Files,
  • Speichern in einer Datenbank, Restaurieren aus einer Datenbank.

Die Anwendung leitet konkrete Objekte von den generischen Objekten ab und kümmert sich um die wichtigen Aspekte. Die oben genannten Basisfunktionen bringen die Objekte bereits mit.

Die „Communication Engine“

Die „Communication Engine“ ist derzeit unsere mächtigste Bibliotheksklasse. Auch für diese Klasse gilt: sofort einsetzbar und nahezu beliebig erweiterbar.

Implementierung von Regel- und Befehlssprachen

Wir bringen profundes Knowhow in Scanner- und Parsertechnologie (insb. Generatoren), eine bewährte Klassenbibliothek und jede Menge Erfahrung aus diversen Projekten mit.

Damit qualifizieren wir uns für die Entwicklung von Regel-Interpretern, für Protokoll-Implementierungen und für die Analyse beliebiger Datenformate.

Egal, ob Sie Ihr eigenes Format definieren wollen oder ein vorgegebenes Format lesen müssen: mit unseren Hilfsmitteln können wir eine perfekte Lösung zu günstigen Konditionen liefern.

Mitwirkung in den Software-Projekten unserer Kunden

Haben Sie Kapazitätsengpässe in Ihrer Software-Entwicklung? Fehlt bestimmtes Knowhow in Ihrem Projektteam? Wir helfen gerne – durch Übernahme von Teilaufträgen oder durch Mitarbeit vor Ort.

Unsere große Stärke sind kurzfristige Einsätze: Wir helfen, wenn es brennt, unterstützen Sie mit unserem Knowhow und unseren Software-Bibliotheken. Wenn wieder alles im grünen Bereich ist, ziehen wir uns zurück, stehen aber nach wie vor als Ansprechpartner zur Verfügung.

Unser Leistungsprofil als Download:

profil.zip (gezipptes Word-Dokument: 15 kByte)

Coaching

Stellen Sie sich vor, Ihr Entwicklungsteam beginnt ein neues Projekt, und es stehen Aufgaben an, für die noch kein profundes Knowhow vorliegt.

Was können Sie tun?

  1. Das Projektteam aufwendig schulen lassen. Das kostet Zeit und Geld, und trotzdem ist nicht gewährleistet, dass die Umsetzung des theoretisch Gelernten in der Praxis reibungslos funktioniert.
  2. Das Projekt mit der Parole „wird schon gutgehen“ erstmal beginnen. Doch dann müssen Sie damit rechnen, dass die Schwierigkeiten im unglücklichsten Moment auftreten oder dass die erreichte Lösung nicht optimal ausfällt.

Wir bieten den idealen Mittelweg: Wir stellen einen Mitarbeiter mit perfektem Knowhow als Coach. Dies bedeutet:

  • Der Coach arbeitet produktiv im Projekt mit. Er kann dafür sorgen, dass schon von der Konzeption her der richtige Weg beschritten wird. Er garantiert für tragfähige Lösungen und sorgt dafür, dass unnötige Schwierigkeiten gar nicht erst auftreten.
  • Der Coach vermittelt sein Knowhow an Ihr Projektteam, und zwar sowohl theoretische Grundlagen als auch Tipps aus der Praxis; Hilfe zur Selbsthilfe, damit die Projektmitarbeiter in Zukunft den Aufgabenbereich selbständig beherrschen.

Der Einsatz eines Coach rechnet sich: Sie gewinnen durch die Mitarbeit des Coach und durch die gesteigerte Produktivität der gecoachten Mitarbeiter mehr, als Coaching kostet. Schildern Sie uns Ihre Situation, und wir zeigen Ihnen, wie Sie kostengünstig weiterkommen.