Software­qua­lität

Unser Verständnis von Softwarequalität

Viel zu oft steht in der Software­ent­wick­lung die Erfül­lung „harter“, funktio­naler Anfor­de­rungen im Mittel­punkt. Für uns geht hohe Güte – sprich Exzel­lenz – in der Software­qua­lität jedoch weit darüber hinaus.

Selbst­ver­ständ­lich müssen die vom Kunden gefor­derten Krite­rien zufrie­den­stel­lend und umfas­send umgesetzt werden. Zudem muss dem Nutzer eine bedien­bare und stabile Software zu Verfü­gung gestellt werden. Doch erst durch die syste­ma­ti­sche Beach­tung nicht-funktio­naler Anfor­de­rungen erfüllt eine gute Software­lö­sung auch langfristig die an sie gestellten Anforderungen.

Da Software stetig weiter­ent­wi­ckelt wird, legen wir großen Wert auf eine klare Archi­tektur und verständ­li­chen Code. Denn nur eine pflege­leichte Software kann stabil und sicher betrieben werden. Es ist ein wesent­li­cher Teil unserer Verant­wor­tung und Philo­so­phie, dass sich alle Software­pro­dukte und ‑lösungen von iTE SI auch in Zukunft als zuver­lässig, verständ­lich und wirtschaft­lich erweisen.

iTE SIcht­weisen:
Unsere Sicht auf Softwarequalität

Durch die Erfah­rung aus zahlrei­chen Entwick­lungs­pro­jekten haben wir als Software­ent­wickler unsere eigenen Sicht­weisen auf Software­qua­lität. So vielfältig, wie die Anfor­de­rungen an eine gute Software sind, so umfas­send ist unser Blick auf dieses wichtige Thema.

YouTube

Mit dem Laden des Videos akzep­tieren Sie die Daten­schutz­er­klä­rung von YouTube.
Mehr erfahren

Video laden

Bild von Wolfram Schäfer
Unserer Erfah­rung nach kommt es bei Software­ent­wick­lungs­pro­jekten im Wesent­li­chen auf Evolvier­bar­keit und Erwei­ter­bar­keit an. Deswegen muss der Quell­code für alle Betei­ligten lesbar, trans­pa­rent und nachvoll­ziehbar sein. Das ist gerade im Maschi­nenbau mit seinen langen Produkt­le­bens­zy­klen extrem wichtig. 

Wolfram Schäfer

Geschäfts­führer IT Enginee­ring Software Innovations

Was zeichnet eine „gute“ Software aus?

Eine Software kann dann als quali­tativ gut angesehen werden, wenn sie alle funktio­nalen Anfor­de­rungen sicher und stabil erfüllt. Darüber hinaus muss sie klar und einfach zu bedienen sein und nicht-funktio­nale Anfor­de­rungen berück­sich­tigen. Software­qua­lität umfasst somit äußere und innere Quali­täts­merk­male.

Wir richten in unseren Entwick­lungs­pro­zessen einen beson­deren Fokus auf die inneren Quali­täts­merk­male von Software. Sie sind ausschlag­ge­bend dafür, ob eine Software leicht verständ­lich, wartbar und einfach weiter­zu­ent­wi­ckeln ist.

Kurz gesagt: Eine quali­tativ gute Software ist in ihrer Funktion stabil, in der Bedie­nung logisch und über ihren Produkt­le­bens­zy­klus wirtschaftlich.

Grafik zeigt innere und äußere Softwarequalitätsfaktoren anhand eines Eisbergs
Das Eisberg­mo­dell verdeut­licht innere und äußere Softwarequalitätsmerkmale

Nicht-funktio­nale Softwarequalitätskriterien

Neben der fast selbst­ver­ständ­li­chen Erfül­lung funktio­naler Anfor­de­rungen, ist aus Quali­täts­sicht die Einhal­tung nicht-funktio­naler Anfor­de­rungen notwendig. Nur wenn diese beachtet werden, entstehen nachhal­tige und wirtschaft­liche Software­lö­sungen.

Das gilt umso mehr, je länger sich der Produkt­le­bens­zy­klus einer Software erstreckt. Unter diesen Gesichts­punkten muss Software wartbar, erwei­terbar und wieder­ver­wendbar sein. Aus unserer Sicht sind dies die wichtigsten Quali­täts­kri­te­rien in der Softwareentwicklung.

Wartbarkeit 

Software kann einfach an sich ändernde Anfor­de­rungen angepasst werden. Updates sind ohne großen Aufwand und Risiko möglich. 

Erweiterbarkeit 

Software kann einfach um weitere Funktio­na­li­täten ergänzt werden. Der Aufwand für notwen­dige Skalie­rungen sind gering. 

Wiederverwendbarkeit 

Software kann ganz oder teilweise als Grund­lage für die Erstel­lung neuer Lösungen verwendet werden, für die sie ursprüng­lich nicht entwi­ckelt wurden. 

Wer profi­tiert von hoher Softwarequalität?

Von hochwer­tiger Software­qua­lität profi­tieren alle Prozess­be­tei­ligten, vom Auftrag­geber über den Software­ent­wickler bis zum Nutzer der Software. Jede Perso­nen­gruppe spürt dabei eigene Vorteile.

Anwender

  • Nutzung einer stabilen und sicheren Software
  • kurze Einar­bei­tungs­zeit und effizi­ente Bedie­nung durch hohe Usabi­lity der Software
  • Spaß bei der Nutzung durch gute User Experience
  • lange Nutzungs­dauer der Software

