Our extensive industrial collaboration enables us to do research with immediate application to software development practices in realistic settings.
Clafer Project Ideas
Hello!
- Thinking about grad school and looking for an interesting co-op experience in a research lab?
- Are you a student who enjoys programming challenges?
- How about compilers, Haskell, Scala, and Java?
- Want to make impact on software engineering?
We might have something for you!
Software is an integral part of everyone's life. Specifying software requirements has impact on the whole development process. In fact, correcting requirements errors in later development phases can cost up to 200 times as much as correcting them in the requirements phase. Thus, eliciting requirements and finding errors early is an important problem. We want to help requirements analysts (who elicit requirements) and software developers by offering them Clafer.
What is Clafer?
Clafer is a lightweight modeling language. We envision it as a language that helps business analysts and software engineers to create precise, correct specifications. A Clafer specification can help developers to create a correct implementation. Although, there are many modeling tools and languages, such as those for UML, they are bulky and unsuitable for early stages of software development. Clafer aims at filling this gap. Widespread adoption of Clafer is impossible without proper infrastructure and tools that allow users taking full advantage of the power offered by Clafer.
Why to Work with Us?
- The results of the projects have the potential to contribute to the wider adoption of modeling in the software industry. Clafer is also of interest to be used in education.
- You get a chance to learn about software research projects, which would be a good preparation for grad school.
- It is an opportunity to participate in writing research papers related to Clafer. Having a paper on your CV is an effective way to get admitted to a graduate program.
- Although we tried to precisely define goals of the projects, there is still a lot of freedom with regard to their implementation.
- If you like functional programming and/or Eclipse, you'll have a lot of fun!
- You'll be working with Michal, Kacper, and Leonardo who are passionate and deeply engaged in the project.
Requirements
- Passion for working on the bleeding edge technologies and approaches. Be open-minded, independent, innovative, challenge the state-of-the-art, and willing to take some risk.
- Useful technical skills include familiarity with modeling, imperative and declarative programming styles: object-oriented, functional, and logic programming. Experience with implementing compilers is great to have.
- Excellent programming skills. Depending on the project: Haskell, Scala, Java. Please visit our Clafer and ClaferIG repository to get an idea of the code we have.
- Familiarity with XML, Eclipse, and SAT/SMT solvers is helpful.
If you're interested or have questions, don't hesitate to contact us!
Project Ideas


