Best Practices, Challenges and Opportunities in Software Engineering

A special issue of Computers (ISSN 2073-431X).

Deadline for manuscript submissions: 31 August 2024 | Viewed by 15865

Special Issue Editor

Faculty of Engineering and Computer Science, Concordia University, Montreal, QC H3G 1M8, Canada
Interests: software engineering; distributed computing; cloud-native services and architecture; applied machine learning

Special Issue Information

Dear Colleagues,

Software is pervasive in human society, having grown at an accelerated rate. The capabilities of software have transformed all aspects of our lives, including governance, education, industries, economics, politics, social relations, and cultural development. With the advances in hardware acceleration, communication technologies, and computing models, new types of services and applications delivered by software are emerging at a rapid pace. For example, a cloud-native service can achieve failover in a virtual node in mere minutes, while it takes hours for a node to be replaced within traditional in-house data centers. One challenge in this field is posed by the need to catch up with the development of software lifecycle to address designs, architectures, operations,  technical debts, costs, and emerging domains. On the other hand, the massive expansion of software has begun to positively influence ethics and social relations, demonstrating the benefits of software for human society. This Special Issue calls for papers presenting technological innovations, novel research outcomes, and inspiring applications dedicated to best practices, challenges, and opportunities in the field of software engineering. We invite papers covering the following aspects of software engineering, among other relevant topics:

  • Ethics and social studies for software engineering ;
  • Software design methods and best practices;
  • Requirement engineering;
  • Software testing for distributed computing, cloud services;
  • Software code analysis for emerging domains such IoT, edge computing, block chain, autonomous driving;
  • Software repository mining;
  • Software architecture for large-scale software systems;
  • Software engineering for machine learning;
  • Machine learning for software engineering;
  • Software quality of emerging attributes, including trustworthiness, transparency, explainability, observability, audibility, sustainability;
  • Software process for emerging domains and applications;
  • Software metrics and measurement for emerging attributes;
  • Software engineering for data science and engineering;
  • Tools, methods, and models for software development;
  • CI/CD and DevOps for specific aspects such as security, machine learning, XAI.

Dr. Yan Liu
Guest Editor

Manuscript Submission Information

Manuscripts should be submitted online at www.mdpi.com by registering and logging in to this website. Once you are registered, click here to go to the submission form. Manuscripts can be submitted until the deadline. All submissions that pass pre-check are peer-reviewed. Accepted papers will be published continuously in the journal (as soon as accepted) and will be listed together on the special issue website. Research articles, review articles as well as short communications are invited. For planned papers, a title and short abstract (about 100 words) can be sent to the Editorial Office for announcement on this website.

Submitted manuscripts should not have been published previously, nor be under consideration for publication elsewhere (except conference proceedings papers). All manuscripts are thoroughly refereed through a single-blind peer-review process. A guide for authors and other relevant information for submission of manuscripts is available on the Instructions for Authors page. Computers is an international peer-reviewed open access monthly journal published by MDPI.

Please visit the Instructions for Authors page before submitting a manuscript. The Article Processing Charge (APC) for publication in this open access journal is 1800 CHF (Swiss Francs). Submitted papers should be well formatted and use good English. Authors may use MDPI's English editing service prior to publication or during author revisions.

Keywords

  • software engineering
  • large scale software systems
  • cloud computing
  • distributed computing
  • software services
  • software ethics
  • software social impact
  • sustainability
  • responsible software development

Published Papers (8 papers)

Order results
Result details
Select all
Export citation of selected articles as:

Research

Jump to: Review

