Course detail
Practical Aspects of Software Design
FIT-IVSAcad. year: 2018/2019
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 on 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 writing of sustainable code and effective usage of IDE
- Software testing, TDD (Test-Driven Development) and its usage in team development
- Team work, communication, team data sharing, basics of project design and planning
- Distributed version contol, 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, bugtracking and QA
- Mid-term test
- Program deployment
- Algorithm optimization, paralelization and profiling
- Programming languages and paradigms, SWIG and integration of legacy code
- Invited experts from companies
Project
Teacher / Lecturer
Syllabus
- Test definition (18 points)
- Project focused to team development (52 points)