Advances in Software Engineering and Programming Languages

A special issue of Electronics (ISSN 2079-9292). This special issue belongs to the section "Computer Science & Engineering".

Deadline for manuscript submissions: 15 May 2024 | Viewed by 11505

Special Issue Editors


E-Mail Website
Guest Editor
Department of Information Engineering and Computer Science, Feng Chia University, Taichung 407, Taiwan
Interests: software engineering; programming education; data analytics; service-oriented computing

E-Mail Website
Guest Editor
Department of Computer Science and Engineering, National Taiwan Ocean University, Keelung 202, Taiwan
Interests: software engineering; service computing; semantic web and open data; cloud mobile application

Special Issue Information

Dear Colleagues,

In recent years, the maturity of the Internet, the popularity of mobile devices, and the rapid changes in user needs have led to processes, methods, and tools of software engineering that must be adjusted accordingly to adapt to rapid changes. Therefore, in terms of the software development lifecycle, including requirements analysis, design, development, verification, and maintenance, many challenges and innovative research results have been presented. On the other hand, the evolution of artificial intelligence technology has also had an important impact on software engineering research. Through intelligence and automation, human costs and time spent are dramatically reduced, allowing developers to focus more on the business problem itself.

This Special Issue aims to present the latest research related to processes, methods, tools, and applications of software engineering and programming language. We invite authors to submit original and unpublished results of topics including, but not limited to:

  • AI for software engineering;
  • Agile software development;
  • Debugging, fault localization, and repair;
  • Dependability, safety, and reliability;
  • Middleware, frameworks, and APIs;
  • Programming languages;
  • Software engineering education;
  • Software engineering tools and environments;
  • Software maintenance and evolution;
  • Software testing;
  • Software visualization;
  • Validation and verification.

Prof. Dr. Hsi-Min Chen
Prof. Dr. Shang-Pin Ma
Guest Editors

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. Electronics is an international peer-reviewed open access semimonthly 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 2400 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
  • software development
  • programming language
  • software quality

Published Papers (12 papers)

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

Research

22 pages, 1331 KiB  
Article
Assessing System Quality Changes during Software Evolution: The Impact of Design Patterns Explored via Dependency Analysis
by Kuo-Hsun Hsu, Hua-Chieh Szu-Tu and Chia-Hsing Tsai
Electronics 2024, 13(8), 1444; https://doi.org/10.3390/electronics13081444 - 11 Apr 2024
Viewed by 283
Abstract
Design patterns provide solutions to recurring problems in software design and development, promoting scalability, readability, and maintainability. While past research focused on the utilization of the design patterns and performance, there is limited insight into their impact on program evolution. Dependency signifies relationships [...] Read more.
Design patterns provide solutions to recurring problems in software design and development, promoting scalability, readability, and maintainability. While past research focused on the utilization of the design patterns and performance, there is limited insight into their impact on program evolution. Dependency signifies relationships between program elements, reflecting a program’s structure and interaction. High dependencies indicate complexity and potential flaws, hampering system quality and maintenance. This paper presents how design patterns influence software evolution by analyzing dependencies using the Abstract Syntax Tree (AST) to examine dependency patterns during evolution. We employed three widely adopted design patterns from the Gang of Four (GoF) as experimental examples. The results show that design patterns effectively reduce dependencies, lowering system complexity and enhancing quality. Full article
(This article belongs to the Special Issue Advances in Software Engineering and Programming Languages)
Show Figures

Figure 1

