33 research outputs found

    Towards a Theory of Software Development Expertise

    Full text link
    Software development includes diverse tasks such as implementing new features, analyzing requirements, and fixing bugs. Being an expert in those tasks requires a certain set of skills, knowledge, and experience. Several studies investigated individual aspects of software development expertise, but what is missing is a comprehensive theory. We present a first conceptual theory of software development expertise that is grounded in data from a mixed-methods survey with 335 software developers and in literature on expertise and expert performance. Our theory currently focuses on programming, but already provides valuable insights for researchers, developers, and employers. The theory describes important properties of software development expertise and which factors foster or hinder its formation, including how developers' performance may decline over time. Moreover, our quantitative results show that developers' expertise self-assessments are context-dependent and that experience is not necessarily related to expertise.Comment: 14 pages, 5 figures, 26th ACM Joint European Software Engineering Conference and Symposium on the Foundations of Software Engineering (ESEC/FSE 2018), ACM, 201

    Onion Graphs for Focus+Context Views of UML Class Diagrams

    No full text
    The paper introduces the use of onion graphs as a focus+context technique for visualizing large UML class models. The focus area, which can be manually or automatically derived, is visualized using the standard UML notations. The remainder of the model is abstracted (context) and presented at varying levels of detail in onion notation. A selective aggregation technique for achieving the abstractions is presented. Finally, the technique is demonstrated by examples on two subsystems of an open source project
    corecore