Читать книгу API-Design - Kai Spichale - Страница 38
3.2Heuristiken und Trade-offs
ОглавлениеIn sehr kleinen Projekten entsteht ein Entwurf häufig informell, während der Softwareentwickler vor seinem Computer sitzt [McConnell 2004]. Der Entwurf besteht vielleicht aus Pseudocode, der einige Klassenschnittstellen skizziert. Danach folgt schon die eigentliche Umsetzung. Für größere Projekte ist ein Entwurf jedoch sehr wichtig. Der fertige Softwareentwurf sollte durchdacht und gut strukturiert sein und alle priorisierten Anforderungen umsetzen. Doch der Prozess, der zu diesem Ergebnis führt, sieht bei Weitem nicht so ordentlich aus. David Parnas und Paul Clements bringen es auf den Punkt [Parnas & Clements 1986]:
»Die Vorstellung, dass ein Softwareingenieur seinen Entwurf in einem rationalen, fehlerfreien Weg aus den Anforderungen ableitet, ist ziemlich unrealistisch. Kein System ist jemals auf diese Weise entwickelt worden, und wahrscheinlich wird das auch nie passieren. Selbst die Entwicklung kleiner Programme in Lehrbüchern und Artikeln sind unrealistisch. Sie wurden überarbeitet und aufpoliert, bis der Autor uns gezeigt hat, was er beabsichtigte, und nicht, was tatsächlich geschah.«
Daher muss man akzeptieren, dass »die erste Version niemals perfekt ist« [Tulach 2008]. Fast jedes Programm muss im Verlauf der Zeit weiterentwickelt werden, weil sich Anforderungen ändern. Wichtige Anforderungen in der Vergangenheit können morgen ungültig sein. Es könnte auch sein, dass Benutzer eine API für Aufgaben einsetzen, für die sie ursprünglich nicht konzipiert wurde.
Aus diesem Grund ist das in diesem Kapitel beschriebene Vorgehen eine Heuristik und kein deterministischer Algorithmus, den Sie Schritt für Schritt abarbeiten können, um sicher zum bestmöglichen Ergebnis zu gelangen.