Site menu:

Predictable Software Engineering

Developing software is easy. Predicting how software behaves is tough. This contradictory nature of software has led us into a software industry that spends more than 50% its project budgets in testing and error correction. In Cyber-Physical Systems (CPS) these errors have life-threatening consequences. The escalating complexity of CPS makes this problem even worse.

To counteract the increasing complexity of CPS we need to enable the designer to make scalable and predictable design decisions. For this it is necessary to reduce the complexity of the design artifacts that designers manipulate while automatically verifying the consequences of such maniputation.

I am a Principal Researcher and the Technical Director of the Assuring Cyber-Physical Systems (ACPS) directorate in the Software Solutions Division of the Software Engineering Institute. The Software Engineering Institute (SEI) at Carnegie Mellon University is a Federally Funded Research and Development Center (FFRDC)—a nonprofit, public–private partnership that conducts research for the United States government.

The ACPS focuses on the development of CPS that allows capturing unambiguous intended behavior in a scalable, incremental, and continuous way, supported by methods for automated design decisions, and sound assurance.

Research Interest

My research interest focuses on two areas: new challenges of real-time scheduling and model-based engineering (MBE). On the real-time scheduling front I am interested on the new challenges stemming from both the new complex algorithms used in today's real-time systems that do not fit the assumptions of traditional scheduling theory and the new hardware platforms (e.g. multicore) that we are starting to see today but, most importantly we will see starkly different in the future.

On the MBE side, I am interested in tackling the problems coming from the ever increasing complexity of cyber-physical systems. In particular, we can observe that an important element of this complexity comes from the complex interactions between the hardware, software, and physical components of these systems. For this problem the MBE approach uses models that capture these interactions in models. These models are then analyzed to verify specific properties. The challenge then is to develop these models and analysis algorithms that allows us to take decisions at a high level, before we start implementing the system.