2,871 research outputs found
An Empirical Study of Untangling Patterns of Two-Class Dependency Cycles
Dependency cycles pose a significant challenge to software quality and
maintainability. However, there is limited understanding of how practitioners
resolve dependency cycles in real-world scenarios. This paper presents an
empirical study investigating the recurring patterns employed by software
developers to resolve dependency cycles between two classes in practice. We
analyzed the data from 38 open-source projects across different domains and
manually inspected hundreds of cycle untangling cases. Our findings reveal that
developers tend to employ five recurring patterns to address dependency cycles.
The chosen patterns are not only determined by dependency relations between
cyclic classes, but also highly related to their design context, i.e., how
cyclic classes depend on or are depended by their neighbor classes. Through
this empirical study, we also discovered three common counterintuitive
solutions developers usually adopted during cycles' handling. These recurring
patterns and common counterintuitive solutions observed in dependency cycles'
practice can serve as a taxonomy to improve developers' awareness and also be
used as learning materials for students in software engineering and
inexperienced developers. Our results also suggest that, in addition to
considering the internal structure of dependency cycles, automatic tools need
to consider the design context of cycles to provide better support for
refactoring dependency cycles.Comment: Preprint accepted for publication in Empirical Software Engineering,
202
The Boon and Bane of Blockchain:Getting the Governance Right
Countless enterprise blockchains fail to live up to high expectations, often because the supporting governance structures are insufficiently established or have become stagnant. Based on interviews with 153 blockchain executives and an analysis of publicly documented use cases, this article offers a guide for blockchain scholars and practitioners. Its framework highlights the coordination and control challenges that exist in blockchain governance contexts and presents four generic governance modes to address them: chief, clan, custodian, and consortium. Managers can use these governance modes as a basis for four strategic moves (connecting, isolating, loosening, and tightening) to navigate blockchain governance challenges
After the Storm: Interviews With Prominent Economists and Policy Leaders on the Future of the California Energy Market
Presents differing perspectives on the cause of California's energy crisis, and examines possible solutions for restoring a working energy market. Part of a series of research reports that examines energy issues facing California
The planning and organisation of action and activities of daily living in developmental coordination disorder
By the time typical children reach infant school they have in place key movement skills such as running, hopping, jumping, throwing, kicking and writing (Gallahue & Ozmun, 1995; Haywood & Getchell, 2001). While these skills will continue to be refined throughout childhood, they reveal that children possess sophisticated movement planning, organisation and execution skills even at this young age. In this chapter the potential cognitive explanations for developmental coordination disorder, a disorder in which movement skill does not develop in the typical way, will be reviewed, and, where possible, studies will be considered in terms of their parallels to activities of daily living
- …