Course detail
Practical Aspects of Software Design
FIT-IVSAcad. year: 2023/2024
Fundamentals of Unix philosophy and their use in programming, the role of code testing and the test-driven development, component-oriented code, performance issues, profiling, distributed version management, parallel computing, big data, practical experience of software teams.
Language of instruction
Czech, English
Number of ECTS credits
5
Mode of study
Not applicable.
Guarantor
Entry knowledge
Not applicable.
Rules for evaluation and completion of the course
- Mid-term test (30 points)
- Projects (70 points in total)
Aims
To understand the process of software development in teams and to get acquainted with real applications
that help to create and documenting component-based projects, to learn how to easily prototype graphical
user interfaces, what are preconditions of successful free software and usability measurement.
Students will get acquainted with modern approaches to software development, having successfully completed the course, students will be able to take part in teams developing shared code, will know the tools helping the development of efficient and well-documented code as well as applications better reflecting the user's needs. Students will learn to work on projects. They will also improve their knowledge of modern development and documenting tools.
Students will get acquainted with modern approaches to software development, having successfully completed the course, students will be able to take part in teams developing shared code, will know the tools helping the development of efficient and well-documented code as well as applications better reflecting the user's needs. Students will learn to work on projects. They will also improve their knowledge of modern development and documenting tools.
Study aids
Not applicable.
Prerequisites and corequisites
- recommended prerequisite
Introduction to Software Engineering - recommended prerequisite
Introduction to Programming Systems
Basic literature
Not applicable.
Recommended reading
BATH, Graham a Judy MCKAY. The software test engineer's handbook. Santa Barbara: Rocky Nook, 2008, xviii, 397 s. ISBN 978-1-933952-24-6.
Baumann, H.; Grässle, P.; Baumann, P.: UML 2.0 in Action: A project-based tutorial. Birmingham: Packt Publishing, Prosinec 2009, ISBN 1-904811-55-8. Download
Critchley, A. et al: Git® Notes for Professionals. GoalKicker.com, 2017.
Dustin Boswell, Trevor Foucher: The Art of Readable Code. O'Reily, 2010. https://www.oreilly.com/library/view/the-art-of/9781449318482/
Fowler, M.: Refactoring: Improving the Design of Existing Code (2nd Edition), 2018.
J. Pérez López, L. Ribas i Xirgo: Introduction to Software development, 2010. http://ftacademy.org/sites/ftacademy.org/files/materials/fta-m7-fs_development.pdf
Ken Schwaber and Mike Beedle Agile Software Development with Scrum Addision-Wesley, 2002
Osterhage, W. W.: IT Quality Management. Berlin, Heidelberg: Springer Berlin / Heidelberg, 2015. ISBN 9783662437667.
Booth, J. D.: GitHub Succinctly. Syncfusion Inc. 2016.
Pecinovský, R.: JUnit 5 : jednotkové testování na platformě Java, Grada, 2018, ISBN: 978-80-271-0733-9 (CS)
S. A. Babkin: The Practice of Parallel Programming. Create Space, 2010. https://www.createspace.com/3438465
Scott Chacon: Pro Git, 2009 http://knihy.nic.cz/files/nic/edice/scott_chacon_pro_git.pdf
STEPHENS, Matt a Doug, ROSENBERG. Testování softwaru řízené návrhem. Brno: Computer Press, 2011, 336 s. : il., portréty. ISBN 978-80-251-3607-2.
Baumann, H.; Grässle, P.; Baumann, P.: UML 2.0 in Action: A project-based tutorial. Birmingham: Packt Publishing, Prosinec 2009, ISBN 1-904811-55-8. Download
Critchley, A. et al: Git® Notes for Professionals. GoalKicker.com, 2017.
Dustin Boswell, Trevor Foucher: The Art of Readable Code. O'Reily, 2010. https://www.oreilly.com/library/view/the-art-of/9781449318482/
Fowler, M.: Refactoring: Improving the Design of Existing Code (2nd Edition), 2018.
J. Pérez López, L. Ribas i Xirgo: Introduction to Software development, 2010. http://ftacademy.org/sites/ftacademy.org/files/materials/fta-m7-fs_development.pdf
Ken Schwaber and Mike Beedle Agile Software Development with Scrum Addision-Wesley, 2002
Osterhage, W. W.: IT Quality Management. Berlin, Heidelberg: Springer Berlin / Heidelberg, 2015. ISBN 9783662437667.
Booth, J. D.: GitHub Succinctly. Syncfusion Inc. 2016.
Pecinovský, R.: JUnit 5 : jednotkové testování na platformě Java, Grada, 2018, ISBN: 978-80-271-0733-9 (CS)
S. A. Babkin: The Practice of Parallel Programming. Create Space, 2010. https://www.createspace.com/3438465
Scott Chacon: Pro Git, 2009 http://knihy.nic.cz/files/nic/edice/scott_chacon_pro_git.pdf
STEPHENS, Matt a Doug, ROSENBERG. Testování softwaru řízené návrhem. Brno: Computer Press, 2011, 336 s. : il., portréty. ISBN 978-80-251-3607-2.
Elearning
eLearning: currently opened course
Classification of course in study plans
Type of course unit
Lecture
26 hod., optionally
Teacher / Lecturer
Syllabus
- Introduction, practical rules for the writing of sustainable code and effective usage of IDE
- Software testing, TDD (Test-Driven Development) and its usage in team development
- Teamwork, communication, team data sharing, basics of project design and planning
- Distributed version control, GIT
- Documentation types, system documentation generated from the code, Component-based development and cross-platform libraries
- Code assembling, Make, Cmake a Qmake.
- User interfaces
- Issue tracking, debugging, bug tracking and QA
- Mid-term test
- Program deployment
- Algorithm optimization, parallelization and profiling
- Programming languages and paradigms, SWIG and integration of legacy code
- Invited experts from companies
Project
26 hod., compulsory
Teacher / Lecturer
Syllabus
- Test definition (18 points)
- The project focused on team development (52 points)
Elearning
eLearning: currently opened course