en.unionpedia.org

Separation of concerns, the Glossary

Index Separation of concerns

In computer science, separation of concerns (sometimes abbreviated as SoC) is a design principle for separating a computer program into distinct sections.[1]

Table of Contents

  1. 51 relations: Abstraction (computer science), Abstraction principle (computer programming), Architecture, Artificial intelligence, Aspect (computer programming), Aspect-oriented programming, C (programming language), C Sharp (programming language), C++, Class (computer programming), Cognitive science, Computer program, Computer science, Computer security, Concern (computer science), Coupling (computer programming), Cross-cutting concern, CSS, Data logger, Delphi (software), Edsger W. Dijkstra, Encapsulation (computer programming), Function (computer programming), Holism, HTML, Information design, Information hiding, Instance (computer science), Interface (computing), Internet layer, Internet protocol suite, Java (programming language), JavaScript, Model–view–controller, Model–view–presenter, Modular design, Modular programming, Object (computer science), Object-oriented programming, OSI model, Pascal (programming language), Procedural programming, Programming language, Separation of content and presentation, Service (systems architecture), Service-orientation, Single-responsibility principle, Software design pattern, Subject-oriented programming, Transmission Control Protocol, ... Expand index (1 more) »

  2. Programming principles
  3. Reductionism

Abstraction (computer science)

In software engineering and computer science, abstraction is the process of generalizing concrete details, such as attributes, away from the study of objects and systems to focus attention on details of greater importance.

See Separation of concerns and Abstraction (computer science)

Abstraction principle (computer programming)

In software engineering and programming language theory, the abstraction principle (or the principle of abstraction) is a basic dictum that aims to reduce duplication of information in a program (usually with emphasis on code duplication) whenever practical by making use of abstractions provided by the programming language or software libraries. Separation of concerns and abstraction principle (computer programming) are programming principles.

See Separation of concerns and Abstraction principle (computer programming)

Architecture

Architecture is the art and technique of designing and building, as distinguished from the skills associated with construction.

See Separation of concerns and Architecture

Artificial intelligence

Artificial intelligence (AI), in its broadest sense, is intelligence exhibited by machines, particularly computer systems.

See Separation of concerns and Artificial intelligence

Aspect (computer programming)

In computer programming, an aspect of a program is a feature linked to many other parts of the program, but is not related to the program's primary function.

See Separation of concerns and Aspect (computer programming)

Aspect-oriented programming

In computing, aspect-oriented programming (AOP) is a programming paradigm that aims to increase modularity by allowing the separation of cross-cutting concerns.

See Separation of concerns and Aspect-oriented programming

C (programming language)

C (pronounced – like the letter c) is a general-purpose programming language.

See Separation of concerns and C (programming language)

C Sharp (programming language)

C# is a general-purpose high-level programming language supporting multiple paradigms.

See Separation of concerns and C Sharp (programming language)

C++

C++ (pronounced "C plus plus" and sometimes abbreviated as CPP) is a high-level, general-purpose programming language created by Danish computer scientist Bjarne Stroustrup.

See Separation of concerns and C++

Class (computer programming)

In object-oriented programming, a class defines the shared aspects of objects created from the class.

See Separation of concerns and Class (computer programming)

Cognitive science

Cognitive science is the interdisciplinary, scientific study of the mind and its processes.

See Separation of concerns and Cognitive science

Computer program

A computer program is a sequence or set of instructions in a programming language for a computer to execute.

See Separation of concerns and Computer program

Computer science

Computer science is the study of computation, information, and automation.

See Separation of concerns and Computer science

Computer security

Computer security (also cybersecurity, digital security, or information technology (IT) security) is the protection of computer systems and networks from threats that may result in unauthorized information disclosure, theft of (or damage to) hardware, software, or data, as well as from the disruption or misdirection of the services they provide.

See Separation of concerns and Computer security

Concern (computer science)

In computer science, a concern is a particular set of information that has an effect on the code of a computer program.

See Separation of concerns and Concern (computer science)

