icon

Prof. Ahmed E. Hassan

Information and Communication Science and Technology

Year of Birth:

1976

Place of Birth:

Egypt

Work:

Mining Software Repositories (MSR)

Biography‌

The Future Architecture of Software

With the advancement of cutting-edge technologies, artificial intelligence, data mining, and big data analytics have become central pillars of software transformation. In this landscape, the influential role of researchers like Ahmed Hassan has become increasingly prominent. By integrating principles of software engineering, artificial intelligence, and data mining, Hassan seeks to enhance software quality, strengthen data security, and optimize the use of vast datasets in digital systems. His research revolves around Mining Software Repositories (MSR), a field that enables the analysis of existing software data using advanced machine learning algorithms. This approach helps software developers learn from past trends and make more informed decisions for building future systems.
In the Path of Major Currents
Ahmed Hassan was born in 1976 in Egypt. He pursued his education in his home country through high school before his mother’s decision to immigrate to Canada introduced him to an entirely new environment. His mother, a television translator in Egypt, had lost her husband and faced the dual challenges of raising her children single-handedly and navigating career limitations in Canada. She endured all these hardships for the sake of her two sons’ future. Ahmed completed his undergraduate studies at the University of Waterloo and later moved to the United States to work on an IBM project in San Jose. Recognizing that leading research projects required advanced credentials, he returned to Canada to pursue a master’s degree.
From Play to Progress
Ahmed’s scientific journey began in childhood when his uncle and his uncle’s wife gifted him a computer for entertainment—a large, old machine that required studying its manual to operate. Having never used such a system before, Ahmad’s curiosity drove him to learn more about it. The logical and mathematical nature of computing resonated with him, as he had always been passionate about mathematics. This interest prompted him to shift his academic focus from mathematics to computer science. As he grew older, his fascination with the field deepened. Ahmed’s awareness of the significant advancements made by ancient Egyptians and the old Islamic world, compared to humanity’s current progress, fueled his drive to move forward. In his view, Egypt and the Islamic world had to bridge the gap and reclaim their historical prominence.
Destination of Pride
Ahmed Hassan continued his academic and professional journey in computer science and software engineering, quickly establishing himself as a distinguished researcher in the field. He is currently a professor at Queen’s University and the director of its Artificial Intelligence and Software Analytics Laboratory. Alongside these roles, Hassan serves as the director of the industrial research division at the Natural Sciences and Engineering Research Council of Canada. His scientific achievements have earned him recognition as a distinguished member of the Institute of Electrical and Electronics Engineers (IEEE) and the Association for Computing Machinery (ACM). The computer science community and IEEE also credit him as a pioneer of the MSR discipline. For his contributions to MSR and software engineering, Hassan became the youngest laureate of the 2023 Mustafa(pbuh)  Prize, which he regards as global recognition of his efforts. Additionally, he has registered numerous patents in countries including Canada, the United States, India, Europe, and Japan. 
Building a Research Community
One of Ahmed Hassan’s significant achievements is the establishment of a broad research community in the field of Mining Software Repositories (MSR). He initiated a specialized workshop that has grown into the second-largest conference in software engineering today. Hassan believes that fostering such a community is crucial for advancing the field, as it enables developers to leverage each other’s experiences. A computer engineering professor, commenting on the future of this technology, stated, “Humanity will never produce completely flawless software.” As user demands grow, software systems will become increasingly complex, making methods like MSR essential for helping developers create more optimized software.
In the Orbit of Collaboration
According to Ahmed Hassan, communication forms a critical part of building and nurturing the global MSR research community. Additionally, persuading managers and funding organizations is a vital aspect of this growth process. By overcoming his introverted tendencies, Hassan successfully navigated this path and brought his research to fruition. As he puts it, “Communication is of utmost importance for any scientist.” A key factor in his success has been his strong connections with major technology companies such as Microsoft, Google, BlackBerry, IBM, and Nortel. These collaborations have allowed him to implement his software engineering methods on a global scale. He believes that the synergy between academia and industry enables scientific research to transcend theoretical boundaries and make a tangible impact on real-world products and services.
Center of Focus
Hassan’s research emphasizes several core areas, including data-driven software engineering, where statistical methods and machine learning are used to extract optimal patterns for software development. As previously mentioned, he also focuses on Mining Software Repositories, analyzing historical data to understand software behavior and enhance its performance. Another key area of his work is improving the security of software systems by employing artificial intelligence to identify security threats and propose solutions to counter them. Furthermore, Hassan emphasizes the automation of software development processes, designing tools that make programming simpler and more efficient.
Ahmed Hassan’s scientific journey demonstrates that success in advanced technologies is not solely dependent on technical expertise. Long-term vision, responsiveness to emerging needs, and the ability to foster connections among individuals and diverse scientific fields are critical drivers of progress. The future of software engineering will undoubtedly require such leaders—those who understand science and apply it effectively.
 

