Barnacle (slang)

Last updated

The word barnacle is a slang term used in electrical engineering to indicate a change made to a product on the manufacturing floor that was not part of the original product design. A barnacle is typically used to correct a defect in the product or as a way of enhancing the product with new functionality. A barnacle is normally a quick fix that is used until the product design can be redone incorporating the barnacle into the actual product so that when manufactured, the barnacle step in manufacturing is no longer required. A barnacle may also be added in the field in order to correct a design or manufacturing defect.

Contents

Origin

The term appears to have originated from the crustacean barnacle which is an animal that attaches itself to rocks, docks, ships, whales, and other objects where it grows. A barnacle in electronics is something added to the manufactured product. Typically a barnacle on a circuit board is very noticeable, much like the mollusc variety on a rock in the sea.

Use in software

While the term was originally used with electronic hardware, it has also migrated into the software industry where is it is used to describe software that is added to a system. The connotation in the software industry is that a software barnacle is code added as an expedient without regard to the original design intent. A software barnacle may also refer to malware or spyware which has been inserted into a computing system illegally. [1]

Examples

A 'barnacle' or engineering prototype fix in the form of wires and cut tracks on a printed circuit board Barnacle on PCB.png
A 'barnacle' or engineering prototype fix in the form of wires and cut tracks on a printed circuit board

On printed circuit boards, a barnacle may be as simple as cutting a trace, soldering a wire in order to connect two points on the circuit board, or adding a component such as a resistor or capacitor. A barnacle may also be a complex subassembly or daughterboard. Barnacles in hardware assemblies allow an engineer to repair design errors, experiment with design changes or enhancements, or otherwise alter circuit behaviour.

Although usually a barnacle-implemented change is incorporated into a new fabrication cycle circuit before production, occasionally there are final-assembly barnacles. In such cases it is determined to be less expensive to add a barnacle to a final, shipping product rather than re-spin the circuit to ship without these interventions left in place.

Use

The normal development cycle for electronic hardware contains two main phases. The first phase is the development and prototype phase in which the hardware is first designed (and often simulated using a computer program such as PSpice) and the design manufactured in low quantity as prototypes for testing. The second phase is the updating of design documents based on the testing experience and the beginning of general manufacturing of the product.

During the testing phase, problems are usually found as the design and simulation tools can not duplicate some types of environmental as well as electrical circumstances in which the product may be used. During the testing phases, barnacles are often used to patch (computing) or correct the hardware so that testing can continue in the face of defects (failures or faults) found. The goals of adding barnacles at this phase are to reduce development costs by using the prototype hardware for as long as it can be used, to test hardware changes before the design documentation is updated, and to reduce development time by not requiring a new version of the prototype hardware to be manufactured.

During general manufacturing of the product, the product may sometimes be used in circumstances which the specifications indicate would be acceptable however when the product is actually used in those circumstances, a problem is encountered. Engineering will typically perform a root cause analysis in order to determine the root cause of the problem. In some cases, manufacturing changes may need to be made such as trace contaminants being introduced during some phase of manufacturing. In other cases, the problem has to do with the design of the product and a change has to be made in the product design.

When a product design change is required, often and when possible, a barnacle is designed so that existing products can be modified with the design change using the barnacle. By using a barnacle, the idea is that existing products do not need to be scrapped and replaced so in this case the use of a barnacle is an economic decision. The barnacle work may be done in the field using portable tools and components or it may require a product recall with the barnacle work being done on the manufacturing floor.

See also

Related Research Articles

Software testing is the act of examining the artifacts and the behavior of the software under test by verification and validation. Software testing can also provide an objective, independent view of the software to allow the business to appreciate and understand the risks of software implementation. Test techniques include, but are not limited to:

A software bug is an error, flaw or fault in the design, development, or operation of computer software that causes it to produce an incorrect or unexpected result, or to behave in unintended ways. The process of finding and correcting bugs is termed "debugging" and often uses formal techniques or tools to pinpoint bugs. Since the 1950s, some computer systems have been designed to detect or auto-correct various software errors during operations.

<span class="mw-page-title-main">Computer-aided design</span> Constructing a product by means of computer

Computer-aided design (CAD) is the use of computers to aid in the creation, modification, analysis, or optimization of a design. This software is used to increase the productivity of the designer, improve the quality of design, improve communications through documentation, and to create a database for manufacturing. Designs made through CAD software help protect products and inventions when used in patent applications. CAD output is often in the form of electronic files for print, machining, or other manufacturing operations. The terms computer-aided drafting (CAD) and computer-aided design and drafting (CADD) are also used.

<span class="mw-page-title-main">Embedded system</span> Computer system with a dedicated function

An embedded system is a computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is embedded as part of a complete device often including electrical or electronic hardware and mechanical parts. Because an embedded system typically controls physical operations of the machine that it is embedded within, it often has real-time computing constraints. Embedded systems control many devices in common use. In 2009, it was estimated that ninety-eight percent of all microprocessors manufactured were used in embedded systems.

<span class="mw-page-title-main">Application-specific integrated circuit</span> Integrated circuit customized for a specific task

