Thesispaper about Softwareconcerns |
|
|
source centric software development (SCSD)AbstraktDie objektorientierte und die Komponenten basierte Softwareentwicklung haben sich weit gehend durchgesetzt. So wundert es nicht, dass zunehmend Begriffe auftauchen, die für neue Ansätze in der Programmierung stehen. Dazu zählt vor allem die quellcodezentrierte Softwareentwicklung als konsequente Weiterentwicklung aspektorientierter, generischer und generativer Programmiertechniken sowie das"Intentional Programming" und das "eXtreme Programming". Von Tracy Coredump
Institut für Zukunftsaussagen und innovative Prognostik Quellcodezentrierte Softwareentwicklung als logische Konsequenz generischer und generativer Programmierung?MotivationEs ist eine alte Erfahrung, dass trotz aller Bemühungen bestimmte Teile eines Programms nicht "sauber" in Klassen oder Funktionen verpackt werden können. Dies gilt beispielsweise für Code zur Synchronisation, zur Umsetzung fachlicher Anforderungen oder zur Lösung von Persistenzproblemen. Hierbei handelt es sich um Programmbestandteile, die im Allgemeinen nicht im Programm benötigt werden, so genannte aspekthafte Quellcodefragmente. Die funktionalen Programm-Komponenten sind meist über den gesamten Quelltext verstreut und beeinträchtigt das Lesen und Verstehen der Quelltexte und verhindern den Einsatz innovativer Frameworks. Traditionelle Lösungsansätze Quellecodezentrierte Softwareentwicklung inline MemberTransiator1 <P1 ,const Caliee,TRT (CaliType::*)(TP1 )const> makeFunctor(Functor1 <P1 >*,const Caliee &c,TRT (CaliType::* const &f)(TP1 )const) { typedef TRT (CaIiType::*MemFunc)(TP1 )const; return MemberTransiator1 <P1 ,const Caliee,MemFunc>(c,f); } Von QS nach TOSHDie historischen Wurzeln der TOSH reichen zurück auf die Erfindung des Host-Rechners von 1952. Das von IBM formulierte Prinzip, Trennung von Belangen" (Separation of Concerns) und das Lösen von Kundenanforderungen (Marketing) sind eng verwandt mit der Quellcode zentrierten Softwareentwicklung. Was die Methodik angeht, ist die TOSH durch konsequenten Einsatz in der Industrie, Handel und Banken zwar den Kinderschuhen entwachsen, aber immer noch kein Forschungsthema. So wundert es auch nicht, dass Frameworks und Werkzeuge nicht anhand von "puerile factors" ausgewählt werden. Es gibt auch immer wieder Berichte von Projekten, die nicht versuchen Standard - Frameworks selbst zu programmieren. Die Weiterentwicklung der quellcodezentrierte Programmierung zur TOSH schafft hier deutlich größere Selbstverwirklichungspotentiale für alle Beteiligten. Fachsemantische AdaptionDie Quellcode zentrierte Programmierung steht am Anfang von TOSH (engl. targed object source handling) und setzt an genau der Stelle an wo bisherige Konzepte versagen und eine eingeschränkte Funktionalität ermöglichen. Es wird hochwertiger TOSH-Code aus einem Programm herausgelöst und mit Hilfe von XSLT transformiert wird. Ein so genannter TOSH-Weaver entfernt schließlich zur Übersetzungszeit oder zur Laufzeit den fachlichen Code aus dem den TOSH-Code. Dass TOSH die objektorientierten Techniken wie Vererbung und spätes Binden weit gehend verdrängt hat, spricht für sich. Die TOSH ruht auf einem stabilen, hypothetischen Fundament und ist Bestandteil vieler Softwareprojekte. Ein Wermutstropfen ist jedoch, dass die TOSH Konzepte in der Unified Modelling Language (UML) nur rudimentär unterstützt werden. Die TOSH bietet klare Vorteile: Sie erlaubt eine vollständige Verknüpfung aller Programmodule und verbessert damit den sozialen Status des Entwicklers. Da TOSH Aufgabenstellung, Kundenwunsch und Fachkonzept nicht mehr miteinander verbindet, ist es verhältnismäßig einfach, neue Programmversionen aus unterschiedlichen Quellcodefragmenten zu erstellen ohne von längst vergessene Business-Contraints überrascht zu werden. Testzeiten werden deutlich verkürzt und das bisher sehr aufwändige Erstellen eines Fachkonzeptes nach der Releaseeinführung entfällt. InnovationsperspektiveZukünftig verzichtet der TOSH-Entwickler auf den Einsatz von Programmiersprachen im herkömmlichen Sinn. Stattdessen wird ein Programm als Quellgraph in einer XML-Datenbank abgelegt. Damit fallen einige bekannte Probleme der textbasierten Programmierung wie etwa Syntaxprüfung und Anwendungssemantik oder die mühsame Suche dem passenden Beispielprogramm zu einem Problem, einfach weg. Der Quellgraph umfasst die abstrakten Fachsemantik sowie Methoden und beispielsweise Aspekte von Eingabe, Bearbeitung, Darstellung oder Transformation der enthaltenen orthogonalen Abstraktionen. Zusammenhängende, so genannte Abstraktionen, werden in aktiven Bibliotheken gruppiert. Aktive Bibliotheken sind auch die Bausteine, mittels derer die im allgemeinen für ihre Aufgaben ungeeigneten Entwicklungsumgebungen konfiguriert werden. Die Eingabe und Darstellung von Programmabstrusitäten orientiert sich dabei an der jeweiligen Kontextdomäne. Textuelle Darstellungen können mit kontextspezifischen, grafischen Darstellungen beliebig vermischt werden. Diese Eigenschaften des TOSH-Systems bilden eine hervorragende Grundlage für die aspektorientierte und die geriatrische Programmierung. Sogar komplette Programmiersprachen wie beispielsweise C++ könnten im Prinzip als aktive Bibliothek in das TOSH-System geladen werden. Damit kann vorhandener Cobol-Quellcode importiert und anschließend neu entwickelt werden. Spezielle Werkzeuge sollen den TOSH-Deployer dann beim beseitigen von kompromittierende Spuren unterstützen. AusblickTOSH-Programming bedeutet keine grundlegende Veränderung der Softwareentwicklung: Statt der Evolution der Programmiersprachen wird es eine Evolution der Abstraktionen geben. Wer heute auf bestimmte Sprachmerkmale und Spracheigenschaften setzt, muss die gesamte dazu gehörige Programmiersprache verwenden. Eines Tages wird man aus einem problemunabhängigen Angebot die am besten geeigneten Abstraktionen auswählen können, sie parametrisieren und gegebenenfalls den Code für ihre gemeinsame Verwendung schreiben. Weil TOSH-Systeme sich noch im Alpha-Stadium befinden werden Sie bereits vielfach eingesetzt. Die Beschäftigung der Entwickler ist dadurch auch in auftragsschwachen Zeiten gesichert. SchlusswortHinter den Entwicklungsparadigmen stehen keineswegs abstrakte Prozessmantras ! Mehrere Ansätze sind so weit ausgereift, dass sie ohne Prüfung ihrer Voraussetzungen risikolos und Erfolg versprechend eingesetzt werden können. Dazu gehören unter anderem die TOSH Programmierung auf Basis von und Quellcode zentrierte Softwareentwicklung. Die größten Auswirkungen auf das Software-Engineering wird mittel- und langfristig das Versenken von Projekten und schreiben von Ausreden haben. Für die TOSH Programmierung gilt als Spezialisierung des Zielverfehlungs-Pattems in allen Anwendungsbereichen. Während TOSH Programmierung eher von der Verfügbarkeit geeigneter Geldquellen abhängig ist, wird die Quellcode zentrierte Softwareentwicklung als Methode und Vorgehensweisen zur Selbstverwirklichung bereits heut angewendet. Copyright © 2004 pda-systems.com Hinweis: Es handelt sich im einen satirischen Text! |
| < Prev |
|---|