About the Work‌

A Journey Through Software Evolution


Years ago, when computers were merely seen as tools for solving mathematical equations, the tireless inventors working to bring computers into existence had to realize that what they were creating was far more than a calculator. In the early 1990s, the first computing machines, such as Charles Babbage’s Analytical Engine, used punched cards to input program text and data into the system and store information. In this method, a hole in a designated section represented a value of one in Boolean algebra. The widespread use of punched cards continued until 1950, with IBM producing 10 million of these cards daily by 1937. However, each punched card could only store 70 bytes of data. As a result, all of them together could only hold 679 megabytes of data.
Pushing the limits
In today’s world, the data volume of an average software company can range from several terabytes to tens of terabytes! Indeed, it seems that advancements in artificial intelligence have significantly contributed to continuous improvements in computer memory and storage. When memory technology reached a level capable of processing and storing massive amounts of data quickly and efficiently, complex machine learning algorithms, particularly a branch known as deep learning, experienced explosive growth. In the past, memory limitations prevented the execution of models with billions of parameters. With improvements in this area, the ability to process large datasets became possible, and the boundaries of innovation in artificial intelligence expanded. Increased memory access speeds, enhanced storage capacity, and reduced latency, combined with the growing use of modern technologies such as next-generation DRAM and NVMe drives, created conditions that allowed computers to perform extensive and heavy computations simultaneously. Thus, the simultaneous advancement of hardware and algorithmic developments has been the primary driver of the rapid transformation in artificial intelligence.
Behind the Code
Software engineering is both a science and an art of creating complex software systems, embodying a structured approach to designing, developing, testing, deploying, and maintaining these systems. In other words, this discipline strives to apply engineering principles to produce software that meets high standards in terms of quality, performance, maintainability, and future scalability. As a result, the technologies and services of this field assist users in enhancing productivity and efficiency. Ahmed Hassan, a prominent researcher in this area, views software engineering as a means to bring together many individuals to create something exceptional and innovative. The key lies in uniting people and managing the complexities associated with their collaboration, as software engineering extends beyond the technical aspects of computing. Technical elements intertwine with managerial dimensions and user-related considerations, working together to produce a product that undoubtedly has a tangible impact on society.

From Data to Wisdom
The emerging field of Software Repository Mining (MSR) seeks to analyze and explore the rich data available to uncover insightful and well-documented information about software systems from repositories such as version control systems, email list archives, bug tracking systems, and more. Additionally, this field focuses on revealing dependencies and the structure of related data. Software repositories essentially serve as high-volume databases for storing records, holding data related to a computer company’s products. Typically, software repositories are divided into two parts: the data itself is stored in a version control or source control system, while metadata—information about changes related to each piece of data—is maintained in a separate section. Some define software repository mining as a process of obtaining primary evidence by extracting data from software repositories. Furthermore, certain individuals describe data sources as product-centric artifacts, such as source code, requirements documentation, or version archives, meaning these sources are self-generated documentation based on the product development process. They claim that these sources remain unaffected by external influences, yet they still contain noise and are considered incomplete.
Among the techniques used in MSR is coupled change analysis. The concept of coupled change analysis is based on the observation that developers frequently modify code entities simultaneously to fix bugs or introduce new features. These relationships between code components are often not explicitly documented in the code or other materials. In particular, developers new to a project may not know which entities need to be modified together. The goal of coupled change analysis is to extract these relationships from the project’s version control system. By examining recorded changes in various commits and the timing of those changes, it is possible to identify entities that consistently change together. This information can then be provided to developers working on one of these entities, supporting them in making informed changes moving forward.
Among other software repository mining (MSR) techniques, commit analysis in the software development process stands out. In version control systems, various types of commits exist, such as those related to bug fixes, adding new features, documentation, and more. To make fact-based decisions that lead to more accurate outcomes based on past commits, it is necessary to select subsets of commits relevant to the specific area of interest and enrich the associated data. Generating statistics and documentation is another technique in this field, enabling the creation of valuable documentation by extracting data from software repositories. For example, by calculating usage statistics, newcomers can quickly identify frequently used components. The primary data extraction is derived from version control systems.
Ahmed Hassan’s research in software engineering has significantly accelerated advancements in programming and software development. He believes, “The overarching idea of collecting this volume of data has evolved into a broad and successful field of research worldwide, and today, many major companies, including Google, Microsoft, and Amazon, have integrated this approach into their production and development platforms, enhancing the quality of their software.” It can be said that software repository mining research serves as an empirical guide, encouraging programmers and preventing them from making redundant errors. Fortunately, with researchers like Hassan, this guide is present in leading global companies, fostering hope for smarter and faster technological progress.