Coupling (computer programming)

In software engineering, coupling is the degree of interdependence between software modules; a measure of how closely connected two routines or modules are; the strength of the relationships between modules. Separation of concerns and coupling (computer programming) are programming principles.

See Separation of concerns and Coupling (computer programming)

Cross-cutting concern

In aspect-oriented software development, cross-cutting concerns are aspects of a program that affect several modules, without the possibility of being encapsulated in any of them.

See Separation of concerns and Cross-cutting concern

CSS

Cascading Style Sheets (CSS) is a style sheet language used for specifying the presentation and styling of a document written in a markup language such as HTML or XML (including XML dialects such as SVG, MathML or XHTML).

See Separation of concerns and CSS

Data logger

A data logger (also datalogger or data recorder) is an electronic device that records data over time or about location either with a built-in instrument or sensor or via external instruments and sensors.

See Separation of concerns and Data logger

Delphi (software)

Delphi is a general-purpose programming language and a software product that uses the Delphi dialect of the Object Pascal programming language and provides an integrated development environment (IDE) for rapid application development of desktop, mobile, web, and console software, currently developed and maintained by Embarcadero Technologies.

See Separation of concerns and Delphi (software)

Edsger W. Dijkstra

Edsger Wybe Dijkstra (11 May 1930 – 6 August 2002) was a Dutch computer scientist, programmer, software engineer, mathematician, and science essayist.

See Separation of concerns and Edsger W. Dijkstra

Encapsulation (computer programming)

In software systems, encapsulation refers to the bundling of data with the mechanisms or methods that operate on the data. Separation of concerns and encapsulation (computer programming) are programming principles.

See Separation of concerns and Encapsulation (computer programming)

Function (computer programming)

In computer programming, a function, procedure, method, subroutine, routine, or subprogram is a callable unit of software logic that has a well-defined interface and behavior and can be invoked multiple times.

See Separation of concerns and Function (computer programming)

Holism

Holism is the interdisciplinary idea that systems possess properties as wholes apart from the properties of their component parts.

See Separation of concerns and Holism

HTML

Hypertext Markup Language (HTML) is the standard markup language for documents designed to be displayed in a web browser.

See Separation of concerns and HTML

Information design

Information design is the practice of presenting information in a way that fosters an efficient and effective understanding of the information.

See Separation of concerns and Information design

Information hiding

In computer science, information hiding is the principle of segregation of the design decisions in a computer program that are most likely to change, thus protecting other parts of the program from extensive modification if the design decision is changed. Separation of concerns and information hiding are programming principles.

See Separation of concerns and Information hiding

Instance (computer science)

In computer science, an instance is an occurrence of a software element that is based on a type definition.

See Separation of concerns and Instance (computer science)

Interface (computing)

In computing, an interface is a shared boundary across which two or more separate components of a computer system exchange information.

See Separation of concerns and Interface (computing)

Internet layer

The internet layer is a group of internetworking methods, protocols, and specifications in the Internet protocol suite that are used to transport network packets from the originating host across network boundaries; if necessary, to the destination host specified by an IP address.

See Separation of concerns and Internet layer

Internet protocol suite

The Internet protocol suite, commonly known as TCP/IP, is a framework for organizing the set of communication protocols used in the Internet and similar computer networks according to functional criteria.

See Separation of concerns and Internet protocol suite

Java (programming language)

Java is a high-level, class-based, object-oriented programming language that is designed to have as few implementation dependencies as possible.

See Separation of concerns and Java (programming language)

JavaScript

JavaScript, often abbreviated as JS, is a programming language and core technology of the Web, alongside HTML and CSS.

See Separation of concerns and JavaScript

Model–view–controller

Model–view–controller (MVC) is a software design pattern commonly used for developing user interfaces that divides the related program logic into three interconnected elements.

See Separation of concerns and Model–view–controller

Model–view–presenter

Model–view–presenter (MVP) is a derivation of the model–view–controller (MVC) architectural pattern, and is used mostly for building user interfaces.