20 pages, 5169 KiB  
Article
A Rule-Based Algorithm and Its Specializations for Measuring the Complexity of Software in Educational Digital Environments
by Artyom V. Gorchakov, Liliya A. Demidova and Peter N. Sovietov
Computers 2024, 13(3), 75; https://doi.org/10.3390/computers13030075 - 11 Mar 2024
Viewed by 1030
Abstract
Modern software systems consist of many software components; the source code of modern software systems is hard to understand and maintain for new developers. Aiming to simplify the readability and understandability of source code, companies that specialize in software development adopt programming standards, [...] Read more.
Modern software systems consist of many software components; the source code of modern software systems is hard to understand and maintain for new developers. Aiming to simplify the readability and understandability of source code, companies that specialize in software development adopt programming standards, software design patterns, and static analyzers with the aim of decreasing the complexity of software. Recent research introduced a number of code metrics allowing the numerical characterization of the maintainability of code snippets. Cyclomatic Complexity (CycC) is one widely used metric for measuring the complexity of software. The value of CycC is equal to the number of decision points in a program plus one. However, CycC does not take into account the nesting levels of the syntactic structures that break the linear control flow in a program. Aiming to resolve this, the Cognitive Complexity (CogC) metric was proposed as a successor to CycC. In this paper, we describe a rule-based algorithm and its specializations for measuring the complexity of programs. We express the CycC and CogC metrics by means of the described algorithm and propose a new complexity metric named Educational Complexity (EduC) for use in educational digital environments. EduC is at least as strict as CycC and CogC are and includes additional checks that are based on definition-use graph analysis of a program. We evaluate the CycC, CogC, and EduC metrics using the source code of programs submitted to a Digital Teaching Assistant (DTA) system that automates a university programming course. The obtained results confirm that EduC rejects more overcomplicated and difficult-to-understand programs in solving unique programming exercises generated by the DTA system when compared to CycC and CogC. Full article
(This article belongs to the Special Issue Best Practices, Challenges and Opportunities in Software Engineering)
Show Figures

Figure 1

17 pages, 797 KiB  
Article
Distributed Representation for Assembly Code
by Kazuki Yoshida, Kaiyu Suzuki and Tomofumi Matsuzawa
Computers 2023, 12(11), 222; https://doi.org/10.3390/computers12110222 - 01 Nov 2023
Viewed by 1327
Abstract
In recent years, the number of similar software products with many common parts has been increasing due to the reuse and plagiarism of source code in the software development process. Pattern matching, which is an existing method for detecting similarity, cannot detect the [...] Read more.
In recent years, the number of similar software products with many common parts has been increasing due to the reuse and plagiarism of source code in the software development process. Pattern matching, which is an existing method for detecting similarity, cannot detect the similarities between these software products and other programs. It is necessary, for example, to detect similarities based on commonalities in both functionality and control structures. At the same time, detailed software analysis requires manual reverse engineering. Therefore, technologies that automatically identify similarities among the arge amounts of code present in software products in advance can reduce these oads. In this paper, we propose a representation earning model to extract feature expressions from assembly code obtained by statically analyzing such code to determine the similarity between software products. We use assembly code to eliminate the dependence on the existence of source code or differences in development anguage. The proposed approach makes use of Asm2Vec, an existing method, that is capable of generating a vector representation that captures the semantics of assembly code. The proposed method also incorporates information on the program control structure. The control structure can be represented by graph data. Thus, we use graph embedding, a graph vector representation method, to generate a representation vector that reflects both the semantics and the control structure of the assembly code. In our experiments, we generated expression vectors from multiple programs and used clustering to verify the accuracy of the approach in classifying similar programs into the same cluster. The proposed method outperforms existing methods that only consider semantics in both accuracy and execution time. Full article
(This article belongs to the Special Issue Best Practices, Challenges and Opportunities in Software Engineering)
Show Figures

Figure 1

29 pages, 1099 KiB  
Article
Dependability Patterns: A Survey
by Ingrid A. Buckley and Eduardo B. Fernandez
Computers 2023, 12(10), 214; https://doi.org/10.3390/computers12100214 - 21 Oct 2023
Viewed by 1802
Abstract
Patterns embody the experience and knowledge of designers and are effective ways to improve nonfunctional aspects of software systems. Although there are several catalogs and surveys of security patterns, there is no catalog or general survey about dependability patterns. Our survey presented an [...] Read more.
Patterns embody the experience and knowledge of designers and are effective ways to improve nonfunctional aspects of software systems. Although there are several catalogs and surveys of security patterns, there is no catalog or general survey about dependability patterns. Our survey presented an enumeration of dependability patterns, which include fault tolerance, reliability, safety, and availability patterns. After defining classification groups and showing basic pattern relationships, we showed the references to the publications where these patterns were introduced and enumerated their intents. Another objective was evaluating these patterns to see if their descriptions are appropriate for a possible catalog, which would make them useful to developers and researchers. We found that most of them need remodeling because they use ad hoc templates or no templates. We considered some models from which we can derive patterns and methodologies that incorporate the use of patterns to build dependable software systems. We also provided directions for research. Full article
(This article belongs to the Special Issue Best Practices, Challenges and Opportunities in Software Engineering)
Show Figures

