While modern software system development is getting more complex, people in computer science society want to reduce cost, risks and time-to-market. And they try to improve software productivity. The most promising solutions are Component-Based Software Development (CBSD) and software architecture. The purpose of component assembly is to create a new component that has not been in existence. Software architecture that consists of components and connectors is created to reduce a gap between user requirements and the real implementation by abstraction.
A lot of approaches have tried to perform component assembly in software architecture. Their purpose is to hide some details of assembled components through encapsulation for the better identification and sustenance of its properties.
However, the advent of dynamic software architecture, which can evolve and exchange by the reaction of unexpected events at run-time, makes the existing approaches difficult to apply constraints abstraction because of two reasons: (1) consideration of only stable software architecture and static component constraints at the design time, (2) not enough support for the constraints abstraction like multi-level abstraction prediction.
To improve the limitations of the existing approaches, this thesis presents two requirements for the set of goals of a new approach: automatic constraints update in dynamic software architecture and constraints propagation to higher abstraction levels.
The core elements of the approach are (1) a constraints categorization to find an appropriate constraints abstraction method, (2) a procedure for the constraints categorization to propose an execution way for the constraints abstraction, and (3) real abstraction methods to execute the constraints abstraction. The approach is validated by applying it to a few examples and by comparing its results with the results from the existing approaches.
The primary value of this thesis is that users can use ...