Software defect prediction plays a crucial role in enhancing software quality and reducing development costs. As software systems grow in complexity, the ability to accurately identify defect-prone modules becomes increasingly vital for efficient resource allocation and risk mitigation. Traditional approaches to defect prediction often struggle to capture the intricate relationships between software components, leading to suboptimal predictive performance. There is a pressing need for more sophisticated methods that can leverage the structural properties of software systems to improve defect prediction accuracy. This thesis presents a novel approach to software defect prediction by combining graph-based feature extraction with ensemble learning techniques. We transform software modules into graph representations, extracting meaningful features that capture the complex dependencies within the system. These graph-based features are then used to train a variety of ensemble classifiers, including Histogram Gradient Boosting, Extra Trees, and Random Forest. Our methodology is applied to three diverse datasets from the NASA Metrics Data Program: CM1, JM1, and KC1, representing spacecraft instruments, real-time ground systems, and storage management software, respectively. The results demonstrate significant improvements in defect prediction accuracy compared to existing state-of-the-art methods. Our approach achieves accuracy scores ranging from 0.966 to 0.994 across the datasets, with Area Under the Receiver Operating Characteristic Curve (AUC) scores consistently approaching or exceeding 0.99. These findings represent a 3% to 15% improvement over recent studies, highlighting the effectiveness of our graph-based ensemble learning method. The approach shows remarkable versatility, performing exceptionally well across diverse software domains and maintaining a balanced performance in terms of precision and recall. Future work will focus on exploring more advanced graph representation techniques, incorporating temporal information into the models, and investigating the application of explainable AI methods to enhance model interpretability. Additionally, expanding the study to a wider range of software projects and integrating the approach with existing development tools present exciting opportunities for practical application. As software systems continue to evolve in complexity, the proposed graph-based ensemble learning approach holds significant promise for advancing the field of software defect prediction and improving software quality assurance practices across the industry.