Softwaretechnik

Es folgen alle Einträge mit dem Schlagwort Softwaretechnik.

Du kannst den RSS-Feed dieses Schlagwortes abonnieren.


Komplexität automobiler Software

28. Januar 2009

Ich schreibe ja gerade meine Diplomarbeit über das Thema der Modellierung von Produktlinien automobiler Software. Klingt trocken? Ist nicht so. Man kann es sehr einfach modellieren. Stellt euch die Software in einem Auto als eines großen Haufen verschiedener einzelner Funktionen vor. Das können z.B. die Zentralverrieglung und ihre Teilfunktionen, wie das Verriegeln der linken Tür und die Steuerung des dafür zuständigen Elektromotors sein. Verbindet nun in Gedanken alle jene Funktionen mit einem Strich, die irgendwie miteinander zu tun habe. Also z.B. die Funktion des Navigationsystems, eure Position zu bestimmen, mit der Funktion des GPS-Steuergeräts und der Funktion der Signalantenne. Als Ergebnis bekommt ihr ein sg. Bordnetz; das Netzwerk aller Fahrzeugfunktionen und ihrer Abhängigkeiten. Das sieht dann z.B. für einen wenige Jahre alten BMW so aus:

bmw_bordnetz_komplexitaet

Jetzt habt ihr ungefähre Vorstellung, wie komplex recht normale Fahrzeugsoftware ist. Wenn ihr in einer aktuellen Mercedes S-Klasse die Fahrertür öffnet, werden über 50 verschiedene Systeme angestoßen. Dieses Chaos zu verstehen und zu beherrschen, es so darzustellen, dass man praktisch etwas kapieren kann, darum geht es.

Dieses Bordnetzwerk ist im Vergleich zu unserem Gehirn übrigens von absurd lächerlicher Komplexität. Wie ein Sandkorn im Vergleich zu einem Strand. Wenn man diesen Vergleich konkret vor Augen geführt bekommt, fragt man sich jedes Mal, warum Gegner des Naturalismus ein solch faszinierendes und unfassbar komplexes Netz aus hunderten von Millarden von extrem stark vernetzten Neuronen als „nur Atome und bewegte Materie, aus dem keine Seele entstehen kann“ abwerten.


Verschiedene Sichten

24. November 2008


Unit Tests für iPhone SDK

30. August 2008

Cocoa beinhaltet eine kleine Unit Tests Suite, die für Cocoa Touch leider (noch) fehlt, da viele Abhängigkeiten der Unit Test Suite – z.B. CoreData – im iPhone SDK nicht verfügbar sind. Glücklicherweise gibt es bei Google Code ein Projekt namens Google Toolbox for Mac, welches unter anderem auch Unit-Test-Funktionalität anbietet.

Irgendwie hat es etwas Skurriles, dass ausgerechnet Google, welche dank Android im Smartphone-Bereich eine gewisse Konkurrenz für Apple geworden sind, Funktionalität für das iPhone SDK anbieten, bevor Apple es tut.


Warum wir Software Metriken doch brauchen…

7. August 2008

Ich stehe Software Metriken ja eher kritisch gegenüber. Zum einen wegen des breiten Interpretationsspielraumes – ein allgemeines Problem von Statistiken – zum anderen, weil es keinen wirklichen Konsens über eindeutige Qualitätsmerkmale von Software gibt, die auch noch pragmatisch vernünftig, also ohne enormen Aufwand zu ermitteln sind. Man sollte vorsichtig sein, wenn man sich von Metriken leiten lassen will.

Man braucht sie aber trotzdem. Weniger für den Entwickler, als vielmehr für den Kunden.

Ein großes Problem für Kunden von Softwareentwicklern, die selbst nicht vom Fach kommen, ist die Bewertung der Qualität von Software. Gerade Laien kann man wirklich jeden Mist unterjubeln, ohne dass sie die Möglichkeit haben, die Qualität zu verifizieren. Bei einem Haus z.B. kann man als Bauherr wenigstens hingehen und daran rütteln, um seine Stabilität zu untersuchen. Bei einem immateriellen Produkt wie Software ist das weitaus schwieriger.

Einfache Software-Metriken könnten da vielleicht ein wenig Abhilfe leisten. Zumindest könnten sie die Wahrnehmung des Themas beim Kunden schärfen.

Bestes Beispiel sind die Produkte von Webentwicklern, deren Qualität mit “minderwertig” viel zu oft noch schmeichelhaft beschrieben ist – sogar wenn man sich Websites großer Firmen anschaut. Technische Qualität, Usability, Validität. Man will nicht wissen, ob und wenn doch wo die Enwickler ihr Handwerk gelernt haben.

Gestern z.B. habe ich mich über praktisch alle Websites bekannter, Deutscher Automobilhersteller aufgeregt. Heute bin ich über dieses, wirklich gruseliges Beispiel gestolpert.

Das ist einfach nur unfassbare Inkompetenz. Das ist so, als würde BMW seine Bremsblöcke von einem Kaugummi-Hersteller beziehen.


The most agile code metric of them all

6. August 2008

Wo wir schon beim Thema sind:

Quelle: Focus Shift