Formal methodsIn computer science, formal methods are mathematically rigorous techniques for the specification, development, analysis, and verification of software and hardware systems. The use of formal methods for software and hardware design is motivated by the expectation that, as in other engineering disciplines, performing appropriate mathematical analysis can contribute to the reliability and robustness of a design.
Development aidDevelopment aid is a type of foreign/international/overseas aid given by governments and other agencies to support the economic, environmental, social, and political development of developing countries. Closely related concepts include: developmental aid, development assistance, official development assistance, development policy, development cooperation and technical assistance. It is distinguished from humanitarian aid by aiming at a sustained improvement in the conditions in a developing country, rather than short-term relief.
Inter-process communicationIn computer science, inter-process communication (IPC), also spelled interprocess communication, are the mechanisms provided by an operating system for processes to manage shared data. Typically, applications can use IPC, categorized as clients and servers, where the client requests data and the server responds to client requests. Many applications are both clients and servers, as commonly seen in distributed computing. IPC is very important to the design process for microkernels and nanokernels, which reduce the number of functionalities provided by the kernel.
Service-oriented architectureIn software engineering, service-oriented architecture (SOA) is an architectural style that focuses on discrete services instead of a monolithic design. By consequence, it is also applied in the field of software design where services are provided to the other components by application components, through a communication protocol over a network. A service is a discrete unit of functionality that can be accessed remotely and acted upon and updated independently, such as retrieving a credit card statement online.
Collaborative softwareCollaborative software or groupware is application software designed to help people working on a common task to attain their goals. One of the earliest definitions of groupware is "intentional group processes plus software to support them." Regarding available interaction, collaborative software may be divided into real-time collaborative editing platforms that allow multiple users to engage in live, simultaneous, and reversible editing of a single file (usually a document); and version control (also known as revision control and source control) platforms, which allow users to make parallel edits to a file, while preserving every saved edit by users as multiple files that are variants of the original file.
Development economicsDevelopment economics is a branch of economics which deals with economic aspects of the development process in low- and middle- income countries. Its focus is not only on methods of promoting economic development, economic growth and structural change but also on improving the potential for the mass of the population, for example, through health, education and workplace conditions, whether through public or private channels.
Communication designCommunication design is a mixed discipline between design and information-development which is concerned with how media communicate with people. A communication design approach is not only concerned with developing the message in addition to the aesthetics in media, but also with creating new media channels to ensure the message reaches the target audience. Some designers use graphic design and communication design interchangeably due to overlapping skills.
Development studiesDevelopment studies is an interdisciplinary branch of social science. Development studies is offered as a specialized master's degree in a number of reputed universities around the world. It has grown in popularity as a subject of study since the early 1990s, and has been most widely taught and researched in developing countries and countries with a colonial history, such as the UK, where the discipline originated.
Software development processIn software engineering, a software development process is a process of planning and managing software development. It typically involves dividing software development work into smaller, parallel, or sequential steps or sub-processes to improve design and/or product management. It is also known as a software development life cycle (SDLC). The methodology may include the pre-definition of specific deliverables and artifacts that are created and completed by a project team to develop or maintain an application.
Work–life interfaceWork–life interface is the intersection of work and personal life. There are many aspects of one's personal life that can intersect with work, including family, leisure, and health. Work–life interface is bidirectional; for instance, work can interfere with private life, and private life can interfere with work. This interface can be adverse in nature (e.g., work–life conflict) or can be beneficial (e.g., work–life enrichment) in nature. Recent research has shown that the work–life interface has become more boundary-less, especially for technology-enabled workers.