System and Software Architecture Development

Wat?

Het ontwikkelen van systeem en softwarearchitecturen voor onze opdrachtgevers staat hierbij centraal.

Systeemontwikkeling is meer dan het ontwikkelen van een software architectuur. Vanuit de systeem architectuur is het belangrijk grip te krijgen op de belangrijkste ‘business drivers’ en requirements (architectural objectives, constraints and principles). Hoe bepalen deze drivers de architectuur? Welke technische beslissingen werden er genomen en waarom? (Architectural issues and rationale for decisions.) Hoe ziet de functionele architectuur van het systeem eruit en op welke wijze wordt deze fysisch afgebeeld op de hardware, software en mechanica? Performance engineering en het vastleggen van budgetten en strategieën ten aanzien van het gebruik van resources in het systeem, vormen hierbij een belangrijk onderdeel.

Waarom?

Vaak zien we bij klanten dat bij architectuurontwikkeling de nadruk ligt op de softwarearchitectuur terwijl de systeemarchitectuur weinig of geen aandacht krijgt. Hierdoor blijven veel aspecten van het systeem onderbelicht. Wij zijn van mening dat een goede balans tussen systeem- en softwarearchitectuur zal leiden tot kostenbesparingen. Doorlooptijden kunnen worden verkort en de herbruikbaarheid en schaalbaarheid van het systeem zullen verbeteren.

Smits-IT was betrokken bij de ontwikkeling van de hdd60, a 'first of kind' ontwikkeling van een micro audio jukebox van Philips.

Hoe?

Smits-IT heeft in de loop der jaren veel ervaring opgedaan met het ontwikkelen van systeem- en software architecturen. Het gebruik van risk-driven system analysis en het in kaart brengen van sensitivity- en tradeoff points zijn hierbij belangrijke concepten.

Bij het ontwikkelen van systeem- en softwarearchitecturen vinden wij het belangrijk dat:

  • De context van het systeem duidelijk is.
    • Product family
    • System variability, invariability
    • System configuration points
  • Aandacht is voor de ‘system architecture analysis’ en dat deze wordt gedeployed; basis om te komen tot architectuurbeslissingen.
  • Logische systeemarchitectuur wordt uitgewerkt; basis voor performance engineering. 
  • Fysische deployment van de architectuur op SW/HW.
  • Performance modellen, streaming modelen duidelijk zijn.
  • Operationele concepten van het systeem duidelijk zijn (start-up, firmware upgrade, etc.)
  • Budgetten en strategieën die ten aanzien van resource gebruik zijn uitgewerkt (memory usage strategieën, power consumption strategieën, etc.).