Home Page   We Generate Your Software.
Products Services Company Technology Demo Contact Site Map Search
Free trial of Somusar products and services
Company profile
Contact information
Technical documentation
  - Introduction to Software Precision Molding
  - Published articles about Somusar generators
  - Slide presentations about the SoProTech[tm]
  - The nine Somusar booklets
  - Code examples produced with Somusar's tools
Site map

Introduction to Software Precision Molding

Software Precision Molding: Technological Impact on Software Production

The potential industrial impact of the Somusar/Software Production Technique[tm] on the development and automated production of software in different computer languages can be compared to the impact of precision molding on the production of physical objects in different materials: most manual, repetitive, error-prone labor can suddenly be automated, with three major consequences:

  • A significant quality improvement in the finished or semi-finished products;

  • A dramatic reduction in production cycle time;

  • An opportunity to apply new, coherent, large-scale production methods.

An analogy with industrial precision molding can help introduce some concepts which are new, or partly new, in the software industry.

Industrial Molding and Software Molding

Industrial precision molding is nowadays a highly automated process that produces physical objects with a predefined shape in a predefined material - for example, plastic articles, metal airbag housings, or clay statuettes. A molding machine processes a job request, applies the appropriate mold, and produces the desired object in the given material, according to specific requirements, such as color, clarity, or resistance.

The Somusar/Software Production Technique[tm] - in short, SoProTech[tm] - is a new, highly automated process that produces software files with a predefined structure in one or more predefined computer languages - for example, JavaBeans[tm], HTML forms, or COBOL programs. A "software press" processes a software entity, applies the appropriate software mold, and produces the desired software file, or files, in the given computer language, or languages, according to specific requirements, such as standards and best practices, development guidelines, and project conventions.

The SoProTech[tm] does not completely eliminate manual labor from the production of software, just like industrial molding does not completely eliminate manual labor from the production of physical objects. In particular, the design of industrial molds requires a significant amount of specialized manual labor, and is usually offered as a service by the mold manufacturer. Similarly, Somusar offers a service called Somusar/Software Mold Building[sm].

Three major aspects of software molding differentiate it from industrial precision molding:

  • The main advantage of industrial molding is its capacity to make practically any number of identical and interchangeable physical objects - plastic articles, metal airbag housings, clay statuettes.
    Instead, the main advantage of software molding is its capacity to make practically any number of similar yet unique software files - JavaBeans[tm], HTML forms, COBOL programs.

  • The production of finished or semi-finished physical objects takes place in most cases at the mold manufacturer's site, where the big molding machines are located.
    Instead, the Somusar/Software Production Machine[tm] is a compact software "machine" which will be in most cases installed and operated at the customer's site.

  • Physical molds are physical objects: it can be very difficult or even impossible to modify or fix them.
    Instead, software molds are themselves made of software and thus can be modified to meet changes in the requirements for the production target, or repaired in case of design or building errors.

Overview of the Somusar/Software Production Technique[tm]

In the context of a software development project, the input to the SoProTech[tm] is the result of a previous, classical analysis stage, and consists of concise textual descriptions, called Somusar/Software Entities[tm].

The Somusar/Software Production Machine[tm] - in short, SoProMach[tm] - processes any input Software Entity through a given set of Somusar/Software Molds[tm], each of which provides the "shape" of exactly one type of output software file in a given computer language.

The output of the SoProMach[tm] is a set of high quality software files coherently derived from, and related to, the corresponding input Software Entity. The output files contain source code, written in potentially any human-readable computer language, and can be used as input to a further development stage.

Figure 1 - Overview of the SoProTech[tm]
Figure 1 - Overview of the <i>SoProTech</i>[tm]

Three major positive consequences were mentioned earlier, that the SoProTech can have on software production:
  • A significant quality improvement in the finished or semi-finished products.
    The SoProTech allows to record and replicate the skills of the best software craftsmen, who provide the prototypes for the Software Molds. The same quality of the prototype used to design and build a given mold is then automatically reproduced by the SoProMach[tm] in the software files resulting from that mold. Thus, these software files are made as the same craftsman who made the prototype would make them.

  • A dramatic reduction in production cycle time.
    The boost on productivity allowed by the SoProTech is probably unprecedented in the software industry. In a lab test the Somusar/Software Production Machine[tm] applied five Software Molds to one thousand Software Entities, producing 1.2 million lines of code in twenty-three minutes on a regular PC (one CPU at 1.7 GHz, 256 MB RAM) running Linux®. The resulting 6,000 output files contained source code in Java[tm], SQL, C++ and HTML - the latter used for both user interface and documentation purposes.

  • An opportunity to apply new, coherent, large-scale production methods.
    The immediate applicability of the SoProTech ranges from low-level embedded system Application Programming Interfaces (APIs), to XML-based Web Services, to traditional transaction-processing systems.
    But the overall coherence of the entire process, the extreme malleability of its Software Molds, and the impressive workhorse power of its SoProMach[tm] open up brand new opportunities for the future of the software industry, that are yet to be conceived.

SoProTech[tm] in the Real World

