@article{MattisBeckmannReinetal.2022, author = {Mattis, Toni and Beckmann, Tom and Rein, Patrick and Hirschfeld, Robert}, title = {First-class concepts}, series = {Journal of object technology : JOT / ETH Z{\"u}rich, Department of Computer Science}, volume = {21}, journal = {Journal of object technology : JOT / ETH Z{\"u}rich, Department of Computer Science}, number = {2}, publisher = {ETH Z{\"u}rich, Department of Computer Science}, address = {Z{\"u}rich}, issn = {1660-1769}, doi = {10.5381/jot.2022.21.2.a6}, pages = {1 -- 15}, year = {2022}, abstract = {Ideally, programs are partitioned into independently maintainable and understandable modules. As a system grows, its architecture gradually loses the capability to accommodate new concepts in a modular way. While refactoring is expensive and not always possible, and the programming language might lack dedicated primary language constructs to express certain cross-cutting concerns, programmers are still able to explain and delineate convoluted concepts through secondary means: code comments, use of whitespace and arrangement of code, documentation, or communicating tacit knowledge.
Secondary constructs are easy to change and provide high flexibility in communicating cross-cutting concerns and other concepts among programmers. However, such secondary constructs usually have no reified representation that can be explored and manipulated as first-class entities through the programming environment.
In this exploratory work, we discuss novel ways to express a wide range of concepts, including cross-cutting concerns, patterns, and lifecycle artifacts independently of the dominant decomposition imposed by an existing architecture. We propose the representation of concepts as first-class objects inside the programming environment that retain the capability to change as easily as code comments. We explore new tools that allow programmers to view, navigate, and change programs based on conceptual perspectives. In a small case study, we demonstrate how such views can be created and how the programming experience changes from draining programmers' attention by stretching it across multiple modules toward focusing it on cohesively presented concepts. Our designs are geared toward facilitating multiple secondary perspectives on a system to co-exist in symbiosis with the original architecture, hence making it easier to explore, understand, and explain complex contexts and narratives that are hard or impossible to express using primary modularity constructs.}, language = {en} } @article{FeherWhelanMueller2011, author = {Feher, Kristen and Whelan, James and M{\"u}ller, Samuel}, title = {Assessing modularity using a random matrix theory approach}, series = {Statistical applications in genetics and molecular biology}, volume = {10}, journal = {Statistical applications in genetics and molecular biology}, number = {1}, publisher = {De Gruyter}, address = {Berlin}, issn = {2194-6302}, doi = {10.2202/1544-6115.1667}, pages = {36}, year = {2011}, abstract = {Random matrix theory (RMT) is well suited to describing the emergent properties of systems with complex interactions amongst their constituents through their eigenvalue spectrums. Some RMT results are applied to the problem of clustering high dimensional biological data with complex dependence structure amongst the variables. It will be shown that a gene relevance or correlation network can be constructed by choosing a correlation threshold in a principled way, such that it corresponds to a block diagonal structure in the correlation matrix, if such a structure exists. The structure is then found using community detection algorithms, but with parameter choice guided by RMT predictions. The resulting clustering is compared to a variety of hierarchical clustering outputs and is found to the most generalised result, in that it captures all the features found by the other considered methods.}, language = {en} } @article{Arnold2020, author = {Arnold, Patrick}, title = {Evolution of the mammalian neck from developmental, morpho-functional, and paleontological perspectives}, series = {Journal of Mammalian Evolution}, volume = {28}, journal = {Journal of Mammalian Evolution}, number = {2}, publisher = {Springer}, address = {New York}, issn = {1064-7554}, doi = {10.1007/s10914-020-09506-9}, pages = {173 -- 183}, year = {2020}, abstract = {The mammalian neck adopts a variety of postures during daily life and generates numerous head trajectories. Despite its functional diversity, the neck is constrained to seven cervical vertebrae in (almost) all mammals. Given this low number, an unexpectedly high degree of modularity of the mammalian neck has more recently been uncovered. This work aims to review neck modularity in mammals from a developmental, morpho-functional, and paleontological perspective and how high functional diversity evolved in the mammalian neck after the occurrence of meristic limitations. The fixed number of cervical vertebrae and the developmental modularity of the mammalian neck are closely linked to anterior Hox genes expression and strong developmental integration between the neck and other body regions. In addition, basic neck biomechanics promote morpho-functional modularity due to preferred motion axes in the cranio-cervical and cervico-thoracic junction. These developmental and biomechanical determinants result in the characteristic and highly conserved shape variation among the vertebrae that delimits morphological modules. The step-wise acquisition of these unique cervical traits can be traced in the fossil record. The increasing functional specialization of neck modules, however, did not evolve all at once but started much earlier in the upper than in the lower neck. Overall, the strongly conserved modularity in the mammalian neck represents an evolutionary trade-off between the meristic constraints and functional diversity. Although a morpho-functional partition of the neck is common among amniotes, the degree of modularity and the way neck disparity is realized is unique in mammals.}, language = {en} }