Browse Definitions by Topic


A pattern (design pattern) in software development, is a repetitive architectural solution to a common problem, which often arises within a design context.

Typically, a pattern is not a complete template that can be directly converted to code. Rather, it is just a fragment of the design, which  can be used as a sample for creating similar constructions on different program areas.

Object-oriented patterns show the relationships and interactions between classes or objects, without defining which end classes or application objects will be used.

"Low-level" patterns, which take into account the specifics of a particular programming language, are called idioms. These are good design solutions specific to a particular language or software platform, and therefore are not universal.

At the highest level, there are architectural patterns that cover the architecture of the entire software system.

Algorithms are also inherently computing templates, because they solve developmental problems.


In comparison with fully independent design, patterns have several advantages. The main benefit of using templates is to reduce development complexity by ready-made abstractions that solve a whole class of problems.

  • The pattern gives its name to the solution, which facilitates communication between developers, referring to known templates.Thus, at the expense of patterns details unification of decisions is made: modules, elements of the project, - the number of bugs decreases.
  • The use of patterns conceptually akin to the use of ready-made code libraries. Having found a successful solution, a correctly formulated design pattern can be reused over and over again.
  • A set of templates helps the developer to choose the most suitable design option.


Although a slight change in code under a well-known pattern can simplify the understanding of code, according to Steve McConnell two difficulties can be associated with the use of templates.

  • First, blindly following a selected pattern the global structure of the program can be bloated, exploiting unnecessary code repetitions and increasing the complication of the program.
  • Secondly, the developer may have a desire to implement some patterns without special reasons, instead of creating a new laconic solution.
