Subject: Software Configuration Management
(06 -
E2510) Basic Information
Course specification
Course is active from 30.09.2005.. To make students capable of applying best practice, methods, techniques and tools in the domain of Software Configuration Management (SCM) with the emphasis on the SCM process introduction and improvement. At the end of the course students are capable of: introducing SCM best practice, methods and tools in the software development process, improve existing SCM process, analyze available tools and identify advantages and disadvantages of each, understand pros and cons of different version control systems, change management systems, build and release management systems, systems for managing alternative lines of development etc.
By using modern SCM tools and by the development and documentation of SCM process and the development of supporting application, students acquire a broad range of practical skills. Theoretical lectures: Basic definitions and historical development of Configuration Management - CM. Traditional notion of CM; Identification of configuration, change control, status accounting, audit and verification. Configuration management in the context of software development (Software Configuration Management - SCM). Source code management; Version Control System - VCS; architectures, advantages and disadvantages : social coding; repository models; concurrent change management models; alternative development courses. Dependency management. Build management, automation, tools. Change Management; Events; Requests for change tracking; support systems. Issue management; identification; traceability; automation. Deployment: identification, authentication, security, planning. Industrial standards and frameworks. Models of maturity. Practical classes: file compare tool patch and diff. Centralized version control systems (Subversion). Distributed version control systems (Git, Mercurial). Tools to support issue tracking (Trac). Code review (ReviewBoard, Rietveld, Gerrit, barkeep). Tools for automated build (Apache Ant + Ivy, Maven). Systems for continuous integration (Jenkins). The design and documentation of the SCM process in accordance with the recommended practice. Creating Web applications to support the proposed SCM process. Lectures, Computer exercises; Consultation. Design and implementation of project assignment by working within project teams. At the end of the semester, public presentations of the most successful teams are organized with the discussion of the obtained results. The defense of project assignment is oral. The final exam is oral. Final grade is based on the score from the final exam and project defense.
|