Browse Definitions by Topic

Version Control System

Version control system (VCS) is software to facilitate work with the changing information. The version control allows you to store multiple versions of the same document, if necessary, go back to earlier versions, determine when and who made the changes, what in particular it was, and much more.

Such systems, also known as source control or revision control, are most widely used in software development to store the source code of the program.

Traditional version control systems use a centralized model when there is a single document store, managed by a special server, which performs most of the versioning functions.

The user working with documents must first obtain the version of the document he or she needs from the repository. After the necessary changes have been made to the document, the new version is placed in the repository. Unlike simple file saving, the previous version is not erased, but also remains in the repository and can be retrieved any time.

The most popular VCS are TFS Version Control, Git, Subversion.

Many version control systems provide a number of additional options:

  • Allow to create different versions of one document, so-called branches, with a common history of changes to the branch point and with different - after it.
  • Provide an opportunity to see who and when added or changed a set of lines in the code.
  • They keep a log of changes, in which users can write down explanations about what and why they changed in this version.
  • Control user access rights by allowing or denying reading or modifying data, depending on who is requesting this action.

Terminology

A common terminology does not exist, different VCS can use different names for the same actions. Below are some of the most commonly used options.

Amend - Make changes without creating a new version

Blame - Understand who made the change.

Conflict - a situation where several users have made changes to the same section of the document. Conflict is detected when one user captures the changes, and the second tries to fix them and the system itself can not correctly merge the conflicting changes. Since the program is not reasonable enough to determine which change is "correct", the second user needs to resolve the conflict himself.

Head -  the latest version for the branch, located in the repository.

Tag, label - a symbolic name for a group of documents, which can be assigned to a specific version of the document. It describes not only the set of names, but also the version of each file. Document versions included in the tag can belong to different points in time.

Working copy - a local copy of documents.

