CEZET-SOFT
kontakt@cezet-soft.de
Glück-Auf-Str. 13
52146 Würselen
Tel. 02405 85035
Fax 02405 85036
© 1990 - 2005
Impressum

Programmierung Softwareentwicklung Aachen Bonn Köln Düsseldorf NRW
Softwarequalität

Definition

Begriffsdefinition nach DIN:
"Qualität ist die Gesamtheit von Eigenschaften und Merkmalen eines Produkts oder einer Tätigkeit, die sich auf die Eignung zur Erfüllung gegebener Erfordernisse beziehen."

Lesen Sie hier, nach welchen Kriterien wir Software beurteilen, fremde Software und natürlich auch unsere eigene.

Qualitätssicherung Softwaretest ISO 9000 Softwarebeurteilung

CEZET-SOFT:
Qualität, made in Germany!

Vorraussetzung

Die Qualität einer Software kann nach der o.g. Begriffdefiniton nur dann beurteilt werden, wenn die Erfordernisse, denen die Software gerecht werden muss, eindeutig definiert sind. Daraus folgt, dass ein Entwickler auch nur dann Qualität erzeugen kann, wenn ihm diese Erfordernisse (Zielvorgaben) vor Beginn der Entwicklungsarbeiten bekannt sind (siehe auch Target-Coaching).

 

Gebrauchs-
tauglichkeit

Qualitätskriterien:

Besitzt die Software die geforderte Funktionalität? Sind die Funktionen vollständig, und arbeiten sie korrekt?
Alle geforderten Funktionen müssen anwendbar sein!

 

Zuverlässigkeit

Wie stabil arbeitet die Software unter verschiedenen, auch extremen, Bedingungen?
Die Software darf keine Fehler machen und sich nicht von alleine beenden, sprich "abstürzen"!

 

Ästhetische Qualität

Entspricht das Erscheinungsbild der Software (z.B. Bedienoberfläche/GUI) oder der Softwareresultate (z.B. Logging, Formulare) gängigen aktuellen ästhetischen Ansprüchen?
Das Auge isst mit! Eine attraktives, ordentliches Erscheinungsbild der GUI oder des Outputs erhöht die Anwenderakzeptanz!

 

Benutzer-
freundlichkeit

Lässt sich die Software in einer komfortablen Art und Weise bedienen? Entspricht die Bedienoberfläche (GUI) einem Style-Guide (selbstdefiniert oder Standard)?
Eine intuitive Bedienbarkeit mit kontextabhängigen Funktionsstatusberichten erhöht die Anwenderakzeptanz!
Durch Rapid-Prototyping kann die Benutzerfreundlichkeit der Bedienoberfläche schon in einem frühen Entwicklungsstadium getestet werden.

 

Verfügbarkeit

Ist die Software zu jedem Zeitpunkt verfügbar oder gibt es Wartezeiten?
Eine kurze Start- und Ladezeit ist wünschenswert. Ein schneller Ablauf erhöht die Anwenderakzeptanz!

 

Wartbarkeit

Lässt sich die Software leicht warten, d.h. erweitern, verändern, optimieren, usw.?
Software unterliegt in der Regel fortlaufenden Veränderungen. Diese müssen auch von Entwicklern durchgeführt werden können, die nicht am Originalcode mitgearbeitet haben!

 

Wieder-
verwendbarkeit

Lässt sich die Software für verschiedene Einsatzzwecke wieder verwenden?
Die Wiederverwendung von Software für mehrere Einsatzzwecke vermindert Entwicklungskosten und reduziert die Anzahl der neu zu erstellenden Programmzeilen und damit potentielle Fehler!

 

Effizienz, Effektivität

Wie gut ist die Performance? Wie groß ist der Speicherbedarf? Wie schnell lässt sich die Bedienung erlernen? Wie groß ist der Nutzen für den Anwender im Vergleich zum Entwicklungsaufwand bzw. im Vergleich zur Anzahl Programmzeilen?
Effiziente Software ist preiswerte Software!
Umständliche Software ist nicht effektiv!

 

Einfachheit

Wie einfach ist das Softwaredesign? Wie einfach ist die Softwarebedienung? Wie einfach sind die realisierten Algorithmen? Wie einfach lässt sich die Software installieren?
Eine einfache Lösung ist immer besser als eine komplizierte Lösung!

“Alles sollte so einfach wie möglich gemacht werden, aber nicht einfacher.”

Albert Einstein

Installierbarkeit

Wie groß sind die Einsatzrestriktionen bzgl. der Hardwareplattform?
Die Software soll auf allen unterstützten Betriebssystemen installierbar sein und möglichst geringe Anforderungen an die Hardware stellen (CPU, RAM, usw.)!

 

Prüfbarkeit

Gibt es Debug-Schnittstellen? Gibt es lesbares, aussagekräftiges Funktionslogging?
Prüfbarkeit schafft Vertrauen (beim Anwender und beim Auftraggeber) und gewährleistet kurze Reaktionszeiten, wenn doch einmal ein Problem auftaucht.

 

Robustheit

Wie fehlertolerant und wie störungstolerant ist die Software? Wie sicher ist meine Software gegen absichtliche (Sabotage) oder unabsichtliche (Bedienfehler) Datenmanipulation?
Die Software soll auf Bedienfehler, fehlerhafte Eingabedaten, so tolerant reagieren, dass die Funktionstüchtigkeit gewährt bleibt oder die Problemursache transparent gemacht wird.

 

Maßnahmen zur Qualitätssicherung

Es folgen einige Grundsätze unserer Arbeitsweise, die zur Qualitätssicherung unserer Projekte beitragen:

  Die Entwicklung erfolgt nach Phasenmodell mit laufender Erstellung der begleitenden Dokumentation: Realisierungskonzepte (RK), Lastenhefte (LH), Pflichtenhefte (PH), Testlisten (TL), Funktionsbeschreibungen (FB), Benutzerhandbuch
  Aufgrund der vollständigen Dokumentation ist der Entwicklungsprozess ISO 9000 konform.
  Eine detaillierte Projektplanung mit nachvollziehbaren Zwischenzielen ist der rote Faden zum Produkt.
  Die Programmierer sind grundsätzlich auch an der Bedarfsanalyse und der Erstellung des Lastenhefts beteiligt.
  Wir arbeiten zielorientiert: Die Aufgabenstellung führt uns zur Auswahl der geeigneten Entwicklungsumgebung und zur Wahl der Entwicklungswerkzeuge und nicht umgekehrt!
  Der Einsatz von existierenden, getesteten Bibliotheken (Fremd- und Eigenprodukte) verkleinert die Fehlerquote.
  Zu jedem Zeitpunkt des Entwicklungsprozesses gilt: Fehlervermeidung ist effizienter als Fehlerkorrektur => Passive Programmierweise
  Aus Erfahrungen und gemachten Fehlern wird man klüger.
  Den Gesamttest übernimmt ein Mitarbeiter, der nach Möglichkeit nicht an der Realisierung beteiligt war.
  Termine sind dazu da, eingehalten zu werden!
Vorausschauend zu agieren ist erfolgsversprechender als kurzfristig zu reagieren.
  Der Programmcode muss dokumentiert und von jedem Softwareentwickler lesbar sein.
  Richtlinien dürfen die Kreativität nicht hemmen. Nur ein motivierte Entwickler ist ein guter Entwickler.
  Ein gesunder "Pragmatismus" ist erlaubt.