Title:

Practical Aspects of Software Design

Code:IVS
Ac.Year:2018/2019
Sem:Summer
Curriculums:
ProgrammeField/
Specialization
YearDuty
IT-BC-3BIT1stElective
Language of Instruction:Czech
Public info:http://www.fit.vutbr.cz/study/courses/IVS/public/
Credits:5
Completion:classified credit
Type of
instruction:
Hour/semLecturesSeminar
Exercises
Laboratory
Exercises
Computer
Exercises
Other
Hours:2600026
 ExamsTestsExercisesLaboratoriesOther
Points:0300070
Guarantor:Smrž Pavel, doc. RNDr., Ph.D. (DCGM)
Deputy guarantor:Dytrych Jaroslav, Ing., Ph.D. (DCGM)
Lecturer:Dytrych Jaroslav, Ing., Ph.D. (DCGM)
Grochol David, Ing. (DCSY)
Smrž Pavel, doc. RNDr., Ph.D. (DCGM)
Vaverka Filip, Ing. (DCSY)
Wiglasz Michal, Ing. (DCSY)
Instructor:Bartl Vojtěch, Ing. (DCGM)
Doležal Jan, Ing. (DCGM)
Dytrych Jaroslav, Ing., Ph.D. (DCGM)
Fajčík Martin, Ing. (DCGM)
Kadlubiak Kristián, Ing. (DCSY)
Kukliš Filip, Ing. (DCSY)
Vaverka Filip, Ing. (DCSY)
Veigend Petr, Ing. (DITS)
Wiglasz Michal, Ing. (DCSY)
Faculty:Faculty of Information Technology BUT
Department:Department of Computer Graphics and Multimedia FIT BUT
Prerequisites: 
Introduction to Programming Systems (IZP), DIFS
Introduction to Software Engineering (IUS), DITS
Schedule:
DayLessonWeekRoomStartEndLect.Gr.Groups
Moncomp.lab - instalace u zákazníka2019-04-29N205 13:0018:50
TuelecturelecturesD105 08:0009:501BIA 1BIB 2BIA 2BIB 3BIT xx
Tuecomp.lab - instalace u zákazníka2019-04-30N204 N205 18:0019:50
Thucomp.lab - instalace u zákazníka2019-05-02N203 N204 17:0019:50
Friexam - Půlsemestrální zkouška2019-04-05D0206 D0207 D105 08:0009:501BIA 1BIB 2BIA 2BIB
Friexam - Půlsemestrální zkouška2019-04-05A112 08:0012:501BIA
Friexam - Půlsemestrální zkouška2019-04-05D105 08:0009:501BIA 3BIT
Fricomp.lab - instalace u zákazníka2019-05-03N105 09:0011:50
Fricomp.lab - instalace u zákazníka2019-05-03N105 13:0014:50
 
Learning objectives:
  To understand the process of software development in teams and to get acquaint with real applications that help creating and documenting component-based projects, to learn how to easily prototype graphical user interfaces, what are preconditions of successful free software and usability measurement.
Description:
  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.
Subject specific learning outcomes and competencies:
  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 users needs.
Generic learning outcomes and competencies:
  Students will learn to work on projects. They will also improve their knowledge on modern development and documenting tools.
Why is the course taught:
  The course IVS was established as a preparatory course for student collaboration on research at the FIT. It provides students with insight into the entire process of SW development from planning, design, implementation and testing to final product deployment in the customers company. The graduate will know what each stage of SW development involves and what tools are used in it, which will allows him / her to be better oriented when choosing his / her specialization and other elective courses. An essential part of the course is the preparation of students for teamwork on SW development and familiarization with version control systems, as these are basic knowledge and skills for developing any larger SW.
Syllabus of lectures:
 
  1. Introduction, practical rules for writing of sustainable code and effective usage of IDE
  2. Software testing, TDD (Test-Driven Development) and its usage in team development
  3. Team work, communication, team data sharing, basics of project design and planning
  4. Distributed version contol, GIT
  5. Documentation types, system documentation generated from the code, Component-based development and cross-platform libraries
  6. Code assembling, Make, Cmake a Qmake.
  7. User interfaces
  8. Issue tracking, debugging, bugtracking and QA
  9. Mid-term test
  10. Program deployment
  11. Algorithm optimization, paralelization and profiling
  12. Programming languages and paradigms, SWIG and integration of legacy code
  13. Invited experts from companies
Syllabus - others, projects and individual work of students:
 
  1. Test definition (18 points)
  2. Project focused to team development (52 points)
Fundamental literature:
 
Study literature:
 
  • 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
  • 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.
  • STEPHENS, Matt a Doug, ROSENBERG. Design Driven Testing. 2010. ISBN 978-1-4302-2944-5.
Progress assessment:
  
  • Mid-term test (30 points)
  • Projects (70 points in total)
Exam prerequisites:
  At least 50 points.
 

Your IPv4 address: 54.243.17.113
Switch to https

DNSSEC [dnssec]