You are on page 1of 8

Abstraction

From Wikipedia, the free encyclopedia

Jump to: navigation, search


This article is about the concept of abstraction in general. For other uses, see abstraction
(disambiguation).

Abstraction is the process or result of generalization by reducing the information content of a


concept or an observable phenomenon, typically to retain only information which is relevant for
a particular purpose. For example, abstracting a leather soccer ball to a ball retains only the
information on general ball attributes and behaviour. Similarly, abstracting happiness to an
emotional state reduces the amount of information conveyed about the emotional state.
Computer scientists use abstraction to understand and solve problems and communicate their
solutions with the computer in some particular computer language.

Object-oriented programming
Object-oriented programming (OOP) is a programming paradigm that uses "objects" – data
structures consisting of datafields and methods together with their interactions – to design
applications and computer programs. Programming techniques may include features such as data
abstraction, encapsulation, modularity, polymorphism, and inheritance. It was not commonly
used in mainstream software application development until the early 1990s.[citation needed] Many
modern programming languages now support OOP.

Polymorphism in object-oriented
programming
From Wikipedia, the free encyclopedia

Jump to: navigation, search

Subtype polymorphism, almost universally called just polymorphism in the context of object-
oriented programming, is the ability of one type, A, to appear as and be used like another type,
B. This article is an accessible introduction to the topic, which restricts attention to the object-
oriented paradigm. The purpose of polymorphism is to implement a style of programming called
message-passing in the literature, in which objects of various types define a common interface of
operations for users.

In strongly typed languages, polymorphism usually means that type A somehow derives from
type B, or type C implements an interface that represents type B. In weakly typed languages
types are implicitly polymorphic.

Operator Overloading the numerical operators +, -, /, * allow polymorphic treatment of the


various numerical types: integer, unsigned integer, float, decimal, etc; each of which have
different ranges, bit patterns, and representations. Another common example is the use of the "+"
operator which allows similar or polymorphic treatment of numbers (addition), strings
(concatenation), and lists (attachment). This is a lesser used feature of polymorphism.

Encapsulation
See also: Encapsulation (object-oriented programming)

In his influential book on object-oriented design, Grady Booch defined encapsulation as "the
process of compartmentalizing the elements of an abstraction that constitute its structure and
behavior; encapsulation serves to separate the contractual interface of an abstraction and its
implementation."[2] This formulation is cited by a number of books as an authoritative definition
of encapsulation.

The purpose is to achieve potential for change: the internal mechanisms of the component can be
improved without impact on other components, or the component can be replaced with a
different one that supports the same public interface. Encapsulation also protects the integrity of
the component, by preventing users from setting the internal data of the component into an
invalid or inconsistent state. Another benefit of encapsulation is that it reduces system
complexity and thus increases robustness, by limiting the interdependencies between software
components.[2

Inheritance (object-oriented programming)


In object-oriented programming (OOP), inheritance is a way to form new classes (instances of
which are called objects) using classes that have already been defined. Inheritance is employed
to help reuse existing code with little or no modification. The new classes, known as Sub-classes
(or derived classes), inherit attributes and behavior of the pre-existing classes, which are referred
to as Super-classes (or ancestor classes). The inheritance relationship of sub- and superclasses
gives rise to a hierarchy. The inheritance concept was invented in 1967 for Simula.[1]
Inheritance should not be confused with (subtype) polymorphism, commonly called just
polymorphism in object-oriented programming. Inheritance is a relationship between
implementations, whereas subtype polymorphism is relationship between types (interfaces in
OOP).[2] (Compare connotation/denotation.) In some, but not all OOP languages, the notions
coincide because the only way to declare a subtype is to define a new class that inherits the
implementation of another. Inheritance does not entail behavioral subtyping either. It is entirely
possible to derive a class whose object will behave incorrectly when used in a context where the
parent class is expected; see the Liskov substitution principle.

Complex inheritance, or inheritance used within an insufficiently mature design, may lead to the
Yo-yo problem.

Class (computer science)


In object-oriented programming, a class is a construct that is used as a blueprint (or template) to
create objects of that class. This blueprint describes the state and behavior that the objects of the
class all share. An object of a given class is called an instance of the class. The class that
contains (and was used to create) that instance can be considered as the type of that object, e.g.
an object instance of the "Fruit" class would be of the type "Fruit".

A class usually represents a noun, such as a person, place or (possibly quite abstract) thing - it is
a model of a concept within a computer program. Fundamentally, it encapsulates the state and
behavior of the concept it represents. It encapsulates state through data placeholders called
attributes (or member variables or instance variables); it encapsulates behavior through reusable
sections of code called methods.

More technically, a class is a cohesive package that consists of a particular kind of metadata. A
class has both an interface and a structure. The interface describes how to interact with the class
and its instances with methods, while the structure describes how the data is partitioned into
attributes within an instance. A class may also have a representation (metaobject) at run time,
which provides run time support for manipulating the class-related metadata. In object-oriented
design, a class is the most specific type of an object in relation to a specific layer.

Programming languages that support classes subtly differ in their support for various class-
related features. Most support various forms of class inheritance. Many languages also support
features providing encapsulation, such as access specifiers

SECURITY:
Security is the degree of protection against danger, loss, and criminals.
Security has to be compared and contrasted with other related concepts: Safety, continuity,
reliability. The key difference between security and reliability is that security must take into
account the actions of people attempting to cause destruction.

Object (computer science)


In computer science , an object is any entity that can be manipulated by the commands of a
programming language, such as a value (computer science), variable, function, or data structure
(With the later introduction of object oriented programming the same word, "object", was also
given to entities that did not share this more general meaning).

Database management system:


A Database Management System (DBMS) is a set of computer programs that controls the
creation, maintenance, and the use of the database with computer as a platform or of an
organization and its end users. It allows organizations to place control of organization-wide
database development in the hands of database administrators (DBAs) and other specialists. A
DBMS is a system software package that helps the use of integrated collection of data records
and files known as databases. It allows different user application programs to easily access the
same database. DBMSs may use any of a variety of database models, such as the network model
or relational model. In large systems, a DBMS allows users and other software to store and
retrieve data in a structured way. Instead of having to write computer programs to extract
information, user can ask simple questions in a query language. Thus, many DBMS packages
provide Fourth-generation programming language (4GLs) and other application development
features. It helps to specify the logical organization for a database and access and use the
information within a database. It provides facilities for controlling data access, enforcing data
integrity, managing concurrency controlled, restoring database.

Data structure
In computer science, a data structure is a particular way of storing and organizing data in a
computer so that it can be used efficiently.[1][2]
Different kinds of data structures are suited to different kinds of applications, and some are
highly specialized to specific tasks. For example, B-trees are particularly well-suited for
implementation of databases, while compiler implementations usually use hash tables to look up
identifiers.

Data structures are used in almost every program or software system. Specific data structures are
essential ingredients of many efficient algorithms, and make possible the management of huge
amounts of data, such as large databases and internet indexing services. Some formal design
methods and programming languages emphasize data structures, rather than algorithms, as the
key organizing factor in software design.

Structure
Structure is a fundamental and sometimes intangible notion covering the recognition,
observation, nature, and stability of patterns and relationships of entities. From a child's verbal
description of a snowflake, to the detailed scientific analysis of the properties of magnetic fields,
the concept of structure is an essential foundation of nearly every mode of inquiry and discovery
in science, philosophy, and art.[1]

A structure defines what a system is made of. It is a configuration of items. It is a collection of


inter-related components or services. The structure may be a hierarchy (a cascade of one-to-
many relationships) or a network featuring many-to-many relationships.

Integrity
From Wikipedia, the free encyclopedia

Jump to: navigation, search


This article is about integrity as a theoretical and ethical concept. For other uses, see Integrity
(disambiguation).

Integrity as a concept has to do with perceived consistency of actions, values, methods,


measures, principles, expectations and outcome. People use integrity as a holistic concept,
judging the integrity of systems in terms of those systems' ability to achieve their own goals (if
any). A value system's abstraction depth and range of applicable interaction may also function as
significant factors in identifying integrity due to their congruence or lack of congruence with
empirical observation.[citation needed] A value system may evolve over time while retaining integrity
if those who espouse the values account for and resolve inconsistencies.