17 pages, 806 KiB  
Article
Statement-Grained Hierarchy Enhanced Code Summarization
by Qianjin Zhang, Dahai Jin, Yawen Wang and Yunzhan Gong
Electronics 2024, 13(4), 765; https://doi.org/10.3390/electronics13040765 - 15 Feb 2024
Viewed by 420
Abstract
Code summarization plays a vital role in aiding developers with program comprehension by generating corresponding textual descriptions for code snippets. While recent approaches have concentrated on encoding the textual and structural characteristics of source code, they often neglect the global hierarchical features, causing [...] Read more.
Code summarization plays a vital role in aiding developers with program comprehension by generating corresponding textual descriptions for code snippets. While recent approaches have concentrated on encoding the textual and structural characteristics of source code, they often neglect the global hierarchical features, causing limited code representation. Addressing this gap, our paper introduces the statement-grained hierarchy enhanced Transformer model (SHT), a novel framework that integrates global hierarchy, syntax, and token sequences to automatically generate summaries for code snippets. SHT is distinctively designed with two encoders to learn both hierarchical and sequential features of code. One relational attention encoder processes the statement-grained hierarchical graph, producing hierarchical embeddings. Subsequently, another sequence encoder integrates these hierarchical structures with token sequences. The resulting enriched representation is then fed into a vanilla Transformer decoder, which effectively generates concise and informative summarizations. Our extensive experiments demonstrate that SHT significantly outperforms state-of-the-art approaches on two widely used Java benchmarks. This underscores the effectiveness of incorporating global hierarchical information in enhancing the quality of code summarizations. Full article
(This article belongs to the Special Issue Advances in Software Engineering and Programming Languages)
Show Figures

Figure 1

16 pages, 1903 KiB  
Article
Positioning Improvement with Multiple GPS Receivers Based on Shallow Asymmetric Neural Network
by Che-Cheng Chang, Yee-Ming Ooi, Yu-Chun Chen and Jhe-Wei Lin
Electronics 2024, 13(3), 546; https://doi.org/10.3390/electronics13030546 - 29 Jan 2024
Viewed by 427
Abstract
A positioning system in a specific space is for the purpose of determining the location of an object. The Global Positioning System (GPS) is the most popular and valuable development for classical navigation. However, it may not always be precise and available due [...] Read more.
A positioning system in a specific space is for the purpose of determining the location of an object. The Global Positioning System (GPS) is the most popular and valuable development for classical navigation. However, it may not always be precise and available due to the effects of multi-path propagation and signal attenuation. Thus, we need some additional skills to keep its stability and accuracy or improve its performance. Based on the technique of neural networks, the positioning information from multiple GPS receivers is composed to obtain a better version which is more accurate and stable and thus can be applied to advanced applications. Particularly, the concepts of shallow and asymmetric neural networks are used in this work. Our design possesses fewer hidden layers via the former property and further reduces the connections of classical Fully Connected Neural Networks (FCNNs) via the latter property. Hence, it takes very little time to realize the training and predicting procedures. Also, it will help promote several works in practice, such as the implementation of embedded systems. Finally, a practical test, called the vehicular road test, is utilized to guarantee the level of confidence in the improvement of our algorithm. Full article
(This article belongs to the Special Issue Advances in Software Engineering and Programming Languages)
Show Figures

Figure 1

23 pages, 5152 KiB  
Article
A Reinforcement Learning Approach to Guide Web Crawler to Explore Web Applications for Improving Code Coverage
by Chien-Hung Liu, Shingchern D. You and Ying-Chieh Chiu
Electronics 2024, 13(2), 427; https://doi.org/10.3390/electronics13020427 - 19 Jan 2024
Cited by 1 | Viewed by 699
Abstract
Web crawlers are widely used to automatically explore and test web applications. However, navigating the pages of a web application can be difficult due to dynamic page generation. In particular, the inputs for the web form fields can affect the resulting pages and [...] Read more.
Web crawlers are widely used to automatically explore and test web applications. However, navigating the pages of a web application can be difficult due to dynamic page generation. In particular, the inputs for the web form fields can affect the resulting pages and subsequent navigation. Therefore, choosing the inputs and the order of clicks on a web page is essential for an effective web crawler to achieve high code coverage. This paper proposes a set of actions to quickly fill in web form fields and uses reinforcement learning algorithms to train a convolutional neural network (CNN). The trained agent, named iRobot, can autonomously select actions to guide the web crawler to maximize code coverage. We experimentally compared different reinforcement learning algorithms, neural networks, and actions. The results show that our CNN network with the proposed actions performs better than other neural networks in terms of branch coverage using the Deep Q-learning (DQN) or proximal policy optimization (PPO) algorithm. Furthermore, compared to previous studies, iRobot can increase branch coverage by about 1.7% while reducing training time to 12.54%. Full article
(This article belongs to the Special Issue Advances in Software Engineering and Programming Languages)
Show Figures

