OSBP (software factory)

Last updated

OSBP (Open Standard Business Platform) is a software factory provided as Open Source by the Eclipse Foundation.

Contents

Description

OSBP combines no-code/low-code elements with classic software development. Using this technology, coding is largely replaced by a descriptive modeling of the desired software, based on which the factory autonomously generates the necessary program code and all other artifacts. OSBP does not chain developers to no-code/low-code, but allows them to integrate their own source code. The applications thus created can be used independently of platforms and are intended for professional use in companies.

Objectives

OSBP was developed with the aim of minimizing time-consuming or repetitive tasks (such as designing architectures or creating source code). This is not only intended to facilitate and speed up the development process, but also to eliminate notorious sources of error that occur in the "manual work" of coding. Developers report an effort reduction of up to 90 percent with OSBP compared to a conventional approach. [1] In addition, OSBP realizes the benefits of model-driven software development: as the models are independent of the code, you can create modified versions of an application at any time - the software remains flexible and customizable.

Domain-specific languages

OSBP decouples the technical knowledge of programming in its own abstraction layers, which are called domains. For each domain, an abstract model has been defined, the specificity of which is described by means of domain-specific languages (DSL). The individual models are related in a domain architecture, with higher-level models hiding the complexity of the underlying, simplifying the work for the developer. The frameworks used for the respective domains (against which OSBP generates the program code in the final step) can also be exchanged without losing the work previously invested in the description. Currently, OSBP comprises a total of 26 domains (including the developed DSL) and more than 30 integrated open-source frameworks. [2] They contain all the structural elements and functionalities required for a typical application. The domain models as well as the functionality of the open source factory are expandable for everyone.

Licences

The source code is released as open source under the Eclipse Public License 2.0, so that the use of OSBP does not entail any dependencies - such as a vendor lock-in. In addition, the under professional developers dreaded copyleft effect is excluded.

Related Research Articles

In computing, cross-platform software is computer software that is implemented on multiple computing platforms. Cross-platform software may be divided into two types; one requires individual building or compilation for each platform that it supports, and the other one can be directly run on any platform without special preparation, e.g., software written in an interpreted language or pre-compiled portable bytecode for which the interpreters or run-time packages are common or standard components of all platforms.

Eclipse (software) Java software development environment

Eclipse is an integrated development environment (IDE) used in computer programming. It contains a base workspace and an extensible plug-in system for customizing the environment. Eclipse is written mostly in Java and its primary use is for developing Java applications, but it may also be used to develop applications in other programming languages via plug-ins, including Ada, ABAP, C, C++, C#, Clojure, COBOL, D, Erlang, Fortran, Groovy, Haskell, JavaScript, Julia, Lasso, Lua, NATURAL, Perl, PHP, Prolog, Python, R, Ruby, Rust, Scala, and Scheme. It can also be used to develop documents with LaTeX and packages for the software Mathematica. Development environments include the Eclipse Java development tools (JDT) for Java and Scala, Eclipse CDT for C/C++, and Eclipse PDT for PHP, among others.

Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development is a process of writing and maintaining the source code, but in a broader sense, it includes all that is involved between the conception of the desired software through to the final manifestation of the software, sometimes in a planned and structured process. Therefore, software development may include research, new development, prototyping, modification, reuse, re-engineering, maintenance, or any other activities that result in software products.

Web application Application that uses a web browser as a client

A web application is application software that runs on a web server, unlike computer-based software programs that are run locally on the operating system (OS) of the device. Web applications are accessed by the user through a web browser with an active internet connection. These applications are programmed using a client–server modeled structure—the user ("client") is provided services through an off-site server that is hosted by a third-party. Examples of commonly-used web applications include: web-mail, online retail sales, online banking, and online auctions.

Model-driven architecture (MDA) is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model-driven architecture is a kind of domain engineering, and supports model-driven engineering of software systems. It was launched by the Object Management Group (OMG) in 2001.

A domain-specific language (DSL) is a computer language specialized to a particular application domain. This is in contrast to a general-purpose language (GPL), which is broadly applicable across domains. There are a wide variety of DSLs, ranging from widely used languages for common domains, such as HTML for web pages, down to languages used by only one or a few pieces of software, such as MUSH soft code. DSLs can be further subdivided by the kind of language, and include domain-specific markup languages, domain-specific modeling languages, and domain-specific programming languages. Special-purpose computer languages have always existed in the computer age, but the term "domain-specific language" has become more popular due to the rise of domain-specific modeling. Simpler DSLs, particularly ones used by a single application, are sometimes informally called mini-languages.

In computer programming, a software framework is an abstraction in which software providing generic functionality can be selectively changed by additional user-written code, thus providing application-specific software. It provides a standard way to build and deploy applications and is a universal, reusable software environment that provides particular functionality as part of a larger software platform to facilitate the development of software applications, products and solutions. Software frameworks may include support programs, compilers, code libraries, toolsets, and application programming interfaces (APIs) that bring together all the different components to enable development of a project or system.

A UML tool is a software application that supports some or all of the notation and semantics associated with the Unified Modeling Language (UML), which is the industry standard general-purpose modeling language for software engineering.

Domain-specific modeling (DSM) is a software engineering methodology for designing and developing systems, such as computer software. It involves systematic use of a domain-specific language to represent the various facets of a system.

Object-oriented analysis and design (OOAD) is a technical approach for analyzing and designing an application, system, or business by applying object-oriented programming, as well as using visual modeling throughout the software development process to guide stakeholder communication and product quality.

A software factory is a structured collection of related software assets that aids in producing computer software applications or software components according to specific, externally defined end-user requirements through an assembly process. A software factory applies manufacturing techniques and principles to software development to mimic the benefits of traditional manufacturing. Software factories are generally involved with outsourced software creation.

Model-driven engineering (MDE) is a software development methodology that focuses on creating and exploiting domain models, which are conceptual models of all the topics related to a specific problem. Hence, it highlights and aims at abstract representations of the knowledge and activities that govern a particular application domain, rather than the computing concepts.

The EFx Factory is a pioneering Architectural Guidance Software Factory from Microsoft, and one of the first implementations of a software factory to be built.

Apache Camel is an open source framework for message-oriented middleware with a rule-based routing and mediation engine that provides a Java object-based implementation of the Enterprise Integration Patterns using an application programming interface to configure routing and mediation rules.

Domain-driven design (DDD) is the concept that the structure and language of software code should match the business domain. For example, if a software processes loan applications, it might have classes such as LoanApplication and Customer, and methods such as AcceptOffer and Withdraw.

Xtext is an open-source software framework for developing programming languages and domain-specific languages (DSLs). Unlike standard parser generators, Xtext generates not only a parser, but also a class model for the abstract syntax tree, as well as providing a fully featured, customizable Eclipse-based IDE.

A language workbench is a tool or set of tools that enables software development in the language-oriented programming software development paradigm. A language workbench will typically include tools to support the definition, reuse and composition of domain-specific languages together with their integrated development environment. Language workbenches were introduced and popularized by Martin Fowler in 2005.

References

  1. Müller, Gesa. "Das mögliche Ende des Endgültigen". IT Mittelstand (in German) (09/2018).
  2. Mohilo, Dominik (April 2016). "Neu im Eclipse Universum: OSBP - die Entwicklungsplattform für Business-Anwendungen". JAXenter (in German).