1. Simplifying the Complex: Strategies to reduce existing API Complexity using CPS techniques
- Author
-
Nolst Trenité, Thomas, Kosch, T.A. (Thesis Advisor), Nolst Trenité, Thomas, and Kosch, T.A. (Thesis Advisor)
- Abstract
Software development plays a crucial role in driving technological advancements and fostering innovation across industries. However, the ever-increasing complexity in software systems poses significant challenges. This research aims to explore the origins of software complexity and develop strategies to mitigate it. Specifically, it investigates software complexity through the lens of Complex Problem Solving (CPS) and Software Comprehension, areas that have received limited attention thus far. The study focuses on API integration, a common area of software development, and examines two strategies (strategy A and B). These strategies incorporate the CPS techniques decomposition and Lean Thinking to address different dimensions of complexity inherent in API software. In a user study (N=30), participants had to retrieve data from an API platform and use it to build small conceptual prototype applications. Metrics related to time, successfulness in task and (perceived) effectiveness were utilized to assess the impact of the strategies on reducing interface and system complexity. The findings reveal how strategy A significantly reduces task completion times and the time required for the initial API call. Moreover, strategy A demonstrates superior performance compared to the baseline in metrics related to complexity. This highlights the effectiveness of concepts from Lean Thinking in reducing software complexity. Strategy B shows promising results in supporting developers’ individual completion of API integration tasks and facilitating software comprehension by providing tailored learning materials suitable for common-sense learners. On the whole, developers expressed high levels of satisfaction with the effectiveness of both strategies in achieving their respective goals. This research establishes a foundation for enhanced interaction with complex software systems, opening avenues for future studies to explore more effective support strategies. The outcomes contribute to
- Published
- 2023