Browsing by Author "Dr. Ghulam Rasool"
Now showing 1 - 9 of 9
- Results Per Page
- Sort Options
Item Client APIs are Effected by Web APIs Evolution(Library Information Services, COMSATS University Islamabad, Lahore Campus, 2021) Farrukh Liaquat; FA17-RCS-002; LHR TP 7281; Dr. Ghulam RasoolWeb APIs (Application Programming Interfaces) evolution means updating the APIs to improve their performance. Web services are used for communication between applications such as Facebook, Youtube, etc. The commonly used protocols in web services are SOAP (Simple Object Access Protocol), REST (Representational State Transfer), JSON (JavaScript Object Notation), WPS (Web Processing Service), WSCL (Web Services Conversation Language), WSFL (Web Services Flow Language) and XML-RPC (XML Remote Procedure Call). The SOAP is with strict rules and allows only XML data format while REST is a Representational State Transfer and it allows a combination of different messaging data formats such as HTML, JSON, XML, and plain text. The APIs versioning consists of some changes such as adding new methods and parameters, updating methods and parameters names, and deleting methods and parameters. These changes provide an opportunity to analyze design patterns and antipatterns. The APIs may have incomplete functionalities, which shows immature APIs updates. The APIs updates bring new and improved functionalities as well as incompatibilities and integration problems for client developers. The client developers have to modify their client programs according to these changes to use new APIs. However, much prior work is found related to web services (web APIs), but our research work is mainly related to client APIs as well as web APIs. The main objective of this research is to analyze web APIs evolution pains as well as pain-causing factors to client APIs. For this purpose, we use the versioning history approach, and record the changelog of web APIs such as Youtube, and performed empirical analysis. We invoke web APIs for the detection of antipatterns. We develop a reverse engineering Add-in in Sparx System for reverse engineering of the web APIs. The Add-in automatically generates source code metrics from source code dll. The Add-in extracts 9 artifacts from source code such as the number of interfaces, number of classes, number of fields, number of code files, number of namespaces, disk size, manifest, and availability. We extract source code metrics from 10 web APIs such as Alchemy, BestBuy, Bitly, Dropbox, External-IP, Facebook, Instagram, TeamViewer, WhatsApp, and YouTube. We also extract source code metrics from 10 open-source client projects APIs such as NewtonSoft, RestSharp, NLog, SharpZipLib, Protobuf-net, Zxing, Telegram, Lucene, SharpDX, and AForge. We perform empirical analysis on source code metrics and analyzed that the APIs evolve due to Changing the number of interfaces, Changing the number of classes, Changing the number x of methods, Changing the number of fields, Changing the number of code files, Changing the number of namespaces, and Changing the size of the file. When web APIs evolve, client APIs also evolve respectively to accommodate these changes. Therefore, client APIs are effected by web APIs evolutionItem Detection of Antipatterns from Service Oriented Architecture(Library Information Services, COMSATS University Islamabad, Lahore Campus, 2018) Fatima Sabir; SP14-PCS-003; LHR TP 5603; Dr. Ghulam RasoolWeb-services have become a governing technology for Service Oriented Architectures due to reusability of services and their dependence on other services. The evolution in service-based systems demand frequent changes to provide quality of service to customers. It is realized by different authors that evolution in service-based systems may degrade design and quality of service and may generate poor solutions known as antipatterns. The detection of antipatterns from web services is an important research realm and it is continuously getting attention of researchers. There are several techniques and tools presented for detection of antipatterns from object-oriented software applications but only few approaches are presented for detection of antipatterns from SOA. The state of the art antipattern detection approaches presented for detection of antipatterns from SOA are not flexible. We present a flexible approach supplemented with a tool support named as SWAD (Specification of Webservice Antipatterns Detection) to detect antipatterns from different SOAP based applications. Service-based systems, in particular, RESTful APIs, need to meet both service consumers’ and providers’ requirements. Like other software systems, RESTful APIs face continuous maintenance and evolution. Antipatterns may hinder the maintenance and evolution of RESTful APIs, as compared to the good design principles, i.e., design patterns that facilitate maintenance and evolution. Antipatterns may also affect the usability of RESTful APIs. Major market players like Facebook and YouTube are already using REST architecture and their APIs are frequently evolving to meet the end users’ requirements. Although, a number of antipatterns are defined in the literature and researchers performed their automatic detection but the evolution of RESTful APIs did not receive much attention. There is a need to track the evolution of antipatterns in the RESTful APIs that could assist service providers publishing well-designed and easy to consume RESTful APIs for their clients. We present the correction of eight REST antipatterns in RESTful APIs with a tool support called SOCAR (Service Oriented Correction of Antipatterns in REST) after analyzing their evolution history for two years. Our correction heuristics are validated by practitioners with an average precision of 100% and an average recall of 94%. Moreover, we propose a methodology for the correction of linguistic antipatterns with a tool support COLAR (Correction of Linguistic Antipatterns for RESTAPIs).Item Enhancing Automated Question Tagging: Integrating Large Language Models with Traditional Retrieval Methods(Library Information Services, COMSATS University Islamabad, Lahore Campus, 2025) Bilal Hussian; CIIT/SP24-RCS-016/LHR; Dr. Ghulam Rasool; LHR TP 10038When people ask questions on platforms like Stack Overflow or Quora, the system needs to automatically assign relevant tags to help others find and answer those questions quickly. This is called automatic question tagging and is quite essential since it directly influences the efficiency with which the user can receive help. The majority of existing tagging systems just examine the words of the question itself and the tags accessible in the database. They are deprived of expansive real-world information that can guide them in making superior tagging decisions. Large language models such as GPT-4 are very good at context, real-world understanding, and this may be invaluable in this case. The issue is, these models cannot be confident in selecting tags out of a list of predefined tags of a particular site that they may propose tags that do not exist in the system at all. To address this problem, I created EAQTILLM (Enhancing Automated Question Tagging Integrating Large Language Model). My method is in two steps: I will first run a tagging model that will give me a shortlist of possible tags based on the database of the website. I then run the question through a large language model with prompts that are designed to explore the question in more depth and choose the most suitable tags using that shortlist. By doing this we get the advantage of both worlds the ability of the LLM to understand and the restriction of just being able to pick out of valid and existing tags. I applied EAQTILLM (Test) to two real-life datasets, achieving a precision of 0.4952, recall of 0.6667, and accuracy of 0.9842, which demonstrated remarkable performance. The algorithm was always ahead of current state-of-the-art algorithms, demonstrating that the combination of the traditional ones and large language models is a good direction to enhance automatic question tagging in online communitiItem Good or Bad: Design Principles for Resolving Maintainability Issues for Microservices(Library Information Services, COMSATS University Islamabad, Lahore Campus, 2022) Maham Saleem; SP20-RCS-029; LHR TP 8049; Dr. Ghulam RasoolMicroservices Architecture (MSA) style has gained popularity in the software industry as it provides a powerful method for developing applications that consist of several small, maintainable, independently deployable, and manageable services. The loosely coupled architecture style and dynamic nature of MSA cause many issues such as maintainability, security, latency, and performance. Anti-patterns are "poor" solutions to persistent issues. These solutions frequently make software systems more difficult to maintain. Microservice-based systems experience difficulties with maintainability and evolution, much like any other architectural style, because of these anti-patterns. As a result, adding and modifying functionalities becomes more and more difficult. The maintenance process also includes identifying anti-patterns within microservice-based systems, which improves the software's quality assessment. In this research, we analyze and understand the maintainability issues, anti-patterns, and suggested solutions related to microservices being discussed in the literature, and the Industry Forum. With the help of these blogs and academic literature, we propose a methodology to address the maintainability, design, and architecture issues for the improvement of microservices. We want to provide an extensive list of microservices anti-patterns and tool support to provide suggestions and categorize the best practices proposed by the professionals to support the research community and industry. In conclusion, we seek to improve the maintenance and quality of microservice-based systems with our semi-automatic tool-based approach. Our strategy is based on software re-engineering methods to extract useful data and has been created as an automated approach integrated with an add-in for Sparx System Enterprise Architecture (EA) for anti-patterns recognition from MS-based software applications. We have evaluated our approach on 20 open source microservices-based systems using precision and recall metricItem Multilingual Source Code Analysis for Recovery of J2EE Environment(Library Information Services, COMSATS University Islamabad, Lahore Campus, 2017) Zaigham Mushtaq; SP11-PCS-001; LHR TP 5940; Dr. Ghulam RasoolDesign patterns are proven solutions that help to develop quality software applications and program comprehension at the design level. Recovering design information from source code supports source code analysis for better program understanding, reuse, and re-engineering. With the advent of modern technologies in software development paradigm, the size and complexity of software applications are increased, consequently, extracting software design has become harder and challenging. In these multilingual applications, the design information is scattered in various cross-language artifacts that are interdependent on each other. Therefore, in order to analyze these applications, all the cross-language components and their relationships needs to be resolved. At present, there is no approach known to us that is capable of extracting design information from multilingual applications by using design patterns. The purpose of this thesis is to build the foundation for the analysis of multilingual applications by using design patterns. Java Enterprise Applications are the examples of multilingual applications i.e. their design information is scattered in several multilingual artifacts. This platform is equipped with verified design solutions in the form of J2EE Patterns. J2EE Platform is a multi-tiered architecture. The instances of these patterns are scattered in various cross language components in different layers of J2EE Platform. It is difficult to resolve cross-language artifacts and extract desirable information and dependencies. J2EE Patterns have abstract representations and their formal definitions are not known. In addition, to the best of our insight, there is no approach available to recognize J2EE Patterns from Java enterprise applications. In this dissertation, a novel approach is presented for the detection of J2EE Patterns from the multilingual source code of J2EE applications. For this purpose, customizable and reusable feature types are presented as a catalog of J2EE Pattern definitions. These feature types can accommodate new pattern definitions and are adaptable to detect the variants of any pattern. A prototype toolkit, JPDT (J2EE Pattern Detection Tool) is developed that uses J2EE Pattern definitions based on a catalog of customizable feature types and extracts J2EE Patterns from the multilingual source code of enterprise applications. This tool has three xi basic components; including J2EE Extended Parsing Module (JPSP), J2EE Pattern Detection Engine (JPDE) and J2EE Patterns Visualization Module (JPVM). In order to evaluate the validity of approach and prototype tool, a corpus is built that contains the repository of the source code of J2EE Pattern definitions. Additionally, the tool is evaluated on five open source medium and large enterprise applications. The results reveal 100 % accuracy of approach in successful recognition of J2EE Patterns in source code repository and open source applications. The results also establish the significance of customizable definitions of J2EE Pattern’s catalog and capability of prototype toolItem Recommendations on Maintainability Issues in Web Services(Library Information Services, COMSATS University Islamabad, Lahore Campus, 2023) Zoha Ejaz; SP20-RCS-031; LHR TP 8671; Dr. Ghulam RasoolWeb services are components that are capable of performing a certain task, like two devices communicating with each other and exchanging information. With the increase in use of web service software, following the good practices for maintainability plays an important role as it helps to reduce maintenance cost and improve software quality. Many problems are faced by the developers nowadays and they need a platform to discuss these problems and get information on how to resolve them by an expert opinion. They ask questions on the discussion forums or the Community Question Answering (CQA) sites such as Stack Overflow and Quora. These problems include: outdated online code snippets, maintainability issues in reuse of existing libraries, RESTful webservices composition. The Representational State Transfer (REST) is an established architectural paradigm utilised in the development and design of web services. The system employs the Hypertext Transfer Protocol (HTTP) to facilitate the transmission and reception of data. It is one of the most used domains and asked about on CQA sites. The state-of-the-art tools and techniques are limited as they mostly cover theoretical knowledge to state RESTful web services patterns. We need to consider the industrial opinion as their opinions can be used to overcome many problems and identify new ones for resolution. A new approach is proposed in which the existing practices defined in the literature are used as a benchmark and expertise opinions are extracted from Stack Overflow accepted answers. Recommendations are formed on the basis of the experts’ opinion and used in a tool which detects the area of discussion and suggests expert’s pattern definitions.Item Recovery of Anti-Patterns from Microservices(Library Information Services, COMSATS University Islamabad, Lahore Campus, 2020) Sabahat Atta; FA17-RCS-028; LHR TP 5980; Dr. Ghulam RasoolMicroservices have brought an evolution in the Service Oriented Architecture by introducing high independence at various levels. These services provide independent development, service to service communication, individual database per service, independent deployment, and maintenance, etc. The service-oriented systems support the quick implementation of customized changes to software applications. These frequent changes might result in introducing some feeble solutions. These solutions commonly known as “Anti-Patterns”, can negatively impact the quality of the microservices. Another reason for anti-patterns occurrence may be due to the migration of software applications developed on monolithic architecture to microservices architecture. This process demands a high knowledge of microservices-based design patterns and best practices to avoid flaws that might instigate while migration from centralized to a distributed environment. In this research, we have selected 18 microservices related anti-patterns and proposed an approach for their detection. We found only a single approach that presented an algorithm to detect microservices specific Anti-Patterns [1]; the study focused on detecting five anti-patterns. However, our proposed approach differs from the state-of-the-art approach, as, firstly, we focused on the detection of a large number of anti-patterns. Secondly, we have implemented reverse engineering on microservices-based systems and then detected anti-patterns from these systems. Our research focuses on the detection of microservices specific anti-patterns from microservices-based software applications. Our approach is developed as an automated approach supplemented with an add-in for Sparx System EA for the automatic detection of anti-patterns from microservices-based systems. We have evaluated our approach using precision and recall metricsItem Software Measurement Programs: Evaluations and Solutions(Library Information Services, COMSATS University Islamabad, Lahore Campus, 2019) Touseef Tahir; SP13-PCS-002; LHR TP 5943; Dr. Ghulam RasoolEvery software development process either generates or uses measurement data that is essential to understand, evaluate, improve and predict the software processes, products, and resources. Software development organizations implement measurement programs (MPs) as part of their measurement processes. However, implementing successful MPs still remains a challenge. The aim of this thesis is to comprehensively evaluate and then contribute towards planning and implementation issues of MPs. This research is conducted in three phases: 1) problem identification 2) solution design and 3) industrial evaluation of solutions. A mix of qualitative and quantitative research methods is used appropriately for each phase. In the first phase, comprehensive literature reviews of the studies on MPs are conducted to enable a better understanding of the existing measurement planning models, tools, challenges, success factors, and metrics selection methods of implementing MPs in general and specifically for small and medium enterprises (SMEs). In addition, challenges of implementing MPs in large organizations and SMEs are analyzed. In the second phase, multiple solutions are proposed to improve the planning of MPs. The solutions are based on the analysis of research gaps involving the challenges and success factors of implementing MPs. First, a set of key components of MPs is identified for planning a MP. Second, a model of success factors for planning MPs in general is proposed. Third, a model of success factors for planning MPs specifically in SMEs is proposed. Fourth, a model called data-driven measurement for software prediction (D2MSP) is proposed to overcome the challenge of using already collected measurement data for prediction of software attributes e.g., defects. In the third phase, the solutions are evaluated in the software development industry with the help of surveys and empirical data of software projects. A set of key components and a model of success factors are evaluated based on a survey among 200 software professionals working in the Pakistani software development industry. A model of success for planning MPs specifically in SMEs is evaluated based on a survey among 217 software professionals working in SMEs of Pakistan. The D2MSP xi model is evaluated using a dataset of 760 projects and later applied in a software development organization as a case study. Overall, this research contributes to the theory and practice of software measurement by providing an improved understanding of planning software MPs and proposing and validating models of success factors and the D 2MSP model for planning MPs.Item Software Measurements at Small and Medium Enterprises(Library Information Services, COMSATS University Islamabad, Lahore Campus, 2017) Muhammad Noman; FA14-MSCS-018; LHR TP 6871; Dr. Ghulam RasoolSoftware measurement processes are crucial to recognize, assess, identify and measure software products and resources. However, the successful measurement processes implementation is a challenging task in small and medium enterprises (SMEs). The main goal of this thesis is to propose a measurement framework to assess the significant factors that may influence the successful measurement processes implementation in Software SMEs. A multi-method research technique is used to perform this research. A systematic mapping study is conducted to extract the significant factors, challenges, and limitations that may affect the successful implementation of measurement processes in software organizations. A search string is prepared and, applied to different databases (IEEE, ACM, Springer etc) to identify the relevant studies. In total, 24 primary studies are finalized after applying inclusion and exclusion criteria. All the primary studies are explored comprehensively and, identified success factors are categorized in seven major constructs. A measurement framework is proposed for adaptation of measurement processes in software SMEs based on the findings of the mapping study. A total of seven constructs (success factors) are defined in the proposed framework. The proposed framework is evaluated using an online survey. An online survey is conducted from the software professionals in software organizations of Pakistan. In total, 217 responses were collected and a data set is prepared. Structural equation modeling (SEM) technique is used to evaluate the data set. Statistical tools (AMOS and SPSS) are used for factor analysis and hypothesis testing. The statistical results shows that the proposed framework is acceptable due to satisfactory values of model fit indices and use of reliable items in the path diagram. In hypotheses testing, two of the seven constructs (External Forces, Management Commitment) are found to have a significant effect on successful measurement processes in software organizations. The proposed framework can be extended by adding more factors and it can also be verified in software industries of different countries.