Automated mining of software component interactions for self-adaptation
2014
A self-adaptive software system should be able to monitor and analyze its runtime behavior and make adaptation decisions accordingly to meet certain desirable objectives. Traditional software adaptation techniques and recent "models@runtime" approaches usually require an a priori model for a system's dynamic behavior. Oftentimes the model is difficult to define and labor-intensive to maintain, and tends to get out of date due to adaptation and architecture decay. We propose an alternative approach that does not require defining the system's behavior model beforehand, but instead involves mining software component interactions from system execution traces to build a probabilistic usage model, which is in turn used to analyze, plan, and execute adaptations. Our preliminary evaluation of the approach against an Emergency Deployment System shows that the associations mining model can be used to effectively address a variety of adaptation needs, including (1) safely applying dynamic changes to a running software system without creating inconsistencies, (2) identifying potentially malicious (abnormal) behavior for self-protection, and (3) our ongoing research on improving deployment of software components in a distributed setting for performance self-optimization.
Keywords:
- Software deployment
- Software system
- Resource-oriented architecture
- Package development process
- Software design description
- Software verification and validation
- Systems engineering
- Software development
- Software sizing
- Engineering
- Software engineering
- Data mining
- Component-based software engineering
- Software construction
- Correction
- Source
- Cite
- Save
- Machine Reading By IdeaReader
38
References
18
Citations
NaN
KQI