Figure 1

24 pages, 1269 KiB  
Article
Resolving the Java Representation Exposure Problem with an AST-Based Deep Copy and Flexible Alias Ownership System
by Yung-Yu Zhuang, Wei Kuo and Shang-Chun Tseng
Electronics 2024, 13(2), 350; https://doi.org/10.3390/electronics13020350 - 14 Jan 2024
Viewed by 680
Abstract
Encapsulation is a critical factor in object-oriented programming languages and design patterns. Nevertheless, programs written in languages like Java may encounter broken encapsulation due to the lack of sufficient supply for ownership and immutability. As a result, this paper introduces SlimeJava, an ownership [...] Read more.
Encapsulation is a critical factor in object-oriented programming languages and design patterns. Nevertheless, programs written in languages like Java may encounter broken encapsulation due to the lack of sufficient supply for ownership and immutability. As a result, this paper introduces SlimeJava, an ownership system extension based on abstract syntax trees and annotation utilization of Java that aims to help programmers prevent representation exposure. We show the features of the proposal with a motivating example using the Memento pattern. We then discuss how the utilization of annotations realizes ownership and why it is effective in avoiding representation exposure issues by comparing it with existing approaches. In the end, a quantitative performance evaluation was conducted to prove that SlimeJava does not cause a substantial overhead in execution time compared to native Java. Full article
(This article belongs to the Special Issue Advances in Software Engineering and Programming Languages)
Show Figures

Figure 1

25 pages, 1253 KiB  
Article
CMBMeTest: Generation of Test Suites Using Model-Based Testing Plus Constraint Programming and Metamorphic Testing
by M. Carmen de Castro-Cabrera, Antonio García-Dominguez and Inmaculada Medina-Bulo
Electronics 2024, 13(1), 18; https://doi.org/10.3390/electronics13010018 - 19 Dec 2023
Viewed by 602
Abstract
Various software testing techniques have been shown to be successful in producing high-quality test suites for software where the code is not accessible (black-box approach). Nevertheless, no method has been found to guide combining some of these in a general way. In this [...] Read more.
Various software testing techniques have been shown to be successful in producing high-quality test suites for software where the code is not accessible (black-box approach). Nevertheless, no method has been found to guide combining some of these in a general way. In this study, a test suite generation method for black-box software called CMBMeTest was created to respond to these challenges. It employs several coupled software testing techniques, namely, model-based testing (MBT), constraint programming (CP), and metamorphic testing (MT). CMBMeTest provides step-by-step instructions for using the information available (such as program specifications, inputs and outputs) to create an initial test suite that covers the model obtained, using a combination of MBT and CP (referred to as MBT+CP). Furthermore, using the metamorphic relations (MRs) of MT, a better test suite was produced from that initial test suite. The method allows particular stages to be iterated to improve the results by building new models and new MRs. A comprehensive case study was conducted, employing CMBMeTest to produce encouraging results. Mutation testing was used to evaluate the test suite, and the first round produced a high mutation score. A more detailed model was used to repeat the process, with similar outcomes. Full article
(This article belongs to the Special Issue Advances in Software Engineering and Programming Languages)
Show Figures

Figure 1

25 pages, 2029 KiB  
Article
Design of an Online Programming Platform and a Study on Learners’ Testing Ability
by Nien-Lin Hsueh, Lien-Chi Lai and Wei-Hsiang Tseng
Electronics 2023, 12(22), 4596; https://doi.org/10.3390/electronics12224596 - 10 Nov 2023
Viewed by 889
Abstract
Online judge (OJ) systems are essential in programming education as they efficiently evaluate learners’ programming skills and reduce instructor workload. However, these systems often overlook the importance of software-testing concepts. To address this gap, we developed a system called Pytutor that integrates software-testing [...] Read more.
Online judge (OJ) systems are essential in programming education as they efficiently evaluate learners’ programming skills and reduce instructor workload. However, these systems often overlook the importance of software-testing concepts. To address this gap, we developed a system called Pytutor that integrates software-testing concepts to assess learners’ programming abilities and proficiency by exploring students’ test cases and learning behaviors. Drawing on software engineering theory and practical techniques, test capabilities are evaluated by analyzing the code coverage and mutation testing of Defining Test Cases. Since our experiment is conducted in an online environment, we can collect students’ learning behaviors and further analyze the relationship between software engineering abilities and learning behaviors. We also analyzed the differences in programming and testing abilities between computer science majors and non-computer-science majors. Our findings suggest that better testing abilities may contribute to the improvement in programming abilities, whereas in the current Taiwanese education context, computer science majors do not necessarily have better testing abilities. This result provides suggestions for us to strengthen software-testing education no matter which type of students it is targeted at. Full article
(This article belongs to the Special Issue Advances in Software Engineering and Programming Languages)
Show Figures

