System-/Architektur-Consulting

Die richtigen Entscheidungen treffen.

Latenz, Durchsatz, Rechenleistung oder Speicherbandbreite – irgendetwas verdirbt einem immer den Tag. Ob Sie ein neues Produkt von Grund auf planen oder Ihre Entwicklung immer mehr durch begrenzte Ressourcen eingeschränkt wird: wir helfen Ihnen gerne bei Analysen und dem Treffen der richtigen Entscheidungen.

Wobei wir helfen können

Entwicklung eines neuen Produktes

Bei der Entwicklung eines neuen Produktes, das aus Hardware- und Softwarekomponenten besteht, müssen Sie stets entscheiden, welche Hardware- und welche Softwarearchitekturen sie unterstützten wollen. Aber wie kommen Sie von „das Produkt soll folgendes können“ zu „die Hardware muss folgendes können“? Oder von „die Hardware, die unser finanzielles Budget zulässt, kann folgendes“ zu den passenden Algorithmen, Datenstrukturen und der Softwarearchitektur?

Wir helfen Ihnen in der Design-Phase Ihres Produkts mit:

  • Identifikation der nötigen Performance-Kenngrößen, die sich aus dem Anforderungskatalog ergeben.
  • Erstellen eines passenden mentalen Modells.
  • Definieren angemessener Budgets für die einzelnen Softwarekomponenten.
  • Vergleich möglicher Hardware mit den relevanten Vor- und Nachteilen.
  • Aufstellen von Performance-bezogenen Richtlinien (mit jeweiliger Begründung) für das System- und Softwaredesign.

Lösung bereits bestehender Performance-Probleme

Softwareentwicklung kann durch viele Dinge blockiert werden, manchmal auch zum vollständigen Erliegen kommen; sei es, dass sich Kundenanforderungen während des Projekts ändern, dass einer Ihrer Zulieferer eine neue Version seiner Softwarekomponente mit doppeltem Ressourcenverbrauch ausrollt, oder dass Ihre Einschätzungen zum Ressourcenverbrauch zu optimistisch waren. Infolge dessen müssen Softwareentwickler ihre Zeit damit verbringen, die Laufzeit oder den Speicherverbrauch zu reduzieren, anstatt an den dringend nötigen Features zu arbeiten.

Wir optimieren die Laufzeit und den Speicherverbrauch Ihrer Software und unterstützen Sie in der Softwarearchitektur bei:

  • Erstellen von Simulationen und abstrakten Modellen des existierenden Systems, um “was wäre, wenn”-Fragen zu beantworten.
  • Analyse der Auswirkung von Operationen auf Systemebene, wie z.B. Kernel-Calls oder Interprozesskommunikation.
  • Identifikation unbeabsichtigter Wirkungsketten, die zu Wartezeiten führen.
  • Zusammenfassung der gewonnenen Erkenntnisse in eine Entscheidungsbasis für Ihre Softwarearchitektur und als Richtlinien für die Entwickler.