The Somusar/Software Production Technique[tm] does not revolutionize the whole traditional software production cycle: on the contrary, it focuses on a well-defined spot of that cycle - namely, the high-speed, high-quality generation of source code - and can be smoothly and pragmatically integrated within any type of software development project, independently of the computer languages, design and development tools, and methodologies involved in the project.

Within a software project, the SoProTech can be seen as a productivity amplifier that records and reproduces the design and development skills of the best experts of the project team, quite independently of the domain of their expertise - which can range from database architecture to object-oriented development, from user-friendly interface design to middleware programming, to technical writing, and more.

The basic concepts of the SoProTech are very few - three -, simple and clear:

  1. Somusar/Software Entity[tm]:
    concise, multifacet textual description of all properties of a software entity.

  2. Somusar/Software Mold[tm]:
    structured parametrical industrial procedure to produce one type of software source file.

  3. Generatable files:
    in principle, any type of human-readable computer file.

Figure 2 - Basic concepts of SoProTech[tm]
Figure 2 - Basic concepts of <i>SoProTech</i>[tm]

Generatable files are the one and only connection point between the SoProTech and any other tool or methodology used within a software development project. That is why the SoProTech can be used within virtually any project: all software projects produce or use some sort of human-readable computer file, which is what the SoProTech can flexibly produce at high speed, in high volume, with a high quality degree.

The SoProTech is flexible from several perspectives:

  • It is multilanguage:
    it allows to produce any type of source code, in any single-byte character set - typically, ASCII and ISO 8859.

  • It is inherently incremental:
    as demonstrated by the aforementioned lab test, the SoProTech makes it possible to automatically reproduce within minutes the entire set of generatable source files of a software project. This allows to modify or extend the very architecture of a software system or application, without having to worry about the huge amount of source code fixes that such changes or extensions imply - centralized changes or extensions made by hand in the Software Molds are automatically and rapidly propagated through the whole generatable project source code by means of the SoProMach[tm].

  • It is intrinsically evolutionary:
    compliance with evolving standards and exploitation of new information technologies can be achieved in a consistent and homogeneous fashion by adapting the central set of project Software Molds, without having to change the project Software Entities.

  • It is open by definition:
    the compatibility of the SoProTech with pre-existent skills, tools and methodologies is guaranteed by the fact that the basic unit of work of the SoProTech is the human-readable text file - no proprietary binary file formats are involved in the process. Therefore, the SoProTech can be utilized by any software designer or developer accustomed to produce or use human-readable text files - usually source code files -, either directly by hand, or indirectly via a tool.

Taking Advantage of the SoProTech[tm]: New Projects

As is often the case when new techniques are first introduced, those who can derive the most advantages from applying a new technique are those who can freely and fully exploit all capabilities offered by that new technique, without ties deriving from pre-existent products or ongoing processes. The SoProTech is no exception to that heuristic rule.

In fact, the SoProTech is especially attractive for software projects or products for which the development activity is yet to start: the boost of productivity provided by the SoProTech is particularly relevant if the process is integrated in the overall software production cycle from the beginning - although it is possible to gradually introduce the SoProTech as an additional tool in an ongoing project, achieving noticeable quality and productivity improvements, as explained below.

Thus, the ideal project for a first direct and seamless introduction of the SoProTech is a medium to large project aiming at developing a multilayer software application or system, and currently in the stage between functional specifications and detailed design: that stage is the best phase to produce (or reuse) the Software Entities required by the project and to identify, prototype and build (or reuse) the appropriate Software Molds.

Taking Advantage of the SoProTech[tm]: Long-established Software Plants

A different approach becomes necessary when first introducing the SoProTech in a large software plant, such as the software plant of a large enterprise. Usually in these plants not a single line of software can be considered totally unrelated to the underlying software plant: CICS® transactions in COBOL, departmental client-server systems in Visual Basic® (client side) and in C++ (server side), ERP and CRM packages, web applications in HTML and Java[tm], all this enterprise software is usually inextricably intertwined and interdependent, built layer upon layer with "materials" and techniques that appeared and then have changed during the last thirty or even forty years.

In this type of context, the most useful features of the SoProTech are its uniformity, simplicity, long-term vision, and flexibility. In fact, the SoProTech allows to create a warehouse, or a safe, of multifacet Software Entities that on one hand uniformly describe the software equivalent of the enterprise-specific business entities, and on the other hand lend themselves to the homogeneous production of new software, intrinsically related to the pre-existent enterprise software.

Figure 3 - From Software Entities to new software
Figure 3 - From <i>Software Entities</i> to new software

The simplicity of the Somusar/Software Entities[tm] decouples the evolution of the enterprise business from the turbulent and unforeseeable evolution of information technologies, whose effects and impact are absorbed by the flexibility of the Somusar/Software Molds[tm], and redistributed across the enterprise software by the power of the Somusar/Software Production Machine[tm].

As for the long-term vision of the Somusar/Software Production Technique[tm]:

  • You can use it today;

  • You could have used it twenty years ago, if it had existed at that time;

  • You might be able to use it for the next twenty years!

[Back to top]

http:// www.somusar.com  / doc  / datasheet  - Powered by SoProMach
Copyright © 2003-2012 Somusar - Trademarks - Legal - Privacy - Webmaster