SOFTWARE SYSTEMS

PI:   Carla Ferreira


  • The Software Systems (SS) group has a wide range of expertise in programming language principles, design and implementation, and software engineering, allowing us to tackle abroad scope of research problems. We investigate novel foundations, software development methods, language concepts, and verification principles and develop systems, prototypes, and tools. We have strong contributions to the Programming Languages and Software Engineering venues (e.g., ICSE*, CAV*, TOSEM*, TOPLAS*, VLDB*, OOPSLA, RE, ECOOP, ESOP, CONCUR,ESE, JSS).

    We leverage our strong expertise in requirements engineering, programming models, abstractions, meta-programming techniques, and tools and apply them to the new domains of automated programming and swarm computing. We aim to address the following research questions through collaborative projects with industrial and research partners:

    What programming models and abstractions may help to effectively manage the rising complexity of developing correct and performant decentralized applications? As component heterogeneity, scale, and dynamicity continue to increase, what are the key elements required to support a development methodology that is compositional and correct by design?
  • How can we create a sustainability-aware, human-centric AI-augmented development environment to build and evolve inclusive, trustworthy, reliable, and resilient systems? Can conceptual models for the lifecycle of software systems act as guardrails for AI-generated artifacts?

    Can we synthesize software applications that meet non-functional requirements in scenarios of incomplete knowledge? What techniques and tools are needed for mainstream languages and ecosystems to formally and systematically reason about the correctness of application code? Can we systematically reduce the expertise and effort of formal software verification and certification?

RESEARCH GROUPS