Show simple item record

dc.contributor.advisorAzmain, Md. Aquib
dc.contributor.authorFerdoshi, Jannatul
dc.contributor.authorAbdullah, Shabab
dc.contributor.authorKnobo, Kazi Zunayed Quader
dc.contributor.authorUddin, Mohammed Sharraf
dc.date.accessioned2024-11-25T05:27:09Z
dc.date.available2024-11-25T05:27:09Z
dc.date.copyright©2024
dc.date.issued2024-05
dc.identifier.otherID 20301193
dc.identifier.otherID 20301005
dc.identifier.otherID 20241020
dc.identifier.otherID 20241018
dc.identifier.urihttp://hdl.handle.net/10361/24816
dc.descriptionThis thesis is submitted in partial fulfillment of the requirements for the degree of Bachelor of Science in Computer Science, 2024.en_US
dc.descriptionCatalogued from PDF version of thesis.
dc.descriptionIncludes bibliographical references (pages 65-68).
dc.description.abstractPython has witnessed substantial growth, establishing itself as one of the world’s most popular programming languages. Its versatile applications span various software and data science projects, empowered by features like classes, method chaining, lambda functions, and list comprehension. However, this flexibility introduces the risk of code smells, diminishing software quality, and complicating maintenance. While extensive research addresses code smells in Java, the Python landscape lacks comprehensive automated solutions. Our paper fills this gap in two ways. Firstly, by constructing a dataset using a tool from existing literature, Pysmell [16]. The tool, given a project directory, determines python files and produces comma separated files for code smells that are present in the python file. We create a dataset containing github projects and run the tool on our dataset. Then we select five comma separated code smell files: Large Class, Long Method, Long Lambda Function, Long Parameter List and Long Message Chain. The comma separated files are then combined to produce a multi-label dataset of code smells. Ensemble techniques and neural networks are trained on the dataset to analyse the performance of machine learning models in predicting code smells given a metric. Secondly, our approach extends to designing and building a simple automated refactoring algorithm, aiming to reduce long method code smells by extracting out large if-else statements and elevate overall software quality. In a landscape where automated detection and refactoring for Python code smells are nascent, our research contributes essential advancements.en_US
dc.description.statementofresponsibilityJannatul Ferdoshi
dc.description.statementofresponsibilityShabab Abdullah
dc.description.statementofresponsibilityKazi Zunayed Quader Knobo
dc.description.statementofresponsibilityMohammed Sharraf Uddin
dc.format.extent81 pages
dc.language.isoenen_US
dc.publisherBrac Universityen_US
dc.rightsBrac University theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission.
dc.subjectPythonen_US
dc.subjectCode refactoringen_US
dc.subjectMachine learningen_US
dc.subjectSoftware qualityen_US
dc.subjectSoftware maintenanceen_US
dc.subjectGitHub repositoriesen_US
dc.subject.lcshSoftware maintenance--Data processing.
dc.subject.lcshComputer software--Quality control--Data processing.
dc.subject.lcshSoftware failures--Prevention--Data processing.
dc.subject.lcshComputer system failures.
dc.subject.lcshSoftware refactoring.
dc.subject.lcshPython (Computer program language).
dc.titleEnhancing software quality: Python code smell detection using machine learning techniques and refactoring long methods using extract method algorithmen_US
dc.typeThesisen_US
dc.contributor.departmentDepartment of Computer Science and Engineering, Brac University
dc.description.degreeB.Sc. in Computer Science


Files in this item

Thumbnail

This item appears in the following Collection(s)

Show simple item record