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:
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.
means an error in the program or in the system, because of which the software application gives unexpected behaviour. Most software errors occur because of mistakes made by the developers in its source code, or in its design.
Some errors occur due to incorrect work of the developer tools, for example, because of the compiler that generates the incorrect code. A program that contains a large number of errors severely limiting its performance is called unstable or, in the slang language, "buggy".
The term "bug" is usually used to indicate errors that manifest themselves at the stage of the software operation, in contrast, for example, from design errors or syntactic errors. The report containing the information about the bug is also called the bug report. The report on the critical error is called the crash report.
Software bugs are localized and eliminated during testing and debugging of the program.
Depending on the stage of software development, on which the bug is detected, there are:
Syntactic errors (recognized by the compiler and making compilation impossible) - for example, the absence or inconsistency of the opening and closing parentheses;
Warnings - for example, using an uninitialized variable. In this case, the compiler may notice that the programmer is doing something unusual (probably wrong), and reports this, but the programmer decides whether to ignore the message or not;
Runtime errors, semantic errors - for example subtracting variables instead of adding or segmentation errors.
Depending on the nature of the error, program and runtime, the bug can occur immediately or vice versa - to remain unnoticed for a long time.
Also, the bug can be manifested in the form of a vulnerability that makes possible unauthorized access to the system. Program testing at each stage is a necessary part of any software development process.
is the stage of software development, at which programmers detect, localize and eliminate errors.
There are two mutually complementary debugging technologies.
Using debuggers - programs that include a user interface for step-by-step program execution: operator-by-operator, function-by-function, with stops on some lines of source code or when a certain condition is reached.
The output of the current state of the program using statements located at the critical points of the program - on the screen, printer, loudspeaker or in a file. The output of debugging information to a file is called logging.
A typical development cycle, over the lifetime of the program, is repetitive and looks like this:
Programming - the introduction of new functionality into the program, correction of existing errors.
Testing (manual or automated, programmer, tester or user, in black box mode or modular) - detecting the fact of error.
Reproduction of the error - finding out the conditions under which the error happens. This may not be an easy task when programming parallel processes, and with some unusual bugs.
Debugging - finding the cause of the error.
The ability of the programmer to debug is probably the most important factor in detecting the source of the problem, but the debugging complexity depends heavily on the programming language and tools used, in particular, the debuggers.
The debugger is a software tool that allows the programmer to monitor the execution of the program under study, stop and restart it, run at a slow pace, change the values in memory, and even, in some cases, return back in time.
Other useful tools in the hands of programmers may be:
Profilers. They allow one to determine how much time is spent on a piece of code. Analysis of coverage makes it possible to identify non-executable sections of the code.
API loggers allows one to track the interaction of the program and Windows API by writing Windows messages to the log.
Disassemblers - with this you can view the assembler code of the executable file
Sniffers helps to track the traffic generated by the program
The use of high-level programming languages usually simplifies debugging if such languages contain, for example, exception handling facilities that assists in finding the source of the problem. In low-level languages, errors can lead to inconspicuous problems, for example: memory corruption. Then it can be quite difficult to determine what was the original cause of the error. In these cases, complex tricks and means of debugging may be required.
is a widely used term for a layer or a set of technology software to provide interoperability between different applications, systems, and components.
There are several main types of middleware software:
Among modern private interpretations, the most commonly used meanings of the term middleware are as follows:
In the most general case, the term middleware is often used to refer to the infrastructure: web servers, application servers, transaction monitors, service software, and content management systems.
Middleware is the core of modern IT solutions based on XML, SOAP, web services and service-oriented architecture.
Data Access middleware can interact with diverse data sources. In this category middleware are process transactions, database gateways and distributed transaction/procedure systems.
Desktop middleware can make variations in the presentation of information requested by the user for tracking and assistance apps, control any delivery service and provide backup and other background operations. Others may be maintenance and graphics, ordering, service directories, management of database information, process management, scheduling of work, service events notification, software installation management, encryption services and access control.
This type of middleware assists the user with web browsing, the use of interfaces that allow him to find pages of interest and detect changes of the user interest based on his search history. It provides an identification service for a large number of apps and communication between processes independent of the operating system, network protocol and hardware platform.
Real-time middleware is characterized by the fact that the information may be correct in one moment and may not be in another. Real-time middleware supports time-sensitive requests and planning policies. This is done with services that improve the efficiency of user applications.
The information that passes through a middleware in real time has increased dramatically with the introduction of the internet, wireless networks, and new applications based on dissemination.
Command line interface (CLI) - a kind of textual interface between a person and a computer, in which computer instructions are given mainly by typing text strings (commands) from the keyboard, on UNIX-systems it is possible to use a mouse. Also known as the console user interface.
The command-line interface, often mentioned as command-line user interface, is contrasted with the menu-based control systems of the program, as well as to various implementations of the graphic user interface (GUI).
The output format of the information in the command-line interface is not regulated; usually, this is a simple text output, but it can also be graphic, audio, etc.
If the program is fully or almost completely managed by commands from the command line interface, and supports a batch interface, a skilful combination of the command line interface with a graphical interface provides the user with very powerful capabilities.
Historically, the main areas of application of the command line interface were on computer terminals in 1960-1980s, for MS-DOS, Unix operational systems and later on on Apple DOS. Now it’s used for chats, computer games and program testing.
is an application store accessed via iTunes containing various apps for iPhone smartphones, iPod Touch, iPad tablets, and also for Mac personal computers and allowing to buy them or download for free. Similar to Google Play for Android applications.
Costs for an App range from $ 0.99 to $ 9.99, and significantly more for professional software. However, most apps are distributed through the App Store for free.
The store is supervised by Apple experts. Each application is equipped with a special electronic certificate. If somebody starts to commit illegal actions with the purchased program, they will remove it from the database, and developers will be "severely reprimanded".
Revenues from sales of apps are distributed as follows - the authors receive 70%, Apple collects 30% of the share in order to maintain the store. Officially, Apple claims that they don’t intend to make money on sales. Developers also have an opportunity to release free apps. It is also interesting that all purchased programs can be registered in iTunes to download all the new updates.
In the iPod Touch, the App Store service works when you connect to the Internet via Wi-Fi. So users can buy and download apps through the wireless network from anywhere. Applications are available either for free or have a certain cost which is charged from the user's account in the iTunes Store.
The App Store will promptly notify the user about the latest updates, which happens regularly. The App Store service is available in iTunes for both Macs and personal computers, wherein apps are synchronized with the iPhone or iPod Touch via a USB interface.
Content management system (CMS) - information system or a computer program with simple and convenient user interface, used to provide and organize a joint process of creating, editing and managing content without special programming knowledge.
The content management system can contain a wide variety of data: documents, films, photographs, phone numbers, scientific data, and so on. Such a system is often used to store, manage, review and publish documentation.
Version control is one of its main advantages when the content is changed by a group of people.
In general, content management systems are divided into:
The term CMS replaced WCMS, becoming a synonym for the website management system.
Such CMS allows you to manage the text and graphic content of a website, providing the user with an interface for working with the content of the site, convenient tools for storing and publishing information, and automating the processes of placing information in databases and issuing it to HTML.
There are many ready-made content management systems, including free ones. They can be divided into three types according to the mode of operation:
Most of the modern CMS are implemented as a visual (WYSIWYG) editor - a program that creates HTML code from a special simplified markup that allows the user to easily format the text.