Auftrag­geber

  • Entwick­lung einer funkti­ons­fä­higen Lösung im gesetzten Projektrahmen
  • schnelle Reaktion auf Markt-
    verän­de­rungen durch konti­nu­ier­li­chen Entwicklungsprozess
  • hohe Wirtschaft­lich­keit durch Wieder­ver­wend­bar­keit der entwi­ckelten Softwaremodule
  • Unabhän­gig­keit von Dienst­leis­tern durch wartbaren Quell­code (kein Vendor Lock-in)

Entwickler

  • höhere Entwick­lungs­ge­schwin­dig­keit durch regel­mä­ßige Fertig­stel­lung einzelner Funktionalitäten
  • höhere Motiva­tion durch ein struk­tu­riertes Vorgehen und klare Rahmenbedingungen
  • weniger Zeitauf­wand für die Fehler­suche und ‑behebung
  • effizi­ente Teamar­beit durch hohe Trans­pa­renz im Team und kleine Arbeitspakete

Der Mensch als zentraler Erfolgsfaktor

Quali­tativ hochwer­tige Software entsteht, wenn das Mindset des Entwick­ler­teams stimmt und ein Bewusst­sein für hohe Software­qua­lität fest veran­kert ist. Dabei ist es wichtig, gemeinsam zu arbeiten sowie mitein­ander und vonein­ander zu lernen. Wenn Software­ent­wickler schon mit Hürden und Problemen „schlechter“ Software konfron­tiert waren, entwi­ckeln sie ein Gespür dafür, worauf es bei der Entwick­lung wirklich ankommt. Viel lieber lernen wir jedoch aus erfolg­rei­chen Projekten mit „guter Software“ als Ergebnis.

Neben allen Maßnahmen zur Quali­täts­si­che­rung sind unsere erfah­renen Entwick­le­rinnen und Entwickler der beste Garant dafür, dass Software­lö­sungen von iTE SI höchsten Quali­täts­an­sprü­chen genügen.

Unser Mindset

  • Tiefes Verständnis für alle Aspekte der inneren und äußeren Software­qua­lität
  • Ausge­prägtes Verant­wor­tungs­be­wusst­sein für den langfris­tigen Nutzen und die Wirtschaft­lich­keit der Software
  • Stand­hafte Überzeu­gung, nur quali­tativ hochwer­tige Software entwi­ckeln und ablie­fern zu wollen, gleichsam einem „Ehren­kodex“
  • Verant­wor­tungs­volle Beratung des Auftrag­ge­bers bei der Formu­lie­rung von Vorgaben für eine quali­tativ hochwer­tige Software
  • Unein­ge­schränkte Offen­heit und dauer­hafte Lernbe­reit­schaft für Trends und den Einsatz neuer Techno­lo­gien, Tools und Methoden
  • Agile Arbeits­weise in inter­dis­zi­pli­nären und flexi­blen Teams
  • Positive Fehler­kultur, um eine für den Kunden optimale Lösung zu finden und umzusetzen

Was sind relevante Softwarequalitätsmerkmale?

Formal betrachtet setzt sich Software­qua­lität aus äußeren und inneren Quali­täts­merk­malen zusammen und ergibt sich aus dem Grad der Erfül­lung von funktio­nalen und nicht-funktio­nalen Anfor­de­rungen. Diese sind in verschie­denen Normen und Standards (DIN ISO) beschrieben. In der Praxis hat es sich für uns bewährt, den Entwick­lungs­pro­zess projekt­spe­zi­fisch mit passenden Methoden und Standards aufzu­setzen, um Software­qua­lität im jewei­ligen Kontext sicherzustellen.

  Funktio­nale Quali­täts­merk­maleNicht-funktio­nale Qualitätsmerkmale
Funktio­na­lität
  • Richtig­keit
  • Angemes­sen­heit
  • Inter­ope­ra­bi­lität
  • Ordnungs­mä­ßig­keit
  • Sicher­heit
Wartbar­keit
  • Analy­sier­bar­keit
  • Modifi­zier­bar­keit
  • Stabi­lität
  • Prüfbar­keit
  • Evolvier­bar­keit
Zuver­läs­sig­keit
  • Reife
  • Fehler­to­le­ranz
  • Wieder­her­stell­bar­keit
Benutz­bar­keit
  • Verständ­lich­keit
  • Erlern­bar­keit
  • Bedien­bar­keit
Effizienz
  • Zeitver­halten
  • Verbrauchs­ver­halten
Übertrag­bar­keit
  • Anpass­bar­keit
  • Instal­lier­bar­keit
  • Konfor­mität
  • Austausch­bar­keit
Grafik zeigt Software-Qualitätsmerkmale
Abbil­dung in Anleh­nung an DIN ISO 9126.

Wie kann Software­qua­lität gemessen werden?

Unserer Erfah­rung nach ist die Beurtei­lung der Qualität von Software­pro­dukten anhand definierter Messwerte schwierig. Zwar können mittels verschie­dener Software-Metriken die seman­ti­sche und die proze­du­rale Komple­xität von Software, Modulen oder Quell­codes gemessen bzw. beurteilt werden. Doch mit diesen Metriken kann keine eindeu­tige oder objek­tive Aussage über die Software­qua­lität abgeleitet werden. Sie dienen ledig­lich als Anhalts­punkt dafür, ob Eigen­schaften, die auf einen hohen Grad an Einfach­heit und Verständ­lich­keit hindeuten, erfüllt werden.

Es gibt also nicht einen eindeu­tigen, klaren Wert zur Messung von Softwarequalität! 

Das beste Maß für Software­qua­lität ist die Zufrie­den­heit unserer Kunden. 

Wie können wir Sie unterstützen?

Sie suchen einen Entwick­lungs­partner für die Umset­zung komplexer Software­pro­jekte im indus­tri­ellen Umfeld?