# An Activity Theory-Based Approach for Context Analysis, Design and Evolution
## 5 Conclusions  
This article is centered on some of the key ideas behind a proposal founded on activity theory, which, among its properties, provides the ability to analyze and model complex socio-technical contexts around perpetually evolving system ecologies. According to this approach, these ecologies become useful representations for understanding operating environments closely tied to human actions which influence, and are influenced by, software behavior. Under this premise, and combined with software-centered technological elements, the understanding and clarification of opaque aspects can be increased, leading to better and well-adapted designs and models, especially in conditions where it is necessary to deal with the meaning of a \"_context_\" and its changing dynamics. In this regard, one important topic is \"_contradictions_\", specifically when they are considered as a mechanism towards adaptive solutions rooted in unusual (but not necessarily unexpected) events that disrupt the \"_harmony_\" of a socio-technical ecology. These events are usually associated with human and social behaviors which cannot always be predicted or designed beforehand but that, nevertheless, constitute the basis of the evolution of a technical solution. Thus, under these situations, continuous adjustments are required, as other studies [41; 42] have theorized but have not applied in a practical setting. Additionally, the user acceptability of the proposed activity theory approach was tested through an experiment, showing it to be better adapted to perceptions and usage by developers concerned with the specific factors discussed. In this regard, answers were gathered for the research questions, as follows. For **RQ1** the values obtained showed a relevant impact between obtaining and analyzing software contexts using an activity theory-based approach when compared with an UML-based approach. As shown in the analysis of the factors in Figure 6, the values obtained by the activity theory approach showed that, in practice, it was regarded as a better mechanism for gathering and analyzing contexts. Regarding **RQ2**, it is feasible to establish indicators that measure and estimate the impact of an activity theory approach. Our proposal was to formulate the four factors analyzed and their corresponding subitems. Although it is possible to extend these for subsequent research, we consider that they achieved the goals of the present study. Consequently, **RQ3** was also positively answered, since the formulation of the evaluated factors and their structuring, as well as their weighting through a Likert scale procedure, proved the possibility of carrying out comparisons between activity theory approaches versus alternatives. Although these results are still primary, they open up a promising path as a starting point for new contributions and inspirations regarding advances in context-aware software development. Finally, this novel approach, through the concepts provided by activity theory, may lead to potential applications in other related areas of software engineering, such as, for example, requirements engineering, by facilitating the analysis of complex socio-technical ecologies and their evolution. In this regard, it's a potentially useful instrument for situations in which socio-technical complexity must be broken down and reduced to un derstandable and analyzable elements (activity systems) that, at first glance, traditional methods do not pay attention to. Thus, an activity theory approach helps to analyze potential design decisions and solutions through \"_contradictions_\", in turn helping to describe the underlying elements that configure a context. In addition, by using an activity theory approach, designs can be improved to better reflect the intrinsic fluidity of the socio-technical elements involved, particularly the human ones (behaviors, actions, decisions, objectives, etc.).