Research in Software Engineering

Synopsis of the Research Area

Software Engineering is a systematic approach to analyzing, designing, implementing, testing, maintaining, and managing software systems. School of Computing faculty conduct research projects in areas including modeling and specification, software traceability, cross-platform development, and global software engineering. These research areas incorporate a diverse set of skills from computer science, machine learning, formal logic, architectural design, and social networking.

Software Engineering research groups at DePaul have been funded by the National Science Foundation, Siemens Corporate Research, Microsoft, and Lockheed Martin for over $3Million in the past seven years, and students and faculty have earned prestigious awards including ACM SIGSOFT Distinguished Paper awards, and the IFIP Paul Manfred Award for excellence in Software Theory and Practice.

Faculty

Jane Cleland-Huang

Dr. Huang serves as the North American Director of the Center of Excellence for Software Traceability, and as Director of the Systems and Requirements Engineering Center at CDM. Her research focuses on the area of software traceability and requirements engineering, with a special emphasis on applying machine learning and information retrieval methods to automate Software Engineering processes. Dr. Huang oversees an active and well-funded research lab that includes post doctoral researchers, PhD students, as well as Master level and undergraduate students.

Xiaoping Jia

Dr. Jia focuses his research on cross-platform development, with special emphasis on modeling notations, model-driven development, software development for mobile and wireless devices, type-checking, and static analysis.

Ed Keenan

Ed Keenan's research interests are in developing pedagogical techniques for training global Software Engineers.

Adam Steele

Dr. Steele's research interests are in the intersection of Human Computer Interaction with Software Engineering. Specifically he studies how HCI concerns can be incorporated into the software development process. In particular, User Interface Definition Languages (UIDLs), the use of cross-platform prototyping, and the use of prototypes in the requirements elicitation phase of project development. He also investigates techniques for combining methodologies from the Design community with that of more traditional Software Engineering.

Current Research Projects

Agile software development using dynamically typed languages

Dynamically typed programming languages such as Ruby, Python, and Groovy have become quite popular. However, the lack of strong type checking removes an effective protection from potential defects in software. The goal of the research is to develop methods and tools to support on-demand type checking and static analysis of dynamically typed programming languages, so that they have equal or better protection from potential defects as statically typed languages without sacrificing their agility. Contact Dr. Jia for further information.

Cross-platform development of mobile applications

Software applications for mobile devices, such as iPhone and Android based devices, are becoming very popular. However, there are quite a number of different mobile platforms with significant customer bases. Application developers have to develop, port, and support their applications in each of the major mobile platforms in order to reach all their potential customer bases. It is rather costly to develop, port, and support an application on several platforms. The goal of the research is to develop methods and tools to support cross-platform development of mobile applications, so that applications can be developed and maintained in a platform independent way. Therefore the cost for development and maintenance of mobile applications can be significantly reduces without limiting the potential customer bases. Contact Dr. Jia for further information.

Sample publications include:

  • Hongming Liu, Xiaoping Jia, Lizhang Qin, Adam Steele: A Model Transformation Framework for Model Driven Engineering. MSVVEIS 2008: 59-70
  • Xiaoping Jia, Hongming Liu, Lizhang Qin, Adam Steele: Metamodel based Model Transformation Framework. Software Engineering Research and Practice 2008: 496-502

Domain Analysis

Domain analysis is the process of analyzing related software systems to identify, organize, and represent features common to systems within a domain. This process is typically human-intensive and dependent upon the availability of subject matter experts. The goals of this project are to develop recommender systems for automating support for domain analysis and modeling activities in order to reduce the time and effort of building both single application systems and also product line families. Contact Dr. Cleland-Huang for further information.

Sample publications include:

  • Horatiu Dumitru, Marek Gibiec, Negar Hariri, Jane Cleland-Huang, Bamshad Mobasher, Carlos Castro-Herrera, Mehdi Mirakhorli, "On-demand Feature Recommendations derived from Mining Public Product Descriptions", IEEE International Conference on Software Engineering, Honolulu, Hawaii, USA, May 2011.

Global Software Development

As software engineering has become a globalized endeavor, it is important to develop techniques and tools to support distributed communication. This project focuses on developing novel techniques for training global software engineers, for modeling collaborations in globally distributed projects, and on developing coordination tools and recommender systems that support collaborative requirements gathering activities in forums and wikis.

Sample publications include:

  • Ed Keenan, Adam Steele, and Xiaoping Jia, Simulating Global Software Development in a Course Environment, International Conference on Global Software Engineering, 2010, Holboken, New Jersey.
  • Paula Laurent, Patrick Maeder, Jane Cleland-Huang, Adam Steele, A Taxonomy and Visual Notation for Modeling Globally Distributed Requirements Engineering Projects, International Conference on Global Software Engineering, 2010, Holboken, New Jersey

Software and Systems Traceability

Software traceability is a critical component of every software intensive system. It is used to support activities such as compliance verification, impact analysis, rationale tracking, and design allocation. This research has developed automated approaches that utilize machine learning and information retrieval methods to generate traceability links in real-time, visualize traces and trace queries, and address specific traceability applications such as architectural preservation and Mechatronics traceability. This research project has received approximately $3Million in funding from the National Science Foundation and from industrial collaborators over the past 5 years. For further information see http://traceabilitycenter.org

Sample publications include:

  • Marek Gibiec, Adam Czauderna, and Jane Cleland-Huang, Towards mining replacement queries for hard-to-retrieve traces. In Proceedings of the IEEE/ACM international Conference on Automated Software Engineering (Antwerp, Belgium, September 20 - 24, 2010), pp. 245-254.
  • Jane Cleland-Huang, Adam Czauderna, Marek Gibiec, and John Emenecker, A Machine Learning Approach for Tracing Regulatory Codes to Product Specific Requirements, International Conference on Software Engineering, 2010, pp. 155-164.
  • J. Cleland-Huang, Will Marrero, Brian Berenbach, “Goal Centric Traceability: Using Virtual-Plumblines to Maintain Critical Systemic Qualities”, IEEE Transactions on Software Engineering, 2008. Sept./Oct. 2008, pp. 685-699.

Visual modeling and model-driven engineering

UML is a widely adopted standard for visually modeling software applications. Despite the success of UML, there are a number of known limitations and deficiencies of UML, including inconsistencies and incompatibility of tools. The goal of the research is to design enhanced and executable notations and tools to visually and precisely model software applications.

Sample publications include:

  • Hongming Liu, Lizhang Qin, Xiaoping Jia, Adam Steele: Model Transformation Framework Supported by ZOOM. Software Engineering Research and Practice 2007: 151-158
  • Patrick Maeder and Jane Cleland-Huang, A Visual Trace Query Language, Conference on Model Driven Engineering Languages and Systems, Lecture Notes in Computer Science, 2010, Volume 6394/2010, 226-240.
  • Xiaoping Jia, Adam Steele, Lizhang Qin, Hongming Liu, Chris Jones: Executable visual software modeling - the ZOOM approach. Software Quality Journal 15(1): 27-51 (2007)