Course detail
Practical Aspects of Software Design
FIT-IVSAcad. year: 2020/2021
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
Number of ECTS credits
Mode of study
Guarantor
Learning outcomes of the course unit
Students will learn to work on projects. They will also improve their knowledge of modern development and documenting tools.
Prerequisites
Co-requisites
Planned learning activities and teaching methods
Assesment methods and criteria linked to learning outcomes
- Mid-term test (30 points)
- Projects (70 points in total)
Exam prerequisites:
At least 50 points.
Course curriculum
Work placements
Aims
Specification of controlled education, way of implementation and compensation for absences
Recommended optional programme components
Prerequisites and corequisites
- recommended prerequisite
Introduction to Software Engineering - recommended prerequisite
Introduction to Programming Systems
Basic literature
Recommended reading
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
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
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. Design Driven Testing. 2010. ISBN 978-1-4302-2944-5.
Classification of course in study plans
Type of course unit
Lecture
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
Teacher / Lecturer
Syllabus
- Test definition (18 points)
- The project focused on team development (52 points)