Figure 1

17 pages, 942 KiB  
Article
Enabling Space-Aware Service Discovery Model in Home Networks through a Compatible Extension to mDNS/DNS-SD
by Chun-Feng Liao and Yu-Jou Weng
Electronics 2023, 12(18), 3885; https://doi.org/10.3390/electronics12183885 - 14 Sep 2023
Viewed by 637
Abstract
The advent of the smart home, fueled by the rapid emergence of tiny embedded IoT devices and sensors, brings the consideration of space and location information to the forefront of service discovery. In a smart home environment, spaces often have composite capabilities and [...] Read more.
The advent of the smart home, fueled by the rapid emergence of tiny embedded IoT devices and sensors, brings the consideration of space and location information to the forefront of service discovery. In a smart home environment, spaces often have composite capabilities and complex structures. Since residents may have varying preferences based on their location within different spaces, traditional service discovery results may be suboptimal without considering the spatial context. This paper introduces a seamless approach to integrate space and location information with mDNS/DNS-SD, a widely utilized service discovery protocol in home networks. We provide a formal specification for this approach, develop a prototype, and perform a series of experiments to evaluate the efficacy and potential of the proposed method. Full article
(This article belongs to the Special Issue Advances in Software Engineering and Programming Languages)
Show Figures

Figure 1

18 pages, 2481 KiB  
Article
Agile Software Development and Reuse Approach with Scrum and Software Product Line Engineering
by Wen-Tin Lee and Chih-Hsien Chen
Electronics 2023, 12(15), 3291; https://doi.org/10.3390/electronics12153291 - 31 Jul 2023
Cited by 3 | Viewed by 2524
Abstract
Agile methods and software product line engineering (SPLE) are widely recognized as practical approaches for delivering high-quality software, adapting to evolving stakeholder needs, and tackling complex problems. This study proposes a hybrid agile software development and reuse approach called SPLE-Scrum based on the [...] Read more.
Agile methods and software product line engineering (SPLE) are widely recognized as practical approaches for delivering high-quality software, adapting to evolving stakeholder needs, and tackling complex problems. This study proposes a hybrid agile software development and reuse approach called SPLE-Scrum based on the activities of software product line engineering and Scrum. Within the SPLE process, we incorporate requirement engineering and design practices to create a reference architecture with reusable components called core assets by introducing a product management meeting. The core assets are reused to build a series of applications with various product lines. The product increments are delivered in each Sprint with the review and retrospective meetings based on Scrum lifecycle and practices. We present a case study involving a blockchain online store to demonstrate the practical application of SPLE-Scrum, highlighting the benefits of integrating Scrum and software product line engineering. The research hypotheses of the proposed approach were validated through a study of structured interviews with 5 experts and 44 software practitioners, showing that the key factors of product management, project requirements, and product architecture in the SPLE-Scrum approach have a beneficial impact on project success. The SPLE-Scrum approach provides valuable insights and practical guidance for organizations seeking to optimize their software engineering practices while incorporating agile development and software reuse capabilities. Full article
(This article belongs to the Special Issue Advances in Software Engineering and Programming Languages)
Show Figures

Figure 1

