Table of contents
The theoretical basis of the course work. 3
Introduction. 4
Analysis and modeling of processes. 6
Jenkins’s usecase overview. 6
Software architecture. 13
System modules. 13
Architecture-Functionality matching table. 16
List of used sources. 17
The theoretical basis of the course work
The concepts and terms, used in this work:
Information system (IS) –A combination of hardware, software, infrastructure and trained personnel organized to facilitate planning, control, coordination, and decision making in an organization.
Operating system (OS) – Master control program that automatically runs first when a computer is switched on, and remains in the background until the computer is turned off. It commonly comes preinstalled and is usually the most complex and largest program to be used by the computer. A computer user is typically more affected by the capabilities and whims of the OS than by those of the hardware. Main services provided by an OS include user-interface, carrying out commands of the user and the application programs, supervising installation and running of other programs and hardware, controlling the input-output functions, allocating system resources such as memory, processor time, disk space, and peripheral devices to regulate the flow of work within the computer, handling file and directory management, and providing file-sharing and networking functions.
Version control – Version control is a system that records changes to a file or set of files over time so that you can recall specific versions later. For the examples in this book you will use software source code as the files being version controlled, though in reality you can do this with nearly any type of file on a computer.
Continuous integration (CI) – the practice, in software engineering, of merging all developer working copies to a shared mainline several times a day. It was first named and proposed by Grady Booch in his 1991 method, although Booch did not advocate integrating several times a day. It was adopted as part of extreme programming (XP), which did advocate integrating more than once per day, perhaps as many as tens of times per day.
Introduction
Continuous Integration, also known as CI, is a cornerstone of modern software development. In fact it is a real game changer—when Continuous Integration is introduced into an organization, it radically alters the way teams think about the whole development process. It has the potential to enable and trigger a series of incremental process improvements, going from a simple scheduled automated build right through to continuous delivery into production. A good CI infrastructure can streamline the development process right through to deployment, help detect and fix bugs faster, provide a useful project dashboard for both developers and non-developers, and ultimately, help teams deliver more real business value to the end user. Every professional development team, no matter how small, should be practicing CI.
|
Continuous Integration, in its simplest form, involves a tool that monitors your version control system for changes. Whenever a change is detected, this tool automatically compiles and tests your application. If something goes wrong, the tool immediately notifies the developers so that they can fix the issue immediately. But Continuous Integration can do much more than this. Continuous Integration can also help you keep tabs on the health of your code base, automatically monitoring code quality and code coverage metrics, and helping keep technical debt down and maintenance costs low. The publicly-visible code quality metrics can also encourage developers to take pride in the quality of their code and strive to improve it. Combined with automated end-to-end acceptance tests, CI can also act as a communication tool, publishing a clear picture of the current state of development efforts. And it can simplify and accelerate delivery by helping you automate the deployment process, letting you deploy the latest version of your application either automatically or as a one-click process.
In essence, Continuous Integration is about reducing risk by providing faster feedback.
Jenkins, originally called Hudson, is an open source Continuous Integration tool written in Java. Boasting a dominant market share, Jenkins is used by teams of all sizes, for projects in a wide variety 3 of languages and technologies, including.NET, Ruby, Groovy, Grails, PHP and more, as well as Java.
Analysis and modeling of processes