FOSD Program Cubes
   HOME
*





FOSD Program Cubes
In feature-oriented software development, feature-oriented software development program cubes (FOSD program cubes) are n-dimensional arrays of functions (program transformations) that represent n-dimensional product lines. A ''program'' is a composition of features: a base program is augmented with increments in program functionality, called ''features'', to produce a complex program. A software product line (SPL) is a family of related programs. A typical product line has F0 as a base program, and F1..Fn as features that could be added to F0. Different compositions of features yield different programs. Let + denote the feature composition operation. A program P in SPL might have the following expression: P = F8 + F4 + F2 + F1 + F0 That is, P extends program F0 with features F1, F2, F4, and F8 in this order. We can recast P in terms of a projection and contraction of a 1-dimensional array. Let Fi = 0 .. Fndenote the array of features used by a product line. A projection of ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Feature-oriented Software Development
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 FOSD arose out of layer-based designs and levels of abstraction in network protocols and extensible database systems in the late-1980s. A program was a stack of layers. Each layer added functionality to previously composed layers and different compositions of layers produced different programs. Not surprisingly, there was a need for a compact language to express such designs. Elementary algebra fit the bill: each layer was a function (a program transformation) that added new code to an existing program to produce a new program, and a program's design was modeled by an expression, i.e., a composition of transformations (layers). The figure to the left illustrates the stacking of layers i, j, and h (where h is on the bottom and i is o ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Software Product Line
Software product lines (SPLs), or software product line development, refers to software engineering methods, tools and techniques for creating a collection of similar software systems from a shared set of software assets using a common means of production. The Carnegie Mellon Software Engineering Institute defines a ''software product line'' as "a set of software-intensive systems that share a common, managed set of features satisfying the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way." Description Manufacturers have long employed analogous engineering techniques to create a product line of similar products using a common factory that assembles and configures parts designed to be reused across the product line. For example, automotive manufacturers can create unique variations of one car model using a single pool of carefully designed parts and a factory specifically designed to configure and a ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


Kube
KUBE or Kube may refer to: Broadcasting * KUBE (AM), a radio station (1350 FM) licensed to serve Pueblo, Colorado * KUBE-TV, a television station licensed to serve Houston, Texas, United States * Kube Radio, a student radio station at Keele University in Staffordshire, England * KJR-FM, a radio station (93.3 FM) licensed to serve Seattle, Washington, which held the call sign KUBE-FM from 1982 to 2016 and 2018 to 2022 * KTDD (FM), a radio station (104.9 FM) licensed to serve Eatonville, Washington, United States, which held the call sign KUBE from 2016 to 2017 * KPWK (AM), a radio station (1350 AM) licensed to serve San Bernardino, California, United States, which held the call sign KUBE from 2017 to 2018 People * Kube (rapper), Finnish rapper * Michael P. Kube-McDowell Michael Paul Kube-McDowell (born August 29, 1954), also known as Michael McDowell or Michael P. McDowell, is an American science fiction and non-fiction author. Background Born Michael Paul McDowell on Aug ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

Tensor
In mathematics, a tensor is an algebraic object that describes a multilinear relationship between sets of algebraic objects related to a vector space. Tensors may map between different objects such as vectors, scalars, and even other tensors. There are many types of tensors, including scalars and vectors (which are the simplest tensors), dual vectors, multilinear maps between vector spaces, and even some operations such as the dot product. Tensors are defined independent of any basis, although they are often referred to by their components in a basis related to a particular coordinate system. Tensors have become important in physics because they provide a concise mathematical framework for formulating and solving physics problems in areas such as mechanics (stress, elasticity, fluid mechanics, moment of inertia, ...), electrodynamics (electromagnetic tensor, Maxwell tensor, permittivity, magnetic susceptibility, ...), general relativity ( stress–energy tensor, cur ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


picture info

OLAP Cube
An OLAP cube is a multi-dimensional array of data. Online analytical processing (OLAP) is a computer-based technique of analyzing data to look for insights. The term ''cube'' here refers to a multi-dimensional dataset, which is also sometimes called a hypercube if the number of dimensions is greater than three. Terminology A cube can be considered a multi-dimensional generalization of a two- or three-dimensional spreadsheet. For example, a company might wish to summarize financial data by product, by time-period, and by city to compare actual and budget expenses. Product, time, city and scenario (actual and budget) are the data's dimensions. ''Cube'' is a shorthand for ''multidimensional dataset'', given that data can have an arbitrary number of ''dimensions''. The term hypercube is sometimes used, especially for data with more than three dimensions. A cube is not a "cube" in the strict mathematical sense, as the sides are not all necessarily equal. But this term is used widel ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  




Commutative Diagram
350px, The commutative diagram used in the proof of the five lemma. In mathematics, and especially in category theory, a commutative diagram is a diagram such that all directed paths in the diagram with the same start and endpoints lead to the same result. It is said that commutative diagrams play the role in category theory that equations play in algebra. Description A commutative diagram often consists of three parts: * objects (also known as ''vertices'') * morphisms (also known as ''arrows'' or ''edges'') * paths or composites Arrow symbols In algebra texts, the type of morphism can be denoted with different arrow usages: * A monomorphism may be labeled with a \hookrightarrow or a \rightarrowtail. * An epimorphism may be labeled with a \twoheadrightarrow. * An isomorphism may be labeled with a \overset. * The dashed arrow typically represents the claim that the indicated morphism exists (whenever the rest of the diagram holds); the arrow may be optionally labeled as \exist ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]  


FOSD Metamodels
Feature-oriented software development (FOSD) is a general paradigm for software generation, where a model of a product line is a tuple of 0-ary and 1-ary functions (program transformations). This page discusses a more abstract concept of models of product lines of product lines (PL**2) called metamodels, and product lines of product lines of product lines called meta-metamodels (PL**3), and further abstract concepts. Metamodels A metamodel is a model whose instances are models. A GenVoca model of a product line is a tuple whose components are features (0-ary or 1-ary functions). An extension (a.k.a. delta or refinement) of a model is a "meta-feature", which is a tuple of deltas that can modify an existing product line by modifying existing features and adding new features. As a simple example, consider GenVoca model M that contains three features a-c: M = a, b, c /math> Suppose meta-model MM contains three meta-features AAA-CCC, each of which is a tuple with a single non-ide ...
[...More Info...]      
[...Related Items...]     OR:     [Wikipedia]   [Google]   [Baidu]