Grants and Contributions:

Title:
Concern-Driven Development Process
Agreement Number:
RGPIN
Agreement Value:
$100,000.00
Agreement Date:
May 10, 2017 -
Organization:
Natural Sciences and Engineering Research Council of Canada
Location:
Ontario, CA
Reference Number:
GC-2017-Q1-03114
Agreement Type:
Grant
Report Type:
Grants and Contributions
Additional Information:

Grant or Award spanning more than one fiscal year. (2017-2018 to 2022-2023)

Recipient's Legal Name:
Alam, Omar (Trent University)
Program:
Discovery Grants Program - Individual
Program Purpose:

Model reuse remains a major challenge in Model Driven Engineering (MDE), despite the success stories in programming languages as exemplified by class libraries, services, and components. Modellers usually create models from scratch because of limited support for reuse in the current modelling tools. In addition, the crosscutting nature of software development concerns complicates the application of software engineering techniques such as information hiding, decomposition, interfaces, and abstraction in the context of MDE. Concern-Oriented Reuse (CORE) is a novel reuse paradigm that mitigates these challenges by extending MDE with best practices and techniques from advanced modularization and separation of concerns (SoC), goal modelling, and Software Product Lines (SPL). However, the research in CORE remains in its infancy and there is currently no development process based on CORE . This research program’s vision is to develop a Concern-Driven Development (CDD), a next generation software development process that uses concerns as its primary artifact. Whereas classical MDE methodologies focus on models that are built from scratch with little support for reuse, CDD is a reuse-focused development process in which a concern or an application is built by repeatedly reusing other existing concerns. In CDD, a modeller would use a CORE-based modelling language that is appropriate for the current development phase and for the problem domain. Model transformations would then be applied to produce the initial set of models for the next phase. The process will continue until an execute model is produced. In each phase, the modeller should consult a repository of reusable concerns to identify and reuse concerns.
One main factor that contributed to the success of programming languages is the existence of well-documented extensive libraries. We plan in short-time to extend the reusable concern library with advanced technologies to support faster update, versioning, and documentation. We envision that CDD has the potential to transform the software engineering discipline as a whole. Unlike the current development processes that often require software engineers to deal with and be an expert in many concerns simultaneously within each software development phase, CDD would enable software engineers to specialize, i.e., to become concern specialists. Companies could focus on creating long-lived concern libraries, and provide consulting services to customize concerns to specific application context, if necessary. Ultimately, this research program will increase the competitiveness and productivity of the Canadian software industry, bringing the current practices in the industry closer to other engineering disciplines.