In this course, we will address the same case study under two different but complementary point of views: software architecture and devops. For the software architecture part, we will focus on the definition of an n-tiers architecture using software components (implemented as EJBs using the J2E framework). A part of the architecture will also be developed in .Net, emphasising the need to support system interoperability using Web Services. For the DevOps part, we will address the difficult problem of aligning the dev team with the ops one to build a given piece of software. How to slice the code into independent modules that can be compiled, tested and deployed in a continuous way? How to properly test the integration between such loosely coupled components?
The course is scheduled each Friday, during semester #8. The course requires to be fluent in Java, and a strong background in object-oriented programming. The case study is the same for the whole course, and requires a strong investment in software development by team of four students. Splitting your team into two sub-teams, one for the architecture part and one for the devops one is definitively not a winning strategy (been there, done that).
The whole project relies on an open-source reference implementation of The Cookie Factory, a system to sell cookies to delighted customers: https://github.com/polytechnice-si/4A_ISA_TheCookieFactory
A paper (extended abstract) describing this course is published in the "First international workshop on software engineering aspects of continuous development and new paradigms of software production and deployment" (aka DevOps'18), and available here: devops_paper.pdf.
- Philippe Collet, Université Côte d'Azur, CNRS, I3S
- Guilhem Molines, IBM France Labs, Université Côte d'Azur (co-head, DOCT)
- Sébastien Mosser, Université Côte d'Azur, CNRS, I3S (co-head, ISA)
- Anne-Marie Pinna-Déry, Université Côte d'Azur, CNRS, I3S
- Blue sessions are related to ISA
- Green sessions are related to DevOps
- Red sessions are related to examinations (defence or written exam)
Deliveries are automatically extracted from the BitBucket repository of the team.
- 16.02.18, 12:15: MVP architecture (feedback only)
- 28.02.18, 19:00:
- Mutation testing lab (DOCT)
- Architecture report (ISA):
main
repository,archi
tag.
- 30.03.18: Minimal Viable Product (demo)
- 04.05.18: (Almots) Final project (demo)
- 16.05.18: Final project (code + report):
main
repository,polyevent
tag. - 18.05.18: Exam
Even if the case study is shared and the course merged, this is administratively talking two different courses. As a consequence, the evaluation must be separated.
- Introduction to Software Architecture
- Architecture report: 15%
- Intermediate demonstration: 10%
- Final presentation: 15%
- Project (code + report): 20%
- Final exam: 40%
- DevOps & Continuous Testing
- Mutation testing: 15 %
- Intermediate demonstration: 15%
- Final presentation: 15%
- Project (code + report): 15%
- Final exam: 40%
- J2E environment: Apache TomEE+
- Integration testing: Arquillian
- .Net development: Mono
- Containers: Docker
- Continuous integration: Jenkins
- Repository: ArtiFactory
- Code processing: Spoon