See Separation of concerns and Model–view–presenter

Modular design

Modular design, or modularity in design, is a design principle that subdivides a system into smaller parts called modules (such as modular process skids), which can be independently created, modified, replaced, or exchanged with other modules or between different systems.

See Separation of concerns and Modular design

Modular programming

Modular programming is a software design technique that emphasizes separating the functionality of a program into independent, interchangeable modules, such that each contains everything necessary to execute only one aspect of the desired functionality.

See Separation of concerns and Modular programming

Object (computer science)

In computer science, an object is a programming element that has state, has associated operations and is accessed via an identifier.

See Separation of concerns and Object (computer science)

Object-oriented programming

Object-oriented programming (OOP) is a programming paradigm based on the concept of objects, which can contain data and code: data in the form of fields (often known as attributes or properties), and code in the form of procedures (often known as methods).

See Separation of concerns and Object-oriented programming

OSI model

The Open Systems Interconnection (OSI) model is a reference model from the International Organization for Standardization (ISO) that "provides a common basis for the coordination of standards development for the purpose of systems interconnection." In the OSI reference model, the communications between systems are split into seven different abstraction layers: Physical, Data Link, Network, Transport, Session, Presentation, and Application.

See Separation of concerns and OSI model

Pascal (programming language)

Pascal is an imperative and procedural programming language, designed by Niklaus Wirth as a small, efficient language intended to encourage good programming practices using structured programming and data structuring.

See Separation of concerns and Pascal (programming language)

Procedural programming

Procedural programming is a programming paradigm, classified as imperative programming, that involves implementing the behavior of a computer program as procedures (a.k.a. functions, subroutines) that call each other.

See Separation of concerns and Procedural programming

Programming language

A programming language is a system of notation for writing computer programs.

See Separation of concerns and Programming language

Separation of content and presentation

Separation of content and presentation (or separation of content and style) is the separation of concerns design principle as applied to the authoring and presentation of content.

See Separation of concerns and Separation of content and presentation

Service (systems architecture)

In the contexts of software architecture, service-orientation and service-oriented architecture, the term service refers to a software functionality, or a set of software functionalities (such as the retrieval of specified information or the execution of a set of operations) with a purpose that different clients can reuse for different purposes, together with the policies that should control its usage (based on the identity of the client requesting the service, for example).

See Separation of concerns and Service (systems architecture)

Service-orientation

Service-orientation is a design paradigm for computer software in the form of services.

See Separation of concerns and Service-orientation

Single-responsibility principle

The single-responsibility principle (SRP) is a computer programming principle that states that "A module should be responsible to one, and only one, actor." The term actor refers to a group (consisting of one or more stakeholders or users) that requires a change in the module. Separation of concerns and single-responsibility principle are programming principles.

See Separation of concerns and Single-responsibility principle

Software design pattern

In software engineering, a design pattern describes a relatively small, well-defined aspect (i.e. functionality) of a computer program in terms of how to write the code.

See Separation of concerns and Software design pattern

Subject-oriented programming

In computing, subject-oriented programming is an object-oriented software paradigm in which the state (fields) and behavior (methods) of objects are not seen as intrinsic to the objects themselves, but are provided by various subjective perceptions ("subjects") of the objects.

See Separation of concerns and Subject-oriented programming

Transmission Control Protocol

The Transmission Control Protocol (TCP) is one of the main protocols of the Internet protocol suite.

See Separation of concerns and Transmission Control Protocol

Urban planning

Urban planning, also known as town planning, city planning, regional planning, or rural planning in specific contexts, is a technical and political process that is focused on the development and design of land use and the built environment, including air, water, and the infrastructure passing into and out of urban areas, such as transportation, communications, and distribution networks, and their accessibility.

See Separation of concerns and Urban planning

See also

Programming principles

Reductionism

References

[1] https://en.wikipedia.org/wiki/Separation_of_concerns

Also known as Separation of concern.

, Urban planning.