Figure 1

17 pages, 2020 KiB  
Article
Requirement Change Prediction Model for Small Software Systems
by Rida Fatima, Furkh Zeshan, Adnan Ahmad, Muhamamd Hamid, Imen Filali, Amel Ali Alhussan and Hanaa A. Abdallah
Computers 2023, 12(8), 164; https://doi.org/10.3390/computers12080164 - 14 Aug 2023
Viewed by 1046
Abstract
The software industry plays a vital role in driving technological advancements. Software projects are complex and consist of many components, so change is unavoidable in these projects. The change in software requirements must be predicted early to preserve resources, since it can lead [...] Read more.
The software industry plays a vital role in driving technological advancements. Software projects are complex and consist of many components, so change is unavoidable in these projects. The change in software requirements must be predicted early to preserve resources, since it can lead to project failures. This work focuses on small-scale software systems in which requirements are changed gradually. The work provides a probabilistic prediction model, which predicts the probability of changes in software requirement specifications. The first part of the work considers analyzing the changes in software requirements due to certain variables with the help of stakeholders, developers, and experts by the questionnaire method. Then, the proposed model incorporates their knowledge in the Bayesian network as conditional probabilities of independent and dependent variables. The proposed approach utilizes the variable elimination method to obtain the posterior probability of the revisions in the software requirement document. The model was evaluated by sensitivity analysis and comparison methods. For a given dataset, the proposed model computed the low state revisions probability to 0.42, and the high state revisions probability to 0.45. Thus, the results proved that the proposed approach can predict the change in the requirements document accurately by outperforming existing models. Full article
(This article belongs to the Special Issue Best Practices, Challenges and Opportunities in Software Engineering)
Show Figures

Figure 1

19 pages, 17198 KiB  
Article
The Impact of the Web Data Access Object (WebDAO) Design Pattern on Productivity
by Zoltán Richárd Jánki and Vilmos Bilicki
Computers 2023, 12(8), 149; https://doi.org/10.3390/computers12080149 - 27 Jul 2023
Viewed by 1300
Abstract
In contemporary software development, it is crucial to adhere to design patterns because well-organized and readily maintainable source code facilitates bug fixes and the development of new features. A carefully selected set of design patterns can have a significant impact on the productivity [...] Read more.
In contemporary software development, it is crucial to adhere to design patterns because well-organized and readily maintainable source code facilitates bug fixes and the development of new features. A carefully selected set of design patterns can have a significant impact on the productivity of software development. Data Access Object (DAO) is a frequently used design pattern that provides an abstraction layer between the application and the database and is present in the back-end. As serverless development arises, more and more applications are using the DAO design pattern, but it has been moved to the front-end. We refer to this pattern as WebDAO. It is evident that the DAO pattern improves development productivity, but it has never been demonstrated for WebDAO. Here, we evaluated the open source Angular projects to determine whether they use WebDAO. For automatic evaluation, we trained a Natural Language Processing (NLP) model that can recognize the WebDAO design pattern with 92% accuracy. On the basis of the results, we analyzed the entire history of the projects and presented how the WebDAO design pattern impacts productivity, taking into account the number of commits, changes, and issues. Full article
(This article belongs to the Special Issue Best Practices, Challenges and Opportunities in Software Engineering)
Show Figures

Figure 1

33 pages, 3184 KiB  
Article
The Applicability of Automated Testing Frameworks for Mobile Application Testing: A Systematic Literature Review
by Natnael Gonfa Berihun, Cyrille Dongmo and John Andrew Van der Poll
Computers 2023, 12(5), 97; https://doi.org/10.3390/computers12050097 - 03 May 2023
Viewed by 2337
Abstract
Mobile applications are developed and released to the market every day. Due to the intense usage of mobile applications, their quality matters. End users’ rejection of mobile apps increases from time to time due to their low quality and lack of proper mobile [...] Read more.
Mobile applications are developed and released to the market every day. Due to the intense usage of mobile applications, their quality matters. End users’ rejection of mobile apps increases from time to time due to their low quality and lack of proper mobile testing. This indicates that the role of mobile application testing is crucial in the acceptance of a given software product. Test engineers use automation frameworks for testing their mobile applications. Automated testing brings several advantages to the development team. For example, automated checks are used for regression testing, fast execution of test scripts, and providing quick feedback for the development team. A systematic literature review has been used to identify and collect evidence on automated testing frameworks for mobile application testing. A total of 56 relevant research papers were identified that were published in prominent journals and conferences until February 2023. The results were summarized and tabulated to provide insights into the suitability of the existing automation testing framework for mobile application testing. We identified the major test concerns and test challenges in performing mobile automation testing. The results showed that the keyword-driven testing framework is the widely used approach, but recently, hybrid approaches have been adopted for mobile test automation. On the other hand, this review indicated that the existing frameworks need to be customized using reusable and domain-specific keywords to make them suitable for mobile application testing. Considering this, this study proposes an architecture, the mobile-based automation testing framework (MATF). In the future, to address the mobile application testing challenges, the authors will work on implementing the proposed framework (MATF). Full article
(This article belongs to the Special Issue Best Practices, Challenges and Opportunities in Software Engineering)
Show Figures