An application-specific integrated circuit is an integrated circuit (IC) chip customized for a particular use, rather than intended for general-purpose use, such as a chip designed to run in a digital voice recorder or a high-efficiency video codec. Application-specific standard product chips are intermediate between ASICs and industry standard integrated circuits like the 7400 series or the 4000 series. ASIC chips are typically fabricated using metal–oxide–semiconductor (MOS) technology, as MOS integrated circuit chips.

<span class="mw-page-title-main">Software release life cycle</span> Sum of the phases of development and maturity for computer software

The software release life cycle is the process of developing, testing, and distributing a software product. It typically consists of several stages, such as pre-alpha, alpha, beta, and release candidate, before the final version, or "gold", is released to the public.

Rapid application development (RAD), also called rapid application building (RAB), is both a general term for adaptive software development approaches, and the name for James Martin's method of rapid development. In general, RAD approaches to software development put less emphasis on planning and more emphasis on an adaptive process. Prototypes are often used in addition to or sometimes even instead of design specifications.

<span class="mw-page-title-main">Systems development life cycle</span> Systems engineering terms

In systems engineering, information systems and software engineering, the systems development life cycle (SDLC), also referred to as the application development life cycle, is a process for planning, creating, testing, and deploying an information system. The SDLC concept applies to a range of hardware and software configurations, as a system can be composed of hardware only, software only, or a combination of both. There are usually six stages in this cycle: requirement analysis, design, development and testing, implementation, documentation, and evaluation.

<span class="mw-page-title-main">Product lifecycle</span> Duration of processing of products from inception, to engineering, design & manufacture

In industry, product lifecycle management (PLM) is the process of managing the entire lifecycle of a product from its inception through the engineering, design and manufacture, as well as the service and disposal of manufactured products. PLM integrates people, data, processes, and business systems and provides a product information backbone for companies and their extended enterprises.

Software prototyping is the activity of creating prototypes of software applications, i.e., incomplete versions of the software program being developed. It is an activity that can occur in software development and is comparable to prototyping as known from other fields, such as mechanical engineering or manufacturing.

Reliability engineering is a sub-discipline of systems engineering that emphasizes the ability of equipment to function without failure. Reliability describes the ability of a system or component to function under stated conditions for a specified period of time. Reliability is closely related to availability, which is typically described as the ability of a component or system to function at a specified moment or interval of time.

Design for testing or design for testability (DFT) consists of IC design techniques that add testability features to a hardware product design. The added features make it easier to develop and apply manufacturing tests to the designed hardware. The purpose of manufacturing tests is to validate that the product hardware contains no manufacturing defects that could adversely affect the product's correct functioning.

The process of circuit design can cover systems ranging from complex electronic systems down to the individual transistors within an integrated circuit. One person can often do the design process without needing a planned or structured design process for simple circuits. Still, teams of designers following a systematic approach with intelligently guided computer simulation are becoming increasingly common for more complex designs. In integrated circuit design automation, the term "circuit design" often refers to the step of the design cycle which outputs the schematics of the integrated circuit. Typically this is the step between logic design and physical design.

<span class="mw-page-title-main">Integrated circuit design</span> Engineering process for electronic hardware

Integrated circuit design, or IC design, is a sub-field of electronics engineering, encompassing the particular logic and circuit design techniques required to design integrated circuits, or ICs. ICs consist of miniaturized electronic components built into an electrical network on a monolithic semiconductor substrate by photolithography.

<span class="mw-page-title-main">Hardware emulation</span> Emulating hardware devices in IC design

In integrated circuit design, hardware emulation is the process of imitating the behavior of one or more pieces of hardware with another piece of hardware, typically a special purpose emulation system. The emulation model is usually based on a hardware description language source code, which is compiled into the format used by emulation system. The goal is normally debugging and functional verification of the system being designed. Often an emulator is fast enough to be plugged into a working target system in place of a yet-to-be-built chip, so the whole system can be debugged with live data. This is a specific case of in-circuit emulation.

Design Closure is a part of the digital electronic design automation workflow by which an integrated circuit design is modified from its initial description to meet a growing list of design constraints and objectives.

Performance engineering encompasses the techniques applied during a systems development life cycle to ensure the non-functional requirements for performance will be met. It may be alternatively referred to as systems performance engineering within systems engineering, and software performance engineering or application performance engineering within software engineering.

Digital Prototyping gives conceptual design, engineering, manufacturing, and sales and marketing departments the ability to virtually explore a complete product before it's built. Industrial designers, manufacturers, and engineers use Digital Prototyping to design, iterate, optimize, validate, and visualize their products digitally throughout the product development process. Innovative digital prototypes can be created via CAutoD through intelligent and near-optimal iterations, meeting multiple design objectives, identifying multiple figures of merit, and reducing development gearing and time-to-market. Marketers also use Digital Prototyping to create photorealistic renderings and animations of products prior to manufacturing. Companies often adopt Digital Prototyping with the goal of improving communication between product development stakeholders, getting products to market faster, and facilitating product innovation.

Reverse engineering is a process or method through which one attempts to understand through deductive reasoning how a previously made device, process, system, or piece of software accomplishes a task with very little insight into exactly how it does so. Depending on the system under consideration and the technologies employed, the knowledge gained during reverse engineering can help with repurposing obsolete objects, doing security analysis, or learning how something works.

In computer programming and software development, debugging is the process of finding and resolving bugs within computer programs, software, or systems.

References

  1. "barnacle". cybertraining365.com. Retrieved February 21, 2024.