Home Page   We Generate Your Software.
Products Services Company Technology Demo Contact Site Map Search
Please note: this document is currently under revision.
The information herein contained, while still valid, does not reflect the latest state of the described technology.
The Somusar/SoProTech[tm] Booklet Series
Volume I

"somusar/SoProTech: An Introduction"

Printer friendly


Contents
1. Introduction
2. Overview of SoProTech[tm]
3. Software Production Using SoProTech[tm]
4. Software System Layers and Pillars
5. Multifacet Software Entities
6. Software Molds
7. Generatable Files
8. The Somusar/File Generation Scheme[tm]
9. The Somusar Languages and Language Processors
10. Structure of a SoProTech Project
10.1 Project Entities
10.2 Library Entities
10.3 Software Mold kit
10.4 Generated Files
10.5 Teamwork and Roles in a SoProTech Project
10.5.1 Entity Designer
10.5.2 Layer Expert
10.5.3 Sample File Developer
10.5.4 Software Mold Maker
10.5.5 Somusar
11. Further Reading

Chapter 10 - Structure of a SoProTech Project

A SoProTech project consists of two sets of entities - the project and the library entities -, one mold kit, and the source files generated by the SoProMach. Entities, molds and generated files are by default subdirectories of one file-system directory, called the SoProTech project directory, but this default configuration can be easily changed by means of environment variables. The components of a SoProTech project are shown in the illustration below.

Figure 18 - Components of a SoProTech project
Figure 18 - Components of a SoProTech project
Enlarge

Large development teams may share a mold kit and a set of library entities, and have separated sets of project entities and generated files. Even individual developers working on several projects can benefit from this configuration, that provides a means to reuse the expertise made available by the Software Molds.

Such a configuration ensures a common basis and common guidelines for the different requirements of the different (sub)projects, in the context of the main software development activity.

The next illustration shows the contents of a sample SoProTech project directory: four package directories (business, company, location, persons), each containing two or three entity files and the subdirectories corresponding to the entity facets ( CORE, DB, DOC, LOGIC, and UI), where the files generated by the SoProMach for each entity file are stored.

Figure 19 - Contents of a SoProTech project directory
Figure 19 - Contents of a SoProTech project directory
Enlarge

10.1 - Project Entities        top

Project entities are Software Entity files that by default reside under a directory called "project". Under that directory, the project entities can be freely distributed across subdirectories, each representing a significant logical block of the project, typically a package. The SoProMach automatically retrieves all entity files and keeps track of the logical block that they belong to, when generating the target source files. The same logical structure used for the entities can thus be automatically replicated and used to create, for instance, Java[tm] packages.

10.2 - Library Entities        top

Library entities are Software Entity files that by default reside under a directory called "library". The same considerations made for project entities apply for library entities as well: under the "library" directory, it is possible to define any logical group of entities by simply creating a corresponding set of subdirectories. In fact, library entities themselves should be viewed as the set of project entities of an independent SoProTech project: this library entity project differs from a normal SoProTech project in that it has no library entities.

Library entities and the related generated files should be shared and reused across several SoProTech projects; no change to the library entities should directly occur in any project using them. Instead, any request for change to a library entity should be submitted to the project team responsible for the library entity project, to ensure that the requested change does not conflict with the other projects using the same set of library entities.

For example, a library entity called "ident.ef" may contain, among others, the company-wide definition of a product identifier, called prod_id. Changes to such an identifier should only be applied by the entity library project team, and not by any of the application project teams.

10.3 - Software Mold kit        top

The kit of Software Molds of a SoProTech project is contained in a subdirectory of the SoProTech project directory; the subdirectory is called by default "moldkit". As the following figure shows, this directory contains one subdirectory for each logical block - layers and pillars, as previously described - of the target software system, namely CORE, DB, LOGIC, UI, and DOC. Each of these subdirectories - also called mold groups - contain the set of Software Molds that are relevant to the corresponding logical block.

Figure 20 - Contents of a mold kit
Figure 20 - Contents of a mold kit
Enlarge

