My research focuses on the following topics:
- Software Verification & Validation
- Predictive Models
- Human Factors in Software Engineering
- Software Testing
- Software Engineering Education
Software Estimation and Predictive Models
Accurate software estimation is important for effective project management activities such as: budgeting, project planning and control. A novel neuro-fuzzy framework that combines soft computing with an algorithmic model has been developed for software estimation, which has greatly improved estimation accuracy in comparison with other well-known conventional models. Our framework has been expanded and generalized, and two patents (US-7328202-B2 and CND-2,477,919) have been granted. This encourages us to pursue the application of our novel and patented neuro-fuzzy framework for different types of predictions in other fields: e.g., in Business for interest/inflation rate forecast; in Medicine for predicting cancer growth, compliance to drugs, evolution of chronic diseases, and other determinants of health; and in software analytics.
Human Aspects of Software Engineering
Software engineering is forecast to be among the fastest growing employment fields in ensuing decades. This investigation correlates the personality types of software engineers to the main tasks of a software life cycle. This research tries to match the MBTI dimensions (extraversion-introversion, sensing-intuition, thinking-feeling, judging-perceiving) with some skills believed to be relevant in each phase of a software life cycle model, skills such as concern for user requirements, ability to innovate, attention to details, compliance with deadlines, and so on. The result of this work may help software professionals find a niche in sub-areas of software engineering, increase their job satisfaction and improve performance.
A Holistic Approach to Software Testing
My long-term objective is to establish a comprehensive research program in human factors in software engineering, which will lead to the development of solutions to problems related to software testing. We intend to pursue a model describing human stimuli and inhibitors for software testing by studying the (un)popularity of software testing among software engineering students and software practitioners, and develop a novel test analytics engine that encompasses a wide variety of software development data. These analytics enable software engineers to get insight into test activities at the personal and team level. The insights thus obtained broaden the scope of test scenarios, stimulating the creation of both best case and worst case test scenarios.