
A feature is "a prominent or distinctive user-visible aspect, quality, or characteristic of a software system or systems", as defined by Kang et al. At the implementation level, "it is a structure that extends and modifies the structure of a given software in order to satisfy a stakeholder’s requirement, to implement and encapsulate a design decision, and to offer a configuration option", as defined by
Apel et al.
Context
The term feature means the same for software as it does for any kind of system. For example, the British Royal Navy's
HMS Dreadnought (1906)
HMS ''Dreadnought'' was a Royal Navy battleship, the design of which revolutionised naval power. The ship's entry into service in 1906 represented such an advance in naval technology that her name came to be associated with an entire generati ...
was considered an important milestone in naval technology because of its advanced features that did not exist in
pre-dreadnought battleships.
Feature also applies to computer
hardware. In the early history of computers, devices such as
Digital Equipment Corporation
Digital Equipment Corporation (DEC ), using the trademark Digital, was a major American company in the computer industry from the 1960s to the 1990s. The company was co-founded by Ken Olsen and Harlan Anderson in 1957. Olsen was president until ...
's
PDP-7
The PDP-7 is an 18-bit computing, 18-bit minicomputer produced by Digital Equipment Corporation as part of the Programmed Data Processor, PDP series. Introduced in 1964, shipped since 1965, it was the first to use their Flip-Chip module, Flip- ...
minicomputer (created in 1964) was noted for having a wealth of features, such as being the first version of the PDP minicomputer series to use
wire wrap, as well as being the first to use the proprietary DEC
Flip-Chip module which was invented in the same year.
Feature also applies to concepts such as a programming language.
The
Python programming language is well-known for its feature of using
whitespace characters
A whitespace character is a character (computing), character data element that represents White space (visual arts), white space when text string, text is
Rendering (computer graphics), rendered for display by a computer.
For example, a ''Space ...
(spaces and tabs) instead of
curly braces to indicate different blocks of code.
Another similar high-level, object oriented programming language,
Ruby
Ruby is a pinkish-red-to-blood-red-colored gemstone, a variety of the mineral corundum ( aluminium oxide). Ruby is one of the most popular traditional jewelry gems and is very durable. Other varieties of gem-quality corundum are called sapph ...
, is noteworthy for using the symbols "@" and "$" to highlight different variable scopes, which the developers claim improves code readability. Its developers also claim that one of its important features is a high amount of flexibility.
The
Institute of Electrical and Electronics Engineers
The Institute of Electrical and Electronics Engineers (IEEE) is an American 501(c)(3) public charity professional organization for electrical engineering, electronics engineering, and other related disciplines.
The IEEE has a corporate office ...
(IEEE) defines feature in the (obsolete) standard for software test documentation
IEEE 829 as a "distinguishing characteristic of a software item (e.g., performance, portability, or functionality)".
Although feature is typically used for a positive aspect of a software system, a
software bug
A software bug is a design defect ( bug) in computer software. A computer program with many or serious bugs may be described as ''buggy''.
The effects of a software bug range from minor (such as a misspelled word in the user interface) to sev ...
is also a feature but with negative value.
Examples
The terminal emulator
xterm
xterm is the standard terminal emulator for the X Window System. It allows users to run programs which require a command-line interface.
If no particular program is specified, xterm runs the user's Unix shell, shell. An X display device, dis ...
has many notable features, including compatibility with the
X Window System
The X Window System (X11, or simply X) is a windowing system for bitmap displays, common on Unix-like operating systems.
X originated as part of Project Athena at Massachusetts Institute of Technology (MIT) in 1984. The X protocol has been at ...
, the ability to emulate a VT220 and VT320 terminal with ANSI color, and the ability to input
escape sequences using a
computer mouse
A computer mouse (plural mice; also mouses) is a hand-held pointing device that detects Plane (mathematics), two-dimensional motion relative to a surface. This motion is typically translated into the motion of the Cursor (user interface)#Po ...
or other similar device, and the ability to run on multiple different
Unix-like
A Unix-like (sometimes referred to as UN*X, *nix or *NIX) operating system is one that behaves in a manner similar to a Unix system, although not necessarily conforming to or being certified to any version of the Single UNIX Specification. A Uni ...
operating systems (e.g.
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
,
AIX,
BSD
The Berkeley Software Distribution (BSD), also known as Berkeley Unix or BSD Unix, is a discontinued Unix operating system developed and distributed by the Computer Systems Research Group (CSRG) at the University of California, Berkeley, beginni ...
, and
HP-UX
HP-UX (from "Hewlett Packard Unix") is a proprietary software, proprietary implementation of the Unix operating system developed by Hewlett Packard Enterprise; current versions support HPE Integrity Servers, based on Intel's Itanium architect ...
).
Feature-rich and feature creep
''Feature-rich'' describes a software system as having many options and capabilities.
One mechanism for introducing feature-rich software to the user is the concept of
progressive disclosure, a technique where features are introduced gradually as they become required, to reduce the potential confusion caused by displaying a wealth of features at once.
Sometimes, feature-rich is considered a negative attribute. The terms
feature creep
Feature creep is the excessive ongoing expansion or addition of new features in a product, especially in computer software, video games (where it should not be confused with power creep) and consumer and business electronics. These extra feature ...
,
software bloat
Software bloat is a process whereby successive versions of a computer program become perceptibly slower, use more memory, disk space or processing power, or have higher hardware requirements than the previous version, while making only dubious ...
, and ''featuritis'' refer to software that is ''overly'' feature-rich. This type of excessive inclusion of features is in some cases a result of
design by committee.
To counteract the tendency of software developers to add additional, unnecessary features, the
Unix philosophy
The Unix philosophy, originated by Ken Thompson, is a set of cultural norms and philosophical approaches to Minimalism (computing), minimalist, Modularity (programming), modular software development. It is based on the experience of leading devel ...
was developed in the 1970s by
Bell Labs
Nokia Bell Labs, commonly referred to as ''Bell Labs'', is an American industrial research and development company owned by Finnish technology company Nokia. With headquarters located in Murray Hill, New Jersey, Murray Hill, New Jersey, the compa ...
employees working on the
Unix
Unix (, ; trademarked as UNIX) is a family of multitasking, multi-user computer operating systems that derive from the original AT&T Unix, whose development started in 1969 at the Bell Labs research center by Ken Thompson, Dennis Ritchie, a ...
operating system such as
Ken Thompson
Kenneth Lane Thompson (born February 4, 1943) is an American pioneer of computer science. Thompson worked at Bell Labs for most of his career where he designed and implemented the original Unix operating system. He also invented the B (programmi ...
and
Dennis Ritchie
Dennis MacAlistair Ritchie (September 9, 1941 – October 12, 2011) was an American computer scientist. He created the C programming language and the Unix operating system and B language with long-time colleague Ken Thompson. Ritchie and Thomp ...
. The philosophy can be summarized as: software programs should generally only complete one primary task and that "small is beautiful".
See also
*
Feature-oriented programming
In computer programming, feature-oriented programming (FOP) or feature-oriented software development (FOSD) is a programming paradigm for program generation in software product lines (SPLs) and for incremental development of programs.
History
F ...
*
Product family engineering
Product-family engineering (PFE), also known as product-line engineering, is based on the ideas of " domain engineering" created by the Software Engineering Institute, a term coined by James Neighbors in his 1980 dissertation at University of Cal ...
*
Software design
Software design is the process of conceptualizing how a software system will work before it is implemented or modified.
Software design also refers to the direct result of the design process the concepts of how the software will work which co ...
*
Software testing
Software testing is the act of checking whether software satisfies expectations.
Software testing can provide objective, independent information about the Quality (business), quality of software and the risk of its failure to a User (computin ...
*
Application lifecycle management
Application lifecycle management (ALM) is the product lifecycle management (governance, development, and maintenance) of computer programs. It encompasses requirements management, software architecture, computer programming, software testing, ...
*
Feature creep
Feature creep is the excessive ongoing expansion or addition of new features in a product, especially in computer software, video games (where it should not be confused with power creep) and consumer and business electronics. These extra feature ...
*
Scope creep
Scope creep (also called requirement creep, or kitchen sink syndrome) in project management is continuous or uncontrolled growth in a project's scope, generally experienced after the project begins. This can occur when the scope of a project i ...
*
Overengineering
References
{{reflist
External links
Official IEEE website