Adaptive Softwareentwicklung

Die adaptive Softwareentwicklung ( ASD ) ist eine von Jim Highsmith (in) vorgeschlagene Methode zur schnellen Anwendungsentwicklung .  

Adaptive Software ermöglicht es, IT-Tools an spezifische Anforderungen anzupassen, indem auf die Industrialisierung der IT-Entwicklung und die automatisierte Produktion von IT-Code zurückgegriffen wird. Es ist eine Möglichkeit, Software oder Computeranwendungen zu entwerfen.

Adaptive Software ist nicht an eine bestimmte Technik, eine bestimmte Methode oder eine bestimmte Programmiersprache gebunden. Es geht nicht darum, ein Softwarepaket zu konfigurieren oder zu konfigurieren, sondern um eine industrielle Produktionsmethode, die die Produktion einer einzelnen Software nach spezifischen Anforderungen ermöglicht.

Geschichte der automatisierten Computercode-Produktion

Es gibt drei Hauptformen der automatisierten Produktion von Computercode:

Code-Transformation

Bei der Codetransformation wird Computercode von einer Computerprogrammiersprache in eine andere übersetzt.

Computer Code - Generierung ist historisch mit den Compiler verbunden , die Software, die ein Programm geschrieben , in einer Programmiersprache verwandelt genannte „High-Level“ Quellcode, der von einem Computer (ausgeführt werden kann 1 st  Compiler 1952). Der Hauptgrund für diese Codegenerierung besteht darin, die Erstellung von Computerprogrammen zu vereinfachen, indem Computerentwicklern Zugriff auf strukturierte Programmiersprachen gewährt wird. Diese Sprachen haben eine Syntax und Grammatik, die vom Menschen leichter verwendet werden kann als eine Reihe von Anweisungen, die direkt für eine Maschine bestimmt sind.

Inhaltserstellung nach Vorlagen (Seitenvorlagen)

Die Generierung von Computercode entwickelte sich dann mit Vorlagen-Tools zum Generieren von Websites. Der Zweck dieser Tools besteht darin, den Computercode zu erstellen, mit dem ein Browser eine Webseite anzeigen kann. Diese Tools ersetzen Teile der Vorlage durch Inhalte, die in Dateien oder in einer Datenbank gespeichert sind. Diese Tools verwenden Sprachen, die die Anwendung von Datenlayout-Verwaltungsregeln ermöglichen. Vorlagenmechanismen können in Adaptive Software wie jedes andere Mittel zur Erzeugung von Computercode verwendet werden, reichen jedoch nicht aus, um vollständige Computerprogramme zu erstellen. Sie werden zur Erstellung statischer Inhalte wie Websites oder Blogs verwendet.

Die Erstellung von Anwendungen aus einer Modellierung

Es geht darum, Computercode aus einem Abstraktionsmodell zu erstellen. Computeranwendungen werden erstellt, indem ein Modell (außer einer Computerprogrammiersprache) in eine Computerprogrammiersprache übersetzt wird. Dieser Prozess zur Erstellung von Computeranwendungen wird als Model Driven Software Development (MDSD) bezeichnet. Der vom MDSD erzeugte Code kann von einem Menschen nur schwer geändert werden. Wenn der generierte Code manuell bearbeitet wurde, stimmt das Modell nicht mehr mit dem Code überein und das Generierungswerkzeug kann möglicherweise nicht mehr verwendet werden.

Es sollte beachtet werden, dass mit der Entwicklung der künstlichen Intelligenz die nächste Form der automatisierten Produktion von Computercode eine automatisch adaptive Software sein wird, die darin besteht, dass sich ein Computerprogramm ohne menschliche Modellierung selbst modifiziert.

Adaptive Software und Methodik

Der Zweck von Adaptive Software besteht darin, die Produktion von Computeranwendungen zu fördern, die sich auf Benutzeranforderungen konzentrieren, und die Fähigkeit, diese Anwendungen einfach zu entwickeln.

Adaptive Software ist keine Methode in dem Sinne, dass es um die Erstellung einer IT-Anwendung geht und nicht nur um die Beschreibung eines Projektmanagementprozesses (im weiteren Sinne des Wortes) oder eines methodischen Rahmens.

Die adaptive Software ist nicht von einer bestimmten Methode abhängig. Zum Beispiel hat die Berücksichtigung und Spezifizierung der Anforderungen oder des Lebenszyklus der Anwendung keinen direkten Einfluss darauf, ob sie in die Verantwortung von Adaptive Software fällt oder nicht.

Das einzige methodische Kriterium, das unter die adaptive Software fällt, besteht darin, die Bedürfnisse der Benutzer zum Ändern einer Computeranwendung berücksichtigen zu können.

Adaptive Software, Technologien und Programmiersprache

