🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: be.comp.programming
Article #303

Code reuse

#303
From: user
Date: Thu, 16 Oct 2008 08:22
153 lines
7638 bytes
Ik ken collegas die sinds 1994 bezig zijn met software reuse, maar doen ze
iets met open src?



http://en.wikipedia.org/wiki/Code_reuse

Code reuse
From Wikipedia, the free encyclopedia

Code reuse, also called software reuse, is the use of existing software, or
software knowledge, to build new software. Ad hoc reuse has been practiced
from the earliest days of programming. Programmers have always reused
sections of code, templates, functions, and procedures. Software reuse as a
recognized area of study in software engineering, however, dates only from
1968 when Douglas McIlroy of Bell Laboratories proposed basing the software
industry on reusable components.

Reusable software, or software knowledge items, are called reusable assets.
Assets may be designs, requirements, test cases, architectures, etc.

Perhaps the most well known reusable asset is code. Code reuse is the idea
that a partial or complete computer program written at one time can be,
should be, or is being used in another program written at a later time. The
reuse of programming code is a common technique which attempts to save time
and energy by reducing redundant work.

The software library is a good example of abstraction. Programmers may
decide to create internal abstractions so that certain parts of their
program can be re-used, or may create custom libraries for their own use.
Some characteristics that make software more easily reusable are
modularity, loose coupling, high cohesion, information hiding and
separation of concerns.

For newly written code to use a piece of existing code, some kind of
interface, or means of communication, must be defined. These commonly
include a "call" or use of a subroutine, object, class, or prototype. In
organizations, such practices are formalized and standardized by software
product line engineering.

The general practice of using a prior version of an extant program as a
starting point for the next version, is also a form of code reuse.

Some so-called code "reuse" involves simply copying some or all of the code
from an existing program into a new one. While organizations can realize
time to market benefits for a new product with this approach, they can
subsequently be saddled with many of the same code duplication problems
caused by cut and paste programming.

Many researchers have worked to make reuse faster, easier, more systematic,
and an integral part of the normal process of programming. These are some
of the main goals behind the invention of object-oriented programming,
which became one of the most common forms of formalized reuse. A somewhat
later invention is generic programming.

Another, newer means is to use software "generators", programs which can
create new programs of a certain type, based on a set of parameters that
users choose. Fields of study about such systems are generative programming
and metaprogramming.
Contents
[hide]

    * 1 Types of reuse
    * 2 Examples
          o 2.1 Software libraries
          o 2.2 Design patterns
          o 2.3 Frameworks
    * 3 See also
    * 4 External links

[edit] Types of reuse

    * Opportunistic reuse - While getting ready to begin a project, the team
realizes that there are existing components that they can reuse.
    * Planned reuse - A team strategically designs components so that
they'll be reusable in future projects.

Opportunistic reuse can be categorized further:

    * Internal reuse - A team reuses its own components. This may be a
business decision, since the team may want to control a component critical
to the project.
    * External reuse - A team may choose to buy a third-party component.
Buying a third-party component typically costs the team 1 to 20 percent of
what it would cost to develop internally (McConnell 1996). The team must
also consider the time it takes to find, learn and integrate the component.

[edit] Examples

[edit] Software libraries

A very common example of code reuse is the technique of using a software
library. Many common operations, such as converting information among
different well-known formats, accessing external storage, interfacing with
external programs, or manipulating information (numbers, words, names,
locations, dates, etc.) in common ways, are needed by many different
programs. Authors of new programs can use the code in a software library to
perform these tasks, instead of "re-inventing the wheel", by writing fully
new code directly in a program to perform an operation. Library
implementations often have the benefit of being well-tested, and covering
unusual or arcane cases. Disadvantages include the inability to tweak
details which may affect performance or the desired output, and the time
and cost of acquiring, learning, and configuring the library.

[edit] Design patterns

    Main article: Design pattern (computer science)

A design pattern is a general solution to a recurring problem. Design
patterns are more conceptual than tangible and can be modified to fit the
exact need. However, abstract classes and interfaces can be reused to
implement certain patterns.

[edit] Frameworks

    Main article: Software framework

Developers generally reuse large pieces of software via third-party
applications and frameworks. Though frameworks are usually domain-specific
and applicable only to families of applications.

[edit] See also

    * Don't repeat yourself
    * Inheritance
    * Procedural programming
    * Software framework
    * Polymorphism
    * Virtual inheritance
    * Reinventing the wheel - antonym
    * Not Invented Here - antonym

[edit] External links

    * Software Reuse - information and events concerning the practice of
software reuse.
    * RiSE - Reuse in Software Engineering
    * http://frakes.cs.vt.edu/renews.html
    * Koders Open Source Search Engine
    * merobase - a Search Engine for Software Components
    * RAS metadata Repository for software asset creation and software reuse
    * Black Duck Software- Accelerating Component-Based Software Development

Retrieved from "http://en.wikipedia.org/wiki/Code_reuse"
Categories: Software development

-- 
--
700+ Radio Stations on SW http://swstations.tk/
Shortwave transmissions in English, Francais, Nederlands, Deutsch,
Suid-Afrikaans, Chinese, Dansk, Urdu, Cantonese, Greek, Spanish,
Portuguese, ...
http://RADIOLANGUAGES.TK  Updated every month or so ....
Technical Details
Message-ID: <gd6tjd$ca1$1@registered.motzarella.org>
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder1-2.proxad.net!proxad.net!feeder1-1.proxad.net!club-internet.fr!feedme-small.clubint.net!news.motzarella.org!motzarella.org!not-for-mail

Show Full Headers
Complete Article Headers
X-Google-Thread: fcea4,53833714df94865,start
X-Google-Attributes: gidfcea4,domainid0,public,usenet
X-Google-Language: ENGLISH,ASCII-7-bit
Path: arc1-ca.pugleaf.net!g2news1.google.com!news4.google.com!feeder1-2.proxad.net!proxad.net!feeder1-1.proxad.net!club-internet.fr!feedme-small.clubint.net!news.motzarella.org!motzarella.org!not-for-mail
From: user <dag@allemaale.be>
Newsgroups: be.comp.programming
Subject: Code reuse
Date: Thu, 16 Oct 2008 10:22:05 +0200
Organization: geen
Lines: 154
Message-ID: <gd6tjd$ca1$1@registered.motzarella.org>
Mime-Version: 1.0
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: 7Bit
X-Trace: september.motzarella.org U2FsdGVkX1+5YQuPu1tNIi5weSMbwzTQi8Dtx/W4WQbys38gvsOJw6SjVPLAJXiTRUWBo7B+/T+FcQuv+V9NTfwggu1xHTgI63H5tEEoS19hUj7cE8itmmEfdr0KTTDrpgNijEDQoXBgeY2sUufXgA==
X-Complaints-To: Please send complaints to abuse@motzarella.org with full headers
NNTP-Posting-Date: Thu, 16 Oct 2008 08:22:05 +0000 (UTC)
X-Auth-Sender: U2FsdGVkX18TPgYYtsseD2LzEudA8glE/6SE1uoBIYweRuT/9C8nDYOhTAMi76x0
Cancel-Lock: sha1:5zWGf2hy44+JmVQxyKZjknLsOJQ=
User-Agent: KNode/0.10.9