A procedure is a specified series of actions or operations which have to be executed in the same
manner in order to always obtain the same result under the same circumstances (for example,
emergency procedures). Less precisely speaking, this word can indicate a sequence of activities,
tasks, steps, decisions, calculations and processes, that when undertaken in the sequence laid
down produces the described result, product or outcome. A procedure usually induces a change.
It is in the scientific method.

Retrieved from "http://en.wikipedia.org/wiki/Procedure_(term)"

Authentication
Authentication (from Greek: αυθεντικός ; real or genuine, from authentes; author) is the act of
establishing or confirming something (or someone) as authentic, that is, that claims made by or
about the subject are true ("authentification" is a variant of this word). This might involve
confirming the identity of a person, tracing the origins of an artifact, ensuring that a product is
what its packaging and labeling claims to be, or assuring that a computer program is a trusted
one.

Authorization
Authorization (spelt Authorisation in Commonwealth realms) is the function of specifying
access rights to resources, which is related to information security and computer security in
general and to access control in particular. More formally, "to authorize" is to define access
policy. For example, human resources staff are normally authorized to access employee records,
and this policy is usually formalized as access control rules in a computer system. During
operation, the system uses the access control rules to decide whether access requests from
(authenticated) consumers shall be granted or rejected. Resources include individual files' or
items' data, computer programs, computer devices and functionality provided by computer
applications. Examples of consumers are computer users, computer programs and other devices
on the computer.

In computer science, a subroutine or subprogram (also called procedure, method, function,


or routine) is a portion of code within a larger program, which performs a specific task and is
relatively independent of the remaining code.

As the name "subprogram" suggests, a subroutine behaves in much the same way as a computer
program that is used as one step in a larger program or another subprogram. A subroutine is often
coded so that it can be started ("called") several times and/or from several places during a single
execution of the program, including from other subroutines, and then branch back (return) to the
next instruction after the "call" once the subroutine's task is done.

Linker (computing)
On Unix variants the term loader is often used as a synonym for linker. Because this usage blurs
the distinction between the compile-time process and the run-time process, this article will use
linking for the former and loading for the latter. However, in some operating systems the same
program handles both the jobs of linking and loading a program; see dynamic linking.

Loader (computing)
In computing, a loader is the part of an operating system that is responsible for one of the
essential stages in the process of starting a program, loading programs, that is, starting up
programs by reading the contents of executable files (executables- files containing program text)
into memory, then carrying out other required preparatory tasks, after which the program code is
finally allowed to run and is started when the operating system passes control to the loaded
program code.

Compiler
A compiler is a computer program (or set of programs) that transforms source code written in a
computer language (the source language) into another computer language (the target language,
often having a binary form known as object code). The most common reason for wanting to
transform source code is to create an executable program.

You might also like