En av de största utmaningarna i tillhandahållandet av distribuerade system är boende för evolutionär förändring. Detta kan innebära ändringar eller utökningar av systemet som inte planerades vid tidpunkten för konstruktionen. Inom många tillämpningsområden finns det dessutom ett krav på att systemet ska beakta sådana förändringar dynamiskt, utan att hindra eller störa driften av de delar av systemet som inte påverkas av ändringen. Eftersom beskrivningen av programvarustrukturen (komponenter och sammanlänkningar) ger en tydlig metod för både systemförståelse och konstruktion, förefaller det lämpligt att även ange ändringar som strukturella förändringar när det gäller skapande av komponenter/deleation och anslutning/avkoppling. Dessa ändringar tillämpas sedan på det operativa systemet självt för att producera det modifierade systemet. I detta dokument presenteras en modell för dynamisk förändringshantering som skiljer strukturella problem från komponenttillämpningar. Denna åtskillnad av frågor gör det möjligt att utforma allmänna strukturella regler för ändringar på konfigurationsnivå utan att man behöver beakta tillämpningstillståndet och specificeringen av tillämpningskomponentåtgärder utan förkunskaper om de faktiska strukturella förändringar som kan komma att införas. Dessutom kan ändringarna tillämpas på ett sådant sätt att de lämnar det modifierade systemet i ett konsekvent tillstånd och inte orsakar några störningar för den opåverkade delen av det operativa systemet. Modellen tillämpas på ett exempelproblem, "evolverande filosofer". De principer som beskrivs i denna modell har implementerats och testats i Conic-miljön för distribuerade system.
I REF struktureras ett programvarusystem in i strukturkonfigureringsfrågor, som specificerar ändringar av programvaruarkitektur och funktionella tillämpningsfrågor, som ger möjlighet att ändra på strukturkonfigureringsfrågor.
The Evolving Philosophers Problem: Dynamic Change Management.
{'venue': 'IEEE Transactions on software engineering', 'journal': None, 'mag_field_of_study': ['Computer Science']}