In the third exercise a set of cross-layer changes is
applied that impacts several entities, if not all, of the
sample project. This simulation aims at showing how
the Somusar/Software Molds[tm] can support software developers in
managing the evolution of requirements and conventions,
that can possibly impact a large part of a software system.
A set of new requirements is submitted to the project team by
the customer's project manager who is responsible for the application.
The new requirements impact:
In particular, all not null clauses should be
deleted from the SQL scripts, whereas all members of all collections
DB.null should preserve the correspondent null clause.
The details of the new requirements for the user interface are as follows:
- All generated files that contain an SQL create table script;
- All HTML forms to edit/view entities, that is, all UI.full_views.
- A vertical bar should be added on the right side of each form, to display a hot link area on the top, and some advertising below it;
- The buttons row at the bottom of each form should be replaced by a row of hyperlinks, with the same label and function;
- The new hyperlinks row should be replicated at the top of the form, under the form description;
- A new set of colors should be used.
The project team evaluates the request for change
and the analysis shows that no entity is impacted by
the request for change: only local changes to two molds are
required, then all files can be re-generated using the SoProMach[tm].
The DB expert of the team quickly realizes that the new SQL
requirement can be met by changing just three lines in one mold
script, namely toolkit/sql/column.
The web page designer, using his or her favorite tool, updates the
generic HTML reference page, which is then approved by the customer's
project manager. The HTML source of the new reference page is then compared
with the previous one, and the required textual changes are integrated
in script "file.hdr" of mold "UI/mold4-.html". A set
of generation flags - such as COLORSCHEME and ADVERTISINGVERTBAR -
are locally added to the script, to increase its flexibility
and ensure that it be backward compatible. Comments are locally added, to
document the changes in the molds, then the SoProMach[tm] is started.
Once again, in about seven seconds all files are re-generated.
A comparison with the previous version confirms that no undesired
changes have crept into the generated files, that
can now be integrated in the project source tree.
All SQL files of layer DB, as well as all HTML files of layer
UI are impacted by the change. As an example,
the new versions of "DB/company.sql" and "UI/employee.html"
are shown below.
Source code - File "company.sql"
2 -- This SQL script created by somusar/SoProMach[tm]
5 create table company (
6 companyname varchar(40),
7 departmentsdeptid varchar(10),
8 headquartersstreet varchar(80),
9 headquarterscity varchar(80),
10 headquartersstate varchar(40) null,
11 headquarterszip varchar(20),
12 headquarterscountryname varchar(40),
13 headquarterswebsite varchar(80) null,
14 business varchar(200),
15 constraint pk_company primary key (companyname)
Figure 9 - New version of "UI/employee.html"
As a comparison term, the former version of "UI/employee.html"
is shown in the following figure.
Figure 10 - Former version of "UI/employee.html"
[Back to top]