PV260 Software Quality

Fakulta informatiky
jaro 2020
Rozsah
2/2/1. 4 kr. (plus ukončení). Doporučované ukončení: k. Jiná možná ukončení: zk.
Vyučující
doc. Ing. RNDr. Barbora Bühnová, Ph.D. (přednášející)
Bruno Rossi, PhD (přednášející)
Mgr. Michal Abaffy (cvičící)
Mgr. Radim Göth (cvičící)
Ing. Pavel Hrdina (cvičící)
RNDr. Stanislav Chren, Ph.D. (cvičící)
Mgr. Matěj Karolyi (cvičící)
Ing. Jiří Koudelka (cvičící)
Mgr. Jakub Čecháček (pomocník)
Garance
doc. Ing. RNDr. Barbora Bühnová, Ph.D.
Katedra počítačových systémů a komunikací – Fakulta informatiky
Dodavatelské pracoviště: Katedra počítačových systémů a komunikací – Fakulta informatiky
Rozvrh
Po 17. 2. až Pá 15. 5. St 12:00–13:50 A217, St 12:00–13:50 A217
  • Rozvrh seminárních/paralelních skupin:
PV260/CSharp_YSoft: Po 17. 2. až Pá 15. 5. Út 16:00–17:50 A218, R. Göth
PV260/Java_Lasaris1: každé sudé úterý 10:00–13:50 B311, S. Chren, M. Karolyi
PV260/Java_Lasaris2: Po 17. 2. až Pá 15. 5. každé liché úterý 10:00–13:50 B311, S. Chren, M. Karolyi
PV260/Java_NetSuite: Po 17. 2. až Pá 15. 5. Po 16:00–17:50 A319, P. Hrdina, J. Koudelka
Předpoklady
PB007 Softwarové inženýrství I && ( PV168 Seminář programování Java || PV178 Úvod do vývoje v C#/.NET )
Omezení zápisu do předmětu
Předmět je nabízen i studentům mimo mateřské obory.
Předmět si smí zapsat nejvýše 70 stud.
Momentální stav registrace a zápisu: zapsáno: 1/70, pouze zareg.: 0/70, pouze zareg. s předností (mateřské obory): 0/70
Mateřské obory/plány
Cíle předmětu
The aim of the course is to introduce students into both theoretical and practical aspects of software quality (quality attributes, metrics, conflicts) and supportive processes (activities contributing to building software quality along the development process), and develop critical thinking that will allow them to identify code flaws and future problems early during the software development life cycle. Students will also become familiar with code refactoring and different dimensions of software testing.
Výstupy z učení
At the end of the course students will:
understand different aspects of software quality (quality attributes, metrics, conflicts) and supportive processes (activities contributing to building software quality along the development process);
be able to identify code flaws related to reliability, performance, scalability, maintainability and testability;
be able to refactor existing code to improve the discussed quality attributes;
have practical experience with different dimensions of software testing and related tools.
Osnova
  • Roadmap to software quality engineering methods.
  • Software measurement and metrics, and their role in quality improvement.
  • Quality in software development, Clean Code & SOLID principles.
  • Bad code smells and code refactoring.
  • Focus on quality attributes and conflicts between them.
  • Static code analysis and code reviews.
  • Requirements and test cases. From unit testing to integration testing.
  • Best practices in software testing and testability. Popular testing strategies.
  • Performance engineering and performance testing.
  • Challenges of quality management in cloud applications.
  • Continuous integration and issue tracking.
  • Software quality management process.
  • Quality and testing in agile.
Literatura
  • ROBERT.C., Martin. Clean Code: A Handbook of Agile Software Craftsmanship. New York: Prentice Hall, 2008. ISBN 978-0-13-235088-4. info
  • FOWLER, Martin. Refactoring :improving the design of existing code. Boston: Addison-Wesley, 2000, xxi, 431 s. ISBN 0-201-48567-2. info
  • FENTON, Norman E. a Shari Lawrence PFLEEGER. Software metrics :a rigorous and practical approach. 2nd ed. Boston: PWS Publishing, 1997, xii, 638 s. ISBN 0-534-95425-1. info
  • PEZZE, M a M YOUNG. Software Testing And Analysis: Process, Principles And Techniques. Hoboken, N.J.: John Wiley & Sons Inc,, 2007, 488 s. ISBN 978-0-471-45593-6. info
Výukové metody
Lectures, using: presentations, examples, practical self-work solution to exercises;
Seminar (computer lab) sessions involving practical work on the topics of the lectures (in the case of the company-led seminar groups, selected topics may be elaborated more deeply than others to increase the knowledge transfer from the involved experts);
Team projects within the seminars.
Metody hodnocení
Students will be assigned medium-size practical assignments (spanning across multiple weeks) within the seminars. The goal of the assignments will be to let the students improve the quality of the provided code by applying the techniques discussed during the course in terms of software measurement for quality improvement, refactoring and testing approaches.
Additionally, there will be a written test at the end, testing the knowledge gained by the students during the semester.
To pass the course, the students must reach at least 70 points out of 100 (45 for seminar assignments, 35 for the final written test, 10 points for activity in seminars, 10 points for activity in lectures).
Vyučovací jazyk
Angličtina
Další komentáře
Studijní materiály
Předmět je vyučován každoročně.
Nachází se v prerekvizitách jiných předmětů
Předmět je zařazen také v obdobích jaro 2015, jaro 2016, jaro 2017, jaro 2018, jaro 2019, jaro 2021, jaro 2022, jaro 2023, jaro 2024, jaro 2025.