Department of Electrical and Computer Engineering

Tien N. Nguyen, Associate Professor






Other Collaborative Research Projects

My research mainly focuses on two areas: Software Engineering and Web Engineering. In particular, my interests in Software Engineering include Version Control and Configuration Management, Software Maintenance and Evolution, Mining Software Repository, Software Architecture and Traceability, Secure Software Engineering, and Software Visualization.

For the Web, my focuses are on Web Engineering, Web Security, Web Information Retrieval and Visualization, and Hypermedia Systems.

Dynamic Refactoring Composition (DRC): This is a formal model for the dynamic refactoring composition in multi-user settings. It provides a theoretical foundation for our refactoring-aware source code merge tool, MolhadoRef, and API online update. More.

Evolution of Requirements and Semantics-based Traceability: This project aims to provide supports for maintaining changes in requirements including functional and non-functional ones such as security, reliability, performance, etc. Our approach to the traceability problem is a combination of Semantic Web ontologies, automated reasoning and human language technology.We want to use semantics-based traceability where ontologies are used early in the life-cycle to prevent errors and knowledge transfer inefficiencies. The traceability model must also handle changes between requirements, architecture design, and source code. Check out our early traceability work.

Secure Software Architectural Design Method: This secure software engineering project aims to develop a secure software system architectural design methodology and supporting tools. During the design process, security-related design supporting tools will examine the current system architecture and semi-automatically enhance the architecture with security-related components based on the specified security requirements. We are also working on visualization techniques for software architecture with the goal of helping software developers to maintain the security and reliability of their systems. Check out our architectural software configuration management system, MolhadoArch, at ICSM 2004.

Information Security in Web 2.0 environment: We are currently building a security infrastructure for Web 2.0 environment that is based on a novel trust management and resource management model. Semantic Web-based resources are also intelligently managed. We also want to build a visualization model that is able to visualize the different aspects of a Web-based system and provide users with visual cues for potential security threats or problems in reliability.

Data Configuration Management: Large scientific experiments and simulations produce enormous quantities of scientific data sets. For subsequent analysis and visualization, data needs to be generated for different parameters and variables along various
dimensions, thus, producing various evolving data configurations. The task of managing those large volumes of data configurations is so overwhelming that researchers in their scientific computing tasks spend much of their time on data management tasks, rather than on scientific analysis and discovery. Lifting this burden off scientists and researchers would greatly improve their efficiency and productivity in their research. Our goal is to develop solutions to the efficient data configuration management (DCM) of large volumes of data in scientific computing applications. Our proposed research will focus on the application of well-established and successful configuration management (CM) technologies into large-scale scientific data management.

Bug Information Analysis: This Mining Software Repository project is a collaboration with Dr. Sung Kim at MIT and Dr. Tom Zimmermann at Sarland University.We want to find the patterns of bugs and bug fixes, including human factors. And then later on, if some similar bugs occur, the system can assign a particular developer to fix those bugs and then points to the pattern of changes and bug fixes in the repository in order to help in the bug fixing process. Many other information can be derived with machine learning techniques.

Tien N. Nguyen (2005),