Zur Boardunity Forenstartseite
  #1  
Alt 02.11.2007, 12:06
Mitglied
 
Registriert seit: 10.2007
Beiträge: 138

Die SOFTWAREKRISE


Hallo!
Hatte vorhin doch glatt mal hier auf Boardunity.de versucht den Begriff „Softwarekrise“ bei der [Suchen]-Funktion einzugeben, und bekam dabei diese System-Antwort:
Zitat:
Deine Suchanfrage erzielte keine Treffer. Bitte versuche es mit anderen Suchbegriffen.
… und das, obwohl ich aber weiß, dass dieses Thema („Softwarekrise) hier schon mal „am Rande“ angeschnitten worden ist bei diversen Themen. Eigentlich ist das folgende Thema allgegenwärtig, und es wird INDIREKT andauernd darüber diskutiert - ohne dabei eigentlich den wahren Hintergrund des einen oder anderen "Übels" zu kennen ...

Wie dem auch sei – und vielleicht vorab kurz etwas Geschichte:

Mir wurde mal „im Jahre Schnee“ über einen Zeitraum von 2 Semestern beigebracht (man hat es zumindest versucht), dass ICH zwar nicht programmieren können muss, aber wenigstens eine bestimmte „Sprache“ erlernen sollte. Und zwar eine Sprache, die jeder Programmierer auf der ganzen Welt verstehen kann – natürlich, sofern auch er diese versteht (und nicht nur bloße Programmier-Kenntnisse hat). Und NEIN, es handelte sich dabei nicht um Englisch o.ä., sondern um das „Objektorientierte Modellieren und Entwerfen“.

Objektorientiertes Modellieren und Entwerfen ist eigentlich eine recht simple Methode / Technik also, Objekte der REALEN Welt zunächst zu modellieren (quasi „ordinär“ mal per Hand skizzieren - aber nach einem bestimmten System / Methode), und danach das entstandene (vollständige) Objekte-Model zur Entwicklung eines sprach-unabhängigen Entwurfs – also, UNABHÄNGIG von einer bestimmten Programmiersprache – zu verwenden. Und wobei sich dieser Entwurf dann ganz an die dabei gefundenen Objekte orientiert / lehnt.

Die ganze Sache dient ferner dazu, die Verständigung zwischen einem Kunden (im Normalfall Endanwender der Software) und den Entwicklern / Programmieren zu erleichtern, und schließlich dazu, um gleichzeitig fundamental leichter wartbarere und natürlich auch leichter erweiterbarere Systeme zu erhalten (die auch jeder andere Entwickler / Programmierer wieder schnell nachvollziehen kann). Jedenfalls, all diese im Rahmen einer Anforderungsanalyse angewandten Methoden (im Rahmen des „Requirements Engineering“), werden dann letztendlich für die direkte Implementierung in (irgend-)eine Programmier- oder Datenbanksprache verwendet.

Und genau dabei ist „das hüpfende Komma“ der Vergangenheit zu finden:
Wenn eine Software oder Web-Anwendung irgendwann mal in der Vergangenheit von Anfang an auf diesen (nachvollziehbaren) Methoden und Techniken beruhen WÜRDEN (bzw. diese heute noch existieren / vorhanden sein würden zu einer jeweiligen Software), dann wäre es nicht zur so genannten „Softwarekrise“ gekommen.

Im Klartext heißt das, dass seinerzeit (und LEIDER auch heute noch) Programmierer einfach munter drauflos programmiert haben. Und dieser Umstand ist HEUTE eben Grund dafür, dass sich System-/Web-Entwickler sich die Zähne oft dabei ausbeißen, wenn z.B. eine Schnittstelle einer existierenden (Unternehmens-)Anwendung zu einer weiteren (komplexen) Web-Anwendung gemacht werden soll.

BEISPIEL, damit man die ganze Sache vielleicht leichter nachvollziehen / verstehen kann:
Wenn z.B. von heute auf morgen alle eBay-Entwickler plötzlich gleichzeitig abkratzen würden, dann hat das Ersatz-Entwickler-Team dann ganz sicher „ziemliche Kopfschmerzen“ – SOFERN eben nicht doch zureichende (und natürlich ständig ergänzte) Dokumentationen der (ursprünglichen) System-Entwurfsentscheidungen vorhanden sind.

Dasselbe trifft eben auch auf jede x-beliebige (existierende) Software bzw. Web-Anwendung zu - ob nun Shopping-Portal, Auktionshaus-Software oder irgendeine Foren-Software etc.

