In diesem Kurzartikel will ich eine neue Form der Individual-Softwareentwicklung vorstellenn, die den Softwaremarkt revolutionieren soll.
Die Krux mit den Individual-Bedürfnissen
Stellen Sie sich vor, Sie sind Softwareentwickler und bekommen eine Kundenanforderung, die in etwa so lautet:
Ich will ein CRM, das Kontakte von Xing importieren kann
Nun würden Sie anfangen, das CRM von Grund auf zu programmieren: Eine Programmiersprache auswählen, ein Framework nach Kriterien aussuchen, programmieren, designen. Alternativ nehmen Sie ein OpenSource-CRM und entwickeln eine Xing-Erweiterung dafür. Jetzt kommt der nächste Kunde und sagt:
Ich will ein CRM, das mir erlaubt, Angebots-PDFs anhand einer Kalkulations-Maske zu erstellen
Wieder würden Sie alles von Grund auf programmieren oder vorhandene Software abwandeln.
Logische Programmierung erlaubt das Spezifizieren von Software mit Begriffen
Wenn Sie die oberen zwei Beispiele zusammenfassen, verwenden Sie im Kundengespräch doch folgende Begriffe:
- Ein CRM ist eine Kunden-Datenbank, die eine Liste von Kunden verwaltet und Features wie Wiedervorlage und E-Mail-Anbindung hat.
- Xing-Kontakte sind die Kontakt-Einträge auf der Xing-Plattform, die mittels der Xing API ausgelesen werden können
- Angebots-PDFs sind automatisch generierte PDF-Dokumente, die einen Adressaten im Briefkopf haben, eine Begrüßung, einen Einleitungstext und eine Tabelle.
- Eine Kalkulations-Maske ist ein Formular mit hinzufügbaren Angebots-Posten, die die Daten für das Angebots-PDF sammelt.
Jetzt gibt es aus der Informatik-Forschung aus den 70er Jahren eine Form des Programmierens, die sich „logische Programmierung“ nennt. Dabei kann man beliebige Begriffe verwenden und später deren Bedeutung definieren. Durch diese Form der Programmierung ist es möglich, Software feingradig zu spezifizieren, ja sogar zwei verschiedene Softwaretypen zu verschmelzen, wie z.B. CRM und ERP.
Alles mit nur 2 Grundelementen: Fakten und Regeln
Die Grundlage logischer Programmierung ist sehr simpel gehalten, umso schwieriger ist es, damit Vernünftiges anzustellen. Dabei gibt es nur zwei Strukturelemente der logischen Programmierung: Regeln und Fakten.
Fakten sind Aussagen, die wahr sind. Sie bestehen aus einem Prädikat, sowie Parametern. Ein Beispiel: Die Tabelle.
Table<"kunden">.
Mit diesem Schnipsel Logik-Code ist es möglich, auszudrücken, dass es eine Tabelle „kunden“ in der Datenbank gibt. Analog die Spalte: Column<"kunden", "vorname", "text">.
Regeln sind hingegen Konstrukte, die aus vorhandenen Fakten neue Fakten erzeugen. Ein Beispiel: Table<table_name> -> MenuEntry<"$table_name$ ansehen">
Durch diese zwei Konstrukte ist es möglich, komplexe Software aus wenigen Zeilen Anforderungen zu konstruieren. Diese Form der Softwareentwicklung nennt man auch „Feature Oriented Programming“. Eine Software setzt sich aus Features bzw. Funktionen zusammen, die man jeweils mit einem Einzeiler Logik-Code beschreibt.
Feature Oriented Programming als Produkt von Launix
Um Datenbanken für (fast) jedes Unternehmen erschwinglich zu machen, haben wir ein Produkt ins Leben gerufen, wo wir für Sie eine beliebige Software zu einem Festpreis anbieten. Das funktioniert deshalb, weil wir die Kosten für die Entwicklung der Features auf mehrere Kunden umlegen können. Normale Softwareentwicklung würde ein 10-faches von FOP kosten.
Comments are closed