Adaptive Software ist daher nicht an eine bestimmte Technologie oder eine bestimmte Programmiersprache gebunden.

Adaptive Software basiert auf der automatisierten Produktion von Computercode, um den Produktionsmodus industrieller Computeranwendungen zu qualifizieren. Die Industrialisierung der Produktion ist das wichtigste technische Kriterium, das es einer Anwendung ermöglicht, Adaptive Software zu erfüllen oder nicht.

Hauptkomponenten der adaptiven Software

Um die Produktion von Computeranwendungen zu industrialisieren, muss Adaptive Software die folgenden Elemente in der Produktionskette haben:

Wir finden auch die Tools, die traditionell für die IT-Entwicklung verwendet werden, entweder für den methodischen Aspekt oder für den technischen Aspekt, aber diese fallen nicht in die Bedeutung von Adaptive Software.

Industrialisierung der Codeproduktion

Um behaupten zu können, dass eine Software oder eine Computeranwendung in Adaptive Software entwickelt wurde, müssen folgende Punkte erfüllt sein:

Die Anpassung einer Computeranwendung durch Konfiguration (häufig in Softwarepaketen verwendet) fällt nicht in den Anwendungsbereich von Adaptive Software. Das Computerprogramm wird durch die Einstellungen nicht geändert, es bleibt unverändert, aber Sie können bestimmte Funktionen, die bereits durch Einstellungen vorhanden sind, ändern oder aktivieren. Diese Änderungen bleiben auf das beschränkt, was ursprünglich während des Entwurfs der Software geplant war. Die Änderung von Funktionen durch Parametereinstellung kann zu Leistungsproblemen führen.

Der industrialisierte Teil der Produktion einer Computeranwendung kann nicht aus einer manuellen Montage von Komponenten oder einem Teil des vorhandenen Codes bestehen.

Adaptive Software ist eine Form der modellgetriebenen Softwareentwicklung (MDSD) in dem Sinne, dass man sich bei der Erstellung einer Anwendung auf ein konzeptionelles Modell stützt, sich jedoch darin unterscheidet, dass die mögliche Desynchronisation zwischen dem Modell und dem erstellten Code die weitere Verwendung von nicht verhindern sollte die Software-Fabrik. Im Gegensatz zu MDSD versuchen wir nicht, eine gesamte Computeranwendung aus einem Modell zu erstellen, für das sehr komplexe konzeptionelle Modelle erforderlich sind, sondern nur bestimmte Teile. Wir können die Analogie zu einem Fließband in der Automobilindustrie ziehen, bei dem Menschen und Roboter während der Produktion nacheinander eingreifen. Auf einer Produktionslinie für adaptive Software greifen Menschen und Softwarefabriken nacheinander ein, um eine Anwendung zu produzieren und zu entwickeln. Informatik. Es ist in der Tat eine kontinuierliche Interaktion zwischen Mensch und Maschine, um Software zu produzieren.

Anmerkungen und Referenzen

  1. (in) Highsmith, III, James A. , Adaptive Softwareentwicklung: Ein kollaborativer Ansatz zur Verwaltung komplexer Systeme , Dorset House Publishing Co,2000( ISBN  0-932633-40-4 )
  2. (in) Palsberg Jens Xiao Cun und LIEBERHERR Karl , "  Effiziente Implementierung adaptiver Software  " , ACM-Transaktionen zu Programmiersprachen und -systemen (TOPLAS) , vol.  17, n o  2März 1995, p.  264-292
  3. (in) Alfred V. Aho und Sethi Ravi , Compiler: Prinzipien, Techniken und Werkzeuge. , Addison-Wesley,1987( ISBN  0-201-10088-6 ) , p.  fünfzehn
  4. Compiler
  5. Automatische Programmierung  (in)
  6. (in) Schmidt Douglas C. , "  ModelDriven Engineering  " , IEEE Computer , vol.  39, n o  2Februar 2006, p.  25-31
  7. (in) Oreizy Peyman , Gorlick Michael M. Taylor Richard N. , Heimbigner Dennis Johnson Gregory Nenad Medvidovic Alex Quilici , Rosenblum David S. und Wolf Alexander L. , "  Ein architekturbasierter Ansatz für selbstadaptive Software  " , IEEE Intelligent Systems , vol.  14, n o  4,Mai 1999, p.  54-62
  8. (in) Thomas Bäck, "  Adaptive Business Intelligence basiert auf Evolutionsstrategien: Einige Implementierungsbeispiele für selbstadaptive Software  " , Information Sciences , Vol.  148, n Knochen  1-4Dezember 2002, p.  113-121
  9. Software-Engineering-Workshop
  10. (in) Highsmith Jim , Agile Software Development Ecosystems , Addison-Wesley,2002173-179  p. ( ISBN  0-201-76043-6 ) , "23. Adaptive Software Development"

Siehe auch

Externe Links