Professional Documents
Culture Documents
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
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.
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
Complex inheritance, or inheritance used within an insufficiently mature design, may lead to the
Yo-yo problem.
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.
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]
Integrity
From Wikipedia, the free encyclopedia
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.
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.
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.