Additional Terms
is a large, high-performance, fault-tolerant server with significant I/O resources, large amount of operational and external memory, designed for mission-critical software applications supporting hundreds of users simultaneously. Features and Characteristics The lead time till failure of modern mainframes is estimated at 12-15 years. Such reliability is the result of almost 60-years of improvements. The VM / ESA operating system development team spent 20 years troubleshooting and as a result a system was created that can be used in the most critical cases. Increased system stability. Mainframes can isolate and fix most hardware and software errors by using the following principles: Duplication: two standby processors, redundant memory modules, and alternative paths to peripheral devices. Hot swapping of all elements down to channels, memory cards and CPUs. Data Integrity. Mainframes use memory with error correction. Errors do not lead to the destruction of data in memory or data waiting to be output to external devices. Disk subsystems, built on the basis of RAID-arrays with hot swapping and built-in backups, protect against data loss. Workload. The mainframe workload can be 80-95% of their peak performance. The mainframe operating system will process everything at once, and all applications will work closely together and use common software components. Throughput. Mainframe I/O subsystems are designed to work in an environment with the highest workload of I/O data. Access to data. Because the data is stored on a single server, application programs do not need to collect source information from multiple sources, no additional disk space is required for their temporary storage, there is no doubt about their relevance. It requires a small number of physical servers and much simpler software. All this, in total, leads to an increase in the processing speed and efficiency. Protection. The built-in security features, such as cryptographic devices and Logical Partition, and operating system protection, supplemented with RACF or VM: SECURE software, provide reliable protection. User interface. The user interface of mainframes has always been its weakest point. Now it has become possible for mainframe applications to provide a modern web interface in the shortest possible time and at minimal cost. Mainframes and supercomputers Supercomputers are machines that are at the peak of computing power available today, especially in the field of operations with numbers. Supercomputers are used for scientific and engineering purposes (high-performance computing, for example, in the field of meteorology or modeling of nuclear processes), where the limiting factors are processor power and the amount of RAM, while mainframes are used for integer operations, demanding data rate, reliability and simultaneous processing of transactions (ERP, online booking system, automated banking systems).
Material Design
- the design of software and applications for Android operating systems. First introduced at the Google I/O conference on June 25, 2014. Initially, within the company, it was invented under the codename "quantum paper.” The main metaphor of material design is flat paper, located in three-dimensional space. The idea of this design can be seen in applications that open and collapse like cards, using the effects of shadows. According to the idea of Google's designers, apps should not have sharp corners; cards should switch smoothly and almost imperceptibly. Material design in Applications The material design is used fully in the operating systems Android Lollipop, Android Marshmallow, Android Nougat, Android Oreo and also in some apps of previous versions. Why apps need a material design It serves two purposes: the standardisation of numerous products of the company; the unification of app user interfaces for Android. After the dominance of “skeuomorphism,” the web and the interfaces tilted toward a radical flattening, but it turned out to be just one more extreme. In order to be understandable and international, the objects of the interface should have an analogue, a metaphor in the real world. Such a metaphor was paper. Thin, flat, but located in three-dimensional space and having shadows, speed of movement, and acceleration. 4 principles of Material Design Material Design is based on four basic principles: Tactile surfaces. The interface is composed of tangible layers of so-called "digital paper". These layers are located at different heights and cast shadows on each other, which helps users to better understand the anatomy of the interface and the principle of interaction with it. Polygraphic design. If we count the layers as pieces of "digital paper", then, as regards "digital ink" (all that is depicted on "digital paper"), an approach is taken from traditional graphic design: for example, magazine and poster. Meaningful animation. In the real world, objects do not arise from nowhere and do not disappear into anywhere. Therefore, in Material Design, we always think about how to use the animation in layers and in "digital ink" to give users hints about the interface. Adaptive design. It's about how we apply the previous three concepts on different devices with different resolutions and screen sizes. The material design is one of the modern trends in the visualisation of mobile applications whose popularity is growing day by day.
- This is how the software application is understood, studied, and navigated by users, often without difficulties and under specified conditions (ISO / IEC 25010); The property of a system, product or service, in which a particular user can operate it under certain conditions, with the chief purpose to achieve specified goals with required efficiency and satisfaction (ISO 9241-210). Usability ratings There are two main ways to assess the usability of the product: A direct evaluation based on the analysis of the effectiveness, efficiency and satisfaction achieved as a result of operating the product in real conditions: if in the above conditions one system is more ergonomic than the other, then the evaluation should detect this; Indirect evaluation based on an analysis of individual sub-characteristics that reflect certain properties of the system in the specified operating conditions. A direct evaluation in the standard ISO 9241-11 assumes that everything in the system depends on the right indicators, which affect the overall operation. This includes both organizational indicators (for example, labor skills, location or appearance of products), and specific and idiosyncratic differences between users, for example, unique preferences. Indirect evaluation in the ISO / IEC 25010 standard, describes the following usability characteristics: Appropriateness: the ability of the user to understand whether the product or system is suitable for his/her needs, based on initial impressions, documentation and other information provided; Learnability: the degree of effectiveness, productivity and user satisfaction by learning how to use the system; Operability (controllability): ensuring the ease of management and control; User error protection: the degree to which the system protects the user against errors; User interface aesthetics: the degree to which the user interface and interaction process satisfies the user; Accessibility: an opportunity to use a product or system by a wide range of people with a variety of abilities (including those with limited experience or knowledge). Overall the usability is checked via different user’s tests, covering a wide variety of behaviour from different representatives of the target audience. Many software and hardware tools are developed to monitor the user’s involvement in the process. Some of them, like eye tracker and web visor, help the site or app owners to tap into the visual reactions of the users, so as to create perfect dashboards, mobile interfaces and content design. To increase the usability of your internet platform, the regular usability tests are a necessity.
Additional Terms of Software Design
See more words
Net Promoter Score (NPS)
Net Promoter Score (NPS) is an index that identifies customer loyalty to a product or company and is used to assess readiness for re-purchases. How It Works Measuring the NPS loyalty index involves several steps: Consumers are asked to answer the question “What is the probability that you would recommend a company/product/brand to your friends/acquaintances/colleagues?” On a 10-point scale, where 0 corresponds to the answer “I will not recommend it in any way”, and 10 - “ I will surely recommend. " Based on the estimates obtained, all consumers are divided into 3 groups: 9-10 points - product/brand promoters, 7-8 points - passives, 0-6 points - detractors. Calculation of the NPS index itself. NPS =% supporters -% critics As a result, the the user’s loyalty score calculated on the scale from -100 to 100. If all the customers are willing to recommend the product, the score will be about 90-100, if they are not willing to recommend it - the NPS will drop to -90-100 points.   NPS trade mark was registered for the marketing tool, which automates the calculation of the above mentioned data. History Frederick Reichheld is considered the founder of the method, who first announced the method in the article “One Number You Need to Grow”, published in the Harvard Business Review in December 2003. In 2006, he released a book entitled “The Ultimate Question: Driving Good Profits and True Growth”. He continued his arguments on the loyalty, profitability and growth of the company. In 2010, Reichheld conducted research in more than 400 American companies, where the main task was to measure the influence of customer loyalty (measured by NPS) on its growth rate. The main result was the conclusion that the average NPS by market in the industry was 16%, but for companies such as eBay and Amazon NPS it was 75%. Reichheld does not say that communication is present everywhere: it is absent altogether in monopolistic markets. However, industries such as passenger air travel, insurance, and car rental have become a prime example of interconnection. This is obvious, since these companies are service providers, where customer satisfaction and loyalty depend on the level of customer service. As a result, many companies have become adherents of this technology, including Apple, American Express,  eBay, Amazon, Allianz, P & G, Intuit,, Philips, etc. For certain industries, especially software, it has been proven that detractors often stay with the company while passives leave.  This seems to be a relatively high barrier to trade. Faced with criticism of the promoter's score, proponents of the network promoter's approach stated that the proposed statistical analysis only proved that the "recommendation" problem was similar to other indicators in predictive capacity, but failed to solve the real problem and this is the core of the argument presented by Reichheld. Proponents of the method also argue that third-party data analysis is not as good as analyzing the company in its own set of customers, and the actual benefits of the method (simple communication concepts, short survey, customer follow-up features ) exceed any statistical disadvantage of the approach. They also allow inquiries using any other issues to be used in the net promotion system, as long as it meets the criteria to securely classify customers as promoters, passives and detractors.
Headless browser
is a web browser, which communicates with the user in the command-line mode, without a traditional graphical interface. Headless browsers can automate the controls of a web page in an environment similar to some popular browsers. They are particularly useful for testing web pages because they correctly interpret HTML, style sheets and JavaScript execution with AJAX - such functions that are not always available during testing. In 2009, Google began using headless browsers to help its search engine index AJAX3 sites. Headless Browsers Use Cases Headless browsers can be used for: Web app tests automation. Web page screenshots. Automated tests for JavaScript libraries. Web scraping to data recovery. Website interaction automation. Malicious Use Cases Headless browsers can also be used to: Perform DDOS attacks against websites. Increase the number of views. Automatically search for sites for fraudulent use, for example, confidential identifiers. List of Headless Browsers Here is a list of browsers offering headless functions: PhantomJS - a headless browser using the WebKit engine for rendering its pages and JavaScriptCore for javascript execution. PhantomJS was originally developed in 2010. HTMLUnit - also headless, written in Java. HTMLUnit uses Rhino for the JavaScript. TrifleJS - a version of the scriptable Internet Explorer browser that uses the Trident rendering engine and the V8 JavaScript engine. TrifleJS uses the same API as PhantomJS and, works by using the WebBrowser object of the .NET WebBrowser framework to control the version of IE installed on the machine. Splash - it has HTTP API, Lua scripting and an IPython IDE. Splash is written in Python and uses the WebKit rendering engine. Weboob - a Python library. Emulated Headless Browser These browsers emulate the environment of a browser Zombie.js. a navigation environment for Node.js20,21. ENVJS. a navigation environment is written in JavaScript for the Rhino engine. While they are able to support common browsing functions (HTML parsing, XHR, cookie support, etc.), they can not render and have limited support for DOM events. They usually run faster than a typical browser, but are unable to correctly interpret many sites.
is a unit of digital data transmission in computer and telecommunication networks. In a packet-switched system, a frame is a simple container for a network. In other telecommunication systems, frames are repeating structures that support time division multiplexing. Frame (HTML) - in web-design: the presentation of multiple HTML documents on a separate web page. Frame rate is the number of images displayed on the screen per time unit, usually expressed in FPS (frames per second) Frame (GUI), a box to save other widgets in the graphical user interface A frame typically includes a synchronization feature that has a sequence of bits, ‘or symbols’, indicating the receiver, the received symbol, or the beginning and end of the upload data in the bit stream. If the receiver is connected to the system during transmission, it will ignore the information until it detects a new frame synchronization sequence. Packet switching In the OSI model of a computer network, a frame is a data unit of the link layer. The frame is the result of the last encapsulation layer before the data is transferred by the physical layer. Each frame is separated from the next frame by an interval. It is a series of bits, usually consisting of a frame synchronization, a packet payload, and a frame check sequence. Examples include Point-to-Point Protocol  frames,Fiber Channel frames, Ethernet frames, and V.42 modem frames. Typically, several frames of different sizes are nested within each other. For example, when using the PPP protocol in asynchronous serial communication, the 8 bits of each byte consist of a start bit and a stop bit, and the payload data bytes in the network packet are framed by the header and footer, several packets can be framed with bound bytes. Time division multiplexing In telecommunications, particularly time division multiplexing (TDM) and time division multiple access variants (TDMA), a frame is a cyclically repeated block of data consisting of a fixed number of time slots; each interval is time used for Logical TDM channels or TDMA transmitters. In this context, a framework is usually an entity at the physical layer. Examples of TDM applications are SONET / SDH circuit-switched B channels and ISDN, while TDMA examples are circuit-switched data used in early cellular voice services. This frame is also an entity for time division duplexing, wherein the handset can transmit during certain time slots while receiving other slots.
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?