Browse Definitions by Topic

Integrated Development Environment

Integrated development environment (IDE) - a set of software tools used by programmers to develop software, which simplifies the technical process of code creation.

The development environment includes:

  • Text editor,
  • Compiler and/or interpreter,
  • Build automation tools,
  • Debugger.

The IDP is usually the program in which all coding is carried out. It usually contains many functions for creating, modifying, compiling, deploying and debugging software.

Sometimes it also includes tools for integration with version control systems and a variety of features to simplify the dashboard of the programmer. IDEs are usually designed for several programming languages - such as IntelliJ IDEA, NetBeans, Eclipse, Xcode or Microsoft Visual Studio, but there are also IDEs for one particular programming language - for example, Visual Basic, Dev-C ++, Delphi.

Integrated development environments were created in order to maximize the productivity of  developers through tightly coupled components with simple user interfaces. This allows the programmer to do less action to switch to different modes. However, since the IDE is a complex software package, the development environment can qualitatively accelerate the software coding process only after special training.

The goal of the integrated environment is to combine various utilities in one module, allowing the programmer to focus on solving the algorithmic problem and avoiding the loss of time when performing typical technical actions. Thus, the productivity of the developer increases.

Tight integration of development tasks can further improve productivity by introducing additional functions in the intermediate stages of work. For example, the IDE allows  to analyze the code and thereby provide instant feedback and notify about syntax errors.

Most modern IDEs are graphic. But the first IDEs were used even before the operating systems with a graphical interface became widely used - they were based on a textual interface using functional and hot keys for calling various functions.

Work in such environment helps professional programmers to implement coding work more effectively, providing the better program in shorter time.

Attention and expertise in such an environment help professional programmers to implement coding work more effectively, providing the better program code in shorter time.

Additional Terms
Agile Software Development
- an approach to software development focused on the use of iterative development. This involves the dynamic formation of requirements, and ensures their implementation, by constant interaction and transparency within organised groups of various specialists. There are several methods related to the class of agile development methodologies, in particular extreme programming, DSDM, Scrum, FDD. The main ideas People and interaction are more important than processes and tools; A working product is more important than exhaustive documentation; Cooperation with the customer is more important than agreeing on the terms of the contract; Readiness for change is more important than following the original plan. Most agile methodologies are aimed at minimizing risks by bringing development to a series of short cycles called iterations, which usually last two to three weeks. Each iteration looks like a software project in miniature and includes all the tasks necessary to produce a mini-increase in functionality: planning, requirements analysis, design, programming, testing and documentation. Although a single iteration is usually not enough to release a new version of the product, it is supposed that a flexible software project is ready for potential release at the end of each iteration. At this point, the team reassesses the development priorities. Agile methods emphasize direct face-to-face communication. Most agile teams are located in the same office. As a minimum, the team includes "product owners" (the customer or his or her authorized representative who defines the product requirements, which role can be performed by the project manager, business analyst or client). The team should also include testers, interface designers, technical writers and managers. The general concept of the Agile approach is fixed in the <a href="/agile-software-development/">Agile Manifesto</a>. The main metric of agile methods is the working product. Preferring direct communication, agile-methods reduce the amount of written documentation in comparison with other methods. Agile implementation leads to the flexibility of the developed software and provide the customer with the valuable, working program in the shortest period of time. It helps to test the business model on the real market and provide the solution as a skeleton working version, adding more and more features and beauty during the next sprints.
is a sequence of instructions designed to perform specific actions. The algorithm, written in the machine language, with the help of computer facilities, is used to provide solutions to problems. In math and computer science, this is a clear specification of how to solve a class of tasks. This can perform data processing, calculations, and automated reasoning duties. Here are some examples: Search engines - these use special algorithms to collect the information in the internet and display to the user relevant results for a specific query from their search index. In programming, algorithms are commonly written as functions, which perform as small programs that can be used by a larger entity. For example, an image displaying application may include a library of special functions, each using a custom algorithm to render different file formats. The image editing program can contain algorithms designed to process and edit image data. Examples of such, include resizing, sharpening, cropping, blurring, color enhancement, and red-eye reduction. There are many ways to perform an operation in a software program. Developers often try to create the most efficient algorithm, by which programmers can ensure that their programs run fast and use minimal system resources. Of course not all algorithms are perfect for the first time. As a result, programmers improve existing algorithms and incorporate them into future software updates. When you see a new version of an "optimized" or "faster performance" software program, it means the new version includes more polished algorithms. Different definitions of an algorithm contain the following series of general requirements: Discreteness - an algorithm should represent the problem solving process as the sequential execution of some simple steps. At the same time, its each step requires a finite length of time. Determinateness. At each moment of time the next step of the work is uniquely determined by the state of the system. Clearness - an algorithm should include only those commands that are accessible to the executor and are included in its command system. Completeness - in the narrower sense of an algorithm as a mathematical function, with properly specified initial data, the algorithm must complete the work and produce the result in a certain number of steps. Massiveness (universality) - an algorithm should be applicable to different sets of initial data. Effectiveness - completion of an algorithm by certain results.
(application programming interface) is a set of ready-made classes, procedures, functions, structures and constants provided by the application (library, service) or operating system for use in external software products. Programmers use this when writing all kinds of apps, in order to implement data exchange with external software in the most efficient manner. API as a way of app integration API defines the functionality that the program provides. If the program is treated as a control unit, then the API is a set of "knobs" that are available to the user and which he or she can tweak. Software components interact with each other through the API. In this case, components usually form a hierarchy - high-level components use APIs of low-level, and those in turn use APIs of lower-levels. API of operating systems. Problems related to API diversity. Almost all operating systems (UNIX, Windows, OS X, etc.) have an API, with which programmers can create applications for this operating system. The main API of operating systems is a number of system calls. In the software industry, common standard APIs for basic functionality have an important role, since they ensure that all programs that use the common API will work equally well, or at least in the usual way. In case of the GUI API, this means that the programs will have a similar user interface, which facilitates the process of mastering new software products. On the other hand, the differences in the APIs of different operating systems make it very difficult to transfer apps between platforms. However, there are various methods for circumventing this complexity - writing "intermediate" APIs (wxWidgets API API, GTK, etc.), writing libraries that display system calls of one OS to calls of another OS (runtime environments like Wine, cygwin and etc.), the introduction of coding standards in programming languages (for example, the standard C language library), writing of interpreted languages implemented on different platforms (perl, python, php, Java, etc.).
Additional Terms of Programming
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
Get in touch
Do you agree to the personal data processing?

Logo Magora LTD
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?