연구실 학사 및 석사 학생 모집 (문의: psjung@gnu.ac.kr)
Research Topics
Software Product Line Engineering
In many large-scale manufacturing industries, including consumer electronics, automotive, aerospace, and defense, software is rarely developed as a single standalone product. Instead, companies such as Samsung Electronics, Hyundai Motor Company, and Lockheed Martin develop software product families that share a common platform while supporting diverse customer requirements, hardware configurations, and market-specific features. Developing each product independently leads to duplicated development effort, increased maintenance costs, inconsistent quality, and longer time-to-market. Software Product Line Engineering (SPLE) addresses these challenges by systematically managing commonality and variability across related products, enabling organizations to efficiently produce multiple software variants from a shared set of core assets.
Our laboratory conducts research on advanced Software Product Line Engineering techniques for developing high-quality, reliable, and cost-effective software product families. We investigate methods for feature modeling, variability management, reusable software architecture, automated product configuration, and consistency analysis to support the efficient development of large-scale software product lines. In addition, we study automated approaches for product derivation, code generation, verification, and testing, allowing software variants to be generated and validated with minimal manual effort. Our research also explores the application of artificial intelligence and machine learning techniques to automate configuration decisions, optimize product generation, and improve testing efficiency. Through these studies, we aim to reduce development and maintenance costs while improving software quality, scalability, and productivity for industrial-scale software systems.
Software Analysis and Testing
Software defects can lead to serious consequences, including system failures, economic losses, security vulnerabilities, and threats to human safety. This is particularly critical in safety-critical domains such as aviation, automobiles, autonomous vehicles, defense systems, medical devices, and unmanned aerial vehicles, where a single software error may cause catastrophic accidents. Therefore, software defects must be identified, analyzed, and managed systematically throughout the entire software development lifecycle before they lead to operational failures or safety-related incidents.
Our laboratory conducts research on functional safety assurance for software-intensive systems, particularly unmanned aerial vehicles. We study software development, verification, validation, and certification processes based on international safety standards such as DO-178C for airborne systems. This research includes requirements traceability, safety analysis, test adequacy evaluation, tool qualification, and the systematic production of certification evidence. We also investigate methods for integrating software testing, safety analysis, and development processes so that safety requirements can be continuously monitored and verified throughout the system lifecycle.
Through this research, our laboratory aims to develop practical and automated software assurance technologies that help engineers detect defects earlier, demonstrate compliance with safety standards, and build highly dependable software systems for UAVs, automobiles, and other safety-critical applications.
AI-based UAV Software
Unmanned aerial vehicles are increasingly being used for a wide range of missions, including surveillance, reconnaissance, infrastructure inspection, logistics, disaster response, environmental monitoring, and defense operations. To perform these missions autonomously, UAVs must continuously perceive their surroundings, understand dynamic situations, and make appropriate flight decisions using data collected from onboard sensors such as GPS, cameras, LiDAR, inertial measurement units, and communication systems. However, uncertainty in sensor measurements, rapidly changing environments, limited computing resources, and complex vehicle dynamics make the development of reliable autonomous UAV software particularly challenging.
Our laboratory studies AI-based UAV software that enables UAVs to autonomously perceive their environment, make decisions, and perform complex missions. Our research includes sensor-data processing, environmental perception, object and obstacle detection, path planning, autonomous navigation, collision avoidance, and mission-level decision-making. We investigate methods for integrating heterogeneous sensor data and AI models so that UAVs can operate reliably even in partially observable, uncertain, and dynamically changing environments.
In particular, our laboratory conducts research on reinforcement learning-based autonomous flight and safe decision-making. Reinforcement learning allows UAVs to learn effective flight policies through repeated interaction with simulated environments. We develop simulation environments that reproduce UAV dynamics, sensor observations, obstacles, moving objects, and mission conditions, and use them to train and evaluate autonomous flight policies. Our research focuses not only on improving mission performance but also on ensuring safe flight by reducing collisions, preventing unsafe actions, satisfying operational constraints, and improving the robustness of learned policies under previously unseen conditions.