Additional Terms
Alpha software
is computer software in the early testing phase. It has basic functions enough to be used, but it is often buggy and lacks features that will be integrated into the final version. Alpha software is often used for internal testing. Internal (Alpha) testing - The stage of testing the program as a whole by testers, usually not developers of the software product, but, as a rule, within the organization or the community developing the product. Also, it can be the stage of adding new functionality, whereby programs can only be used to familiarize themselves with future opportunities. Most often, alpha testing is carried out at an early stage of software development, but in some cases, it can be used for a finished product as an internal acceptance test. Sometimes alpha testing is performed under a debugger or using an integrated development environment that helps to quickly identify the errors found. The detected bugs can be reported to testers for additional investigation in an environment similar to the one in which the program will be used. Typically, alpha testing ends with freezing properties and goes into beta testing.   Beta testing - The stage of active public testing and debugging of the program that passed the alpha testing (if any). Programs of this level can be used by other developers of software for compatibility testing. Nevertheless, the programs of this stage can still contain a large number of errors. Sometimes beta testing is performed in order to get feedback about the product from its future users. Often for free and open source software, the alpha testing phase is characterized by the functional content of the code, and beta testing is the error correction stage. At the same time, as a rule, at each stage of development, intermediate results of work are available to end users.
>>
Bespoke Software
Bespoke software are programs tailor-made to individual customers’ requirements, and are thus wholly unique, as opposed to standard software that is developed and sold to customers as it is (without special features designed to meet particular needs). Bespoke software development is a service delivery, which consists of providing the necessary technical expertise and manpower. Functionalities, delivery schedule and terms of payment are subject to a contract between a service provider and a customer. The customer is heavily involved in the development process and estimates the success of the work. Almost all bespoke systems are application software, the implementation of which demands that the operating system be preloaded onto the user’s PC. The construction of bespoke software has been practised since the 1960s and was initially the only means of obtaining application software. What is in Essence? Standard software often responds to a limited, or insufficient, number of requirements, so bespoke software is usually ordered when there is no equivalent standard software available, i.e. in highly specialised areas. It can also be created in order to bring together disparate products; a common practice with software suites such as ERP and CRM. Bespoke Software Development in Brief Software development is performed gradually in several phases, or milestones: at the end of each phase a client receives a version of the product. Each phase ends with an acceptance testing, whereby he or she verifies that the software is doing what should be expected of it. The software is then tested in many conditions, with real data, possibly accompanied by stress tests designed to make the software fail and see how it rescues itself and returns to normal. Planning in several phases makes it possible to take into account the evolution of the customer's expectations: termination of a phase can inspire the customer, leading them to ask for a more refined product. Payment can be made on an hourly basis – regular payment of the developer's working hours, or fixed price – a fixed price is negotiated at the conclusion of the contract and typically paid in several parts. The fee is between $50 and $300 per hour, depending on the IT vendor. The scope of work required depends on the amount of source code and specifications, and may in some cases exceed a year. In the case of fixed payments, the evolution of the customer's requests may lead to a renegotiation of both the contract and the end cost. Bespoke software is built with special development tools, and the marketing process is very different from that of standard software: the software is considered a project. It is often created from scratch and is therefore not immediately available. The customer is strongly involved in the development work and the geographical proximity between the customer and the supplier counts. The risk of commercial failure is taken by the customer. The acquisition cost is high because it is fully paid by a single client. The ownership of the software and the licence conditions are one of the subjects of the contract signed between the supplier and the customer.
>>
Cloud computing
often referred as the cloud, the practice of using a network of remote servers to store, manage, and process data, rather than a local server or computer. Via cloud model the user can easily get a convenient web access to computing resources (for example, servers, storage devices, data networks, applications and services - both together and separately) that can be promptly provided and released with minimal operating costs, paid to the cloud computing provider. The National Institute of Standards and Technology (NIST) recorded the following mandatory characteristics of cloud computing: Self-service on demand - the consumer independently identifies and changes computing needs, such as server time, access and processing speeds, the amount of stored data without interacting with a representative of the service provider; Universal access over the network - services are available to consumers over the data network, regardless of the device used; Resource pooling - a service provider integrates resources to serve a large number of consumers in a single pool for dynamic redistribution of capacity between consumers in a constantly changing demand; while consumers control only the basic parameters of the service (for example, data volume, access speed), but the actual distribution of resources provided to the consumer is performed by the supplier ; Elasticity - services can be provided, expanded, narrowed at any time, without additional costs for interaction with the supplier, usually in automatic mode; Consumption accounting - the service provider automatically calculates the consumed resources at a certain level of abstraction (for example, the amount of data stored, the bandwidth, the number of users, the number of transactions) and, based on this data, estimates the volume of services provided to consumers. Deployment Models Private cloud Private cloud is an infrastructure intended for use by one organization, including several consumers (for example, units of the same organization), possibly also customers and contractors of this organization. A private cloud can be owned, managed and operated by both the organization itself and a third party (or some combination thereof), and it can physically exist both inside and outside the owner's jurisdiction. Public cloud The public cloud is an infrastructure designed for free use by the general public. A public cloud can be owned, managed and operated by commercial, scientific and government organizations (or some combination thereof). A public cloud exists physically in the jurisdiction of the owner-provider of services. Community cloud The community cloud is a kind of infrastructure intended for use by a specific community of consumers from organizations that have common tasks (for example, security requirements, policies, missions, and compliance with different requirements). A public cloud may be co-operative (co-owned), managed and operated by one or more community organizations or a third party (or any combination thereof), and it can physically exist both inside and outside the owner's jurisdiction. Hybrid cloud A hybrid cloud is a combination of two or more different cloud infrastructures (private, public or community) that remain unique objects but are linked together by standardized or proprietary data and application technologies (for example, short-term use of public cloud resources for load balancing between clouds).
>>
Additional Terms of Software development
See more words
Internet of Things (IoT)
Internet of Things (IoT) is a concept of a network of physical objects ("things") equipped with built-in technologies for interaction with each other or with the environment, considering the organisation of such networks as a phenomenon capable of restructuring economic and social processes, excluding from the part of actions and operations the need for human participation. For 2018, the term "Internet of Things" extends not only to cyberphysical systems for "home" use, but also to industrial facilities. Means of identification The involvement in the IoT of objects of the physical world, not necessarily equipped with means of connection to data transmission networks, requires the use of technologies for the identification of these items ("things"), as all techs used for automatic identification can be used as such technologies: optical identifiers barcodes, Data Matrix, QR codes), means of locating in real time. With the comprehensive dissemination of the "Internet of things", it is essential to ensure the uniqueness of object identifiers, which, in turn, requires standardisation. Measuring A special role in the Internet of things is played by measurement tools that ensure the information transformation about the external environment into machine-readable data, and thereby fill the computing environment with meaningful information. A wide range of measuring tools is used, from elementary sensors (for example, temperature, pressure, illumination), consumption meters (such as smart meters) to complex integrated measuring systems. Data transmission The range of possible data transmission technologies covers all possible means of wireless and wired networks. For wireless data transmission, qualities such as efficiency at low speeds, fault tolerance, adaptability, and the possibility of self-organization play a particularly important role in building the "Internet of things". Among wired technologies, PLC solutions - technologies for building data transmission networks over transmission lines play an important role in penetrating the "Internet of things", as many applications have access to power networks (for example, vending machines, ATMs, smart meters, lighting controllers are initially connected to the network power supply).
>>
Operating System (OS)
Operating system (OS) - a set of interrelated programs designed to manage computer resources, such as CPU, memory, file storage, input / output (I / O) devices, user interaction, and network connection. Unlike most programs that terminate after completing the task, the OS continues to run and eventually shut down when the computer is turned off. A modern multiprocessing OS allows the execution of processes, each of which belongs to a "thread" of the calculation used to execute the program. One form of multiprocessing is called timesharing, which allows multiple users to access the computer by quickly switching between them. The most sensitive and important task for modern operating systems is to allocate the CPU; Each process is allowed to use the CPU for a limited period, which can be a fraction of a second, and then it must be terminated and suspended until the next cycle. As it switches between processes, it saves all data. Mobile operating system (mobile OS) - an operating system for smartphones, tablets, PDAs or other mobile devices. Although laptops can be attributed to mobile devices, however, the operating systems commonly used on them are not considered mobile because they were originally developed for large stationary desktop computers that traditionally did not have special "mobile" functions, and did not need them. This difference is blurry in some new operating systems, representing a hybrid of both. Mobile OS combines the functionality of the PC OS with functions for mobile and handheld devices: touch screen, Bluetooth, Wi-Fi, GPS navigation, camera, speech recognition, voice recorder, music player, NFC and infrared remote control. Portable mobile devices (for example, smartphones) contain two operating systems: The main software platform for user interaction Low-level proprietary real-time OS. Modern operating systems for mobile devices include Android, iOS, Windows 10 Mobile, and others. Obsolete, now unsupported software platforms: Symbian, Windows Mobile, Palm OS, webOS, BlackBerry OS, Firefox OS, Ubuntu Touch, and others. Functions Execution of program requests (input and output of data, start and stop of other programs, allocation and freeing of additional memory, etc.). Standardized access to peripheral devices (input-output devices). Management of random access memory (RAM) - distribution between processes, organization of virtual memory. Providing a user interface. Saving information about system errors. Additional functions: Parallel or pseudo-parallel execution of tasks (multitasking). Effective allocation of resources of the computing system between processes. Prioritisation of processes and their access to resources. Interaction between processes: data exchange, mutual synchronization. Protection of the system itself, as well as user data and programs from user actions (malicious or ignorant) or software applications. Management of the multi-user access and control of different level of access rights. Special types of software called virtual machines can actually mimic "real" computers and run different operating systems from within them.
>>
Virtual Reality (VR)
Virtual reality (VR) is the computer-generated simulation of a three-dimensional world, which can be experienced by a person through equipement, usually headgear with sensors. VR simulates a realistic environment, in which actions and responses is performed in real time. The objects of VR usually behave closely to that of their counterparts in the real world. The user can act on these objects in accordance with the laws of physics (gravity, water properties, collision with objects, reflection, etc.). However, often for entertainment purposes, users of virtual worlds can go do things that are hitherto not possible in real life (for example: to fly or to rise from the dead.) Do not confuse virtual reality with augmented reality(AR). Their fundamental difference is that the VR constructs a new artificial world, and AR only brings in individual artificial elements into the perception of the real. Implementation Systems of "virtual reality" are devices that simulate interaction with the virtual environment, by affecting all five of the human senses. Currently, there are several basic types of systems that provide the formation and output of images in VR systems: Headset / virtual reality glasses (HMD - display) Modern headsets of virtual reality are glasses rather than a helmet, and contain one or more displays that show images for the left and right eyes, a lens system for adjusting the geometry of the image, and a tracking system for the device orientation in space. MotionParallax3D displays Devices of this type include many different gadgets: from some smartphones to rooms of virtual reality (CAVE). Systems of this type form the user's illusion of a three-dimensional object by outputting specially created projections of virtual objects. These are generated on the basis of information about the position of the user's eyes to one or several displays. Virtual retinal monitor Devices of this type form an image directly on an eye retina. As a result, a user sees an image "hanging" in the air in front of him.
>>
View all IT-related terms
Results for "DEV"
Logo Magora LTD
close
Get in touch
Do you agree to the personal data processing?


Logo Magora LTD
close
Thank you very much.

Your registration to the webinar on the 27th of September at 2 p.m. BST was successfuly completed.
We will send you a reminder on the day before the event.
Magora team
Registration for a webinar

"Let Smart Bots Speed up your Business"
Date: 27.09.2018 Time: 2 p.m. BST
Do you agree to the personal data processing?