Figure 1

Review

Jump to: Research

18 pages, 1016 KiB  
Review
Exploring the Landscape of Data Analysis: A Review of Its Application and Impact in Ecuador
by Manuel Ayala-Chauvin, Fátima Avilés-Castillo and Jorge Buele
Computers 2023, 12(7), 146; https://doi.org/10.3390/computers12070146 - 22 Jul 2023
Cited by 2 | Viewed by 3450
Abstract
Data analysis is increasingly critical in aiding decision-making within public and private institutions. This paper scrutinizes the status quo of big data and data analysis and its applications within Ecuador, focusing on its societal, educational, and industrial impact. A detailed literature review was [...] Read more.
Data analysis is increasingly critical in aiding decision-making within public and private institutions. This paper scrutinizes the status quo of big data and data analysis and its applications within Ecuador, focusing on its societal, educational, and industrial impact. A detailed literature review was conducted from academic databases such as SpringerLink, Scopus, IEEE Xplore, Web of Science, and ACM, incorporating research from inception until May 2023. The search process adhered to the PRISMA statement, employing specific inclusion and exclusion criteria. The analysis revealed that data implementation in Ecuador, while recent, has found noteworthy applications in six principal areas, classified using ISCED: education, science, engineering, health, social, and services. In the scientific and engineering sectors, big data has notably contributed to disaster mitigation and optimizing resource allocation in smart cities. Its application in the social sector has fortified cybersecurity and election data integrity, while in services, it has enhanced residential ICT adoption and urban planning. Health sector applications are emerging, particularly in disease prediction and patient monitoring. Educational applications predominantly involve student performance analysis and curricular evaluation. This review emphasizes that while big data’s potential is being gradually realized in Ecuador, further research, data security measures, and institutional interoperability are required to fully leverage its benefits. Full article
(This article belongs to the Special Issue Best Practices, Challenges and Opportunities in Software Engineering)
Show Figures

Figure 1

32 pages, 863 KiB  
Review
Prioritizing Use Cases: A Systematic Literature Review
by Yousra Odeh and Nedhal Al-Saiyd
Computers 2023, 12(7), 136; https://doi.org/10.3390/computers12070136 - 06 Jul 2023
Cited by 1 | Viewed by 2462
Abstract
The prioritization of software requirements is necessary for successful software development. A use case is a useful approach to represent and prioritize user-centric requirements. Use-case-based prioritization is used to rank use cases to attain a business value based on identified criteria. The research [...] Read more.
The prioritization of software requirements is necessary for successful software development. A use case is a useful approach to represent and prioritize user-centric requirements. Use-case-based prioritization is used to rank use cases to attain a business value based on identified criteria. The research community has started engaging use case modeling for emerging technologies such as the IoT, mobile development, and big data. A systematic literature review was conducted to understand the approaches reported in the last two decades. For each of the 40 identified approaches, a review is presented with respect to consideration of scenarios, the extent of formality, and the size of requirements. Only 32.5% of the reviewed studies considered scenario-based approaches, and the majority of reported approaches were semiformally developed (53.8%). The reported result opens prospects for the development of new approaches to fill a gap regarding the inclusive of strategic goals and respective business processes that support scenario representation. This study reveals that existing approaches fail to consider necessary criteria such as risks, goals, and some quality-related requirements. The findings reported herein are useful for researchers and practitioners aiming to improve current prioritization practices using the use case approach. Full article
(This article belongs to the Special Issue Best Practices, Challenges and Opportunities in Software Engineering)
Show Figures

Figure 1

Back to TopTop