Centre for Research on Engineering Software Technologies

Code ownership is a common practice in large, distributed software development teams. It is used to establish a chain of responsibility (who to blame if there is a problem) and simplify management (to whom a task or bug-fix should be assigned). A simple intuition for estimating code ownership is that the developer who has written majority code to a module should be an owner of that module. Moreover, prior research found that a module with weak code ownership (that is written by many minor authors) is more likely to have bugs in the future.

Nowadays, development practices are more than just writing code. A tool-based code review process has tightly integrated with the software development cycle. Recent research has found that in addition to a defect-hunting exercise, reviewers also help an author to improve the code changes. Then, these code writing and reviewing activities are orthogonal: teams can have a developer who reviews a lot but writes little and vice versa.

Does code review activity change what we know about ownership and software quality? This led us to investigate the importance of code review activities for code ownership and software quality. Through an empirical study of Qt and OpenStack systems, we (1) investigated the code authoring and reviewing activities of developers, (2) refined code ownership using code reviewing activities, and (3) studied the relationship between our refined ownership and software quality.

The preprint of the corresponding paper is available here.
This is a cross-post from IEEE Software Blog.


Posted in Publications, Research
Comments Off on The importance of code review activities for code ownership and software quality

Robotic systems are increasingly being integrated in various aspects of everyday life. The robotic applications range from mission critical to infotainment and home service tasks. Robotic systems are expected to assist or replace their human counterparts for efficient and effective performance of all sorts of tasks such as industrial operations or surgical procedures. Like any other software intensive system, Software Architecture (SA)  plays a vital role in ensuring the fulfilment of functional and non-functional requirements of robotics systems. Researchers from different communities (such as robotics, software engineering, industrial engineering, and artificial intelligence) have exploited architectural models to design, reason about, and engineer robotic software. Architecture-centric robotics research and practice can be characterised by various architectural models that emerged overtime such as: (i) object-oriented robotics (OO- R) enabling modularity, (ii) component-based robotics (CB-R) supporting reusability, and (iii) service- driven robotics (SD-R) exploiting dynamic composition of software.

In order to help build a body of knowledge about architectural challenges and solutions of architecting robotics systems, we have carried out a systematic mapping study that has been recently accepted in the Journal of Systems and Software (JSS). This study has systematically identified and classified the existing solutions, research progress and directions that influence architecture-driven modeling, development and evolution of robotic software. Our findings have have identified eight themes that support architectural solutions to enable (i) operations, (ii) evolution and (iii) development specific activities of robotic software. The research in this area has progressed from object-oriented to component-based and now to service-driven robotics representing different architectural models that emerged overtime. An emerging solution is cloud robotics that exploits the foundations of service-driven architectures to support an interconnected web of robots. The results of this SMS facilitate knowledge transfer – benefiting researchers and practitioners – focused on exploiting software architecture to model, develop and evolve robotic systems.

Posted in News
Comments Off on Software Architectures for Robotics Systems

Cloud computing has gained widespread adoption for providing highly scaleable on demand Information and Community Technology (ICT) infrastructure in many domains and businesses. Designing and evaluating cloud-enabled systems is highly complex and challenging undertaking. Researchers have been dedicating significant amount of resources for learning the challenges in designing and evaluating cloud-enabled systems and devising appropriate solutions for those challenges. The literature on this topic has been growing rapidly but there has been no attempt to systematically analysing and synthesising the published literature as a body of knowledge about challenges involved in designing architectures of cloud-enabled systems and the potential solutions to address those challenges. We have carried out a large scale study for the gaol of building a body of knowledge. This piece of work has recently been published as a journal article in Software: Practice and Experience. Following is the taxonomy of the reported challenges.
Screen Shot 2016-08-08 at 23.44.17We have systematically identified and reviewed 133 papers that report architecture related challenges and solutions for cloud-based software systems. This paper reports the methodological details, findings, and implications of a systematic review that has enabled us to identify 44 unique categories of challenges and associated solutions for architecting cloud-based software systems. We assert that the identified challenges and solutions classified into the categories form a body of knowledge that can be leveraged for designing or evaluating software architectures for cloud-based systems. Our key conclusions are that a large number of primary studies focus on middleware services aimed at achieving scalability, performance, response time and efficient resource optimization. Architecting cloud-based systems presents unique challenges as the systems to be designed range from pervasive embedded systems and enterprise applications to smart devices with Internet of Things (IoTs). We also conclude that there is a huge potential of research on architecting cloud-based systems in areas related to green computing, energy efficient systems, mobile cloud computing and IoTs.

Posted in News, Publications, Research
Comments Off on Architecting Cloud-Enabled Systems

This is a cross-post from Christoph Treude’s research blog.  Software development is knowledge-intensive, and the effective management and exchange of knowledge is key in every software project. While much of the information needed by software developers is captured in some form of documentation, it is often not obvious where a particular piece of information is […]

Posted in News, Publications
Comments Off on Improving Access to Software Documentation — Two ICSE 2016 papers

We are delighted to announce that our ongoing collaboration with researchers from Lancaster University and University of Leicester has recently resulted in a publication accepted in the premier conference on Software Engineering, the International Conference on Software Engineering to be organised in Austin, USA in 2016. The title and abstract of the accepted paper are: […]

Posted in News, Publications
Comments Off on Research collaboration on security resulted in ICSE 2016 Paper

CREST hosted Australasian Software Engineering Conference (ASWEC) and Australian Software Week (ASW) on 28thSeptember -1st October 2015.  The event successfully covered several paper presentations, interesting keynote speeches, tutorials, panel discussion and doctoral symposium.  In addition, initiatives were taken to incorporate amazing gatherings during the week namely Big Data Meet up and inaugural Australian Smart Cities […]

Posted in News
Comments Off on CREST hosted ASWEC2015 and Australasian Software Week

CREST researchers presented the following paper at the IEEE International Conference on Healthcare Informatics in Dallas, Texas: P. O’Leary, N. Carroll, P.Clarke,and I. Richardson, “Untangling the complexity of connected health evaluations,” in IEEE International Conference on Healthcare Informatics (ICHI), (Dallas, Texas), October 2015 Abstract: Societal changes are forcing us to reconsider how healthcare is delivered. Connected Health, which involves […]

Posted in News
Comments Off on CREST Researchers Untangling the Complexity of Connected Health Evaluations

In parallel with ASWEC2015, CREST hosted a successful “Smart City Event”. The event brought an excellent opportunity for researchers and practitioners to brainstorm the hot topic of smart city and discuss future prospects to transform Adelaide into smart city. The event included several talks and panel discussions with participation of representatives from Adelaide city council, […]

Posted in News
Comments Off on CREST hosted “Smart City Event”

Empirical Research in Software Engineering. Empirical studies of software engineering involve learning about current practice and evaluating potential improvements in current practice. CREST researchers are concerned with understanding how practitioners conduct great software engineering. Such studies can be characterized into three general areas: The investigation of current techiques, tools and practice. These tend to act as assessments […]

Posted in Research
Comments Off on Empirical Research in Software Engineering

Connected Health. Connected Health involves the use of ICT to improve healthcare quality and outcomes. Essentially “Connected Health” is the utilisation of “connecting” technologies (i.e. communication systems – broadband, wireless, mobile phone, fixed phone lines) and medical devices for healthcare applications. In addition, technologies relating to sensors, alert systems, vital sign monitoring devices, health informatics […]

Posted in Research
Comments Off on Connected Health