460-2075/01 – Software Project Management (SSP)

Gurantor departmentDepartment of Computer ScienceCredits3
Subject guarantorIng. Jan Kožusznik, Ph.D.Subject version guarantorIng. Jan Kožusznik, Ph.D.
Study levelundergraduate or graduateRequirementOptional
Year2Semestersummer
Study languageCzech
Year of introduction2021/2022Year of cancellation
Intended for the facultiesFEIIntended for study typesBachelor
Instruction secured by
LoginNameTuitorTeacher giving lectures
HRB33 Ing. David Hrbáč
KOZ01 Ing. Jan Kožusznik, Ph.D.
Extent of instruction for forms of study
Form of studyWay of compl.Extent
Full-time Graded credit 1+2

Subject aims expressed by acquired skills and competences

The aim of this course is to acquaint students with the basic techniques and technologies used in the field of "Configuration Management". Students will gain knowledge of basic concepts and techniques used for source code management. Furthermore, students will get acquainted with techniques for build, build management, environment configuration, change management and documentation. Within the course, they will practically encounter tools that are used for the mentioned areas of configuration management such as Git, Maven, Jenkins, Docker, Gitlab, Github or Vagrant. After completing the course, students will be able to share code with other developers using the Git repository, create changes in independent branches, project changes to the main development branch and resolve simple conflicts. Students will be able to build software in a unified way using the Maven tool and ensure easy software deployment using the Jenkins tool. They will also be able to run the software in a unified environment through the Docker container. Students will also be able to use Github / Gitlat tools for project management needs. Skills will also include the ability to create project documentation using the Markdown markup language and then create its HTML representation.

Teaching methods

Lectures
Individual consultations
Tutorials
Project work
Other activities
Teaching by an expert (lecture or tutorial)

Summary

Tento předmět představuje úvod do problematiky konfiguračního managementu, který je důležitý při správě softwarových projektů. Obsah předmětu se především zaměřuje na správu zdrojového kódu, tvorbu sestavení (build), správu vydání (release), konfigurace, prostředí, řízení změn a dokumentaci projektu. V závěru se studenti seznámí s principy DevOps. Tato sada praktik umožňuje řízení a zkrácení vývojového cyklu s návazností na provoz výsledného softwarového produktu.

Compulsory literature:

• COMPANY, Sonatype, 2008. Maven: The Definitive Guide: The Definitive Guide. 1st Edition. Beijing: O’Reilly Media. ISBN 978-0-596-51733-5. • CONE, Matt, 2020. The Markdown Guide. B.m.: Independently published. ISBN 9798656504492. • EVERTSE, Joost, 2019. Mastering GitLab 12: Implement DevOps culture and repository management solutions. B.m.: Packt Publishing. ISBN 978-1-78953-128-2. • CHACON, Scott a Ben STRAUB, 2014. Pro Git. 2nd Edition. B.m.: Apress. • LESZKO, Rafał, 2019. Continuous Delivery with Docker and Jenkins: Create secure applications by building complete CI/CD pipelines, 2nd Edition. 2nd Edition. B.m.: Packt Publishing. • TSITOARA, Mariot, 2019. Beginning Git and GitHub: A Comprehensive Guide to Version Control, Project Management, and Teamwork for the New Developer. 1st ed. Edition. B.m.: Apress. ISBN 978-1-4842-5312-0.

Recommended literature:

• AIELLO, Bob, 2010. Configuration Management Best Practices: Practical Methods that Work in the Real World: Practical Methods that Work in the Real World. 1st edition. Upper Saddle River, NJ: Addison-Wesley Professional. ISBN 978-0-321-68586-5. • QUIGLEY, Jon M., 2019. Configuration Management, Second Edition. 2nd edition. Boca Raton: Routledge. ISBN 978-0-367-13725-0. • WATTS, Frank B., 2011. Engineering Documentation Control Handbook: Configuration Management and Product Lifecycle Management. 4th edition. Oxford: William Andrew. ISBN 978-1-4557-7860-7.

Way of continuous check of knowledge in the course of semester

E-learning

Other requirements

Complete the following tasks: Required: Credit tests focused on: • source code management; • CI, project management using Gitlab / Github, documentation using Markdown language; • Environment management - Docker, Vagrant. Optional: • Homework.

Prerequisities

Subject has no prerequisities.

Co-requisities

Subject has no co-requisities.

Subject syllabus:

Contents of lectures: • Basics of source code management and working with Git. • Build engineering and use of the Maven tool. • CI using Jenkins / Gitlab, • Project management using Github / Gitlab. • Markdown language Markdown and creation of HTML documentation. • Manage your environment with Docker and Vagrant. • DevOps principles. Exercises are based on the main topics of the subject in the computer room: trying out the various principles and technologies. The goal is to acquire the following student skills: version the source code, compile, deploy, create a unified runtime environment, etc. Exercise content: The aim of the exercise is to demonstrate on practical examples the issues presented in lectures, the student will try the various principles and technologies, creating a Git repository and downloading it, creating a branch, projecting changes to the repository, publishing a repository, building, creating a runtime environment. Exercise schedule: • Introduction to source code versioning. Working with Git - Creating, downloading and publishing a Git repository. Writing changes to the repository - commit, switching between commits, push, pull, .gitignore. Upload your changes to a remote repository and update from the server. • Independent branches - creation, switching, publishing, synchronization with a remote server. Merge, rebase, conflict resolution. File recovery from repository - checkout, reset. • Build software, dependency management. • Continuous Integration (CI) - Jenkins tool. • Use of Gitlab / Github: work with repositories, SW project management, work with tickets, • Work with integration requirements (Merge request / Pull request) and CI in Gitlab. • Creating documentation using the Markdown language. Tools for creating HTML from Markdown documents. Pages using Gitlab / Github. • Securing the runtime with Docker: Launching containers and managing them - list, stop, start, run. • Mapping of external dependencies to the Docker container - directories, files, TCP / IP ports. • Parameterization of virtualization using Vagrant and VirtualBox of the virtualization environment.

Conditions for subject completion

Full-time form (validity from: 2020/2021 Summer semester)
Task nameType of taskMax. number of points
(act. for subtasks)
Min. number of pointsMax. počet pokusů
Graded credit Graded credit 100 (100) 51 3
        Domácí úlohy Other task type 16  0
        1. test praktických znalostí Written test 40  0
        2. test praktických znalostí Written test 44  0
Mandatory attendence participation: 80% attend on laboratories

Show history

Conditions for subject completion and attendance at the exercises within ISP: Completion of all mandatory tasks within individually agreed deadlines.

Show history

Occurrence in study plans

Academic yearProgrammeBranch/spec.Spec.ZaměřeníFormStudy language Tut. centreYearWSType of duty
2024/2025 (B0613A140014) Computer Science P Czech Ostrava 2 Optional study plan
2023/2024 (B0613A140014) Computer Science P Czech Ostrava 2 Optional study plan
2022/2023 (B0613A140014) Computer Science P Czech Ostrava 2 Optional study plan
2021/2022 (B0613A140014) Computer Science P Czech Ostrava 2 Optional study plan

Occurrence in special blocks

Block nameAcademic yearForm of studyStudy language YearWSType of blockBlock owner

Assessment of instruction



2022/2023 Summer
2021/2022 Summer