Software feature

Source: Wikipedia, the free encyclopedia.
"Distress Selection" software feature in the photo editing program GIMP
Menu showing a list of available features in the X Window System terminal emulator program xterm

In software, a feature is an identifiable characteristic of a computer program. [1]

Context

The term feature means the same for software as it does for any kind of system. For example, the British Royal Navy's

pre-dreadnought battleships.[2]

Feature also applies to computer hardware. In the early history of computers, devices such as Digital Equipment Corporation's PDP-7 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.[3][4]

Feature also applies to concepts such as a programming language. The

curly braces to indicate different blocks of code.[5]

Another similar high-level, object oriented programming language, Ruby, 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.[6]

The

IEEE 829 as a "distinguishing characteristic of a software item (e.g., performance, portability, or functionality)".[7]

Although feature is typically used for a positive aspect of a software system, a software bug is also a feature but with negative value.

Examples

The terminal emulator

BSD, and HP-UX).[9]

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.[10]

Sometimes, feature-rich is considered a negative attribute. The terms feature creep, software bloat, and featuritis refer to software that is overly feature-rich.[11] This type of excessive inclusion of features is in some cases a result of design by committee.[12]

To counteract the tendency of software developers to add additional, unnecessary features, the Unix philosophy was developed in the 1970s by Bell Labs employees working on the Unix operating system such as Ken Thompson and Dennis Ritchie. The philosophy can be summarized as: software programs should generally only complete one primary task and that "small is beautiful".[13][14]

See also

References

External links