Das ganze Problem bei der ganzen Sache ist ja nämlich, dass früher – und LEIDER auch heute noch - die Entwicklung irgendeiner Software oder Web-Anwendung zu oft als einmalige Entwicklung betrachtet wurde, und meist dabei nur in einer spontanen Art und Weise erfolgte (und dies wird LEIDER zu oft noch immer so praktiziert!).
Viele der nachfolgenden Systeme und Web-Anwendungen basieren daher - meist auch aufgrund eines von Entwicklern sehr häufig angewandten „Copy&Paste-Paradigmas“ - ebenfalls nur auf solchen so genannten „Ad-hoc-Anwendungen“, welche dadurch fundamental WICHTIGE Methoden der Anwendungsentwicklung leider vermissen lassen. Daher führen in Folge solche Anwendungen bei Ausbau und allgemeiner Weiterentwicklung meist (zwangsläufig) zu unsauberen Web-Anwendungen mit umfangreichen Qualitätsmängeln. Diese Mängel können wiederum zu schwerwiegenden Problemen bei Betrieb und Wartung einer Web-Anwendung führen – und das ist eben genau der Punkt, den die meisten Anwender der Gegenwart nur zu gut kennen bei der ganzen Sache namens „Software“ und/oder irgendeiner „Web-Anwendung“.

Tja, und eben „die Disziplin des Web-Engineerings“ versucht daher heutzutage (spät, aber irgendwann mal doch) eine Wiederholung der s.g. Softwarekrise insofern zu verhindern, indem dabei Methoden, Techniken, Werkzeuge zur Verfügung gestellt werden (und hoffentlich auch stets angewandt werden!!), um Konzeption, Entwicklung, Betrieb, Wartung und Test qualitativ hochwertiger Webanwendungen auch kosteneffektiv (!) durchführen zu können.
Und so läuft der Hase eben – zumindest sollte er das …

Zitat:
Kommentar eines Web-Nutzers:

PHP scheint in Bezug auf Sicherheit, leider, ein Sack voller Löcher zu sein. Und jeder Update von PHP scheint neue und noch schlimmere Löcher aufzutun.
Ja, dasselbe erscheint mir z. B. bei Microsoft Windows & Co auch so.

Damit meine ich:
Ich gehe einfach einmal davon aus, dass z.B. bei Microsoft so ziemlich „die Elite“ von Entwicklern täglich ihre Brötchen verdienen. Aber wie bitte kommt es dann, dass ich für meine „Windows-XP“-Software-Kiste dauernd so viele Sicherheits-Updates reinbekomme?
Oder: Wie lange hat doch noch mal die Entwicklung von „Windoof-VISTA“ gedauert?
Äh, und wie viele Bugs waren doch gleich nach Markt-Einführung zu finden, und sind immer noch zu finden, OBWOHL angeblich laut Microsoft „besonderes Augenmerk auf Sicherheit bei VISTA gelegt“ worden sein soll??

Bezüglich SICHERHEIT von Anwendungen / Web-Anwendungen:
Auch dieser Punkt wird (heutzutage) schon fundamental bei der Entwicklung von modernen Anwendungen im Rahmen des ganzen Anforderungsanalyse-Szenarios berücksichtigt (sofern es hoffentlich auch getan wird).

Ich denke, zu dem ganzen Thema muss ich wohl nichts mehr hinzufügen, bzw. erwähnen, was ich damit eigentlich alles zum Ausdruck bringen möchte.

Was ich vielleicht noch einbringen möchte - sozusagen als Überleitung zu weiteren Infos und Diskussionen diesbezüglich – Aussagen / Kommentare eines Users hier auf Boardunity.de …
Zitat:
Zitat von gfc Beitrag anzeigen
Das einzige Problem ist dasjenige von fast allen php-lösungen: Fehlende Modularität. Und damit meine ich nicht, dass ich mittels spezifischen Modulen das bestehende System erweitern kann, sondern dass mir der Kern die Möglichkeit bieten würde, teile nach belieben zu manipulieren, neu zusammen zu stellen und zu verändern, ohne das Ding komplett neu zu programmieren. In dem Sinne eine Objektorientierte Programmierung, wie sie bei Nicht-Web-Anwendungen eigentlich standard ist.

Beispiel: Ich möchte den Login eines phpbb mit dem von Redaxo verbinden. Ein Single-Sign-On. Ein Ding der unmöglichkeit, da ich hierfür eine der beiden Lösungen massivst modden muss, was mir natürlich bei einem Update des Kerns all meine Bemühungen wiederholen lässt.

Im Prinzip sollte daher ein perfektes CMS nicht durch dutzende von hierarchisch verzweigten Includes gebildet werden, sondern von sinnvoll portionierten Kern-Modulen, die miteinander via Interface sprechen. Aber eben: Bisher ein Traum..
Grüße!

Geändert von Ghost11 (04.11.2007 um 10:54 Uhr).
Antwort


Stichworte
-

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.
Gehe zu






1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24