Software artifacts are becoming on-demand and service based. There has been a massive proliferation of different computing platforms on which the software can run, such as multi/many core cluster, massively parallel co-processors, virtualized infrastructure, as well as mobile devices. Each platform poses a unique software engineering challenge to the software built for it. Furthermore, software engineering is increasingly becoming a team enterprise which is often distributed. Dynamics of interaction and collaboration is becoming a crucial aspect to meet today’s rapid development demand. The main focus of Software group is to develop methods and techniques to help building such software.
Thrust Area: Center for High Performance and Dependable Systems
Focus areas are:
1. Sustain and evolve applications
Here we aim to build techniques that can help the developers to build new applications, or evolve existing applications for the new computing platforms. Some of the research challenges are:
* Providing an appropriate abstraction that can hide the platform specific application development complexities, at the same time exploit the platform specific computation capabilities well.
* Developing techniques for predicting the quality attributes (such as speedup, scalability, energy consumption) of the software that is going to run on the new platform.
2. Assure quality of service
Here we develop software analytics based approach techniques to detect, alert and eliminate events that can hamper the service quality of an operational system. Some of the research challenges are:
* Predict anomalies, silent data corruption and failure through field-data analysis
* Ensure SLA through workload aware capacity planning
* Availability analysis in the event of failure
Here we aim to verify whether the software, developed for the new computing platform is ready to be operational. Specifically the research challenges we focus are:
* Formally verify whether a refactored program preserves the original semantics and satisfies various quality attributes
* Develop techniques to test and measure software fault-tolerance