Decomposition (computer science)

Decomposition (computer science)

Decomposition in computer science, also known as factoring, refers to the process by which a complex problem or system is broken down into parts that are easier to conceive, understand, program, and maintain.

Contents

Overview

Decomposition in computer science refers to the process by which a complex problem or system is broken down into parts that are easier to conceive, understand, program, and maintain. There are different types of decomposition defined in computer sciences:

  • In structured programming, algorithmic decomposition breaks a process down into well-defined steps.
  • Structured analysis breaks down a software system from the system context level to system functions and data entities as described by Tom DeMarco.[1]
  • Object-oriented decomposition, on the other hand, breaks a large system down into progressively smaller classes or objects that are responsible for some part of the problem domain.
  • According to Booch, algorithmic decomposition is a necessary part of object-oriented analysis and design, but object-oriented systems start with and emphasize decomposition into classes.[2]

More in general functional decomposition in computer science is a technique for mastering the complexity of the function of a model. A functional model of a systems is hereby replaced by a series of functional models of subsystems.[3]

Decomposition topics

Decomposition paradigm

A decomposition paradigm in computer programming is a strategy for organizing a program as a number of parts, and it usually implies a specific way to organize a program text. Usually the aim of using a decomposition paradigm is to optimize some metric related to program complexity, for example the modularity of the program or its maintainability.

Most decomposition paradigms suggest breaking down a program into parts so as to minimize the static dependencies among those parts, and to maximize the cohesiveness of each part. Some popular decomposition paradigms are the procedural, modules, abstract data type and object oriented ones.

The concept of decomposition paradigm is entirely independent and different from that of model of computation, but the two are often confused, most often in the cases of the functional model of computation being confused with procedural decomposition, and of the actor model of computation being confused with object oriented decomposition.

Decomposition diagram

A decomposition diagram shows a high-level function, process, organization, data subject area, or other type of object broken down into lower level, more detailed components. For example, decomposition diagrams may represent organizational structure or functional decomposition into processes. Decomposition diagrams provide a logical hierarchical decomposition of a system.

See also

References

  1. ^ Tom DeMarco (1978). Structured Analysis and System Specification. New York, NY: Yourdon, 1978. ISBN 0917072073, 9780917072079.
  2. ^ Grady Booch (1994). Object-oriented Analysis and Design (2nd ed.). Redwood Cita, CA: Benjamin/Cummings. pp.16-20.
  3. ^ Jan Dietz (2006). Enterprise Ontology - Theory and Methodology. Springer-Verlag Berlin Heidelberg.

External links


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • AP Computer Science — Advanced Placement Computer Science (also called APCS) is the name of two distinct Advanced Placement courses and examinations offered by the College Board to high school students as an opportunity to earn college credit for a college level… …   Wikipedia

  • Decomposition (disambiguation) — Decomposition may refer to the following: Decomposition, biological process through which organic material is reduced Chemical decomposition or analysis, in chemistry, is the fragmentation of a chemical compound into elements or smaller compounds …   Wikipedia

  • Advanced Placement Computer Science — This article is part of the Advanced Placement  series. General exam structure    •    Awards Current Subjects: Art History Biology Calculus (AB BC) Chemistry Chinese Language and Culture Comparative Government Politics… …   Wikipedia

  • Function composition (computer science) — In computer science, function composition (not to be confused with object composition) is an act or mechanism to combine simple functions to build more complicated ones. Like the usual composition of functions in mathematics, the result of the… …   Wikipedia

  • Computer programming — Programming redirects here. For other uses, see Programming (disambiguation). Software development process Activities and steps …   Wikipedia

  • Computer-generated holography — (CGH) is the method of digitally generating holographic interference patterns. A holographic image can be generated e.g. by digitally computing a holographic interference pattern and printing it onto a mask or film for subsequent illumination by… …   Wikipedia

  • Computer algebra system — A computer algebra system (CAS) is a software program that facilitates symbolic mathematics. The core functionality of a CAS is manipulation of mathematical expressions in symbolic form. Contents 1 Symbolic manipulations 2 Additional capabilities …   Wikipedia

  • Modular decomposition — In graph theory, the modular decomposition is a decomposition of an undirected graph into subsets of vertices called modules. A module is a generalization of a connected component of a graph. Unlike connected components, however, one module can… …   Wikipedia

  • Tree decomposition — A graph with eight vertices, and a tree decomposition of it onto a tree with six nodes. Each graph edge connects two vertices that are listed together at some tree node, and each graph vertex is listed at the nodes of a contiguous subtree of the… …   Wikipedia

  • Cholesky decomposition — In linear algebra, the Cholesky decomposition or Cholesky triangle is a decomposition of a Hermitian, positive definite matrix into the product of a lower triangular matrix and its conjugate transpose. It was discovered by André Louis Cholesky… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”