I collaborated with a few colleagues on techniques and an automated tool for early validation of requirements. Our approach assists requirements engineers (REs) in validating the correctness, completeness and consistency of elicited requirements with minimum effort and time via generation of abstract test components: test requirements and test cases, and a mocked-up user interface (UI) prototype. The abstract tests are derived from abstract models called Essential Use Cases (EUCs) and Essential User Interface (EUI). A preliminary evaluation shows that our research is useful in assisting the requirements validation process by reducing the effort and time spent and to determine if high quality requirements have been provided.
I am currently working on the development of a software engineering simulation game with a team of my students to assist in the teaching of Software Engineering (CS 3773) next Fall (2016). It will provide a fun and engaging overview of the software engineering process as players attempt to manage computer-controlled software developers in the engineering of fictitious software given randomly determined requirements and contentious computerized clients (complete with deadlines and budgets). Underneath, the game will serve as a starting point for regular class lecture and assignments that focus on the real details involved in the game’s simulated activities. I believe that it will be a fun and educational way to start the course with a complete overview of software engineering. And because it is a game, it might draw some new students who previously had no interest in the subject.
My dissertation research involves modeling access control within a distributed software development effort as a crosscutting concern. Current access control techniques do not support the granularity necessary for logical modularization of engineering artifacts. As a result, developers must be content with coarsely-grained workarounds, such as whole artifact duplication and throwing additional manpower at maintenance of the duplications. My approach enables precise specification and enforcement of access control when an access control policy crosscuts a codebase, avoiding the shortcomings of conventional ham-handed access control techniques and providing a platform for other concern modeling methods.
I created this visualization tool in conjunction with my friend Hui Shen's research involving formal analysis of sequence diagrams. The program generates trace diagrams as images of occurrence specifications from UML 2 sequence diagrams. It was written in Java. The source code can be downloaded from here.
I have also done a bit of research in the areas of formal analysis of web services, networked virtual reality (early 90's) and real-time stratification of 2D scalar fields (my Master's thesis).