Canada Spends Logo

Explorez notre analyse du budget 2026

Grant: Discovery Grants Program - Individual

Concordia University

$48,000.00

Building Multi-language, Multi-system Quality Models Using Features and APIs

EF 2023-24

Résumé
Software Magazine ranked the World's top 500 software companies in 2010: 20 were from Canada, the second-highest national percentage after the United States. Canada's information and communication technologies (ICT) sector include 37,400 companies, among which 33,000 develop software, employing hundreds of thousands of developers to develop and maintain these systems. Conservative studies estimate that 80% of the developer's time and effort are invested in maintenance. Hence, any improvement to the maintainability of systems could results in important gains in time, effort, and, thus, cost reduction. Maintainability remains an elusive characteristic of software systems and software quality models measuring maintainability are difficult to build and apply on different systems. Indeed, quality models are currently under-developed. There are three reasons for these difficulties: (1) each software system is unique, thus a model built for one system often does not apply on another, (2) modern systems often combine different programming paradigms, e.g., object-oriented and functional, thus, lowering their maintainability and complexifying the building of quality models, and (3) the sub-characteristics of maintainability are ill-defined, thus models are defined partially, using proxy measures, often excluding many aspects of the systems. Aspects of the systems include implementation idioms, design choices, architecture styles, user-observable features, internal and external APIs, and used frameworks and libraries. I propose to tackle these difficulties (1) by considering more aspects of the systems and (2) by considering “classes” of systems. Building on my previous and current research work, I will consider features and application programming interfaces (APIs) that provide similar services and that can be found in different systems with different implementations, designs, architectures, and frameworks implemented in different combinations of programming languages. I will use similar services, e.g., undo/redo, as a starting point to study software systems in “classes” and not as unique individual. I will also use features, APIs, metrics, and occurrences of design (anti)patterns to build software quality models focusing on maintainability of multi-language, multi-paradigm systems. I will evaluate these models on large, multi-language, multi-paradigm systems, like Mozilla Firefox or SFL Ring. I will perform three types of validations: (1) quantitatively and qualitatively through (2) developers' studies (with participants) and (3) social studies (e.g., surveys). Thus, I want to contribute to advance our understanding of the aspects of software systems impacting their maintainability and provide developers with concrete, useful means to measure this maintainability so that they can improve it and, thus, can reduce maintenance costs.
Programme
Discovery Grants Program - Individual
Bénéficiaire
Emplacement
Quebec, Canada
Type de bénéficiaire
Academia
Type
Grant
Source
NSERC's Awards Data

Tel que publié

Application id
RGPIN-2018-05084
Name nom
Guéhéneuc, Yann-Gaël
Department département
Computer Science and Software Engineering
Organization id
70
Institution établissement
Concordia University
Province en
Québec
Province fr
Québec
Country en
CANADA
Country fr
CANADA
Fiscal year exercice financier
2023
Competition year année de concours
2018
Award amount
48000
Program id
RGPIN
Program name en
Discovery Grants Program - Individual
Program name fr
Programme de subventions à la découverte - individuelles
Group en
DISCOVERY RESEARCH
Group fr
RECHERCHE AXÉE SUR LA DÉCOUVERTE
Committee code
1507
Committee name en
Computer Science
Committee name fr
Sciences informatiques
Area of application code
801
Area of application group en
Information and communication services
Area of application group fr
Services d'information et de télécommunications
Area of application en
Computer software
Area of application fr
Logiciel
Research subject code
2706
Research subject group en
Information technology
Research subject group fr
Software engineering
Research subject en
Technologie de l'information
Research subject fr
Génie logiciel
Application title
Building Multi-language, Multi-system Quality Models Using Features and APIs
Keyword
Applicability to Many Systems; Application Programming Interfaces; Change-proneness; Design Anti-patterns; Design Patterns; Fault-proneness; Multi-language Systems; Software Metrics; Software Quality Models; User-visible and -invisible Features
Application summary
Software Magazine ranked the World's top 500 software companies in 2010: 20 were from Canada, the second-highest national percentage after the United States. Canada's information and communication technologies (ICT) sector include 37,400 companies, among which 33,000 develop software, employing hundreds of thousands of developers to develop and maintain these systems. Conservative studies estimate that 80% of the developer's time and effort are invested in maintenance. Hence, any improvement to the maintainability of systems could results in important gains in time, effort, and, thus, cost reduction. Maintainability remains an elusive characteristic of software systems and software quality models measuring maintainability are difficult to build and apply on different systems. Indeed, quality models are currently under-developed. There are three reasons for these difficulties: (1) each software system is unique, thus a model built for one system often does not apply on another, (2) modern systems often combine different programming paradigms, e.g., object-oriented and functional, thus, lowering their maintainability and complexifying the building of quality models, and (3) the sub-characteristics of maintainability are ill-defined, thus models are defined partially, using proxy measures, often excluding many aspects of the systems. Aspects of the systems include implementation idioms, design choices, architecture styles, user-observable features, internal and external APIs, and used frameworks and libraries. I propose to tackle these difficulties (1) by considering more aspects of the systems and (2) by considering “classes” of systems. Building on my previous and current research work, I will consider features and application programming interfaces (APIs) that provide similar services and that can be found in different systems with different implementations, designs, architectures, and frameworks implemented in different combinations of programming languages. I will use similar services, e.g., undo/redo, as a starting point to study software systems in “classes” and not as unique individual. I will also use features, APIs, metrics, and occurrences of design (anti)patterns to build software quality models focusing on maintainability of multi-language, multi-paradigm systems. I will evaluate these models on large, multi-language, multi-paradigm systems, like Mozilla Firefox or SFL Ring. I will perform three types of validations: (1) quantitatively and qualitatively through (2) developers' studies (with participants) and (3) social studies (e.g., surveys). Thus, I want to contribute to advance our understanding of the aspects of software systems impacting their maintainability and provide developers with concrete, useful means to measure this maintainability so that they can improve it and, thus, can reduce maintenance costs.