17 pages, 398 KiB  
Article
WHORU: Improving Abstractive Dialogue Summarization with Personal Pronoun Resolution
by Tingting Zhou
Electronics 2023, 12(14), 3091; https://doi.org/10.3390/electronics12143091 - 16 Jul 2023
Viewed by 790
Abstract
With the abundance of conversations happening everywhere, dialogue summarization plays an increasingly important role in the real world. However, dialogues inevitably involve many personal pronouns, which hinder the performance of existing dialogue summarization models. This work proposes a framework named WHORU to inject [...] Read more.
With the abundance of conversations happening everywhere, dialogue summarization plays an increasingly important role in the real world. However, dialogues inevitably involve many personal pronouns, which hinder the performance of existing dialogue summarization models. This work proposes a framework named WHORU to inject external personal pronoun resolution (PPR) information into abstractive dialogue summarization models. A simple and effective PPR method for the dialogue domain is further proposed to reduce time and space consumption. Experiments demonstrated the superiority of the proposed methods. More importantly, WHORU achieves new SOTA results on SAMSum and AMI datasets. Full article
(This article belongs to the Special Issue Advances in Software Engineering and Programming Languages)
Show Figures

Figure 1

16 pages, 8680 KiB  
Article
A Study on the Security of Online Judge System Applied Sandbox Technology
by Jong-Yih Kuo, Zhi-Jia Wen, Ti-Feng Hsieh and Han-Xuan Huang
Electronics 2023, 12(14), 3018; https://doi.org/10.3390/electronics12143018 - 10 Jul 2023
Cited by 1 | Viewed by 1010
Abstract
The majority of programming courses currently employ online judge systems as lesson materials. Online judge systems are becoming more common as the number of courses and persons studying computer science and information engineering grows. At the same time, there is an increase in [...] Read more.
The majority of programming courses currently employ online judge systems as lesson materials. Online judge systems are becoming more common as the number of courses and persons studying computer science and information engineering grows. At the same time, there is an increase in the number of attacks against online judge systems; for example, Denial-Of-Service attacks, whose goal is to disrupt the target system by exhausting resources and blocking ordinary users from using the service normally. As a result, preventing attacks on online judge systems is becoming increasingly crucial. This research investigates and organizes these attack techniques, as well as develops a threat model for the online judge system by the STRIDE threat model approach, which provides a way to classify attacks into six categories. This research also designs code analysis rules and implements a code analysis tool. This tool can assist developers in analyzing the existing online judge system to determine whether the judge system is vulnerable to attack and dealing with vulnerability as soon as feasible to improve the judge system’s security. After enhancing the security of online judge systems, the system can foster trust and reliability among users as benefits. Full article
(This article belongs to the Special Issue Advances in Software Engineering and Programming Languages)
Show Figures

Figure 1

24 pages, 5997 KiB  
Article
Evaluation of a Smart Intercom Microservice System Based on the Cloud of Things
by Hsin-Yu Huang, Yong-Yi Fanjiang, Chi-Huang Hung, Hsing-Yu Tsai and Bing-Hong Lin
Electronics 2023, 12(11), 2406; https://doi.org/10.3390/electronics12112406 - 25 May 2023
Viewed by 1247
Abstract
This research migrates a monolithic smart intercom system to a microservice architecture, making the system more secure, stable, and scalable. The security mechanisms of the instant messaging platform are combined with microservices to improve the security of the system. The stability and performance [...] Read more.
This research migrates a monolithic smart intercom system to a microservice architecture, making the system more secure, stable, and scalable. The security mechanisms of the instant messaging platform are combined with microservices to improve the security of the system. The stability and performance of microservices are shown to be better than those of monolithic services through experimental tests. Residents can use different instant messaging software instead of the handset to improve the convenience of using this system. This system also implements community broadcasts, platform broadcasts, unit broadcasts, and family broadcasts to exchange messages across different instant messaging platforms. This paper proposes OpenAPI for other smart intercoms to integrate this system’s services and resources. In addition, this study deploys two microservice architectures using a native load balancer with a kube proxy and a service mesh load balancer with an istio proxy. Experiments were conducted during which residents tested the kube proxy and the istio proxy using stress testing tools on two microservice architectures, and the results showed that the kube proxy was slightly better than the istio proxy. Full article
(This article belongs to the Special Issue Advances in Software Engineering and Programming Languages)
Show Figures

Figure 1

Back to TopTop