Selected Publications

Dead field is one of the most common test smells found in the test code which is responsible for degrading performance and creating misapprehension about the code. The reason of its occurrences is that in most of the cases, developers initialize setup fields without considering the usage of those fields in the test methods. In this paper, an automatic dead field identification technique is proposed where the test code is statically searched for identifying the usage of all the setup fields. It does so by figuring out all the setup fields which are initialized in the setup method or its invoked methods. After that, it detects such fields which are used by at least one test method directly or indirectly. In addition, field dependency is resolved to find all the fields on which used setup fields depend. At last, all the unused setup fields are gathered and considered as dead fields. To evaluate the technique, it was implemented in the form of a tool and two open source projects were run on it. It has been seen that it identifies all the dead fields in those projects correctly and performs better than existing dead field detection techniques.
In CDUD 2016

Software engineering requires modification of code during development and maintenance phase. During modification, a difficult task is to understand rationale of changed code. Present Integrated Development Environments (IDEs) attempt to help this by providing features integrated with different types of repositories. However, these features still consume developer's time as he has to switch from editor to another window for this purpose. Moreover, these features focus on elements available in present version of code, thus increasing the difficulty of finding rationale of an element removed or modified earlier. Leveraging different sources for providing information through code completion menus has been shown to be valuable, even when compared to standalone counterparts offering similar functionalities in literature. Literature also shows that it is one of the most used features for consuming information within IDE. Based on that, we prepare an Eclipse plug-in and a framework that allows providing reason of code change, at method granularity, across versions through a new code completion menu in IDE. These allow a software engineer to gain insight about rationale of removed or modified methods which are otherwise not available in present version of code. Professional software engineers participated in our empirical evaluation process and we observed that more than 80% participants considered this to be a useful approach for saving time and effort to understand rationale of method change. Later, based on their feedback, the plug-in and framework is modified to incorporate chronological factors. We perform quasi experimental evaluation with professional software engineers. It is found that time required to find rationale of method change is reduced to at least half compared to usual amount of time required for all the software engineers who participated in the quantitative evaluation.
In IJIEEB 2015

Affiliations / Activities

Due to previous achievements in different types of competitions and communities, as well as considering my current position - I am frequently invited to mentor, judge and speak at various events. Some of these are:

2016

  • Mentor and Judge, National Hackathon
  • Mentor, Smart City Hackathon
  • Panel Speaker at Facebook’s F8 Meetup at Bangladesh
  • Speaker at International Women’s Day Celebration - by IEEE AIUB Student Branch and Google Women Techmakers Bangladesh
  • Judge, EATL-Prothom Alo App contest

2015

  • Moderator, IEEE Pro-Talk 2015
  • Technical Session on Mobile Apps Lifecycle and Ecosystem at EATL- Prothom Alo App Contest 2015 Bootcamp

Recent Publications

  • A Static Code Search Technique to Identify Dead Fields by Analyzing Usage of Setup Fields and Field Dependency in Test Code

    Details PDF CDUD2016

  • Selecting best attributes for software defect prediction

    Details IEEE Xplore

  • A Content Assist based Approach for Providing Rationale of Method Change for Object Oriented Programming

    Details PDF IJIEEB

  • A formal approach to verify software scalability requirements using set theory and Hoare triple

    Details PDF ICCIT

  • Cloud-Niagara: A high availability and low overhead fault tolerance middleware for the cloud.

    Details PDF ICCIT

Administration / Committees

As part of administration / committees - I made several contributions both individually and in group for Institute of Information Technology (IIT), University of Dhaka. Some of these are:

4th Year Committee / Intern Placement Office

As member of the 4th Year Management Committee and Intern Placement office, I contributed in:

Evening Program Management Committee (EPMO)

As PGDIT Coordinator, I was a member of EPMO from year 2015-16. Some contributions are:

Events Coordination

On Behalf of IIT, I coordinated the organizers of several events. Some of these are:

  • Seminar on Cyber Crime and Digital Signature - Jointly organized by IIT, ICT Division of Bangladesh Government and DUITS
  • Workshop on Converting concept to Business implementation by Kovair and IIT

Courses

I lectured on the following courses at Institute of Information Technology, University of Dhaka:

Contact