Each mold is structured according to the File Generation Scheme, described earlier in this document.

Utility scripts (written in Tefigel) used in the molds can be stored in a subdirectory, which is by default called "moldkit/toolkit".

A mold kit may be private to a SoProTech project, as well as shared among several project teams. In the latter case, changes to the mold kit should be handled in the same way described above for library entities: a responsible for the mold kit should ensure that mold changes required by a project team do not impact any other project team using the same mold kit. The SoProTech and the File Generation Scheme provide a means to centrally customize a shared mold kit, in order to meet specific requirements of one or more of the project teams sharing that mold kit.

10.4 - Generated Files        top

As shown in the illustration below, each generated file is located under a subdirectory at the same project level of the entity that it is derived from. The name of this subdirectory - one of CORE, DB, LOGIC, UI, DOC - corresponds to the name of the facet and mold group that are relevant to the generated file itself.

For example, applying mold "moldkit/DB/mold1-.sql" to the DB facet of entity file "business/project.ef" by default generates file "business/DB/project.sql".

Figure 21 - Entities and generated files
Figure 21 - Entities and generated files
Enlarge

As discussed earlier in this document, the SoProTech does not provide an all-in-one solution to software development: instead, it should be considered as an additional, high-speed tool to automatically produce software source files. Generated source files can then be merged into a traditional project tree, as if provided by an external source.

10.5 - Teamwork and Roles in a SoProTech Project        top

This paragraph describes the suggested approach for working with SoProTech, independently of the size of the project and project team that may decide to use it. A teamwork scheme and a corresponding small set of project roles are suggested, to better explain the activities involved by SoProTech. Large project teams may assign one or more persons to play one role, as opposed to small project teams, that may assign two or more roles to one person - not to mention individual and independent developers, who will play all roles.

The overall teamwork scheme is illustrated by the following figure, and described in the next paragraphs.

Figure 22 - Teamwork and roles in a SoProTech project
Figure 22 - Teamwork and roles in a SoProTech project
Enlarge

10.5.1 - Entity Designer        top

The designer of Software Entities is in charge of producing Software Entity files - the actual ".ef" files. The main tasks assigned to an entity designer are the following:

  • Translate the system concept design into software entities;

  • Contribute to the definition of the project guidelines and conventions;

  • Define the core structure of entities.

10.5.2 - Layer Expert        top

The system layer expert does not directly produce any tangible deliverable, such as Software Entities or Software Molds; instead, the main result of a layer expert's activity is layer knowledge for entity facets, layer-specific generatable files, and molds. The main tasks assigned to a layer expert are the following:

  • Contribute with his/her layer knowledge (CORE, DB, LOGIC, UI, DOC) to the design of entities;

  • Contribute to the selection and sample production of generatable files;

  • Contribute to the production of molds;

  • Define mapping between Sisendel basic data types and layer-specific types.

10.5.3 - Sample File Developer        top

The developer of sample files is in charge of producing layer-specific samples of generatable files. The main tasks assigned to a sample file developer are the following:

  • Produce sample generatable files in any given language for a given layer (CORE, DB, LOGIC, UI, DOC) using any favorite layer-specific tool;

  • Contribute to the definition of the project guidelines and conventions.

10.5.4 - Software Mold Maker        top

The mold maker is in charge of delivering Somusar/Software Molds[tm]. The main tasks assigned to a mold maker are the following:

  • Translate the sample generatable files into software molds;

  • Implement in molds the project guidelines and conventions.

10.5.5 - Somusar        top

As previously shown in the teamwork scheme figure, an additional player in the SoProTech project team is Somusar. The Somusar contribution to a SoProTech project includes the following:

  • Provide the project team with the SoProMach, that consists of the high-speed processors for Sisendel and Tefigel, the languages for Software Entities and Software Molds;

  • Make molds on request, playing the mold maker role;

  • Deliver on request consultancy services on SoProTech projects.

[Previous chapter]    [Next chapter]    [Back to top]

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