TJTS5901 Jatkuva ohjelmistotuotanto (5 op)
Kuvaus
Systems are ultimately evaluated based on the value they deliver to their users and stakeholders. To increase the value, systems are subject to fast-paced evolution, due to many reasons. To address this situation, agile practices advocate flexibility, efficiency, and speed. Continuous software engineering refers to the organizational capability to develop, release, and learn from software in several parallel cycles, typically hours, days, or very small numbers of weeks. This includes determining new functionality to build, evolving and refactoring the architecture, developing the functionality, validating it, and releasing it to customers, and collecting experimental feedback from the customers to inform the next cycle of development. In this course, students will study the continuous delivery model and apply it in a practical project. The development of the work is guided by the Essence framework and students are exposed to cross-cutting research which spans from the area of process and organizational aspects in software engineering to technical aspects in the individual phases of the software engineering lifecycle.
Osaamistavoitteet
After the completion of the course, the student understands the dynamics of continuous software engineering principles and practices. The students are able to apply continuous delivery workflow in practice using the Essence vocabulary and terminology. The student is able to experiment with building a deployment pipeline and manage the continuous release planning process. The student understands the transition process from software engineering to continuous software engineering.
Lisätietoja
The course involves lectures, guest-lectures, exercises, and practical project work. There is no exam in the course.
Kirjallisuus
- Fitzgerald, B., & Stol, K. J. (2017). Continuous software engineering: A roadmap and agenda. Journal of Systems and Software, 123, 176-189.
- Johanssen, J. O., Kleebaum, A., Paech, B., & Bruegge, B. (2018, May). Practitioners' eye on continuous software engineering: an interview study. In Proceedings of the 2018 International Conference on Software and System Process (pp. 41-50).
- Laukkanen, E., Itkonen, J. & Lassenius, C. (2017). Problems, causes and solutions when adopting continuous delivery—A systematic literature review. Information and Software Technology, 82, pp. 55-79. doi:10.1016/j.infsof.2016.10.001
- Teixeira, D., Pereira, R., Henriques, T., Silva, M. & Faustino, J. (2020). A Systematic Literature Review on DevOps Capabilities and Areas. International Journal of Human Capital and Information Technology Professionals (IJHCITP), 11(2), pp. 1-22. doi:10.4018/IJHCITP.2020040101
- Jacobson, I., Ng, P., Mcmahon, P., Spence, I. & Lidman, S. (2012). The essence of software engineering: The SEMAT kernel. Communications of the ACM, 55(12), pp. 42-49. doi:10.1145/2380656.2380670
- Kemell, K. K., Nguyen-Duc, A., Wang, X., Risku, J., & Abrahamsson, P. (2018, November). The essence theory of software engineering–Large-scale classroom experiences from 450+ Software Engineering BSc students. In International Conference on Product-Focused Software Process Improvement (pp. 123-138). Springer, Cham.
- Ivar Jacobson, Harold "Bud" Lawson, Pan-Wei Ng, Paul E. McMahon, Michael Goedicke. (2019) .The Essentials of Modern Software Engineering, Morgan & Claypool